From 27da43a8c9616643fb0fa28d35feb8f1d36ed01c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 27 May 2019 13:51:30 +0200 Subject: [PATCH 01/13] Convert sync-version-numbers to Node.js script --- bin/after-version-bump.js | 84 +++++++++++++++++++++++++++++++++++++++ bin/sync-version-numbers | 43 -------------------- package.json | 4 +- 3 files changed, 87 insertions(+), 44 deletions(-) create mode 100644 bin/after-version-bump.js delete mode 100755 bin/sync-version-numbers diff --git a/bin/after-version-bump.js b/bin/after-version-bump.js new file mode 100644 index 000000000..399adf878 --- /dev/null +++ b/bin/after-version-bump.js @@ -0,0 +1,84 @@ +#!/usr/bin/env node +// Called by the `version` npm script. +// This is run _after_ lerna updates the version numbers, +// but _before_ it commits, so we have time to update the +// version numbers throughout the repo and add it to the +// release commit. +// NOTE this _amends_ the previous commit, which should +// already be a "Release" commit generated by bin/release. + +const lastCommitMessage = require('last-commit-message') +const { spawn } = require('child_process') +const { promisify } = require('util') +const { once } = require('events') +const globby = require('globby') +const fs = require('fs') +const readFile = promisify(fs.readFile) +const writeFile = promisify(fs.writeFile) + +async function replaceInFile (filename, replacements) { + let content = await readFile(filename, 'utf8') + for (const [rx, replacement] of replacements) { + content = content.replace(rx, replacement) + } + + await writeFile(filename, content, 'utf8') +} + +async function updateVersions (files, packageName) { + const { version } = require(`../packages/${packageName}/package.json`) + + // uppy → uppy + // @uppy/robodog → uppy/robodog + const urlPart = packageName === 'uppy' ? packageName : packageName.slice(1) + + const replacements = new Map([ + [RegExp(`${urlPart}/v\\d+\\.\\d+\\.\\d+\\/`, 'g'), `${urlPart}/v${version}/`] + // maybe more later + ]) + + console.log('replacing', replacements, 'in', files.length, 'files') + + for (const f of files) { + await replaceInFile(f, replacements) + } +} + +async function main () { + if (process.env.ENDTOEND === '1') { + console.log('Publishing for e2e tests, skipping version number sync.') + process.exit(0) + } + + const message = await lastCommitMessage() + if (message.trim() === 'Release') { + console.error(`Last commit is not a release commit, but '${message}'`) + process.exit(1) + } + + const files = await globby([ + 'README.md', + 'examples/**/*.html', + 'packages/*/README.md', + 'packages/@uppy/*/README.md', + 'website/src/docs/**', + 'website/src/examples/**', + 'website/themes/uppy/layout/**', + '!node_modules' + ]) + + await updateVersions(files, 'uppy') + await updateVersions(files, '@uppy/robodog') + await updateVersions(files, '@uppy/locales') + + const gitAdd = spawn('git', ['add', ...files], { stdio: 'inherit' }) + const exitCode = await once(gitAdd, 'exit') + if (exitCode !== 0) { + throw new Error(`git add failed with ${exitCode}`) + } +} + +main().catch(function (err) { + console.error(err.stack) + process.exit(1) +}) diff --git a/bin/sync-version-numbers b/bin/sync-version-numbers deleted file mode 100755 index 7c9046821..000000000 --- a/bin/sync-version-numbers +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash - -# Called by the `version` npm script. -# This is run _after_ lerna updates the version numbers, -# but _before_ it commits, so we have time to update the -# version numbers throughout the repo and add it to the -# release commit. -# NOTE this _amends_ the previous commit, which should -# already be a "Release" commit generated by bin/release. - -set -o pipefail -set -o errexit -set -o nounset - -# Set magic variables for current file & dir -# __dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -# __file="${__dir}/$(basename "${BASH_SOURCE[0]}")" -# __base="$(basename ${__file} .sh)" -# __root="$(cd "$(dirname "${__dir}")" && pwd)" - -# disable this script -# until upload-to-cdn is refactored to publish multiple packages -# remove when upload-to-cdn is back -exit 0 - -if [ "${ENDTOEND:=0}" = "1" ]; then - echo "Publishing for e2e tests, skipping version number sync." - exit 0 -fi - -commit_message="$(git log -1 --pretty=%B)" -if [ "${commit_message}" != "Release" ]; then - echo "Last commit is not a release commit, but '${commit_message}'" - exit 1 -fi - -version_files="./examples/ README.md bin/upload-to-cdn.sh website/src/examples/ website/src/docs/ website/themes/uppy/layout/" -main_package_version=$(node -p "require('./packages/uppy/package.json').version") -# Legacy defeater for also renaming the old /dist/ locations, can be removed as soon as everything's on the new dist-less thing -replace-x -r 'uppy/v\d+\.\d+\.\d+/dist/' "uppy/v$main_package_version/" ${version_files} --exclude=node_modules -replace-x -r 'uppy/v\d+\.\d+\.\d+/' "uppy/v$main_package_version/" ${version_files} --exclude=node_modules -# replace-x -r 'uppy@\d+\.\d+\.\d+' "uppy@$main_package_version" ${version_files} --exclude=node_modules -git add ${version_files} # add changes to the Release commit diff --git a/package.json b/package.json index 806fd1027..b8df2c739 100644 --- a/package.json +++ b/package.json @@ -48,10 +48,12 @@ "flat": "^4.1.0", "github-contributors-list": "1.2.3", "glob": "^7.1.3", + "globby": "^9.2.0", "gzip-size": "^5.0.0", "isomorphic-fetch": "2.2.1", "jest": "^24.7.1", "json3": "^3.3.2", + "last-commit-message": "^1.0.0", "lerna": "^3.14.1", "lint-staged": "^8.1.7", "minify-stream": "^1.2.0", @@ -119,7 +121,7 @@ "test:watch": "jest --watch", "test": "npm-run-all lint test:locale-packs test:unit test:type test:companion", "uploadcdn": "bin/upload-to-cdn.sh", - "version": "./bin/sync-version-numbers", + "version": "node ./bin/after-version-bump.js", "watch:css": "onchange 'packages/**/*.scss' --initial --verbose -- npm run build:css", "watch:js:bundle": "onchange 'packages/{@uppy/,}*/src/**/*.js' --initial --verbose -- npm run build:bundle", "watch:js:lib": "onchange 'packages/{@uppy/,}*/src/**/*.js' --initial --verbose -- npm run build:lib", From bc6da2a63769c395eb6090a21b9dbad80280bb59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 27 May 2019 13:56:19 +0200 Subject: [PATCH 02/13] Run build after version bump --- babel.config.js | 5 +- bin/after-version-bump.js | 32 +- package-lock.json | 1380 +++++++++++++++++++++++-------------- package.json | 1 + 4 files changed, 891 insertions(+), 527 deletions(-) mode change 100644 => 100755 bin/after-version-bump.js diff --git a/babel.config.js b/babel.config.js index e0bbd7abb..53ee71e56 100644 --- a/babel.config.js +++ b/babel.config.js @@ -15,7 +15,8 @@ module.exports = (api) => { plugins: [ '@babel/plugin-proposal-object-rest-spread', '@babel/plugin-transform-object-assign', - ['@babel/plugin-transform-react-jsx', { pragma: 'h' }] - ] + ['@babel/plugin-transform-react-jsx', { pragma: 'h' }], + process.env.IS_RELEASE_BUILD && 'babel-plugin-inline-package-json' + ].filter(Boolean) } } diff --git a/bin/after-version-bump.js b/bin/after-version-bump.js old mode 100644 new mode 100755 index 399adf878..32b22db20 --- a/bin/after-version-bump.js +++ b/bin/after-version-bump.js @@ -44,6 +44,28 @@ async function updateVersions (files, packageName) { } } +async function gitAdd (files) { + const git = spawn('git', ['add', ...files], { stdio: 'inherit' }) + const exitCode = await once(git, 'exit') + if (exitCode !== 0) { + throw new Error(`git add failed with ${exitCode}`) + } +} + +async function npmRunBuild () { + const npmRun = spawn('npm', ['run', 'build'], { + stdio: 'inherit', + env: { + ...process.env, + IS_RELEASE_BUILD: true + } + }) + const exitCode = await once(npmRun, 'exit') + if (exitCode !== 0) { + throw new Error(`npm run build failed with ${exitCode}`) + } +} + async function main () { if (process.env.ENDTOEND === '1') { console.log('Publishing for e2e tests, skipping version number sync.') @@ -64,18 +86,16 @@ async function main () { 'website/src/docs/**', 'website/src/examples/**', 'website/themes/uppy/layout/**', - '!node_modules' + '!**/node_modules/**' ]) await updateVersions(files, 'uppy') await updateVersions(files, '@uppy/robodog') await updateVersions(files, '@uppy/locales') - const gitAdd = spawn('git', ['add', ...files], { stdio: 'inherit' }) - const exitCode = await once(gitAdd, 'exit') - if (exitCode !== 0) { - throw new Error(`git add failed with ${exitCode}`) - } + await gitAdd(files) + + await npmRunBuild() } main().catch(function (err) { diff --git a/package-lock.json b/package-lock.json index f9bba267b..d79456fa4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1520,106 +1520,6 @@ } } }, - "@lerna/add": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.14.0.tgz", - "integrity": "sha512-Sa79Ju6HqF3heSVpBiYPNrGtuS56U/jMzVq4CcVvhNwB34USLrzJJncGFVcfnuUvsjKeFJv+jHxUycHeRE8XYw==", - "dev": true, - "requires": { - "@lerna/bootstrap": "3.14.0", - "@lerna/command": "3.14.0", - "@lerna/filter-options": "3.14.0", - "@lerna/npm-conf": "3.13.0", - "@lerna/validation-error": "3.13.0", - "dedent": "^0.7.0", - "npm-package-arg": "^6.1.0", - "p-map": "^1.2.0", - "pacote": "^9.5.0", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - } - } - }, - "@lerna/batch-packages": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/batch-packages/-/batch-packages-3.14.0.tgz", - "integrity": "sha512-RlBkQVNTqk1qvn6PFWiWNiskllUHh6tXbTVm43mZRNd+vhAyvrQC8RWJxH0ECVvnFAt9rSNGRIVbEJ31WnNQLg==", - "dev": true, - "requires": { - "@lerna/package-graph": "3.14.0", - "npmlog": "^4.1.2" - } - }, - "@lerna/bootstrap": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.14.0.tgz", - "integrity": "sha512-AvnuDp8b0kX4zZgqD3v7ItPABhUsN5CmTEvZBD2JqM+xkQKhzCfz5ABcHEwDwOPWnNQmtH+/2iQdwaD7xBcAXw==", - "dev": true, - "requires": { - "@lerna/batch-packages": "3.14.0", - "@lerna/command": "3.14.0", - "@lerna/filter-options": "3.14.0", - "@lerna/has-npm-version": "3.13.3", - "@lerna/npm-install": "3.13.3", - "@lerna/package-graph": "3.14.0", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/rimraf-dir": "3.13.3", - "@lerna/run-lifecycle": "3.14.0", - "@lerna/run-parallel-batches": "3.13.0", - "@lerna/symlink-binary": "3.14.0", - "@lerna/symlink-dependencies": "3.14.0", - "@lerna/validation-error": "3.13.0", - "dedent": "^0.7.0", - "get-port": "^3.2.0", - "multimatch": "^2.1.0", - "npm-package-arg": "^6.1.0", - "npmlog": "^4.1.2", - "p-finally": "^1.0.0", - "p-map": "^1.2.0", - "p-map-series": "^1.0.0", - "p-waterfall": "^1.0.0", - "read-package-tree": "^5.1.6", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - } - } - }, - "@lerna/changed": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.14.1.tgz", - "integrity": "sha512-G0RgYL/WLTFzbezRBLUO2J0v39EvgZIO5bHHUtYt7zUFSfzapkPfvpdpBj+5JlMtf0B2xfxwTk+lSA4LVnbfmA==", - "dev": true, - "requires": { - "@lerna/collect-updates": "3.14.0", - "@lerna/command": "3.14.0", - "@lerna/listable": "3.14.0", - "@lerna/output": "3.13.0", - "@lerna/version": "3.14.1" - } - }, - "@lerna/check-working-tree": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.14.1.tgz", - "integrity": "sha512-ae/sdZPNh4SS+6c4UDuWP/QKbtIFAn/TvKsPncA1Jdo0PqXLBlug4DzkHTGkvZ5F0nj+0JrSxYteInakJV99vg==", - "dev": true, - "requires": { - "@lerna/collect-uncommitted": "3.14.1", - "@lerna/describe-ref": "3.13.3", - "@lerna/validation-error": "3.13.0" - } - }, "@lerna/child-process": { "version": "3.13.3", "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.13.3.tgz", @@ -1631,22 +1531,6 @@ "strong-log-transformer": "^2.0.0" } }, - "@lerna/clean": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.14.0.tgz", - "integrity": "sha512-wEuAqOS9VMqh2C20KD63IySzyEnyVDqDI3LUsXw+ByUf9AJDgEHv0TCOxbDjDYaaQw1tjSBNZMyYInNeoASwhA==", - "dev": true, - "requires": { - "@lerna/command": "3.14.0", - "@lerna/filter-options": "3.14.0", - "@lerna/prompt": "3.13.0", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/rimraf-dir": "3.13.3", - "p-map": "^1.2.0", - "p-map-series": "^1.0.0", - "p-waterfall": "^1.0.0" - } - }, "@lerna/cli": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-3.13.0.tgz", @@ -1792,290 +1676,6 @@ "npmlog": "^4.1.2" } }, - "@lerna/collect-updates": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.14.0.tgz", - "integrity": "sha512-siRHo2atAwj5KpKVOo6QTVIYDYbNs7dzTG6ow9VcFMLKX5shuaEyFA22Z3LmnxQ3sakVFdgvvVeediEz6cM3VA==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.3", - "@lerna/describe-ref": "3.13.3", - "minimatch": "^3.0.4", - "npmlog": "^4.1.2", - "slash": "^1.0.0" - }, - "dependencies": { - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - } - } - }, - "@lerna/command": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.14.0.tgz", - "integrity": "sha512-PtFi5EtXB2VuSruoLsjfZdus56d7oKlZAI4iSRoaS/BBxE2Wyfn7//vW7Ow4hZCzuqb9tBcpDq+4u2pdXN1d2Q==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.3", - "@lerna/package-graph": "3.14.0", - "@lerna/project": "3.13.1", - "@lerna/validation-error": "3.13.0", - "@lerna/write-log-file": "3.13.0", - "dedent": "^0.7.0", - "execa": "^1.0.0", - "is-ci": "^1.0.10", - "lodash": "^4.17.5", - "npmlog": "^4.1.2" - }, - "dependencies": { - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "requires": { - "ci-info": "^1.5.0" - } - } - } - }, - "@lerna/conventional-commits": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.14.0.tgz", - "integrity": "sha512-hGZ2qQZ9uEGf2eeIiIpEodSs9Qkkf/2uYEtNT7QN1RYISPUh6/lKGBssc5dpbCF64aEuxmemWLdlDf1ogG6++w==", - "dev": true, - "requires": { - "@lerna/validation-error": "3.13.0", - "conventional-changelog-angular": "^5.0.3", - "conventional-changelog-core": "^3.1.6", - "conventional-recommended-bump": "^4.0.4", - "fs-extra": "^7.0.0", - "get-stream": "^4.0.0", - "npm-package-arg": "^6.1.0", - "npmlog": "^4.1.2", - "pify": "^3.0.0", - "semver": "^5.5.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - } - } - }, - "@lerna/create": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.14.0.tgz", - "integrity": "sha512-J4PeGnzVBOSV7Cih8Uhv9xIauljR9bGcfSDN9aMzFtJhSX0xFXNvmnpXRORp7xNHV2lbxk7mNxRQxzR9CQRMuw==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.3", - "@lerna/command": "3.14.0", - "@lerna/npm-conf": "3.13.0", - "@lerna/validation-error": "3.13.0", - "camelcase": "^5.0.0", - "dedent": "^0.7.0", - "fs-extra": "^7.0.0", - "globby": "^8.0.1", - "init-package-json": "^1.10.3", - "npm-package-arg": "^6.1.0", - "p-reduce": "^1.0.0", - "pacote": "^9.5.0", - "pify": "^3.0.0", - "semver": "^5.5.0", - "slash": "^1.0.0", - "validate-npm-package-license": "^3.0.3", - "validate-npm-package-name": "^3.0.0", - "whatwg-url": "^7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "whatwg-url": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", - "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "@lerna/create-symlink": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.14.0.tgz", - "integrity": "sha512-Kw51HYOOi6UfCKncqkgEU1k/SYueSBXgkNL91FR8HAZH7EPSRTEtp9mnJo568g0+Hog5C+3cOaWySwhHpRG29A==", - "dev": true, - "requires": { - "cmd-shim": "^2.0.2", - "fs-extra": "^7.0.0", - "npmlog": "^4.1.2" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, "@lerna/describe-ref": { "version": "3.13.3", "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.13.3.tgz", @@ -2086,43 +1686,6 @@ "npmlog": "^4.1.2" } }, - "@lerna/diff": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.14.0.tgz", - "integrity": "sha512-H6FSj0jOiQ6unVCwOK6ReT5uZN6ZIn/j/cx4YwuOtU3SMcs3UfuQRIFNeKg/tKmOcQGd39Mn9zDhmt3TAYGROA==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.3", - "@lerna/command": "3.14.0", - "@lerna/validation-error": "3.13.0", - "npmlog": "^4.1.2" - } - }, - "@lerna/exec": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.14.0.tgz", - "integrity": "sha512-cNFO8hWsBVLeqVQ7LsQ4rYKbbQ2eN+Ne+hWKTlUQoyRbYzgJ22TXhjKR6IMr68q0xtclcDlasfcNO+XEWESh0g==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.3", - "@lerna/command": "3.14.0", - "@lerna/filter-options": "3.14.0", - "@lerna/run-topologically": "3.14.0", - "@lerna/validation-error": "3.13.0", - "p-map": "^1.2.0" - } - }, - "@lerna/filter-options": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.14.0.tgz", - "integrity": "sha512-ZmNZK9m8evxHc+2ZnDyCm8XFIKVDKpIASG1wtizr3R14t49fuYE7nR+rm4t82u9oSSmER8gb8bGzh0SKZme/jg==", - "dev": true, - "requires": { - "@lerna/collect-updates": "3.14.0", - "@lerna/filter-packages": "3.13.0", - "dedent": "^0.7.0" - } - }, "@lerna/filter-packages": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.13.0.tgz", @@ -2174,6 +1737,12 @@ "graceful-fs": "^4.1.6" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "ssri": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", @@ -2182,6 +1751,27 @@ "requires": { "figgy-pudding": "^3.5.1" } + }, + "tar": { + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true } } }, @@ -2222,79 +1812,6 @@ } } }, - "@lerna/import": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.14.0.tgz", - "integrity": "sha512-j8z/m85FX1QYPgl5TzMNupdxsQF/NFZSmdCR19HQzqiVKC8ULGzF30WJEk66+KeZ94wYMSakINtYD+41s34pNQ==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.3", - "@lerna/command": "3.14.0", - "@lerna/prompt": "3.13.0", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/validation-error": "3.13.0", - "dedent": "^0.7.0", - "fs-extra": "^7.0.0", - "p-map-series": "^1.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, - "@lerna/init": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.14.0.tgz", - "integrity": "sha512-X3PQkQZds5ozA1xiarmVzAK6LPLNK3bBu24Api0w2KJXO7Ccs9ob/VcGdevZuzqdJo1Xg2H6oBhEqIClU9Uqqw==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.3", - "@lerna/command": "3.14.0", - "fs-extra": "^7.0.0", - "p-map": "^1.2.0", - "write-json-file": "^2.3.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, "@lerna/link": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.14.0.tgz", @@ -2308,6 +1825,39 @@ "slash": "^1.0.0" }, "dependencies": { + "@lerna/command": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.14.0.tgz", + "integrity": "sha512-PtFi5EtXB2VuSruoLsjfZdus56d7oKlZAI4iSRoaS/BBxE2Wyfn7//vW7Ow4hZCzuqb9tBcpDq+4u2pdXN1d2Q==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/package-graph": "3.14.0", + "@lerna/project": "3.13.1", + "@lerna/validation-error": "3.13.0", + "@lerna/write-log-file": "3.13.0", + "dedent": "^0.7.0", + "execa": "^1.0.0", + "is-ci": "^1.0.10", + "lodash": "^4.17.5", + "npmlog": "^4.1.2" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -2326,6 +1876,71 @@ "@lerna/filter-options": "3.14.0", "@lerna/listable": "3.14.0", "@lerna/output": "3.13.0" + }, + "dependencies": { + "@lerna/collect-updates": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.14.0.tgz", + "integrity": "sha512-siRHo2atAwj5KpKVOo6QTVIYDYbNs7dzTG6ow9VcFMLKX5shuaEyFA22Z3LmnxQ3sakVFdgvvVeediEz6cM3VA==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/describe-ref": "3.13.3", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "slash": "^1.0.0" + } + }, + "@lerna/command": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.14.0.tgz", + "integrity": "sha512-PtFi5EtXB2VuSruoLsjfZdus56d7oKlZAI4iSRoaS/BBxE2Wyfn7//vW7Ow4hZCzuqb9tBcpDq+4u2pdXN1d2Q==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/package-graph": "3.14.0", + "@lerna/project": "3.13.1", + "@lerna/validation-error": "3.13.0", + "@lerna/write-log-file": "3.13.0", + "dedent": "^0.7.0", + "execa": "^1.0.0", + "is-ci": "^1.0.10", + "lodash": "^4.17.5", + "npmlog": "^4.1.2" + } + }, + "@lerna/filter-options": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.14.0.tgz", + "integrity": "sha512-ZmNZK9m8evxHc+2ZnDyCm8XFIKVDKpIASG1wtizr3R14t49fuYE7nR+rm4t82u9oSSmER8gb8bGzh0SKZme/jg==", + "dev": true, + "requires": { + "@lerna/collect-updates": "3.14.0", + "@lerna/filter-packages": "3.13.0", + "dedent": "^0.7.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } } }, "@lerna/listable": { @@ -2737,6 +2352,54 @@ "semver": "^5.5.0" }, "dependencies": { + "@lerna/check-working-tree": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.14.1.tgz", + "integrity": "sha512-ae/sdZPNh4SS+6c4UDuWP/QKbtIFAn/TvKsPncA1Jdo0PqXLBlug4DzkHTGkvZ5F0nj+0JrSxYteInakJV99vg==", + "dev": true, + "requires": { + "@lerna/collect-uncommitted": "3.14.1", + "@lerna/describe-ref": "3.13.3", + "@lerna/validation-error": "3.13.0" + } + }, + "@lerna/collect-updates": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.14.0.tgz", + "integrity": "sha512-siRHo2atAwj5KpKVOo6QTVIYDYbNs7dzTG6ow9VcFMLKX5shuaEyFA22Z3LmnxQ3sakVFdgvvVeediEz6cM3VA==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/describe-ref": "3.13.3", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "slash": "^1.0.0" + } + }, + "@lerna/command": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.14.0.tgz", + "integrity": "sha512-PtFi5EtXB2VuSruoLsjfZdus56d7oKlZAI4iSRoaS/BBxE2Wyfn7//vW7Ow4hZCzuqb9tBcpDq+4u2pdXN1d2Q==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/package-graph": "3.14.0", + "@lerna/project": "3.13.1", + "@lerna/validation-error": "3.13.0", + "@lerna/write-log-file": "3.13.0", + "dedent": "^0.7.0", + "execa": "^1.0.0", + "is-ci": "^1.0.10", + "lodash": "^4.17.5", + "npmlog": "^4.1.2" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -2748,6 +2411,15 @@ "universalify": "^0.1.0" } }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -2762,6 +2434,12 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true } } }, @@ -2854,6 +2532,71 @@ "@lerna/timer": "3.13.0", "@lerna/validation-error": "3.13.0", "p-map": "^1.2.0" + }, + "dependencies": { + "@lerna/collect-updates": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.14.0.tgz", + "integrity": "sha512-siRHo2atAwj5KpKVOo6QTVIYDYbNs7dzTG6ow9VcFMLKX5shuaEyFA22Z3LmnxQ3sakVFdgvvVeediEz6cM3VA==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/describe-ref": "3.13.3", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "slash": "^1.0.0" + } + }, + "@lerna/command": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.14.0.tgz", + "integrity": "sha512-PtFi5EtXB2VuSruoLsjfZdus56d7oKlZAI4iSRoaS/BBxE2Wyfn7//vW7Ow4hZCzuqb9tBcpDq+4u2pdXN1d2Q==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/package-graph": "3.14.0", + "@lerna/project": "3.13.1", + "@lerna/validation-error": "3.13.0", + "@lerna/write-log-file": "3.13.0", + "dedent": "^0.7.0", + "execa": "^1.0.0", + "is-ci": "^1.0.10", + "lodash": "^4.17.5", + "npmlog": "^4.1.2" + } + }, + "@lerna/filter-options": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.14.0.tgz", + "integrity": "sha512-ZmNZK9m8evxHc+2ZnDyCm8XFIKVDKpIASG1wtizr3R14t49fuYE7nR+rm4t82u9oSSmER8gb8bGzh0SKZme/jg==", + "dev": true, + "requires": { + "@lerna/collect-updates": "3.14.0", + "@lerna/filter-packages": "3.13.0", + "dedent": "^0.7.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } } }, "@lerna/run-lifecycle": { @@ -2901,6 +2644,17 @@ "p-map": "^1.2.0" }, "dependencies": { + "@lerna/create-symlink": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.14.0.tgz", + "integrity": "sha512-Kw51HYOOi6UfCKncqkgEU1k/SYueSBXgkNL91FR8HAZH7EPSRTEtp9mnJo568g0+Hog5C+3cOaWySwhHpRG29A==", + "dev": true, + "requires": { + "cmd-shim": "^2.0.2", + "fs-extra": "^7.0.0", + "npmlog": "^4.1.2" + } + }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -2938,6 +2692,17 @@ "p-map-series": "^1.0.0" }, "dependencies": { + "@lerna/create-symlink": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.14.0.tgz", + "integrity": "sha512-Kw51HYOOi6UfCKncqkgEU1k/SYueSBXgkNL91FR8HAZH7EPSRTEtp9mnJo568g0+Hog5C+3cOaWySwhHpRG29A==", + "dev": true, + "requires": { + "cmd-shim": "^2.0.2", + "fs-extra": "^7.0.0", + "npmlog": "^4.1.2" + } + }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -3007,6 +2772,126 @@ "temp-write": "^3.4.0" }, "dependencies": { + "@lerna/batch-packages": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/batch-packages/-/batch-packages-3.14.0.tgz", + "integrity": "sha512-RlBkQVNTqk1qvn6PFWiWNiskllUHh6tXbTVm43mZRNd+vhAyvrQC8RWJxH0ECVvnFAt9rSNGRIVbEJ31WnNQLg==", + "dev": true, + "requires": { + "@lerna/package-graph": "3.14.0", + "npmlog": "^4.1.2" + } + }, + "@lerna/check-working-tree": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.14.1.tgz", + "integrity": "sha512-ae/sdZPNh4SS+6c4UDuWP/QKbtIFAn/TvKsPncA1Jdo0PqXLBlug4DzkHTGkvZ5F0nj+0JrSxYteInakJV99vg==", + "dev": true, + "requires": { + "@lerna/collect-uncommitted": "3.14.1", + "@lerna/describe-ref": "3.13.3", + "@lerna/validation-error": "3.13.0" + } + }, + "@lerna/collect-updates": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.14.0.tgz", + "integrity": "sha512-siRHo2atAwj5KpKVOo6QTVIYDYbNs7dzTG6ow9VcFMLKX5shuaEyFA22Z3LmnxQ3sakVFdgvvVeediEz6cM3VA==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/describe-ref": "3.13.3", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "slash": "^1.0.0" + } + }, + "@lerna/command": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.14.0.tgz", + "integrity": "sha512-PtFi5EtXB2VuSruoLsjfZdus56d7oKlZAI4iSRoaS/BBxE2Wyfn7//vW7Ow4hZCzuqb9tBcpDq+4u2pdXN1d2Q==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/package-graph": "3.14.0", + "@lerna/project": "3.13.1", + "@lerna/validation-error": "3.13.0", + "@lerna/write-log-file": "3.13.0", + "dedent": "^0.7.0", + "execa": "^1.0.0", + "is-ci": "^1.0.10", + "lodash": "^4.17.5", + "npmlog": "^4.1.2" + } + }, + "@lerna/conventional-commits": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.14.0.tgz", + "integrity": "sha512-hGZ2qQZ9uEGf2eeIiIpEodSs9Qkkf/2uYEtNT7QN1RYISPUh6/lKGBssc5dpbCF64aEuxmemWLdlDf1ogG6++w==", + "dev": true, + "requires": { + "@lerna/validation-error": "3.13.0", + "conventional-changelog-angular": "^5.0.3", + "conventional-changelog-core": "^3.1.6", + "conventional-recommended-bump": "^4.0.4", + "fs-extra": "^7.0.0", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "pify": "^3.0.0", + "semver": "^5.5.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", @@ -3256,6 +3141,12 @@ "@types/express": "*" } }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, "@types/express": { "version": "4.16.1", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.16.1.tgz", @@ -3292,6 +3183,17 @@ "@types/node": "*" } }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/helmet": { "version": "0.0.37", "resolved": "https://registry.npmjs.org/@types/helmet/-/helmet-0.0.37.tgz", @@ -3351,6 +3253,12 @@ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz", "integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==" }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, "@types/morgan": { "version": "1.7.35", "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.7.35.tgz", @@ -5675,6 +5583,12 @@ "babel-runtime": "^6.22.0" } }, + "babel-plugin-inline-package-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-inline-package-json/-/babel-plugin-inline-package-json-2.0.0.tgz", + "integrity": "sha1-H5VY2WZn9Lh4foB9dk5uFbTwzQc=", + "dev": true + }, "babel-plugin-istanbul": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.0.tgz", @@ -6660,6 +6574,11 @@ "integrity": "sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ==", "dev": true }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, "node-releases": { "version": "1.1.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.19.tgz", @@ -9634,6 +9553,22 @@ "pify": "^2.0.0", "pinkie-promise": "^2.0.0", "rimraf": "^2.2.8" + }, + "dependencies": { + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } } }, "delayed-stream": { @@ -13781,17 +13716,59 @@ "dev": true }, "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", "dev": true, "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } } }, "globule": { @@ -17861,6 +17838,15 @@ } } }, + "last-commit-message": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/last-commit-message/-/last-commit-message-1.0.0.tgz", + "integrity": "sha512-4IMqhEZUAo1qMo191vcVtHKr1Bh7Ee22/wq/cXzxKz//Dqss2C6Z7WQIg46BIypeloy2R7dMKElR9e3wlPZHDQ==", + "dev": true, + "requires": { + "simple-concat": "^1.0.0" + } + }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", @@ -17916,6 +17902,341 @@ "@lerna/version": "3.14.1", "import-local": "^1.0.0", "npmlog": "^4.1.2" + }, + "dependencies": { + "@lerna/add": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.14.0.tgz", + "integrity": "sha512-Sa79Ju6HqF3heSVpBiYPNrGtuS56U/jMzVq4CcVvhNwB34USLrzJJncGFVcfnuUvsjKeFJv+jHxUycHeRE8XYw==", + "dev": true, + "requires": { + "@lerna/bootstrap": "3.14.0", + "@lerna/command": "3.14.0", + "@lerna/filter-options": "3.14.0", + "@lerna/npm-conf": "3.13.0", + "@lerna/validation-error": "3.13.0", + "dedent": "^0.7.0", + "npm-package-arg": "^6.1.0", + "p-map": "^1.2.0", + "pacote": "^9.5.0", + "semver": "^5.5.0" + } + }, + "@lerna/batch-packages": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/batch-packages/-/batch-packages-3.14.0.tgz", + "integrity": "sha512-RlBkQVNTqk1qvn6PFWiWNiskllUHh6tXbTVm43mZRNd+vhAyvrQC8RWJxH0ECVvnFAt9rSNGRIVbEJ31WnNQLg==", + "dev": true, + "requires": { + "@lerna/package-graph": "3.14.0", + "npmlog": "^4.1.2" + } + }, + "@lerna/bootstrap": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.14.0.tgz", + "integrity": "sha512-AvnuDp8b0kX4zZgqD3v7ItPABhUsN5CmTEvZBD2JqM+xkQKhzCfz5ABcHEwDwOPWnNQmtH+/2iQdwaD7xBcAXw==", + "dev": true, + "requires": { + "@lerna/batch-packages": "3.14.0", + "@lerna/command": "3.14.0", + "@lerna/filter-options": "3.14.0", + "@lerna/has-npm-version": "3.13.3", + "@lerna/npm-install": "3.13.3", + "@lerna/package-graph": "3.14.0", + "@lerna/pulse-till-done": "3.13.0", + "@lerna/rimraf-dir": "3.13.3", + "@lerna/run-lifecycle": "3.14.0", + "@lerna/run-parallel-batches": "3.13.0", + "@lerna/symlink-binary": "3.14.0", + "@lerna/symlink-dependencies": "3.14.0", + "@lerna/validation-error": "3.13.0", + "dedent": "^0.7.0", + "get-port": "^3.2.0", + "multimatch": "^2.1.0", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "p-finally": "^1.0.0", + "p-map": "^1.2.0", + "p-map-series": "^1.0.0", + "p-waterfall": "^1.0.0", + "read-package-tree": "^5.1.6", + "semver": "^5.5.0" + } + }, + "@lerna/changed": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.14.1.tgz", + "integrity": "sha512-G0RgYL/WLTFzbezRBLUO2J0v39EvgZIO5bHHUtYt7zUFSfzapkPfvpdpBj+5JlMtf0B2xfxwTk+lSA4LVnbfmA==", + "dev": true, + "requires": { + "@lerna/collect-updates": "3.14.0", + "@lerna/command": "3.14.0", + "@lerna/listable": "3.14.0", + "@lerna/output": "3.13.0", + "@lerna/version": "3.14.1" + } + }, + "@lerna/clean": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.14.0.tgz", + "integrity": "sha512-wEuAqOS9VMqh2C20KD63IySzyEnyVDqDI3LUsXw+ByUf9AJDgEHv0TCOxbDjDYaaQw1tjSBNZMyYInNeoASwhA==", + "dev": true, + "requires": { + "@lerna/command": "3.14.0", + "@lerna/filter-options": "3.14.0", + "@lerna/prompt": "3.13.0", + "@lerna/pulse-till-done": "3.13.0", + "@lerna/rimraf-dir": "3.13.3", + "p-map": "^1.2.0", + "p-map-series": "^1.0.0", + "p-waterfall": "^1.0.0" + } + }, + "@lerna/collect-updates": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.14.0.tgz", + "integrity": "sha512-siRHo2atAwj5KpKVOo6QTVIYDYbNs7dzTG6ow9VcFMLKX5shuaEyFA22Z3LmnxQ3sakVFdgvvVeediEz6cM3VA==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/describe-ref": "3.13.3", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "slash": "^1.0.0" + } + }, + "@lerna/command": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.14.0.tgz", + "integrity": "sha512-PtFi5EtXB2VuSruoLsjfZdus56d7oKlZAI4iSRoaS/BBxE2Wyfn7//vW7Ow4hZCzuqb9tBcpDq+4u2pdXN1d2Q==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/package-graph": "3.14.0", + "@lerna/project": "3.13.1", + "@lerna/validation-error": "3.13.0", + "@lerna/write-log-file": "3.13.0", + "dedent": "^0.7.0", + "execa": "^1.0.0", + "is-ci": "^1.0.10", + "lodash": "^4.17.5", + "npmlog": "^4.1.2" + } + }, + "@lerna/create": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.14.0.tgz", + "integrity": "sha512-J4PeGnzVBOSV7Cih8Uhv9xIauljR9bGcfSDN9aMzFtJhSX0xFXNvmnpXRORp7xNHV2lbxk7mNxRQxzR9CQRMuw==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/command": "3.14.0", + "@lerna/npm-conf": "3.13.0", + "@lerna/validation-error": "3.13.0", + "camelcase": "^5.0.0", + "dedent": "^0.7.0", + "fs-extra": "^7.0.0", + "globby": "^8.0.1", + "init-package-json": "^1.10.3", + "npm-package-arg": "^6.1.0", + "p-reduce": "^1.0.0", + "pacote": "^9.5.0", + "pify": "^3.0.0", + "semver": "^5.5.0", + "slash": "^1.0.0", + "validate-npm-package-license": "^3.0.3", + "validate-npm-package-name": "^3.0.0", + "whatwg-url": "^7.0.0" + } + }, + "@lerna/diff": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.14.0.tgz", + "integrity": "sha512-H6FSj0jOiQ6unVCwOK6ReT5uZN6ZIn/j/cx4YwuOtU3SMcs3UfuQRIFNeKg/tKmOcQGd39Mn9zDhmt3TAYGROA==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/command": "3.14.0", + "@lerna/validation-error": "3.13.0", + "npmlog": "^4.1.2" + } + }, + "@lerna/exec": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.14.0.tgz", + "integrity": "sha512-cNFO8hWsBVLeqVQ7LsQ4rYKbbQ2eN+Ne+hWKTlUQoyRbYzgJ22TXhjKR6IMr68q0xtclcDlasfcNO+XEWESh0g==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/command": "3.14.0", + "@lerna/filter-options": "3.14.0", + "@lerna/run-topologically": "3.14.0", + "@lerna/validation-error": "3.13.0", + "p-map": "^1.2.0" + } + }, + "@lerna/filter-options": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.14.0.tgz", + "integrity": "sha512-ZmNZK9m8evxHc+2ZnDyCm8XFIKVDKpIASG1wtizr3R14t49fuYE7nR+rm4t82u9oSSmER8gb8bGzh0SKZme/jg==", + "dev": true, + "requires": { + "@lerna/collect-updates": "3.14.0", + "@lerna/filter-packages": "3.13.0", + "dedent": "^0.7.0" + } + }, + "@lerna/import": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.14.0.tgz", + "integrity": "sha512-j8z/m85FX1QYPgl5TzMNupdxsQF/NFZSmdCR19HQzqiVKC8ULGzF30WJEk66+KeZ94wYMSakINtYD+41s34pNQ==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/command": "3.14.0", + "@lerna/prompt": "3.13.0", + "@lerna/pulse-till-done": "3.13.0", + "@lerna/validation-error": "3.13.0", + "dedent": "^0.7.0", + "fs-extra": "^7.0.0", + "p-map-series": "^1.0.0" + } + }, + "@lerna/init": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.14.0.tgz", + "integrity": "sha512-X3PQkQZds5ozA1xiarmVzAK6LPLNK3bBu24Api0w2KJXO7Ccs9ob/VcGdevZuzqdJo1Xg2H6oBhEqIClU9Uqqw==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "@lerna/command": "3.14.0", + "fs-extra": "^7.0.0", + "p-map": "^1.2.0", + "write-json-file": "^2.3.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } } }, "leven": { @@ -20506,6 +20827,21 @@ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true }, + "tar": { + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -20530,6 +20866,12 @@ "requires": { "isexe": "^2.0.0" } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true } } }, diff --git a/package.json b/package.json index b8df2c739..58871795f 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "aliasify": "^2.1.0", "autoprefixer": "^9.5.1", "babel-jest": "^24.8.0", + "babel-plugin-inline-package-json": "^2.0.0", "babelify": "^10.0.0", "browser-resolve": "^1.11.3", "browser-sync": "^2.26.5", From 999253f034885cbc360ecceac8092a90bb728abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 27 May 2019 13:58:43 +0200 Subject: [PATCH 03/13] Account for gitignores when running `git add` --- bin/after-version-bump.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/bin/after-version-bump.js b/bin/after-version-bump.js index 32b22db20..90a838576 100755 --- a/bin/after-version-bump.js +++ b/bin/after-version-bump.js @@ -46,12 +46,13 @@ async function updateVersions (files, packageName) { async function gitAdd (files) { const git = spawn('git', ['add', ...files], { stdio: 'inherit' }) - const exitCode = await once(git, 'exit') + const [exitCode] = await once(git, 'exit') if (exitCode !== 0) { throw new Error(`git add failed with ${exitCode}`) } } +// Run the build as a release build (that inlines version numbers etc.) async function npmRunBuild () { const npmRun = spawn('npm', ['run', 'build'], { stdio: 'inherit', @@ -60,7 +61,7 @@ async function npmRunBuild () { IS_RELEASE_BUILD: true } }) - const exitCode = await once(npmRun, 'exit') + const [exitCode] = await once(npmRun, 'exit') if (exitCode !== 0) { throw new Error(`npm run build failed with ${exitCode}`) } @@ -93,7 +94,10 @@ async function main () { await updateVersions(files, '@uppy/robodog') await updateVersions(files, '@uppy/locales') - await gitAdd(files) + // gitignored files were updated for the npm package, but can't be updated + // on git. + const isIgnored = await globby.gitignore() + await gitAdd(files.filter((filename) => !isIgnored(filename))) await npmRunBuild() } From 980210f76ca5e080ff82994be2a7d1210547deb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 27 May 2019 14:06:59 +0200 Subject: [PATCH 04/13] Add VERSION properties to all plugins. And remove the proposal-object-rest-spread plugin because it is built into preset-env now. --- babel.config.js | 2 +- package-lock.json | 58 +++++++++++++++++++ package.json | 1 + packages/@uppy/aws-s3-multipart/src/index.js | 2 + packages/@uppy/aws-s3/src/index.js | 2 + packages/@uppy/core/src/index.js | 2 + packages/@uppy/dashboard/src/index.js | 2 + packages/@uppy/drag-drop/src/index.js | 2 + packages/@uppy/dropbox/src/index.js | 2 + packages/@uppy/file-input/src/index.js | 2 + packages/@uppy/form/src/index.js | 2 + packages/@uppy/golden-retriever/src/index.js | 2 + packages/@uppy/google-drive/src/index.js | 2 + packages/@uppy/informer/src/index.js | 2 + packages/@uppy/instagram/src/index.js | 2 + packages/@uppy/progress-bar/src/index.js | 2 + packages/@uppy/provider-views/src/index.js | 2 + packages/@uppy/redux-dev-tools/src/index.js | 2 + packages/@uppy/robodog/src/index.js | 3 +- packages/@uppy/status-bar/src/index.js | 2 + packages/@uppy/store-default/src/index.js | 2 + packages/@uppy/store-redux/src/index.js | 2 + .../@uppy/thumbnail-generator/src/index.js | 2 + packages/@uppy/transloadit/src/index.js | 2 + packages/@uppy/tus/src/index.js | 2 + packages/@uppy/url/src/index.js | 2 + packages/@uppy/webcam/src/index.js | 2 + packages/@uppy/xhr-upload/src/index.js | 2 + 28 files changed, 110 insertions(+), 2 deletions(-) diff --git a/babel.config.js b/babel.config.js index 53ee71e56..257451409 100644 --- a/babel.config.js +++ b/babel.config.js @@ -13,7 +13,7 @@ module.exports = (api) => { }] ], plugins: [ - '@babel/plugin-proposal-object-rest-spread', + ['@babel/plugin-proposal-class-properties', { loose: true }], '@babel/plugin-transform-object-assign', ['@babel/plugin-transform-react-jsx', { pragma: 'h' }], process.env.IS_RELEASE_BUILD && 'babel-plugin-inline-package-json' diff --git a/package-lock.json b/package-lock.json index d79456fa4..dd62873dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -297,6 +297,54 @@ } } }, + "@babel/helper-create-class-features-plugin": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz", + "integrity": "sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.4.4", + "@babel/helper-split-export-declaration": "^7.4.4" + }, + "dependencies": { + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, "@babel/helper-define-map": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz", @@ -758,6 +806,16 @@ "@babel/plugin-syntax-async-generators": "^7.2.0" } }, + "@babel/plugin-proposal-class-properties": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz", + "integrity": "sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, "@babel/plugin-proposal-json-strings": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", diff --git a/package.json b/package.json index 58871795f..1084a5984 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "devDependencies": { "@babel/cli": "^7.4.4", "@babel/core": "^7.4.5", + "@babel/plugin-proposal-class-properties": "^7.4.4", "@babel/plugin-proposal-object-rest-spread": "^7.4.4", "@babel/plugin-transform-object-assign": "^7.2.0", "@babel/plugin-transform-proto-to-assign": "^7.4.4", diff --git a/packages/@uppy/aws-s3-multipart/src/index.js b/packages/@uppy/aws-s3-multipart/src/index.js index 1a2d8bb76..7a9b650b1 100644 --- a/packages/@uppy/aws-s3-multipart/src/index.js +++ b/packages/@uppy/aws-s3-multipart/src/index.js @@ -34,6 +34,8 @@ function assertServerError (res) { } module.exports = class AwsS3Multipart extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.type = 'uploader' diff --git a/packages/@uppy/aws-s3/src/index.js b/packages/@uppy/aws-s3/src/index.js index 5bcc0dfa3..5ca6f876c 100644 --- a/packages/@uppy/aws-s3/src/index.js +++ b/packages/@uppy/aws-s3/src/index.js @@ -28,6 +28,8 @@ function assertServerError (res) { } module.exports = class AwsS3 extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.type = 'uploader' diff --git a/packages/@uppy/core/src/index.js b/packages/@uppy/core/src/index.js index 636117308..002b1e09d 100644 --- a/packages/@uppy/core/src/index.js +++ b/packages/@uppy/core/src/index.js @@ -18,6 +18,8 @@ const Plugin = require('./Plugin') // Exported from here. * adds/removes files and metadata. */ class Uppy { + static VERSION = require('../package.json').version + /** * Instantiate Uppy * @param {object} opts — Uppy options diff --git a/packages/@uppy/dashboard/src/index.js b/packages/@uppy/dashboard/src/index.js index 7b4edbf37..93128c068 100644 --- a/packages/@uppy/dashboard/src/index.js +++ b/packages/@uppy/dashboard/src/index.js @@ -44,6 +44,8 @@ function createPromise () { * Dashboard UI with previews, metadata editing, tabs for various services and more */ module.exports = class Dashboard extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.id = this.opts.id || 'Dashboard' diff --git a/packages/@uppy/drag-drop/src/index.js b/packages/@uppy/drag-drop/src/index.js index e32ab078d..7e8e98612 100644 --- a/packages/@uppy/drag-drop/src/index.js +++ b/packages/@uppy/drag-drop/src/index.js @@ -9,6 +9,8 @@ const { h } = require('preact') * */ module.exports = class DragDrop extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.type = 'acquirer' diff --git a/packages/@uppy/dropbox/src/index.js b/packages/@uppy/dropbox/src/index.js index 91b12f92b..bebff5a68 100644 --- a/packages/@uppy/dropbox/src/index.js +++ b/packages/@uppy/dropbox/src/index.js @@ -4,6 +4,8 @@ const ProviderViews = require('@uppy/provider-views') const { h } = require('preact') module.exports = class Dropbox extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.id = this.opts.id || 'Dropbox' diff --git a/packages/@uppy/file-input/src/index.js b/packages/@uppy/file-input/src/index.js index 8113aea80..b361932af 100644 --- a/packages/@uppy/file-input/src/index.js +++ b/packages/@uppy/file-input/src/index.js @@ -4,6 +4,8 @@ const Translator = require('@uppy/utils/lib/Translator') const { h } = require('preact') module.exports = class FileInput extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.id = this.opts.id || 'FileInput' diff --git a/packages/@uppy/form/src/index.js b/packages/@uppy/form/src/index.js index 8fd22cc6a..564a003fb 100644 --- a/packages/@uppy/form/src/index.js +++ b/packages/@uppy/form/src/index.js @@ -9,6 +9,8 @@ const getFormData = require('get-form-data').default || require('get-form-data') * Form */ module.exports = class Form extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.type = 'acquirer' diff --git a/packages/@uppy/golden-retriever/src/index.js b/packages/@uppy/golden-retriever/src/index.js index a50a9f28b..244b41b0e 100644 --- a/packages/@uppy/golden-retriever/src/index.js +++ b/packages/@uppy/golden-retriever/src/index.js @@ -11,6 +11,8 @@ const MetaDataStore = require('./MetaDataStore') * https://uppy.io/blog/2017/07/golden-retriever/ */ module.exports = class GoldenRetriever extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.type = 'debugger' diff --git a/packages/@uppy/google-drive/src/index.js b/packages/@uppy/google-drive/src/index.js index 365ce0f1b..396236da6 100644 --- a/packages/@uppy/google-drive/src/index.js +++ b/packages/@uppy/google-drive/src/index.js @@ -4,6 +4,8 @@ const DriveProviderViews = require('./DriveProviderViews') const { h } = require('preact') module.exports = class GoogleDrive extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.id = this.opts.id || 'GoogleDrive' diff --git a/packages/@uppy/informer/src/index.js b/packages/@uppy/informer/src/index.js index d35dee705..0d2f7abf2 100644 --- a/packages/@uppy/informer/src/index.js +++ b/packages/@uppy/informer/src/index.js @@ -9,6 +9,8 @@ const { h } = require('preact') * */ module.exports = class Informer extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.type = 'progressindicator' diff --git a/packages/@uppy/instagram/src/index.js b/packages/@uppy/instagram/src/index.js index 1b5e4ea25..54a1c7926 100644 --- a/packages/@uppy/instagram/src/index.js +++ b/packages/@uppy/instagram/src/index.js @@ -4,6 +4,8 @@ const ProviderViews = require('@uppy/provider-views') const { h } = require('preact') module.exports = class Instagram extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.id = this.opts.id || 'Instagram' diff --git a/packages/@uppy/progress-bar/src/index.js b/packages/@uppy/progress-bar/src/index.js index f09f1e35a..9fa29ce5f 100644 --- a/packages/@uppy/progress-bar/src/index.js +++ b/packages/@uppy/progress-bar/src/index.js @@ -6,6 +6,8 @@ const { h } = require('preact') * */ module.exports = class ProgressBar extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.id = this.opts.id || 'ProgressBar' diff --git a/packages/@uppy/provider-views/src/index.js b/packages/@uppy/provider-views/src/index.js index 15bb2144c..a41d98f28 100644 --- a/packages/@uppy/provider-views/src/index.js +++ b/packages/@uppy/provider-views/src/index.js @@ -38,6 +38,8 @@ class CloseWrapper extends Component { * Class to easily generate generic views for Provider plugins */ module.exports = class ProviderView { + static VERSION = require('../package.json').version + /** * @param {object} instance of the plugin */ diff --git a/packages/@uppy/redux-dev-tools/src/index.js b/packages/@uppy/redux-dev-tools/src/index.js index 2b98ec463..bd04a14ca 100644 --- a/packages/@uppy/redux-dev-tools/src/index.js +++ b/packages/@uppy/redux-dev-tools/src/index.js @@ -7,6 +7,8 @@ const { Plugin } = require('@uppy/core') * and https://github.com/zalmoxisus/mobx-remotedev/blob/master/src/monitorActions.js */ module.exports = class ReduxDevTools extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.type = 'debugger' diff --git a/packages/@uppy/robodog/src/index.js b/packages/@uppy/robodog/src/index.js index d119833ff..806dd4096 100644 --- a/packages/@uppy/robodog/src/index.js +++ b/packages/@uppy/robodog/src/index.js @@ -7,5 +7,6 @@ module.exports = { dashboard, form, pick, - upload + upload, + VERSION: require('../package.json').version } diff --git a/packages/@uppy/status-bar/src/index.js b/packages/@uppy/status-bar/src/index.js index debbbc570..76415a308 100644 --- a/packages/@uppy/status-bar/src/index.js +++ b/packages/@uppy/status-bar/src/index.js @@ -10,6 +10,8 @@ const getBytesRemaining = require('@uppy/utils/lib/getBytesRemaining') * progress percentage and time remaining. */ module.exports = class StatusBar extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.id = this.opts.id || 'StatusBar' diff --git a/packages/@uppy/store-default/src/index.js b/packages/@uppy/store-default/src/index.js index da62a15aa..417510d8c 100644 --- a/packages/@uppy/store-default/src/index.js +++ b/packages/@uppy/store-default/src/index.js @@ -2,6 +2,8 @@ * Default store that keeps state in a simple object. */ class DefaultStore { + static VERSION = require('../package.json').version + constructor () { this.state = {} this.callbacks = [] diff --git a/packages/@uppy/store-redux/src/index.js b/packages/@uppy/store-redux/src/index.js index 5c5ef5c70..40b28cad6 100644 --- a/packages/@uppy/store-redux/src/index.js +++ b/packages/@uppy/store-redux/src/index.js @@ -16,6 +16,8 @@ const defaultSelector = (id) => (state) => state.uppy[id] * Defaults to retrieving `state.uppy[opts.id]`. Override if you placed Uppy state elsewhere in the Redux store. */ class ReduxStore { + static VERSION = require('../package.json').version + constructor (opts) { this._store = opts.store this._id = opts.id || cuid() diff --git a/packages/@uppy/thumbnail-generator/src/index.js b/packages/@uppy/thumbnail-generator/src/index.js index 758129a16..d31c3e648 100644 --- a/packages/@uppy/thumbnail-generator/src/index.js +++ b/packages/@uppy/thumbnail-generator/src/index.js @@ -8,6 +8,8 @@ const isPreviewSupported = require('@uppy/utils/lib/isPreviewSupported') */ module.exports = class ThumbnailGenerator extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.type = 'thumbnail' diff --git a/packages/@uppy/transloadit/src/index.js b/packages/@uppy/transloadit/src/index.js index 4db8cb6c6..2eb19269b 100644 --- a/packages/@uppy/transloadit/src/index.js +++ b/packages/@uppy/transloadit/src/index.js @@ -25,6 +25,8 @@ const TL_UPPY_SERVER = /https?:\/\/api2(?:-\w+)?\.transloadit\.com\/uppy-server/ * Upload files to Transloadit using Tus. */ module.exports = class Transloadit extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.type = 'uploader' diff --git a/packages/@uppy/tus/src/index.js b/packages/@uppy/tus/src/index.js index 62db83726..995cd9427 100644 --- a/packages/@uppy/tus/src/index.js +++ b/packages/@uppy/tus/src/index.js @@ -48,6 +48,8 @@ function createEventTracker (emitter) { * */ module.exports = class Tus extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.type = 'uploader' diff --git a/packages/@uppy/url/src/index.js b/packages/@uppy/url/src/index.js index 8b87c6726..57a6e046e 100644 --- a/packages/@uppy/url/src/index.js +++ b/packages/@uppy/url/src/index.js @@ -10,6 +10,8 @@ const forEachDroppedOrPastedUrl = require('./utils/forEachDroppedOrPastedUrl') * */ module.exports = class Url extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.id = this.opts.id || 'Url' diff --git a/packages/@uppy/webcam/src/index.js b/packages/@uppy/webcam/src/index.js index 136637a7d..570c981c9 100644 --- a/packages/@uppy/webcam/src/index.js +++ b/packages/@uppy/webcam/src/index.js @@ -35,6 +35,8 @@ function getMediaDevices () { * Webcam */ module.exports = class Webcam extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.mediaDevices = getMediaDevices() diff --git a/packages/@uppy/xhr-upload/src/index.js b/packages/@uppy/xhr-upload/src/index.js index 935a50764..05026cb98 100644 --- a/packages/@uppy/xhr-upload/src/index.js +++ b/packages/@uppy/xhr-upload/src/index.js @@ -22,6 +22,8 @@ function buildResponseError (xhr, error) { } module.exports = class XHRUpload extends Plugin { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.type = 'uploader' From 685cca283c94410606f649023a175a2ae7990b5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 27 May 2019 14:08:22 +0200 Subject: [PATCH 05/13] Update after-version-bump description --- bin/after-version-bump.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bin/after-version-bump.js b/bin/after-version-bump.js index 90a838576..8a615e3ef 100755 --- a/bin/after-version-bump.js +++ b/bin/after-version-bump.js @@ -4,6 +4,9 @@ // but _before_ it commits, so we have time to update the // version numbers throughout the repo and add it to the // release commit. +// After updating version numbers, this runs a full +// IS_RELEASE_BUILD=1 build, so that the version numbers +// are properly embedded in the JS bundles. // NOTE this _amends_ the previous commit, which should // already be a "Release" commit generated by bin/release. From 2c8173a563154a97f2acf5f08eb2a3f4321ce276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 27 May 2019 14:09:17 +0200 Subject: [PATCH 06/13] Ensure everything is rebuilt after version bump --- bin/after-version-bump.js | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/after-version-bump.js b/bin/after-version-bump.js index 8a615e3ef..a515d23d2 100755 --- a/bin/after-version-bump.js +++ b/bin/after-version-bump.js @@ -61,6 +61,7 @@ async function npmRunBuild () { stdio: 'inherit', env: { ...process.env, + FRESH: true, // force rebuild everything IS_RELEASE_BUILD: true } }) From baf7ce114a571d6de4430267c4b8bfc7caaee1e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 27 May 2019 14:13:02 +0200 Subject: [PATCH 07/13] Really check for release commit --- bin/after-version-bump.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/after-version-bump.js b/bin/after-version-bump.js index a515d23d2..053181e84 100755 --- a/bin/after-version-bump.js +++ b/bin/after-version-bump.js @@ -78,7 +78,7 @@ async function main () { } const message = await lastCommitMessage() - if (message.trim() === 'Release') { + if (message.trim() !== 'Release') { console.error(`Last commit is not a release commit, but '${message}'`) process.exit(1) } From c17e992485655d0eee53024466aae92f0d298af8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 27 May 2019 16:35:25 +0200 Subject: [PATCH 08/13] Fix discify script now that we have .json files in build --- bin/disc.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/bin/disc.js b/bin/disc.js index e83a0945d..ff99a437d 100644 --- a/bin/disc.js +++ b/bin/disc.js @@ -8,12 +8,15 @@ const disc = require('disc') const outputPath = path.join(__dirname, '../website/src/disc.html') -function minifyify () { - return minify({ - sourceMap: false, - toplevel: true, - compress: { unsafe: true } - }) +function minifyify (filename) { + if (filename.endsWith('.js')) { + return minify({ + sourceMap: false, + toplevel: true, + compress: { unsafe: true } + }) + } + return new PassThrough() } const bundler = browserify(path.join(__dirname, '../packages/uppy/index.js'), { From 982d19a23c01cdfad6c73b3db9654550898e7bcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 27 May 2019 16:56:41 +0200 Subject: [PATCH 09/13] Remove object-rest-spread plugin. --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 1084a5984..8028b50fa 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,6 @@ "@babel/cli": "^7.4.4", "@babel/core": "^7.4.5", "@babel/plugin-proposal-class-properties": "^7.4.4", - "@babel/plugin-proposal-object-rest-spread": "^7.4.4", "@babel/plugin-transform-object-assign": "^7.2.0", "@babel/plugin-transform-proto-to-assign": "^7.4.4", "@babel/plugin-transform-react-jsx": "^7.3.0", From 42bb2c754f9f021ee120e822eaf597533a055fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Wed, 29 May 2019 10:20:17 +0200 Subject: [PATCH 10/13] Add LOCAL=1 env var for npm run release --- bin/release | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/bin/release b/bin/release index 875c799a7..207603c2f 100755 --- a/bin/release +++ b/bin/release @@ -10,6 +10,9 @@ __file="${__dir}/$(basename "${BASH_SOURCE[0]}")" __base="$(basename ${__file} .sh)" __root="$(cd "$(dirname "${__dir}")" && pwd)" +is_local="${LOCAL:-0}" +echo "Local release: $is_local" + if [[ ! "$@" =~ -y ]]; then echo "Make sure to read https://uppy.io/docs/contributing#Releases!" echo "Press Enter when ready, or Ctrl+C if you still need to do something." @@ -17,7 +20,7 @@ if [[ ! "$@" =~ -y ]]; then read fi -if [[ ! "$(npm get registry)" =~ https://registry\.npmjs\.(com|org)/? ]]; then +if [ $is_local == "0" ] && [[ ! "$(npm get registry)" =~ https://registry\.npmjs\.(com|org)/? ]]; then echo "Found unexpected npm registry: $(npm get registry)" echo "Run this to fix:" echo "" @@ -71,5 +74,7 @@ lerna version --amend --no-push --exact lerna publish from-git -git push -git push --tags +if [ $is_local == "0" ]; then + git push + git push --tags +fi From a07d81c5ef85c117e27c6b2ed27fb590697e993a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Wed, 29 May 2019 10:52:00 +0200 Subject: [PATCH 11/13] add events.once --- bin/after-version-bump.js | 2 +- package-lock.json | 11 ++++++++--- package.json | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/bin/after-version-bump.js b/bin/after-version-bump.js index 053181e84..17c862b37 100755 --- a/bin/after-version-bump.js +++ b/bin/after-version-bump.js @@ -13,7 +13,7 @@ const lastCommitMessage = require('last-commit-message') const { spawn } = require('child_process') const { promisify } = require('util') -const { once } = require('events') +const once = require('events.once') const globby = require('globby') const fs = require('fs') const readFile = promisify(fs.readFile) diff --git a/package-lock.json b/package-lock.json index dd62873dc..7cb0ab7d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3363,9 +3363,9 @@ } }, "@types/redis": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/redis/-/redis-2.8.12.tgz", - "integrity": "sha512-eT5cGYr08OnF6OlAHdc2hVOBAKBpfQQNQHsWEvUwRPFiXRd+vv+hOHSSIo4xB7M5vZOZdjMT2OUlXYqo3YlIGQ==", + "version": "2.8.13", + "resolved": "https://registry.npmjs.org/@types/redis/-/redis-2.8.13.tgz", + "integrity": "sha512-p86cm5P6DMotUqCS6odQRz0JJwc5QXZw9eyH0ALVIqmq12yqtex5ighWyGFHKxak9vaA/GF/Ilu0KZ0MuXXUbg==", "requires": { "@types/node": "*" } @@ -11818,6 +11818,11 @@ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" }, + "events.once": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/events.once/-/events.once-2.0.2.tgz", + "integrity": "sha512-yt0HxZ3PPiOVsyo9b74bQ07mSKyNeoVHzyakCBFJzSC8WhMUYomvq/naaJNks+wWJ1jv8JYTxO5vaw8wLnmZxw==" + }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", diff --git a/package.json b/package.json index 8028b50fa..30bf9ff62 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "eslint-plugin-promise": "^4.1.1", "eslint-plugin-react": "^7.12.4", "eslint-plugin-standard": "^4.0.0", + "events.once": "^2.0.2", "exorcist": "^1.0.1", "fakefile": "0.0.9", "flat": "^4.1.0", @@ -150,6 +151,5 @@ "testMatch": [ "**/packages/**/*.test.js" ] - }, - "dependencies": {} + } } From 5bdf25ab861c22f8357b2f6d46917b3a2addb1b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Wed, 29 May 2019 11:38:07 +0200 Subject: [PATCH 12/13] companion-client: Add VERSION properties to RequestClient, Provider --- packages/@uppy/companion-client/src/Provider.js | 2 ++ packages/@uppy/companion-client/src/RequestClient.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packages/@uppy/companion-client/src/Provider.js b/packages/@uppy/companion-client/src/Provider.js index ecc5bcc3e..2ec036a95 100644 --- a/packages/@uppy/companion-client/src/Provider.js +++ b/packages/@uppy/companion-client/src/Provider.js @@ -8,6 +8,8 @@ const _getName = (id) => { } module.exports = class Provider extends RequestClient { + static VERSION = require('../package.json').version + constructor (uppy, opts) { super(uppy, opts) this.provider = opts.provider diff --git a/packages/@uppy/companion-client/src/RequestClient.js b/packages/@uppy/companion-client/src/RequestClient.js index 8a909c5ad..125ac8cdd 100644 --- a/packages/@uppy/companion-client/src/RequestClient.js +++ b/packages/@uppy/companion-client/src/RequestClient.js @@ -8,6 +8,8 @@ function stripSlash (url) { } module.exports = class RequestClient { + static VERSION = require('../package.json').version + constructor (uppy, opts) { this.uppy = uppy this.opts = opts From 22fd12caf903e6e2cae43d5b9fd283af98ea9785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Wed, 29 May 2019 11:39:57 +0200 Subject: [PATCH 13/13] remove duplicate --- packages/@uppy/companion-client/src/Provider.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/@uppy/companion-client/src/Provider.js b/packages/@uppy/companion-client/src/Provider.js index 2ec036a95..ecc5bcc3e 100644 --- a/packages/@uppy/companion-client/src/Provider.js +++ b/packages/@uppy/companion-client/src/Provider.js @@ -8,8 +8,6 @@ const _getName = (id) => { } module.exports = class Provider extends RequestClient { - static VERSION = require('../package.json').version - constructor (uppy, opts) { super(uppy, opts) this.provider = opts.provider