diff --git a/.travis.yml b/.travis.yml index c6305c4bf..077d57ec8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,28 @@ language: node_js node_js: - 8.11.4 + +before_install: + - nvm install-latest-npm + +install: + - npm install + - npm run bootstrap -- --no-ci + +script: + - npm run build + - npm run test + - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then npm run test:acceptance; fi' + - npm run uploadcdn + +cache: + apt: true + directories: + - ~/.npm + +services: + - docker + addons: apt: sources: @@ -12,19 +34,7 @@ addons: secure: nAMJ/d1fm9urTYsQ+1uqj6Jjf71J8rzwYBSZbTDAeUEZzAdvGc0a9H3PYWM4pnUDPo5s1c9MMetXi2XNdUbXgMKHbEnePZ2mJamqFtXMmpG8pgFmMqj+btMd7Yybt070tRsn4Vy0uBSi2H/en7F3j+grABJV+SAXqWkSB7CU1fZaN/u0DpoGBNj1ZNwkYCIhpLueYJTPRWBOodMAarXuFv5+7KFOKuZM3tF/JjsMNSSaDgTkz13BZnbX6vNPxGJJNJcyJGSaXrVW8hh1Zmvnk/XdiLy+vt7Wz1wz3A9ebiFDuydo5AAkxrLFsCJ5nGEqLg3bkr6NaTRpbM84ZT3i1FQMTdKP6OHHqwAeBscB6BkyhZhzvsFtl2YRBNK9mA3OtOYvBmTkFkNqvrPQlfu7cFtyG5+AUfSCiTTgS/vWIwoqSVAXaOEqN8Fp54ecUdkzCTttl3gXteZzNLRYvyQcFpoJb6E+dS8qAW0OFOteiwKVuPCh3nGUzBP13bRo1i9UAX7ZCTlpjinkxE8ryzbToo6ZcVQMBAkKhaw/x8GzOtfm5rgYMeQzGEoBJNfr7qqfs7JMxAIEMYjrTL9PXVOp/R8F3FdsqbV70jSyfsxMSMkwSWFRmVslG8+Djy8P3LnckGy1FEbMHnH8GZHZg+hbBzN8Be1/1fV0oRRAr939WRc= access_key: secure: OY3oWwiJghfty9wSPVvlhirvFGxPHDdIRuVkzAv6j7C/hj2BWYAP/UHrwdQ9XiYisHi/B5mGeyRVlrAf0MNGrG84rTDUbTWZbmktfuxl7A+Y6c0czk+s4SdhOiANG5b3tFl5wKq8h7uhrWH5/jWoKQ2Fz1VDCqxTvvZQbo41jSBhi7TBia626hxEePzdaiuw6HhGFZtfaoVs/FX30ylz8WDNrBjwCynjxsT52BaQrVvgEhuyzlOpI69YkZBPOq4fc3KiZ2YR43gLTx8K+sYCE9yJxdg1xT/UAawEhmedU83nyBZVo4rr7+03AixIxtI28MUCfBMlcsGwBxcKEKY/IWcp9UkPCq6+zALQoncV478tP21eYvlmxSFhYCrv+WEQlN+BcNjr4OJlmmFDbCVaF7r9qLeQPImU0+9iJU3OjrW7lpfLxORpGDEr2Nx6awKkIJCxNyK9weefeNo6Fz3V1kkyZ/7yWFeniJnRUCbahrB2XgzxIE+W307s1Qs4fm6JK7hVLTtG4fBzjChmAyGIzu744ws9WqmjvkC9D7OfnuXqanv/VcBFqPiudInerv7NL8FketUC+fxe/7XJfcxdaDGBjk8Kq7zXDohGRGymUXEoMDNJsKkMMlaKzdf7tgqdhsRJoH9NCVqrDXuG5al0UtrDP5RS7qfoxUunJmNFhlg= -cache: - apt: true - directories: - - ~/.npm -before_install: -- nvm install-latest-npm -services: - - docker -script: -- npm run build -- npm run test -- '{ if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then npm run test:acceptance; fi } || true' -- npm run uploadcdn + env: global: - CXX=g++-4.8 @@ -50,6 +60,7 @@ env: - secure: V6qVB6vHAuSt1YPgzYpknLglnxbYJM5bsjAjQi78zZQSqrrWCMBgp5Q+Sq7Ad8nycgnPl8W8VpMnUIBqZcK4ciCW+vJBtZ7fBJLIEGMEk8+c8az8JePFcBRiaEicZPvZFuIHPteaAy6jK1GRVpjSjJi3NYEMpcDUs2aTM2bIpX0ks2WjUqTXiK8EvIaK2LTOgSBvyGUOiHwwTkom+PyD50t7jP98g+9Pn7GPwtWaUo1K8UpLArwR2fZ/nm0F2DU6ohz7o2t4LATFXuZhbOCj7O9vh+CmBf+/0C7giT3K23LbckDSK8CNTCDC2bsv8zDo5ZZtgdOvdatOD+VlsbAMkmUzzDgQ3410arZ8g1LVQw8eJwu1H+etcAinYf4r+Tr7s3dTBliMX70/IpjZrkHR9uXEi4LelBNYn6TKdLTW3lfVWkiFs/HPu4SoAmu1+sxSvwxVDDLeexQmb2fwp0r2tDKZ3eRfpQXLPACBaORnGW6ki9qXo8PBdaElxPbpzEWzAfT3F6zRjebpow+cdFBQrAga7/LrOrXerZxH2ekRWKgXzuhw7ERwVFrVN4/NlmDJXo+rm4na7n7CxY/QpZcdpthksDO9KYCqmn5dqMqFGislRvRe7PqIti8gC4pSdeUhDKsIh9OEgVNjCczvnA8rMRQ5aNmFx6wspmrBvO7qRLM= - secure: rVsiFPA9TvH/d2wkP8+1i5QGUuYw0q2BUAUdxyxO9hQcG/nRiHXtQfLbTRZHKwvqf0vyV6J1pJqLlVN4JO/bPhAvk55KAQJWl8UqyaeZiEN9KMcTr3fJuNFlBj4ciYiZ3BWwakblsiaGCjKMRdjki58a9f8XL2rcM8R6ccndjkTMYnBKaopSsAgouI8D5n74wQz6lODUayGOlbwlGLfGtPYplUfSLK4wghC+jgWsNjJySqJhfgYS0JCZc10Qw+FI2BoU4SZ4+P0L0YPIC9zV/cUW4qDT11N/oUgwfjZbPWfM9A/xn/d7sgDH+SpeoGdYler/lvxojj6L2mD/wAh8/lg1E6nL2aKgExE3z+fd2XV8L0osB/sulB7/Exrezg/mVejAx2IkWVHi4VEJmcTV+3WeEvTFOM3fID8dOVf+GUv+hcHdZMxS/hfj3keKCYG1P5ameMJO8FehRqhetNYnr6FTyrK+S+xitaZ/nXrTbHItPS0pZ4XA6CFs5uzMBPeDnk5/D7paPyrE/k2HAc1WmA6g37OyzYIMEV1laBz8IG0qMqg6JJmr09P/Iwrim5Ex2fAssT9Yr1WuOE2gWoF0A3XuVXQHVf4tJT6x/WDKChmbX588a47AvBgkFyoXLRilUYlET2tWnEpVxUovsbJXqvHwTXWMLO9riRjjeInbpvA= - secure: eq5hOqRBN2R7YO2dYdn5OjZc/zLLYYDZcCpCu/K/8fU4HYWTqxrBntjv8T0sZ5qdlAs3IniEfXxemz9V3zwvxR+vh2bGuYr2Xo7RRa2TIDuw+KUPZogrVxhXHPKfyJqstxy+dee2+pWhGkAP7caiu49eyqlboBMkzgpO/xcdehEWYRY5jPgvnlH+QRZ3GADKs1JEeltHDiZ6rYA7nj5Tyx9UoLgv4Av9UXdC29we7dLFTkVfCHE//7wfZW9+/IbxthA4qMjQOFaBrmagN5yweDg87iPTqNMth7FjzOavdUgQ2TW6d10VDEhLIZh36gLGreViKMDCEWKMQ8f/mv05Ao8+DXyXgxIn56II8lhUp5ukQ27ZWixfEKFx2lynJWRZE0pWwf8ec1+bXLQiBOE181Cl4nUT/TbFWzvV6yA+cMiQKe4y59bC4nhkK3IYgpR5kfCFOT+1tFknQ4hNJNacWwUmaDFMxYJaXEtRUn5jJa7eGRYSCrmnymbnzZ6w3Q3nQGNvNxpbBIXX/pzs0VDVTxSlgN4gA+n2jeCyjgVVrMQ/HoAS4uwm1cx89AttW+TANppg1PqWhhrJYuVEZSnvV8PM6R7rbvlS5tluezQj41YklgjsSopH7//+dbGGDNbrTTLic4J9PJR3yEtlAMdOCi53iT0R0Dt5X2WBv2QT5Eg= + notifications: slack: secure: L3iQQE8sZ0ik1Z26gPoNMiIam9EOEwYhraHCY60Jk/wmfH6SW/727yKXpgcb/yayx37rUZplvoO7H8e05ISxTJKSepEeqbBUIBQs48S8hr+FHk0VPtpP4HGxqaITRLm+mI1coPRvfISxzrB8d240oup6muhC9Ws4/LXi6v8miyIOs2zoYmGxd56TrUeON3UYlKt6dMava0V4bugARzrafN/tfyI9ccqbHzQLBspQvBI61DzZ5I2vnWpkjfWgIHz9Fl4VzXHqMXwjuTUEu8ibA12b3dHZiJEAoqeb9Oj9QcLPbstPLhlNTZZaOrfiFtwLctI2rFh37slDpAfk5idv3ycxcoG5rbCxgyg5i6dpQqrqHxnyglgHg2/nZ+YA5okeS7nJJNtU/4S6AFRWOUUWMVVY0VBEV+8w+uurl0PDy80RUY3uyK64qAgQ8U0M81/Ys1oyWyn78TqHcbby7V2Ws5I9Yakrq8D+mdfsWYCio8F6LXHSwJ0mt2FanJtdDvpPk9sAwsXZN0n8xhELt5TiRp3bzVIQ0IPUgF54dTG9/zWRvC1P4TFaFU/2fg73ZEUC5aWJoFMnLSZjbZvp5gwpCVd0MjSBk80nF9dHYcavIgJ0wMGI3BMb8Nn6+T11Gw/ycr7OGU4NMkj7i8vSFgKF74piWZyiNW8orkMN6XZgM+o= diff --git a/bin/endtoend-build-ci b/bin/endtoend-build-ci index 24b554b68..37022b714 100755 --- a/bin/endtoend-build-ci +++ b/bin/endtoend-build-ci @@ -39,15 +39,22 @@ npm run build # https://github.com/facebook/create-react-app/pull/4626 (cd && npm-auth-to-token -u user -p password -e user@example.com -r "$VERDACCIO_REGISTRY") +git checkout -b endtoend-test-build +# HACK this thing changes all the time for some reason on CI +# so I'll just ignore it… +git checkout -- package-lock.json + # Simulate a publish of everything, to the local registry, # without changing things in git -# Use --cd-version to skip version prompts -lerna publish --yes \ +lerna version prerelease --yes \ + --exact \ --force-publish \ - --registry="$VERDACCIO_REGISTRY" \ --npm-client=npm \ - --no-git-tag-version --no-push \ - --canary + --no-push +lerna publish from-git --yes \ + --registry="$VERDACCIO_REGISTRY" \ + --no-verify-access \ + --npm-client=npm # revert version changes git checkout -- packages/*/package.json packages/@uppy/*/package.json diff --git a/bin/endtoend-build-tests b/bin/endtoend-build-tests index 42090b56b..4b19b2838 100755 --- a/bin/endtoend-build-tests +++ b/bin/endtoend-build-tests @@ -26,5 +26,5 @@ done # Speeecial tests that need custom builds. pushd "${__root}/test/endtoend/create-react-app" npm install - npm run build > /dev/null + npm run build popd diff --git a/package-lock.json b/package-lock.json index d12a53ecc..175b5a12c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,58 +25,59 @@ } }, "@lerna/add": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.0.6.tgz", - "integrity": "sha512-lxvpGxhXY4b5c5GSHSc8egOEla5K3t7FQsWWnIBsXghpvwdgjuXUMV+CMtwIurfMwbGw0XYdjWFsTvAZf1bIKw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.3.2.tgz", + "integrity": "sha512-nKRRRKb4wt/GAywi8P++NY1TUiyhMs2g2KHSb41I4/qiCFQnTj2zkeshPyNmtBGjKzFXnOqrmc/8Wa2vmHHZVg==", "dev": true, "requires": { - "@lerna/bootstrap": "^3.0.6", - "@lerna/command": "^3.0.6", - "@lerna/filter-options": "^3.0.5", + "@lerna/bootstrap": "^3.3.2", + "@lerna/command": "^3.3.0", + "@lerna/filter-options": "^3.3.2", + "@lerna/npm-conf": "^3.0.0", "@lerna/validation-error": "^3.0.0", "dedent": "^0.7.0", "npm-package-arg": "^6.0.0", "p-map": "^1.2.0", - "package-json": "^4.0.1", + "pacote": "^9.1.0", "semver": "^5.5.0" }, "dependencies": { "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true } } }, "@lerna/batch-packages": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/batch-packages/-/batch-packages-3.0.0.tgz", - "integrity": "sha512-0tN9oNykfIhdFaxEEHxF1S8K7wJdRjzGmbMhrirNogk7I2sLP82aoKH4rLCAdwidX5OvDhzlyQM0MC86T7Lazg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@lerna/batch-packages/-/batch-packages-3.1.2.tgz", + "integrity": "sha512-HAkpptrYeUVlBYbLScXgeCgk6BsNVXxDd53HVWgzzTWpXV4MHpbpeKrByyt7viXlNhW0w73jJbipb/QlFsHIhQ==", "dev": true, "requires": { - "@lerna/package-graph": "^3.0.0", + "@lerna/package-graph": "^3.1.2", "@lerna/validation-error": "^3.0.0", "npmlog": "^4.1.2" } }, "@lerna/bootstrap": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.0.6.tgz", - "integrity": "sha512-LIMqGfydSpftdKa/Z7r0dJCY8Qdq5xKdWM83r5QAUHKBIRLwSZwGNTTpGCfdMkfI6xpXa4vGO2J5crU+vM7now==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.3.2.tgz", + "integrity": "sha512-f0/FZ6iCXHNpHoUiM3wfmiJebHetrquP9mdNT7t//2iTGm1nz8iuKSLhfu9APazDXtqo3aDFx7JvuYKMg+GiXQ==", "dev": true, "requires": { - "@lerna/batch-packages": "^3.0.0", - "@lerna/command": "^3.0.6", - "@lerna/filter-options": "^3.0.5", - "@lerna/has-npm-version": "^3.0.4", + "@lerna/batch-packages": "^3.1.2", + "@lerna/command": "^3.3.0", + "@lerna/filter-options": "^3.3.2", + "@lerna/has-npm-version": "^3.3.0", "@lerna/npm-conf": "^3.0.0", - "@lerna/npm-install": "^3.0.0", - "@lerna/rimraf-dir": "^3.0.0", - "@lerna/run-lifecycle": "^3.0.0", + "@lerna/npm-install": "^3.3.0", + "@lerna/rimraf-dir": "^3.3.0", + "@lerna/run-lifecycle": "^3.3.1", "@lerna/run-parallel-batches": "^3.0.0", - "@lerna/symlink-binary": "^3.0.0", - "@lerna/symlink-dependencies": "^3.0.0", + "@lerna/symlink-binary": "^3.3.0", + "@lerna/symlink-dependencies": "^3.3.0", "@lerna/validation-error": "^3.0.0", "dedent": "^0.7.0", "get-port": "^3.2.0", @@ -92,35 +93,45 @@ }, "dependencies": { "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true } } }, "@lerna/changed": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.0.6.tgz", - "integrity": "sha512-WJWpkJ3N0eoJnw9MEXWS7wZ7mAq1d0I90envaYiMIHmebqgeMjFEKiErY4NntXkpn1VOjbvLp8O3qaILt7T6cg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.3.2.tgz", + "integrity": "sha512-wLH6RzYPQAryrsJakc9I3k0aFWE/cJyWoUD8dQy186jxwtLgeQdVc0+NegNyab7MIPi7Hsv9A3hx6lM1rPH94A==", "dev": true, "requires": { - "@lerna/collect-updates": "^3.0.5", - "@lerna/command": "^3.0.6", + "@lerna/collect-updates": "^3.3.2", + "@lerna/command": "^3.3.0", "@lerna/listable": "^3.0.0", "@lerna/output": "^3.0.0", - "@lerna/version": "^3.0.6" + "@lerna/version": "^3.3.2" + } + }, + "@lerna/check-working-tree": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.3.0.tgz", + "integrity": "sha512-oeEP1dNhiiKUaO0pmcIi73YXJpaD0n5JczNctvVNZ8fGZmrALZtEnmC28o6Z7JgQaqq5nd2kO7xbnjoitrC51g==", + "dev": true, + "requires": { + "@lerna/describe-ref": "^3.3.0", + "@lerna/validation-error": "^3.0.0" } }, "@lerna/child-process": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.0.0.tgz", - "integrity": "sha512-8vHRDkpGhzSaMsXgyXVgY80mUSC5WSkDmhWWA3bnB/n5FBK1gK8EKQUpHTk14SckwvUgEJzBd35gR5/XKGOgmQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.3.0.tgz", + "integrity": "sha512-q2d/OPlNX/cBXB6Iz1932RFzOmOHq6ZzPjqebkINNaTojHWuuRpvJJY4Uz3NGpJ3kEtPDvBemkZqUBTSO5wb1g==", "dev": true, "requires": { "chalk": "^2.3.1", - "execa": "^0.10.0", - "strong-log-transformer": "^1.0.6" + "execa": "^1.0.0", + "strong-log-transformer": "^2.0.0" }, "dependencies": { "cross-spawn": { @@ -137,13 +148,13 @@ } }, "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", + "get-stream": "^4.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", @@ -151,52 +162,46 @@ "strip-eof": "^1.0.0" } }, + "get-stream": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.0.0.tgz", + "integrity": "sha512-FneLKMENeOR7wOK0/ZXCh+lwqtnPwkeunJjRN28LPqzGvNAhYvrTAhXv6xDm4vsJ0M7lcRbIYHQudKsSy2RtSQ==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true } } }, "@lerna/clean": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.0.6.tgz", - "integrity": "sha512-Ur7MSg4TGFPqc5PgX9ncvlXvgWxaJuRQI6wFR7eXXZ6og3RwwAM8jBa8MJefbeH+GqU2JX9soW4O56JY1mMvGw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.3.2.tgz", + "integrity": "sha512-mvqusgSp2ou5SGqQgTEoTvGJpGfH4+L6XSeN+Ims+eNFGXuMazmKCf+rz2PZBMFufaHJ/Os+JF0vPCcWI1Fzqg==", "dev": true, "requires": { - "@lerna/command": "^3.0.6", - "@lerna/filter-options": "^3.0.5", - "@lerna/prompt": "^3.0.0", - "@lerna/rimraf-dir": "^3.0.0", + "@lerna/command": "^3.3.0", + "@lerna/filter-options": "^3.3.2", + "@lerna/prompt": "^3.3.1", + "@lerna/rimraf-dir": "^3.3.0", "p-map": "^1.2.0", "p-map-series": "^1.0.0", "p-waterfall": "^1.0.0" } }, "@lerna/cli": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-3.0.6.tgz", - "integrity": "sha512-MZ0d5RCkcVh1wA9tAOVy3GSmML3HshzQxmcNXKdWn0UAqVaV8chYu9ZhwDLQSTc6O5sC/wzCo1wMgFZLq17TQg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-3.2.0.tgz", + "integrity": "sha512-JdbLyTxHqxUlrkI+Ke+ltXbtyA+MPu9zR6kg/n8Fl6uaez/2fZWtReXzYi8MgLxfUFa7+1OHWJv4eAMZlByJ+Q==", "dev": true, "requires": { - "@lerna/add": "^3.0.6", - "@lerna/bootstrap": "^3.0.6", - "@lerna/changed": "^3.0.6", - "@lerna/clean": "^3.0.6", - "@lerna/create": "^3.0.6", - "@lerna/diff": "^3.0.6", - "@lerna/exec": "^3.0.6", - "@lerna/global-options": "^3.0.5", - "@lerna/import": "^3.0.6", - "@lerna/init": "^3.0.6", - "@lerna/link": "^3.0.6", - "@lerna/list": "^3.0.6", - "@lerna/publish": "^3.0.6", - "@lerna/run": "^3.0.6", - "@lerna/version": "^3.0.6", + "@lerna/global-options": "^3.1.3", "dedent": "^0.7.0", - "is-ci": "^1.0.10", "npmlog": "^4.1.2", "yargs": "^12.0.1" }, @@ -224,6 +229,19 @@ "wrap-ansi": "^2.0.0" } }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "decamelize": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", @@ -233,6 +251,21 @@ "xregexp": "4.0.0" } }, + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -242,12 +275,27 @@ "locate-path": "^3.0.0" } }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -258,15 +306,26 @@ "path-exists": "^3.0.0" } }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "mem": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", + "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^1.1.0" + } + }, + "os-locale": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", + "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", + "dev": true, + "requires": { + "execa": "^0.10.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, "p-limit": { @@ -287,6 +346,12 @@ "p-limit": "^2.0.0" } }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -319,16 +384,16 @@ "dev": true }, "yargs": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz", - "integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", + "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^2.0.0", "find-up": "^3.0.0", "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", + "os-locale": "^3.0.0", "require-directory": "^2.1.1", "require-main-filename": "^1.0.1", "set-blocking": "^2.0.0", @@ -350,32 +415,32 @@ } }, "@lerna/collect-updates": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.0.5.tgz", - "integrity": "sha512-k/EwxJfdD79lTgEZzi+o9t7uYftoAVVYhf1MC62DGjsy0jKChWQyFhttUUwLuhYR/yc9lZlaL6EeguFKn2bcaQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.3.2.tgz", + "integrity": "sha512-9WyBJI2S5sYgEZEScu525Lbi6nknNrdBKop35sCDIC9y6AIGvH6Dr5tkTd+Kg3n1dE+kHwW/xjERkx3+h7th3w==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", + "@lerna/child-process": "^3.3.0", + "@lerna/describe-ref": "^3.3.0", "minimatch": "^3.0.4", "npmlog": "^4.1.2", "slash": "^1.0.0" } }, "@lerna/command": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.0.6.tgz", - "integrity": "sha512-igXhueUpxdR01LdIp5GtVEJh+YUhnIO3Tm1T/nL0s93Fih7N1vdbT1aJOLsF99MhP0MeaIHLChqCcgCc+i19jg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.3.0.tgz", + "integrity": "sha512-NTOkLEKlWcBLHSvUr9tzVpV7RJ4GROLeOuZ6RfztGOW/31JPSwVVBD2kPifEXNZunldOx5GVWukR+7+NpAWhsg==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", - "@lerna/collect-updates": "^3.0.5", - "@lerna/filter-packages": "^3.0.0", - "@lerna/package-graph": "^3.0.0", + "@lerna/child-process": "^3.3.0", + "@lerna/package-graph": "^3.1.2", "@lerna/project": "^3.0.0", "@lerna/validation-error": "^3.0.0", "@lerna/write-log-file": "^3.0.0", "dedent": "^0.7.0", - "execa": "^0.10.0", + "execa": "^1.0.0", + "is-ci": "^1.0.10", "lodash": "^4.17.5", "npmlog": "^4.1.2" }, @@ -394,13 +459,13 @@ } }, "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", + "get-stream": "^4.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", @@ -408,18 +473,27 @@ "strip-eof": "^1.0.0" } }, + "get-stream": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.0.0.tgz", + "integrity": "sha512-FneLKMENeOR7wOK0/ZXCh+lwqtnPwkeunJjRN28LPqzGvNAhYvrTAhXv6xDm4vsJ0M7lcRbIYHQudKsSy2RtSQ==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true } } }, "@lerna/conventional-commits": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.0.2.tgz", - "integrity": "sha512-Cxd1eWXn3usADKXIUvYmTERx2+1N7oJD4Whz+FVu8kTfufsfTO7fYOan1RVkg86ukZbNDyS+iOxZ8DJ2JspS9g==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.3.0.tgz", + "integrity": "sha512-nUFardc5G4jG5LI/Jlw0kblzlRLJ08ut6uJjHXTnUE/QJuKYaqBZm6goGG8OSxp/WltklndkQUOtThyZpefviA==", "dev": true, "requires": { "@lerna/validation-error": "^3.0.0", @@ -427,34 +501,43 @@ "conventional-changelog-core": "^2.0.5", "conventional-recommended-bump": "^2.0.6", "dedent": "^0.7.0", - "fs-extra": "^6.0.1", - "get-stream": "^3.0.0", + "fs-extra": "^7.0.0", + "get-stream": "^4.0.0", "npm-package-arg": "^6.0.0", "npmlog": "^4.1.2", "semver": "^5.5.0" }, "dependencies": { + "get-stream": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.0.0.tgz", + "integrity": "sha512-FneLKMENeOR7wOK0/ZXCh+lwqtnPwkeunJjRN28LPqzGvNAhYvrTAhXv6xDm4vsJ0M7lcRbIYHQudKsSy2RtSQ==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true } } }, "@lerna/create": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.0.6.tgz", - "integrity": "sha512-y/3Tfj6il2/Ua73N5fkkxnmQN6FZ3nr/3oyZe12ygt8q0L2p+GA39ehZxUQEjVcfSvEj6+Kcjjq8xRb3v6OKjQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.3.1.tgz", + "integrity": "sha512-4VASkTLvN66euTcWMPN2vIzEoP07hgutx7V70CXSOc+DiWV8S22z0PjXATi2yli83TC/Qj4gHYtU2futQrdY1A==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", - "@lerna/command": "^3.0.6", + "@lerna/child-process": "^3.3.0", + "@lerna/command": "^3.3.0", "@lerna/npm-conf": "^3.0.0", "@lerna/validation-error": "^3.0.0", "camelcase": "^4.1.0", "dedent": "^0.7.0", - "fs-extra": "^6.0.1", + "fs-extra": "^7.0.0", "globby": "^8.0.1", "init-package-json": "^1.10.3", "npm-package-arg": "^6.0.0", @@ -463,7 +546,7 @@ "slash": "^1.0.0", "validate-npm-package-license": "^3.0.3", "validate-npm-package-name": "^3.0.0", - "whatwg-url": "^6.5.0" + "whatwg-url": "^7.0.0" }, "dependencies": { "camelcase": { @@ -494,9 +577,9 @@ "dev": true }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true }, "spdx-correct": { @@ -520,9 +603,9 @@ } }, "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", + "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==", "dev": true }, "validate-npm-package-license": { @@ -534,52 +617,75 @@ "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.0.0", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.0.0.tgz", - "integrity": "sha512-Q9qAzGGqQtVzHWrCz+Md4SH0tW99DrgFJ68cnFqilOO6H3Y/y/H0gwHICqM9YxRwLs6GJdkzoqJATFShM7PKJA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.3.0.tgz", + "integrity": "sha512-0lb88Nnq1c/GG+fwybuReOnw3+ah4dB81PuWwWwuqUNPE0n50qUf/M/7FfSb5JEh/93fcdbZI0La8t3iysNW1w==", "dev": true, "requires": { "cmd-shim": "^2.0.2", - "fs-extra": "^6.0.1", + "fs-extra": "^7.0.0", + "npmlog": "^4.1.2" + } + }, + "@lerna/describe-ref": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.3.0.tgz", + "integrity": "sha512-4t7M4OupnYMSPNLrLUau8qkS+dgLEi4w+DkRkV0+A+KNYga1W0jVgNLPIIsxta7OHfodPkCNAqZCzNCw/dmAwA==", + "dev": true, + "requires": { + "@lerna/child-process": "^3.3.0", "npmlog": "^4.1.2" } }, "@lerna/diff": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.0.6.tgz", - "integrity": "sha512-u8/+TbAohJLq75eAfV3OjJ2MCNb2wChQB6bCktswovraMFvHtUP9neX3zzq3JkAkMZgX+b/7vG15B4toWrF+ow==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.3.0.tgz", + "integrity": "sha512-sIoMjsm3NVxvmt6ofx8Uu/2fxgldQqLl0zmC9X1xW00j831o5hBffx1EoKj9CnmaEvoSP6j/KFjxy2RWjebCIg==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", - "@lerna/command": "^3.0.6", + "@lerna/child-process": "^3.3.0", + "@lerna/command": "^3.3.0", "@lerna/validation-error": "^3.0.0", "npmlog": "^4.1.2" } }, "@lerna/exec": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.0.6.tgz", - "integrity": "sha512-HCs2SAdz76LiPFzA00c8DT5VZr0/yyAR66OLXwZ9cNZMXnFrdQ5lm3W512AEj6yanZMs9MyrNIGIV2mRzssLrw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.3.2.tgz", + "integrity": "sha512-mN6vGxNir7JOGvWLwKr3DW3LNy1ecCo2ziZj5rO9Mw5Rew3carUu1XLmhF/4judtsvXViUY+rvGIcqHe0vvb+w==", "dev": true, "requires": { - "@lerna/batch-packages": "^3.0.0", - "@lerna/child-process": "^3.0.0", - "@lerna/command": "^3.0.6", - "@lerna/filter-options": "^3.0.5", + "@lerna/batch-packages": "^3.1.2", + "@lerna/child-process": "^3.3.0", + "@lerna/command": "^3.3.0", + "@lerna/filter-options": "^3.3.2", "@lerna/run-parallel-batches": "^3.0.0", "@lerna/validation-error": "^3.0.0" } }, "@lerna/filter-options": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.0.5.tgz", - "integrity": "sha512-yQZrzIDRE3ze62iESMNgbU5eBNb6LPZLJOX0n0MHgpR/7pSLbvJMt8i54GLxm1grCa5O+vgP2DNjcKU17c5eTQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.3.2.tgz", + "integrity": "sha512-0WHqdDgAnt5WKoByi1q+lFw8HWt5tEKP2DnLlGqWv3YFwVF5DsPRlO7xbzjY9sJgvyJtZcnkMtccdBPFhGGyIQ==", "dev": true, "requires": { + "@lerna/collect-updates": "^3.3.2", + "@lerna/filter-packages": "^3.0.0", "dedent": "^0.7.0" } }, @@ -604,78 +710,78 @@ } }, "@lerna/global-options": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.0.5.tgz", - "integrity": "sha512-GC4JFYT9rTZO0k1nBJ0X1pgOFAtu6xxWQ8XMRbboX6uHFn5h6pvS7X7uMLaWRF4k2izVxnCq3Bx8FXNZlmY3Tg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.1.3.tgz", + "integrity": "sha512-LVeZU/Zgc0XkHdGMRYn+EmHfDmmYNwYRv3ta59iCVFXLVp7FRFWF7oB1ss/WRa9x/pYU0o6L8as/5DomLUGASA==", "dev": true }, "@lerna/has-npm-version": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.0.4.tgz", - "integrity": "sha512-RisEWZBROi8corPb/PUIQqT+xGPLeriJ/n6VCeO6GROCO1fyYBX7kgFmVpFOytufWFkI04qBgLaUs+CEc8Yspg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.3.0.tgz", + "integrity": "sha512-GX7omRep1eBRZHgjZLRw3MpBJSdA5gPZFz95P7rxhpvsiG384Tdrr/cKFMhm0A09yq27Tk/nuYTaZIj7HsVE6g==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", + "@lerna/child-process": "^3.3.0", "semver": "^5.5.0" }, "dependencies": { "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true } } }, "@lerna/import": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.0.6.tgz", - "integrity": "sha512-F0VW+xHFLN/rQlk65c9FhL/CoBd4j3QwGj8mmYFUcVDoYX1v9/mWBPi90TCGD3CiURTX8Q3PAdeuvoT74Uw41w==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.3.1.tgz", + "integrity": "sha512-2OzTQDkYKbBPpyP2iOI1sWfcvMjNLjjHjmREq/uOWJaSIk5J3Ukt71OPpcOHh4V2CBOlXidCcO+Hyb4FVIy8fw==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", - "@lerna/command": "^3.0.6", - "@lerna/prompt": "^3.0.0", + "@lerna/child-process": "^3.3.0", + "@lerna/command": "^3.3.0", + "@lerna/prompt": "^3.3.1", "@lerna/validation-error": "^3.0.0", "dedent": "^0.7.0", - "fs-extra": "^6.0.1", + "fs-extra": "^7.0.0", "p-map-series": "^1.0.0" } }, "@lerna/init": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.0.6.tgz", - "integrity": "sha512-Bb/cVxTykWhbdhKsKUzqFuUUX9QTc9pPIQg/chElfXt9L1EzjNH71ew0YBCPUDu+2/PCi3HbVehZuDjddcqgKw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.3.0.tgz", + "integrity": "sha512-HvgRLkIG6nDIeAO6ix5sUVIVV+W9UMk2rSSmFT66CDOefRi7S028amiyYnFUK1QkIAaUbVUyOnYaErtbJwICuw==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", - "@lerna/command": "^3.0.6", - "fs-extra": "^6.0.1", + "@lerna/child-process": "^3.3.0", + "@lerna/command": "^3.3.0", + "fs-extra": "^7.0.0", "p-map": "^1.2.0", "write-json-file": "^2.3.0" } }, "@lerna/link": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.0.6.tgz", - "integrity": "sha512-njvFGqfIuGOYj2o8QULd7eIkF5e+c1hkskhlXvdCV3dPb6WYiwSd9hO6m7fnppuGNh8NXeiLDPohE0dnyfFQ5Q==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.3.0.tgz", + "integrity": "sha512-8CeXzGL7okrsVXsy2sHXI2KuBaczw3cblAnA2+FJPUqSKMPNbUTRzeU3bOlCjYtK0LbxC4ngENJTL3jJ8RaYQQ==", "dev": true, "requires": { - "@lerna/command": "^3.0.6", - "@lerna/package-graph": "^3.0.0", - "@lerna/symlink-dependencies": "^3.0.0", + "@lerna/command": "^3.3.0", + "@lerna/package-graph": "^3.1.2", + "@lerna/symlink-dependencies": "^3.3.0", "p-map": "^1.2.0", "slash": "^1.0.0" } }, "@lerna/list": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.0.6.tgz", - "integrity": "sha512-jggWworRP2i/mb+AhgUMvNK3DjTe2I+BH3nQ1eENiyOnfj3ghf2If3Q7FsJ6KXSN5N6BBsfiKlfz6Y2F6AR/Hw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.3.2.tgz", + "integrity": "sha512-XXEVy7w+i/xx8NeJmGirw4upEoEF9OfD6XPLjISNQc24VgQV+frXdVJ02QcP7Y/PkY1rdIVrOjvo3ipKVLUxaQ==", "dev": true, "requires": { - "@lerna/command": "^3.0.6", - "@lerna/filter-options": "^3.0.5", + "@lerna/command": "^3.3.0", + "@lerna/filter-options": "^3.3.2", "@lerna/listable": "^3.0.0", "@lerna/output": "^3.0.0" } @@ -721,25 +827,25 @@ } }, "@lerna/npm-dist-tag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.0.0.tgz", - "integrity": "sha512-ZOcfcsNJlCoVHvLOROdCTvqD3keG3TJ78Cu8sALsz8n0kEz2ga7tNy5wbQ67SGyY7+jq4YiBv5BwXjV+56Sv+A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.3.0.tgz", + "integrity": "sha512-EtZJXzh3w5tqXEev+EBBPrWKWWn0WgJfxm4FihfS9VgyaAW8udIVZHGkIQ3f+tBtupcAzA9Q8cQNUkGF2efwmA==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", + "@lerna/child-process": "^3.3.0", "@lerna/get-npm-exec-opts": "^3.0.0", "npmlog": "^4.1.2" } }, "@lerna/npm-install": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.0.0.tgz", - "integrity": "sha512-e0sspVUfzEKhqsRIxzWqZ/uMBHzZSzOa4HCeORErEZu+dmDoI145XYhqvCVn7EvbAb407FV2H9GVeoP0JeG8GQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.3.0.tgz", + "integrity": "sha512-WoVvKdS8ltROTGSNQwo6NDq0YKnjwhvTG4li1okcN/eHKOS3tL9bxbgPx7No0wOq5DKBpdeS9KhAfee6LFAZ5g==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", + "@lerna/child-process": "^3.3.0", "@lerna/get-npm-exec-opts": "^3.0.0", - "fs-extra": "^6.0.1", + "fs-extra": "^7.0.0", "npm-package-arg": "^6.0.0", "npmlog": "^4.1.2", "signal-exit": "^3.0.2", @@ -747,27 +853,27 @@ } }, "@lerna/npm-publish": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.0.6.tgz", - "integrity": "sha512-PlvKr958TowEOOe2yNtmUi/Ot42TS/edlmA7rj+XtDUR51AN3RB9G6b25TElyrnDksj1ayb3mOF7I2uf1gbyOw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.3.1.tgz", + "integrity": "sha512-bVTlWIcBL6Zpyzqvr9C7rxXYcoPw+l7IPz5eqQDNREj1R39Wj18OWB2KTJq8l7LIX7Wf4C2A1uT5hJaEf9BuvA==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", + "@lerna/child-process": "^3.3.0", "@lerna/get-npm-exec-opts": "^3.0.0", - "@lerna/has-npm-version": "^3.0.4", + "@lerna/has-npm-version": "^3.3.0", "@lerna/log-packed": "^3.0.4", - "fs-extra": "^6.0.1", + "fs-extra": "^7.0.0", "npmlog": "^4.1.2", "p-map": "^1.2.0" } }, "@lerna/npm-run-script": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.0.0.tgz", - "integrity": "sha512-Y1H4Myer1S7an33FDK0eqyR+95PujUePC/xJZKq/H50SaQNwBw7KMlxXxy6kXVEcQhmvQsER4Bw3msgqwwGYIw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.3.0.tgz", + "integrity": "sha512-YqDguWZzp4jIomaE4aWMUP7MIAJAFvRAf6ziQLpqwoQskfWLqK5mW0CcszT1oLjhfb3cY3MMfSTFaqwbdKmICg==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", + "@lerna/child-process": "^3.3.0", "@lerna/get-npm-exec-opts": "^3.0.0", "npmlog": "^4.1.2" } @@ -792,19 +898,20 @@ } }, "@lerna/package-graph": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.0.0.tgz", - "integrity": "sha512-kD9ezB7UT2I0BbVv3+ZYfR/t/Z+z6RJmaI/OkvEaZ3bAcAqQRV4zTDdh2Xeiead+UwsA38xf7Z6pDEMWzswLVg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.1.2.tgz", + "integrity": "sha512-9wIWb49I1IJmyjPdEVZQ13IAi9biGfH/OZHOC04U2zXGA0GLiY+B3CAx6FQvqkZ8xEGfqzmXnv3LvZ0bQfc1aQ==", "dev": true, "requires": { + "@lerna/validation-error": "^3.0.0", "npm-package-arg": "^6.0.0", "semver": "^5.5.0" }, "dependencies": { "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true } } @@ -939,12 +1046,12 @@ } }, "@lerna/prompt": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.0.0.tgz", - "integrity": "sha512-EzvNexDTh//GlpOz68zRo16NdOIqWqiiXMs9tIxpELQubH+kUGKvBSiBrZ2Zyrfd8pQhIf+8qARtkCG+G7wzQQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.3.1.tgz", + "integrity": "sha512-eJhofrUCUaItMIH6et8kI7YqHfhjWqGZoTsE+40NRCfAraOMWx+pDzfRfeoAl3qeRAH2HhNj1bkYn70FbUOxuQ==", "dev": true, "requires": { - "inquirer": "^5.1.0", + "inquirer": "^6.2.0", "npmlog": "^4.1.2" }, "dependencies": { @@ -970,13 +1077,13 @@ } }, "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, @@ -989,22 +1096,31 @@ "escape-string-regexp": "^1.0.5" } }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, "inquirer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", - "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", + "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", "dev": true, "requires": { "ansi-escapes": "^3.0.0", "chalk": "^2.0.0", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", - "external-editor": "^2.1.0", + "external-editor": "^3.0.0", "figures": "^2.0.0", - "lodash": "^4.3.0", + "lodash": "^4.17.10", "mute-stream": "0.0.7", "run-async": "^2.2.0", - "rxjs": "^5.5.2", + "rxjs": "^6.1.0", "string-width": "^2.1.0", "strip-ansi": "^4.0.0", "through": "^2.3.6" @@ -1050,6 +1166,15 @@ "is-promise": "^2.1.0" } }, + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -1072,59 +1197,65 @@ } }, "@lerna/publish": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.0.6.tgz", - "integrity": "sha512-eOOZWYWVL6eD6S0y+fTIzk6aD2+doVqUVlCdAKGs7h01teyw6SrTIUtsHShGTBk7Dr5aKbWFA0SOHOI4svYfGg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.4.0.tgz", + "integrity": "sha512-wcqWDKbkDjyj6F9Mw4/LL2CtpCN61RazNKxYm+fyJ20P2zfcAwLEwxttA6ZWIO8xUiLXkCTFIhwOulHyAPAq3w==", "dev": true, "requires": { - "@lerna/batch-packages": "^3.0.0", - "@lerna/child-process": "^3.0.0", - "@lerna/collect-updates": "^3.0.5", - "@lerna/command": "^3.0.6", + "@lerna/batch-packages": "^3.1.2", + "@lerna/check-working-tree": "^3.3.0", + "@lerna/child-process": "^3.3.0", + "@lerna/collect-updates": "^3.3.2", + "@lerna/command": "^3.3.0", + "@lerna/describe-ref": "^3.3.0", "@lerna/get-npm-exec-opts": "^3.0.0", - "@lerna/npm-dist-tag": "^3.0.0", - "@lerna/npm-publish": "^3.0.6", + "@lerna/npm-conf": "^3.0.0", + "@lerna/npm-dist-tag": "^3.3.0", + "@lerna/npm-publish": "^3.3.1", "@lerna/output": "^3.0.0", - "@lerna/prompt": "^3.0.0", - "@lerna/run-lifecycle": "^3.0.0", + "@lerna/prompt": "^3.3.1", + "@lerna/run-lifecycle": "^3.3.1", "@lerna/run-parallel-batches": "^3.0.0", "@lerna/validation-error": "^3.0.0", - "@lerna/version": "^3.0.6", - "fs-extra": "^6.0.1", + "@lerna/version": "^3.3.2", + "fs-extra": "^7.0.0", + "libnpmaccess": "^3.0.0", "npm-package-arg": "^6.0.0", + "npm-registry-fetch": "^3.8.0", "npmlog": "^4.1.2", "p-finally": "^1.0.0", "p-map": "^1.2.0", + "p-pipe": "^1.2.0", "p-reduce": "^1.0.0", "semver": "^5.5.0" }, "dependencies": { "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true } } }, "@lerna/resolve-symlink": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.0.0.tgz", - "integrity": "sha512-MqjW9e+QVXts5IK5dk1XnYx7JKb+g+tQkOnnpAxYWHjahf3rGJ7Ru8maWh8KoPE+nIHAekk4WcjpiA9nLKvkFQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.3.0.tgz", + "integrity": "sha512-KmoPDcFJ2aOK2inYHbrsiO9SodedUj0L1JDvDgirVNIjMUaQe2Q6Vi4Gh+VCJcyB27JtfHioV9R2NxU72Pk2hg==", "dev": true, "requires": { - "fs-extra": "^6.0.1", + "fs-extra": "^7.0.0", "npmlog": "^4.1.2", "read-cmd-shim": "^1.0.1" } }, "@lerna/rimraf-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.0.0.tgz", - "integrity": "sha512-epvh/RGWSOYdrNgrizMcRq9VyCHkeY0LpIE4074r4ouKdYNhBT0LlpT0yMLvQgQKJkKRlqcfhJHvZeGHhXQyGg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.3.0.tgz", + "integrity": "sha512-vSqOcZ4kZduiSprbt+y40qziyN3VKYh+ygiCdnbBbsaxpdKB6CfrSMUtrLhVFrqUfBHIZRzHIzgjTdtQex1KLw==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", + "@lerna/child-process": "^3.3.0", "npmlog": "^4.1.2", "path-exists": "^3.0.0", "rimraf": "^2.6.2" @@ -1142,15 +1273,15 @@ } }, "@lerna/run": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.0.6.tgz", - "integrity": "sha512-3KFr07ZGcxYPBKzcM+8ku02IOhkfT/XH64T8fXInpGQU2bMFEA4fsSH5wlSyB/ZL2ZTwIH8lLyatW4q7ygi2+Q==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.3.2.tgz", + "integrity": "sha512-cruwRGZZWnQ5I0M+AqcoT3Xpq2wj3135iVw4n59/Op6dZu50sMFXZNLiTTTZ15k8rTKjydcccJMdPSpTHbH7/A==", "dev": true, "requires": { - "@lerna/batch-packages": "^3.0.0", - "@lerna/command": "^3.0.6", - "@lerna/filter-options": "^3.0.5", - "@lerna/npm-run-script": "^3.0.0", + "@lerna/batch-packages": "^3.1.2", + "@lerna/command": "^3.3.0", + "@lerna/filter-options": "^3.3.2", + "@lerna/npm-run-script": "^3.3.0", "@lerna/output": "^3.0.0", "@lerna/run-parallel-batches": "^3.0.0", "@lerna/validation-error": "^3.0.0", @@ -1158,9 +1289,9 @@ } }, "@lerna/run-lifecycle": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.0.0.tgz", - "integrity": "sha512-kfq6eC5mCreTk7GusZyvF0/BfU9FDEt8JaUgzNKLrK1Sj6z2RO8uSpFsUlj+7OuV4wo0I+rdTdJOAFoW8C0GZw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.3.1.tgz", + "integrity": "sha512-xy4K3amlXk0LjSa5d3VqmrW9SsxMyvI7lw2dHDMb5PqjjcjMQgb6+nFbycwyJMhCP8u7MwQIZ4hFYF9XYbWSzQ==", "dev": true, "requires": { "@lerna/npm-conf": "^3.0.0", @@ -1179,14 +1310,14 @@ } }, "@lerna/symlink-binary": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.0.0.tgz", - "integrity": "sha512-ElV1ij0ZiOw5j1bZqg9K+q+dV/DJVvMZxP+oj3vsP4SgnG3EdWxBIbE7TCZHbLZtF0LNJsrquGCkdqk17svx/w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.3.0.tgz", + "integrity": "sha512-zRo6CimhvH/VJqCFl9T4IC6syjpWyQIxEfO2sBhrapEcfwjtwbhoGgKwucsvt4rIpFazCw63jQ/AXMT27KUIHg==", "dev": true, "requires": { - "@lerna/create-symlink": "^3.0.0", + "@lerna/create-symlink": "^3.3.0", "@lerna/package": "^3.0.0", - "fs-extra": "^6.0.1", + "fs-extra": "^7.0.0", "p-map": "^1.2.0", "read-pkg": "^3.0.0" }, @@ -1248,15 +1379,15 @@ } }, "@lerna/symlink-dependencies": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.0.0.tgz", - "integrity": "sha512-INPlVkuGbneQ2gKf/pe3FlvcSXOk+KbZShQsrcvvYhIjK/td1g6ToMGLhml7lNmQxL90YiAqo23Q8nwIh0HAIA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.3.0.tgz", + "integrity": "sha512-IRngSNCmuD5uBKVv23tHMvr7Mplti0lKHilFKcvhbvhAfu6m/Vclxhkfs/uLyHzG+DeRpl/9o86SQET3h4XDhg==", "dev": true, "requires": { - "@lerna/create-symlink": "^3.0.0", - "@lerna/resolve-symlink": "^3.0.0", - "@lerna/symlink-binary": "^3.0.0", - "fs-extra": "^6.0.1", + "@lerna/create-symlink": "^3.3.0", + "@lerna/resolve-symlink": "^3.3.0", + "@lerna/symlink-binary": "^3.3.0", + "fs-extra": "^7.0.0", "p-finally": "^1.0.0", "p-map": "^1.2.0", "p-map-series": "^1.0.0" @@ -1272,24 +1403,27 @@ } }, "@lerna/version": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.0.6.tgz", - "integrity": "sha512-4vO3ZqLl8/Sl3cN0SMYEH1vV8VTw8iwK8HMb6vFXcI/7QbMAOgjzvKwLjxoKHyY6mIbCoYRzqtUttk8pwjNNIw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.3.2.tgz", + "integrity": "sha512-2MHP6mA1f0t3UdzqPpfgAhsT1L64HOedlJxrQUoHrkou/G25Od4wjmKr9OZ0Oc4CLDbXD/sYEmE/9fZi1GGgKg==", "dev": true, "requires": { - "@lerna/child-process": "^3.0.0", - "@lerna/collect-updates": "^3.0.5", - "@lerna/command": "^3.0.6", - "@lerna/conventional-commits": "^3.0.2", + "@lerna/batch-packages": "^3.1.2", + "@lerna/check-working-tree": "^3.3.0", + "@lerna/child-process": "^3.3.0", + "@lerna/collect-updates": "^3.3.2", + "@lerna/command": "^3.3.0", + "@lerna/conventional-commits": "^3.3.0", "@lerna/output": "^3.0.0", - "@lerna/prompt": "^3.0.0", - "@lerna/run-lifecycle": "^3.0.0", + "@lerna/prompt": "^3.3.1", + "@lerna/run-lifecycle": "^3.3.1", "@lerna/validation-error": "^3.0.0", "chalk": "^2.3.1", "dedent": "^0.7.0", "minimatch": "^3.0.4", "npmlog": "^4.1.2", "p-map": "^1.2.0", + "p-pipe": "^1.2.0", "p-reduce": "^1.0.0", "p-waterfall": "^1.0.0", "semver": "^5.5.0", @@ -1298,9 +1432,9 @@ }, "dependencies": { "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true } } @@ -1326,9 +1460,9 @@ } }, "@nodelib/fs.stat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz", - "integrity": "sha512-LAQ1d4OPfSJ/BMbI2DuizmYrrkD9JMaTdi2hQTlI53lQ4kRQPyZQRS4CYQ7O66bnBBnP/oYdRxbk++X0xuFU6A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.2.tgz", + "integrity": "sha512-yprFYuno9FtNsSHVlSWd+nRlmGoAbqbeCwOryP6sC/zoCjhpArcRMYp19EvpSUSizJAlsXEwJv+wcWS9XaXdMw==", "dev": true }, "@purest/config": { @@ -1794,6 +1928,15 @@ "es6-promisify": "^5.0.0" } }, + "agentkeepalive": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.1.tgz", + "integrity": "sha512-Cte/sTY9/XcygXjJ0q58v//SnEQ7ViWExKyJpLJlLqomDbQyMLh6Is4KuWJ/wmxzhiwkGRple7Gqv1zf6Syz5w==", + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, "ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", @@ -2306,9 +2449,9 @@ } }, "aws-sdk": { - "version": "2.318.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.318.0.tgz", - "integrity": "sha512-w2XT+DOKOczoRaB9R0cRCZSwHkw4JfngMlUKeRhMbzOvW9orOZB2SeMgz+Pz1jKU3VSJDMpvB/Z3P68nvDxb8Q==", + "version": "2.323.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.323.0.tgz", + "integrity": "sha512-w30M8oTXQBd0P8nJeh/vb5Jha1dQ0WGtr8NN6AwDIL/FNBWwdhQ5DWBd8pXbeoXh/uaAhRq9em9ZKxxb1Kmu6Q==", "requires": { "buffer": "4.9.1", "events": "1.1.1", @@ -3954,6 +4097,12 @@ "inherits": "~2.0.0" } }, + "bluebird": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", + "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==", + "dev": true + }, "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", @@ -4771,6 +4920,64 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, + "cacache": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.2.0.tgz", + "integrity": "sha512-IFWl6lfK6wSeYCHUXh+N1lY72UDrpyrYQJNIVQf48paDuWbv5RbAtJYf/4gUQFObTCHZwdZ5sI8Iw7nqwP6nlQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "figgy-pudding": "^3.1.0", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.0", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + } + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -4894,9 +5101,9 @@ } }, "capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" }, "caseless": { "version": "0.12.0", @@ -4971,9 +5178,9 @@ } }, "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "check-error": { @@ -5013,6 +5220,12 @@ "readdirp": "^2.0.0" } }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "dev": true + }, "ci-info": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.1.tgz", @@ -5475,9 +5688,9 @@ } }, "config-chain": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", - "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", "dev": true, "requires": { "ini": "^1.3.4", @@ -5785,9 +5998,9 @@ } }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true }, "split": { @@ -6222,6 +6435,20 @@ "keygrip": "~1.0.2" } }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -6625,6 +6852,12 @@ "array-find-index": "^1.0.1" } }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, "d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", @@ -7698,6 +7931,12 @@ } } }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", @@ -9499,6 +9738,12 @@ "integrity": "sha512-HfVRxhYG7C8Jl9FqtrlElMR2z/8YiLQVDKf67MLY25Ic+ILx3ecmklfT1v3u+7P5/4vEFjuxaAFXhr2/Afwk5g==", "dev": true }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, "figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", @@ -9641,6 +9886,16 @@ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" }, + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, "follow-redirects": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.2.tgz", @@ -9764,9 +10019,9 @@ "dev": true }, "fs-extra": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", - "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", + "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -9785,6 +10040,27 @@ } } }, + "fs-minipass": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -10402,6 +10678,12 @@ "is-property": "^1.0.0" } }, + "genfun": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz", + "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=", + "dev": true + }, "get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", @@ -10793,9 +11075,9 @@ } }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true }, "strip-bom": { @@ -10944,7 +11226,7 @@ }, "got": { "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "requires": { "create-error-class": "^3.0.0", @@ -11409,6 +11691,12 @@ "readable-stream": "^2.0.2" } }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -11439,6 +11727,27 @@ "requires-port": "1.x.x" } }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -11477,6 +11786,15 @@ } } }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, "iconv-lite": { "version": "0.4.17", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz", @@ -11503,6 +11821,12 @@ "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.0.0.tgz", "integrity": "sha1-NGpCj0dKrI9QzzeE6i0PFvYr2ms=" }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, "ignore": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz", @@ -11514,6 +11838,15 @@ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" }, + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "immutable": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", @@ -11744,6 +12077,12 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, "ipaddr.js": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", @@ -13376,12 +13715,26 @@ "dev": true }, "lerna": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-3.0.6.tgz", - "integrity": "sha512-kFFZeh182OVnMrXntZEdVJ5Sm/mCD3YEjMpU8JGfgqTUnE7tvV3aIXiPFJj9/5hR6K/GJE5Ud8Vp8cukSVZELQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-3.4.0.tgz", + "integrity": "sha512-RCLm0gMi8PESEF8PzMxo35foA2NGGC/NKnKiUmJyRrhLybOIUfVPdPStSAWCjW1c+DYCgLZCbxu57/KWt4ZWZA==", "dev": true, "requires": { - "@lerna/cli": "^3.0.6", + "@lerna/add": "^3.3.2", + "@lerna/bootstrap": "^3.3.2", + "@lerna/changed": "^3.3.2", + "@lerna/clean": "^3.3.2", + "@lerna/cli": "^3.2.0", + "@lerna/create": "^3.3.1", + "@lerna/diff": "^3.3.0", + "@lerna/exec": "^3.3.2", + "@lerna/import": "^3.3.1", + "@lerna/init": "^3.3.0", + "@lerna/link": "^3.3.0", + "@lerna/list": "^3.3.2", + "@lerna/publish": "^3.4.0", + "@lerna/run": "^3.3.2", + "@lerna/version": "^3.3.2", "import-local": "^1.0.0", "npmlog": "^4.1.2" } @@ -13402,6 +13755,35 @@ "type-check": "~0.3.2" } }, + "libnpmaccess": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-3.0.0.tgz", + "integrity": "sha512-SiE4AZAzMpD7pmmXHfgD7rof8QIQGoKaeyAS8exgx2CKA6tzRTbRljq1xM4Tgj8/tIg+KBJPJWkR0ifqKT3irQ==", + "dev": true, + "requires": { + "aproba": "^2.0.0", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^3.8.0" + }, + "dependencies": { + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "get-stream": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.0.0.tgz", + "integrity": "sha512-FneLKMENeOR7wOK0/ZXCh+lwqtnPwkeunJjRN28LPqzGvNAhYvrTAhXv6xDm4vsJ0M7lcRbIYHQudKsSy2RtSQ==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, "limiter": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.3.tgz", @@ -14032,6 +14414,46 @@ } } }, + "make-fetch-happen": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", + "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + } + } + }, "makeerror": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", @@ -14041,6 +14463,15 @@ "tmpl": "1.0.x" } }, + "map-age-cleaner": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz", + "integrity": "sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, "map-async": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/map-async/-/map-async-0.1.1.tgz", @@ -14336,6 +14767,68 @@ "is-plain-obj": "^1.1.0" } }, + "minipass": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.4.tgz", + "integrity": "sha512-mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "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 + }, + "yallist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "dev": true + } + } + }, + "minizlib": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + } + } + }, "mixin-deep": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", @@ -14542,6 +15035,20 @@ } } }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -14839,6 +15346,25 @@ "is-stream": "^1.0.1" } }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "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 + } + } + }, "node-gyp": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", @@ -15549,6 +16075,12 @@ "npm-registry-client": "^8.3.0" } }, + "npm-bundled": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.5.tgz", + "integrity": "sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==", + "dev": true + }, "npm-install-package": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/npm-install-package/-/npm-install-package-2.1.0.tgz", @@ -15624,6 +16156,16 @@ } } }, + "npm-packlist": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.11.tgz", + "integrity": "sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, "npm-path": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", @@ -15633,6 +16175,24 @@ "which": "^1.2.10" } }, + "npm-pick-manifest": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz", + "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", + "dev": true, + "requires": { + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + } + } + }, "npm-registry-client": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.5.1.tgz", @@ -15661,6 +16221,42 @@ } } }, + "npm-registry-fetch": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.8.0.tgz", + "integrity": "sha512-hrw8UMD+Nob3Kl3h8Z/YjmKamb1gf7D1ZZch2otrIXM3uFLB5vjEY6DhMlq80z/zZet6eETLbOXcuQudCB3Zpw==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "npm-package-arg": "^6.1.0" + }, + "dependencies": { + "JSONStream": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.4.tgz", + "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, "npm-run-all": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.3.tgz", @@ -16534,11 +17130,23 @@ "object-assign": "^4.1.0" } }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, "p-limit": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", @@ -16569,6 +17177,12 @@ "p-reduce": "^1.0.0" } }, + "p-pipe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz", + "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=", + "dev": true + }, "p-reduce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", @@ -16602,9 +17216,130 @@ }, "dependencies": { "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" + } + } + }, + "pacote": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.1.0.tgz", + "integrity": "sha512-AFXaSWhOtQf3jHqEvg+ZYH/dfT8TKq6TKspJ4qEFwVVuh5aGvMIk6SNF8vqfzz+cBceDIs9drOcpBbrPai7i+g==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "cacache": "^11.0.2", + "figgy-pudding": "^3.2.1", + "get-stream": "^3.0.0", + "glob": "^7.1.2", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.10", + "npm-pick-manifest": "^2.1.0", + "npm-registry-fetch": "^3.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.5.0", + "ssri": "^6.0.0", + "tar": "^4.4.3", + "unique-filename": "^1.1.0", + "which": "^1.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "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 + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "tar": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.6.tgz", + "integrity": "sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==", + "dev": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.3", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "dev": true + } + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -16614,6 +17349,17 @@ "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", "dev": true }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, "parents": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", @@ -18455,6 +19201,22 @@ "asap": "~2.0.3" } }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, "prompts": { "version": "0.1.14", "resolved": "https://registry.npmjs.org/prompts/-/prompts-0.1.14.tgz", @@ -18495,6 +19257,15 @@ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", "dev": true }, + "protoduck": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz", + "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", + "dev": true, + "requires": { + "genfun": "^4.0.1" + } + }, "proxy-addr": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", @@ -18545,6 +19316,59 @@ "randombytes": "^2.0.1" } }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + } + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -18745,7 +19569,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } @@ -19579,6 +20403,15 @@ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, "rx": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", @@ -20370,6 +21203,12 @@ "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, + "smart-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz", + "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==", + "dev": true + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -20670,6 +21509,26 @@ } } }, + "socks": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.1.tgz", + "integrity": "sha512-0GabKw7n9mI46vcNrVfs0o6XzWzjVa3h6GaSo2UPxtWAROXUWavfJWh1M4PR5tnE0dcnQXZIDFP4yrAysLze/w==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.0.1" + } + }, + "socks-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", + "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", + "dev": true, + "requires": { + "agent-base": "~4.2.0", + "socks": "~2.2.0" + } + }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -20920,6 +21779,27 @@ "readable-stream": "^2.0.2" } }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + } + } + }, "stream-http": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", @@ -21171,22 +22051,21 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "strong-log-transformer": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-1.0.6.tgz", - "integrity": "sha1-9/uTdYpppXEUAYEnfuoMLrEwH6M=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.0.0.tgz", + "integrity": "sha512-FQmNqAXJgOX8ygOcvPLlGWBNT41mvNJ9ALoYf0GTwVt9t30mGTqpmp/oJx5gLcu52DXK10kS7dVWhx8aPXDTlg==", "dev": true, "requires": { "byline": "^5.0.0", "duplexer": "^0.1.1", - "minimist": "^0.1.0", - "moment": "^2.6.0", + "minimist": "^1.2.0", "through": "^2.3.4" }, "dependencies": { "minimist": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", - "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=", + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } @@ -21854,9 +22733,9 @@ } }, "text-extensions": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.7.0.tgz", - "integrity": "sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.8.0.tgz", + "integrity": "sha512-mVzjRxuWnDKs/qH1rbOJEVHLlSX9kty9lpi7lMvLgU9S74mQ8/Ozg9UPcKxShh0qG2NZ+NyPOPpcZU4C1Eld9A==", "dev": true }, "text-table": { @@ -22162,6 +23041,12 @@ "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", "dev": true }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, "tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", @@ -22478,6 +23363,24 @@ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", "dev": true }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, "unique-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", diff --git a/package.json b/package.json index a5f2ada2d..a596a8dfb 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "isomorphic-fetch": "2.2.1", "jest": "^23.5.0", "json3": "^3.3.2", - "lerna": "^3.0.6", + "lerna": "^3.4.0", "lint-staged": "^6.1.1", "minify-stream": "^1.2.0", "mkdirp": "0.5.1", @@ -126,7 +126,7 @@ "web:update:frontpage:code:sample": "cd website && ./node_modules/.bin/hexo generate && cp -f public/frontpage-code-sample.html ./themes/uppy/layout/partials/frontpage-code-sample.html", "web": "npm-run-all web:clean web:build", "uploadcdn": "bin/upload-to-cdn.sh", - "prepare": "lerna bootstrap --hoist", + "bootstrap": "lerna bootstrap --hoist", "contributors": "githubcontrib --owner transloadit --repo uppy --cols 6 $([ \"${GITHUB_TOKEN:-}\" == \"\" ] && echo \"\" || echo \"--authToken ${GITHUB_TOKEN}\") --showlogin true --sortOrder desc", "contributors:save": "replace-x -m '[\\s\\S]+' \"\n## Contributors\n\n$(npm run --silent contributors)\n\" README.md" }, diff --git a/packages/@uppy/thumbnail-generator/src/index.js b/packages/@uppy/thumbnail-generator/src/index.js index b022ffe30..69969489b 100644 --- a/packages/@uppy/thumbnail-generator/src/index.js +++ b/packages/@uppy/thumbnail-generator/src/index.js @@ -20,7 +20,10 @@ module.exports = class ThumbnailGenerator extends Plugin { thumbnailWidth: 200 } - this.opts = Object.assign({}, defaultOptions, opts) + this.opts = { + ...defaultOptions, + ...opts + } this.addToQueue = this.addToQueue.bind(this) this.onRestored = this.onRestored.bind(this) @@ -35,21 +38,20 @@ module.exports = class ThumbnailGenerator extends Plugin { */ createThumbnail (file, targetWidth) { const originalUrl = URL.createObjectURL(file.data) - const revoke = () => URL.revokeObjectURL(originalUrl) + const onload = new Promise((resolve, reject) => { const image = new Image() image.src = originalUrl - image.onload = () => { + image.addEventListener('load', () => { + URL.revokeObjectURL(originalUrl) resolve(image) - } - image.onerror = () => { - // The onerror event is totally useless unfortunately, as far as I know - reject(new Error('Could not create thumbnail')) - } + }) + image.addEventListener('error', (event) => { + URL.revokeObjectURL(originalUrl) + reject(event.error || new Error('Could not create thumbnail')) + }) }) - onload.then(revoke, revoke) - return onload .then(image => { const targetHeight = this.getProportionalHeight(image, targetWidth) @@ -155,9 +157,7 @@ module.exports = class ThumbnailGenerator extends Plugin { * Set the preview URL for a file. */ setPreviewURL (fileID, preview) { - this.uppy.setFileState(fileID, { - preview: preview - }) + this.uppy.setFileState(fileID, { preview }) } addToQueue (item) { @@ -176,7 +176,8 @@ module.exports = class ThumbnailGenerator extends Plugin { .then(() => this.processQueue()) } else { this.queueProcessing = false - this.uppy.emit('thumbnail:ready') + this.uppy.log('[ThumbnailGenerator] Emptied thumbnail queue') + this.uppy.emit('thumbnail:all-generated') } } @@ -185,11 +186,13 @@ module.exports = class ThumbnailGenerator extends Plugin { return this.createThumbnail(file, this.opts.thumbnailWidth) .then(preview => { this.setPreviewURL(file.id, preview) - this.uppy.emit('thumbnail:generated', file, preview) + this.uppy.log(`[ThumbnailGenerator] Generated thumbnail for ${file.id}`) + this.uppy.emit('thumbnail:generated', this.uppy.getFile(file.id), preview) }) .catch(err => { - console.warn(err.stack || err.message) - this.uppy.emit('thumbnail:error', file, err) + this.uppy.log(`[ThumbnailGenerator] Failed thumbnail for ${file.id}`) + this.uppy.log(err, 'warning') + this.uppy.emit('thumbnail:error', this.uppy.getFile(file.id), err) }) } return Promise.resolve() diff --git a/packages/@uppy/thumbnail-generator/src/index.test.js b/packages/@uppy/thumbnail-generator/src/index.test.js index 59ea50464..c76ba6f48 100644 --- a/packages/@uppy/thumbnail-generator/src/index.test.js +++ b/packages/@uppy/thumbnail-generator/src/index.test.js @@ -4,25 +4,34 @@ const emitter = require('namespace-emitter') const delay = duration => new Promise(resolve => setTimeout(resolve, duration)) +function MockCore () { + const core = emitter() + const files = {} + core.mockFile = (id, f) => { files[id] = f } + core.getFile = (id) => files[id] + core.log = () => null + return core +} + describe('uploader/ThumbnailGeneratorPlugin', () => { it('should initialise successfully', () => { - const plugin = new ThumbnailGeneratorPlugin(null, {}) + const plugin = new ThumbnailGeneratorPlugin(new MockCore(), {}) expect(plugin instanceof Plugin).toEqual(true) }) it('should accept the thumbnailWidth option and override the default', () => { - const plugin1 = new ThumbnailGeneratorPlugin(null) // eslint-disable-line no-new + const plugin1 = new ThumbnailGeneratorPlugin(new MockCore()) // eslint-disable-line no-new expect(plugin1.opts.thumbnailWidth).toEqual(200) - const plugin2 = new ThumbnailGeneratorPlugin(null, { thumbnailWidth: 100 }) // eslint-disable-line no-new + const plugin2 = new ThumbnailGeneratorPlugin(new MockCore(), { thumbnailWidth: 100 }) // eslint-disable-line no-new expect(plugin2.opts.thumbnailWidth).toEqual(100) }) describe('install', () => { it('should subscribe to uppy file-added event', () => { - const core = { + const core = Object.assign(new MockCore(), { on: jest.fn() - } + }) const plugin = new ThumbnailGeneratorPlugin(core) plugin.addToQueue = jest.fn() @@ -35,10 +44,10 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { describe('uninstall', () => { it('should unsubscribe from uppy file-added event', () => { - const core = { + const core = Object.assign(new MockCore(), { on: jest.fn(), off: jest.fn() - } + }) const plugin = new ThumbnailGeneratorPlugin(core) plugin.addToQueue = jest.fn() @@ -55,7 +64,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { describe('queue', () => { it('should add a new file to the queue and start processing the queue when queueProcessing is false', () => { - const core = {} + const core = new MockCore() const plugin = new ThumbnailGeneratorPlugin(core) plugin.processQueue = jest.fn() @@ -73,7 +82,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { }) it('should process items in the queue one by one', () => { - const core = {} + const core = new MockCore() const plugin = new ThumbnailGeneratorPlugin(core) plugin.requestThumbnail = jest.fn(() => delay(100)) @@ -106,9 +115,47 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { }) }) + describe('events', () => { + const core = new MockCore() + const plugin = new ThumbnailGeneratorPlugin(core) + plugin.createThumbnail = jest.fn((file) => delay(100).then(() => `blob:${file.id}.png`)) + plugin.setPreviewURL = jest.fn() + + function add (file) { + core.mockFile(file.id, file) + plugin.addToQueue(file) + } + + it('should emit thumbnail:generated when a thumbnail was generated', () => new Promise((resolve, reject) => { + const expected = ['bar', 'bar2', 'bar3'] + core.on('thumbnail:generated', (file, preview) => { + try { + expect(file.id).toBe(expected.shift()) + expect(preview).toBe(`blob:${file.id}.png`) + } catch (err) { + return reject(err) + } + if (expected.length === 0) resolve() + }) + add({ id: 'bar', type: 'image/png' }) + add({ id: 'bar2', type: 'image/png' }) + add({ id: 'bar3', type: 'image/png' }) + })) + + it('should emit thumbnail:all-generated when all thumbnails were generated', () => { + return new Promise((resolve) => { + core.on('thumbnail:all-generated', resolve) + add({ id: 'bar4', type: 'image/png' }) + add({ id: 'bar5', type: 'image/png' }) + }).then(() => { + expect(plugin.queue).toHaveLength(0) + }) + }) + }) + describe('requestThumbnail', () => { it('should call createThumbnail if it is a supported filetype', () => { - const core = {} + const core = new MockCore() const plugin = new ThumbnailGeneratorPlugin(core) plugin.createThumbnail = jest @@ -127,7 +174,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { }) it('should not call createThumbnail if it is not a supported filetype', () => { - const core = {} + const core = new MockCore() const plugin = new ThumbnailGeneratorPlugin(core) plugin.createThumbnail = jest @@ -142,7 +189,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { }) it('should not call createThumbnail if the file is remote', () => { - const core = {} + const core = new MockCore() const plugin = new ThumbnailGeneratorPlugin(core) plugin.createThumbnail = jest @@ -157,7 +204,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { }) it('should call setPreviewURL with the thumbnail image', () => { - const core = {} + const core = new MockCore() const plugin = new ThumbnailGeneratorPlugin(core) plugin.createThumbnail = jest @@ -199,7 +246,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { describe('getProportionalHeight', () => { it('should calculate the resized height based on the specified width of the image whilst keeping aspect ratio', () => { - const core = {} + const core = new MockCore() const plugin = new ThumbnailGeneratorPlugin(core) expect( plugin.getProportionalHeight({ width: 200, height: 100 }, 50) @@ -215,7 +262,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { describe('canvasToBlob', () => { it('should use canvas.toBlob if available', () => { - const core = {} + const core = new MockCore() const plugin = new ThumbnailGeneratorPlugin(core) const canvas = { toBlob: jest.fn() @@ -242,7 +289,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { }) xit('should scale down the image by the specified number of steps', () => { - const core = {} + const core = new MockCore() const plugin = new ThumbnailGeneratorPlugin(core) const image = { width: 1000, @@ -299,7 +346,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { describe('resizeImage', () => { it('should return a canvas with the resized image on it', () => { - const core = {} + const core = new MockCore() const plugin = new ThumbnailGeneratorPlugin(core) const image = { width: 1000, @@ -324,7 +371,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { }) it('should upsize if original image is smaller than target size', () => { - const core = {} + const core = new MockCore() const plugin = new ThumbnailGeneratorPlugin(core) const image = { width: 100, @@ -356,7 +403,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { b: { preview: 'blob:def' }, c: { preview: 'blob:xyz', isRestored: true } } - const core = Object.assign(emitter(), { + const core = Object.assign(new MockCore(), { getState () { return { files } }, @@ -380,7 +427,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => { const files = { a: { preview: 'http://abc', isRestored: true } } - const core = Object.assign(emitter(), { + const core = Object.assign(new MockCore(), { getState () { return { files } }, diff --git a/test/endtoend/thumbnails/main.js b/test/endtoend/thumbnails/main.js index 7c9d128f0..9ccfd3429 100644 --- a/test/endtoend/thumbnails/main.js +++ b/test/endtoend/thumbnails/main.js @@ -1,3 +1,4 @@ +/* eslint-disable */ require('es6-promise/auto') require('whatwg-fetch') const Uppy = require('@uppy/core') @@ -13,10 +14,26 @@ const uppyThumbnails = Uppy({ uppyThumbnails.use(ThumbnailGenerator, {}) uppyThumbnails.use(FileInput, { target: '#uppyThumbnails', pretty: false }) -uppyThumbnails.on('thumbnail:generated', (file) => { +uppyThumbnails.on('file-added', (file) => { + const el = document.createElement('p') + el.className = 'file-name' + el.textContent = file.name + document.body.appendChild(el) +}) + +// Dump errors to the screen so saucelabs shows them in screenshots. +uppyThumbnails.on('thumbnail:error', (file, err) => { + const el = document.createElement('pre') + el.style = 'font: 14pt monospace; background: red; color: white' + el.textContent = `Error: ${err.stack}` + document.body.appendChild(el) +}) + +uppyThumbnails.on('thumbnail:generated', (file, preview) => { const img = new Image() img.src = file.preview + img.className = 'file-preview' + img.style.display = 'block' document.body.appendChild(img) }) -window.ready = new Promise((resolve) => uppyThumbnails.on('thumbnail:ready', resolve)) diff --git a/test/endtoend/thumbnails/test.js b/test/endtoend/thumbnails/test.js index ddd46029c..0fa2245b1 100644 --- a/test/endtoend/thumbnails/test.js +++ b/test/endtoend/thumbnails/test.js @@ -1,4 +1,4 @@ -/* global browser, expect, $ */ +/* global browser, expect, $, $$ */ const path = require('path') const fs = require('fs') const { selectFakeFile, supportsChooseFile } = require('../utils') @@ -8,21 +8,39 @@ const testURL = 'http://localhost:4567/thumbnails' const images = [ path.join(__dirname, '../../resources/image.jpg'), path.join(__dirname, '../../resources/baboon.png'), - path.join(__dirname, '../../resources/kodim23.png') + path.join(__dirname, '../../resources/kodim23.png'), + path.join(__dirname, '../../resources/invalid.png') +] +const notImages = [ + { type: 'text/javascript', file: __filename } ] -describe.only('ThumbnailGenerator', () => { +describe('ThumbnailGenerator', () => { beforeEach(() => { browser.url(testURL) }) - it('should generate thumbnails for images', () => { + it('should generate thumbnails for images', function () { + // FIXME why isn't the selectFakeFile alternative below working? + if (!supportsChooseFile()) { + return this.skip() + } + $('#uppyThumbnails .uppy-FileInput-input').waitForExist() + browser.execute(/* must be valid ES5 for IE */ function () { + window.thumbnailsReady = new Promise(function (resolve) { + window.uppyThumbnails.on('thumbnail:all-generated', resolve) + }) + }) + if (supportsChooseFile()) { for (const img of images) { browser.chooseFile('#uppyThumbnails .uppy-FileInput-input', img) } + for (const { file } of notImages) { + browser.chooseFile('#uppyThumbnails .uppy-FileInput-input', file) + } } else { for (const img of images) { browser.execute( @@ -33,8 +51,40 @@ describe.only('ThumbnailGenerator', () => { fs.readFileSync(img, 'base64') // b64 ) } + for (const { type, file } of notImages) { + browser.execute( + selectFakeFile, + 'uppyThumbnails', + path.basename(file), // name + type, // type + fs.readFileSync(file, 'base64') // b64 + ) + } } - browser.pause(20 * 1000) + browser.executeAsync(/* must be valid ES5 for IE */ function (done) { + window.thumbnailsReady.then(done) + }) + + // const names = $$('p.file-name') + const previews = $$('img.file-preview') + + // Names should all be listed before previews--indicates that previews were generated asynchronously. + /* Nevermind this, chooseFile() doesn't accept multiple files so they are added one by one and the thumbnails + * have finished generating by the time we add the next. + const nys = names.map((el) => el.getLocation('y')) + const pys = previews.map((el) => el.getLocation('y')) + for (const ny of nys) { + for (const py of pys) { + expect(ny).to.be.below(py, 'names should be listed before previews') + } + } + */ + + expect(previews).to.have.lengthOf(3) // ex. the invalid image + for (const p of previews) { + expect(p.getAttribute('src')).to.match(/^blob:/) + expect(p.getElementSize('width')).to.equal(200) + } }) }) diff --git a/test/endtoend/utils.js b/test/endtoend/utils.js index 828c11129..0c2cc840b 100644 --- a/test/endtoend/utils.js +++ b/test/endtoend/utils.js @@ -2,11 +2,13 @@ const path = require('path') const { spawn } = require('child_process') +// This function must be valid ES5, because it is run in the browser +// and IE10/IE11 do not support new syntax features function selectFakeFile (uppyID, name, type, b64) { if (!b64) b64 = 'PHN2ZyB2aWV3Qm94PSIwIDAgMTIwIDEyMCI+CiAgPGNpcmNsZSBjeD0iNjAiIGN5PSI2MCIgcj0iNTAiLz4KPC9zdmc+Cg==' var blob = new Blob( - [`data:image/svg+xml;base64,${b64}`], + ['data:image/svg+xml;base64,' + b64], { type: type || 'image/svg+xml' } ) window[uppyID].addFile({ diff --git a/test/endtoend/wdio.local.conf.js b/test/endtoend/wdio.local.conf.js index ee166832e..14054189d 100644 --- a/test/endtoend/wdio.local.conf.js +++ b/test/endtoend/wdio.local.conf.js @@ -1,12 +1,24 @@ const base = require('./wdio.base.conf') const { CompanionService } = require('./utils') +// Use "npm run test:acceptance:local -- -b chrome" to test in chrome +// "npm run test:acceptance:local -- -b firefox -b chrome" to test in FF and chrome +let prevIsDashB = false +const capabilities = [] +process.argv.forEach((arg) => { + if (prevIsDashB) { + capabilities.push({ browserName: arg }) + } + prevIsDashB = arg === '-b' +}) + +// default to testing in firefox +if (capabilities.length === 0) { + capabilities.push({ browserName: 'firefox' }) +} + exports.config = Object.assign(base.config, { - capabilities: [ - { browserName: 'firefox' } - // { browserName: 'MicrosoftEdge', version: '14.14393', platform: 'Windows 10' }, - // { browserName: 'safari', version: '11.0', platform: 'macOS 10.12' } - ], + capabilities, // If you only want to run your tests until a specific amount of tests have failed use // bail (default is 0 - don't bail, run all tests). diff --git a/test/endtoend/wdio.remote.conf.js b/test/endtoend/wdio.remote.conf.js index baf4111d9..26cbbc603 100644 --- a/test/endtoend/wdio.remote.conf.js +++ b/test/endtoend/wdio.remote.conf.js @@ -2,18 +2,24 @@ const base = require('./wdio.base.conf') const { CompanionService } = require('./utils') function createCapability (capability) { - return Object.assign({ + return { 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, - build: process.env.TRAVIS_BUILD_NUMBER - }, capability) + build: process.env.TRAVIS_BUILD_NUMBER, + extendedDebugging: true, + ...capability + } } exports.config = Object.assign(base.config, { capabilities: [ { browserName: 'firefox', version: '38.0', platform: 'Linux' }, + { browserName: 'firefox', version: '61.0', platform: 'Windows 10' }, { browserName: 'internet explorer', version: '10.0', platform: 'Windows 7' }, + { browserName: 'internet explorer', version: '11.0', platform: 'Windows 7' }, { browserName: 'chrome', version: '50.0', platform: 'Windows 7' }, - { browserName: 'MicrosoftEdge', version: '14.14393', platform: 'Windows 10' }, + { browserName: 'chrome', version: '69.0', platform: 'Windows 10' }, + { browserName: 'MicrosoftEdge', version: '14', platform: 'Windows 10' }, + { browserName: 'MicrosoftEdge', version: '17', platform: 'Windows 10' }, // { browserName: 'safari', version: '11.0', platform: 'macOS 10.12' }, { browserName: 'safari', version: '10.0', platformName: 'iOS', platformVersion: '10.0', deviceOrientation: 'portrait', deviceName: 'iPhone 6 Simulator', appiumVersion: '1.7.1' }, { browserName: 'chrome', platformName: 'Android', platformVersion: '6.0', deviceOrientation: 'portrait', deviceName: 'Android Emulator', appiumVersion: '1.7.1' } diff --git a/test/resources/invalid.png b/test/resources/invalid.png new file mode 100644 index 000000000..6c288100a Binary files /dev/null and b/test/resources/invalid.png differ diff --git a/website/src/docs/contributing.md b/website/src/docs/contributing.md index cac686d79..6e3258d14 100644 --- a/website/src/docs/contributing.md +++ b/website/src/docs/contributing.md @@ -14,8 +14,11 @@ After you have successfully forked the repo, clone and install the project: git clone git@github.com:YOUR_USERNAME/uppy.git cd uppy npm install +npm run bootstrap ``` +We use lerna to manage the many plugin packages Uppy has. You should always do `npm run bootstrap` after an `npm install` to make sure lerna has installed the dependencies of each package and that the `package-lock.json` in the repository root is up to date. + Our website’s examples section is also our playground, please read the [Local Previews](#Local-Previews) section to get up and running. ## Tests