From 2e1b21e088e975d6209dc947dafcc040aae1eb0d Mon Sep 17 00:00:00 2001 From: develar Date: Tue, 14 Feb 2017 09:18:20 +0100 Subject: [PATCH] feat(nsis): option to delete app data on manual uninstall Close #885 --- CHANGELOG.md | 21 ++ README.md | 4 +- docs/Options.md | 4 +- package.json | 8 +- packages/electron-builder/package.json | 2 +- .../electron-builder/src/cli/cliOptions.ts | 2 +- .../src/options/winOptions.ts | 13 +- packages/electron-builder/src/targets/nsis.ts | 19 +- .../templates/nsis/boringInstaller.nsh | 16 +- .../templates/nsis/common.nsh | 10 +- .../templates/nsis/installSection.nsh | 10 +- .../templates/nsis/oneClick.nsh | 26 +- .../templates/nsis/uninstaller.nsh | 20 +- test/src/windows/nsisTest.ts | 5 +- yarn.lock | 284 ++++++++++++++---- 15 files changed, 333 insertions(+), 111 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ea4a8b84ef..24854cce36f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,24 @@ + +# [](https://github.com/electron-userland/electron-builder/compare/v13.5.0...v) (2017-02-13) + + +### Bug Fixes + +* Incorrect error message ([bc0952e](https://github.com/electron-userland/electron-builder/commit/bc0952e)), closes [#1236](https://github.com/electron-userland/electron-builder/issues/1236) +* **deployment:** NSIS Web Installer update info is not generated #1207 ([9f7c825](https://github.com/electron-userland/electron-builder/commit/9f7c825)) +* **electron-updater:** Github Update Fails Due to Undefined ([591873a](https://github.com/electron-userland/electron-builder/commit/591873a)), closes [#1228](https://github.com/electron-userland/electron-builder/issues/1228) +* **nsis:** Custom NSIS Script !include could not find nsh file ([3fbf113](https://github.com/electron-userland/electron-builder/commit/3fbf113)), closes [#1239](https://github.com/electron-userland/electron-builder/issues/1239) + + +### Features + +* **electron-updater:** include full GitHub request url in the error message ([a7d2992](https://github.com/electron-userland/electron-builder/commit/a7d2992)) +* **linux:** assert that linux.icon is a directory ([5352b8c](https://github.com/electron-userland/electron-builder/commit/5352b8c)), closes [#1242](https://github.com/electron-userland/electron-builder/issues/1242) +* --config option ([472ef7e](https://github.com/electron-userland/electron-builder/commit/472ef7e)), closes [#1229](https://github.com/electron-userland/electron-builder/issues/1229) +* --config option ([a9f2ad8](https://github.com/electron-userland/electron-builder/commit/a9f2ad8)) + + + **Here changelog only for previous major releases.** To see changes for current major release, please use [GiHub releases](https://github.com/electron-userland/electron-builder/releases). diff --git a/README.md b/README.md index 8f41b86b557..6b709bfde2f 100755 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ A complete solution to package and build a ready for distribution Electron app f * All platforms: `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir` (unpacked directory). * [macOS](https://github.com/electron-userland/electron-builder/wiki/Options#MacOptions-target): `dmg`, `pkg`, `mas`. * [Linux](https://github.com/electron-userland/electron-builder/wiki/Options#LinuxBuildOptions-target): [AppImage](http://appimage.org), [snap](http://snapcraft.io), debian package (`deb`), `rpm`, `freebsd`, `pacman`, `p5p`, `apk`. - * [Windows](https://github.com/electron-userland/electron-builder/wiki/Options#WinBuildOptions-target): NSIS, AppX (Windows Store), Squirrel.Windows. + * [Windows](https://github.com/electron-userland/electron-builder/wiki/Options#WinBuildOptions-target): NSIS, Web installer, AppX (Windows Store), Squirrel.Windows. * [Two package.json structure](https://github.com/electron-userland/electron-builder/wiki/Two-package.json-Structure) is supported, but you are not forced to use it even if you have native production dependencies. * [Publishing artifacts](https://github.com/electron-userland/electron-builder/wiki/Publishing-Artifacts) to GitHub Releases, Amazon S3 and Bintray. * Pack in a distributable format [already packaged app](#pack-only-in-a-distributable-format). @@ -133,7 +133,7 @@ Examples: build --linux deb tar.xz build deb and tar.xz for Linux build --win --ia32 build for Windows ia32 build --em.foo=bar set package.json property `foo` to `bar` - build --config.nsis.unicode= configure unicode options for NSIS + build --config.nsis.unicode=false configure unicode options for NSIS ``` ## Programmatic Usage diff --git a/docs/Options.md b/docs/Options.md index 6a4fc8810a0..1ba5dfaa821 100644 --- a/docs/Options.md +++ b/docs/Options.md @@ -186,10 +186,12 @@ See [NSIS target notes](https://github.com/electron-userland/electron-builder/wi | script | The path to NSIS script to customize installer. Defaults to `build/installer.nsi`. See [Custom NSIS script](https://github.com/electron-userland/electron-builder/wiki/NSIS#custom-nsis-script). | license | The path to EULA license file. Defaults to `build/license.rtf` or `build/license.txt`. | language | * [LCID Dec](https://msdn.microsoft.com/en-au/goglobal/bb964664.aspx), defaults to `1033`(`English - United States`). +| multiLanguageInstaller |

*boring installer only.* Whether to create multi-language installer. Defaults to unicode option value. [Not all strings are translated](https://github.com/electron-userland/electron-builder/issues/646#issuecomment-238155800).

| warningsAsErrors | Defaults to `true`. If `warningsAsErrors` is `true` (default): NSIS will treat warnings as errors. If `warningsAsErrors` is `false`: NSIS will allow warnings. | menuCategory | Whether to create submenu for start menu shortcut and program files directory. Defaults to `false`. If `true`, company name will be used. Or string value. | artifactName | The [artifact file name pattern](https://github.com/electron-userland/electron-builder/wiki/Options#artifact-file-name-pattern). Defaults to `${productName} Setup ${version}.${ext}`. | unicode | Whether to create [Unicode installer](http://nsis.sourceforge.net/Docs/Chapter1.html#intro-unicode). Defaults to `true`. +| deleteAppDataOnUninstall | *one-click installer only.* Whether to delete app data on uninstall. Defaults to `false`. ### `nsis` Web Installer Specific Options @@ -236,7 +238,7 @@ To use Squirrel.Windows please install `electron-builder-squirrel-windows` depen ### `win` Windows Specific Options | Name | Description | --- | --- -| target |

Target package type: list of nsis, appx, squirrel, 7z, zip, tar.xz, tar.lz, tar.gz, tar.bz2, dir. Defaults to nsis.

AppX package can be built only on Windows 10.

To use Squirrel.Windows please install electron-builder-squirrel-windows dependency.

+| target |

Target package type: list of nsis, nsis-web (Web installer), appx, squirrel, 7z, zip, tar.xz, tar.lz, tar.gz, tar.bz2, dir. Defaults to nsis.

AppX package can be built only on Windows 10.

To use Squirrel.Windows please install electron-builder-squirrel-windows dependency.

| signingHashAlgorithms |

Array of signing algorithms used. Defaults to ['sha1', 'sha256']

For AppX sha256 is always used.

| icon | The path to application icon. Defaults to `build/icon.ico` (consider using this convention instead of complicating your configuration). | legalTrademarks | The trademarks and registered trademarks. diff --git a/package.json b/package.json index c9d3747cd46..52b02f965e6 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "semver": "^5.3.0", "stat-mode": "^0.2.2", "tunnel-agent": "^0.4.3", - "update-notifier": "^1.0.3", + "update-notifier": "^2.0.0", "uuid-1345": "^0.99.6", "yargs": "^6.6.0" }, @@ -65,11 +65,11 @@ "@types/xml2js": "^0.0.32", "babel-plugin-array-includes": "^2.0.3", "babel-plugin-transform-async-to-module-method": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", "babel-plugin-transform-es2015-spread": "^6.22.0", "babel-plugin-transform-inline-imports-commonjs": "^1.2.0", - "convert-source-map": "^1.3.0", + "convert-source-map": "^1.4.0", "decompress-zip": "^0.3.0", "depcheck": "^0.6.7", "electron-download-tf": "3.2.0", diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index 77155e24bd0..e1c8eaae838 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -66,7 +66,7 @@ "plist": "^2.0.1", "sanitize-filename": "^1.6.1", "semver": "^5.3.0", - "update-notifier": "^1.0.3", + "update-notifier": "^2.0.0", "uuid-1345": "^0.99.6", "yargs": "^6.6.0", "node-forge": "^0.7.0" diff --git a/packages/electron-builder/src/cli/cliOptions.ts b/packages/electron-builder/src/cli/cliOptions.ts index 8b6a92f934f..4d6eca69377 100644 --- a/packages/electron-builder/src/cli/cliOptions.ts +++ b/packages/electron-builder/src/cli/cliOptions.ts @@ -12,7 +12,7 @@ export function createYargs(): any { .example("build --linux deb tar.xz", "build deb and tar.xz for Linux") .example("build --win --ia32", "build for Windows ia32") .example("build --em.foo=bar", "set package.json property `foo` to `bar`") - .example("build --config.nsis.unicode=", "configure unicode options for NSIS") + .example("build --config.nsis.unicode=false", "configure unicode options for NSIS") .option("mac", { group: buildGroup, alias: ["m", "o", "macos"], diff --git a/packages/electron-builder/src/options/winOptions.ts b/packages/electron-builder/src/options/winOptions.ts index 8b0dadfb9d2..a87549a63a8 100644 --- a/packages/electron-builder/src/options/winOptions.ts +++ b/packages/electron-builder/src/options/winOptions.ts @@ -5,7 +5,7 @@ import { PlatformSpecificBuildOptions } from "../metadata" */ export interface WinBuildOptions extends PlatformSpecificBuildOptions { /* - Target package type: list of `nsis`, `appx`, `squirrel`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`. Defaults to `nsis`. + Target package type: list of `nsis`, `nsis-web` (Web installer), `appx`, `squirrel`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`. Defaults to `nsis`. AppX package can be built only on Windows 10. @@ -139,6 +139,12 @@ export interface NsisOptions { */ readonly language?: string | null + /* + *boring installer only.* Whether to create multi-language installer. Defaults to `unicode` option value. + [Not all strings are translated](https://github.com/electron-userland/electron-builder/issues/646#issuecomment-238155800). + */ + readonly multiLanguageInstaller?: boolean + /* Defaults to `true`. If `warningsAsErrors` is `true` (default): NSIS will treat warnings as errors. If `warningsAsErrors` is `false`: NSIS will allow warnings. */ @@ -161,6 +167,11 @@ export interface NsisOptions { Whether to create [Unicode installer](http://nsis.sourceforge.net/Docs/Chapter1.html#intro-unicode). Defaults to `true`. */ readonly unicode?: boolean + + /* + *one-click installer only.* Whether to delete app data on uninstall. Defaults to `false`. + */ + readonly deleteAppDataOnUninstall?: boolean } /* diff --git a/packages/electron-builder/src/targets/nsis.ts b/packages/electron-builder/src/targets/nsis.ts index a6879f2333a..91e4cffe92c 100644 --- a/packages/electron-builder/src/targets/nsis.ts +++ b/packages/electron-builder/src/targets/nsis.ts @@ -103,6 +103,11 @@ export default class NsisTarget extends Target { BUILD_RESOURCES_DIR: packager.buildResourcesDir, } + // electron uses product file name as app data, define it as well to remove on uninstall + if (defines.APP_FILENAME != appInfo.productFilename) { + defines.APP_PRODUCT_FILENAME = appInfo.productFilename + } + if (iconPath != null) { defines.MUI_ICON = iconPath defines.MUI_UNICON = iconPath @@ -151,7 +156,7 @@ export default class NsisTarget extends Target { OutFile: `"${installerPath}"`, VIProductVersion: appInfo.versionInWeirdWindowsForm, VIAddVersionKey: this.computeVersionKey(), - Unicode: options.unicode == null ? true : options.unicode, + Unicode: this.isUnicodeEnabled(), } if (packager.config.compression === "store") { @@ -177,6 +182,10 @@ export default class NsisTarget extends Target { packager.dispatchArtifactCreated(installerPath, this, `${packager.appInfo.name}-${this.isWebInstaller ? "Web-" : ""}Setup-${version}.exe`) } + private isUnicodeEnabled() { + return this.options.unicode == null ? true : this.options.unicode + } + private get isWebInstaller(): boolean { return this.name === "nsis-web" } @@ -283,6 +292,14 @@ export default class NsisTarget extends Target { } use(await packager.getResource(options.license, "license.rtf", "license.txt"), it => defines.LICENSE_FILE = it) + + if (options.multiLanguageInstaller == null ? this.isUnicodeEnabled() : options.multiLanguageInstaller) { + defines.MULTI_LANGUAGE_INSTALLER = null + } + + if (options.deleteAppDataOnUninstall) { + defines.DELETE_APP_DATA_ON_UNINSTALL = null + } } private async executeMakensis(defines: any, commands: any, isInstaller: boolean, originalScript: string) { diff --git a/packages/electron-builder/templates/nsis/boringInstaller.nsh b/packages/electron-builder/templates/nsis/boringInstaller.nsh index 6e5c007e20b..00145a6196c 100644 --- a/packages/electron-builder/templates/nsis/boringInstaller.nsh +++ b/packages/electron-builder/templates/nsis/boringInstaller.nsh @@ -7,11 +7,9 @@ !ifndef BUILD_UNINSTALLER Function StartApp - ${GetParameters} $R0 - ${GetOptions} $R0 "--update" $R1 - ${IfNot} ${Errors} + ${if} ${Updated} ${StdUtils.ExecShellAsUser} $0 "$SMPROGRAMS\${PRODUCT_FILENAME}.lnk" "open" "--updated" - ${Else} + ${else} ${StdUtils.ExecShellAsUser} $0 "$SMPROGRAMS\${PRODUCT_FILENAME}.lnk" "open" "" ${endif} FunctionEnd @@ -21,9 +19,7 @@ !ifdef LICENSE_FILE Function licensePre - ${GetParameters} $R0 - ${GetOptions} $R0 "--update" $R1 - ${IfNot} ${Errors} + ${if} ${Updated} Abort ${endif} FunctionEnd @@ -118,4 +114,8 @@ !endif !macroend -!include "langs.nsh" +!ifdef MULTI_LANGUAGE_INSTALLER + !include "langs.nsh" +!else + !insertmacro MUI_LANGUAGE "English" +!endif diff --git a/packages/electron-builder/templates/nsis/common.nsh b/packages/electron-builder/templates/nsis/common.nsh index 97fa406de42..dc7bb5d5390 100644 --- a/packages/electron-builder/templates/nsis/common.nsh +++ b/packages/electron-builder/templates/nsis/common.nsh @@ -104,4 +104,12 @@ FunctionEnd !else StrCpy $startMenuLink "$SMPROGRAMS\${PRODUCT_FILENAME}.lnk" !endif -!macroend \ No newline at end of file +!macroend + +!macro _Updated _a _b _t _f + ClearErrors + ${GetParameters} $R9 + ${GetOptions} $R9 "--updated" $R8 + IfErrors `${_f}` `${_t}` +!macroend +!define Updated `"" Updated ""` \ No newline at end of file diff --git a/packages/electron-builder/templates/nsis/installSection.nsh b/packages/electron-builder/templates/nsis/installSection.nsh index 235dbf9a7ae..92d018058b6 100644 --- a/packages/electron-builder/templates/nsis/installSection.nsh +++ b/packages/electron-builder/templates/nsis/installSection.nsh @@ -29,18 +29,14 @@ StrCpy $0 "/allusers" ${endif} - ClearErrors - ${GetParameters} $R0 - ${GetOptions} $R0 "--update" $R2 - ${ifNot} ${Errors} - StrCpy $0 "$0 --update" - ${endif} - ClearErrors ${GetParameters} $R0 ${GetOptions} $R0 "--delete-app-data" $R2 ${ifNot} ${Errors} StrCpy $0 "$0 --delete-app-data" + ${else} + # always pass --updated flag - to ensure that if DELETE_APP_DATA_ON_UNINSTALL is defined, user data will be not removed + StrCpy $0 "$0 --updated" ${endif} ExecWait '"$PLUGINSDIR\old-uninstaller.exe" /S /KEEP_APP_DATA $0 _?=$R1' diff --git a/packages/electron-builder/templates/nsis/oneClick.nsh b/packages/electron-builder/templates/nsis/oneClick.nsh index 30fd3a46605..11dbf5528c9 100644 --- a/packages/electron-builder/templates/nsis/oneClick.nsh +++ b/packages/electron-builder/templates/nsis/oneClick.nsh @@ -1,13 +1,11 @@ -!ifdef RUN_AFTER_FINISH - !ifndef BUILD_UNINSTALLER +!ifndef BUILD_UNINSTALLER + !ifdef RUN_AFTER_FINISH !include StdUtils.nsh Function StartApp !ifdef INSTALL_MODE_PER_ALL_USERS ${StdUtils.ExecShellAsUser} $0 "$SMPROGRAMS\${PRODUCT_FILENAME}.lnk" "open" "" !else - ${GetParameters} $R0 - ${GetOptions} $R0 "--update" $R1 - ${ifNot} ${Errors} + ${if} ${Updated} ExecShell "" "$SMPROGRAMS\${PRODUCT_FILENAME}.lnk" "--updated" ${else} ExecShell "" "$SMPROGRAMS\${PRODUCT_FILENAME}.lnk" @@ -15,21 +13,17 @@ !endif FunctionEnd !endif -!endif - - -!ifdef LICENSE_FILE - Function licensePre - ${GetParameters} $R0 - ${GetOptions} $R0 "--update" $R1 - ${IfNot} ${Errors} + !ifdef LICENSE_FILE + Function licensePre + ${if} ${Updated} Abort ${endif} - FunctionEnd + FunctionEnd - !define MUI_PAGE_CUSTOMFUNCTION_PRE licensePre - !insertmacro MUI_PAGE_LICENSE "${LICENSE_FILE}" + !define MUI_PAGE_CUSTOMFUNCTION_PRE licensePre + !insertmacro MUI_PAGE_LICENSE "${LICENSE_FILE}" + !endif !endif !insertmacro MUI_PAGE_INSTFILES diff --git a/packages/electron-builder/templates/nsis/uninstaller.nsh b/packages/electron-builder/templates/nsis/uninstaller.nsh index 8076e527991..0b973e06831 100644 --- a/packages/electron-builder/templates/nsis/uninstaller.nsh +++ b/packages/electron-builder/templates/nsis/uninstaller.nsh @@ -41,19 +41,35 @@ Section "un.install" # delete the installed files RMDir /r /REBOOTOK $INSTDIR + Var /GLOBAL isDeleteAppData + StrCpy $isDeleteAppData "0" + ClearErrors ${GetParameters} $R0 ${GetOptions} $R0 "--delete-app-data" $R1 - ${IfNot} ${Errors} + ${if} ${Errors} + !ifdef DELETE_APP_DATA_ON_UNINSTALL + ${ifNot} ${Updated} + StrCpy $isDeleteAppData "1" + ${endif} + !endif + ${else} + StrCpy $isDeleteAppData "1" + ${endIf} + + ${if} $isDeleteAppData == "1" # electron always uses per user app data ${if} $installMode == "all" SetShellVarContext current ${endif} RMDir /r "$APPDATA\${APP_FILENAME}" + !ifdef APP_PRODUCT_FILENAME + RMDir /r "$APPDATA\${APP_PRODUCT_FILENAME}" + !endif ${if} $installMode == "all" SetShellVarContext all ${endif} - ${EndIf} + ${endif} DeleteRegKey SHCTX "${UNINSTALL_REGISTRY_KEY}" DeleteRegKey SHCTX "${INSTALL_REGISTRY_KEY}" diff --git a/test/src/windows/nsisTest.ts b/test/src/windows/nsisTest.ts index 46af3f279d9..98b3cde4309 100644 --- a/test/src/windows/nsisTest.ts +++ b/test/src/windows/nsisTest.ts @@ -22,9 +22,8 @@ test("one-click", app({ }, nsis: { unicode: false, - } - // wine creates incorrect filenames and registry entries for unicode, so, we use ASCII - // productName: "TestApp", + deleteAppDataOnUninstall: true, + }, } }, { useTempDir: true, diff --git a/yarn.lock b/yarn.lock index 0990e24dbc1..24fd7527ca8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -63,8 +63,8 @@ abab@^1.0.3: resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" abbrev@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" acorn-globals@^3.1.0: version "3.1.0" @@ -243,19 +243,19 @@ babel-code-frame@^6.20.0, babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.0" -babel-core@^6.0.0, babel-core@^6.22.0, babel-core@^6.22.1: - version "6.22.1" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.22.1.tgz#9c5fd658ba1772d28d721f6d25d968fc7ae21648" +babel-core@^6.0.0, babel-core@^6.22.1, babel-core@^6.23.0: + version "6.23.1" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.23.1.tgz#c143cb621bb2f621710c220c5d579d15b8a442df" dependencies: babel-code-frame "^6.22.0" - babel-generator "^6.22.0" - babel-helpers "^6.22.0" - babel-messages "^6.22.0" - babel-register "^6.22.0" + babel-generator "^6.23.0" + babel-helpers "^6.23.0" + babel-messages "^6.23.0" + babel-register "^6.23.0" babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-traverse "^6.22.1" - babel-types "^6.22.0" + babel-template "^6.23.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" babylon "^6.11.0" convert-source-map "^1.1.0" debug "^2.1.1" @@ -267,17 +267,18 @@ babel-core@^6.0.0, babel-core@^6.22.0, babel-core@^6.22.1: slash "^1.0.0" source-map "^0.5.0" -babel-generator@^6.18.0, babel-generator@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.22.0.tgz#d642bf4961911a8adc7c692b0c9297f325cda805" +babel-generator@^6.18.0, babel-generator@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.23.0.tgz#6b8edab956ef3116f79d8c84c5a3c05f32a74bc5" dependencies: - babel-messages "^6.22.0" + babel-messages "^6.23.0" babel-runtime "^6.22.0" - babel-types "^6.22.0" + babel-types "^6.23.0" detect-indent "^4.0.0" jsesc "^1.3.0" lodash "^4.2.0" source-map "^0.5.0" + trim-right "^1.0.1" babel-helper-call-delegate@^6.22.0: version "6.22.0" @@ -289,14 +290,14 @@ babel-helper-call-delegate@^6.22.0: babel-types "^6.22.0" babel-helper-function-name@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.22.0.tgz#51f1bdc4bb89b15f57a9b249f33d742816dcbefc" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.23.0.tgz#25742d67175c8903dbe4b6cb9d9e1fcb8dcf23a6" dependencies: babel-helper-get-function-arity "^6.22.0" babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-traverse "^6.22.0" - babel-types "^6.22.0" + babel-template "^6.23.0" + babel-traverse "^6.23.0" + babel-types "^6.23.0" babel-helper-get-function-arity@^6.22.0: version "6.22.0" @@ -322,12 +323,12 @@ babel-helper-remap-async-to-generator@^6.22.0: babel-traverse "^6.22.0" babel-types "^6.22.0" -babel-helpers@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.22.0.tgz#d275f55f2252b8101bff07bc0c556deda657392c" +babel-helpers@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.23.0.tgz#4f8f2e092d0b6a8808a4bde79c27f1e2ecf0d992" dependencies: babel-runtime "^6.22.0" - babel-template "^6.22.0" + babel-template "^6.23.0" babel-jest@^18.0.0: version "18.0.0" @@ -337,9 +338,9 @@ babel-jest@^18.0.0: babel-plugin-istanbul "^3.0.0" babel-preset-jest "^18.0.0" -babel-messages@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.22.0.tgz#36066a214f1217e4ed4164867669ecb39e3ea575" +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: babel-runtime "^6.22.0" @@ -373,22 +374,22 @@ babel-plugin-transform-async-to-module-method@^6.22.0: babel-runtime "^6.22.0" babel-types "^6.22.0" -babel-plugin-transform-es2015-destructuring@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.22.0.tgz#8e0af2f885a0b2cf999d47c4c1dd23ce88cfa4c6" +babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-parameters@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.22.0.tgz#57076069232019094f27da8c68bb7162fe208dbb" +babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.23.0.tgz#3a2aabb70c8af945d5ce386f1a4250625a83ae3b" dependencies: babel-helper-call-delegate "^6.22.0" babel-helper-get-function-arity "^6.22.0" babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-traverse "^6.22.0" - babel-types "^6.22.0" + babel-template "^6.23.0" + babel-traverse "^6.23.0" + babel-types "^6.23.0" babel-plugin-transform-es2015-spread@^6.22.0: version "6.22.0" @@ -416,11 +417,11 @@ babel-preset-jest@^18.0.0: dependencies: babel-plugin-jest-hoist "^18.0.0" -babel-register@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.22.0.tgz#a61dd83975f9ca4a9e7d6eff3059494cd5ea4c63" +babel-register@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.23.0.tgz#c9aa3d4cca94b51da34826c4a0f9e08145d74ff3" dependencies: - babel-core "^6.22.0" + babel-core "^6.23.0" babel-runtime "^6.22.0" core-js "^2.4.0" home-or-tmp "^2.0.0" @@ -435,33 +436,33 @@ babel-runtime@^6.22.0: core-js "^2.4.0" regenerator-runtime "^0.10.0" -babel-template@^6.16.0, babel-template@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.22.0.tgz#403d110905a4626b317a2a1fcb8f3b73204b2edb" +babel-template@^6.16.0, babel-template@^6.22.0, babel-template@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.23.0.tgz#04d4f270adbb3aa704a8143ae26faa529238e638" dependencies: babel-runtime "^6.22.0" - babel-traverse "^6.22.0" - babel-types "^6.22.0" + babel-traverse "^6.23.0" + babel-types "^6.23.0" babylon "^6.11.0" lodash "^4.2.0" -babel-traverse@^6.18.0, babel-traverse@^6.22.0, babel-traverse@^6.22.1, babel-traverse@^6.7.3: - version "6.22.1" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.22.1.tgz#3b95cd6b7427d6f1f757704908f2fc9748a5f59f" +babel-traverse@^6.18.0, babel-traverse@^6.22.0, babel-traverse@^6.23.0, babel-traverse@^6.23.1, babel-traverse@^6.7.3: + version "6.23.1" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.23.1.tgz#d3cb59010ecd06a97d81310065f966b699e14f48" dependencies: babel-code-frame "^6.22.0" - babel-messages "^6.22.0" + babel-messages "^6.23.0" babel-runtime "^6.22.0" - babel-types "^6.22.0" + babel-types "^6.23.0" babylon "^6.15.0" debug "^2.2.0" globals "^9.0.0" invariant "^2.2.0" lodash "^4.2.0" -babel-types@^6.18.0, babel-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.22.0.tgz#2a447e8d0ea25d2512409e4175479fd78cc8b1db" +babel-types@^6.18.0, babel-types@^6.22.0, babel-types@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf" dependencies: babel-runtime "^6.22.0" esutils "^2.0.2" @@ -529,6 +530,18 @@ boxen@^0.6.0: string-width "^1.0.1" widest-line "^1.0.0" +boxen@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.0.0.tgz#b2694baf1f605f708ff0177c12193b22f29aaaab" + dependencies: + ansi-align "^1.1.0" + camelcase "^4.0.0" + chalk "^1.1.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^0.1.0" + widest-line "^1.0.0" + brace-expansion@^1.0.0: version "1.1.6" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" @@ -603,6 +616,10 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" +camelcase@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.0.0.tgz#8b0f90d44be5e281b903b9887349b92595ef07f2" + capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" @@ -762,13 +779,24 @@ configstore@^2.0.0: write-file-atomic "^1.1.2" xdg-basedir "^2.0.0" +configstore@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.0.0.tgz#e1b8669c1803ccc50b545e92f8e6e79aa80e0196" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + unique-string "^1.0.0" + write-file-atomic "^1.1.2" + xdg-basedir "^3.0.0" + content-type-parser@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" -convert-source-map@^1.1.0, convert-source-map@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" +convert-source-map@^1.1.0, convert-source-map@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.4.0.tgz#e3dad195bf61bfe13a7a3c73e9876ec14a0268f3" core-js@^2.4.0: version "2.4.1" @@ -789,12 +817,19 @@ crc@^3.4.4: version "3.4.4" resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b" -create-error-class@^3.0.1: +create-error-class@^3.0.0, create-error-class@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" dependencies: capture-stack-trace "^1.0.0" +cross-spawn-async@^2.1.1: + version "2.2.5" + resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc" + dependencies: + lru-cache "^4.0.0" + which "^1.2.8" + cross-spawn@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" @@ -812,6 +847,10 @@ crypto-browserify@1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-1.0.9.tgz#cc5449685dfb85eb11c9828acc7cb87ab5bbfcc0" +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.2" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" @@ -925,12 +964,22 @@ dot-prop@^3.0.0: dependencies: is-obj "^1.0.0" +dot-prop@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.1.0.tgz#eb29eac57dfa31fda1edef50ea462ee3d38ff3ab" + dependencies: + is-obj "^1.0.0" + duplexer2@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" dependencies: readable-stream "^2.0.2" +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" @@ -1023,6 +1072,17 @@ exec-sh@^0.2.0: dependencies: merge "^1.1.3" +execa@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.4.0.tgz#4eb6467a36a095fabb2970ff9d5e3fb7bce6ebc3" + dependencies: + cross-spawn-async "^2.1.1" + is-stream "^1.1.0" + npm-run-path "^1.0.0" + object-assign "^4.0.1" + path-key "^1.0.0" + strip-eof "^1.0.0" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -1167,6 +1227,10 @@ get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + getpass@^0.1.1: version "0.1.6" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" @@ -1231,6 +1295,22 @@ got@^5.0.0: unzip-response "^1.0.2" url-parse-lax "^1.0.0" +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -1478,7 +1558,7 @@ is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" -is-stream@^1.0.0: +is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -1865,6 +1945,12 @@ latest-version@^2.0.0: dependencies: package-json "^2.0.0" +latest-version@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.0.0.tgz#3104f008c0c391084107f85a344bc61e38970649" + dependencies: + package-json "^3.0.0" + lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" @@ -1873,6 +1959,10 @@ lazy-req@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" +lazy-req@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-2.0.0.tgz#c9450a363ecdda2e6f0c70132ad4f37f8f06f2b4" + lazystream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" @@ -2031,7 +2121,7 @@ lowercase-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" -lru-cache@^4.0.1: +lru-cache@^4.0.0, lru-cache@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" dependencies: @@ -2226,6 +2316,12 @@ normalize-path@^2.0.0, normalize-path@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" +npm-run-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-1.0.0.tgz#f5c32bf595fe81ae927daec52e82f8b000ac3c8f" + dependencies: + path-key "^1.0.0" + nugget@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" @@ -2337,6 +2433,15 @@ package-json@^2.0.0: registry-url "^3.0.3" semver "^5.1.0" +package-json@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-3.0.0.tgz#dc11f79ebdb436e55fe2b9b294ee3f2a87a33b13" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + parse-color@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619" @@ -2376,6 +2481,10 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" +path-key@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-1.0.0.tgz#5d53d578019646c0d68800db4e146e6bdc2ac7af" + path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" @@ -2679,6 +2788,10 @@ rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + sane@~1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/sane/-/sane-1.4.1.tgz#88f763d74040f5f0c256b6163db399bf110ac715" @@ -2852,6 +2965,10 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" @@ -2895,6 +3012,12 @@ tar-stream@^1.5.0: readable-stream "^2.0.0" xtend "^4.0.0" +term-size@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-0.1.1.tgz#87360b96396cab5760963714cda0d0cbeecad9ca" + dependencies: + execa "^0.4.0" + test-exclude@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-3.3.0.tgz#7a17ca1239988c98367b0621456dbb7d4bc38977" @@ -2928,6 +3051,10 @@ timed-out@^3.0.0: version "3.1.3" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + tmp@^0.0.31: version "0.0.31" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" @@ -2966,6 +3093,10 @@ trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" @@ -3031,11 +3162,21 @@ uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + unzip-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" -update-notifier@^1.0.2, update-notifier@^1.0.3: +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +update-notifier@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" dependencies: @@ -3048,6 +3189,19 @@ update-notifier@^1.0.2, update-notifier@^1.0.3: semver-diff "^2.0.0" xdg-basedir "^2.0.0" +update-notifier@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.0.0.tgz#1f2712fd2079f415980b5af95eb120e4aceea9a6" + dependencies: + boxen "^1.0.0" + chalk "^1.0.0" + configstore "^3.0.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + lazy-req "^2.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" @@ -3135,7 +3289,7 @@ which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" -which@^1.0.5, which@^1.1.1, which@^1.2.9: +which@^1.0.5, which@^1.1.1, which@^1.2.8, which@^1.2.9: version "1.2.12" resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" dependencies: @@ -3203,6 +3357,10 @@ xdg-basedir@^2.0.0: dependencies: os-homedir "^1.0.0" +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + xml-name-validator@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635"