From d734481abdc92035ef68d7c75ffde3b31dc1d50d Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 23 Dec 2019 10:31:03 -0600 Subject: [PATCH 01/80] Use optimisticRealpath when copying node_modules --- tools/fs/optimistic.ts | 19 +++++++++++++++++++ tools/isobuild/builder.js | 7 ++++--- tools/isobuild/bundler.js | 3 ++- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/tools/fs/optimistic.ts b/tools/fs/optimistic.ts index 86eb79ee1f..1fb57e81cd 100644 --- a/tools/fs/optimistic.ts +++ b/tools/fs/optimistic.ts @@ -16,6 +16,7 @@ import { readdir, dependOnPath, findAppDir, + realpath, } from "./files"; // When in doubt, the optimistic caching system can be completely disabled @@ -273,6 +274,24 @@ export const optimisticLStatOrNull = makeCheapPathFunction( }, ); +export const optimisticRealpath = makeOptimistic('realpath', realpath); +export const optimisticRealpathOrNull = makeOptimistic('realpathOrNull', ( + path: string, + options?: Parameters[1], +) => { + try { + return realpath(path, options) + } catch (e) { + if (e.code !== "ENOENT") { + throw e; + } + } + + dependOnParentDirectory(path); + + return null; +}); + export const optimisticReadFile = makeOptimistic("readFile", readFile); export const optimisticReaddir = makeOptimistic("readdir", readdir); export const optimisticHashOrNull = makeOptimistic("hashOrNull", ( diff --git a/tools/isobuild/builder.js b/tools/isobuild/builder.js index 04a23919ec..689645903b 100644 --- a/tools/isobuild/builder.js +++ b/tools/isobuild/builder.js @@ -11,6 +11,7 @@ import { optimisticStatOrNull, optimisticLStatOrNull, optimisticHashOrNull, + optimisticRealpath, } from "../fs/optimistic"; // Builder is in charge of writing "bundles" to disk, which are @@ -540,7 +541,7 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` // as well as node_modules/meteor and the parent directories of any // scoped npm packages. this._ensureAllNonPackageDirectories( - files.realpath(options.from), + optimisticRealpath(options.from), options.to ); } @@ -637,7 +638,7 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` }); } - const rootDir = files.realpath(from); + const rootDir = optimisticRealpath(from); const walk = (absFrom, relTo) => { if (symlink && ! (relTo in this.usedAsFile)) { @@ -671,7 +672,7 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` } try { - var real = files.realpath(thisAbsFrom); + var real = optimisticRealpath(thisAbsFrom); } catch (e) { if (e.code !== "ENOENT" && e.code !== "ELOOP") { diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index af7446bf0f..d6d34b0bda 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -173,6 +173,7 @@ import { loadIsopackage } from '../tool-env/isopackets.js'; import { CORDOVA_PLATFORM_VERSIONS } from '../cordova'; import { gzipSync } from "zlib"; import { PackageRegistry } from "../../packages/meteor/define-package.js"; +import { optimisticRealpathOrNull } from '../fs/optimistic'; const SOURCE_URL_PREFIX = "meteor://\u{1f4bb}app"; @@ -486,7 +487,7 @@ export class NodeModulesDirectory { return true; } - const real = files.realpathOrNull(path); + const real = optimisticRealpathOrNull(path); if (typeof real === "string" && real !== path) { // If node_modules/.bin/command is a symlink, determine the From 8c9251b9ac6ea380350d1fde71bcd48ee5376c8f Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 23 Dec 2019 11:42:02 -0600 Subject: [PATCH 02/80] Reduce realpath in SymlinkLoopChecker --- tools/isobuild/package-source.js | 34 ++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/tools/isobuild/package-source.js b/tools/isobuild/package-source.js index 1f85e89c16..2ba1ac25e3 100644 --- a/tools/isobuild/package-source.js +++ b/tools/isobuild/package-source.js @@ -213,14 +213,44 @@ var getExcerptFromReadme = function (text) { class SymlinkLoopChecker { constructor(sourceRoot) { this.sourceRoot = sourceRoot; + this._realSourceRoot = files.realpath(sourceRoot); this._seenPaths = {}; + this._cache = new Map(); } + // Avoids running realpath unless necessary + // since it is relatively slow on windows + _realpath = Profile('_realpath', function (relDir) { + const absPath = files.pathJoin(this._realSourceRoot, relDir); + + if (files.lstat(absPath).isSymbolicLink()) { + const result = files.realpath(absPath); + this._cache.set(relPath, result); + + return result; + } + + let result; + const parentDir = files.pathDirname(relDir); + const parentEntry = this._cache.get(parentDir); + if (parentDir === '.') { + result = absPath; + } else if (parentEntry) { + result = files.pathJoin(parentEntry, files.pathBasename(relDir)); + } else { + // The parent dir was never checked, which prevents us from + // skipping realpath + result = files.realpath(absPath); + } + + this._cache.set(relDir, result); + return result; + }) + check(relDir, quietly = true) { - const absPath = files.pathJoin(this.sourceRoot, relDir); try { - var realPath = files.realpath(absPath); + var realPath = this._realpath(relDir); } catch (e) { if (!e || e.code !== 'ELOOP') { throw e; From e763d9598eb4192f5dda0616207a8e0594f59cfa Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 23 Dec 2019 12:54:43 -0600 Subject: [PATCH 03/80] Allow cache keys to be shared between archs --- tools/isobuild/package-source.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/isobuild/package-source.js b/tools/isobuild/package-source.js index 1f85e89c16..1f9d0ee24f 100644 --- a/tools/isobuild/package-source.js +++ b/tools/isobuild/package-source.js @@ -1212,9 +1212,10 @@ _.extend(PackageSource.prototype, { const baseCacheKey = JSON.stringify({ isApp, - arch, sourceRoot: self.sourceRoot, excludes: anyLevelExcludes, + names: sourceReadOptions.names, + include: sourceReadOptions.include }, (key, value) => { if (_.isRegExp(value)) { return [value.source, value.flags]; From 93557870409c905736cae2f9940033363e2c0331 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 23 Dec 2019 13:01:37 -0600 Subject: [PATCH 04/80] Do not watch node_modules in _findSources --- tools/isobuild/package-source.js | 33 +++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/tools/isobuild/package-source.js b/tools/isobuild/package-source.js index 1f9d0ee24f..bd78d32167 100644 --- a/tools/isobuild/package-source.js +++ b/tools/isobuild/package-source.js @@ -829,11 +829,23 @@ _.extend(PackageSource.prototype, { } }), - _readAndWatchDirectory(relDir, watchSet, {include, exclude, names}) { - return watch.readAndWatchDirectory(watchSet, { + // Reads a directory, applies the include and exclude filters, + // and returns the file paths relative to the sourceRoot + // If a watchSet is provided, will add the results to it + _maybeReadAndWatchDirectory(relDir, watchSet, {include, exclude, names}) { + const options = { absPath: files.pathJoin(this.sourceRoot, relDir), include, exclude, names - }).map(name => files.pathJoin(relDir, name)); + } + let result; + + if (watchSet) { + result = watch.readAndWatchDirectory(watchSet, options); + } else { + result = watch.readDirectory(options) + } + + return result.map(name => files.pathJoin(relDir, name)); }, // Initialize a package from an application directory (has .meteor/packages). @@ -1294,13 +1306,16 @@ _.extend(PackageSource.prototype, { } const sources = _.difference( - self._readAndWatchDirectory(dir, watchSet, readOptions), + self._maybeReadAndWatchDirectory(dir, inNodeModules ? null : watchSet, readOptions), depth > 0 ? [] : controlFiles ); - const subdirectories = self._readAndWatchDirectory(dir, watchSet, { - include: [/\/$/], - exclude: depth > 0 + const subdirectories = self._maybeReadAndWatchDirectory( + dir, + inNodeModules ? null : watchSet, + { + include: [/\/$/], + exclude: depth > 0 ? anyLevelExcludes : topLevelExcludes }); @@ -1368,7 +1383,7 @@ _.extend(PackageSource.prototype, { // Now look for assets for this unibuild. const arch = sourceArch.arch; const assetDir = archinfo.matches(arch, "web") ? "public/" : "private/"; - var assetDirs = this._readAndWatchDirectory('', watchSet, { + var assetDirs = this._maybeReadAndWatchDirectory('', watchSet, { names: [assetDir] }); @@ -1390,7 +1405,7 @@ _.extend(PackageSource.prototype, { } // Find asset files in this directory. - var assetsAndSubdirs = this._readAndWatchDirectory(dir, watchSet, { + var assetsAndSubdirs = this._maybeReadAndWatchDirectory(dir, watchSet, { include: [/.?/], // we DO look under dot directories here exclude: ignoreFiles From 18629d25ae4091c3dfe889e33c456fa2df71b161 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 23 Dec 2019 13:01:59 -0600 Subject: [PATCH 05/80] Show arch name in profile for _findSources --- tools/isobuild/package-source.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/isobuild/package-source.js b/tools/isobuild/package-source.js index bd78d32167..99cf980000 100644 --- a/tools/isobuild/package-source.js +++ b/tools/isobuild/package-source.js @@ -1107,7 +1107,7 @@ _.extend(PackageSource.prototype, { // complete list of source files for directories within node_modules. _findSourcesCache: Object.create(null), - _findSources: Profile("PackageSource#_findSources", function ({ + _findSources: Profile(({ sourceArch }) => `PackageSource#_findSources for ${sourceArch.arch}`, function ({ sourceProcessorSet, watchSet, isApp, From 952422053fd080b8ac74b494cc9b912d3f5665ae Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 23 Dec 2019 14:26:09 -0600 Subject: [PATCH 06/80] Cache each node_modules folder once --- tools/isobuild/package-source.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/isobuild/package-source.js b/tools/isobuild/package-source.js index 99cf980000..e3e405b64e 100644 --- a/tools/isobuild/package-source.js +++ b/tools/isobuild/package-source.js @@ -1269,13 +1269,13 @@ _.extend(PackageSource.prototype, { return array; } - function find(dir, depth, inNodeModules) { + function find(dir, depth, { inNodeModules = false, cache = false } = {}) { // Remove trailing slash. dir = dir.replace(/\/$/, ""); // If we're in a node_modules directory, cache the results of the // find function for the duration of the process. - let cacheKey = inNodeModules && makeCacheKey(dir); + let cacheKey = inNodeModules && cache && makeCacheKey(dir); if (cacheKey && cacheKey in self._findSourcesCache) { return self._findSourcesCache[cacheKey]; @@ -1346,7 +1346,7 @@ _.extend(PackageSource.prototype, { } } else { - sources.push(...find(subdir, depth + 1, inNodeModules)); + sources.push(...find(subdir, depth + 1, { inNodeModules, cache: !inNodeModules })); } }); @@ -1357,7 +1357,7 @@ _.extend(PackageSource.prototype, { // subdirectories, continue searching this node_modules directory, // so that any non-.js(on) files it contains can be imported by // the app (#6037). - sources.push(...find(nodeModulesDir, depth + 1, true)); + sources.push(...find(nodeModulesDir, depth + 1, { inNodeModules: true, cache: !inNodeModules})); } delete dotMeteorIgnoreFiles[dir]; From b7c7e329d088c340f45d2dfdac47ed207927f31d Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 24 Feb 2020 19:36:58 -0600 Subject: [PATCH 07/80] Fix variable name --- tools/isobuild/package-source.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/isobuild/package-source.js b/tools/isobuild/package-source.js index 2ba1ac25e3..c3c0bc9de8 100644 --- a/tools/isobuild/package-source.js +++ b/tools/isobuild/package-source.js @@ -225,7 +225,7 @@ class SymlinkLoopChecker { if (files.lstat(absPath).isSymbolicLink()) { const result = files.realpath(absPath); - this._cache.set(relPath, result); + this._cache.set(relDir, result); return result; } From a5fdd1a150d1ea88223bd226dbe87ca4f0a0b8b9 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 24 Feb 2020 20:27:09 -0600 Subject: [PATCH 08/80] Reduce calls to realpath for bin files On Windows npm doesn't use symlinks for bin files, so the file's real path was never used. --- tools/isobuild/bundler.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index d6d34b0bda..ef553a1890 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -173,7 +173,7 @@ import { loadIsopackage } from '../tool-env/isopackets.js'; import { CORDOVA_PLATFORM_VERSIONS } from '../cordova'; import { gzipSync } from "zlib"; import { PackageRegistry } from "../../packages/meteor/define-package.js"; -import { optimisticRealpathOrNull } from '../fs/optimistic'; +import { optimisticLStatOrNull } from '../fs/optimistic'; const SOURCE_URL_PREFIX = "meteor://\u{1f4bb}app"; @@ -487,12 +487,11 @@ export class NodeModulesDirectory { return true; } - const real = optimisticRealpathOrNull(path); - if (typeof real === "string" && - real !== path) { + const fileStatus = optimisticLStatOrNull(path); + if (fileStatus && fileStatus.isSymbolicLink()) { // If node_modules/.bin/command is a symlink, determine the // answer by calling isWithinProdPackage(real). - return isWithinProdPackage(real); + return isWithinProdPackage(files.realpathOrNull(path)); } // If node_modules/.bin/command is not a symlink, then it's hard From 9421e76075e5d4decc38f2965101e4b8d2e0b336 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 24 Feb 2020 22:03:18 -0600 Subject: [PATCH 09/80] Remove optimisticRealpath --- tools/fs/optimistic.ts | 18 ------------------ tools/isobuild/builder.js | 11 +++++------ 2 files changed, 5 insertions(+), 24 deletions(-) diff --git a/tools/fs/optimistic.ts b/tools/fs/optimistic.ts index 1fb57e81cd..ab9367c58b 100644 --- a/tools/fs/optimistic.ts +++ b/tools/fs/optimistic.ts @@ -274,24 +274,6 @@ export const optimisticLStatOrNull = makeCheapPathFunction( }, ); -export const optimisticRealpath = makeOptimistic('realpath', realpath); -export const optimisticRealpathOrNull = makeOptimistic('realpathOrNull', ( - path: string, - options?: Parameters[1], -) => { - try { - return realpath(path, options) - } catch (e) { - if (e.code !== "ENOENT") { - throw e; - } - } - - dependOnParentDirectory(path); - - return null; -}); - export const optimisticReadFile = makeOptimistic("readFile", readFile); export const optimisticReaddir = makeOptimistic("readdir", readdir); export const optimisticHashOrNull = makeOptimistic("hashOrNull", ( diff --git a/tools/isobuild/builder.js b/tools/isobuild/builder.js index 689645903b..797dca477c 100644 --- a/tools/isobuild/builder.js +++ b/tools/isobuild/builder.js @@ -1,7 +1,7 @@ import assert from "assert"; import {WatchSet, readAndWatchFile, sha1} from '../fs/watch'; import files, { - symlinkWithOverwrite, + symlinkWithOverwrite, realpath, } from '../fs/files'; import NpmDiscards from './npm-discards.js'; import {Profile} from '../tool-env/profile'; @@ -11,7 +11,6 @@ import { optimisticStatOrNull, optimisticLStatOrNull, optimisticHashOrNull, - optimisticRealpath, } from "../fs/optimistic"; // Builder is in charge of writing "bundles" to disk, which are @@ -541,7 +540,7 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` // as well as node_modules/meteor and the parent directories of any // scoped npm packages. this._ensureAllNonPackageDirectories( - optimisticRealpath(options.from), + realpath(options.from), options.to ); } @@ -638,7 +637,7 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` }); } - const rootDir = optimisticRealpath(from); + const rootDir = realpath(from); const walk = (absFrom, relTo) => { if (symlink && ! (relTo in this.usedAsFile)) { @@ -662,7 +661,7 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` return; } - // Returns files.realpath(thisAbsFrom), iff it is external to + // Returns files.realpath(thisAbsFrom), if it is external to // rootDir, using caching because this function might be called // more than once. let cachedExternalPath; @@ -672,7 +671,7 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` } try { - var real = optimisticRealpath(thisAbsFrom); + var real = realpath(thisAbsFrom); } catch (e) { if (e.code !== "ENOENT" && e.code !== "ELOOP") { From 7adace63ccdeb65edc20f50c2260fecb5686a4fd Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 24 Feb 2020 22:13:18 -0600 Subject: [PATCH 10/80] Remove unused import --- tools/fs/optimistic.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/fs/optimistic.ts b/tools/fs/optimistic.ts index ab9367c58b..86eb79ee1f 100644 --- a/tools/fs/optimistic.ts +++ b/tools/fs/optimistic.ts @@ -16,7 +16,6 @@ import { readdir, dependOnPath, findAppDir, - realpath, } from "./files"; // When in doubt, the optimistic caching system can be completely disabled From b287a1ab41ac00bf17864992de1056688ef2703f Mon Sep 17 00:00:00 2001 From: zodern Date: Fri, 28 Feb 2020 22:33:46 -0600 Subject: [PATCH 11/80] Clean up _readAndWatchDirectory --- tools/isobuild/package-source.js | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/tools/isobuild/package-source.js b/tools/isobuild/package-source.js index 62de4ea9c7..d45798b9f6 100644 --- a/tools/isobuild/package-source.js +++ b/tools/isobuild/package-source.js @@ -833,23 +833,22 @@ _.extend(PackageSource.prototype, { } }), - // Reads a directory, applies the include and exclude filters, - // and returns the file paths relative to the sourceRoot - // If a watchSet is provided, will add the results to it - _maybeReadAndWatchDirectory(relDir, watchSet, {include, exclude, names}) { + _readAndWatchDirectory(relDir, watchSet, {include, exclude, names}) { const options = { absPath: files.pathJoin(this.sourceRoot, relDir), include, exclude, names - } - let result; + }; + + const contents = watch.readDirectory(options); if (watchSet) { - result = watch.readAndWatchDirectory(watchSet, options); - } else { - result = watch.readDirectory(options) + watchSet.addDirectory({ + contents, + ...options + }); } - return result.map(name => files.pathJoin(relDir, name)); + return contents.map(name => files.pathJoin(relDir, name)); }, // Initialize a package from an application directory (has .meteor/packages). @@ -1318,11 +1317,11 @@ _.extend(PackageSource.prototype, { } const sources = _.difference( - self._maybeReadAndWatchDirectory(dir, inNodeModules ? null : watchSet, readOptions), + self._readAndWatchDirectory(dir, inNodeModules ? null : watchSet, readOptions), depth > 0 ? [] : controlFiles ); - const subdirectories = self._maybeReadAndWatchDirectory( + const subdirectories = self._readAndWatchDirectory( dir, inNodeModules ? null : watchSet, { @@ -1395,7 +1394,7 @@ _.extend(PackageSource.prototype, { // Now look for assets for this unibuild. const arch = sourceArch.arch; const assetDir = archinfo.matches(arch, "web") ? "public/" : "private/"; - var assetDirs = this._maybeReadAndWatchDirectory('', watchSet, { + var assetDirs = this._readAndWatchDirectory('', watchSet, { names: [assetDir] }); @@ -1417,7 +1416,7 @@ _.extend(PackageSource.prototype, { } // Find asset files in this directory. - var assetsAndSubdirs = this._maybeReadAndWatchDirectory(dir, watchSet, { + var assetsAndSubdirs = this._readAndWatchDirectory(dir, watchSet, { include: [/.?/], // we DO look under dot directories here exclude: ignoreFiles From 27f43273a448cb256368e72885bcbfa65664802a Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 6 May 2020 23:13:27 +0900 Subject: [PATCH 12/80] Update email dependencies And bump the email package version as a result. --- History.md | 6 ++++++ packages/email/.npm/package/npm-shrinkwrap.json | 14 +++++++------- packages/email/email.js | 10 +++++----- packages/email/package.js | 6 +++--- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/History.md b/History.md index c5e87ccdf4..c9923cb919 100644 --- a/History.md +++ b/History.md @@ -1,3 +1,9 @@ +## vNEXT, unreleased + +### Changes + +* `email` package dependencies have been update and package version has been bumped to 1.3.0 + ## v1.10.2, 2020-04-21 diff --git a/packages/email/.npm/package/npm-shrinkwrap.json b/packages/email/.npm/package/npm-shrinkwrap.json index 38652fe742..e4ffb8f728 100644 --- a/packages/email/.npm/package/npm-shrinkwrap.json +++ b/packages/email/.npm/package/npm-shrinkwrap.json @@ -1,15 +1,15 @@ { "lockfileVersion": 1, "dependencies": { - "node4mailer": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/node4mailer/-/node4mailer-4.0.3.tgz", - "integrity": "sha1-jwx6ZzdSehKFMBhaFMLoeZiaiRA=" + "nodemailer": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.6.tgz", + "integrity": "sha512-/kJ+FYVEm2HuUlw87hjSqTss+GU35D4giOpdSfGp7DO+5h6RlJj7R94YaYHOkoxu1CSaM0d3WRBtCzwXrY6MKA==" }, "stream-buffers": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.5.tgz", - "integrity": "sha1-+TBTnTzwjXSKNArWE5+Vss60jwU=" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", + "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==" } } } diff --git a/packages/email/email.js b/packages/email/email.js index 4809122f99..515ba61190 100644 --- a/packages/email/email.js +++ b/packages/email/email.js @@ -1,6 +1,6 @@ var Future = Npm.require('fibers/future'); var urlModule = Npm.require('url'); -var nodemailer = Npm.require('node4mailer'); +var nodemailer = Npm.require('nodemailer'); Email = {}; EmailTest = {}; @@ -8,12 +8,12 @@ EmailTest = {}; EmailInternals = { NpmModules: { mailcomposer: { - version: Npm.require('node4mailer/package.json').version, - module: Npm.require('node4mailer/lib/mail-composer') + version: Npm.require('nodemailer/package.json').version, + module: Npm.require('nodemailer/lib/mail-composer') }, nodemailer: { - version: Npm.require('node4mailer/package.json').version, - module: Npm.require('node4mailer') + version: Npm.require('nodemailer/package.json').version, + module: Npm.require('nodemailer') } } }; diff --git a/packages/email/package.js b/packages/email/package.js index 836e70f6f9..6de5b953d4 100644 --- a/packages/email/package.js +++ b/packages/email/package.js @@ -1,11 +1,11 @@ Package.describe({ summary: "Send email messages", - version: "1.2.3" + version: "1.3.0" }); Npm.depends({ - node4mailer: "4.0.3", - "stream-buffers": "0.2.5" + nodemailer: "6.4.6", + "stream-buffers": "3.0.2" }); Package.onUse(function (api) { From b9aa5fc43b0d8b6e6b6043819dcf477091620319 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Go=C5=82=C4=99biowski?= Date: Thu, 7 May 2020 10:49:43 +0200 Subject: [PATCH 13/80] Fix installing scoped cordova plugins --- tools/cordova/project.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index 6791025b96..f24565e100 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -735,7 +735,7 @@ perform cordova plugins reinstall`); // cordova-plugin-whitelist@1.3.2 => { 'cordova-plugin-whitelist': '1.3.2' } // com.cordova.plugin@file://.cordova-plugins/plugin => { 'com.cordova.plugin': 'file://.cordova-plugins/plugin' } // @scope/plugin@1.0.0 => { 'com.cordova.plugin': 'scope/plugin' } - const installed = this.listInstalledPluginVersions(true); + const installed = this.listInstalledPluginVersions(); const installedPluginsNames = Object.keys(installed); const installedPluginsVersions = Object.values(installed); const missingPlugins = {}; From d54964fd07041ebe4bf8b7ec56e22ebe4fd79347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Go=C5=82=C4=99biowski?= Date: Thu, 7 May 2020 23:28:12 +0200 Subject: [PATCH 14/80] Fix installing cordova plugin from git url --- tools/cordova/project.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index f24565e100..14d6871d31 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -521,7 +521,7 @@ from Cordova project`, async () => { buildmessage.assertInJob(); if (utils.isUrlWithSha(version)) { - return convertToGitUrl(version); + return `${id}@${convertToGitUrl(version)}`; } else if (utils.isUrlWithFileScheme(version)) { // Strip file:// and resolve the path relative to the cordova-build // directory From 406a28c6009c965ceff41595e1d88a6003c09e59 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sat, 9 May 2020 02:24:03 +0900 Subject: [PATCH 15/80] Add beforeExternalLoginHook Add hook that allows to run check before user is created/logged via external service. --- packages/accounts-base/accounts_server.js | 17 +++++++++++++++++ packages/accounts-base/package.js | 2 +- packages/accounts-password/password_client.js | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/accounts-base/accounts_server.js b/packages/accounts-base/accounts_server.js index 02bd42a85b..a94ca5f5b1 100644 --- a/packages/accounts-base/accounts_server.js +++ b/packages/accounts-base/accounts_server.js @@ -58,6 +58,7 @@ export class AccountsServer extends AccountsCommon { setExpireTokensInterval(this); this._validateLoginHook = new Hook({ bindEnvironment: false }); + this._beforeExternalLoginHook = new Hook({ bindEnvironment: false }); this._validateNewUserHooks = [ defaultValidateNewUserHook.bind(this) ]; @@ -117,6 +118,15 @@ export class AccountsServer extends AccountsCommon { this._validateNewUserHooks.push(func); } + /** + * @summary Validate login from external service + * @locus Server + * @param {Function} func Called whenever login/user creation from external service is attempted. Login or user creation based on this login can be aborted by by passing a falsy value or throwing an exception. + */ + beforeExternalLoginHook(func) { + this._beforeExternalLoginHook.register(func); + } + /// /// CREATE USER HOOKS /// @@ -1211,6 +1221,13 @@ export class AccountsServer extends AccountsCommon { let user = this.users.findOne(selector, {fields: this._options.defaultFieldSelector}); + // Before continuing, run user hook to see if we should continue + this._beforeExternalLoginHook.forEach(hook => { + if (!hook(serviceName, serviceData, user)) { + throw new Meteor.Error(403, "Login forbidden"); + } + }); + // When creating a new user we pass through all options. When updating an // existing user, by default we only process/pass through the serviceData // (eg, so that we keep an unexpired access token and don't cache old email diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index d0cae1538f..d5df2e69c5 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.6.0", + version: "1.7.0", }); Package.onUse(api => { diff --git a/packages/accounts-password/password_client.js b/packages/accounts-password/password_client.js index 022c1cdf65..871393127a 100644 --- a/packages/accounts-password/password_client.js +++ b/packages/accounts-password/password_client.js @@ -20,7 +20,7 @@ const reportError = (error, callback) => { /** * @summary Log the user in with a password. * @locus Client - * @param {Object | String} user + * @param {Object | String} selector * Either a string interpreted as a username or an email; or an object with a * single key: `email`, `username` or `id`. Username or email match in a case * insensitive manner. From ece5ead3191ccb5bc0a87cf327c9629ce1e27efc Mon Sep 17 00:00:00 2001 From: filipenevola Date: Sun, 10 May 2020 17:53:53 -0400 Subject: [PATCH 16/80] Fixes error when removing cordova plugin that depends on cli variables --- tools/cordova/project.js | 48 +++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index 6791025b96..c55ae937d6 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -74,6 +74,34 @@ const pinnedPluginVersions = { "cordova-plugin-wkwebview-engine": "1.1.3" } +/** + * To fix Cordova error: Variable(s) missing we convert the cli_variables + * when removing plugins we want to convert for each plugin, for instance, + * cordova-plugin-facebook4: + * commandOptions { + * ... + * cli_variables: { + * 'cordova-plugin-googleplus': { + * REVERSED_CLIENT_ID: 'com.googleusercontent.apps.11111111-xxkodsuusaiusixuaix' + * }, + * 'cordova-plugin-facebook4': { APP_ID: '1111111111111111', APP_NAME: 'appname' } + * } + * } + * into this + * commandOptions { + * ... + * cli_variables: { APP_ID: '1111111111111111', APP_NAME: 'appname' } + * } + * + * @param plugin + * @param commandOptions + */ +const getCommandOptionsForPlugin = (plugin, commandOptions = {}) => { + const cli_variables = commandOptions && commandOptions.cli_variables + && commandOptions.cli_variables[plugin] || {}; + return {...commandOptions, cli_variables}; +} + export class CordovaProject { constructor(projectContext, options = {}) { @@ -560,18 +588,28 @@ from Cordova project`, async () => { { cli_variables: config, link: utils.isUrlWithFileScheme(version) }); this.runCommands(`adding plugin ${target} \ -to Cordova project`, cordova_lib.plugin.bind(undefined, 'add', [target], commandOptions)); +to Cordova project`, cordova_lib.plugin.bind(undefined, 'add', [target], + commandOptions)); } } // plugins is an array of plugin IDs. - removePlugins(plugins) { + removePlugins(plugins, config = {}) { if (_.isEmpty(plugins)) { return; } - this.runCommands(`removing plugins ${plugins} \ -from Cordova project`, cordova_lib.plugin.bind(undefined, 'rm', plugins, this.defaultOptions)); + const commandOptions = _.extend(this.defaultOptions, + { cli_variables: config }); + + plugins.forEach(plugin => { + const commandOptionsPlugin = getCommandOptionsForPlugin(plugin, + commandOptions); + + this.runCommands(`removing plugin ${plugin} \ + from Cordova project`, cordova_lib.plugin.bind(undefined, 'rm', [plugin], + commandOptionsPlugin)); + }); } // Ensures that the Cordova plugins are synchronized with the app-level @@ -699,7 +737,7 @@ perform cordova plugins reinstall`); Object.keys(installedPluginVersions)); } - this.removePlugins(pluginsToRemove); + this.removePlugins(pluginsToRemove, pluginsConfiguration); let pluginVersionsToInstall; From 1a44cb671304b410c5ef4d7f0ba803de4a56b41c Mon Sep 17 00:00:00 2001 From: filipenevola Date: Sun, 10 May 2020 21:46:17 -0400 Subject: [PATCH 17/80] Bump package versions for 1.10.3-beta.0 release --- History.md | 14 ++++++++++++++ packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/History.md b/History.md index c5e87ccdf4..e20d4ff67f 100644 --- a/History.md +++ b/History.md @@ -1,4 +1,18 @@ +## v1.10.3, TBD + +### Breaking changes + +N/A + +### Migration steps + +N/A + +### Changes + +* Fixes error when removing cordova plugin that depends on cli variables. PR [#10976](https://github.com/meteor/meteor/pull/11052) + ## v1.10.2, 2020-04-21 ### Breaking changes diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 651e2fe3c2..0514668868 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.10.2' + version: '1.10.3-beta.0' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index bb569315d0..5bd72dede7 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.10.2-rc.0", + "version": "1.10.3-beta.0", "recommended": false, "official": false, "description": "Meteor" From adae6b2bc2af74893152a3162ebc326cc760517e Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 13 May 2020 13:51:43 +0900 Subject: [PATCH 18/80] Major version bump for email package --- History.md | 7 +++++-- packages/email/package.js | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/History.md b/History.md index c9923cb919..f8ba36286d 100644 --- a/History.md +++ b/History.md @@ -1,8 +1,11 @@ ## vNEXT, unreleased -### Changes +### Breaking changes -* `email` package dependencies have been update and package version has been bumped to 1.3.0 +* `email` package dependencies have been update and package version has been bumped to 2.0.0 + There is a potential breaking change as the underlying package started to use `dns.resolve()` + instead of `dns.lookup()` which might be breaking on some environments. + See [nodemailer changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) for more information. ## v1.10.2, 2020-04-21 diff --git a/packages/email/package.js b/packages/email/package.js index 6de5b953d4..45054f813f 100644 --- a/packages/email/package.js +++ b/packages/email/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Send email messages", - version: "1.3.0" + version: "2.0.0" }); Npm.depends({ From 8d63a2f8a5b67c5599636732887999cfacd8f582 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 13 May 2020 14:04:40 +0900 Subject: [PATCH 19/80] Update documentaion links --- packages/email/email.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/email/email.js b/packages/email/email.js index 515ba61190..d0056f96a3 100644 --- a/packages/email/email.js +++ b/packages/email/email.js @@ -118,9 +118,9 @@ EmailTest.hookSend = function (f) { * If the `MAIL_URL` environment variable is set, actually sends the email. * Otherwise, prints the contents of the email to standard out. * - * Note that this package is based on **mailcomposer 4**, so make sure to refer to - * [the documentation](https://github.com/nodemailer/mailcomposer/blob/v4.0.1/README.md) - * for that version when using the `attachments` or `mailComposer` options. + * Note that this package is based on **nodemailer**, so make sure to refer to + * [the documentation](http://nodemailer.com/) + * when using the `attachments` or `mailComposer` options. * * @locus Server * @param {Object} options @@ -136,7 +136,7 @@ EmailTest.hookSend = function (f) { * @param {String} [options.icalEvent] iCalendar event attachment * @param {Object} [options.headers] Dictionary of custom headers - e.g. `{ "header name": "header value" }`. To set an object under a header name, use `JSON.stringify` - e.g. `{ "header name": JSON.stringify({ tracking: { level: 'full' } }) }`. * @param {Object[]} [options.attachments] Array of attachment objects, as - * described in the [mailcomposer documentation](https://github.com/nodemailer/mailcomposer/blob/v4.0.1/README.md#attachments). + * described in the [nodemailer documentation](https://nodemailer.com/message/attachments/). * @param {MailComposer} [options.mailComposer] A [MailComposer](https://nodemailer.com/extras/mailcomposer/#e-mail-message-fields) * object representing the message to be sent. Overrides all other options. * You can create a `MailComposer` object via From 273a6be7be32e4eb9536b27382227271238bd6e4 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 19 May 2020 14:58:33 +0900 Subject: [PATCH 20/80] Adjust beforeExternalLogin hook & add tests Adjust the beforeExternalLogin hook to be like onExternalLogin hook and add test. --- packages/accounts-base/accounts_server.js | 21 ++++++------ packages/accounts-base/accounts_tests.js | 41 +++++++++++++++++++++++ 2 files changed, 52 insertions(+), 10 deletions(-) diff --git a/packages/accounts-base/accounts_server.js b/packages/accounts-base/accounts_server.js index a94ca5f5b1..24404e9b78 100644 --- a/packages/accounts-base/accounts_server.js +++ b/packages/accounts-base/accounts_server.js @@ -58,7 +58,6 @@ export class AccountsServer extends AccountsCommon { setExpireTokensInterval(this); this._validateLoginHook = new Hook({ bindEnvironment: false }); - this._beforeExternalLoginHook = new Hook({ bindEnvironment: false }); this._validateNewUserHooks = [ defaultValidateNewUserHook.bind(this) ]; @@ -72,9 +71,9 @@ export class AccountsServer extends AccountsCommon { resetPassword: token => Meteor.absoluteUrl(`#/reset-password/${token}`), verifyEmail: token => Meteor.absoluteUrl(`#/verify-email/${token}`), enrollAccount: token => Meteor.absoluteUrl(`#/enroll-account/${token}`), - } + }; - this.addDefaultRateLimit() + this.addDefaultRateLimit(); } /// @@ -123,8 +122,12 @@ export class AccountsServer extends AccountsCommon { * @locus Server * @param {Function} func Called whenever login/user creation from external service is attempted. Login or user creation based on this login can be aborted by by passing a falsy value or throwing an exception. */ - beforeExternalLoginHook(func) { - this._beforeExternalLoginHook.register(func); + beforeExternalLogin(func) { + if (this._beforeExternalLoginHook) { + throw new Error("Can only call beforeExternalLogin once"); + } + + this._beforeExternalLoginHook = func; } /// @@ -1222,11 +1225,9 @@ export class AccountsServer extends AccountsCommon { let user = this.users.findOne(selector, {fields: this._options.defaultFieldSelector}); // Before continuing, run user hook to see if we should continue - this._beforeExternalLoginHook.forEach(hook => { - if (!hook(serviceName, serviceData, user)) { - throw new Meteor.Error(403, "Login forbidden"); - } - }); + if (this._beforeExternalLoginHook && !this._beforeExternalLoginHook(serviceName, serviceData, user)) { + throw new Meteor.Error(403, "Login forbidden"); + } // When creating a new user we pass through all options. When updating an // existing user, by default we only process/pass through the serviceData diff --git a/packages/accounts-base/accounts_tests.js b/packages/accounts-base/accounts_tests.js index 0aa92459c9..fa52871a21 100644 --- a/packages/accounts-base/accounts_tests.js +++ b/packages/accounts-base/accounts_tests.js @@ -623,3 +623,44 @@ Tinytest.add( Accounts._options = accountsOptions; } ); + +Tinytest.add( + 'accounts - verify beforeExternalLogin hook can stop user login', + test => { + // Verify user data is saved properly when not using the + // beforeExternalLogin hook. + let facebookId = Random.id(); + const uid1 = Accounts.updateOrCreateUserFromExternalService( + 'facebook', + { id: facebookId }, + { profile: { foo: 1 } }, + ).userId; + const ignoreFieldName = "bigArray"; + const c = Meteor.users.update(uid1, {$set: {[ignoreFieldName]: [1]}}); + let users = + Meteor.users.find({ 'services.facebook.id': facebookId }).fetch(); + test.length(users, 1); + test.equal(users[0].profile.foo, 1); + test.isNotUndefined(users[0][ignoreFieldName], 'ignoreField - before limit fields'); + + // Verify that when beforeExternalLogin returns false + // that an error throws and user is not saved + Accounts.beforeExternalLogin((serviceName, serviceData, user) => { + // Check that we get the correct data + test.equal(serviceName, 'facebook'); + test.equal(serviceData, { id: facebookId }); + test.equal(user._id, uid1); + return false + }); + + test.throws(() => Accounts.updateOrCreateUserFromExternalService( + 'facebook', + { id: facebookId }, + { profile: { foo: 1 } }, + )); + + // Cleanup + Meteor.users.remove(uid1); + Accounts._beforeExternalLoginHook = null; + } +); From bf75b826272f4139efe6033f9edc8a27168a127e Mon Sep 17 00:00:00 2001 From: filipenevola Date: Sun, 10 May 2020 17:53:53 -0400 Subject: [PATCH 21/80] Fixes error when removing cordova plugin that depends on cli variables --- tools/cordova/project.js | 48 +++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index 75d263ae6f..81296a5656 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -74,6 +74,34 @@ const pinnedPluginVersions = { "cordova-plugin-wkwebview-engine": "1.1.3" } +/** + * To fix Cordova error: Variable(s) missing we convert the cli_variables + * when removing plugins we want to convert for each plugin, for instance, + * cordova-plugin-facebook4: + * commandOptions { + * ... + * cli_variables: { + * 'cordova-plugin-googleplus': { + * REVERSED_CLIENT_ID: 'com.googleusercontent.apps.11111111-xxkodsuusaiusixuaix' + * }, + * 'cordova-plugin-facebook4': { APP_ID: '1111111111111111', APP_NAME: 'appname' } + * } + * } + * into this + * commandOptions { + * ... + * cli_variables: { APP_ID: '1111111111111111', APP_NAME: 'appname' } + * } + * + * @param plugin + * @param commandOptions + */ +const getCommandOptionsForPlugin = (plugin, commandOptions = {}) => { + const cli_variables = commandOptions && commandOptions.cli_variables + && commandOptions.cli_variables[plugin] || {}; + return {...commandOptions, cli_variables}; +} + export class CordovaProject { constructor(projectContext, options = {}) { @@ -560,18 +588,28 @@ from Cordova project`, async () => { { cli_variables: config, link: utils.isUrlWithFileScheme(version) }); this.runCommands(`adding plugin ${target} \ -to Cordova project`, cordova_lib.plugin.bind(undefined, 'add', [target], commandOptions)); +to Cordova project`, cordova_lib.plugin.bind(undefined, 'add', [target], + commandOptions)); } } // plugins is an array of plugin IDs. - removePlugins(plugins) { + removePlugins(plugins, config = {}) { if (_.isEmpty(plugins)) { return; } - this.runCommands(`removing plugins ${plugins} \ -from Cordova project`, cordova_lib.plugin.bind(undefined, 'rm', plugins, this.defaultOptions)); + const commandOptions = _.extend(this.defaultOptions, + { cli_variables: config }); + + plugins.forEach(plugin => { + const commandOptionsPlugin = getCommandOptionsForPlugin(plugin, + commandOptions); + + this.runCommands(`removing plugin ${plugin} \ + from Cordova project`, cordova_lib.plugin.bind(undefined, 'rm', [plugin], + commandOptionsPlugin)); + }); } // Ensures that the Cordova plugins are synchronized with the app-level @@ -699,7 +737,7 @@ perform cordova plugins reinstall`); Object.keys(installedPluginVersions)); } - this.removePlugins(pluginsToRemove); + this.removePlugins(pluginsToRemove, pluginsConfiguration); let pluginVersionsToInstall; From 42a01b3321192a5c39ed8cbe6d9fbcc124494e04 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Sun, 10 May 2020 21:46:17 -0400 Subject: [PATCH 22/80] Bump package versions for 1.10.3-beta.0 release --- History.md | 14 ++++++++++++++ packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/History.md b/History.md index 60ce0c0116..8b04628b37 100644 --- a/History.md +++ b/History.md @@ -1,4 +1,18 @@ +## v1.10.3, TBD + +### Breaking changes + +N/A + +### Migration steps + +N/A + +### Changes + +* Fixes error when removing cordova plugin that depends on cli variables. PR [#10976](https://github.com/meteor/meteor/pull/11052) + ## v1.10.2, 2020-04-21 ### Breaking changes diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 651e2fe3c2..0514668868 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.10.2' + version: '1.10.3-beta.0' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index bb569315d0..5bd72dede7 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.10.2-rc.0", + "version": "1.10.3-beta.0", "recommended": false, "official": false, "description": "Meteor" From 0fb814d930695d9fb9adc1852cc30b0cfc4e55fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Go=C5=82=C4=99biowski?= Date: Thu, 7 May 2020 10:49:43 +0200 Subject: [PATCH 23/80] Fix installing scoped cordova plugins --- tools/cordova/project.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index 81296a5656..bc899934f9 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -773,7 +773,7 @@ perform cordova plugins reinstall`); // cordova-plugin-whitelist@1.3.2 => { 'cordova-plugin-whitelist': '1.3.2' } // com.cordova.plugin@file://.cordova-plugins/plugin => { 'com.cordova.plugin': 'file://.cordova-plugins/plugin' } // @scope/plugin@1.0.0 => { 'com.cordova.plugin': 'scope/plugin' } - const installed = this.listInstalledPluginVersions(true); + const installed = this.listInstalledPluginVersions(); const installedPluginsNames = Object.keys(installed); const installedPluginsVersions = Object.values(installed); const missingPlugins = {}; From c82f052b1f5e7998bc381c34e8642ddabe348ba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Go=C5=82=C4=99biowski?= Date: Thu, 7 May 2020 23:28:12 +0200 Subject: [PATCH 24/80] Fix installing cordova plugin from git url --- tools/cordova/project.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index bc899934f9..d586fc0c33 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -549,7 +549,7 @@ from Cordova project`, async () => { buildmessage.assertInJob(); if (utils.isUrlWithSha(version)) { - return convertToGitUrl(version); + return `${id}@${convertToGitUrl(version)}`; } else if (utils.isUrlWithFileScheme(version)) { // Strip file:// and resolve the path relative to the cordova-build // directory From e5cc21968ad0383e031579c2f202dc6b8a2dbcf2 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 27 May 2020 10:41:33 +0900 Subject: [PATCH 25/80] Email - make hookSend public --- packages/email/email.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/email/email.js b/packages/email/email.js index d0056f96a3..67cc805afa 100644 --- a/packages/email/email.js +++ b/packages/email/email.js @@ -98,15 +98,15 @@ var smtpSend = function (transport, mail) { transport._syncSendMail(mail); }; +var sendHooks = []; /** - * Mock out email sending (eg, during a test.) This is private for now. + * Mock out email sending (eg, during a test.) * - * f receives the arguments to Email.send and should return true to go + * @param f {function} receives the arguments to Email.send and should return true to go * ahead and send the email (or at least, try subsequent hooks), or * false to skip sending. */ -var sendHooks = []; -EmailTest.hookSend = function (f) { +Email.hookSend = function (f) { sendHooks.push(f); }; From 2c4a277a52d66bf5f1417fcd408be392daa60000 Mon Sep 17 00:00:00 2001 From: afrokick Date: Thu, 28 May 2020 15:50:08 +0300 Subject: [PATCH 26/80] update postcss --- .../.npm/package/npm-shrinkwrap.json | 471 ++++++++++++------ packages/minifier-css/package.js | 4 +- 2 files changed, 311 insertions(+), 164 deletions(-) diff --git a/packages/minifier-css/.npm/package/npm-shrinkwrap.json b/packages/minifier-css/.npm/package/npm-shrinkwrap.json index 53b50ac44e..0cf06de439 100644 --- a/packages/minifier-css/.npm/package/npm-shrinkwrap.json +++ b/packages/minifier-css/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "@types/q": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", - "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" }, "alphanum-sort": { "version": "1.0.2", @@ -27,9 +27,9 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "browserslist": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", - "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==" }, "caller-callsite": { "version": "2.0.0", @@ -52,9 +52,9 @@ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==" }, "caniuse-lite": { - "version": "1.0.30000989", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", - "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==" + "version": "1.0.30001066", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", + "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==" }, "chalk": { "version": "2.4.2", @@ -109,9 +109,9 @@ "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==" }, "css-select": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz", - "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==" }, "css-select-base-adapter": { "version": "0.1.1", @@ -119,31 +119,19 @@ "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, "css-tree": { - "version": "1.0.0-alpha.33", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.33.tgz", - "integrity": "sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==", - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "css-unit-converter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=" + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==" }, "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", + "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==" }, "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, "cssnano": { "version": "4.1.10", @@ -176,24 +164,19 @@ "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" }, "csso": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", - "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", + "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", "dependencies": { "css-tree": { - "version": "1.0.0-alpha.29", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", - "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==" + "version": "1.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", + "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==" }, "mdn-data": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", - "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", + "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==" } } }, @@ -203,9 +186,9 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" }, "dom-serializer": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz", - "integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dependencies": { "domelementtype": { "version": "2.0.1", @@ -225,19 +208,19 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==" }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==" }, "electron-to-chromium": { - "version": "1.3.252", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.252.tgz", - "integrity": "sha512-NWJ5TztDnjExFISZHFwpoJjMbLUifsNBnx7u2JI0gCw6SbKyQYYWWtBHasO/jPtHym69F4EZuTpRNGN11MT/jg==" + "version": "1.3.453", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.453.tgz", + "integrity": "sha512-IQbCfjJR0NDDn/+vojTlq7fPSREcALtF8M1n01gw7nQghCtfFYrJ2dfhsp8APr8bANoFC8vRTFVXMOGpT0eetw==" }, "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.2.tgz", + "integrity": "sha512-dmD3AvJQBUjKpcNkoqr+x+IF0SdRtPz9Vk0uTy4yWqga9ibB6s4v++QFWNohjiUGoMlF552ZvNyXDxz5iW0qmw==" }, "error-ex": { "version": "1.3.2", @@ -245,14 +228,14 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" }, "es-abstract": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.1.tgz", - "integrity": "sha512-cp/Tb1oA/rh2X7vqeSOvM+TSo3UkJLX70eNihgVEvnzwAgikjkTFr/QVgRCaxjm0knCNQzNoxxxcw2zO2LJdZA==" + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==" }, "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" }, "escape-string-regexp": { "version": "1.0.5", @@ -264,6 +247,11 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -280,9 +268,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "hex-color-regex": { "version": "1.1.0", @@ -325,9 +313,9 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" }, "is-color-stop": { "version": "1.1.0", @@ -335,9 +323,9 @@ "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=" }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, "is-directory": { "version": "0.3.1", @@ -345,14 +333,14 @@ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" }, "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==" }, "is-resolvable": { "version": "1.1.0", @@ -365,20 +353,25 @@ "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==" }, "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==" }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==" }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -395,19 +388,19 @@ "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" }, "node-releases": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.29.tgz", - "integrity": "sha512-R5bDhzh6I+tpi/9i2hrrvGJ3yKPYzlVOORDkXhnZuwi5D3q1I5w4vYy24PJXTcLk9Q0kws9TO77T75bcK8/ysQ==" + "version": "1.1.57", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.57.tgz", + "integrity": "sha512-ZQmnWS7adi61A9JsllJ2gdj2PauElcjnOwTp2O011iGzoakTxUsDGSe+6vD7wXbKdqhSFymC0OSx35aAMhrSdw==" }, "normalize-url": { "version": "3.3.0", @@ -420,49 +413,93 @@ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==" }, "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==" + }, "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==" }, "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==" + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=" + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=" }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=" + }, "postcss": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz", - "integrity": "sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==" + "version": "7.0.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.31.tgz", + "integrity": "sha512-a937VDHE1ftkjk+8/7nj/mrjtmkn69xxzJgRETXdAUU+IgOYPQNJF17haGWbeDxSyk++HA14UA98FurvPyBJOA==" }, "postcss-calc": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", - "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==" + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", + "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==" }, "postcss-colormin": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==" + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-convert-values": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==" + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-discard-comments": { "version": "4.0.2", @@ -487,7 +524,14 @@ "postcss-merge-longhand": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==" + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-merge-rules": { "version": "4.0.3", @@ -495,26 +539,47 @@ "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", "dependencies": { "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==" } } }, "postcss-minify-font-values": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==" + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-minify-gradients": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==" + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-minify-params": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==" + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-minify-selectors": { "version": "4.0.2", @@ -522,9 +587,9 @@ "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", "dependencies": { "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==" } } }, @@ -536,47 +601,110 @@ "postcss-normalize-display-values": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==" + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-positions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==" + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-repeat-style": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==" + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-string": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==" + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-timing-functions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==" + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-unicode": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==" + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-url": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==" + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-whitespace": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==" + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-ordered-values": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==" + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-reduce-initial": { "version": "4.0.3", @@ -586,17 +714,31 @@ "postcss-reduce-transforms": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==" + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==" }, "postcss-svgo": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==" + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-unique-selectors": { "version": "4.0.1", @@ -604,9 +746,9 @@ "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==" }, "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" }, "q": { "version": "1.5.1", @@ -633,11 +775,6 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -665,15 +802,25 @@ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==" + }, "string.prototype.trimleft": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz", - "integrity": "sha1-aLaqjhYsaoDnbjqKDC50cYbicf8=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==" }, "string.prototype.trimright": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz", - "integrity": "sha1-q0pW2AKgH75yk+EehPJNyBZGYd0=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==" + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==" }, "stylehacks": { "version": "4.0.3", @@ -681,9 +828,9 @@ "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", "dependencies": { "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==" } } }, @@ -693,9 +840,9 @@ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==" }, "svgo": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.0.tgz", - "integrity": "sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==" }, "timsort": { "version": "0.3.0", @@ -718,14 +865,14 @@ "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" }, "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==" }, "vendors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz", - "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" } } } diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index 529c2f6432..ba831cafbc 100644 --- a/packages/minifier-css/package.js +++ b/packages/minifier-css/package.js @@ -1,10 +1,10 @@ Package.describe({ summary: 'CSS minifier', - version: '1.5.0' + version: '1.5.1' }); Npm.depends({ - postcss: '7.0.18', + postcss: '7.0.31', cssnano: '4.1.10' }); From 84c09ec00daff3add69afc5fd1e41cd2044512fb Mon Sep 17 00:00:00 2001 From: arggh Date: Sat, 6 Jun 2020 13:44:43 +0300 Subject: [PATCH 27/80] Update core-js to version 3.6.5 --- packages/ecmascript-runtime-client/package.js | 2 +- packages/ecmascript-runtime-server/package.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ecmascript-runtime-client/package.js b/packages/ecmascript-runtime-client/package.js index 0d301514e8..d6f184afcb 100644 --- a/packages/ecmascript-runtime-client/package.js +++ b/packages/ecmascript-runtime-client/package.js @@ -7,7 +7,7 @@ Package.describe({ }); Npm.depends({ - "core-js": "3.2.1" + "core-js": "3.6.5" }); Package.onUse(function(api) { diff --git a/packages/ecmascript-runtime-server/package.js b/packages/ecmascript-runtime-server/package.js index 12e5a683c0..68d15d1451 100644 --- a/packages/ecmascript-runtime-server/package.js +++ b/packages/ecmascript-runtime-server/package.js @@ -7,7 +7,7 @@ Package.describe({ }); Npm.depends({ - "core-js": "3.2.1" + "core-js": "3.6.5" }); Package.onUse(function(api) { From 6e1650a7533fcba3ff343e68be0d2c2241fdb722 Mon Sep 17 00:00:00 2001 From: Chris Visser <2496739+chris-visser@users.noreply.github.com> Date: Sun, 7 Jun 2020 17:57:17 +0200 Subject: [PATCH 28/80] Add create command for vuejs --- tools/cli/commands.js | 7 ++- tools/static-assets/skel-vue/.gitignore | 1 + .../static-assets/skel-vue/.meteor/.gitignore | 1 + tools/static-assets/skel-vue/.meteor/packages | 24 ++++++++ .../static-assets/skel-vue/.meteor/platforms | 2 + tools/static-assets/skel-vue/package.json | 23 ++++++++ tools/static-assets/skel-vue/src/App.vue | 26 +++++++++ tools/static-assets/skel-vue/src/client.js | 12 ++++ .../skel-vue/src/collections/Links.js | 3 + .../skel-vue/src/collections/Links.tests.js | 24 ++++++++ .../skel-vue/src/components/Hello.vue | 27 +++++++++ .../skel-vue/src/components/Info.vue | 55 +++++++++++++++++++ tools/static-assets/skel-vue/src/fixtures.js | 32 +++++++++++ tools/static-assets/skel-vue/src/main.html | 7 +++ .../skel-vue/src/methods/createLink.js | 16 ++++++ .../skel-vue/src/methods/createLink.tests.js | 20 +++++++ .../skel-vue/src/methods/index.js | 1 + tools/static-assets/skel-vue/src/plugins.js | 4 ++ .../skel-vue/src/publications/index.js | 1 + .../skel-vue/src/publications/links.js | 6 ++ .../skel-vue/src/publications/links.tests.js | 22 ++++++++ tools/static-assets/skel-vue/src/server.js | 3 + tools/static-assets/skel-vue/tests/main.js | 20 +++++++ 23 files changed, 336 insertions(+), 1 deletion(-) create mode 100644 tools/static-assets/skel-vue/.gitignore create mode 100644 tools/static-assets/skel-vue/.meteor/.gitignore create mode 100644 tools/static-assets/skel-vue/.meteor/packages create mode 100644 tools/static-assets/skel-vue/.meteor/platforms create mode 100644 tools/static-assets/skel-vue/package.json create mode 100644 tools/static-assets/skel-vue/src/App.vue create mode 100644 tools/static-assets/skel-vue/src/client.js create mode 100644 tools/static-assets/skel-vue/src/collections/Links.js create mode 100644 tools/static-assets/skel-vue/src/collections/Links.tests.js create mode 100644 tools/static-assets/skel-vue/src/components/Hello.vue create mode 100644 tools/static-assets/skel-vue/src/components/Info.vue create mode 100644 tools/static-assets/skel-vue/src/fixtures.js create mode 100644 tools/static-assets/skel-vue/src/main.html create mode 100644 tools/static-assets/skel-vue/src/methods/createLink.js create mode 100644 tools/static-assets/skel-vue/src/methods/createLink.tests.js create mode 100644 tools/static-assets/skel-vue/src/methods/index.js create mode 100644 tools/static-assets/skel-vue/src/plugins.js create mode 100644 tools/static-assets/skel-vue/src/publications/index.js create mode 100644 tools/static-assets/skel-vue/src/publications/links.js create mode 100644 tools/static-assets/skel-vue/src/publications/links.tests.js create mode 100644 tools/static-assets/skel-vue/src/server.js create mode 100644 tools/static-assets/skel-vue/tests/main.js diff --git a/tools/cli/commands.js b/tools/cli/commands.js index 95df9286d2..a50cd06c07 100644 --- a/tools/cli/commands.js +++ b/tools/cli/commands.js @@ -517,6 +517,7 @@ main.registerCommand({ minimal: { type: Boolean }, full: { type: Boolean }, react: { type: Boolean }, + vue: { type: Boolean }, typescript: { type: Boolean }, }, catalogRefresh: new catalog.Refresh.Never() @@ -770,6 +771,8 @@ main.registerCommand({ skelName += "-full"; } else if (options.react) { skelName += "-react"; + } else if (options.vue) { + skelName += "-vue"; } else if (options.typescript) { skelName += "-typescript"; } @@ -886,8 +889,9 @@ main.registerCommand({ ! options.minimal && ! options.full && ! options.react && + ! options.vue && ! options.typescript) { - // Notify people about --bare, --minimal, --full, --react, and --typescript. + // Notify people about --bare, --minimal, --full, --react, --vue, and --typescript. Console.info([ "", "To start with a different app template, try one of the following:", @@ -898,6 +902,7 @@ main.registerCommand({ cmd("meteor create --minimal # to create an app with as few Meteor packages as possible"); cmd("meteor create --full # to create a more complete scaffolded app"); cmd("meteor create --react # to create a basic React-based app"); + cmd("meteor create --vue # to create a basic Vue-based app"); cmd("meteor create --typescript # to create an app using TypeScript and React"); } diff --git a/tools/static-assets/skel-vue/.gitignore b/tools/static-assets/skel-vue/.gitignore new file mode 100644 index 0000000000..c2658d7d1b --- /dev/null +++ b/tools/static-assets/skel-vue/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/tools/static-assets/skel-vue/.meteor/.gitignore b/tools/static-assets/skel-vue/.meteor/.gitignore new file mode 100644 index 0000000000..4083037423 --- /dev/null +++ b/tools/static-assets/skel-vue/.meteor/.gitignore @@ -0,0 +1 @@ +local diff --git a/tools/static-assets/skel-vue/.meteor/packages b/tools/static-assets/skel-vue/.meteor/packages new file mode 100644 index 0000000000..83be6b3a62 --- /dev/null +++ b/tools/static-assets/skel-vue/.meteor/packages @@ -0,0 +1,24 @@ +# Meteor packages used by this project, one per line. +# Check this file (and the other files in this directory) into your repository. +# +# 'meteor add' and 'meteor remove' will edit this file for you, +# but you can also edit it by hand. + +meteor-base # Packages every Meteor app needs to have +mobile-experience # Packages for a great mobile UX +mongo # The database Meteor supports right now +reactive-var # Reactive variable for tracker + +standard-minifier-css # CSS minifier run for production mode +standard-minifier-js # JS minifier run for production mode +es5-shim # ECMAScript 5 compatibility for older browsers +ecmascript # Enable ECMAScript2015+ syntax in app code +typescript # Enable TypeScript syntax in .ts and .tsx modules +shell-server # Server-side component of the `meteor shell` command + +tracker # Dependency tracker to allow reactive callbacks +static-html # Define static page content in .html files +akryum:vue-component # Vue-CLI template to publish components + +meteortesting:mocha # A package for writing and running your meteor app and package tests with mocha +johanbrook:publication-collector # Test a Meteor publication by collecting its output diff --git a/tools/static-assets/skel-vue/.meteor/platforms b/tools/static-assets/skel-vue/.meteor/platforms new file mode 100644 index 0000000000..efeba1b50c --- /dev/null +++ b/tools/static-assets/skel-vue/.meteor/platforms @@ -0,0 +1,2 @@ +server +browser diff --git a/tools/static-assets/skel-vue/package.json b/tools/static-assets/skel-vue/package.json new file mode 100644 index 0000000000..97a009989c --- /dev/null +++ b/tools/static-assets/skel-vue/package.json @@ -0,0 +1,23 @@ +{ + "name": "skel", + "private": true, + "scripts": { + "start": "meteor run", + "test": "meteor test --once --driver-package meteortesting:mocha", + "test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha", + "visualize": "meteor --production --extra-packages bundle-visualizer" + }, + "dependencies": { + "@babel/runtime": "^7.8.3", + "meteor-node-stubs": "^1.0.0", + "vue": "^2.6.11", + "vue-meteor-tracker": "^2.0.0-beta.5" + }, + "meteor": { + "mainModule": { + "client": "src/client.js", + "server": "src/server.js" + }, + "testModule": "tests/main.js" + } +} diff --git a/tools/static-assets/skel-vue/src/App.vue b/tools/static-assets/skel-vue/src/App.vue new file mode 100644 index 0000000000..e126098ccb --- /dev/null +++ b/tools/static-assets/skel-vue/src/App.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/tools/static-assets/skel-vue/src/client.js b/tools/static-assets/skel-vue/src/client.js new file mode 100644 index 0000000000..835acaec7b --- /dev/null +++ b/tools/static-assets/skel-vue/src/client.js @@ -0,0 +1,12 @@ +import Vue from 'vue' + +import './plugins' + +import App from './App.vue' + +Meteor.startup(() => { + new Vue({ + el: '#app', + ...App, + }) +}) diff --git a/tools/static-assets/skel-vue/src/collections/Links.js b/tools/static-assets/skel-vue/src/collections/Links.js new file mode 100644 index 0000000000..de6a43c4a4 --- /dev/null +++ b/tools/static-assets/skel-vue/src/collections/Links.js @@ -0,0 +1,3 @@ +import { Mongo } from 'meteor/mongo'; + +export default new Mongo.Collection('links'); diff --git a/tools/static-assets/skel-vue/src/collections/Links.tests.js b/tools/static-assets/skel-vue/src/collections/Links.tests.js new file mode 100644 index 0000000000..0bc5b437dd --- /dev/null +++ b/tools/static-assets/skel-vue/src/collections/Links.tests.js @@ -0,0 +1,24 @@ +// Tests for the behavior of the links collection +// +// https://guide.meteor.com/testing.html + +import { Meteor } from 'meteor/meteor'; +import { assert } from 'chai'; +import Links from './links.js'; + +if (Meteor.isServer) { + describe('links collection', function () { + it('insert correctly', function () { + const linkId = Links.insert({ + title: 'meteor homepage', + url: 'https://www.meteor.com', + }); + const added = Links.find({ _id: linkId }); + const collectionName = added._getCollectionName(); + const count = added.count(); + + assert.equal(collectionName, 'links'); + assert.equal(count, 1); + }); + }); +} diff --git a/tools/static-assets/skel-vue/src/components/Hello.vue b/tools/static-assets/skel-vue/src/components/Hello.vue new file mode 100644 index 0000000000..64947eb06a --- /dev/null +++ b/tools/static-assets/skel-vue/src/components/Hello.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/tools/static-assets/skel-vue/src/components/Info.vue b/tools/static-assets/skel-vue/src/components/Info.vue new file mode 100644 index 0000000000..f20fc4c800 --- /dev/null +++ b/tools/static-assets/skel-vue/src/components/Info.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/tools/static-assets/skel-vue/src/fixtures.js b/tools/static-assets/skel-vue/src/fixtures.js new file mode 100644 index 0000000000..f629f5ca0b --- /dev/null +++ b/tools/static-assets/skel-vue/src/fixtures.js @@ -0,0 +1,32 @@ +import { Meteor } from 'meteor/meteor'; +import Links from './collections/Links.js'; + +Meteor.startup(() => { + // if the Links collection is empty + if (Links.find().count() === 0) { + const data = [ + { + title: 'Do the Tutorial', + url: 'https://www.meteor.com/try', + createdAt: new Date(), + }, + { + title: 'Follow the Guide', + url: 'http://guide.meteor.com', + createdAt: new Date(), + }, + { + title: 'Read the Docs', + url: 'https://docs.meteor.com', + createdAt: new Date(), + }, + { + title: 'Discussions', + url: 'https://forums.meteor.com', + createdAt: new Date(), + }, + ]; + + data.forEach(link => Links.insert(link)); + } +}); diff --git a/tools/static-assets/skel-vue/src/main.html b/tools/static-assets/skel-vue/src/main.html new file mode 100644 index 0000000000..944bc69810 --- /dev/null +++ b/tools/static-assets/skel-vue/src/main.html @@ -0,0 +1,7 @@ + + skel + + + +
+ diff --git a/tools/static-assets/skel-vue/src/methods/createLink.js b/tools/static-assets/skel-vue/src/methods/createLink.js new file mode 100644 index 0000000000..876f710978 --- /dev/null +++ b/tools/static-assets/skel-vue/src/methods/createLink.js @@ -0,0 +1,16 @@ +import { Meteor } from 'meteor/meteor'; +import { check } from 'meteor/check'; +import Links from '../collections/Links.js'; + +Meteor.methods({ + 'createLink'(title, url) { + check(url, String); + check(title, String); + + return Links.insert({ + url, + title, + createdAt: new Date(), + }); + }, +}); diff --git a/tools/static-assets/skel-vue/src/methods/createLink.tests.js b/tools/static-assets/skel-vue/src/methods/createLink.tests.js new file mode 100644 index 0000000000..d899a7338f --- /dev/null +++ b/tools/static-assets/skel-vue/src/methods/createLink.tests.js @@ -0,0 +1,20 @@ +import { Meteor } from 'meteor/meteor'; +import { assert } from 'chai'; +import Links from '../collections/Links.js'; +import './methods.js'; + +if (Meteor.isServer) { + describe('method: createLink', function () { + beforeEach(function () { + Links.remove({}); + }); + + it('can add a new link', function () { + const addLink = Meteor.server.method_handlers['createLink']; + + addLink.apply({}, ['meteor.com', 'https://www.meteor.com']); + + assert.equal(Links.find().count(), 1); + }); + }); +} diff --git a/tools/static-assets/skel-vue/src/methods/index.js b/tools/static-assets/skel-vue/src/methods/index.js new file mode 100644 index 0000000000..c52403a2e8 --- /dev/null +++ b/tools/static-assets/skel-vue/src/methods/index.js @@ -0,0 +1 @@ +import './createLink' diff --git a/tools/static-assets/skel-vue/src/plugins.js b/tools/static-assets/skel-vue/src/plugins.js new file mode 100644 index 0000000000..eb976c92e5 --- /dev/null +++ b/tools/static-assets/skel-vue/src/plugins.js @@ -0,0 +1,4 @@ +import Vue from 'vue' +import VueMeteorTracker from 'vue-meteor-tracker' + +Vue.use(VueMeteorTracker) diff --git a/tools/static-assets/skel-vue/src/publications/index.js b/tools/static-assets/skel-vue/src/publications/index.js new file mode 100644 index 0000000000..d161b580e7 --- /dev/null +++ b/tools/static-assets/skel-vue/src/publications/index.js @@ -0,0 +1 @@ +import './links' diff --git a/tools/static-assets/skel-vue/src/publications/links.js b/tools/static-assets/skel-vue/src/publications/links.js new file mode 100644 index 0000000000..f085d75045 --- /dev/null +++ b/tools/static-assets/skel-vue/src/publications/links.js @@ -0,0 +1,6 @@ +import { Meteor } from 'meteor/meteor'; +import Links from '../collections/Links.js'; + +Meteor.publish('links', function () { + return Links.find(); +}); diff --git a/tools/static-assets/skel-vue/src/publications/links.tests.js b/tools/static-assets/skel-vue/src/publications/links.tests.js new file mode 100644 index 0000000000..37f337c869 --- /dev/null +++ b/tools/static-assets/skel-vue/src/publications/links.tests.js @@ -0,0 +1,22 @@ +import { assert } from 'chai' +import { PublicationCollector } from 'meteor/johanbrook:publication-collector' +import Links from '../collections/Links.js' +import './publications.js' + +describe('Publish links', function () { + beforeEach(function () { + Links.remove({}) + Links.insert({ + title: 'meteor homepage', + url: 'https://www.meteor.com' + }) + }) + + it('sends all links', function (done) { + const collector = new PublicationCollector() + collector.collect('links', (collections) => { + assert.equal(collections.links.length, 1) + done() + }) + }) +}) diff --git a/tools/static-assets/skel-vue/src/server.js b/tools/static-assets/skel-vue/src/server.js new file mode 100644 index 0000000000..c48a837760 --- /dev/null +++ b/tools/static-assets/skel-vue/src/server.js @@ -0,0 +1,3 @@ +import './fixtures' +import './methods' +import './publications' diff --git a/tools/static-assets/skel-vue/tests/main.js b/tools/static-assets/skel-vue/tests/main.js new file mode 100644 index 0000000000..6d2a32e09d --- /dev/null +++ b/tools/static-assets/skel-vue/tests/main.js @@ -0,0 +1,20 @@ +import assert from "assert"; + +describe("skel", function () { + it("package.json has correct name", async function () { + const { name } = await import("../package.json"); + assert.strictEqual(name, "skel"); + }); + + if (Meteor.isClient) { + it("client is not server", function () { + assert.strictEqual(Meteor.isServer, false); + }); + } + + if (Meteor.isServer) { + it("server is not client", function () { + assert.strictEqual(Meteor.isClient, false); + }); + } +}); From 518f515090d082b611e1077a6579e81ff24b77c4 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Mon, 8 Jun 2020 09:38:28 -0400 Subject: [PATCH 29/80] Bump accounts-base package version to beta1103.0 --- packages/accounts-base/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index d5df2e69c5..7acfe1ee90 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.7.0", + version: "1.7.0-beta1103.0", }); Package.onUse(api => { From d2e1d694253f92ce66fbe333997059aa0773ea20 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Mon, 8 Jun 2020 13:23:28 -0400 Subject: [PATCH 30/80] Adds message for when Mongo server is not starting on Windows. --- tools/runners/run-mongo.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/runners/run-mongo.js b/tools/runners/run-mongo.js index 731b5863ee..ed4e7a3ff1 100644 --- a/tools/runners/run-mongo.js +++ b/tools/runners/run-mongo.js @@ -938,6 +938,10 @@ _.extend(MRp, { "Looks like you are out of free disk space under .meteor/local."; } else if (explanation) { message += "\n" + explanation.longText; + } else if (process.platform === 'win32') { + message += "\n\n" + + "Check how to troubleshoot here " + + "https://docs.meteor.com/windows.html#cant-start-mongo-server"; } if (explanation && explanation.symbol === 'EXIT_NET_ERROR') { From 356abaad2a0264433fc365f386df4c3e2638df4d Mon Sep 17 00:00:00 2001 From: filipenevola Date: Mon, 8 Jun 2020 14:17:16 -0400 Subject: [PATCH 31/80] Bump package versions for 1.10.3-beta.1 release --- packages/accounts-base/package.js | 2 +- packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index 7acfe1ee90..34ca334a34 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.7.0-beta1103.0", + version: "1.7.0-beta1103.1", }); Package.onUse(api => { diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 0514668868..b9c1693a42 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.10.3-beta.0' + version: '1.10.3-beta.1' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 5bd72dede7..b0dd11ea5c 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.10.3-beta.0", + "version": "1.10.3-beta.1", "recommended": false, "official": false, "description": "Meteor" From 7ac5f214d2517f55434a16796f0cc9a96e0e262d Mon Sep 17 00:00:00 2001 From: filipenevola Date: Mon, 8 Jun 2020 14:47:23 -0400 Subject: [PATCH 32/80] Fixes title of vue skel --- tools/static-assets/skel-vue/src/main.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/static-assets/skel-vue/src/main.html b/tools/static-assets/skel-vue/src/main.html index 944bc69810..99c3dfb74c 100644 --- a/tools/static-assets/skel-vue/src/main.html +++ b/tools/static-assets/skel-vue/src/main.html @@ -1,5 +1,5 @@ - skel + ~name~ From 860a3d7f76063321dffa8cc22ba2707a7a87e5e7 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Tue, 9 Jun 2020 15:32:31 -0400 Subject: [PATCH 33/80] Fixes #11021 Cordova build fails on the second time uninstalling plugins - forces the removal of plugins --- tools/cordova/project.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index d586fc0c33..828c565982 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -607,7 +607,7 @@ to Cordova project`, cordova_lib.plugin.bind(undefined, 'add', [target], commandOptions); this.runCommands(`removing plugin ${plugin} \ - from Cordova project`, cordova_lib.plugin.bind(undefined, 'rm', [plugin], + from Cordova project`, cordova_lib.plugin.bind(undefined, 'rm --force', [plugin], commandOptionsPlugin)); }); } From d77e55d083c43b7d88f44cd7619c4438648f1619 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Tue, 9 Jun 2020 16:10:06 -0400 Subject: [PATCH 34/80] Bump package versions for 1.10.3-beta.2 release --- packages/accounts-base/package.js | 2 +- packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index 34ca334a34..0733059a5a 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.7.0-beta1103.1", + version: "1.7.0-beta1103.2", }); Package.onUse(api => { diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index b9c1693a42..15a1dc871c 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.10.3-beta.1' + version: '1.10.3-beta.2' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index b0dd11ea5c..b5ce7f536b 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.10.3-beta.1", + "version": "1.10.3-beta.2", "recommended": false, "official": false, "description": "Meteor" From db385925a93bde4e1361b4d422c2e0f7fd12bfac Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Thu, 11 Jun 2020 14:34:47 +0900 Subject: [PATCH 35/80] Fix hookSend test & add to changelog --- History.md | 3 +++ packages/accounts-password/email_tests_setup.js | 2 +- packages/email/email.js | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/History.md b/History.md index f8ba36286d..6f1ab7a08c 100644 --- a/History.md +++ b/History.md @@ -7,6 +7,9 @@ instead of `dns.lookup()` which might be breaking on some environments. See [nodemailer changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) for more information. +### Changes + +* `email` package now exposes `hookSend` that runs before emails are send. ## v1.10.2, 2020-04-21 diff --git a/packages/accounts-password/email_tests_setup.js b/packages/accounts-password/email_tests_setup.js index 32c080a4a5..346390e63e 100644 --- a/packages/accounts-password/email_tests_setup.js +++ b/packages/accounts-password/email_tests_setup.js @@ -20,7 +20,7 @@ Accounts.emailTemplates.headers = { 'My-Custom-Header' : 'Cool' }; -EmailTest.hookSend(options => { +Email.hookSend(options => { const { to } = options; if (!to || !to.toUpperCase().includes('INTERCEPT')) { return true; // go ahead and send diff --git a/packages/email/email.js b/packages/email/email.js index 67cc805afa..94b43d5924 100644 --- a/packages/email/email.js +++ b/packages/email/email.js @@ -100,7 +100,7 @@ var smtpSend = function (transport, mail) { var sendHooks = []; /** - * Mock out email sending (eg, during a test.) + * Hook that runs before email is send. * * @param f {function} receives the arguments to Email.send and should return true to go * ahead and send the email (or at least, try subsequent hooks), or From c6651f16fcb6270c794f35211bd6cf36df99f469 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Mon, 22 Jun 2020 15:48:40 +0900 Subject: [PATCH 36/80] Update node, mongodb & npm Updates: Node to 12.18.1 Npm to 6.14.5 MongoDB to 4.2.7 --- meteor | 2 +- scripts/build-dev-bundle-common.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/meteor b/meteor index 15264e56ef..a41f33be36 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=12.16.1.8 +BUNDLE_VERSION=12.18.1.0 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 026a66f569..00368a5a4c 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -5,10 +5,10 @@ set -u UNAME=$(uname) ARCH=$(uname -m) -NODE_VERSION=12.16.1 -MONGO_VERSION_64BIT=4.2.5 +NODE_VERSION=12.18.1 +MONGO_VERSION_64BIT=4.2.7 MONGO_VERSION_32BIT=3.2.22 -NPM_VERSION=6.14.0 +NPM_VERSION=6.14.5 # If we built Node from source on Jenkins, this is the build number. NODE_BUILD_NUMBER= From 520da8cddfb60a1eb1195eb088dac165deb2b9ee Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Mon, 22 Jun 2020 16:18:01 +0900 Subject: [PATCH 37/80] Update history & npm in dev bundle --- History.md | 40 ++++++++++++++++++++---------- scripts/dev-bundle-tool-package.js | 2 +- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/History.md b/History.md index f1ef37e6dc..65347a317a 100644 --- a/History.md +++ b/History.md @@ -2,19 +2,6 @@ ### Breaking changes -* `email` package dependencies have been update and package version has been bumped to 2.0.0 - There is a potential breaking change as the underlying package started to use `dns.resolve()` - instead of `dns.lookup()` which might be breaking on some environments. - See [nodemailer changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) for more information. - -### Changes - -* `email` package now exposes `hookSend` that runs before emails are send. - -## v1.10.3, TBD - -### Breaking changes - N/A ### Migration steps @@ -23,8 +10,35 @@ N/A ### Changes +N/A + +## v1.10.3, TBD + +### Breaking changes + +* `email` package dependencies have been update and package version has been bumped to 2.0.0 + There is a potential breaking change as the underlying package started to use `dns.resolve()` + instead of `dns.lookup()` which might be breaking on some environments. + See [nodemailer changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) for more information. + +### Migration steps + +N/A + +### Changes + * Fixes error when removing cordova plugin that depends on cli variables. PR [#10976](https://github.com/meteor/meteor/pull/11052) +* `email` package now exposes `hookSend` that runs before emails are send. + +* The version of MongoDB used by Meteor in development has been updated + from 4.2.5 to 4.2.7 + +* Node.js has been updated to version + [12.18.1](https://nodejs.org/en/blog/release/v12.18.1/) + +* Updated npm to version 6.14.5 + ## v1.10.2, 2020-04-21 ### Breaking changes diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 266f2d7fd8..f7e9764689 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -10,7 +10,7 @@ var packageJson = { dependencies: { // Explicit dependency because we are replacing it with a bundled version // and we want to make sure there are no dependencies on a higher version - npm: "6.14.0", + npm: "6.14.5", pacote: "https://github.com/meteor/pacote/tarball/a81b0324686e85d22c7688c47629d4009000e8b8", "node-gyp": "6.0.1", "node-pre-gyp": "0.14.0", From 225422b27e53432cf7439445a83b0ca66151b13f Mon Sep 17 00:00:00 2001 From: filipenevola Date: Sun, 10 May 2020 17:53:53 -0400 Subject: [PATCH 38/80] Fixes error when removing cordova plugin that depends on cli variables --- tools/cordova/project.js | 48 +++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index 75d263ae6f..81296a5656 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -74,6 +74,34 @@ const pinnedPluginVersions = { "cordova-plugin-wkwebview-engine": "1.1.3" } +/** + * To fix Cordova error: Variable(s) missing we convert the cli_variables + * when removing plugins we want to convert for each plugin, for instance, + * cordova-plugin-facebook4: + * commandOptions { + * ... + * cli_variables: { + * 'cordova-plugin-googleplus': { + * REVERSED_CLIENT_ID: 'com.googleusercontent.apps.11111111-xxkodsuusaiusixuaix' + * }, + * 'cordova-plugin-facebook4': { APP_ID: '1111111111111111', APP_NAME: 'appname' } + * } + * } + * into this + * commandOptions { + * ... + * cli_variables: { APP_ID: '1111111111111111', APP_NAME: 'appname' } + * } + * + * @param plugin + * @param commandOptions + */ +const getCommandOptionsForPlugin = (plugin, commandOptions = {}) => { + const cli_variables = commandOptions && commandOptions.cli_variables + && commandOptions.cli_variables[plugin] || {}; + return {...commandOptions, cli_variables}; +} + export class CordovaProject { constructor(projectContext, options = {}) { @@ -560,18 +588,28 @@ from Cordova project`, async () => { { cli_variables: config, link: utils.isUrlWithFileScheme(version) }); this.runCommands(`adding plugin ${target} \ -to Cordova project`, cordova_lib.plugin.bind(undefined, 'add', [target], commandOptions)); +to Cordova project`, cordova_lib.plugin.bind(undefined, 'add', [target], + commandOptions)); } } // plugins is an array of plugin IDs. - removePlugins(plugins) { + removePlugins(plugins, config = {}) { if (_.isEmpty(plugins)) { return; } - this.runCommands(`removing plugins ${plugins} \ -from Cordova project`, cordova_lib.plugin.bind(undefined, 'rm', plugins, this.defaultOptions)); + const commandOptions = _.extend(this.defaultOptions, + { cli_variables: config }); + + plugins.forEach(plugin => { + const commandOptionsPlugin = getCommandOptionsForPlugin(plugin, + commandOptions); + + this.runCommands(`removing plugin ${plugin} \ + from Cordova project`, cordova_lib.plugin.bind(undefined, 'rm', [plugin], + commandOptionsPlugin)); + }); } // Ensures that the Cordova plugins are synchronized with the app-level @@ -699,7 +737,7 @@ perform cordova plugins reinstall`); Object.keys(installedPluginVersions)); } - this.removePlugins(pluginsToRemove); + this.removePlugins(pluginsToRemove, pluginsConfiguration); let pluginVersionsToInstall; From c19bb8f492150842b6d255d2aa1f3cd41ca7382d Mon Sep 17 00:00:00 2001 From: filipenevola Date: Sun, 10 May 2020 21:46:17 -0400 Subject: [PATCH 39/80] Bump package versions for 1.10.3-beta.0 release --- History.md | 14 ++++++++++++++ packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/History.md b/History.md index 60ce0c0116..8b04628b37 100644 --- a/History.md +++ b/History.md @@ -1,4 +1,18 @@ +## v1.10.3, TBD + +### Breaking changes + +N/A + +### Migration steps + +N/A + +### Changes + +* Fixes error when removing cordova plugin that depends on cli variables. PR [#10976](https://github.com/meteor/meteor/pull/11052) + ## v1.10.2, 2020-04-21 ### Breaking changes diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 651e2fe3c2..0514668868 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.10.2' + version: '1.10.3-beta.0' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index bb569315d0..5bd72dede7 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.10.2-rc.0", + "version": "1.10.3-beta.0", "recommended": false, "official": false, "description": "Meteor" From ff0acbc7f741f9cd6a534216c9028001f3ae37f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Go=C5=82=C4=99biowski?= Date: Thu, 7 May 2020 10:49:43 +0200 Subject: [PATCH 40/80] Fix installing scoped cordova plugins --- tools/cordova/project.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index 81296a5656..bc899934f9 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -773,7 +773,7 @@ perform cordova plugins reinstall`); // cordova-plugin-whitelist@1.3.2 => { 'cordova-plugin-whitelist': '1.3.2' } // com.cordova.plugin@file://.cordova-plugins/plugin => { 'com.cordova.plugin': 'file://.cordova-plugins/plugin' } // @scope/plugin@1.0.0 => { 'com.cordova.plugin': 'scope/plugin' } - const installed = this.listInstalledPluginVersions(true); + const installed = this.listInstalledPluginVersions(); const installedPluginsNames = Object.keys(installed); const installedPluginsVersions = Object.values(installed); const missingPlugins = {}; From 43cc050cf8568d40045d1fac51700c839b686636 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Go=C5=82=C4=99biowski?= Date: Thu, 7 May 2020 23:28:12 +0200 Subject: [PATCH 41/80] Fix installing cordova plugin from git url --- tools/cordova/project.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index bc899934f9..d586fc0c33 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -549,7 +549,7 @@ from Cordova project`, async () => { buildmessage.assertInJob(); if (utils.isUrlWithSha(version)) { - return convertToGitUrl(version); + return `${id}@${convertToGitUrl(version)}`; } else if (utils.isUrlWithFileScheme(version)) { // Strip file:// and resolve the path relative to the cordova-build // directory From a7ae3840b716f4baf7082316d2d9f7aac7958dc7 Mon Sep 17 00:00:00 2001 From: afrokick Date: Thu, 28 May 2020 15:50:08 +0300 Subject: [PATCH 42/80] update postcss --- .../.npm/package/npm-shrinkwrap.json | 471 ++++++++++++------ packages/minifier-css/package.js | 4 +- 2 files changed, 311 insertions(+), 164 deletions(-) diff --git a/packages/minifier-css/.npm/package/npm-shrinkwrap.json b/packages/minifier-css/.npm/package/npm-shrinkwrap.json index 53b50ac44e..0cf06de439 100644 --- a/packages/minifier-css/.npm/package/npm-shrinkwrap.json +++ b/packages/minifier-css/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "@types/q": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", - "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" }, "alphanum-sort": { "version": "1.0.2", @@ -27,9 +27,9 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "browserslist": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", - "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==" }, "caller-callsite": { "version": "2.0.0", @@ -52,9 +52,9 @@ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==" }, "caniuse-lite": { - "version": "1.0.30000989", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", - "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==" + "version": "1.0.30001066", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", + "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==" }, "chalk": { "version": "2.4.2", @@ -109,9 +109,9 @@ "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==" }, "css-select": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz", - "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==" }, "css-select-base-adapter": { "version": "0.1.1", @@ -119,31 +119,19 @@ "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, "css-tree": { - "version": "1.0.0-alpha.33", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.33.tgz", - "integrity": "sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==", - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "css-unit-converter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=" + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==" }, "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", + "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==" }, "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, "cssnano": { "version": "4.1.10", @@ -176,24 +164,19 @@ "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" }, "csso": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", - "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", + "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", "dependencies": { "css-tree": { - "version": "1.0.0-alpha.29", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", - "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==" + "version": "1.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", + "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==" }, "mdn-data": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", - "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", + "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==" } } }, @@ -203,9 +186,9 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" }, "dom-serializer": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz", - "integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dependencies": { "domelementtype": { "version": "2.0.1", @@ -225,19 +208,19 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==" }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==" }, "electron-to-chromium": { - "version": "1.3.252", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.252.tgz", - "integrity": "sha512-NWJ5TztDnjExFISZHFwpoJjMbLUifsNBnx7u2JI0gCw6SbKyQYYWWtBHasO/jPtHym69F4EZuTpRNGN11MT/jg==" + "version": "1.3.453", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.453.tgz", + "integrity": "sha512-IQbCfjJR0NDDn/+vojTlq7fPSREcALtF8M1n01gw7nQghCtfFYrJ2dfhsp8APr8bANoFC8vRTFVXMOGpT0eetw==" }, "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.2.tgz", + "integrity": "sha512-dmD3AvJQBUjKpcNkoqr+x+IF0SdRtPz9Vk0uTy4yWqga9ibB6s4v++QFWNohjiUGoMlF552ZvNyXDxz5iW0qmw==" }, "error-ex": { "version": "1.3.2", @@ -245,14 +228,14 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" }, "es-abstract": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.1.tgz", - "integrity": "sha512-cp/Tb1oA/rh2X7vqeSOvM+TSo3UkJLX70eNihgVEvnzwAgikjkTFr/QVgRCaxjm0knCNQzNoxxxcw2zO2LJdZA==" + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==" }, "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" }, "escape-string-regexp": { "version": "1.0.5", @@ -264,6 +247,11 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -280,9 +268,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "hex-color-regex": { "version": "1.1.0", @@ -325,9 +313,9 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" }, "is-color-stop": { "version": "1.1.0", @@ -335,9 +323,9 @@ "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=" }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, "is-directory": { "version": "0.3.1", @@ -345,14 +333,14 @@ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" }, "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==" }, "is-resolvable": { "version": "1.1.0", @@ -365,20 +353,25 @@ "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==" }, "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==" }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==" }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -395,19 +388,19 @@ "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" }, "node-releases": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.29.tgz", - "integrity": "sha512-R5bDhzh6I+tpi/9i2hrrvGJ3yKPYzlVOORDkXhnZuwi5D3q1I5w4vYy24PJXTcLk9Q0kws9TO77T75bcK8/ysQ==" + "version": "1.1.57", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.57.tgz", + "integrity": "sha512-ZQmnWS7adi61A9JsllJ2gdj2PauElcjnOwTp2O011iGzoakTxUsDGSe+6vD7wXbKdqhSFymC0OSx35aAMhrSdw==" }, "normalize-url": { "version": "3.3.0", @@ -420,49 +413,93 @@ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==" }, "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==" + }, "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==" }, "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==" + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=" + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=" }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=" + }, "postcss": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz", - "integrity": "sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==" + "version": "7.0.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.31.tgz", + "integrity": "sha512-a937VDHE1ftkjk+8/7nj/mrjtmkn69xxzJgRETXdAUU+IgOYPQNJF17haGWbeDxSyk++HA14UA98FurvPyBJOA==" }, "postcss-calc": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", - "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==" + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", + "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==" }, "postcss-colormin": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==" + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-convert-values": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==" + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-discard-comments": { "version": "4.0.2", @@ -487,7 +524,14 @@ "postcss-merge-longhand": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==" + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-merge-rules": { "version": "4.0.3", @@ -495,26 +539,47 @@ "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", "dependencies": { "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==" } } }, "postcss-minify-font-values": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==" + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-minify-gradients": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==" + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-minify-params": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==" + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-minify-selectors": { "version": "4.0.2", @@ -522,9 +587,9 @@ "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", "dependencies": { "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==" } } }, @@ -536,47 +601,110 @@ "postcss-normalize-display-values": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==" + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-positions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==" + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-repeat-style": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==" + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-string": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==" + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-timing-functions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==" + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-unicode": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==" + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-url": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==" + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-normalize-whitespace": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==" + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-ordered-values": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==" + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-reduce-initial": { "version": "4.0.3", @@ -586,17 +714,31 @@ "postcss-reduce-transforms": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==" + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==" }, "postcss-svgo": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==" + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } }, "postcss-unique-selectors": { "version": "4.0.1", @@ -604,9 +746,9 @@ "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==" }, "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" }, "q": { "version": "1.5.1", @@ -633,11 +775,6 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -665,15 +802,25 @@ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==" + }, "string.prototype.trimleft": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz", - "integrity": "sha1-aLaqjhYsaoDnbjqKDC50cYbicf8=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==" }, "string.prototype.trimright": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz", - "integrity": "sha1-q0pW2AKgH75yk+EehPJNyBZGYd0=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==" + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==" }, "stylehacks": { "version": "4.0.3", @@ -681,9 +828,9 @@ "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", "dependencies": { "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==" } } }, @@ -693,9 +840,9 @@ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==" }, "svgo": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.0.tgz", - "integrity": "sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==" }, "timsort": { "version": "0.3.0", @@ -718,14 +865,14 @@ "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" }, "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==" }, "vendors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz", - "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" } } } diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index 529c2f6432..ba831cafbc 100644 --- a/packages/minifier-css/package.js +++ b/packages/minifier-css/package.js @@ -1,10 +1,10 @@ Package.describe({ summary: 'CSS minifier', - version: '1.5.0' + version: '1.5.1' }); Npm.depends({ - postcss: '7.0.18', + postcss: '7.0.31', cssnano: '4.1.10' }); From 381306170bc997f3a0f75f372603ebe3bc07668f Mon Sep 17 00:00:00 2001 From: Chris Visser <2496739+chris-visser@users.noreply.github.com> Date: Sun, 7 Jun 2020 17:57:17 +0200 Subject: [PATCH 43/80] Add create command for vuejs --- tools/cli/commands.js | 7 ++- tools/static-assets/skel-vue/.gitignore | 1 + .../static-assets/skel-vue/.meteor/.gitignore | 1 + tools/static-assets/skel-vue/.meteor/packages | 24 ++++++++ .../static-assets/skel-vue/.meteor/platforms | 2 + tools/static-assets/skel-vue/package.json | 23 ++++++++ tools/static-assets/skel-vue/src/App.vue | 26 +++++++++ tools/static-assets/skel-vue/src/client.js | 12 ++++ .../skel-vue/src/collections/Links.js | 3 + .../skel-vue/src/collections/Links.tests.js | 24 ++++++++ .../skel-vue/src/components/Hello.vue | 27 +++++++++ .../skel-vue/src/components/Info.vue | 55 +++++++++++++++++++ tools/static-assets/skel-vue/src/fixtures.js | 32 +++++++++++ tools/static-assets/skel-vue/src/main.html | 7 +++ .../skel-vue/src/methods/createLink.js | 16 ++++++ .../skel-vue/src/methods/createLink.tests.js | 20 +++++++ .../skel-vue/src/methods/index.js | 1 + tools/static-assets/skel-vue/src/plugins.js | 4 ++ .../skel-vue/src/publications/index.js | 1 + .../skel-vue/src/publications/links.js | 6 ++ .../skel-vue/src/publications/links.tests.js | 22 ++++++++ tools/static-assets/skel-vue/src/server.js | 3 + tools/static-assets/skel-vue/tests/main.js | 20 +++++++ 23 files changed, 336 insertions(+), 1 deletion(-) create mode 100644 tools/static-assets/skel-vue/.gitignore create mode 100644 tools/static-assets/skel-vue/.meteor/.gitignore create mode 100644 tools/static-assets/skel-vue/.meteor/packages create mode 100644 tools/static-assets/skel-vue/.meteor/platforms create mode 100644 tools/static-assets/skel-vue/package.json create mode 100644 tools/static-assets/skel-vue/src/App.vue create mode 100644 tools/static-assets/skel-vue/src/client.js create mode 100644 tools/static-assets/skel-vue/src/collections/Links.js create mode 100644 tools/static-assets/skel-vue/src/collections/Links.tests.js create mode 100644 tools/static-assets/skel-vue/src/components/Hello.vue create mode 100644 tools/static-assets/skel-vue/src/components/Info.vue create mode 100644 tools/static-assets/skel-vue/src/fixtures.js create mode 100644 tools/static-assets/skel-vue/src/main.html create mode 100644 tools/static-assets/skel-vue/src/methods/createLink.js create mode 100644 tools/static-assets/skel-vue/src/methods/createLink.tests.js create mode 100644 tools/static-assets/skel-vue/src/methods/index.js create mode 100644 tools/static-assets/skel-vue/src/plugins.js create mode 100644 tools/static-assets/skel-vue/src/publications/index.js create mode 100644 tools/static-assets/skel-vue/src/publications/links.js create mode 100644 tools/static-assets/skel-vue/src/publications/links.tests.js create mode 100644 tools/static-assets/skel-vue/src/server.js create mode 100644 tools/static-assets/skel-vue/tests/main.js diff --git a/tools/cli/commands.js b/tools/cli/commands.js index 95df9286d2..a50cd06c07 100644 --- a/tools/cli/commands.js +++ b/tools/cli/commands.js @@ -517,6 +517,7 @@ main.registerCommand({ minimal: { type: Boolean }, full: { type: Boolean }, react: { type: Boolean }, + vue: { type: Boolean }, typescript: { type: Boolean }, }, catalogRefresh: new catalog.Refresh.Never() @@ -770,6 +771,8 @@ main.registerCommand({ skelName += "-full"; } else if (options.react) { skelName += "-react"; + } else if (options.vue) { + skelName += "-vue"; } else if (options.typescript) { skelName += "-typescript"; } @@ -886,8 +889,9 @@ main.registerCommand({ ! options.minimal && ! options.full && ! options.react && + ! options.vue && ! options.typescript) { - // Notify people about --bare, --minimal, --full, --react, and --typescript. + // Notify people about --bare, --minimal, --full, --react, --vue, and --typescript. Console.info([ "", "To start with a different app template, try one of the following:", @@ -898,6 +902,7 @@ main.registerCommand({ cmd("meteor create --minimal # to create an app with as few Meteor packages as possible"); cmd("meteor create --full # to create a more complete scaffolded app"); cmd("meteor create --react # to create a basic React-based app"); + cmd("meteor create --vue # to create a basic Vue-based app"); cmd("meteor create --typescript # to create an app using TypeScript and React"); } diff --git a/tools/static-assets/skel-vue/.gitignore b/tools/static-assets/skel-vue/.gitignore new file mode 100644 index 0000000000..c2658d7d1b --- /dev/null +++ b/tools/static-assets/skel-vue/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/tools/static-assets/skel-vue/.meteor/.gitignore b/tools/static-assets/skel-vue/.meteor/.gitignore new file mode 100644 index 0000000000..4083037423 --- /dev/null +++ b/tools/static-assets/skel-vue/.meteor/.gitignore @@ -0,0 +1 @@ +local diff --git a/tools/static-assets/skel-vue/.meteor/packages b/tools/static-assets/skel-vue/.meteor/packages new file mode 100644 index 0000000000..83be6b3a62 --- /dev/null +++ b/tools/static-assets/skel-vue/.meteor/packages @@ -0,0 +1,24 @@ +# Meteor packages used by this project, one per line. +# Check this file (and the other files in this directory) into your repository. +# +# 'meteor add' and 'meteor remove' will edit this file for you, +# but you can also edit it by hand. + +meteor-base # Packages every Meteor app needs to have +mobile-experience # Packages for a great mobile UX +mongo # The database Meteor supports right now +reactive-var # Reactive variable for tracker + +standard-minifier-css # CSS minifier run for production mode +standard-minifier-js # JS minifier run for production mode +es5-shim # ECMAScript 5 compatibility for older browsers +ecmascript # Enable ECMAScript2015+ syntax in app code +typescript # Enable TypeScript syntax in .ts and .tsx modules +shell-server # Server-side component of the `meteor shell` command + +tracker # Dependency tracker to allow reactive callbacks +static-html # Define static page content in .html files +akryum:vue-component # Vue-CLI template to publish components + +meteortesting:mocha # A package for writing and running your meteor app and package tests with mocha +johanbrook:publication-collector # Test a Meteor publication by collecting its output diff --git a/tools/static-assets/skel-vue/.meteor/platforms b/tools/static-assets/skel-vue/.meteor/platforms new file mode 100644 index 0000000000..efeba1b50c --- /dev/null +++ b/tools/static-assets/skel-vue/.meteor/platforms @@ -0,0 +1,2 @@ +server +browser diff --git a/tools/static-assets/skel-vue/package.json b/tools/static-assets/skel-vue/package.json new file mode 100644 index 0000000000..97a009989c --- /dev/null +++ b/tools/static-assets/skel-vue/package.json @@ -0,0 +1,23 @@ +{ + "name": "skel", + "private": true, + "scripts": { + "start": "meteor run", + "test": "meteor test --once --driver-package meteortesting:mocha", + "test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha", + "visualize": "meteor --production --extra-packages bundle-visualizer" + }, + "dependencies": { + "@babel/runtime": "^7.8.3", + "meteor-node-stubs": "^1.0.0", + "vue": "^2.6.11", + "vue-meteor-tracker": "^2.0.0-beta.5" + }, + "meteor": { + "mainModule": { + "client": "src/client.js", + "server": "src/server.js" + }, + "testModule": "tests/main.js" + } +} diff --git a/tools/static-assets/skel-vue/src/App.vue b/tools/static-assets/skel-vue/src/App.vue new file mode 100644 index 0000000000..e126098ccb --- /dev/null +++ b/tools/static-assets/skel-vue/src/App.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/tools/static-assets/skel-vue/src/client.js b/tools/static-assets/skel-vue/src/client.js new file mode 100644 index 0000000000..835acaec7b --- /dev/null +++ b/tools/static-assets/skel-vue/src/client.js @@ -0,0 +1,12 @@ +import Vue from 'vue' + +import './plugins' + +import App from './App.vue' + +Meteor.startup(() => { + new Vue({ + el: '#app', + ...App, + }) +}) diff --git a/tools/static-assets/skel-vue/src/collections/Links.js b/tools/static-assets/skel-vue/src/collections/Links.js new file mode 100644 index 0000000000..de6a43c4a4 --- /dev/null +++ b/tools/static-assets/skel-vue/src/collections/Links.js @@ -0,0 +1,3 @@ +import { Mongo } from 'meteor/mongo'; + +export default new Mongo.Collection('links'); diff --git a/tools/static-assets/skel-vue/src/collections/Links.tests.js b/tools/static-assets/skel-vue/src/collections/Links.tests.js new file mode 100644 index 0000000000..0bc5b437dd --- /dev/null +++ b/tools/static-assets/skel-vue/src/collections/Links.tests.js @@ -0,0 +1,24 @@ +// Tests for the behavior of the links collection +// +// https://guide.meteor.com/testing.html + +import { Meteor } from 'meteor/meteor'; +import { assert } from 'chai'; +import Links from './links.js'; + +if (Meteor.isServer) { + describe('links collection', function () { + it('insert correctly', function () { + const linkId = Links.insert({ + title: 'meteor homepage', + url: 'https://www.meteor.com', + }); + const added = Links.find({ _id: linkId }); + const collectionName = added._getCollectionName(); + const count = added.count(); + + assert.equal(collectionName, 'links'); + assert.equal(count, 1); + }); + }); +} diff --git a/tools/static-assets/skel-vue/src/components/Hello.vue b/tools/static-assets/skel-vue/src/components/Hello.vue new file mode 100644 index 0000000000..64947eb06a --- /dev/null +++ b/tools/static-assets/skel-vue/src/components/Hello.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/tools/static-assets/skel-vue/src/components/Info.vue b/tools/static-assets/skel-vue/src/components/Info.vue new file mode 100644 index 0000000000..f20fc4c800 --- /dev/null +++ b/tools/static-assets/skel-vue/src/components/Info.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/tools/static-assets/skel-vue/src/fixtures.js b/tools/static-assets/skel-vue/src/fixtures.js new file mode 100644 index 0000000000..f629f5ca0b --- /dev/null +++ b/tools/static-assets/skel-vue/src/fixtures.js @@ -0,0 +1,32 @@ +import { Meteor } from 'meteor/meteor'; +import Links from './collections/Links.js'; + +Meteor.startup(() => { + // if the Links collection is empty + if (Links.find().count() === 0) { + const data = [ + { + title: 'Do the Tutorial', + url: 'https://www.meteor.com/try', + createdAt: new Date(), + }, + { + title: 'Follow the Guide', + url: 'http://guide.meteor.com', + createdAt: new Date(), + }, + { + title: 'Read the Docs', + url: 'https://docs.meteor.com', + createdAt: new Date(), + }, + { + title: 'Discussions', + url: 'https://forums.meteor.com', + createdAt: new Date(), + }, + ]; + + data.forEach(link => Links.insert(link)); + } +}); diff --git a/tools/static-assets/skel-vue/src/main.html b/tools/static-assets/skel-vue/src/main.html new file mode 100644 index 0000000000..944bc69810 --- /dev/null +++ b/tools/static-assets/skel-vue/src/main.html @@ -0,0 +1,7 @@ + + skel + + + +
+ diff --git a/tools/static-assets/skel-vue/src/methods/createLink.js b/tools/static-assets/skel-vue/src/methods/createLink.js new file mode 100644 index 0000000000..876f710978 --- /dev/null +++ b/tools/static-assets/skel-vue/src/methods/createLink.js @@ -0,0 +1,16 @@ +import { Meteor } from 'meteor/meteor'; +import { check } from 'meteor/check'; +import Links from '../collections/Links.js'; + +Meteor.methods({ + 'createLink'(title, url) { + check(url, String); + check(title, String); + + return Links.insert({ + url, + title, + createdAt: new Date(), + }); + }, +}); diff --git a/tools/static-assets/skel-vue/src/methods/createLink.tests.js b/tools/static-assets/skel-vue/src/methods/createLink.tests.js new file mode 100644 index 0000000000..d899a7338f --- /dev/null +++ b/tools/static-assets/skel-vue/src/methods/createLink.tests.js @@ -0,0 +1,20 @@ +import { Meteor } from 'meteor/meteor'; +import { assert } from 'chai'; +import Links from '../collections/Links.js'; +import './methods.js'; + +if (Meteor.isServer) { + describe('method: createLink', function () { + beforeEach(function () { + Links.remove({}); + }); + + it('can add a new link', function () { + const addLink = Meteor.server.method_handlers['createLink']; + + addLink.apply({}, ['meteor.com', 'https://www.meteor.com']); + + assert.equal(Links.find().count(), 1); + }); + }); +} diff --git a/tools/static-assets/skel-vue/src/methods/index.js b/tools/static-assets/skel-vue/src/methods/index.js new file mode 100644 index 0000000000..c52403a2e8 --- /dev/null +++ b/tools/static-assets/skel-vue/src/methods/index.js @@ -0,0 +1 @@ +import './createLink' diff --git a/tools/static-assets/skel-vue/src/plugins.js b/tools/static-assets/skel-vue/src/plugins.js new file mode 100644 index 0000000000..eb976c92e5 --- /dev/null +++ b/tools/static-assets/skel-vue/src/plugins.js @@ -0,0 +1,4 @@ +import Vue from 'vue' +import VueMeteorTracker from 'vue-meteor-tracker' + +Vue.use(VueMeteorTracker) diff --git a/tools/static-assets/skel-vue/src/publications/index.js b/tools/static-assets/skel-vue/src/publications/index.js new file mode 100644 index 0000000000..d161b580e7 --- /dev/null +++ b/tools/static-assets/skel-vue/src/publications/index.js @@ -0,0 +1 @@ +import './links' diff --git a/tools/static-assets/skel-vue/src/publications/links.js b/tools/static-assets/skel-vue/src/publications/links.js new file mode 100644 index 0000000000..f085d75045 --- /dev/null +++ b/tools/static-assets/skel-vue/src/publications/links.js @@ -0,0 +1,6 @@ +import { Meteor } from 'meteor/meteor'; +import Links from '../collections/Links.js'; + +Meteor.publish('links', function () { + return Links.find(); +}); diff --git a/tools/static-assets/skel-vue/src/publications/links.tests.js b/tools/static-assets/skel-vue/src/publications/links.tests.js new file mode 100644 index 0000000000..37f337c869 --- /dev/null +++ b/tools/static-assets/skel-vue/src/publications/links.tests.js @@ -0,0 +1,22 @@ +import { assert } from 'chai' +import { PublicationCollector } from 'meteor/johanbrook:publication-collector' +import Links from '../collections/Links.js' +import './publications.js' + +describe('Publish links', function () { + beforeEach(function () { + Links.remove({}) + Links.insert({ + title: 'meteor homepage', + url: 'https://www.meteor.com' + }) + }) + + it('sends all links', function (done) { + const collector = new PublicationCollector() + collector.collect('links', (collections) => { + assert.equal(collections.links.length, 1) + done() + }) + }) +}) diff --git a/tools/static-assets/skel-vue/src/server.js b/tools/static-assets/skel-vue/src/server.js new file mode 100644 index 0000000000..c48a837760 --- /dev/null +++ b/tools/static-assets/skel-vue/src/server.js @@ -0,0 +1,3 @@ +import './fixtures' +import './methods' +import './publications' diff --git a/tools/static-assets/skel-vue/tests/main.js b/tools/static-assets/skel-vue/tests/main.js new file mode 100644 index 0000000000..6d2a32e09d --- /dev/null +++ b/tools/static-assets/skel-vue/tests/main.js @@ -0,0 +1,20 @@ +import assert from "assert"; + +describe("skel", function () { + it("package.json has correct name", async function () { + const { name } = await import("../package.json"); + assert.strictEqual(name, "skel"); + }); + + if (Meteor.isClient) { + it("client is not server", function () { + assert.strictEqual(Meteor.isServer, false); + }); + } + + if (Meteor.isServer) { + it("server is not client", function () { + assert.strictEqual(Meteor.isClient, false); + }); + } +}); From 368105b6480e552935e0b4da04c3053673b0754d Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sat, 9 May 2020 02:24:03 +0900 Subject: [PATCH 44/80] Add beforeExternalLoginHook Add hook that allows to run check before user is created/logged via external service. --- packages/accounts-base/accounts_server.js | 17 +++++++++++++++++ packages/accounts-base/package.js | 2 +- packages/accounts-password/password_client.js | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/accounts-base/accounts_server.js b/packages/accounts-base/accounts_server.js index 02bd42a85b..a94ca5f5b1 100644 --- a/packages/accounts-base/accounts_server.js +++ b/packages/accounts-base/accounts_server.js @@ -58,6 +58,7 @@ export class AccountsServer extends AccountsCommon { setExpireTokensInterval(this); this._validateLoginHook = new Hook({ bindEnvironment: false }); + this._beforeExternalLoginHook = new Hook({ bindEnvironment: false }); this._validateNewUserHooks = [ defaultValidateNewUserHook.bind(this) ]; @@ -117,6 +118,15 @@ export class AccountsServer extends AccountsCommon { this._validateNewUserHooks.push(func); } + /** + * @summary Validate login from external service + * @locus Server + * @param {Function} func Called whenever login/user creation from external service is attempted. Login or user creation based on this login can be aborted by by passing a falsy value or throwing an exception. + */ + beforeExternalLoginHook(func) { + this._beforeExternalLoginHook.register(func); + } + /// /// CREATE USER HOOKS /// @@ -1211,6 +1221,13 @@ export class AccountsServer extends AccountsCommon { let user = this.users.findOne(selector, {fields: this._options.defaultFieldSelector}); + // Before continuing, run user hook to see if we should continue + this._beforeExternalLoginHook.forEach(hook => { + if (!hook(serviceName, serviceData, user)) { + throw new Meteor.Error(403, "Login forbidden"); + } + }); + // When creating a new user we pass through all options. When updating an // existing user, by default we only process/pass through the serviceData // (eg, so that we keep an unexpired access token and don't cache old email diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index d0cae1538f..d5df2e69c5 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.6.0", + version: "1.7.0", }); Package.onUse(api => { diff --git a/packages/accounts-password/password_client.js b/packages/accounts-password/password_client.js index 022c1cdf65..871393127a 100644 --- a/packages/accounts-password/password_client.js +++ b/packages/accounts-password/password_client.js @@ -20,7 +20,7 @@ const reportError = (error, callback) => { /** * @summary Log the user in with a password. * @locus Client - * @param {Object | String} user + * @param {Object | String} selector * Either a string interpreted as a username or an email; or an object with a * single key: `email`, `username` or `id`. Username or email match in a case * insensitive manner. From 3c56a2d7822e1fa17cd9db2ca80e180efebe3c94 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 19 May 2020 14:58:33 +0900 Subject: [PATCH 45/80] Adjust beforeExternalLogin hook & add tests Adjust the beforeExternalLogin hook to be like onExternalLogin hook and add test. --- packages/accounts-base/accounts_server.js | 21 ++++++------ packages/accounts-base/accounts_tests.js | 41 +++++++++++++++++++++++ 2 files changed, 52 insertions(+), 10 deletions(-) diff --git a/packages/accounts-base/accounts_server.js b/packages/accounts-base/accounts_server.js index a94ca5f5b1..24404e9b78 100644 --- a/packages/accounts-base/accounts_server.js +++ b/packages/accounts-base/accounts_server.js @@ -58,7 +58,6 @@ export class AccountsServer extends AccountsCommon { setExpireTokensInterval(this); this._validateLoginHook = new Hook({ bindEnvironment: false }); - this._beforeExternalLoginHook = new Hook({ bindEnvironment: false }); this._validateNewUserHooks = [ defaultValidateNewUserHook.bind(this) ]; @@ -72,9 +71,9 @@ export class AccountsServer extends AccountsCommon { resetPassword: token => Meteor.absoluteUrl(`#/reset-password/${token}`), verifyEmail: token => Meteor.absoluteUrl(`#/verify-email/${token}`), enrollAccount: token => Meteor.absoluteUrl(`#/enroll-account/${token}`), - } + }; - this.addDefaultRateLimit() + this.addDefaultRateLimit(); } /// @@ -123,8 +122,12 @@ export class AccountsServer extends AccountsCommon { * @locus Server * @param {Function} func Called whenever login/user creation from external service is attempted. Login or user creation based on this login can be aborted by by passing a falsy value or throwing an exception. */ - beforeExternalLoginHook(func) { - this._beforeExternalLoginHook.register(func); + beforeExternalLogin(func) { + if (this._beforeExternalLoginHook) { + throw new Error("Can only call beforeExternalLogin once"); + } + + this._beforeExternalLoginHook = func; } /// @@ -1222,11 +1225,9 @@ export class AccountsServer extends AccountsCommon { let user = this.users.findOne(selector, {fields: this._options.defaultFieldSelector}); // Before continuing, run user hook to see if we should continue - this._beforeExternalLoginHook.forEach(hook => { - if (!hook(serviceName, serviceData, user)) { - throw new Meteor.Error(403, "Login forbidden"); - } - }); + if (this._beforeExternalLoginHook && !this._beforeExternalLoginHook(serviceName, serviceData, user)) { + throw new Meteor.Error(403, "Login forbidden"); + } // When creating a new user we pass through all options. When updating an // existing user, by default we only process/pass through the serviceData diff --git a/packages/accounts-base/accounts_tests.js b/packages/accounts-base/accounts_tests.js index 0aa92459c9..fa52871a21 100644 --- a/packages/accounts-base/accounts_tests.js +++ b/packages/accounts-base/accounts_tests.js @@ -623,3 +623,44 @@ Tinytest.add( Accounts._options = accountsOptions; } ); + +Tinytest.add( + 'accounts - verify beforeExternalLogin hook can stop user login', + test => { + // Verify user data is saved properly when not using the + // beforeExternalLogin hook. + let facebookId = Random.id(); + const uid1 = Accounts.updateOrCreateUserFromExternalService( + 'facebook', + { id: facebookId }, + { profile: { foo: 1 } }, + ).userId; + const ignoreFieldName = "bigArray"; + const c = Meteor.users.update(uid1, {$set: {[ignoreFieldName]: [1]}}); + let users = + Meteor.users.find({ 'services.facebook.id': facebookId }).fetch(); + test.length(users, 1); + test.equal(users[0].profile.foo, 1); + test.isNotUndefined(users[0][ignoreFieldName], 'ignoreField - before limit fields'); + + // Verify that when beforeExternalLogin returns false + // that an error throws and user is not saved + Accounts.beforeExternalLogin((serviceName, serviceData, user) => { + // Check that we get the correct data + test.equal(serviceName, 'facebook'); + test.equal(serviceData, { id: facebookId }); + test.equal(user._id, uid1); + return false + }); + + test.throws(() => Accounts.updateOrCreateUserFromExternalService( + 'facebook', + { id: facebookId }, + { profile: { foo: 1 } }, + )); + + // Cleanup + Meteor.users.remove(uid1); + Accounts._beforeExternalLoginHook = null; + } +); From 95f52782c1e5468bf855453e6f822f92a7557dfb Mon Sep 17 00:00:00 2001 From: filipenevola Date: Mon, 8 Jun 2020 09:38:28 -0400 Subject: [PATCH 46/80] Bump accounts-base package version to beta1103.0 --- packages/accounts-base/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index d5df2e69c5..7acfe1ee90 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.7.0", + version: "1.7.0-beta1103.0", }); Package.onUse(api => { From da2c653803541370aff2d95baa1c808a3d566ea9 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Mon, 8 Jun 2020 13:23:28 -0400 Subject: [PATCH 47/80] Adds message for when Mongo server is not starting on Windows. --- tools/runners/run-mongo.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/runners/run-mongo.js b/tools/runners/run-mongo.js index 731b5863ee..ed4e7a3ff1 100644 --- a/tools/runners/run-mongo.js +++ b/tools/runners/run-mongo.js @@ -938,6 +938,10 @@ _.extend(MRp, { "Looks like you are out of free disk space under .meteor/local."; } else if (explanation) { message += "\n" + explanation.longText; + } else if (process.platform === 'win32') { + message += "\n\n" + + "Check how to troubleshoot here " + + "https://docs.meteor.com/windows.html#cant-start-mongo-server"; } if (explanation && explanation.symbol === 'EXIT_NET_ERROR') { From 86c2945c846697a443956bd8bf8d27ab4e589804 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Mon, 8 Jun 2020 14:17:16 -0400 Subject: [PATCH 48/80] Bump package versions for 1.10.3-beta.1 release --- packages/accounts-base/package.js | 2 +- packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index 7acfe1ee90..34ca334a34 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.7.0-beta1103.0", + version: "1.7.0-beta1103.1", }); Package.onUse(api => { diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 0514668868..b9c1693a42 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.10.3-beta.0' + version: '1.10.3-beta.1' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 5bd72dede7..b0dd11ea5c 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.10.3-beta.0", + "version": "1.10.3-beta.1", "recommended": false, "official": false, "description": "Meteor" From fa181af9cb5ba02f550b204620e3762d2e29af63 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Mon, 8 Jun 2020 14:47:23 -0400 Subject: [PATCH 49/80] Fixes title of vue skel --- tools/static-assets/skel-vue/src/main.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/static-assets/skel-vue/src/main.html b/tools/static-assets/skel-vue/src/main.html index 944bc69810..99c3dfb74c 100644 --- a/tools/static-assets/skel-vue/src/main.html +++ b/tools/static-assets/skel-vue/src/main.html @@ -1,5 +1,5 @@ - skel + ~name~ From c77431d41e4f56659757b9555ef3e0adb8b0a603 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Tue, 9 Jun 2020 15:32:31 -0400 Subject: [PATCH 50/80] Fixes #11021 Cordova build fails on the second time uninstalling plugins - forces the removal of plugins --- tools/cordova/project.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index d586fc0c33..828c565982 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -607,7 +607,7 @@ to Cordova project`, cordova_lib.plugin.bind(undefined, 'add', [target], commandOptions); this.runCommands(`removing plugin ${plugin} \ - from Cordova project`, cordova_lib.plugin.bind(undefined, 'rm', [plugin], + from Cordova project`, cordova_lib.plugin.bind(undefined, 'rm --force', [plugin], commandOptionsPlugin)); }); } From 127dea969bf42922824b1188e43a2ef88af20a51 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Tue, 9 Jun 2020 16:10:06 -0400 Subject: [PATCH 51/80] Bump package versions for 1.10.3-beta.2 release --- packages/accounts-base/package.js | 2 +- packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index 34ca334a34..0733059a5a 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.7.0-beta1103.1", + version: "1.7.0-beta1103.2", }); Package.onUse(api => { diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index b9c1693a42..15a1dc871c 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.10.3-beta.1' + version: '1.10.3-beta.2' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index b0dd11ea5c..b5ce7f536b 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.10.3-beta.1", + "version": "1.10.3-beta.2", "recommended": false, "official": false, "description": "Meteor" From b9adad7e4757a0e2a5c162ad22e350d350ca8ea6 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 6 May 2020 23:13:27 +0900 Subject: [PATCH 52/80] Update email dependencies And bump the email package version as a result. --- History.md | 6 ++++++ packages/email/.npm/package/npm-shrinkwrap.json | 14 +++++++------- packages/email/email.js | 10 +++++----- packages/email/package.js | 6 +++--- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/History.md b/History.md index 8b04628b37..e3ee5c795e 100644 --- a/History.md +++ b/History.md @@ -1,3 +1,9 @@ +## vNEXT, unreleased + +### Changes + +* `email` package dependencies have been update and package version has been bumped to 1.3.0 + ## v1.10.3, TBD diff --git a/packages/email/.npm/package/npm-shrinkwrap.json b/packages/email/.npm/package/npm-shrinkwrap.json index 38652fe742..e4ffb8f728 100644 --- a/packages/email/.npm/package/npm-shrinkwrap.json +++ b/packages/email/.npm/package/npm-shrinkwrap.json @@ -1,15 +1,15 @@ { "lockfileVersion": 1, "dependencies": { - "node4mailer": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/node4mailer/-/node4mailer-4.0.3.tgz", - "integrity": "sha1-jwx6ZzdSehKFMBhaFMLoeZiaiRA=" + "nodemailer": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.6.tgz", + "integrity": "sha512-/kJ+FYVEm2HuUlw87hjSqTss+GU35D4giOpdSfGp7DO+5h6RlJj7R94YaYHOkoxu1CSaM0d3WRBtCzwXrY6MKA==" }, "stream-buffers": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.5.tgz", - "integrity": "sha1-+TBTnTzwjXSKNArWE5+Vss60jwU=" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", + "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==" } } } diff --git a/packages/email/email.js b/packages/email/email.js index 4809122f99..515ba61190 100644 --- a/packages/email/email.js +++ b/packages/email/email.js @@ -1,6 +1,6 @@ var Future = Npm.require('fibers/future'); var urlModule = Npm.require('url'); -var nodemailer = Npm.require('node4mailer'); +var nodemailer = Npm.require('nodemailer'); Email = {}; EmailTest = {}; @@ -8,12 +8,12 @@ EmailTest = {}; EmailInternals = { NpmModules: { mailcomposer: { - version: Npm.require('node4mailer/package.json').version, - module: Npm.require('node4mailer/lib/mail-composer') + version: Npm.require('nodemailer/package.json').version, + module: Npm.require('nodemailer/lib/mail-composer') }, nodemailer: { - version: Npm.require('node4mailer/package.json').version, - module: Npm.require('node4mailer') + version: Npm.require('nodemailer/package.json').version, + module: Npm.require('nodemailer') } } }; diff --git a/packages/email/package.js b/packages/email/package.js index 836e70f6f9..6de5b953d4 100644 --- a/packages/email/package.js +++ b/packages/email/package.js @@ -1,11 +1,11 @@ Package.describe({ summary: "Send email messages", - version: "1.2.3" + version: "1.3.0" }); Npm.depends({ - node4mailer: "4.0.3", - "stream-buffers": "0.2.5" + nodemailer: "6.4.6", + "stream-buffers": "3.0.2" }); Package.onUse(function (api) { From f93a73b1174e238e10c4b067c77bea8d522ba6f8 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 13 May 2020 13:51:43 +0900 Subject: [PATCH 53/80] Major version bump for email package --- History.md | 7 +++++-- packages/email/package.js | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/History.md b/History.md index e3ee5c795e..83dbabefc6 100644 --- a/History.md +++ b/History.md @@ -1,8 +1,11 @@ ## vNEXT, unreleased -### Changes +### Breaking changes -* `email` package dependencies have been update and package version has been bumped to 1.3.0 +* `email` package dependencies have been update and package version has been bumped to 2.0.0 + There is a potential breaking change as the underlying package started to use `dns.resolve()` + instead of `dns.lookup()` which might be breaking on some environments. + See [nodemailer changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) for more information. ## v1.10.3, TBD diff --git a/packages/email/package.js b/packages/email/package.js index 6de5b953d4..45054f813f 100644 --- a/packages/email/package.js +++ b/packages/email/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Send email messages", - version: "1.3.0" + version: "2.0.0" }); Npm.depends({ From ae37ffd72288ed7f418d3b6abe4cfe33998d5ce7 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 13 May 2020 14:04:40 +0900 Subject: [PATCH 54/80] Update documentaion links --- packages/email/email.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/email/email.js b/packages/email/email.js index 515ba61190..d0056f96a3 100644 --- a/packages/email/email.js +++ b/packages/email/email.js @@ -118,9 +118,9 @@ EmailTest.hookSend = function (f) { * If the `MAIL_URL` environment variable is set, actually sends the email. * Otherwise, prints the contents of the email to standard out. * - * Note that this package is based on **mailcomposer 4**, so make sure to refer to - * [the documentation](https://github.com/nodemailer/mailcomposer/blob/v4.0.1/README.md) - * for that version when using the `attachments` or `mailComposer` options. + * Note that this package is based on **nodemailer**, so make sure to refer to + * [the documentation](http://nodemailer.com/) + * when using the `attachments` or `mailComposer` options. * * @locus Server * @param {Object} options @@ -136,7 +136,7 @@ EmailTest.hookSend = function (f) { * @param {String} [options.icalEvent] iCalendar event attachment * @param {Object} [options.headers] Dictionary of custom headers - e.g. `{ "header name": "header value" }`. To set an object under a header name, use `JSON.stringify` - e.g. `{ "header name": JSON.stringify({ tracking: { level: 'full' } }) }`. * @param {Object[]} [options.attachments] Array of attachment objects, as - * described in the [mailcomposer documentation](https://github.com/nodemailer/mailcomposer/blob/v4.0.1/README.md#attachments). + * described in the [nodemailer documentation](https://nodemailer.com/message/attachments/). * @param {MailComposer} [options.mailComposer] A [MailComposer](https://nodemailer.com/extras/mailcomposer/#e-mail-message-fields) * object representing the message to be sent. Overrides all other options. * You can create a `MailComposer` object via From 28f0caead5e756627068126d78cb5eadd794780b Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 27 May 2020 10:41:33 +0900 Subject: [PATCH 55/80] Email - make hookSend public --- packages/email/email.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/email/email.js b/packages/email/email.js index d0056f96a3..67cc805afa 100644 --- a/packages/email/email.js +++ b/packages/email/email.js @@ -98,15 +98,15 @@ var smtpSend = function (transport, mail) { transport._syncSendMail(mail); }; +var sendHooks = []; /** - * Mock out email sending (eg, during a test.) This is private for now. + * Mock out email sending (eg, during a test.) * - * f receives the arguments to Email.send and should return true to go + * @param f {function} receives the arguments to Email.send and should return true to go * ahead and send the email (or at least, try subsequent hooks), or * false to skip sending. */ -var sendHooks = []; -EmailTest.hookSend = function (f) { +Email.hookSend = function (f) { sendHooks.push(f); }; From f7fded97dba9316d091edad4e0b844e1233d6100 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Thu, 11 Jun 2020 14:34:47 +0900 Subject: [PATCH 56/80] Fix hookSend test & add to changelog --- History.md | 3 +++ packages/accounts-password/email_tests_setup.js | 2 +- packages/email/email.js | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/History.md b/History.md index 83dbabefc6..f1ef37e6dc 100644 --- a/History.md +++ b/History.md @@ -7,6 +7,9 @@ instead of `dns.lookup()` which might be breaking on some environments. See [nodemailer changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) for more information. +### Changes + +* `email` package now exposes `hookSend` that runs before emails are send. ## v1.10.3, TBD diff --git a/packages/accounts-password/email_tests_setup.js b/packages/accounts-password/email_tests_setup.js index 32c080a4a5..346390e63e 100644 --- a/packages/accounts-password/email_tests_setup.js +++ b/packages/accounts-password/email_tests_setup.js @@ -20,7 +20,7 @@ Accounts.emailTemplates.headers = { 'My-Custom-Header' : 'Cool' }; -EmailTest.hookSend(options => { +Email.hookSend(options => { const { to } = options; if (!to || !to.toUpperCase().includes('INTERCEPT')) { return true; // go ahead and send diff --git a/packages/email/email.js b/packages/email/email.js index 67cc805afa..94b43d5924 100644 --- a/packages/email/email.js +++ b/packages/email/email.js @@ -100,7 +100,7 @@ var smtpSend = function (transport, mail) { var sendHooks = []; /** - * Mock out email sending (eg, during a test.) + * Hook that runs before email is send. * * @param f {function} receives the arguments to Email.send and should return true to go * ahead and send the email (or at least, try subsequent hooks), or From f07b02bc30f53fb6d9a74c996a9727dccb2309aa Mon Sep 17 00:00:00 2001 From: filipenevola Date: Wed, 24 Jun 2020 11:11:12 -0400 Subject: [PATCH 57/80] Bump package versions for 1.10.3-beta.3 release --- packages/accounts-base/package.js | 2 +- packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index 0733059a5a..2f05763886 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.7.0-beta1103.2", + version: "1.7.0-beta1103.3", }); Package.onUse(api => { diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 15a1dc871c..a5fab594c7 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.10.3-beta.2' + version: '1.10.3-beta.3' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index b5ce7f536b..9a90f83dd5 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.10.3-beta.2", + "version": "1.10.3-beta.3", "recommended": false, "official": false, "description": "Meteor" From ca8a6285e6a7534ac2ffc4956ac16c9515cffc45 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Wed, 24 Jun 2020 11:16:55 -0400 Subject: [PATCH 58/80] Bump package versions for 1.10.3-beta.3 release --- packages/email/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/email/package.js b/packages/email/package.js index 45054f813f..6ee72eec45 100644 --- a/packages/email/package.js +++ b/packages/email/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Send email messages", - version: "2.0.0" + version: "2.0.0-beta1103.3" }); Npm.depends({ From d7b3d2e3983494ba9fdc3f31e6319a590159f3e5 Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 20 May 2020 22:20:26 -0500 Subject: [PATCH 59/80] Add files.readdirWithTypes --- tools/fs/files.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/fs/files.ts b/tools/fs/files.ts index d5538b0ba3..ac9cf630f6 100644 --- a/tools/fs/files.ts +++ b/tools/fs/files.ts @@ -5,7 +5,7 @@ /// import assert from "assert"; -import fs, { PathLike, Stats } from "fs"; +import fs, { PathLike, Stats, Dirent } from "fs"; import path from "path"; import os from "os"; import { spawn, execFile } from "child_process"; @@ -1748,6 +1748,14 @@ wrapFsFunc<[string], string[]>("readdir", fs.readdirSync, [0], { }, }); +export const readdirWithTypes = wrapFsFunc<[string], Dirent[]>("readdirWithTypes", (dir) => { + return fs.readdirSync(dir, { + withFileTypes: true + }); + }, [0], { + cached: true +}); + export const appendFile = wrapDestructiveFsFunc("appendFile", fs.appendFileSync); export const chmod = wrapDestructiveFsFunc("chmod", fs.chmodSync); export const close = wrapFsFunc("close", fs.closeSync, []); From cf92ff886b21e18778c791e73c20d12f9f91d72d Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 20 May 2020 22:21:23 -0500 Subject: [PATCH 60/80] Reduce stats in readAndStatDirectory --- tools/fs/watch.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tools/fs/watch.ts b/tools/fs/watch.ts index 44afacdde1..f473840331 100644 --- a/tools/fs/watch.ts +++ b/tools/fs/watch.ts @@ -1,4 +1,4 @@ -import { Stats, FSWatcher } from "fs"; +import { Stats, FSWatcher, Dirent } from "fs"; import * as files from "./files"; import * as safeWatcher from "./safe-watcher"; import { createHash } from "crypto"; @@ -339,7 +339,7 @@ export const sha512 = Profile("sha512", function (...args: (string | Buffer)[]) function readAndStatDirectory(absPath: string) { // Read the directory. try { - var contents = files.readdir(absPath); + var contents = files.readdirWithTypes(absPath); } catch (e) { // If the path is not a directory, return null; let other errors through. if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) { @@ -351,9 +351,14 @@ function readAndStatDirectory(absPath: string) { // Add slashes to the end of directories. const contentsWithSlashes: string[] = []; contents.forEach(entry => { - // We do stat instead of lstat here, so that we treat symlinks to - // directories just like directories themselves. - const stat = optimisticStatOrNull(files.pathJoin(absPath, entry)); + let stat: Dirent | Stats | null = entry; + let name = entry.name; + + if (entry.isSymbolicLink()) { + // We do stat instead of lstat here, so that we treat symlinks to + // directories just like directories themselves. + stat = optimisticStatOrNull(files.pathJoin(absPath, entry.name)); + } if (! stat) { // Disappeared after the readdir (or a dangling symlink)? // Eh, pretend it was never there in the first place. @@ -361,10 +366,10 @@ function readAndStatDirectory(absPath: string) { } if (stat.isDirectory()) { - entry += '/'; + name += '/'; } - contentsWithSlashes.push(entry); + contentsWithSlashes.push(name); }); return contentsWithSlashes; From 1bc208fe1337f25f9faea6c14e111482eeef700f Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 20 May 2020 22:30:29 -0500 Subject: [PATCH 61/80] Fix duplicate linker cache The cache file's contents stored by optimisticReadFile was over 10% of the meteor-tool's memory usage. --- tools/isobuild/compiler-plugin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/isobuild/compiler-plugin.js b/tools/isobuild/compiler-plugin.js index 7a62748f5a..b8b476d9c4 100644 --- a/tools/isobuild/compiler-plugin.js +++ b/tools/isobuild/compiler-plugin.js @@ -1714,7 +1714,7 @@ export class PackageSourceBatch { if (cacheFilename) { let diskCached = null; try { - diskCached = optimisticReadJsonOrNull(cacheFilename); + diskCached = files.readJSONOrNull(cacheFilename); } catch (e) { // Ignore JSON parse errors; pretend there was no cache. if (!(e instanceof SyntaxError)) { From 2d1b11f6b09d12415eff4b632180fc151695d32b Mon Sep 17 00:00:00 2001 From: zodern Date: Fri, 22 May 2020 15:33:26 -0500 Subject: [PATCH 62/80] Fix reify cache files being watch --- tools/isobuild/import-scanner.ts | 53 +++++++++++++++++--------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/tools/isobuild/import-scanner.ts b/tools/isobuild/import-scanner.ts index 355ad9d0d5..e6c09760e2 100644 --- a/tools/isobuild/import-scanner.ts +++ b/tools/isobuild/import-scanner.ts @@ -25,6 +25,7 @@ import { convertToPosixPath, realpathOrNull, writeFileAtomically, + readFile, } from "../fs/files"; const { SourceNode, SourceMapConsumer } = require("source-map"); @@ -74,9 +75,18 @@ const reifyCompileWithCache = Profile("reifyCompileWithCache", wrap(function ( source, _hash, bundleArch, + cacheFilePath, ) { + if (cacheFilePath) { + try { + return readFile(cacheFilePath, "utf8"); + } catch (e) { + if (e.code !== "ENOENT") throw e; + } + } + const isLegacy = isLegacyArch(bundleArch); - return reifyCompile(stripHashBang(source), { + let result = reifyCompile(stripHashBang(source), { parse: reifyBabelParse, generateLetDeclarations: !isLegacy, avoidModernSyntax: isLegacy, @@ -84,6 +94,14 @@ const reifyCompileWithCache = Profile("reifyCompileWithCache", wrap(function ( dynamicImport: true, ast: false, }).code; + + if (cacheFilePath) { + Promise.resolve().then( + () => writeFileAtomically(cacheFilePath, result), + ); + } + + return result; }, { makeCacheKey(_source, hash, bundleArch) { return JSON.stringify([hash, bundleArch]); @@ -132,29 +150,16 @@ class DefaultHandlers { } } - if (this.cacheDir) { - const cacheFileName = this.getCacheFileName(file)!; - try { - return optimisticReadFile(cacheFileName, "utf8"); - } catch (e) { - if (e.code !== "ENOENT") throw e; - const code = reifyCompileWithCache( - file.dataString, - file.hash, - this.bundleArch, - ); - Promise.resolve().then( - () => writeFileAtomically(cacheFileName, code), - ); - return code; - } - } else { - return reifyCompileWithCache( - file.dataString, - file.hash, - this.bundleArch, - ); - } + const cacheFileName = this.cacheDir ? + this.getCacheFileName(file) : + null; + + return reifyCompileWithCache( + file.dataString, + file.hash, + this.bundleArch, + cacheFileName + ) } // Files with an .mjs extension are just JavaScript plus module syntax. From cbb23cca5a94a23738c3a3d439f5ee70a8748ab9 Mon Sep 17 00:00:00 2001 From: zodern Date: Tue, 26 May 2020 12:21:51 -0500 Subject: [PATCH 63/80] Disable deduplicating watchers by ino on Windows --- tools/fs/safe-watcher.ts | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/tools/fs/safe-watcher.ts b/tools/fs/safe-watcher.ts index 2b548341ce..41851df2de 100644 --- a/tools/fs/safe-watcher.ts +++ b/tools/fs/safe-watcher.ts @@ -35,6 +35,14 @@ var NO_WATCHER_POLLING_INTERVAL = // file watchers, but it's to our advantage if they survive restarts. const WATCHER_CLEANUP_DELAY_MS = 30000; +// Pathwatcher complains (using console.error, ugh) if you try to watch +// two files with the same stat.ino number but different paths on linux, so we have +// to deduplicate files by ino. +const DEDUPLICATE_BY_INO = process.platform !== "win32"; + +const entriesByIno = new Map; + + export type SafeWatcher = { close: () => void; } @@ -49,11 +57,6 @@ interface Entry extends SafeWatcher { const entries: Record = Object.create(null); -// Pathwatcher complains (using console.error, ugh) if you try to watch -// two files with the same stat.ino number but different paths, so we have -// to deduplicate files by ino. -const entriesByIno = new Map; - // Set of paths for which a change event has been fired, watched with // watchLibrary.watch if available. This could be an LRU cache, but in // practice it should never grow large enough for that to matter. @@ -86,10 +89,19 @@ function acquireWatcher(absPath: string, callback: EntryCallback) { } function startNewWatcher(absPath: string): Entry { - const stat = statOrNull(absPath); - if (stat && stat.ino > 0 && entriesByIno.has(stat.ino)) { - const entry = entriesByIno.get(stat.ino); - if (entries[absPath] === entry) { + let stat: Stats | null; + + if (DEDUPLICATE_BY_INO) { + stat = statOrNull(absPath); + if (stat && stat.ino > 0 && entriesByIno.has(stat.ino)) { + const entry = entriesByIno.get(stat.ino); + if (entries[absPath] === entry) { + return entry; + } + } + } else { + let entry = entries[absPath]; + if (entry) { return entry; } } From 5e79e56fb75dc93671e19054adf7ede2dc960b0d Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 24 Jun 2020 15:30:35 -0500 Subject: [PATCH 64/80] Fix typescript error --- tools/fs/safe-watcher.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/fs/safe-watcher.ts b/tools/fs/safe-watcher.ts index 41851df2de..c90fa56c18 100644 --- a/tools/fs/safe-watcher.ts +++ b/tools/fs/safe-watcher.ts @@ -89,7 +89,7 @@ function acquireWatcher(absPath: string, callback: EntryCallback) { } function startNewWatcher(absPath: string): Entry { - let stat: Stats | null; + let stat: Stats | null = null; if (DEDUPLICATE_BY_INO) { stat = statOrNull(absPath); From 25cda00f14307be3e309262ef066a5bf7a340eae Mon Sep 17 00:00:00 2001 From: Jordan Brant Baker Date: Fri, 26 Jun 2020 15:02:23 -0700 Subject: [PATCH 65/80] Update History.md Co-authored-by: William Reiske --- History.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/History.md b/History.md index f1ef37e6dc..4edd213b8e 100644 --- a/History.md +++ b/History.md @@ -9,7 +9,7 @@ ### Changes -* `email` package now exposes `hookSend` that runs before emails are send. +* `email` package now exposes `hookSend` that runs before emails are sent. ## v1.10.3, TBD From 3694e07fe4582e8fdd22489931c3ccadcbc3b74f Mon Sep 17 00:00:00 2001 From: Jordan Brant Baker Date: Fri, 26 Jun 2020 15:04:08 -0700 Subject: [PATCH 66/80] Apply suggestions from code review Co-authored-by: William Reiske --- packages/accounts-base/accounts_server.js | 2 +- packages/email/email.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/accounts-base/accounts_server.js b/packages/accounts-base/accounts_server.js index 24404e9b78..eeea919ae5 100644 --- a/packages/accounts-base/accounts_server.js +++ b/packages/accounts-base/accounts_server.js @@ -120,7 +120,7 @@ export class AccountsServer extends AccountsCommon { /** * @summary Validate login from external service * @locus Server - * @param {Function} func Called whenever login/user creation from external service is attempted. Login or user creation based on this login can be aborted by by passing a falsy value or throwing an exception. + * @param {Function} func Called whenever login/user creation from external service is attempted. Login or user creation based on this login can be aborted by passing a falsy value or throwing an exception. */ beforeExternalLogin(func) { if (this._beforeExternalLoginHook) { diff --git a/packages/email/email.js b/packages/email/email.js index 94b43d5924..c9425114fa 100644 --- a/packages/email/email.js +++ b/packages/email/email.js @@ -100,7 +100,7 @@ var smtpSend = function (transport, mail) { var sendHooks = []; /** - * Hook that runs before email is send. + * Hook that runs before email is sent. * * @param f {function} receives the arguments to Email.send and should return true to go * ahead and send the email (or at least, try subsequent hooks), or From 91708c1e56da578f6bc05a0b525311ef729e9a27 Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 20 May 2020 22:33:25 -0500 Subject: [PATCH 67/80] Add forceInPlaceBuild option to bundler --- tools/isobuild/bundler.js | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index 5311ebbfd6..cee56599cd 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -2844,20 +2844,18 @@ var writeTargetToPath = Profile( previousBuilder = null, buildMode, minifyMode, + forceInPlaceBuild }) { var builder = new Builder({ outputPath: files.pathJoin(outputPath, 'programs', name), previousBuilder, - // We do not force an in-place build for individual targets like - // .meteor/local/build/programs/web.browser.legacy, because they - // tend to be written atomically, and it's important on Windows to - // avoid overwriting files that might be open currently in the build - // or server process. - // Server builds do use an in-place build since the server is always stopped - // during the build. - // If client in-place builds were safer on Windows, they - // would be much quicker than from-scratch rebuilds. - forceInPlaceBuild: name === 'server', + // We do not force an in-place build for individual targets + // like .meteor/local/build/programs/web.browser.legacy, because they tend + // to be written atomically, and it's important on Windows to avoid + // overwriting files that might be open currently in the server + // process. There are some exceptions when we know the server process + // is not using the files, such as during a full build when it is stopped. + forceInPlaceBuild: forceInPlaceBuild, }); var targetBuild = target.write(builder, { @@ -2910,6 +2908,7 @@ var writeSiteArchive = Profile("bundler writeSiteArchive", function ( buildMode, minifyMode, sourceRoot, + forceInPlaceBuild, }) { const builders = {}; @@ -3004,7 +3003,8 @@ Find out more about Meteor at meteor.com. releaseName, previousBuilder: previousBuilders[name] || null, buildMode, - minifyMode + minifyMode, + forceInPlaceBuild }); builders[name] = targetBuilder; @@ -3083,6 +3083,10 @@ Find out more about Meteor at meteor.com. * - hasCachedBundle: true if we already have a cached bundle stored in * /build. When true, we only build the new client targets in the bundle. * + * - forceInPlaceBuild On Windows, in place builds are disabled by default + * since they are only safe when the output files from the previous build + * are not being used. This can be set to true when it is safe. + * * Returns an object with keys: * - errors: A buildmessage.MessageSet, or falsy if bundling succeeded. * - serverWatchSet: Information about server files and paths that were @@ -3117,6 +3121,7 @@ function bundle({ previousBuilders = Object.create(null), hasCachedBundle, allowDelayedClientBuilds = false, + forceInPlaceBuild, }) { buildOptions = buildOptions || {}; @@ -3271,6 +3276,7 @@ function bundle({ builtBy, releaseName, minifyMode, + forceInPlaceBuild, }; function writeClientTarget(target) { From 97d56798894809d04077b5c29742d0884d642942 Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 8 Jul 2020 10:09:06 -0500 Subject: [PATCH 68/80] Enable in place builds for full rebuilds on Windows --- tools/runners/run-app.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/runners/run-app.js b/tools/runners/run-app.js index 5354188cdb..c5aaf49ba3 100644 --- a/tools/runners/run-app.js +++ b/tools/runners/run-app.js @@ -579,6 +579,10 @@ _.extend(AppRunner.prototype, { // Permit delayed bundling of client architectures if the // console is interactive. allowDelayedClientBuilds: ! Console.isHeadless(), + + // None of the targets are used during full rebuilds + // so we can safely build in place on Windows + forceInPlaceBuild: !cachedServerWatchSet }); }); From 707c601a39afb02c6d6b30c18750aafa905fd7fb Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 8 Jul 2020 12:27:41 -0500 Subject: [PATCH 69/80] Fix calling pathBasename twice when sorting --- tools/isobuild/package-source.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tools/isobuild/package-source.js b/tools/isobuild/package-source.js index 27c332c746..37967e5ac7 100644 --- a/tools/isobuild/package-source.js +++ b/tools/isobuild/package-source.js @@ -79,6 +79,9 @@ var loadOrderSort = function (sourceProcessorSet, arch) { }); return function (a, b) { + const aBasename = files.pathBasename(a); + const bBasename = files.pathBasename(b); + // XXX MODERATELY SIZED HACK -- // push template files ahead of everything else. this is // important because the user wants to be able to say @@ -87,15 +90,15 @@ var loadOrderSort = function (sourceProcessorSet, arch) { // before the corresponding .html file. // // maybe all of the templates should go in one file? - var isTemplate_a = isTemplate(files.pathBasename(a)); - var isTemplate_b = isTemplate(files.pathBasename(b)); + var isTemplate_a = isTemplate(aBasename); + var isTemplate_b = isTemplate(bBasename); if (isTemplate_a !== isTemplate_b) { return (isTemplate_a ? -1 : 1); } // main.* loaded last - var ismain_a = (files.pathBasename(a).indexOf('main.') === 0); - var ismain_b = (files.pathBasename(b).indexOf('main.') === 0); + var ismain_a = (aBasename.indexOf('main.') === 0); + var ismain_b = (bBasename.indexOf('main.') === 0); if (ismain_a !== ismain_b) { return (ismain_a ? 1 : -1); } From 34a98228cf1b0631e3e1d65f2d19f5dc0698c4f0 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Thu, 9 Jul 2020 13:22:30 -0400 Subject: [PATCH 70/80] Bump package versions for 1.10.3-beta.4 release --- packages/accounts-base/package.js | 2 +- packages/ecmascript-runtime-client/package.js | 2 +- packages/ecmascript-runtime-server/package.js | 2 +- packages/email/package.js | 2 +- packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index 2f05763886..b917dd7ab6 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.7.0-beta1103.3", + version: "1.7.0-beta1103.4", }); Package.onUse(api => { diff --git a/packages/ecmascript-runtime-client/package.js b/packages/ecmascript-runtime-client/package.js index d6f184afcb..0ae418585d 100644 --- a/packages/ecmascript-runtime-client/package.js +++ b/packages/ecmascript-runtime-client/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "ecmascript-runtime-client", - version: "0.10.0", + version: "0.11.0-beta1103.4", summary: "Polyfills for new ECMAScript 2015 APIs like Map and Set", git: "https://github.com/meteor/meteor/tree/devel/packages/ecmascript-runtime-client", documentation: "README.md" diff --git a/packages/ecmascript-runtime-server/package.js b/packages/ecmascript-runtime-server/package.js index 68d15d1451..3309c4d0e9 100644 --- a/packages/ecmascript-runtime-server/package.js +++ b/packages/ecmascript-runtime-server/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "ecmascript-runtime-server", - version: "0.9.0", + version: "0.10.0-beta1103.4", summary: "Polyfills for new ECMAScript 2015 APIs like Map and Set", git: "https://github.com/meteor/meteor/tree/devel/packages/ecmascript-runtime-client", documentation: "README.md" diff --git a/packages/email/package.js b/packages/email/package.js index 6ee72eec45..7a027fcbd0 100644 --- a/packages/email/package.js +++ b/packages/email/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Send email messages", - version: "2.0.0-beta1103.3" + version: "2.0.0-beta1103.4" }); Npm.depends({ diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index a5fab594c7..6664da02d5 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.10.3-beta.3' + version: '1.10.3-beta.4' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 9a90f83dd5..25fade25ff 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.10.3-beta.3", + "version": "1.10.3-beta.4", "recommended": false, "official": false, "description": "Meteor" From 7c5ba50f023de3610e348891bafef92961616811 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Thu, 9 Jul 2020 15:50:07 -0400 Subject: [PATCH 71/80] Bump package versions for 1.10.3-beta.5 release --- packages/accounts-base/package.js | 2 +- packages/accounts-password/package.js | 2 +- packages/ddp-client/.npm/package/npm-shrinkwrap.json | 6 +++--- .../.npm/package/npm-shrinkwrap.json | 6 +++--- packages/ecmascript-runtime-client/package.js | 2 +- .../.npm/package/npm-shrinkwrap.json | 6 +++--- packages/ecmascript-runtime-server/package.js | 2 +- packages/email/package.js | 2 +- packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index b917dd7ab6..cbc012f0ef 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.7.0-beta1103.4", + version: "1.7.0-beta1103.5", }); Package.onUse(api => { diff --git a/packages/accounts-password/package.js b/packages/accounts-password/package.js index fb9bc6324c..ff441ddd8b 100644 --- a/packages/accounts-password/package.js +++ b/packages/accounts-password/package.js @@ -5,7 +5,7 @@ Package.describe({ // 2.2.x in the future. The version was also bumped to 2.0.0 temporarily // during the Meteor 1.5.1 release process, so versions 2.0.0-beta.2 // through -beta.5 and -rc.0 have already been published. - version: "1.6.1" + version: "1.6.2-beta1103.5" }); Package.onUse(api => { diff --git a/packages/ddp-client/.npm/package/npm-shrinkwrap.json b/packages/ddp-client/.npm/package/npm-shrinkwrap.json index 83ff1746e4..5d2c645d18 100644 --- a/packages/ddp-client/.npm/package/npm-shrinkwrap.json +++ b/packages/ddp-client/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "lolex": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.1.tgz", - "integrity": "sha512-mQuW55GhduF3ppo+ZRUTz1PRjEh1hS5BbqU7d8D0ez2OKxHDod7StPPeAVKisZR5aLkHZjdGWSL42LSONUJsZw==" + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.2.tgz", + "integrity": "sha512-A5pN2tkFj7H0dGIAM6MFvHKMJcPnjZsOMvR7ujCjfgW5TbV6H9vb1PgxLtHvjqNZTHsUolz+6/WEO0N1xNx2ng==" } } } diff --git a/packages/ecmascript-runtime-client/.npm/package/npm-shrinkwrap.json b/packages/ecmascript-runtime-client/.npm/package/npm-shrinkwrap.json index c5366d30b1..a69db9f9a5 100644 --- a/packages/ecmascript-runtime-client/.npm/package/npm-shrinkwrap.json +++ b/packages/ecmascript-runtime-client/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "core-js": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz", - "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==" + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" } } } diff --git a/packages/ecmascript-runtime-client/package.js b/packages/ecmascript-runtime-client/package.js index 0ae418585d..1821b8c6cd 100644 --- a/packages/ecmascript-runtime-client/package.js +++ b/packages/ecmascript-runtime-client/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "ecmascript-runtime-client", - version: "0.11.0-beta1103.4", + version: "0.11.0-beta1103.5", summary: "Polyfills for new ECMAScript 2015 APIs like Map and Set", git: "https://github.com/meteor/meteor/tree/devel/packages/ecmascript-runtime-client", documentation: "README.md" diff --git a/packages/ecmascript-runtime-server/.npm/package/npm-shrinkwrap.json b/packages/ecmascript-runtime-server/.npm/package/npm-shrinkwrap.json index c5366d30b1..a69db9f9a5 100644 --- a/packages/ecmascript-runtime-server/.npm/package/npm-shrinkwrap.json +++ b/packages/ecmascript-runtime-server/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "core-js": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz", - "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==" + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" } } } diff --git a/packages/ecmascript-runtime-server/package.js b/packages/ecmascript-runtime-server/package.js index 3309c4d0e9..667963648f 100644 --- a/packages/ecmascript-runtime-server/package.js +++ b/packages/ecmascript-runtime-server/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "ecmascript-runtime-server", - version: "0.10.0-beta1103.4", + version: "0.10.0-beta1103.5", summary: "Polyfills for new ECMAScript 2015 APIs like Map and Set", git: "https://github.com/meteor/meteor/tree/devel/packages/ecmascript-runtime-client", documentation: "README.md" diff --git a/packages/email/package.js b/packages/email/package.js index 7a027fcbd0..936e71f161 100644 --- a/packages/email/package.js +++ b/packages/email/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Send email messages", - version: "2.0.0-beta1103.4" + version: "2.0.0-beta1103.5" }); Npm.depends({ diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 6664da02d5..3486762f1b 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.10.3-beta.4' + version: '1.10.3-beta.5' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 25fade25ff..925b8d338d 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.10.3-beta.4", + "version": "1.10.3-beta.5", "recommended": false, "official": false, "description": "Meteor" From 8947be9ea2bcdf4e9ff9c2f6eebf04ba68471527 Mon Sep 17 00:00:00 2001 From: abhishek maurya Date: Tue, 14 Jul 2020 08:13:36 +0530 Subject: [PATCH 72/80] Cleanup. --- tools/isobuild/bundler.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index de60cc3aca..fc71b2ca59 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -2855,7 +2855,7 @@ var writeTargetToPath = Profile( // overwriting files that might be open currently in the server // process. There are some exceptions when we know the server process // is not using the files, such as during a full build when it is stopped. - forceInPlaceBuild: forceInPlaceBuild, + forceInPlaceBuild }); var targetBuild = target.write(builder, { From 582064ab13db24193d51e982f6d1ea123bbf3e68 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Thu, 16 Jul 2020 13:59:30 +0900 Subject: [PATCH 73/80] Updated node, npm and MongoDB dependencies --- History.md | 4 ++-- scripts/build-dev-bundle-common.sh | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/History.md b/History.md index f4cdfa402c..5e55774b0f 100644 --- a/History.md +++ b/History.md @@ -32,10 +32,10 @@ N/A * `email` package now exposes `hookSend` that runs before emails are send. * The version of MongoDB used by Meteor in development has been updated - from 4.2.5 to 4.2.7 + from 4.2.5 to 4.2.8 * Node.js has been updated to version - [12.18.1](https://nodejs.org/en/blog/release/v12.18.1/) + [12.18.2](https://nodejs.org/en/blog/release/v12.18.2/) * Updated npm to version 6.14.5 diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 00368a5a4c..9cf521ff1d 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -5,10 +5,10 @@ set -u UNAME=$(uname) ARCH=$(uname -m) -NODE_VERSION=12.18.1 -MONGO_VERSION_64BIT=4.2.7 +NODE_VERSION=12.18.2 +MONGO_VERSION_64BIT=4.2.8 MONGO_VERSION_32BIT=3.2.22 -NPM_VERSION=6.14.5 +NPM_VERSION=6.14.6 # If we built Node from source on Jenkins, this is the build number. NODE_BUILD_NUMBER= From ce6b4832b425bc3b3628c59af4dacd69c7416896 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Fri, 17 Jul 2020 23:38:24 +0900 Subject: [PATCH 74/80] Update npm to 6.14.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Filipe Névola --- scripts/dev-bundle-tool-package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index f7e9764689..570183b4be 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -10,7 +10,7 @@ var packageJson = { dependencies: { // Explicit dependency because we are replacing it with a bundled version // and we want to make sure there are no dependencies on a higher version - npm: "6.14.5", + npm: "6.14.6", pacote: "https://github.com/meteor/pacote/tarball/a81b0324686e85d22c7688c47629d4009000e8b8", "node-gyp": "6.0.1", "node-pre-gyp": "0.14.0", From e11893378a0d8160afca2c01cf12dc1746140e20 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Fri, 24 Jul 2020 06:54:45 -0400 Subject: [PATCH 75/80] updates dev bundle number to 12.18.2.0 --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index a41f33be36..9107e3e47b 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=12.18.1.0 +BUNDLE_VERSION=12.18.2.0 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 0b207b19d7a75c4e39242680be32c984f82ce3c1 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Fri, 24 Jul 2020 07:13:17 -0400 Subject: [PATCH 76/80] updates dev bundle number to 12.18.2.1 - reverts temporarily mongodb to the previous version --- meteor | 2 +- scripts/build-dev-bundle-common.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/meteor b/meteor index 9107e3e47b..d18f5dfd05 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=12.18.2.0 +BUNDLE_VERSION=12.18.2.1 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 9cf521ff1d..760c02c55b 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -6,7 +6,7 @@ set -u UNAME=$(uname) ARCH=$(uname -m) NODE_VERSION=12.18.2 -MONGO_VERSION_64BIT=4.2.8 +MONGO_VERSION_64BIT=4.2.5 MONGO_VERSION_32BIT=3.2.22 NPM_VERSION=6.14.6 From 4337dd498f9d3e49cb4fa02fa736074c982c1378 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Fri, 24 Jul 2020 07:30:22 -0400 Subject: [PATCH 77/80] Published ddp-rate-limiter@1.0.8. - depends on email package that had a major update --- packages/ddp-rate-limiter/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ddp-rate-limiter/package.js b/packages/ddp-rate-limiter/package.js index 730cededb7..4415018b12 100644 --- a/packages/ddp-rate-limiter/package.js +++ b/packages/ddp-rate-limiter/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'ddp-rate-limiter', - version: '1.0.7', + version: '1.0.8', // Brief, one-line summary of the package. summary: 'The DDPRateLimiter allows users to add rate limits to DDP' + ' methods and subscriptions.', From d01c859cd3a68d0d0da793aa93a7a790baf506fb Mon Sep 17 00:00:00 2001 From: filipenevola Date: Fri, 24 Jul 2020 07:43:35 -0400 Subject: [PATCH 78/80] fixes ts error on files.ts --- tools/fs/files.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/fs/files.ts b/tools/fs/files.ts index ac9cf630f6..b5e2e81019 100644 --- a/tools/fs/files.ts +++ b/tools/fs/files.ts @@ -1538,13 +1538,13 @@ export function readBufferWithLengthAndOffset( if (length > 0) { const fd = open(filename, "r"); try { - var count = read(fd, data, 0, length, offset); + const count = read(fd, data, { position: 0, length, offset }); + if (count !== length) { + throw new Error("couldn't read entire resource"); + } } finally { close(fd); } - if (count !== length) { - throw new Error("couldn't read entire resource"); - } } return data; } From bff2be5f9b3431a89b1b9fe3b64264298d0edfd1 Mon Sep 17 00:00:00 2001 From: filipenevola Date: Fri, 24 Jul 2020 08:28:40 -0400 Subject: [PATCH 79/80] Bump package versions for 1.10.3-beta.6 release --- packages/accounts-base/package.js | 2 +- packages/accounts-password/package.js | 2 +- packages/ecmascript-runtime-client/package.js | 2 +- packages/ecmascript-runtime-server/package.js | 2 +- packages/email/package.js | 2 +- packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index cbc012f0ef..f499aac40f 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.7.0-beta1103.5", + version: "1.7.0-beta1103.6", }); Package.onUse(api => { diff --git a/packages/accounts-password/package.js b/packages/accounts-password/package.js index ff441ddd8b..3019c48428 100644 --- a/packages/accounts-password/package.js +++ b/packages/accounts-password/package.js @@ -5,7 +5,7 @@ Package.describe({ // 2.2.x in the future. The version was also bumped to 2.0.0 temporarily // during the Meteor 1.5.1 release process, so versions 2.0.0-beta.2 // through -beta.5 and -rc.0 have already been published. - version: "1.6.2-beta1103.5" + version: "1.6.2-beta1103.6" }); Package.onUse(api => { diff --git a/packages/ecmascript-runtime-client/package.js b/packages/ecmascript-runtime-client/package.js index 1821b8c6cd..efa54a63d3 100644 --- a/packages/ecmascript-runtime-client/package.js +++ b/packages/ecmascript-runtime-client/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "ecmascript-runtime-client", - version: "0.11.0-beta1103.5", + version: "0.11.0-beta1103.6", summary: "Polyfills for new ECMAScript 2015 APIs like Map and Set", git: "https://github.com/meteor/meteor/tree/devel/packages/ecmascript-runtime-client", documentation: "README.md" diff --git a/packages/ecmascript-runtime-server/package.js b/packages/ecmascript-runtime-server/package.js index 667963648f..ca506d1790 100644 --- a/packages/ecmascript-runtime-server/package.js +++ b/packages/ecmascript-runtime-server/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "ecmascript-runtime-server", - version: "0.10.0-beta1103.5", + version: "0.10.0-beta1103.6", summary: "Polyfills for new ECMAScript 2015 APIs like Map and Set", git: "https://github.com/meteor/meteor/tree/devel/packages/ecmascript-runtime-client", documentation: "README.md" diff --git a/packages/email/package.js b/packages/email/package.js index 936e71f161..07fb357eba 100644 --- a/packages/email/package.js +++ b/packages/email/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Send email messages", - version: "2.0.0-beta1103.5" + version: "2.0.0-beta1103.6" }); Npm.depends({ diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 3486762f1b..70870eef45 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.10.3-beta.5' + version: '1.10.3-beta.6' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 925b8d338d..fef6889523 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.10.3-beta.5", + "version": "1.10.3-beta.6", "recommended": false, "official": false, "description": "Meteor" From 87ad5954b240c57e5d937fffe80533d2b837f55a Mon Sep 17 00:00:00 2001 From: filipenevola Date: Fri, 24 Jul 2020 08:29:39 -0400 Subject: [PATCH 80/80] Bump package versions for 1.10.3-beta.6 release --- packages/ddp-rate-limiter/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ddp-rate-limiter/package.js b/packages/ddp-rate-limiter/package.js index 4415018b12..7a325c5f70 100644 --- a/packages/ddp-rate-limiter/package.js +++ b/packages/ddp-rate-limiter/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'ddp-rate-limiter', - version: '1.0.8', + version: '1.0.9-beta1103.6', // Brief, one-line summary of the package. summary: 'The DDPRateLimiter allows users to add rate limits to DDP' + ' methods and subscriptions.',