diff --git a/lerna.json b/lerna.json index 94b97ed6102..8e42d33fb49 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "lerna": "2.0.0-beta.37", + "lerna": "2.0.0-beta.38", "packages": [ "packages/*" ], diff --git a/package.json b/package.json index 4005bc2256e..357b389d90c 100644 --- a/package.json +++ b/package.json @@ -27,10 +27,9 @@ "///": "all dependencies for all packages (hoisted)", "dependencies": { "7zip-bin": "^2.0.4", - "ajv": "^5.0.2-beta", - "ajv-keywords": "^2.0.1-beta.0", + "ajv": "^5.0.3-beta", + "ajv-keywords": "^2.0.1-beta.1", "archiver": "^1.3.0", - "asar": "~0.13.0", "aws-sdk": "^2.22.0", "bluebird-lst": "^1.0.1", "chalk": "^1.1.3", @@ -44,7 +43,7 @@ "ini": "^1.3.4", "is-ci": "^1.0.10", "isbinaryfile": "^3.0.2", - "js-yaml": "^3.8.1", + "js-yaml": "^3.8.2", "mime": "^1.3.4", "minimatch": "^3.0.3", "node-emoji": "^1.5.1", @@ -56,10 +55,10 @@ "sanitize-filename": "^1.6.1", "semver": "^5.3.0", "stat-mode": "^0.2.2", - "tunnel-agent": "^0.4.3", + "tunnel-agent": "^0.6.0", "update-notifier": "^2.1.0", "uuid-1345": "^0.99.6", - "yargs": "^6.6.0" + "yargs": "^7.0.1" }, "devDependencies": { "@types/electron": "^1.4.33", @@ -84,11 +83,10 @@ "jest-environment-node-debug": "^2.0.0", "jest-junit": "^1.2.0", "jsdoc": "^3.4.3", - "lerna": "2.0.0-beta.37", "path-sort": "^0.1.0", "source-map-support": "^0.4.11", "ts-babel": "^1.4.4", - "tslint": "^4.5.0", + "tslint": "^4.5.1", "typescript": "^2.2.1", "typescript-json-schema": "0.10.0", "whitespace": "^2.1.0", diff --git a/packages/electron-builder-util/package.json b/packages/electron-builder-util/package.json index b565820058a..429ea8dd029 100644 --- a/packages/electron-builder-util/package.json +++ b/packages/electron-builder-util/package.json @@ -22,7 +22,7 @@ "source-map-support": "^0.4.11", "7zip-bin": "^2.0.4", "ini": "^1.3.4", - "tunnel-agent": "^0.4.3" + "tunnel-agent": "^0.6.0" }, "typings": "./out/electron-builder-util.d.ts" } diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index 61317aa6dd9..9ebc1287b61 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -44,10 +44,9 @@ "bugs": "/~https://github.com/electron-userland/electron-builder/issues", "homepage": "/~https://github.com/electron-userland/electron-builder", "dependencies": { - "ajv": "^5.0.2-beta", - "ajv-keywords": "^2.0.1-beta.0", + "ajv": "^5.0.3-beta", + "ajv-keywords": "^2.0.1-beta.1", "7zip-bin": "^2.0.4", - "asar": "~0.13.0", "bluebird-lst": "^1.0.1", "chalk": "^1.1.3", "chromium-pickle-js": "^0.2.0", @@ -62,7 +61,7 @@ "hosted-git-info": "^2.2.0", "is-ci": "^1.0.10", "isbinaryfile": "^3.0.2", - "js-yaml": "^3.8.1", + "js-yaml": "^3.8.2", "minimatch": "^3.0.3", "normalize-package-data": "^2.3.5", "parse-color": "^1.0.0", @@ -71,7 +70,7 @@ "semver": "^5.3.0", "update-notifier": "^2.1.0", "uuid-1345": "^0.99.6", - "yargs": "^6.6.0", + "yargs": "^7.0.1", "node-forge": "^0.7.0" }, "typings": "./out/electron-builder.d.ts", diff --git a/packages/electron-builder/src/asar.ts b/packages/electron-builder/src/asar.ts new file mode 100644 index 00000000000..a5c07f363e0 --- /dev/null +++ b/packages/electron-builder/src/asar.ts @@ -0,0 +1,168 @@ +import { createFromBuffer } from "chromium-pickle-js" +import { close, open, read, readFile, Stats } from "fs-extra-p" +import * as path from "path" +const UINT64 = require("cuint").UINT64 + +export class Node { + // we don't use Map because later it will be stringified + files?: { [key: string]: Node } + + unpacked?: boolean + + size: number + offset: number + + executable?: boolean + + link?: string +} + +export class AsarFilesystem { + private offset = UINT64(0) + + constructor (readonly src: string, readonly header = new Node(), readonly headerSize: number = -1) { + if (this.header.files == null) { + this.header.files = {} + } + } + + searchNodeFromDirectory(p: string): Node { + let node = this.header + for (const dir of p.split(path.sep)) { + if (dir !== ".") { + node = node.files![dir]! + } + } + return node + } + + getOrCreateNode(p: string): Node { + p = path.relative(this.src, p) + if (p == null || p.length === 0) { + return this.header + } + + const name = path.basename(p) + const dirNode = this.searchNodeFromDirectory(path.dirname(p)) + if (dirNode.files == null) { + dirNode.files = {} + } + + let result = dirNode.files[name] + if (result == null) { + result = new Node() + dirNode.files[name] = result + } + return result + } + + insertDirectory(p: string, unpacked: boolean = false) { + const node = this.getOrCreateNode(p) + node.files = {} + if (unpacked) { + node.unpacked = unpacked + } + return node.files + } + + insertFileNode(node: Node, stat: Stats, file: string) { + if (node.size > 4294967295) { + throw new Error(`${file}: file size can not be larger than 4.2GB`) + } + + node.offset = this.offset.toString() + if (process.platform !== "win32" && (stat.mode & 0o100)) { + node.executable = true + } + this.offset.add(UINT64(node.size)) + } + + // listFiles() { + // const files: Array = [] + // const fillFilesFromHeader = (p: string, json: Node) => { + // if (json.files == null) { + // return + // } + // + // for (const f in json.files) { + // const fullPath = path.join(p, f) + // files.push(fullPath) + // fillFilesFromHeader(fullPath, json.files[f]!) + // } + // } + // + // fillFilesFromHeader("/", this.header) + // return files + // } + + getNode(p: string) { + const node = this.searchNodeFromDirectory(path.dirname(p)) + return node.files![path.basename(p)] + } + + getFile(p: string, followLinks: boolean = true): Node { + const info = this.getNode(p)! + // if followLinks is false we don't resolve symlinks + return followLinks && info.link != null ? this.getFile(info.link) : info + } + + async readJson(file: string): Promise { + return JSON.parse((await this.readFile(file)).toString()) + } + + async readFile(file: string): Promise { + return await readFileFromAsar(this, file, this.getFile(file)) + } +} + +export async function readAsar(archive: string): Promise { + const fd = await open(archive, "r") + let size + let headerBuf + try { + const sizeBuf = new Buffer(8) + if (await read(fd, sizeBuf, 0, 8, null) !== 8) { + throw new Error("Unable to read header size") + } + + const sizePickle = createFromBuffer(sizeBuf) + size = sizePickle.createIterator().readUInt32() + headerBuf = new Buffer(size) + if (await read(fd, headerBuf, 0, size, null) !== size) { + throw new Error("Unable to read header") + } + } + finally { + await close(fd) + } + + const headerPickle = createFromBuffer(headerBuf!) + const header = headerPickle.createIterator().readString() + return new AsarFilesystem(archive, JSON.parse(header), size) +} + +export async function readAsarJson(archive: string, file: string): Promise { + const fs = await readAsar(archive) + return await fs.readJson(file) +} + +async function readFileFromAsar(filesystem: AsarFilesystem, filename: string, info: Node): Promise { + let buffer = new Buffer(info.size) + if (info.size <= 0) { + return buffer + } + + if (info.unpacked) { + return await readFile(path.join(`${filesystem.src}.unpacked`, filename)) + } + + const fd = await open(filesystem.src, "r") + try { + const offset = 8 + filesystem.headerSize + parseInt(info.offset) + await read(fd, buffer, 0, info.size, offset) + } + finally { + await close(fd) + } + return buffer +} diff --git a/packages/electron-builder/src/asarUtil.ts b/packages/electron-builder/src/asarUtil.ts index 3b98d138ccb..4a0f85e7465 100644 --- a/packages/electron-builder/src/asarUtil.ts +++ b/packages/electron-builder/src/asarUtil.ts @@ -1,4 +1,3 @@ -import { AsarFileInfo, listPackage, statFile } from "asar" import BluebirdPromise from "bluebird-lst" import { debug } from "electron-builder-util" import { deepAssign } from "electron-builder-util/out/deepAssign" @@ -6,12 +5,11 @@ import { CONCURRENCY, FileCopier, Filter, MAX_FILE_REQUESTS, statOrNull, walk } import { log } from "electron-builder-util/out/log" import { createReadStream, createWriteStream, ensureDir, readFile, readJson, readlink, stat, Stats, writeFile } from "fs-extra-p" import * as path from "path" +import { AsarFilesystem, Node, readAsar } from "./asar" import { AsarOptions } from "./metadata" const isBinaryFile: any = BluebirdPromise.promisify(require("isbinaryfile")) const pickle = require ("chromium-pickle-js") -const Filesystem = require("asar/lib/filesystem") -const UINT64 = require("cuint").UINT64 const NODE_MODULES_PATTERN = `${path.sep}node_modules${path.sep}` @@ -51,7 +49,7 @@ function writeUnpackedFiles(filesToUnpack: Array, fileCopier: class AsarPackager { private readonly toPack: Array = [] - private readonly fs = new Filesystem(this.src) + private readonly fs = new AsarFilesystem(this.src) private readonly changedFiles = new Map() private readonly outFile: string @@ -188,7 +186,7 @@ class AsarPackager { const stat = metadata.get(file)! if (stat.isFile()) { const fileParent = path.dirname(file) - const dirNode = this.fs.searchNodeFromPath(fileParent) + const dirNode = this.fs.getOrCreateNode(fileParent) const packageDataPromise = fileIndexToModulePackageData.get(i) let newData: string | null = null if (packageDataPromise == null) { @@ -213,7 +211,7 @@ class AsarPackager { } const fileSize = newData == null ? stat.size : Buffer.byteLength(newData) - const node = this.fs.searchNodeFromPath(file) + const node = this.fs.getOrCreateNode(file) node.size = fileSize if (dirNode.unpacked || (this.unpackPattern != null && this.unpackPattern(file, stat))) { node.unpacked = true @@ -234,18 +232,8 @@ class AsarPackager { if (newData != null) { this.changedFiles.set(file, newData) } - - if (fileSize > 4294967295) { - throw new Error(`${file}: file size can not be larger than 4.2GB`) - } - - node.offset = this.fs.offset.toString() - //noinspection JSBitwiseOperatorUsage - if (process.platform !== "win32" && stat.mode & 0x40) { - node.executable = true - } + this.fs.insertFileNode(node, stat, file) this.toPack.push(file) - this.fs.offset.add(UINT64(fileSize)) } } else if (stat.isDirectory()) { @@ -268,7 +256,7 @@ class AsarPackager { this.fs.insertDirectory(file, unpacked) } else if (stat.isSymbolicLink()) { - this.fs.searchNodeFromPath(file).link = (stat).relativeLink + this.fs.getOrCreateNode(file).link = (stat).relativeLink } } @@ -289,7 +277,7 @@ class AsarPackager { const writeStream = createWriteStream(this.outFile) return new BluebirdPromise((resolve, reject) => { writeStream.on("error", reject) - writeStream.once("finish", resolve) + writeStream.on("close", resolve) writeStream.write(sizeBuf) let w: (list: Array, index: number) => void @@ -386,9 +374,17 @@ export async function checkFileInArchive(asarFile: string, relativeFile: string, return new Error(`${messagePrefix} "${relativeFile}" in the "${asarFile}" ${text}`) } - let stat: AsarFileInfo | null + let fs + try { + fs = await readAsar(asarFile) + } + catch (e) { + throw error(`is corrupted: ${e}`) + } + + let stat: Node | null try { - stat = statFile(asarFile, relativeFile) + stat = fs.getFile(relativeFile) } catch (e) { const fileStat = await statOrNull(asarFile) @@ -396,13 +392,6 @@ export async function checkFileInArchive(asarFile: string, relativeFile: string, throw error(`does not exist. Seems like a wrong configuration.`) } - try { - listPackage(asarFile) - } - catch (e) { - throw error(`is corrupted: ${e}`) - } - // asar throws error on access to undefined object (info.link) stat = null } diff --git a/packages/electron-builder/src/packager.ts b/packages/electron-builder/src/packager.ts index 82acf31210d..b40ca1245ab 100644 --- a/packages/electron-builder/src/packager.ts +++ b/packages/electron-builder/src/packager.ts @@ -1,4 +1,3 @@ -import { extractFile } from "asar" import BluebirdPromise from "bluebird-lst" import { Arch, Platform, Target } from "electron-builder-core" import { CancellationToken } from "electron-builder-http/out/CancellationToken" @@ -12,6 +11,7 @@ import { ensureDir } from "fs-extra-p" import * as path from "path" import { lt as isVersionLessThan } from "semver" import { AppInfo } from "./appInfo" +import { readAsarJson } from "./asar" import MacPackager from "./macPackager" import { AfterPackContext, Config, Metadata } from "./metadata" import { ArtifactCreated, BuildInfo, PackagerOptions, SourceRepositoryInfo } from "./packagerApi" @@ -173,9 +173,9 @@ export class Packager implements BuildInfo { } try { - const file = extractFile(path.join(this.projectDir, "app.asar"), "package.json") - if (file != null) { - this.metadata = JSON.parse(file.toString()) + const data = await readAsarJson(path.join(this.projectDir, "app.asar"), "package.json") + if (data != null) { + this.metadata = data this._isPrepackedAppAsar = true return } diff --git a/packages/electron-builder/src/targets/appImage.ts b/packages/electron-builder/src/targets/appImage.ts index 6db8235bbac..5911d93f4f5 100644 --- a/packages/electron-builder/src/targets/appImage.ts +++ b/packages/electron-builder/src/targets/appImage.ts @@ -85,7 +85,7 @@ export default class AppImageTarget extends Target { rd.on("error", reject) const wr = createWriteStream(resultFile, {flags: "r+"}) wr.on("error", reject) - wr.on("finish", resolve) + wr.on("close", resolve) rd.pipe(wr) }) diff --git a/packages/electron-builder/src/util/readPackageJson.ts b/packages/electron-builder/src/util/readPackageJson.ts index 53b11d2a60a..50972850a5c 100644 --- a/packages/electron-builder/src/util/readPackageJson.ts +++ b/packages/electron-builder/src/util/readPackageJson.ts @@ -1,9 +1,9 @@ import Ajv from "ajv" -import { extractFile } from "asar" import { log, warn } from "electron-builder-util/out/log" import { readFile, readJson } from "fs-extra-p" import { safeLoad } from "js-yaml" import * as path from "path" +import { readAsarJson } from "../asar" import { Config } from "../metadata" import AdditionalPropertiesParams = ajv.AdditionalPropertiesParams import ErrorObject = ajv.ErrorObject @@ -71,9 +71,9 @@ export async function loadConfig(projectDir: string): Promise { } try { - const file = extractFile(path.join(projectDir, "app.asar"), "package.json") - if (file != null) { - return getConfigFromPackageData(JSON.parse(file.toString())) + const data = await readAsarJson(path.join(projectDir, "app.asar"), "package.json") + if (data != null) { + return getConfigFromPackageData(data) } } catch (e) { diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index 6f49bea6285..bf21594f6a2 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -14,7 +14,7 @@ "dependencies": { "bluebird-lst": "^1.0.1", "fs-extra-p": "^4.0.2", - "js-yaml": "^3.8.1", + "js-yaml": "^3.8.2", "semver": "^5.3.0", "source-map-support": "^0.4.11", "electron-builder-http": "0.0.0-semantic-release" diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index d7989dd08d4..193439d0b2a 100644 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -1,6 +1,6 @@ -import { extractFile } from "asar" import BluebirdPromise from "bluebird-lst" import { Arch, BuildOptions, DIR_TARGET, Platform } from "electron-builder" +import { readAsarJson } from "electron-builder/out/asar" import { normalizeOptions } from "electron-builder/out/builder" import { createYargs } from "electron-builder/out/cli/cliOptions" import { checkWineVersion } from "electron-builder/out/packager" @@ -161,11 +161,10 @@ test.ifDevOrLinuxCi("smart unpack", app({ "edge-cs": "^1.0.0" } }), - packed: context => { - expect(JSON.parse(extractFile(path.join(context.getResources(Platform.LINUX), "app.asar"), "node_modules/debug/package.json").toString())).toMatchObject({ + packed: async context => { + expect(await readAsarJson(path.join(context.getResources(Platform.LINUX), "app.asar"), "node_modules/debug/package.json")).toMatchObject({ name: "debug" }) - return BluebirdPromise.resolve() } })) diff --git a/test/src/extraMetadataTest.ts b/test/src/extraMetadataTest.ts index 12879699dce..f439fb2b5ac 100644 --- a/test/src/extraMetadataTest.ts +++ b/test/src/extraMetadataTest.ts @@ -1,5 +1,5 @@ -import { extractFile } from "asar" import { DIR_TARGET, Platform } from "electron-builder" +import { readAsarJson } from "electron-builder/out/asar" import * as path from "path" import { assertThat } from "./helpers/fileAssert" import { app, appTwo, appTwoThrows, modifyPackageJson } from "./helpers/packTester" @@ -27,7 +27,7 @@ test.ifDevOrLinuxCi("extra metadata", app({ }), packed: async context => { await assertThat(path.join(context.getContent(Platform.LINUX), "new-name")).isFile() - expect(JSON.parse(extractFile(path.join(context.getResources(Platform.LINUX), "app.asar"), "package.json").toString())).toMatchSnapshot() + expect(await readAsarJson(path.join(context.getResources(Platform.LINUX), "app.asar"), "package.json")).toMatchSnapshot() } })) diff --git a/test/src/globTest.ts b/test/src/globTest.ts index 293b58a4339..aeee59b293c 100644 --- a/test/src/globTest.ts +++ b/test/src/globTest.ts @@ -1,6 +1,6 @@ -import { statFile } from "asar" import BluebirdPromise from "bluebird-lst" import { DIR_TARGET, Platform } from "electron-builder" +import { readAsar } from "electron-builder/out/asar" import { mkdirs, outputFile, symlink, writeFile } from "fs-extra-p" import * as path from "path" import { assertThat } from "./helpers/fileAssert" @@ -57,7 +57,7 @@ test.ifNotWindows("link", app({ return symlink(path.join(projectDir, "index.js"), path.join(projectDir, "foo.js")) }, packed: async context => { - expect(statFile(path.join(context.getResources(Platform.LINUX), "app.asar"), "foo.js", false)).toMatchSnapshot() + expect((await readAsar(path.join(context.getResources(Platform.LINUX), "app.asar"))).getFile("foo.js", false)).toMatchSnapshot() }, })) @@ -70,7 +70,7 @@ test.ifNotWindows("outside link", app({ await symlink(tempDir, path.join(projectDir, "o-dir")) }, packed: async context => { - expect(statFile(path.join(context.getResources(Platform.LINUX), "app.asar"), "o-dir/foo", false)).toMatchSnapshot() + expect((await readAsar(path.join(context.getResources(Platform.LINUX), "app.asar"))).getFile("o-dir/foo", false)).toMatchSnapshot() }, })) diff --git a/test/src/helpers/winHelper.ts b/test/src/helpers/winHelper.ts index ac552f77761..55ca82a69f5 100644 --- a/test/src/helpers/winHelper.ts +++ b/test/src/helpers/winHelper.ts @@ -1,7 +1,7 @@ -import { extractFile } from "asar" import BluebirdPromise from "bluebird-lst" import { Arch, Platform } from "electron-builder-core" import { walk } from "electron-builder-util/out/fs" +import { readAsarJson } from "electron-builder/out/asar" import { outputFile, readFile } from "fs-extra-p" import { safeLoad } from "js-yaml" import * as path from "path" @@ -47,7 +47,7 @@ export async function doTest(outDir: string, perUser: boolean, productFilename = } const appAsar = path.join(instDir, name, "resources", "app.asar") - expect(JSON.parse(extractFile(appAsar, "package.json").toString())).toMatchObject({ + expect(await readAsarJson(appAsar, "package.json")).toMatchObject({ name: name, }) diff --git a/test/vendor/yarn.js b/test/vendor/yarn.js index f8b7c673d61..428109e545e 100755 --- a/test/vendor/yarn.js +++ b/test/vendor/yarn.js @@ -753,7 +753,12 @@ let symlink = exports.symlink = (() => { yield fsSymlink(src, dest, 'junction'); } else { // use relative paths otherwise which will be retained if the directory is moved - const relative = path.relative(fs.realpathSync(path.dirname(dest)), fs.realpathSync(src)); + let relative; + if (yield exists(src)) { + relative = path.relative(fs.realpathSync(path.dirname(dest)), fs.realpathSync(src)); + } else { + relative = path.relative(path.dirname(dest), src); + } yield fsSymlink(relative, dest); } } catch (err) { @@ -35651,7 +35656,7 @@ Identity._oldVersionDetect = function (obj) { module.exports = { "name": "yarn", "installationMethod": "unknown", - "version": "0.21.2", + "version": "0.21.3", "license": "BSD-2-Clause", "preferGlobal": true, "description": "📦🐈 Fast, reliable, and secure dependency management.", diff --git a/typings/asar.d.ts b/typings/asar.d.ts deleted file mode 100644 index a750e93ba2c..00000000000 --- a/typings/asar.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -declare module "asar" { - interface AsarFileInfo { - offset: number - size: number - } - - export function listPackage(archive: string): Array - - // followLinks defaults to true - export function statFile(archive: string, filename: string, followLinks?: boolean): AsarFileInfo | null - - export function extractFile(archive: string, filename: string): Buffer | null - - // export function createPackageFromFiles(src: string, dest: string, filenames: Array, metadata: { [key: string]: AsarFileMetadata;}, options: AsarOptions, callback: (error?: Error) => void): void -} \ No newline at end of file diff --git a/typings/chromium-pickle-js.d.ts b/typings/chromium-pickle-js.d.ts new file mode 100644 index 00000000000..42cba8cc3cd --- /dev/null +++ b/typings/chromium-pickle-js.d.ts @@ -0,0 +1,3 @@ +declare module "chromium-pickle-js" { + function createFromBuffer(buffer: Buffer): any +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 34f0e46e6ee..3e3329657b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -90,13 +90,20 @@ acorn@^4.0.4: version "4.0.11" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" -ajv-keywords@^2.0.1-beta.0: - version "2.0.1-beta.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.0.1-beta.0.tgz#aa242a131ae362b8bf72ff9ad07b24d0918cdfab" +ajv-keywords@^2.0.1-beta.1: + version "2.0.1-beta.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.0.1-beta.1.tgz#f724f5495a1c71b09d1772560df8a4c5a4d018a5" -ajv@^5.0.2-beta: - version "5.0.2-beta.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.0.2-beta.0.tgz#0d760d028bb655b2680486bc9f4c53b584fcee97" +ajv@^4.9.1: + version "4.11.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.4.tgz#ebf3a55d4b132ea60ff5847ae85d2ef069960b45" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.0.3-beta: + version "5.0.3-beta.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.0.3-beta.0.tgz#4ee44b57ab3bb43bc00fe727af9b350c9d9712fa" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" @@ -119,7 +126,7 @@ ansi-align@^1.1.0: dependencies: string-width "^1.0.1" -ansi-escapes@^1.1.0, ansi-escapes@^1.4.0: +ansi-escapes@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" @@ -207,19 +214,6 @@ arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" -asar@~0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/asar/-/asar-0.13.0.tgz#df33dd9d01bff842464d0d9f095740d4a62afb14" - dependencies: - chromium-pickle-js "^0.2.0" - commander "^2.9.0" - cuint "^0.2.1" - glob "^6.0.4" - minimatch "^3.0.3" - mkdirp "^0.5.0" - mksnapshot "^0.3.0" - tmp "0.0.28" - asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" @@ -232,7 +226,7 @@ assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" -async@^1.4.0, async@^1.4.2, async@^1.5.0: +async@^1.4.0, async@^1.4.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -242,10 +236,6 @@ async@^2.0.0, async@^2.1.4: dependencies: lodash "^4.14.0" -async@~0.2.6: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -542,7 +532,11 @@ bluebird-lst@^1.0.1: dependencies: bluebird "^3.4.7" -bluebird@^3.4.7, bluebird@~3.4.6: +bluebird@^3.4.7: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + +bluebird@~3.4.6: version "3.4.7" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" @@ -652,9 +646,9 @@ 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" -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" catharsis@~0.8.8: version "0.8.8" @@ -697,16 +691,6 @@ cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - dependencies: - restore-cursor "^2.0.0" - -cli-width@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" - cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" @@ -723,13 +707,6 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -cmd-shim@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" - dependencies: - graceful-fs "^4.1.2" - mkdirp "~0.5.0" - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -762,16 +739,6 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -command-join@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/command-join/-/command-join-2.0.0.tgz#52e8b984f4872d952ff1bdc8b98397d27c7144cf" - -commander@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - compare-version@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" @@ -840,13 +807,6 @@ cross-spawn-async@^2.1.1: 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" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -871,7 +831,7 @@ cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": dependencies: cssom "0.3.x" -cuint@^0.2.1, cuint@^0.2.2: +cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -897,7 +857,7 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" -decompress-zip@0.3.0, decompress-zip@^0.3.0: +decompress-zip@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/decompress-zip/-/decompress-zip-0.3.0.tgz#ae3bcb7e34c65879adfe77e19c30f86602b4bdb0" dependencies: @@ -1035,12 +995,12 @@ entities@~1.1.1: prr "~0.0.0" error-ex@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" dependencies: is-arrayish "^0.2.1" -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -1111,12 +1071,6 @@ extend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" -external-editor@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.1.tgz#4c597c6c88fa6410e41dbbaa7b1be2336aa31095" - dependencies: - tmp "^0.0.31" - extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" @@ -1143,12 +1097,6 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - dependencies: - escape-string-regexp "^1.0.5" - filename-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" @@ -1190,8 +1138,8 @@ findup-sync@~0.3.0: glob "~5.0.0" for-in@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.1.tgz#d6c3e3798ceaaa301047b109dedf1b1ae37a0efa" + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" for-own@^0.1.4: version "0.1.5" @@ -1218,16 +1166,6 @@ fs-extra-p@^4.0.2: bluebird-lst "^1.0.1" fs-extra "^2.0.0" -fs-extra@0.26.7: - version "0.26.7" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - fs-extra@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.0.0.tgz#337352bded4a0b714f3eb84de8cea765e9d37600" @@ -1239,16 +1177,6 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -1280,17 +1208,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -1335,10 +1253,6 @@ graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -1353,14 +1267,16 @@ handlebars@^4.0.3: optionalDependencies: uglify-js "^2.6" -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" + ajv "^4.9.1" + har-schema "^1.0.5" has-ansi@^2.0.0: version "2.0.0" @@ -1443,24 +1359,6 @@ ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" -inquirer@^3.0.1: - version "3.0.5" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.5.tgz#172cabc8eacbfb91d595f5d7c354b446b8141f65" - dependencies: - ansi-escapes "^1.1.0" - chalk "^1.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.1" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx "^4.1.0" - string-width "^2.0.0" - strip-ansi "^3.0.0" - through "^2.3.6" - invariant@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" @@ -1531,15 +1429,6 @@ is-glob@^2.0.0, is-glob@^2.0.1: dependencies: is-extglob "^1.0.0" -is-my-json-valid@^2.12.4: - version "2.16.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" @@ -1562,14 +1451,6 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" @@ -1901,9 +1782,9 @@ js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" -js-yaml@^3.4.2, js-yaml@^3.7.0, js-yaml@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.1.tgz#782ba50200be7b9e5a8537001b7804db3ad02628" +js-yaml@^3.4.2, js-yaml@^3.7.0, js-yaml@^3.8.2: + version "3.8.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.2.tgz#02d3e2c0f6beab20248d412c352203827d786721" dependencies: argparse "^1.0.7" esprima "^3.1.1" @@ -1989,10 +1870,6 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - jsprim@^1.2.2: version "1.3.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" @@ -2007,7 +1884,7 @@ kind-of@^3.0.2: dependencies: is-buffer "^1.0.2" -klaw@^1.0.0, klaw@~1.3.0: +klaw@~1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" optionalDependencies: @@ -2039,31 +1916,6 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" -lerna@2.0.0-beta.37: - version "2.0.0-beta.37" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.0.0-beta.37.tgz#d8e1d25a75102658b12565e4aa12e0423e969aad" - dependencies: - async "^1.5.0" - chalk "^1.1.1" - cmd-shim "^2.0.2" - command-join "^2.0.0" - cross-spawn "^4.0.0" - glob "^7.0.6" - inquirer "^3.0.1" - lodash "^4.17.4" - meow "^3.7.0" - minimatch "^3.0.0" - mkdirp "^0.5.1" - normalize-path "^2.0.1" - object-assign-sorted "^2.0.1" - path-exists "^2.1.0" - progress "^1.1.8" - read-cmd-shim "^1.0.1" - rimraf "^2.4.4" - semver "^5.1.0" - signal-exit "^3.0.2" - sync-exec "^0.6.2" - leven@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" @@ -2098,7 +1950,7 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.8.0: +lodash@^4.0.0, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.5.1, lodash@^4.8.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -2127,7 +1979,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.0, lru-cache@^4.0.1: +lru-cache@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" dependencies: @@ -2166,7 +2018,7 @@ mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" -meow@^3.1.0, meow@^3.7.0: +meow@^3.1.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" dependencies: @@ -2217,11 +2069,7 @@ mime@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" -mimic-fn@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" - -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3: +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: @@ -2235,7 +2083,7 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -2245,22 +2093,10 @@ mkpath@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-0.1.0.tgz#7554a6f8d871834cc97b5462b122c4c124d6de91" -mksnapshot@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/mksnapshot/-/mksnapshot-0.3.1.tgz#2501c05657436d742ce958a4ff92c77e40dd37e6" - dependencies: - decompress-zip "0.3.0" - fs-extra "0.26.7" - request "^2.79.0" - ms@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -2343,12 +2179,6 @@ oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign-sorted@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object-assign-sorted/-/object-assign-sorted-2.0.1.tgz#c9983fa9e3ed5807b49cf1a9943378f245d9395b" - dependencies: - sorted-object "^2.0.0" - object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -2376,12 +2206,6 @@ once@~1.3.0: dependencies: wrappy "1" -onetime@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.0.tgz#52aa8110e52fc5126ffc667bd8ec21c2ed209ce6" - dependencies: - mimic-fn "^1.0.0" - optimist@^0.6.1, optimist@~0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -2410,7 +2234,7 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: +os-tmpdir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -2458,7 +2282,7 @@ parse5@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" -path-exists@^2.0.0, path-exists@^2.1.0: +path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" dependencies: @@ -2492,6 +2316,10 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -2558,10 +2386,6 @@ progress-stream@^1.1.0: speedometer "~0.1.2" through2 "~0.2.3" -progress@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" @@ -2606,12 +2430,6 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -read-cmd-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" - dependencies: - graceful-fs "^4.1.2" - read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -2693,17 +2511,17 @@ repeating@^2.0.0: is-finite "^1.0.0" request@^2.45.0, request@^2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + version "2.80.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.80.0.tgz#8cc162d76d79381cdefdd3505d76b80b60589bd0" dependencies: aws-sign2 "~0.6.0" aws4 "^1.2.1" - caseless "~0.11.0" + caseless "~0.12.0" combined-stream "~1.0.5" extend "~3.0.0" forever-agent "~0.6.1" form-data "~2.1.1" - har-validator "~2.0.6" + har-validator "~4.2.0" hawk "~3.1.3" http-signature "~1.1.0" is-typedarray "~1.0.0" @@ -2711,6 +2529,7 @@ request@^2.45.0, request@^2.79.0: json-stringify-safe "~5.0.1" mime-types "~2.1.7" oauth-sign "~0.8.1" + performance-now "^0.2.0" qs "~6.3.0" stringstream "~0.0.4" tough-cookie "~2.3.0" @@ -2745,35 +2564,18 @@ resolve@^1.1.7, resolve@^1.2.0: dependencies: path-parse "^1.0.5" -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" dependencies: align-text "^0.1.1" -rimraf@^2.2.8, rimraf@^2.4.3, rimraf@^2.4.4: +rimraf@^2.4.3, rimraf@^2.4.4: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: glob "^7.0.5" -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - dependencies: - is-promise "^2.1.0" - -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" @@ -2822,7 +2624,7 @@ shellwords@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14" -signal-exit@^3.0.0, signal-exit@^3.0.2: +signal-exit@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -2846,10 +2648,6 @@ sntp@1.x.x: dependencies: hoek "2.x.x" -sorted-object@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc" - source-map-support@^0.4.11, source-map-support@^0.4.2: version "0.4.11" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.11.tgz#647f939978b38535909530885303daf23279f322" @@ -2895,8 +2693,8 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa" + version "1.11.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.11.0.tgz#2d8d5ebb4a6fab28ffba37fa62a90f4a3ea59d77" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -2996,10 +2794,6 @@ symbol-tree@^3.2.1: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" -sync-exec@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/sync-exec/-/sync-exec-0.6.2.tgz#717d22cc53f0ce1def5594362f3a89a2ebb91105" - taffydb@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" @@ -3044,26 +2838,10 @@ through2@~0.2.3: readable-stream "~1.1.9" xtend "~2.1.1" -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - 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.28: - version "0.0.28" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" - dependencies: - os-tmpdir "~1.0.1" - -tmp@^0.0.31: - version "0.0.31" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" - dependencies: - os-tmpdir "~1.0.1" - tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -3119,9 +2897,9 @@ ts-babel@^1.4.4: markdown-it "^8.3.0" source-map-support "^0.4.11" -tslint@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.5.0.tgz#12b384a339d456ee1d3cc665f13f4e759bbe5d64" +tslint@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.5.1.tgz#05356871bef23a434906734006fc188336ba824b" dependencies: babel-code-frame "^6.20.0" colors "^1.1.2" @@ -3134,10 +2912,16 @@ tslint@^4.5.0: update-notifier "^2.0.0" tsutils@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.1.0.tgz#94e0c267624eeb1b63561ba8ec0bcff71b4e2872" + version "1.2.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.2.1.tgz#74101a75dbf435800614ccafa4cd89a8d41ea03e" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" -tunnel-agent@^0.4.3, tunnel-agent@~0.4.1: +tunnel-agent@~0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" @@ -3173,10 +2957,9 @@ uc.micro@^1.0.1, uc.micro@^1.0.3: resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192" uglify-js@^2.6: - version "2.7.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" + version "2.8.7" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.7.tgz#e0391911507b6d2e05697a528f1686e90a11b160" dependencies: - async "~0.2.6" source-map "~0.5.1" uglify-to-browserify "~1.0.0" yargs "~3.10.0" @@ -3305,7 +3088,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.1.1, which@^1.2.12, which@^1.2.8, which@^1.2.9: +which@^1.1.1, which@^1.2.12, which@^1.2.8: version "1.2.12" resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" dependencies: @@ -3437,6 +3220,12 @@ yargs-parser@^4.2.0: dependencies: camelcase "^3.0.0" +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + yargs@^6.0.0, yargs@^6.3.0, yargs@^6.6.0: version "6.6.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" @@ -3455,6 +3244,24 @@ yargs@^6.0.0, yargs@^6.3.0, yargs@^6.6.0: y18n "^3.2.1" yargs-parser "^4.2.0" +yargs@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.0.1.tgz#7b083da14f9bd9c0ec21477030658f120d995351" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"