From 1445f2845ca80ea89a1b70a79a4faac3aefcfd86 Mon Sep 17 00:00:00 2001 From: kirjs Date: Wed, 10 Apr 2019 18:15:22 -0400 Subject: [PATCH 01/16] Add ng-deploy --- .../actions/__tests__/deploy.spec.d.ts | 1 + .../builders/actions/__tests__/deploy.spec.js | 95 +++++++++ .../actions/__tests__/deploy.spec.js.map | 1 + .../builders/actions/__tests__/deploy.spec.ts | 99 ++++++++++ src/deploy/builders/actions/deploy.d.ts | 3 + src/deploy/builders/actions/deploy.js | 49 +++++ src/deploy/builders/actions/deploy.js.map | 1 + src/deploy/builders/actions/deploy.ts | 41 ++++ src/deploy/builders/builder.d.ts | 2 + src/deploy/builders/builder.js | 38 ++++ src/deploy/builders/builder.js.map | 1 + src/deploy/builders/builder.ts | 34 ++++ src/deploy/builders/schema.json | 6 + src/deploy/ng-add/index.d.ts | 7 + src/deploy/ng-add/index.js | 18 ++ src/deploy/ng-add/index.js.map | 1 + src/deploy/ng-add/index.ts | 26 +++ src/deploy/ng-add/ng-add.d.ts | 7 + src/deploy/ng-add/ng-add.js | 120 ++++++++++++ src/deploy/ng-add/ng-add.js.map | 1 + src/deploy/ng-add/ng-add.spec.d.ts | 1 + src/deploy/ng-add/ng-add.spec.js | 170 ++++++++++++++++ src/deploy/ng-add/ng-add.spec.js.map | 1 + src/deploy/ng-add/ng-add.spec.ts | 184 ++++++++++++++++++ src/deploy/ng-add/ng-add.ts | 153 +++++++++++++++ src/deploy/package.json | 38 ++++ src/deploy/shared/types.d.ts | 34 ++++ src/deploy/shared/types.js | 3 + src/deploy/shared/types.js.map | 1 + src/deploy/shared/types.ts | 45 +++++ src/deploy/shared/utils.d.ts | 4 + src/deploy/shared/utils.js | 54 +++++ src/deploy/shared/utils.js.map | 1 + src/deploy/shared/utils.ts | 61 ++++++ src/root.spec.js | 2 + 35 files changed, 1303 insertions(+) create mode 100644 src/deploy/builders/actions/__tests__/deploy.spec.d.ts create mode 100644 src/deploy/builders/actions/__tests__/deploy.spec.js create mode 100644 src/deploy/builders/actions/__tests__/deploy.spec.js.map create mode 100644 src/deploy/builders/actions/__tests__/deploy.spec.ts create mode 100644 src/deploy/builders/actions/deploy.d.ts create mode 100644 src/deploy/builders/actions/deploy.js create mode 100644 src/deploy/builders/actions/deploy.js.map create mode 100644 src/deploy/builders/actions/deploy.ts create mode 100644 src/deploy/builders/builder.d.ts create mode 100644 src/deploy/builders/builder.js create mode 100644 src/deploy/builders/builder.js.map create mode 100644 src/deploy/builders/builder.ts create mode 100644 src/deploy/builders/schema.json create mode 100644 src/deploy/ng-add/index.d.ts create mode 100644 src/deploy/ng-add/index.js create mode 100644 src/deploy/ng-add/index.js.map create mode 100644 src/deploy/ng-add/index.ts create mode 100644 src/deploy/ng-add/ng-add.d.ts create mode 100644 src/deploy/ng-add/ng-add.js create mode 100644 src/deploy/ng-add/ng-add.js.map create mode 100644 src/deploy/ng-add/ng-add.spec.d.ts create mode 100644 src/deploy/ng-add/ng-add.spec.js create mode 100644 src/deploy/ng-add/ng-add.spec.js.map create mode 100644 src/deploy/ng-add/ng-add.spec.ts create mode 100644 src/deploy/ng-add/ng-add.ts create mode 100644 src/deploy/package.json create mode 100644 src/deploy/shared/types.d.ts create mode 100644 src/deploy/shared/types.js create mode 100644 src/deploy/shared/types.js.map create mode 100644 src/deploy/shared/types.ts create mode 100644 src/deploy/shared/utils.d.ts create mode 100644 src/deploy/shared/utils.js create mode 100644 src/deploy/shared/utils.js.map create mode 100644 src/deploy/shared/utils.ts diff --git a/src/deploy/builders/actions/__tests__/deploy.spec.d.ts b/src/deploy/builders/actions/__tests__/deploy.spec.d.ts new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/src/deploy/builders/actions/__tests__/deploy.spec.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/deploy/builders/actions/__tests__/deploy.spec.js b/src/deploy/builders/actions/__tests__/deploy.spec.js new file mode 100644 index 000000000..71236a1ce --- /dev/null +++ b/src/deploy/builders/actions/__tests__/deploy.spec.js @@ -0,0 +1,95 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const deploy_1 = require("../deploy"); +const core_1 = require("@angular-devkit/core"); +let context; +let firebaseMock; +const FIREBASE_PROJECT = 'ikachu-aa3ef'; +const PROJECT = 'pirojok-project'; +describe('Deploy Angular apps', () => { + beforeEach(() => initMocks()); + it('should check if the user is authenticated by invoking list', () => __awaiter(this, void 0, void 0, function* () { + const spy = spyOn(firebaseMock, 'list'); + const spyLogin = spyOn(firebaseMock, 'login'); + yield deploy_1.default(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spyLogin).not.toHaveBeenCalled(); + })); + it('should invoke login if list rejects', () => __awaiter(this, void 0, void 0, function* () { + firebaseMock.list = () => Promise.reject(); + const spy = spyOn(firebaseMock, 'list').and.callThrough(); + const spyLogin = spyOn(firebaseMock, 'login'); + yield deploy_1.default(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spyLogin).toHaveBeenCalled(); + })); + it('should invoke the builder', () => __awaiter(this, void 0, void 0, function* () { + const spy = spyOn(context, 'scheduleTarget').and.callThrough(); + yield deploy_1.default(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spy).toHaveBeenCalledWith({ + target: 'build', + configuration: 'production', + project: PROJECT + }); + })); + it('should invoke firebase.deploy', () => __awaiter(this, void 0, void 0, function* () { + const spy = spyOn(firebaseMock, 'deploy').and.callThrough(); + yield deploy_1.default(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spy).toHaveBeenCalledWith({ + cwd: 'host', only: 'hosting:' + PROJECT + }); + })); + describe('error handling', () => { + it('throws if there is no firebase project', () => __awaiter(this, void 0, void 0, function* () { + expect(deploy_1.default(firebaseMock, context, 'host')).rejects.toThrow(/Cannot find firebase project/); + })); + it('throws if there is no target project', () => __awaiter(this, void 0, void 0, function* () { + context.target = undefined; + expect(deploy_1.default(firebaseMock, context, 'host', FIREBASE_PROJECT)).rejects.toThrow(/Cannot execute the build target/); + })); + }); +}); +const initMocks = () => { + firebaseMock = { + login: () => Promise.resolve(), + list: () => Promise.resolve([]), + deploy: (_) => Promise.resolve(), + use: jest.fn() + }; + context = { + target: { + configuration: 'production', + project: PROJECT, + target: 'foo' + }, + builder: { + builderName: 'mock', + description: 'mock', + optionSchema: false + }, + currentDirectory: 'cwd', + id: 1, + logger: new core_1.logging.Logger('mock'), + workspaceRoot: 'cwd', + getTargetOptions: (_) => Promise.resolve({}), + reportProgress: (_, __, ___) => { + }, + reportStatus: (_) => { + }, + reportRunning: () => { + }, + scheduleBuilder: (_, __, ___) => Promise.resolve({}), + scheduleTarget: (_, __, ___) => Promise.resolve({}) + }; +}; +//# sourceMappingURL=deploy.spec.js.map \ No newline at end of file diff --git a/src/deploy/builders/actions/__tests__/deploy.spec.js.map b/src/deploy/builders/actions/__tests__/deploy.spec.js.map new file mode 100644 index 000000000..1f2f67a62 --- /dev/null +++ b/src/deploy/builders/actions/__tests__/deploy.spec.js.map @@ -0,0 +1 @@ +{"version":3,"file":"deploy.spec.js","sourceRoot":"","sources":["deploy.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/deploy/builders/actions/__tests__/deploy.spec.ts b/src/deploy/builders/actions/__tests__/deploy.spec.ts new file mode 100644 index 000000000..e0d15c3b5 --- /dev/null +++ b/src/deploy/builders/actions/__tests__/deploy.spec.ts @@ -0,0 +1,99 @@ +import deploy from '../deploy'; + +import { JsonObject, logging } from '@angular-devkit/core'; +import { BuilderContext, BuilderRun, ScheduleOptions, Target, } from '@angular-devkit/architect/src/index2'; +import { FirebaseDeployConfig, FirebaseTools } from '../../../shared/types'; + + +let context: BuilderContext; +let firebaseMock: FirebaseTools; + +const FIREBASE_PROJECT = 'ikachu-aa3ef'; +const PROJECT = 'pirojok-project'; + +describe('Deploy Angular apps', () => { + beforeEach(() => initMocks()); + + it('should check if the user is authenticated by invoking list', async () => { + const spy = spyOn(firebaseMock, 'list'); + const spyLogin = spyOn(firebaseMock, 'login'); + await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spyLogin).not.toHaveBeenCalled(); + }); + + it('should invoke login if list rejects', async () => { + firebaseMock.list = () => Promise.reject(); + const spy = spyOn(firebaseMock, 'list').and.callThrough(); + const spyLogin = spyOn(firebaseMock, 'login'); + await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spyLogin).toHaveBeenCalled(); + }); + + it('should invoke the builder', async () => { + const spy = spyOn(context, 'scheduleTarget').and.callThrough(); + await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spy).toHaveBeenCalledWith({ + target: 'build', + configuration: 'production', + project: PROJECT + }); + }); + + it('should invoke firebase.deploy', async () => { + const spy = spyOn(firebaseMock, 'deploy').and.callThrough(); + await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spy).toHaveBeenCalledWith({ + cwd: 'host', only: 'hosting:' + PROJECT + }); + }); + + describe('error handling', () => { + it('throws if there is no firebase project', async () => { + expect(deploy(firebaseMock, context, 'host')).rejects.toThrow(/Cannot find firebase project/); + }); + + it('throws if there is no target project', async () => { + context.target = undefined; + expect(deploy(firebaseMock, context, 'host', FIREBASE_PROJECT)).rejects.toThrow(/Cannot execute the build target/); + }); + }); +}); + +const initMocks = () => { + firebaseMock = { + login: () => Promise.resolve(), + list: () => Promise.resolve([]), + deploy: (_: FirebaseDeployConfig) => Promise.resolve(), + use: jest.fn() + }; + + context = { + target: { + configuration: 'production', + project: PROJECT, + target: 'foo' + }, + builder: { + builderName: 'mock', + description: 'mock', + optionSchema: false + }, + currentDirectory: 'cwd', + id: 1, + logger: new logging.Logger('mock'), + workspaceRoot: 'cwd', + getTargetOptions: (_: Target) => Promise.resolve({}), + reportProgress: (_: number, __?: number, ___?: string) => { + }, + reportStatus: (_: string) => { + }, + reportRunning: () => { + }, + scheduleBuilder: (_: string, __?: JsonObject, ___?: ScheduleOptions) => Promise.resolve({} as BuilderRun), + scheduleTarget: (_: Target, __?: JsonObject, ___?: ScheduleOptions) => Promise.resolve({} as BuilderRun) + }; +}; diff --git a/src/deploy/builders/actions/deploy.d.ts b/src/deploy/builders/actions/deploy.d.ts new file mode 100644 index 000000000..96d2d87a1 --- /dev/null +++ b/src/deploy/builders/actions/deploy.d.ts @@ -0,0 +1,3 @@ +import { BuilderContext } from '@angular-devkit/architect/src/index2'; +import { FirebaseTools } from '../../shared/types'; +export default function deploy(firebaseTools: FirebaseTools, context: BuilderContext, projectRoot: string, firebaseProject?: string): Promise; diff --git a/src/deploy/builders/actions/deploy.js b/src/deploy/builders/actions/deploy.js new file mode 100644 index 000000000..b7d3a707c --- /dev/null +++ b/src/deploy/builders/actions/deploy.js @@ -0,0 +1,49 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +function deploy(firebaseTools, context, projectRoot, firebaseProject) { + return __awaiter(this, void 0, void 0, function* () { + if (!firebaseProject) { + throw new Error('Cannot find firebase project for your app in .firebaserc'); + } + try { + yield firebaseTools.list(); + } + catch (e) { + context.logger.warn("🚨 You're not logged into Firebase. Logging you in..."); + yield firebaseTools.login(); + } + if (!context.target) { + throw new Error('Cannot execute the build target'); + } + context.logger.info(`📦 Building "${context.target.project}"`); + const run = yield context.scheduleTarget({ + target: 'build', + project: context.target.project, + configuration: 'production' + }); + yield run.result; + try { + yield firebaseTools.use(firebaseProject, { project: firebaseProject }); + } + catch (e) { + throw new Error(`Cannot select firebase project '${firebaseProject}'`); + } + try { + const success = yield firebaseTools.deploy({ only: 'hosting:' + context.target.project, cwd: projectRoot }); + context.logger.info(`🚀 Your application is now available at https://${success.hosting.split('/')[1]}.firebaseapp.com/`); + } + catch (e) { + context.logger.error(e); + } + }); +} +exports.default = deploy; +//# sourceMappingURL=deploy.js.map \ No newline at end of file diff --git a/src/deploy/builders/actions/deploy.js.map b/src/deploy/builders/actions/deploy.js.map new file mode 100644 index 000000000..dd0132661 --- /dev/null +++ b/src/deploy/builders/actions/deploy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"deploy.js","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":";;;;;;;;;;AAGA,SAA8B,MAAM,CAAC,aAA4B,EAAE,OAAuB,EAAE,WAAmB,EAAE,eAAwB;;QACrI,IAAI,CAAC,eAAe,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAC/E;QAED,IAAI;YACA,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;SAC9B;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YAC7E,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACtD;QAED,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QAE/D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC;YACrC,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;YAC/B,aAAa,EAAE,YAAY;SAC9B,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,CAAC;QAEjB,IAAI;YACA,MAAM,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;SACxE;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,mCAAmC,eAAe,GAAG,CAAC,CAAC;SAC1E;QAGD,IAAI;YACA,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAC,CAAC,CAAC;YAC1G,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;SAC5H;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3B;IACL,CAAC;CAAA;AArCD,yBAqCC"} \ No newline at end of file diff --git a/src/deploy/builders/actions/deploy.ts b/src/deploy/builders/actions/deploy.ts new file mode 100644 index 000000000..fb5d79a61 --- /dev/null +++ b/src/deploy/builders/actions/deploy.ts @@ -0,0 +1,41 @@ +import { BuilderContext } from '@angular-devkit/architect/src/index2'; +import { FirebaseTools } from '../../shared/types'; + +export default async function deploy(firebaseTools: FirebaseTools, context: BuilderContext, projectRoot: string, firebaseProject?: string) { + if (!firebaseProject) { + throw new Error('Cannot find firebase project for your app in .firebaserc'); + } + + try { + await firebaseTools.list(); + } catch (e) { + context.logger.warn("🚨 You're not logged into Firebase. Logging you in..."); + await firebaseTools.login(); + } + if (!context.target) { + throw new Error('Cannot execute the build target'); + } + + context.logger.info(`📦 Building "${context.target.project}"`); + + const run = await context.scheduleTarget({ + target: 'build', + project: context.target.project, + configuration: 'production' + }); + await run.result; + + try { + await firebaseTools.use(firebaseProject, {project: firebaseProject}); + } catch (e) { + throw new Error(`Cannot select firebase project '${firebaseProject}'`); + } + + + try { + const success = await firebaseTools.deploy({only: 'hosting:' + context.target.project, cwd: projectRoot}); + context.logger.info(`🚀 Your application is now available at https://${success.hosting.split('/')[1]}.firebaseapp.com/`); + } catch (e) { + context.logger.error(e); + } +} diff --git a/src/deploy/builders/builder.d.ts b/src/deploy/builders/builder.d.ts new file mode 100644 index 000000000..3eb9e9f05 --- /dev/null +++ b/src/deploy/builders/builder.d.ts @@ -0,0 +1,2 @@ +declare const _default: import("@angular-devkit/architect/src/internal").Builder; +export default _default; diff --git a/src/deploy/builders/builder.js b/src/deploy/builders/builder.js new file mode 100644 index 000000000..10a1d6c53 --- /dev/null +++ b/src/deploy/builders/builder.js @@ -0,0 +1,38 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const index2_1 = require("@angular-devkit/architect/src/index2"); +const node_1 = require("@angular-devkit/core/node"); +const deploy_1 = require("./actions/deploy"); +const core_1 = require("@angular-devkit/core"); +const utils_1 = require("../shared/utils"); +// Call the createBuilder() function to create a builder. This mirrors +// createJobHandler() but add typings specific to Architect Builders. +exports.default = index2_1.createBuilder((_, context) => __awaiter(this, void 0, void 0, function* () { + // The project root is added to a BuilderContext. + const root = core_1.normalize(context.workspaceRoot); + const workspace = new core_1.experimental.workspace.Workspace(root, new node_1.NodeJsSyncHost()); + yield workspace.loadWorkspaceFromHost(core_1.normalize('angular.json')).toPromise(); + if (!context.target) { + throw new Error('Cannot deploy the application without a target'); + } + const project = workspace.getProject(context.target.project); + const firebaseProject = utils_1.getFirebaseProjectName(workspace.root, context.target.project); + try { + yield deploy_1.default(require('firebase-tools'), context, core_1.join(workspace.root, project.root), firebaseProject); + } + catch (e) { + console.error('Error when trying to deploy: '); + console.error(e.message); + return { success: false }; + } + return { success: true }; +})); +//# sourceMappingURL=builder.js.map \ No newline at end of file diff --git a/src/deploy/builders/builder.js.map b/src/deploy/builders/builder.js.map new file mode 100644 index 000000000..52ec82712 --- /dev/null +++ b/src/deploy/builders/builder.js.map @@ -0,0 +1 @@ +{"version":3,"file":"builder.js","sourceRoot":"","sources":["builder.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,iEAAoG;AACpG,oDAA2D;AAC3D,6CAAsC;AACtC,+CAAqE;AACrE,2CAAyD;AAEzD,sEAAsE;AACtE,qEAAqE;AACrE,kBAAe,sBAAa,CACxB,CAAO,CAAM,EAAE,OAAuB,EAA0B,EAAE;IAC9D,iDAAiD;IACjD,MAAM,IAAI,GAAG,gBAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,mBAAY,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,qBAAc,EAAE,CAAC,CAAC;IACnF,MAAM,SAAS,CAAC,qBAAqB,CAAC,gBAAS,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAE7E,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACrE;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7D,MAAM,eAAe,GAAG,8BAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvF,IAAI;QACA,MAAM,gBAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,WAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;KACzG;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,CAAA;KAC1B;IAED,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,CAAA;AAC1B,CAAC,CAAA,CACJ,CAAC"} \ No newline at end of file diff --git a/src/deploy/builders/builder.ts b/src/deploy/builders/builder.ts new file mode 100644 index 000000000..fdae304cb --- /dev/null +++ b/src/deploy/builders/builder.ts @@ -0,0 +1,34 @@ +import { BuilderContext, BuilderOutput, createBuilder } from '@angular-devkit/architect/src/index2'; +import { NodeJsSyncHost } from '@angular-devkit/core/node'; +import deploy from './actions/deploy'; +import { experimental, join, normalize } from '@angular-devkit/core'; +import { getFirebaseProjectName } from '../shared/utils'; + +// Call the createBuilder() function to create a builder. This mirrors +// createJobHandler() but add typings specific to Architect Builders. +export default createBuilder( + async (_: any, context: BuilderContext): Promise => { + // The project root is added to a BuilderContext. + const root = normalize(context.workspaceRoot); + const workspace = new experimental.workspace.Workspace(root, new NodeJsSyncHost()); + await workspace.loadWorkspaceFromHost(normalize('angular.json')).toPromise(); + + if (!context.target) { + throw new Error('Cannot deploy the application without a target'); + } + + const project = workspace.getProject(context.target.project); + + const firebaseProject = getFirebaseProjectName(workspace.root, context.target.project); + + try { + await deploy(require('firebase-tools'), context, join(workspace.root, project.root), firebaseProject); + } catch (e) { + console.error('Error when trying to deploy: '); + console.error(e.message); + return {success: false} + } + + return {success: true} + } +); diff --git a/src/deploy/builders/schema.json b/src/deploy/builders/schema.json new file mode 100644 index 000000000..566c4cd39 --- /dev/null +++ b/src/deploy/builders/schema.json @@ -0,0 +1,6 @@ +{ + "id": "FirebaseDeploySchema", + "title": "Firebase Deploy", + "description": "TBD", + "properties": {} +} diff --git a/src/deploy/ng-add/index.d.ts b/src/deploy/ng-add/index.d.ts new file mode 100644 index 000000000..0e21991ca --- /dev/null +++ b/src/deploy/ng-add/index.d.ts @@ -0,0 +1,7 @@ +import { Tree } from '@angular-devkit/schematics'; +import { Observable } from 'rxjs'; +interface DeployOptions { + project: string; +} +export declare function ngDeploy({ project }: DeployOptions): (host: Tree) => Observable; +export {}; diff --git a/src/deploy/ng-add/index.js b/src/deploy/ng-add/index.js new file mode 100644 index 000000000..d087f5e33 --- /dev/null +++ b/src/deploy/ng-add/index.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const rxjs_1 = require("rxjs"); +const ng_add_1 = require("./ng-add"); +const utils_1 = require("../shared/utils"); +// You don't have to export the function as default. You can also have more than one rule factory +// per file. +function ngDeploy({ project }) { + return (host) => { + return rxjs_1.from(utils_1.listProjects().then((projects) => { + return utils_1.projectPrompt(projects).then(({ firebaseProject }) => { + return ng_add_1.ngAdd(host, { firebaseProject, project }); + }); + })); + }; +} +exports.ngDeploy = ngDeploy; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/src/deploy/ng-add/index.js.map b/src/deploy/ng-add/index.js.map new file mode 100644 index 000000000..191c20076 --- /dev/null +++ b/src/deploy/ng-add/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AACA,+BAAwC;AAIxC,qCAAiC;AACjC,2CAA8D;AAM9D,iGAAiG;AACjG,YAAY;AACZ,SAAgB,QAAQ,CAAC,EAAC,OAAO,EAAgB;IAC7C,OAAO,CAAC,IAAU,EAAoB,EAAE;QAEpC,OAAO,WAAI,CACP,oBAAY,EAAE,CAAC,IAAI,CAAC,CAAC,QAAmB,EAAE,EAAE;YACxC,OAAO,qBAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,eAAe,EAAM,EAAE,EAAE;gBAC3D,OAAO,cAAK,CAAC,IAAI,EAAE,EAAC,eAAe,EAAE,OAAO,EAAC,CAAC,CAAA;YAClD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CACL,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAXD,4BAWC"} \ No newline at end of file diff --git a/src/deploy/ng-add/index.ts b/src/deploy/ng-add/index.ts new file mode 100644 index 000000000..3315aa451 --- /dev/null +++ b/src/deploy/ng-add/index.ts @@ -0,0 +1,26 @@ +import { Tree } from '@angular-devkit/schematics'; +import { from, Observable } from 'rxjs'; + +import { Project } from '../shared/types'; + +import { ngAdd } from './ng-add'; +import { listProjects, projectPrompt } from '../shared/utils'; + +interface DeployOptions { + project: string; +} + +// You don't have to export the function as default. You can also have more than one rule factory +// per file. +export function ngDeploy({project}: DeployOptions): (host: Tree) => Observable { + return (host: Tree): Observable => { + + return from>( + listProjects().then((projects: Project[]) => { + return projectPrompt(projects).then(({firebaseProject}: any) => { + return ngAdd(host, {firebaseProject, project}) + }); + }) + ); + }; +} diff --git a/src/deploy/ng-add/ng-add.d.ts b/src/deploy/ng-add/ng-add.d.ts new file mode 100644 index 000000000..324fd4ac9 --- /dev/null +++ b/src/deploy/ng-add/ng-add.d.ts @@ -0,0 +1,7 @@ +import { Tree } from '@angular-devkit/schematics'; +interface NgAddOptions { + firebaseProject: string; + project?: string; +} +export declare function ngAdd(tree: Tree, options: NgAddOptions): import("@angular-devkit/schematics/src/tree/interface").Tree; +export {}; diff --git a/src/deploy/ng-add/ng-add.js b/src/deploy/ng-add/ng-add.js new file mode 100644 index 000000000..5d45226dd --- /dev/null +++ b/src/deploy/ng-add/ng-add.js @@ -0,0 +1,120 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const schematics_1 = require("@angular-devkit/schematics"); +const core_1 = require("@angular-devkit/core"); +const stringifyFormatted = (obj) => JSON.stringify(obj, null, 2); +function emptyFirebaseJson() { + return { + hosting: [] + }; +} +function emptyFirebaseRc() { + return { + targets: {} + }; +} +function generateHostingConfig(project, dist) { + return { + target: project, + public: dist, + ignore: ['firebase.json', '**/.*', '**/node_modules/**'], + rewrites: [ + { + source: '**', + destination: '/index.html' + } + ] + }; +} +function safeReadJSON(path, tree) { + try { + return JSON.parse(tree.read(path).toString()); + } + catch (e) { + throw new schematics_1.SchematicsException(`Error when parsing ${path}: ${e.message}`); + } +} +function generateFirebaseJson(tree, path, project, dist) { + let firebaseJson = tree.exists(path) ? safeReadJSON(path, tree) : emptyFirebaseJson(); + if (firebaseJson.hosting.find(config => config.target === project)) { + throw new schematics_1.SchematicsException(`Target ${project} already exists in firebase.json`); + } + firebaseJson.hosting.push(generateHostingConfig(project, dist)); + overwriteIfExists(tree, path, stringifyFormatted(firebaseJson)); +} +function generateFirebaseRcTarget(firebaseProject, project) { + return { + "hosting": { + [project]: [ + // TODO(kirjs): Generally site name is consistent with the project name, but there are edge cases. + firebaseProject + ] + } + }; +} +function generateFirebaseRc(tree, path, firebaseProject, project) { + const firebaseRc = tree.exists(path) ? safeReadJSON(path, tree) : emptyFirebaseRc(); + if (firebaseProject in firebaseRc.targets) { + throw new schematics_1.SchematicsException(`Firebase project ${firebaseProject} already defined in .firebaserc`); + } + firebaseRc.targets[firebaseProject] = generateFirebaseRcTarget(firebaseProject, project); + overwriteIfExists(tree, path, stringifyFormatted(firebaseRc)); +} +const overwriteIfExists = (tree, path, content) => { + if (tree.exists(path)) + tree.overwrite(path, content); + else + tree.create(path, content); +}; +function getWorkspace(host) { + const possibleFiles = ['/angular.json', '/.angular.json']; + const path = possibleFiles.filter(path => host.exists(path))[0]; + const configBuffer = host.read(path); + if (configBuffer === null) { + throw new schematics_1.SchematicsException(`Could not find angular.json`); + } + const content = configBuffer.toString(); + let workspace; + try { + workspace = core_1.parseJson(content, core_1.JsonParseMode.Loose); + } + catch (e) { + throw new schematics_1.SchematicsException(`Could not parse angular.json: ` + e.message); + } + return { + path, + workspace, + }; +} +function ngAdd(tree, options) { + const { path: workspacePath, workspace } = getWorkspace(tree); + if (!options.project) { + if (workspace.defaultProject) { + options.project = workspace.defaultProject; + } + else { + throw new schematics_1.SchematicsException('No project selected and no default project in the workspace'); + } + } + const project = workspace.projects[options.project]; + if (!project) { + throw new schematics_1.SchematicsException('Project is not defined in this workspace'); + } + if (project.projectType !== 'application') { + throw new schematics_1.SchematicsException(`Deploy requires a project type of "application" in angular.json`); + } + if (!project.architect || !project.architect.build || !project.architect.build.options || !project.architect.build.options.outputPath) { + throw new schematics_1.SchematicsException(`Cannot read the output path (architect.build.options.outputPath) of project "${options.project}" in angular.json`); + } + const outputPath = project.architect.build.options.outputPath; + project.architect['deploy'] = { + builder: 'ng-deploy:deploy', + options: {} + }; + tree.overwrite(workspacePath, JSON.stringify(workspace, null, 2)); + generateFirebaseJson(tree, 'firebase.json', options.project, outputPath); + generateFirebaseRc(tree, '.firebaserc', options.firebaseProject, options.project); + return tree; +} +exports.ngAdd = ngAdd; +//# sourceMappingURL=ng-add.js.map \ No newline at end of file diff --git a/src/deploy/ng-add/ng-add.js.map b/src/deploy/ng-add/ng-add.js.map new file mode 100644 index 000000000..e229c5817 --- /dev/null +++ b/src/deploy/ng-add/ng-add.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ng-add.js","sourceRoot":"","sources":["ng-add.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/deploy/ng-add/ng-add.spec.d.ts b/src/deploy/ng-add/ng-add.spec.d.ts new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/src/deploy/ng-add/ng-add.spec.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/deploy/ng-add/ng-add.spec.js b/src/deploy/ng-add/ng-add.spec.js new file mode 100644 index 000000000..c21b9d8e5 --- /dev/null +++ b/src/deploy/ng-add/ng-add.spec.js @@ -0,0 +1,170 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const schematics_1 = require("@angular-devkit/schematics"); +const ng_add_1 = require("./ng-add"); +const PROJECT_NAME = 'pie-ka-chu'; +const PROJECT_ROOT = 'pirojok'; +const FIREBASE_PROJECT = 'pirojok-111e3'; +const OTHER_PROJECT_NAME = 'pi-catch-you'; +const OTHER_FIREBASE_PROJECT_NAME = 'bi-catch-you-77e7e'; +describe('ng-add', () => { + describe('generating files', () => { + let tree; + beforeEach(() => { + tree = schematics_1.Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + }); + it('generates new files if starting from scratch', () => __awaiter(this, void 0, void 0, function* () { + const result = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }); + expect(result.read('firebase.json').toString()).toMatchSnapshot(); + expect(result.read('.firebaserc').toString()).toMatchSnapshot(); + expect(result.read('angular.json').toString()).toMatchSnapshot(); + })); + it('uses default project', () => __awaiter(this, void 0, void 0, function* () { + const result = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT }); + expect(result.read('firebase.json').toString()).toMatchSnapshot(); + expect(result.read('.firebaserc').toString()).toMatchSnapshot(); + expect(result.read('angular.json').toString()).toMatchSnapshot(); + })); + it('overrides existing files', () => __awaiter(this, void 0, void 0, function* () { + const tempTree = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }); + const result = ng_add_1.ngAdd(tempTree, { firebaseProject: OTHER_FIREBASE_PROJECT_NAME, project: OTHER_PROJECT_NAME }); + expect(result.read('firebase.json').toString()).toMatchSnapshot(); + expect(result.read('.firebaserc').toString()).toMatchSnapshot(); + expect(result.read('angular.json').toString()).toMatchSnapshot(); + })); + }); + describe('error handling', () => { + it('fails if project not defined', () => { + const tree = schematics_1.Tree.empty(); + const angularJSON = generateAngularJson(); + delete angularJSON.defaultProject; + tree.create('angular.json', JSON.stringify(angularJSON)); + expect(() => ng_add_1.ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: '' + })).toThrowError(/No project selected and no default project in the workspace/); + }); + it('Should throw if angular.json not found', () => __awaiter(this, void 0, void 0, function* () { + expect(() => ng_add_1.ngAdd(schematics_1.Tree.empty(), { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/Could not find angular.json/); + })); + it('Should throw if angular.json can not be parsed', () => __awaiter(this, void 0, void 0, function* () { + const tree = schematics_1.Tree.empty(); + tree.create('angular.json', 'hi'); + expect(() => ng_add_1.ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/Could not parse angular.json/); + })); + it('Should throw if specified project does not exist ', () => __awaiter(this, void 0, void 0, function* () { + const tree = schematics_1.Tree.empty(); + tree.create('angular.json', JSON.stringify({ projects: {} })); + expect(() => ng_add_1.ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/Project is not defined in this workspace/); + })); + it('Should throw if specified project is not application', () => __awaiter(this, void 0, void 0, function* () { + const tree = schematics_1.Tree.empty(); + tree.create('angular.json', JSON.stringify({ projects: { [PROJECT_NAME]: { projectType: 'pokemon' } } })); + expect(() => ng_add_1.ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/Deploy requires a project type of "application"/); + })); + it('Should throw if app does not have architect configured', () => __awaiter(this, void 0, void 0, function* () { + const tree = schematics_1.Tree.empty(); + tree.create('angular.json', JSON.stringify({ projects: { [PROJECT_NAME]: { projectType: 'application' } } })); + expect(() => ng_add_1.ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/Cannot read the output path/); + })); + it('Should throw if firebase.json has the project already', () => __awaiter(this, void 0, void 0, function* () { + const tree = schematics_1.Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + const tempTree = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }); + expect(() => ng_add_1.ngAdd(tempTree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/already exists in firebase.json/); + })); + it('Should throw if firebase.json is broken', () => __awaiter(this, void 0, void 0, function* () { + const tree = schematics_1.Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + tree.create('firebase.json', 'I\'m broken 😔'); + expect(() => ng_add_1.ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/firebase.json: Unexpected token/); + })); + it('Should throw if .firebaserc is broken', () => __awaiter(this, void 0, void 0, function* () { + const tree = schematics_1.Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + tree.create('.firebaserc', 'I\'m broken 😔'); + expect(() => ng_add_1.ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/.firebaserc: Unexpected token/); + })); + it('Should throw if firebase.json has the project already', () => __awaiter(this, void 0, void 0, function* () { + const tree = schematics_1.Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + const tempTree = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }); + expect(() => ng_add_1.ngAdd(tempTree, { + firebaseProject: FIREBASE_PROJECT, + project: OTHER_PROJECT_NAME + })).toThrowError(/ already defined in .firebaserc/); + })); + it('Should throw if firebase.json is broken', () => __awaiter(this, void 0, void 0, function* () { + const tree = schematics_1.Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + const tempTree = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }); + expect(() => ng_add_1.ngAdd(tempTree, { + firebaseProject: FIREBASE_PROJECT, + project: OTHER_PROJECT_NAME + })).toThrowError(/ already defined in .firebaserc/); + })); + }); +}); +function generateAngularJson() { + return { + defaultProject: PROJECT_NAME, + projects: { + [PROJECT_NAME]: { + projectType: 'application', + root: PROJECT_ROOT, + architect: { + build: { + options: { + outputPath: 'dist/ikachu' + } + }, + } + }, + [OTHER_PROJECT_NAME]: { + projectType: 'application', + root: PROJECT_ROOT, + architect: { + build: { + options: { + outputPath: 'dist/ikachu' + } + }, + } + } + } + }; +} +//# sourceMappingURL=ng-add.spec.js.map diff --git a/src/deploy/ng-add/ng-add.spec.js.map b/src/deploy/ng-add/ng-add.spec.js.map new file mode 100644 index 000000000..3e19f9229 --- /dev/null +++ b/src/deploy/ng-add/ng-add.spec.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ng-add.spec.js","sourceRoot":"","sources":["ng-add.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/deploy/ng-add/ng-add.spec.ts b/src/deploy/ng-add/ng-add.spec.ts new file mode 100644 index 000000000..55938c1f7 --- /dev/null +++ b/src/deploy/ng-add/ng-add.spec.ts @@ -0,0 +1,184 @@ +import { Tree } from '@angular-devkit/schematics'; +import { ngAdd } from './ng-add'; + + +const PROJECT_NAME = 'pie-ka-chu'; +const PROJECT_ROOT = 'pirojok'; +const FIREBASE_PROJECT = 'pirojok-111e3'; + +const OTHER_PROJECT_NAME = 'pi-catch-you'; +const OTHER_FIREBASE_PROJECT_NAME = 'bi-catch-you-77e7e'; + +describe('ng-add', () => { + describe('generating files', () => { + let tree: Tree; + + beforeEach(() => { + tree = Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + }); + + it('generates new files if starting from scratch', async () => { + const result = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); + expect(result.read('firebase.json')!.toString()).toMatchSnapshot(); + expect(result.read('.firebaserc')!.toString()).toMatchSnapshot(); + expect(result.read('angular.json')!.toString()).toMatchSnapshot(); + }); + + it('uses default project', async () => { + const result = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT}); + expect(result.read('firebase.json')!.toString()).toMatchSnapshot(); + expect(result.read('.firebaserc')!.toString()).toMatchSnapshot(); + expect(result.read('angular.json')!.toString()).toMatchSnapshot(); + }); + + it('overrides existing files', async () => { + const tempTree = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); + const result = ngAdd(tempTree, {firebaseProject: OTHER_FIREBASE_PROJECT_NAME, project: OTHER_PROJECT_NAME}); + expect(result.read('firebase.json')!.toString()).toMatchSnapshot(); + expect(result.read('.firebaserc')!.toString()).toMatchSnapshot(); + expect(result.read('angular.json')!.toString()).toMatchSnapshot(); + }); + }); + + describe('error handling', () => { + it('fails if project not defined', () => { + const tree = Tree.empty(); + const angularJSON = generateAngularJson(); + delete angularJSON.defaultProject; + tree.create('angular.json', JSON.stringify(angularJSON)); + expect(() => ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: '' + })).toThrowError(/No project selected and no default project in the workspace/); + }); + + it('Should throw if angular.json not found', async () => { + expect(() => ngAdd(Tree.empty(), { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/Could not find angular.json/) + }); + + it('Should throw if angular.json can not be parsed', async () => { + const tree = Tree.empty(); + tree.create('angular.json', 'hi'); + expect(() => ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/Could not parse angular.json/) + }); + + it('Should throw if specified project does not exist ', async () => { + const tree = Tree.empty(); + tree.create('angular.json', JSON.stringify({projects: {}})); + expect(() => ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/Project is not defined in this workspace/) + }); + + it('Should throw if specified project is not application', async () => { + const tree = Tree.empty(); + tree.create('angular.json', JSON.stringify({projects: {[PROJECT_NAME]: {projectType: 'pokemon'}}})); + expect(() => ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/Deploy requires a project type of "application"/) + }); + + it('Should throw if app does not have architect configured', async () => { + const tree = Tree.empty(); + tree.create('angular.json', JSON.stringify({projects: {[PROJECT_NAME]: {projectType: 'application'}}})); + expect(() => ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/Cannot read the output path/) + }); + + it('Should throw if firebase.json has the project already', async () => { + const tree = Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + const tempTree = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); + + expect(() => ngAdd(tempTree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/already exists in firebase.json/); + }); + + it('Should throw if firebase.json is broken', async () => { + const tree = Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + tree.create('firebase.json', 'I\'m broken 😔'); + expect(() => ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/firebase.json: Unexpected token/); + }); + + it('Should throw if .firebaserc is broken', async () => { + const tree = Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + tree.create('.firebaserc', 'I\'m broken 😔'); + expect(() => ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + })).toThrowError(/.firebaserc: Unexpected token/); + }); + + it('Should throw if firebase.json has the project already', async () => { + const tree = Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + const tempTree = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); + + expect(() => ngAdd(tempTree, { + firebaseProject: FIREBASE_PROJECT, + project: OTHER_PROJECT_NAME + })).toThrowError(/ already defined in .firebaserc/); + }); + + it('Should throw if firebase.json is broken', async () => { + const tree = Tree.empty(); + tree.create('angular.json', JSON.stringify(generateAngularJson())); + + const tempTree = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); + + expect(() => ngAdd(tempTree, { + firebaseProject: FIREBASE_PROJECT, + project: OTHER_PROJECT_NAME + })).toThrowError(/ already defined in .firebaserc/); + }); + }); +}); + + +function generateAngularJson() { + return { + defaultProject: PROJECT_NAME, + projects: { + [PROJECT_NAME]: { + projectType: 'application', + root: PROJECT_ROOT, + architect: { + build: { + options: { + outputPath: 'dist/ikachu' + } + }, + } + }, + [OTHER_PROJECT_NAME]: { + projectType: 'application', + root: PROJECT_ROOT, + architect: { + build: { + options: { + outputPath: 'dist/ikachu' + } + }, + } + } + } + }; +} diff --git a/src/deploy/ng-add/ng-add.ts b/src/deploy/ng-add/ng-add.ts new file mode 100644 index 000000000..ae969aeff --- /dev/null +++ b/src/deploy/ng-add/ng-add.ts @@ -0,0 +1,153 @@ +import { SchematicsException, Tree } from '@angular-devkit/schematics'; +import { FirebaseJSON, FirebaseRc } from '../shared/types'; +import { experimental, JsonParseMode, parseJson } from '@angular-devkit/core'; + +const stringifyFormatted = (obj: any) => JSON.stringify(obj, null, 2); + +function emptyFirebaseJson() { + return { + hosting: [] + } +} + +function emptyFirebaseRc() { + return { + targets: {} + }; +} + + +function generateHostingConfig(project: string, dist: string) { + return { + target: project, + public: dist, + ignore: ['firebase.json', '**/.*', '**/node_modules/**'], + rewrites: [ + { + source: '**', + destination: '/index.html' + } + ] + } +} + +function safeReadJSON(path: string, tree: Tree) { + try { + return JSON.parse(tree.read(path)!.toString()) + } catch (e) { + throw new SchematicsException(`Error when parsing ${path}: ${e.message}`); + } +} + +function generateFirebaseJson(tree: Tree, path: string, project: string, dist: string) { + let firebaseJson: FirebaseJSON = tree.exists(path) ? safeReadJSON(path, tree) : emptyFirebaseJson(); + + if (firebaseJson.hosting.find(config => config.target === project)) { + throw new SchematicsException(`Target ${project} already exists in firebase.json`); + } + + firebaseJson.hosting.push(generateHostingConfig(project, dist)); + + overwriteIfExists(tree, path, stringifyFormatted(firebaseJson)); +} + + +function generateFirebaseRcTarget(firebaseProject: string, project: string) { + return { + "hosting": { + [project]: [ + // TODO(kirjs): Generally site name is consistent with the project name, but there are edge cases. + firebaseProject + ] + } + }; +} + +function generateFirebaseRc(tree: Tree, path: string, firebaseProject: string, project: string) { + const firebaseRc: FirebaseRc = tree.exists(path) ? safeReadJSON(path, tree) : emptyFirebaseRc(); + + + if (firebaseProject in firebaseRc.targets) { + throw new SchematicsException(`Firebase project ${firebaseProject} already defined in .firebaserc`); + } + + firebaseRc.targets[firebaseProject] = generateFirebaseRcTarget(firebaseProject, project); + + overwriteIfExists(tree, path, stringifyFormatted(firebaseRc)); +} + +const overwriteIfExists = (tree: Tree, path: string, content: string) => { + if (tree.exists(path)) tree.overwrite(path, content); + else tree.create(path, content); +}; + +function getWorkspace( + host: Tree, +): { path: string, workspace: experimental.workspace.WorkspaceSchema } { + const possibleFiles = ['/angular.json', '/.angular.json']; + const path = possibleFiles.filter(path => host.exists(path))[0]; + + const configBuffer = host.read(path); + if (configBuffer === null) { + throw new SchematicsException(`Could not find angular.json`); + } + const content = configBuffer.toString(); + + let workspace: experimental.workspace.WorkspaceSchema; + try { + workspace = parseJson( + content, + JsonParseMode.Loose, + ) as {} as experimental.workspace.WorkspaceSchema; + } catch (e) { + throw new SchematicsException(`Could not parse angular.json: ` + e.message); + } + + return { + path, + workspace, + }; +} + + +interface NgAddOptions { + firebaseProject: string; + project?: string; +} + +export function ngAdd(tree: Tree, options: NgAddOptions) { + const {path: workspacePath, workspace} = getWorkspace(tree); + + if (!options.project) { + if (workspace.defaultProject) { + options.project = workspace.defaultProject; + } else { + throw new SchematicsException('No project selected and no default project in the workspace'); + } + } + + const project = workspace.projects[options.project]; + if (!project) { + throw new SchematicsException('Project is not defined in this workspace'); + } + + if (project.projectType !== 'application') { + throw new SchematicsException(`Deploy requires a project type of "application" in angular.json`); + } + + if (!project.architect || !project.architect.build || !project.architect.build.options || !project.architect.build.options.outputPath) { + throw new SchematicsException(`Cannot read the output path (architect.build.options.outputPath) of project "${options.project}" in angular.json`); + } + + const outputPath = project.architect.build.options.outputPath; + + project.architect['deploy'] = { + builder: 'ng-deploy:deploy', + options: {} + }; + + tree.overwrite(workspacePath, JSON.stringify(workspace, null, 2)); + generateFirebaseJson(tree, 'firebase.json', options.project, outputPath); + generateFirebaseRc(tree, '.firebaserc', options.firebaseProject, options.project); + return tree; +} diff --git a/src/deploy/package.json b/src/deploy/package.json new file mode 100644 index 000000000..e72a99e52 --- /dev/null +++ b/src/deploy/package.json @@ -0,0 +1,38 @@ +{ + "name": "ng-deploy", + "version": "0.0.0", + "description": "A blank schematics", + "scripts": { + "build": "tsc -p tsconfig.json", + "start": "tsc -p tsconfig.json -w", + "format": "prettier --config ./.prettierrc \"*.{json,md}\" \"src/**/*.{css,scss,ts}\" \"test/**/*.{css,scss,ts}\" --write", + "test": "jest '.*\\.spec\\.ts'" + }, + "keywords": [ + "schematics" + ], + "author": "", + "license": "MIT", + "schematics": "./collection.json", + "builders": "./builders.json", + "dependencies": { + "@angular-devkit/architect": "^0.14.0-beta.5", + "@angular-devkit/core": "^8.0.0-beta.5", + "@angular-devkit/schematics": "^8.0.0-beta.5", + "@types/node": "^8.0.31", + "firebase-tools": "^6.3.1", + "fuzzy": "^0.1.3", + "inquirer": "^6.2.2", + "inquirer-autocomplete-prompt": "^1.0.1" + }, + "devDependencies": { + "@angular/cli": "^8.0.0-beta.4", + "@types/inquirer": "0.0.44", + "@types/jest": "^24.0.9", + "jest": "^24.3.1", + "prettier": "^1.16.4", + "schematics-utilities": "^1.1.1", + "ts-jest": "^24.0.0", + "typescript": "~3.2.2" + } +} diff --git a/src/deploy/shared/types.d.ts b/src/deploy/shared/types.d.ts new file mode 100644 index 000000000..cc546bd58 --- /dev/null +++ b/src/deploy/shared/types.d.ts @@ -0,0 +1,34 @@ +export interface Project { + name: string; + id: string; + permission: 'edit' | 'view' | 'own'; +} +export interface FirebaseDeployConfig { + cwd: string; + only?: string; +} +export interface FirebaseTools { + login(): Promise; + list(): Promise; + deploy(config: FirebaseDeployConfig): Promise; + use(options: any, lol: any): Promise; +} +export interface FirebaseHostingRewrite { + source: string; + destination: string; +} +export interface FirebaseHostingConfig { + public: string; + ignore: string[]; + target: string; + rewrites: FirebaseHostingRewrite[]; +} +export interface FirebaseJSON { + hosting: FirebaseHostingConfig[]; +} +export interface FirebaseRcTarget { + hosting: Record; +} +export interface FirebaseRc { + targets: Record; +} diff --git a/src/deploy/shared/types.js b/src/deploy/shared/types.js new file mode 100644 index 000000000..11e638d1e --- /dev/null +++ b/src/deploy/shared/types.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/src/deploy/shared/types.js.map b/src/deploy/shared/types.js.map new file mode 100644 index 000000000..8da0887a5 --- /dev/null +++ b/src/deploy/shared/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/src/deploy/shared/types.ts b/src/deploy/shared/types.ts new file mode 100644 index 000000000..3c9d22df5 --- /dev/null +++ b/src/deploy/shared/types.ts @@ -0,0 +1,45 @@ +export interface Project { + name: string; + id: string; + permission: 'edit' | 'view' | 'own'; +} + +export interface FirebaseDeployConfig { + cwd: string; + only?: string; +} + +export interface FirebaseTools { + login(): Promise; + + list(): Promise; + + deploy(config: FirebaseDeployConfig): Promise; + + use(options: any, lol: any): Promise; +} + +export interface FirebaseHostingRewrite { + source: string; + destination: string; + +} + +export interface FirebaseHostingConfig { + public: string; + ignore: string[]; + target: string; + rewrites: FirebaseHostingRewrite[]; +} + +export interface FirebaseJSON { + hosting: FirebaseHostingConfig[] +} + +export interface FirebaseRcTarget { + hosting: Record +} + +export interface FirebaseRc { + targets: Record +} diff --git a/src/deploy/shared/utils.d.ts b/src/deploy/shared/utils.d.ts new file mode 100644 index 000000000..a8a2af86b --- /dev/null +++ b/src/deploy/shared/utils.d.ts @@ -0,0 +1,4 @@ +import { Project } from './types'; +export declare function listProjects(): any; +export declare const projectPrompt: (projects: Project[]) => any; +export declare function getFirebaseProjectName(projectRoot: string, target: string): string | undefined; diff --git a/src/deploy/shared/utils.js b/src/deploy/shared/utils.js new file mode 100644 index 000000000..cffeac7f7 --- /dev/null +++ b/src/deploy/shared/utils.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs_1 = require("fs"); +const inquirer = require("inquirer"); +const path_1 = require("path"); +const firebase = require('firebase-tools'); +const fuzzy = require('fuzzy'); +function listProjects() { + return firebase.list().catch( + /* If list failed, then login and try again. */ + () => firebase.login().then(() => firebase.list())); +} +exports.listProjects = listProjects; +inquirer.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt')); +// `fuzzy` passes either the original list of projects or an internal object +// which contains the project as a property. +const isProject = (elem) => { + return elem.original === undefined; +}; +const searchProjects = (projects) => { + return (_, input) => { + return Promise.resolve(fuzzy + .filter(input, projects, { + extract(el) { + return `${el.id} ${el.name} ${el.permission}`; + } + }) + .map((result) => { + let original; + if (isProject(result)) { + original = result; + } + else { + original = result.original; + } + return { name: `${original.id} (${original.name})`, title: original.name, value: original.id }; + })); + }; +}; +exports.projectPrompt = (projects) => { + return inquirer.prompt({ + type: 'autocomplete', + name: 'firebaseProject', + source: searchProjects(projects), + message: 'Please select a project:' + }); +}; +function getFirebaseProjectName(projectRoot, target) { + const { targets } = JSON.parse(fs_1.readFileSync(path_1.join(projectRoot, '.firebaserc'), 'UTF-8')); + const projects = Object.keys(targets); + return projects.find(project => !!Object.keys(targets[project].hosting).find(t => t === target)); +} +exports.getFirebaseProjectName = getFirebaseProjectName; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/src/deploy/shared/utils.js.map b/src/deploy/shared/utils.js.map new file mode 100644 index 000000000..8d44b2e5b --- /dev/null +++ b/src/deploy/shared/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":";;AAAA,2BAAkC;AAClC,qCAAqC;AAErC,+BAA4B;AAE5B,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE3C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/B,SAAgB,YAAY;IACxB,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK;IACxB,+CAA+C;IAC/C,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAJD,oCAIC;AAGD,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAEjF,4EAA4E;AAC5E,4CAA4C;AAC5C,MAAM,SAAS,GAAG,CAAC,IAAqC,EAAmB,EAAE;IACzE,OAA+B,IAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,QAAmB,EAAE,EAAE;IAC3C,OAAO,CAAC,CAAM,EAAE,KAAa,EAAE,EAAE;QAC7B,OAAO,OAAO,CAAC,OAAO,CAClB,KAAK;aACA,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE;YACrB,OAAO,CAAC,EAAW;gBACf,OAAO,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YAClD,CAAC;SACJ,CAAC;aACD,GAAG,CAAC,CAAC,MAAuC,EAAE,EAAE;YAC7C,IAAI,QAAiB,CAAC;YACtB,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;gBACnB,QAAQ,GAAG,MAAM,CAAC;aACrB;iBAAM;gBACH,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;aAC9B;YACD,OAAO,EAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAC,CAAC;QACjG,CAAC,CAAC,CACT,CAAC;IACN,CAAC,CAAC;AACN,CAAC,CAAC;AAEW,QAAA,aAAa,GAAG,CAAC,QAAmB,EAAE,EAAE;IACjD,OAAQ,QAAgB,CAAC,MAAM,CAAC;QAC5B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC;QAChC,OAAO,EAAE,0BAA0B;KACtC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,SAAgB,sBAAsB,CAAC,WAAmB,EAAE,MAAc;IACtE,MAAM,EAAC,OAAO,EAAC,GAAe,IAAI,CAAC,KAAK,CAAC,iBAAY,CAAC,WAAI,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAClG,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AACrG,CAAC;AAJD,wDAIC"} \ No newline at end of file diff --git a/src/deploy/shared/utils.ts b/src/deploy/shared/utils.ts new file mode 100644 index 000000000..868ba7876 --- /dev/null +++ b/src/deploy/shared/utils.ts @@ -0,0 +1,61 @@ +import { readFileSync } from 'fs'; +import * as inquirer from 'inquirer'; +import { FirebaseRc, Project } from './types'; +import { join } from 'path'; + +const firebase = require('firebase-tools'); + +const fuzzy = require('fuzzy'); + +export function listProjects() { + return firebase.list().catch( + /* If list failed, then login and try again. */ + () => firebase.login().then(() => firebase.list())); +} + + +inquirer.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt')); + +// `fuzzy` passes either the original list of projects or an internal object +// which contains the project as a property. +const isProject = (elem: Project | { original: Project }): elem is Project => { + return (<{ original: Project }>elem).original === undefined; +}; + +const searchProjects = (projects: Project[]) => { + return (_: any, input: string) => { + return Promise.resolve( + fuzzy + .filter(input, projects, { + extract(el: Project) { + return `${el.id} ${el.name} ${el.permission}`; + } + }) + .map((result: Project | { original: Project }) => { + let original: Project; + if (isProject(result)) { + original = result; + } else { + original = result.original; + } + return {name: `${original.id} (${original.name})`, title: original.name, value: original.id}; + }) + ); + }; +}; + +export const projectPrompt = (projects: Project[]) => { + return (inquirer as any).prompt({ + type: 'autocomplete', + name: 'firebaseProject', + source: searchProjects(projects), + message: 'Please select a project:' + }); +}; + +export function getFirebaseProjectName(projectRoot: string, target: string): string|undefined { + const {targets}: FirebaseRc = JSON.parse(readFileSync(join(projectRoot, '.firebaserc'), 'UTF-8')); + const projects = Object.keys(targets); + return projects.find(project => !!Object.keys(targets[project].hosting).find(t => t === target)); +} + diff --git a/src/root.spec.js b/src/root.spec.js index 27cfec26b..62285d9d6 100644 --- a/src/root.spec.js +++ b/src/root.spec.js @@ -13,6 +13,8 @@ export * from './packages-dist/database/list/snapshot-changes.spec'; export * from './packages-dist/database/list/state-changes.spec'; export * from './packages-dist/database/list/audit-trail.spec'; export * from './packages-dist/storage/storage.spec'; +export * from './packages-dist/storage/storage.spec'; +export * from './packages-dist/deploy/ng-add/ng-add.spec'; //export * from './packages-dist/messaging/messaging.spec'; // // Since this a deprecated API, we run on it on manual tests only From 1d5dcd2bb15c5bfc960b5f750fab1095c4157e62 Mon Sep 17 00:00:00 2001 From: James Daniels Date: Wed, 17 Apr 2019 19:02:06 -0700 Subject: [PATCH 02/16] Rearranging the schematics a bit --- package.json | 13 +- src/core/builders.json | 10 + src/core/collection.json | 9 + src/core/package.json | 13 +- .../actions/__tests__/deploy.spec.d.ts | 1 - .../builders/actions/__tests__/deploy.spec.js | 95 - .../actions/__tests__/deploy.spec.js.map | 1 - .../builders/actions/__tests__/deploy.spec.ts | 99 - src/deploy/builders/actions/deploy.d.ts | 3 - src/deploy/builders/actions/deploy.js | 49 - src/deploy/builders/actions/deploy.js.map | 1 - src/deploy/builders/builder.d.ts | 2 - src/deploy/builders/builder.js | 38 - src/deploy/builders/builder.js.map | 1 - src/deploy/ng-add/index.d.ts | 7 - src/deploy/ng-add/index.js | 18 - src/deploy/ng-add/index.js.map | 1 - src/deploy/ng-add/ng-add.d.ts | 7 - src/deploy/ng-add/ng-add.js | 120 - src/deploy/ng-add/ng-add.js.map | 1 - src/deploy/ng-add/ng-add.spec.d.ts | 1 - src/deploy/ng-add/ng-add.spec.js | 170 - src/deploy/ng-add/ng-add.spec.js.map | 1 - src/deploy/ng-add/ng-add.spec.ts | 184 - src/deploy/package.json | 38 - src/deploy/shared/types.d.ts | 34 - src/deploy/shared/types.js | 3 - src/deploy/shared/types.js.map | 1 - src/deploy/shared/utils.d.ts | 4 - src/deploy/shared/utils.js | 54 - src/deploy/shared/utils.js.map | 1 - src/root.spec.js | 3 +- .../deploy/actions.ts} | 2 +- .../builders => schematics/deploy}/builder.ts | 4 +- src/schematics/deploy/index.spec.ts | 0 .../deploy}/schema.json | 0 src/schematics/index.spec.ts | 2 + src/{deploy/ng-add => schematics}/index.ts | 9 +- .../types.ts => schematics/interfaces.ts} | 0 src/schematics/ng-add.spec.ts | 0 src/{deploy/ng-add => schematics}/ng-add.ts | 2 +- src/schematics/tsconfig.json | 24 + src/{deploy/shared => schematics}/utils.ts | 2 +- tools/build.js | 22 +- yarn.lock | 3041 ++++++++++++++++- 45 files changed, 3080 insertions(+), 1011 deletions(-) create mode 100644 src/core/builders.json create mode 100644 src/core/collection.json delete mode 100644 src/deploy/builders/actions/__tests__/deploy.spec.d.ts delete mode 100644 src/deploy/builders/actions/__tests__/deploy.spec.js delete mode 100644 src/deploy/builders/actions/__tests__/deploy.spec.js.map delete mode 100644 src/deploy/builders/actions/__tests__/deploy.spec.ts delete mode 100644 src/deploy/builders/actions/deploy.d.ts delete mode 100644 src/deploy/builders/actions/deploy.js delete mode 100644 src/deploy/builders/actions/deploy.js.map delete mode 100644 src/deploy/builders/builder.d.ts delete mode 100644 src/deploy/builders/builder.js delete mode 100644 src/deploy/builders/builder.js.map delete mode 100644 src/deploy/ng-add/index.d.ts delete mode 100644 src/deploy/ng-add/index.js delete mode 100644 src/deploy/ng-add/index.js.map delete mode 100644 src/deploy/ng-add/ng-add.d.ts delete mode 100644 src/deploy/ng-add/ng-add.js delete mode 100644 src/deploy/ng-add/ng-add.js.map delete mode 100644 src/deploy/ng-add/ng-add.spec.d.ts delete mode 100644 src/deploy/ng-add/ng-add.spec.js delete mode 100644 src/deploy/ng-add/ng-add.spec.js.map delete mode 100644 src/deploy/ng-add/ng-add.spec.ts delete mode 100644 src/deploy/package.json delete mode 100644 src/deploy/shared/types.d.ts delete mode 100644 src/deploy/shared/types.js delete mode 100644 src/deploy/shared/types.js.map delete mode 100644 src/deploy/shared/utils.d.ts delete mode 100644 src/deploy/shared/utils.js delete mode 100644 src/deploy/shared/utils.js.map rename src/{deploy/builders/actions/deploy.ts => schematics/deploy/actions.ts} (96%) rename src/{deploy/builders => schematics/deploy}/builder.ts (93%) create mode 100644 src/schematics/deploy/index.spec.ts rename src/{deploy/builders => schematics/deploy}/schema.json (100%) create mode 100644 src/schematics/index.spec.ts rename src/{deploy/ng-add => schematics}/index.ts (82%) rename src/{deploy/shared/types.ts => schematics/interfaces.ts} (100%) create mode 100644 src/schematics/ng-add.spec.ts rename src/{deploy/ng-add => schematics}/ng-add.ts (98%) create mode 100644 src/schematics/tsconfig.json rename src/{deploy/shared => schematics}/utils.ts (97%) diff --git a/package.json b/package.json index 73317ae7c..3ccd62ac8 100644 --- a/package.json +++ b/package.json @@ -35,20 +35,28 @@ "@angular/core": ">=6.0.0 <8", "@angular/platform-browser": ">=6.0.0 <8", "@angular/platform-browser-dynamic": ">=6.0.0 <8", + "@angular-devkit/architect": "^0.14.0-beta.5", + "@angular-devkit/core": "^8.0.0-beta.5", + "@angular-devkit/schematics": "^8.0.0-beta.5", "firebase": "^5.5.0", + "firebase-tools": "^6.3.1", "rxjs": "^6.0.0", "ws": "^3.3.2", "xhr2": "^0.1.4", - "zone.js": "^0.8.0" + "zone.js": "^0.8.0", + "fuzzy": "^0.1.3", + "inquirer": "^6.2.2", + "inquirer-autocomplete-prompt": "^1.0.1" }, "optionalDependencies": { "bufferutil": "~3.0.0", "utf-8-validate": "~4.0.0" - }, + }, "devDependencies": { "@angular/compiler-cli": ">=6.0.0 <8", "@angular/platform-server": ">=6.0.0 <8", "@angular/animations": ">=6.0.0 <8", + "@types/inquirer": "^0.0.44", "@types/jasmine": "^2.5.36", "@types/request": "0.0.30", "concurrently": "^2.2.0", @@ -79,6 +87,7 @@ "rollup": "^0.64.1", "rollup-plugin-node-resolve": "^3.3.0", "rollup-watch": "^4.3.1", + "schematics-utilities": "^1.1.1", "shelljs": "^0.8.0", "systemjs": "^0.19.16", "systemjs-builder": "^0.15.7", diff --git a/src/core/builders.json b/src/core/builders.json new file mode 100644 index 000000000..0a280918e --- /dev/null +++ b/src/core/builders.json @@ -0,0 +1,10 @@ +{ + "$schema": "@angular-devkit/architect/src/builders-schema.json", + "builders": { + "deploy": { + "implementation": "./schematics/deploy/builder", + "schema": "./schematics/deploy/schema.json", + "description": "Deploy builder" + } + } + } \ No newline at end of file diff --git a/src/core/collection.json b/src/core/collection.json new file mode 100644 index 000000000..8a4fc0ae0 --- /dev/null +++ b/src/core/collection.json @@ -0,0 +1,9 @@ +{ + "$schema": "@angular-devkit/schematics/collection-schema.json", + "schematics": { + "ng-add": { + "description": "Add firebase deploy schematic", + "factory": "./schematics/ng-add/index#ngDeploy" + } + } + } \ No newline at end of file diff --git a/src/core/package.json b/src/core/package.json index 138de9948..0a9ae33ec 100644 --- a/src/core/package.json +++ b/src/core/package.json @@ -5,6 +5,8 @@ "main": "./bundles/core.umd.js", "module": "index.js", "es2015": "es2015/index.js", + "schematics": "./collection.json", + "builders": "./builders.json", "keywords": [ "angular", "firebase", @@ -27,5 +29,14 @@ "rxjs": "RXJS_VERSION", "zone.js": "ZONEJS_VERSION" }, + "dependencies": { + "@angular-devkit/architect": "^0.14.0-beta.5", + "@angular-devkit/core": "ANGULAR_VERSION", + "@angular-devkit/schematics": "ANGULAR_VERSION", + "firebase-tools": "FIREBASE_TOOLS_VERSION", + "fuzzy": "FUZZY_VERSION", + "inquirer": "INQUIRER_VERSION", + "inquirer-autocomplete-prompt": "INQUIRER_AUTOCOMPLETE_VERSION" + }, "typings": "index.d.ts" -} +} \ No newline at end of file diff --git a/src/deploy/builders/actions/__tests__/deploy.spec.d.ts b/src/deploy/builders/actions/__tests__/deploy.spec.d.ts deleted file mode 100644 index cb0ff5c3b..000000000 --- a/src/deploy/builders/actions/__tests__/deploy.spec.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/deploy/builders/actions/__tests__/deploy.spec.js b/src/deploy/builders/actions/__tests__/deploy.spec.js deleted file mode 100644 index 71236a1ce..000000000 --- a/src/deploy/builders/actions/__tests__/deploy.spec.js +++ /dev/null @@ -1,95 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const deploy_1 = require("../deploy"); -const core_1 = require("@angular-devkit/core"); -let context; -let firebaseMock; -const FIREBASE_PROJECT = 'ikachu-aa3ef'; -const PROJECT = 'pirojok-project'; -describe('Deploy Angular apps', () => { - beforeEach(() => initMocks()); - it('should check if the user is authenticated by invoking list', () => __awaiter(this, void 0, void 0, function* () { - const spy = spyOn(firebaseMock, 'list'); - const spyLogin = spyOn(firebaseMock, 'login'); - yield deploy_1.default(firebaseMock, context, 'host', FIREBASE_PROJECT); - expect(spy).toHaveBeenCalled(); - expect(spyLogin).not.toHaveBeenCalled(); - })); - it('should invoke login if list rejects', () => __awaiter(this, void 0, void 0, function* () { - firebaseMock.list = () => Promise.reject(); - const spy = spyOn(firebaseMock, 'list').and.callThrough(); - const spyLogin = spyOn(firebaseMock, 'login'); - yield deploy_1.default(firebaseMock, context, 'host', FIREBASE_PROJECT); - expect(spy).toHaveBeenCalled(); - expect(spyLogin).toHaveBeenCalled(); - })); - it('should invoke the builder', () => __awaiter(this, void 0, void 0, function* () { - const spy = spyOn(context, 'scheduleTarget').and.callThrough(); - yield deploy_1.default(firebaseMock, context, 'host', FIREBASE_PROJECT); - expect(spy).toHaveBeenCalled(); - expect(spy).toHaveBeenCalledWith({ - target: 'build', - configuration: 'production', - project: PROJECT - }); - })); - it('should invoke firebase.deploy', () => __awaiter(this, void 0, void 0, function* () { - const spy = spyOn(firebaseMock, 'deploy').and.callThrough(); - yield deploy_1.default(firebaseMock, context, 'host', FIREBASE_PROJECT); - expect(spy).toHaveBeenCalled(); - expect(spy).toHaveBeenCalledWith({ - cwd: 'host', only: 'hosting:' + PROJECT - }); - })); - describe('error handling', () => { - it('throws if there is no firebase project', () => __awaiter(this, void 0, void 0, function* () { - expect(deploy_1.default(firebaseMock, context, 'host')).rejects.toThrow(/Cannot find firebase project/); - })); - it('throws if there is no target project', () => __awaiter(this, void 0, void 0, function* () { - context.target = undefined; - expect(deploy_1.default(firebaseMock, context, 'host', FIREBASE_PROJECT)).rejects.toThrow(/Cannot execute the build target/); - })); - }); -}); -const initMocks = () => { - firebaseMock = { - login: () => Promise.resolve(), - list: () => Promise.resolve([]), - deploy: (_) => Promise.resolve(), - use: jest.fn() - }; - context = { - target: { - configuration: 'production', - project: PROJECT, - target: 'foo' - }, - builder: { - builderName: 'mock', - description: 'mock', - optionSchema: false - }, - currentDirectory: 'cwd', - id: 1, - logger: new core_1.logging.Logger('mock'), - workspaceRoot: 'cwd', - getTargetOptions: (_) => Promise.resolve({}), - reportProgress: (_, __, ___) => { - }, - reportStatus: (_) => { - }, - reportRunning: () => { - }, - scheduleBuilder: (_, __, ___) => Promise.resolve({}), - scheduleTarget: (_, __, ___) => Promise.resolve({}) - }; -}; -//# sourceMappingURL=deploy.spec.js.map \ No newline at end of file diff --git a/src/deploy/builders/actions/__tests__/deploy.spec.js.map b/src/deploy/builders/actions/__tests__/deploy.spec.js.map deleted file mode 100644 index 1f2f67a62..000000000 --- a/src/deploy/builders/actions/__tests__/deploy.spec.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deploy.spec.js","sourceRoot":"","sources":["deploy.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/deploy/builders/actions/__tests__/deploy.spec.ts b/src/deploy/builders/actions/__tests__/deploy.spec.ts deleted file mode 100644 index e0d15c3b5..000000000 --- a/src/deploy/builders/actions/__tests__/deploy.spec.ts +++ /dev/null @@ -1,99 +0,0 @@ -import deploy from '../deploy'; - -import { JsonObject, logging } from '@angular-devkit/core'; -import { BuilderContext, BuilderRun, ScheduleOptions, Target, } from '@angular-devkit/architect/src/index2'; -import { FirebaseDeployConfig, FirebaseTools } from '../../../shared/types'; - - -let context: BuilderContext; -let firebaseMock: FirebaseTools; - -const FIREBASE_PROJECT = 'ikachu-aa3ef'; -const PROJECT = 'pirojok-project'; - -describe('Deploy Angular apps', () => { - beforeEach(() => initMocks()); - - it('should check if the user is authenticated by invoking list', async () => { - const spy = spyOn(firebaseMock, 'list'); - const spyLogin = spyOn(firebaseMock, 'login'); - await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); - expect(spy).toHaveBeenCalled(); - expect(spyLogin).not.toHaveBeenCalled(); - }); - - it('should invoke login if list rejects', async () => { - firebaseMock.list = () => Promise.reject(); - const spy = spyOn(firebaseMock, 'list').and.callThrough(); - const spyLogin = spyOn(firebaseMock, 'login'); - await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); - expect(spy).toHaveBeenCalled(); - expect(spyLogin).toHaveBeenCalled(); - }); - - it('should invoke the builder', async () => { - const spy = spyOn(context, 'scheduleTarget').and.callThrough(); - await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); - expect(spy).toHaveBeenCalled(); - expect(spy).toHaveBeenCalledWith({ - target: 'build', - configuration: 'production', - project: PROJECT - }); - }); - - it('should invoke firebase.deploy', async () => { - const spy = spyOn(firebaseMock, 'deploy').and.callThrough(); - await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); - expect(spy).toHaveBeenCalled(); - expect(spy).toHaveBeenCalledWith({ - cwd: 'host', only: 'hosting:' + PROJECT - }); - }); - - describe('error handling', () => { - it('throws if there is no firebase project', async () => { - expect(deploy(firebaseMock, context, 'host')).rejects.toThrow(/Cannot find firebase project/); - }); - - it('throws if there is no target project', async () => { - context.target = undefined; - expect(deploy(firebaseMock, context, 'host', FIREBASE_PROJECT)).rejects.toThrow(/Cannot execute the build target/); - }); - }); -}); - -const initMocks = () => { - firebaseMock = { - login: () => Promise.resolve(), - list: () => Promise.resolve([]), - deploy: (_: FirebaseDeployConfig) => Promise.resolve(), - use: jest.fn() - }; - - context = { - target: { - configuration: 'production', - project: PROJECT, - target: 'foo' - }, - builder: { - builderName: 'mock', - description: 'mock', - optionSchema: false - }, - currentDirectory: 'cwd', - id: 1, - logger: new logging.Logger('mock'), - workspaceRoot: 'cwd', - getTargetOptions: (_: Target) => Promise.resolve({}), - reportProgress: (_: number, __?: number, ___?: string) => { - }, - reportStatus: (_: string) => { - }, - reportRunning: () => { - }, - scheduleBuilder: (_: string, __?: JsonObject, ___?: ScheduleOptions) => Promise.resolve({} as BuilderRun), - scheduleTarget: (_: Target, __?: JsonObject, ___?: ScheduleOptions) => Promise.resolve({} as BuilderRun) - }; -}; diff --git a/src/deploy/builders/actions/deploy.d.ts b/src/deploy/builders/actions/deploy.d.ts deleted file mode 100644 index 96d2d87a1..000000000 --- a/src/deploy/builders/actions/deploy.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { BuilderContext } from '@angular-devkit/architect/src/index2'; -import { FirebaseTools } from '../../shared/types'; -export default function deploy(firebaseTools: FirebaseTools, context: BuilderContext, projectRoot: string, firebaseProject?: string): Promise; diff --git a/src/deploy/builders/actions/deploy.js b/src/deploy/builders/actions/deploy.js deleted file mode 100644 index b7d3a707c..000000000 --- a/src/deploy/builders/actions/deploy.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -function deploy(firebaseTools, context, projectRoot, firebaseProject) { - return __awaiter(this, void 0, void 0, function* () { - if (!firebaseProject) { - throw new Error('Cannot find firebase project for your app in .firebaserc'); - } - try { - yield firebaseTools.list(); - } - catch (e) { - context.logger.warn("🚨 You're not logged into Firebase. Logging you in..."); - yield firebaseTools.login(); - } - if (!context.target) { - throw new Error('Cannot execute the build target'); - } - context.logger.info(`📦 Building "${context.target.project}"`); - const run = yield context.scheduleTarget({ - target: 'build', - project: context.target.project, - configuration: 'production' - }); - yield run.result; - try { - yield firebaseTools.use(firebaseProject, { project: firebaseProject }); - } - catch (e) { - throw new Error(`Cannot select firebase project '${firebaseProject}'`); - } - try { - const success = yield firebaseTools.deploy({ only: 'hosting:' + context.target.project, cwd: projectRoot }); - context.logger.info(`🚀 Your application is now available at https://${success.hosting.split('/')[1]}.firebaseapp.com/`); - } - catch (e) { - context.logger.error(e); - } - }); -} -exports.default = deploy; -//# sourceMappingURL=deploy.js.map \ No newline at end of file diff --git a/src/deploy/builders/actions/deploy.js.map b/src/deploy/builders/actions/deploy.js.map deleted file mode 100644 index dd0132661..000000000 --- a/src/deploy/builders/actions/deploy.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deploy.js","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":";;;;;;;;;;AAGA,SAA8B,MAAM,CAAC,aAA4B,EAAE,OAAuB,EAAE,WAAmB,EAAE,eAAwB;;QACrI,IAAI,CAAC,eAAe,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAC/E;QAED,IAAI;YACA,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;SAC9B;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YAC7E,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACtD;QAED,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QAE/D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC;YACrC,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;YAC/B,aAAa,EAAE,YAAY;SAC9B,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,CAAC;QAEjB,IAAI;YACA,MAAM,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;SACxE;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,mCAAmC,eAAe,GAAG,CAAC,CAAC;SAC1E;QAGD,IAAI;YACA,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAC,CAAC,CAAC;YAC1G,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;SAC5H;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3B;IACL,CAAC;CAAA;AArCD,yBAqCC"} \ No newline at end of file diff --git a/src/deploy/builders/builder.d.ts b/src/deploy/builders/builder.d.ts deleted file mode 100644 index 3eb9e9f05..000000000 --- a/src/deploy/builders/builder.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: import("@angular-devkit/architect/src/internal").Builder; -export default _default; diff --git a/src/deploy/builders/builder.js b/src/deploy/builders/builder.js deleted file mode 100644 index 10a1d6c53..000000000 --- a/src/deploy/builders/builder.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const index2_1 = require("@angular-devkit/architect/src/index2"); -const node_1 = require("@angular-devkit/core/node"); -const deploy_1 = require("./actions/deploy"); -const core_1 = require("@angular-devkit/core"); -const utils_1 = require("../shared/utils"); -// Call the createBuilder() function to create a builder. This mirrors -// createJobHandler() but add typings specific to Architect Builders. -exports.default = index2_1.createBuilder((_, context) => __awaiter(this, void 0, void 0, function* () { - // The project root is added to a BuilderContext. - const root = core_1.normalize(context.workspaceRoot); - const workspace = new core_1.experimental.workspace.Workspace(root, new node_1.NodeJsSyncHost()); - yield workspace.loadWorkspaceFromHost(core_1.normalize('angular.json')).toPromise(); - if (!context.target) { - throw new Error('Cannot deploy the application without a target'); - } - const project = workspace.getProject(context.target.project); - const firebaseProject = utils_1.getFirebaseProjectName(workspace.root, context.target.project); - try { - yield deploy_1.default(require('firebase-tools'), context, core_1.join(workspace.root, project.root), firebaseProject); - } - catch (e) { - console.error('Error when trying to deploy: '); - console.error(e.message); - return { success: false }; - } - return { success: true }; -})); -//# sourceMappingURL=builder.js.map \ No newline at end of file diff --git a/src/deploy/builders/builder.js.map b/src/deploy/builders/builder.js.map deleted file mode 100644 index 52ec82712..000000000 --- a/src/deploy/builders/builder.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"builder.js","sourceRoot":"","sources":["builder.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,iEAAoG;AACpG,oDAA2D;AAC3D,6CAAsC;AACtC,+CAAqE;AACrE,2CAAyD;AAEzD,sEAAsE;AACtE,qEAAqE;AACrE,kBAAe,sBAAa,CACxB,CAAO,CAAM,EAAE,OAAuB,EAA0B,EAAE;IAC9D,iDAAiD;IACjD,MAAM,IAAI,GAAG,gBAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,mBAAY,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,qBAAc,EAAE,CAAC,CAAC;IACnF,MAAM,SAAS,CAAC,qBAAqB,CAAC,gBAAS,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAE7E,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACrE;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7D,MAAM,eAAe,GAAG,8BAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvF,IAAI;QACA,MAAM,gBAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,WAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;KACzG;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,CAAA;KAC1B;IAED,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,CAAA;AAC1B,CAAC,CAAA,CACJ,CAAC"} \ No newline at end of file diff --git a/src/deploy/ng-add/index.d.ts b/src/deploy/ng-add/index.d.ts deleted file mode 100644 index 0e21991ca..000000000 --- a/src/deploy/ng-add/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Tree } from '@angular-devkit/schematics'; -import { Observable } from 'rxjs'; -interface DeployOptions { - project: string; -} -export declare function ngDeploy({ project }: DeployOptions): (host: Tree) => Observable; -export {}; diff --git a/src/deploy/ng-add/index.js b/src/deploy/ng-add/index.js deleted file mode 100644 index d087f5e33..000000000 --- a/src/deploy/ng-add/index.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const rxjs_1 = require("rxjs"); -const ng_add_1 = require("./ng-add"); -const utils_1 = require("../shared/utils"); -// You don't have to export the function as default. You can also have more than one rule factory -// per file. -function ngDeploy({ project }) { - return (host) => { - return rxjs_1.from(utils_1.listProjects().then((projects) => { - return utils_1.projectPrompt(projects).then(({ firebaseProject }) => { - return ng_add_1.ngAdd(host, { firebaseProject, project }); - }); - })); - }; -} -exports.ngDeploy = ngDeploy; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/src/deploy/ng-add/index.js.map b/src/deploy/ng-add/index.js.map deleted file mode 100644 index 191c20076..000000000 --- a/src/deploy/ng-add/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AACA,+BAAwC;AAIxC,qCAAiC;AACjC,2CAA8D;AAM9D,iGAAiG;AACjG,YAAY;AACZ,SAAgB,QAAQ,CAAC,EAAC,OAAO,EAAgB;IAC7C,OAAO,CAAC,IAAU,EAAoB,EAAE;QAEpC,OAAO,WAAI,CACP,oBAAY,EAAE,CAAC,IAAI,CAAC,CAAC,QAAmB,EAAE,EAAE;YACxC,OAAO,qBAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,eAAe,EAAM,EAAE,EAAE;gBAC3D,OAAO,cAAK,CAAC,IAAI,EAAE,EAAC,eAAe,EAAE,OAAO,EAAC,CAAC,CAAA;YAClD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CACL,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAXD,4BAWC"} \ No newline at end of file diff --git a/src/deploy/ng-add/ng-add.d.ts b/src/deploy/ng-add/ng-add.d.ts deleted file mode 100644 index 324fd4ac9..000000000 --- a/src/deploy/ng-add/ng-add.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Tree } from '@angular-devkit/schematics'; -interface NgAddOptions { - firebaseProject: string; - project?: string; -} -export declare function ngAdd(tree: Tree, options: NgAddOptions): import("@angular-devkit/schematics/src/tree/interface").Tree; -export {}; diff --git a/src/deploy/ng-add/ng-add.js b/src/deploy/ng-add/ng-add.js deleted file mode 100644 index 5d45226dd..000000000 --- a/src/deploy/ng-add/ng-add.js +++ /dev/null @@ -1,120 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const schematics_1 = require("@angular-devkit/schematics"); -const core_1 = require("@angular-devkit/core"); -const stringifyFormatted = (obj) => JSON.stringify(obj, null, 2); -function emptyFirebaseJson() { - return { - hosting: [] - }; -} -function emptyFirebaseRc() { - return { - targets: {} - }; -} -function generateHostingConfig(project, dist) { - return { - target: project, - public: dist, - ignore: ['firebase.json', '**/.*', '**/node_modules/**'], - rewrites: [ - { - source: '**', - destination: '/index.html' - } - ] - }; -} -function safeReadJSON(path, tree) { - try { - return JSON.parse(tree.read(path).toString()); - } - catch (e) { - throw new schematics_1.SchematicsException(`Error when parsing ${path}: ${e.message}`); - } -} -function generateFirebaseJson(tree, path, project, dist) { - let firebaseJson = tree.exists(path) ? safeReadJSON(path, tree) : emptyFirebaseJson(); - if (firebaseJson.hosting.find(config => config.target === project)) { - throw new schematics_1.SchematicsException(`Target ${project} already exists in firebase.json`); - } - firebaseJson.hosting.push(generateHostingConfig(project, dist)); - overwriteIfExists(tree, path, stringifyFormatted(firebaseJson)); -} -function generateFirebaseRcTarget(firebaseProject, project) { - return { - "hosting": { - [project]: [ - // TODO(kirjs): Generally site name is consistent with the project name, but there are edge cases. - firebaseProject - ] - } - }; -} -function generateFirebaseRc(tree, path, firebaseProject, project) { - const firebaseRc = tree.exists(path) ? safeReadJSON(path, tree) : emptyFirebaseRc(); - if (firebaseProject in firebaseRc.targets) { - throw new schematics_1.SchematicsException(`Firebase project ${firebaseProject} already defined in .firebaserc`); - } - firebaseRc.targets[firebaseProject] = generateFirebaseRcTarget(firebaseProject, project); - overwriteIfExists(tree, path, stringifyFormatted(firebaseRc)); -} -const overwriteIfExists = (tree, path, content) => { - if (tree.exists(path)) - tree.overwrite(path, content); - else - tree.create(path, content); -}; -function getWorkspace(host) { - const possibleFiles = ['/angular.json', '/.angular.json']; - const path = possibleFiles.filter(path => host.exists(path))[0]; - const configBuffer = host.read(path); - if (configBuffer === null) { - throw new schematics_1.SchematicsException(`Could not find angular.json`); - } - const content = configBuffer.toString(); - let workspace; - try { - workspace = core_1.parseJson(content, core_1.JsonParseMode.Loose); - } - catch (e) { - throw new schematics_1.SchematicsException(`Could not parse angular.json: ` + e.message); - } - return { - path, - workspace, - }; -} -function ngAdd(tree, options) { - const { path: workspacePath, workspace } = getWorkspace(tree); - if (!options.project) { - if (workspace.defaultProject) { - options.project = workspace.defaultProject; - } - else { - throw new schematics_1.SchematicsException('No project selected and no default project in the workspace'); - } - } - const project = workspace.projects[options.project]; - if (!project) { - throw new schematics_1.SchematicsException('Project is not defined in this workspace'); - } - if (project.projectType !== 'application') { - throw new schematics_1.SchematicsException(`Deploy requires a project type of "application" in angular.json`); - } - if (!project.architect || !project.architect.build || !project.architect.build.options || !project.architect.build.options.outputPath) { - throw new schematics_1.SchematicsException(`Cannot read the output path (architect.build.options.outputPath) of project "${options.project}" in angular.json`); - } - const outputPath = project.architect.build.options.outputPath; - project.architect['deploy'] = { - builder: 'ng-deploy:deploy', - options: {} - }; - tree.overwrite(workspacePath, JSON.stringify(workspace, null, 2)); - generateFirebaseJson(tree, 'firebase.json', options.project, outputPath); - generateFirebaseRc(tree, '.firebaserc', options.firebaseProject, options.project); - return tree; -} -exports.ngAdd = ngAdd; -//# sourceMappingURL=ng-add.js.map \ No newline at end of file diff --git a/src/deploy/ng-add/ng-add.js.map b/src/deploy/ng-add/ng-add.js.map deleted file mode 100644 index e229c5817..000000000 --- a/src/deploy/ng-add/ng-add.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ng-add.js","sourceRoot":"","sources":["ng-add.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/deploy/ng-add/ng-add.spec.d.ts b/src/deploy/ng-add/ng-add.spec.d.ts deleted file mode 100644 index cb0ff5c3b..000000000 --- a/src/deploy/ng-add/ng-add.spec.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/deploy/ng-add/ng-add.spec.js b/src/deploy/ng-add/ng-add.spec.js deleted file mode 100644 index c21b9d8e5..000000000 --- a/src/deploy/ng-add/ng-add.spec.js +++ /dev/null @@ -1,170 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const schematics_1 = require("@angular-devkit/schematics"); -const ng_add_1 = require("./ng-add"); -const PROJECT_NAME = 'pie-ka-chu'; -const PROJECT_ROOT = 'pirojok'; -const FIREBASE_PROJECT = 'pirojok-111e3'; -const OTHER_PROJECT_NAME = 'pi-catch-you'; -const OTHER_FIREBASE_PROJECT_NAME = 'bi-catch-you-77e7e'; -describe('ng-add', () => { - describe('generating files', () => { - let tree; - beforeEach(() => { - tree = schematics_1.Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - }); - it('generates new files if starting from scratch', () => __awaiter(this, void 0, void 0, function* () { - const result = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }); - expect(result.read('firebase.json').toString()).toMatchSnapshot(); - expect(result.read('.firebaserc').toString()).toMatchSnapshot(); - expect(result.read('angular.json').toString()).toMatchSnapshot(); - })); - it('uses default project', () => __awaiter(this, void 0, void 0, function* () { - const result = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT }); - expect(result.read('firebase.json').toString()).toMatchSnapshot(); - expect(result.read('.firebaserc').toString()).toMatchSnapshot(); - expect(result.read('angular.json').toString()).toMatchSnapshot(); - })); - it('overrides existing files', () => __awaiter(this, void 0, void 0, function* () { - const tempTree = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }); - const result = ng_add_1.ngAdd(tempTree, { firebaseProject: OTHER_FIREBASE_PROJECT_NAME, project: OTHER_PROJECT_NAME }); - expect(result.read('firebase.json').toString()).toMatchSnapshot(); - expect(result.read('.firebaserc').toString()).toMatchSnapshot(); - expect(result.read('angular.json').toString()).toMatchSnapshot(); - })); - }); - describe('error handling', () => { - it('fails if project not defined', () => { - const tree = schematics_1.Tree.empty(); - const angularJSON = generateAngularJson(); - delete angularJSON.defaultProject; - tree.create('angular.json', JSON.stringify(angularJSON)); - expect(() => ng_add_1.ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: '' - })).toThrowError(/No project selected and no default project in the workspace/); - }); - it('Should throw if angular.json not found', () => __awaiter(this, void 0, void 0, function* () { - expect(() => ng_add_1.ngAdd(schematics_1.Tree.empty(), { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/Could not find angular.json/); - })); - it('Should throw if angular.json can not be parsed', () => __awaiter(this, void 0, void 0, function* () { - const tree = schematics_1.Tree.empty(); - tree.create('angular.json', 'hi'); - expect(() => ng_add_1.ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/Could not parse angular.json/); - })); - it('Should throw if specified project does not exist ', () => __awaiter(this, void 0, void 0, function* () { - const tree = schematics_1.Tree.empty(); - tree.create('angular.json', JSON.stringify({ projects: {} })); - expect(() => ng_add_1.ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/Project is not defined in this workspace/); - })); - it('Should throw if specified project is not application', () => __awaiter(this, void 0, void 0, function* () { - const tree = schematics_1.Tree.empty(); - tree.create('angular.json', JSON.stringify({ projects: { [PROJECT_NAME]: { projectType: 'pokemon' } } })); - expect(() => ng_add_1.ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/Deploy requires a project type of "application"/); - })); - it('Should throw if app does not have architect configured', () => __awaiter(this, void 0, void 0, function* () { - const tree = schematics_1.Tree.empty(); - tree.create('angular.json', JSON.stringify({ projects: { [PROJECT_NAME]: { projectType: 'application' } } })); - expect(() => ng_add_1.ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/Cannot read the output path/); - })); - it('Should throw if firebase.json has the project already', () => __awaiter(this, void 0, void 0, function* () { - const tree = schematics_1.Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - const tempTree = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }); - expect(() => ng_add_1.ngAdd(tempTree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/already exists in firebase.json/); - })); - it('Should throw if firebase.json is broken', () => __awaiter(this, void 0, void 0, function* () { - const tree = schematics_1.Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - tree.create('firebase.json', 'I\'m broken 😔'); - expect(() => ng_add_1.ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/firebase.json: Unexpected token/); - })); - it('Should throw if .firebaserc is broken', () => __awaiter(this, void 0, void 0, function* () { - const tree = schematics_1.Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - tree.create('.firebaserc', 'I\'m broken 😔'); - expect(() => ng_add_1.ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/.firebaserc: Unexpected token/); - })); - it('Should throw if firebase.json has the project already', () => __awaiter(this, void 0, void 0, function* () { - const tree = schematics_1.Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - const tempTree = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }); - expect(() => ng_add_1.ngAdd(tempTree, { - firebaseProject: FIREBASE_PROJECT, - project: OTHER_PROJECT_NAME - })).toThrowError(/ already defined in .firebaserc/); - })); - it('Should throw if firebase.json is broken', () => __awaiter(this, void 0, void 0, function* () { - const tree = schematics_1.Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - const tempTree = ng_add_1.ngAdd(tree, { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }); - expect(() => ng_add_1.ngAdd(tempTree, { - firebaseProject: FIREBASE_PROJECT, - project: OTHER_PROJECT_NAME - })).toThrowError(/ already defined in .firebaserc/); - })); - }); -}); -function generateAngularJson() { - return { - defaultProject: PROJECT_NAME, - projects: { - [PROJECT_NAME]: { - projectType: 'application', - root: PROJECT_ROOT, - architect: { - build: { - options: { - outputPath: 'dist/ikachu' - } - }, - } - }, - [OTHER_PROJECT_NAME]: { - projectType: 'application', - root: PROJECT_ROOT, - architect: { - build: { - options: { - outputPath: 'dist/ikachu' - } - }, - } - } - } - }; -} -//# sourceMappingURL=ng-add.spec.js.map diff --git a/src/deploy/ng-add/ng-add.spec.js.map b/src/deploy/ng-add/ng-add.spec.js.map deleted file mode 100644 index 3e19f9229..000000000 --- a/src/deploy/ng-add/ng-add.spec.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ng-add.spec.js","sourceRoot":"","sources":["ng-add.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/deploy/ng-add/ng-add.spec.ts b/src/deploy/ng-add/ng-add.spec.ts deleted file mode 100644 index 55938c1f7..000000000 --- a/src/deploy/ng-add/ng-add.spec.ts +++ /dev/null @@ -1,184 +0,0 @@ -import { Tree } from '@angular-devkit/schematics'; -import { ngAdd } from './ng-add'; - - -const PROJECT_NAME = 'pie-ka-chu'; -const PROJECT_ROOT = 'pirojok'; -const FIREBASE_PROJECT = 'pirojok-111e3'; - -const OTHER_PROJECT_NAME = 'pi-catch-you'; -const OTHER_FIREBASE_PROJECT_NAME = 'bi-catch-you-77e7e'; - -describe('ng-add', () => { - describe('generating files', () => { - let tree: Tree; - - beforeEach(() => { - tree = Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - }); - - it('generates new files if starting from scratch', async () => { - const result = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); - expect(result.read('firebase.json')!.toString()).toMatchSnapshot(); - expect(result.read('.firebaserc')!.toString()).toMatchSnapshot(); - expect(result.read('angular.json')!.toString()).toMatchSnapshot(); - }); - - it('uses default project', async () => { - const result = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT}); - expect(result.read('firebase.json')!.toString()).toMatchSnapshot(); - expect(result.read('.firebaserc')!.toString()).toMatchSnapshot(); - expect(result.read('angular.json')!.toString()).toMatchSnapshot(); - }); - - it('overrides existing files', async () => { - const tempTree = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); - const result = ngAdd(tempTree, {firebaseProject: OTHER_FIREBASE_PROJECT_NAME, project: OTHER_PROJECT_NAME}); - expect(result.read('firebase.json')!.toString()).toMatchSnapshot(); - expect(result.read('.firebaserc')!.toString()).toMatchSnapshot(); - expect(result.read('angular.json')!.toString()).toMatchSnapshot(); - }); - }); - - describe('error handling', () => { - it('fails if project not defined', () => { - const tree = Tree.empty(); - const angularJSON = generateAngularJson(); - delete angularJSON.defaultProject; - tree.create('angular.json', JSON.stringify(angularJSON)); - expect(() => ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: '' - })).toThrowError(/No project selected and no default project in the workspace/); - }); - - it('Should throw if angular.json not found', async () => { - expect(() => ngAdd(Tree.empty(), { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/Could not find angular.json/) - }); - - it('Should throw if angular.json can not be parsed', async () => { - const tree = Tree.empty(); - tree.create('angular.json', 'hi'); - expect(() => ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/Could not parse angular.json/) - }); - - it('Should throw if specified project does not exist ', async () => { - const tree = Tree.empty(); - tree.create('angular.json', JSON.stringify({projects: {}})); - expect(() => ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/Project is not defined in this workspace/) - }); - - it('Should throw if specified project is not application', async () => { - const tree = Tree.empty(); - tree.create('angular.json', JSON.stringify({projects: {[PROJECT_NAME]: {projectType: 'pokemon'}}})); - expect(() => ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/Deploy requires a project type of "application"/) - }); - - it('Should throw if app does not have architect configured', async () => { - const tree = Tree.empty(); - tree.create('angular.json', JSON.stringify({projects: {[PROJECT_NAME]: {projectType: 'application'}}})); - expect(() => ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/Cannot read the output path/) - }); - - it('Should throw if firebase.json has the project already', async () => { - const tree = Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - const tempTree = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); - - expect(() => ngAdd(tempTree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/already exists in firebase.json/); - }); - - it('Should throw if firebase.json is broken', async () => { - const tree = Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - tree.create('firebase.json', 'I\'m broken 😔'); - expect(() => ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/firebase.json: Unexpected token/); - }); - - it('Should throw if .firebaserc is broken', async () => { - const tree = Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - tree.create('.firebaserc', 'I\'m broken 😔'); - expect(() => ngAdd(tree, { - firebaseProject: FIREBASE_PROJECT, - project: PROJECT_NAME - })).toThrowError(/.firebaserc: Unexpected token/); - }); - - it('Should throw if firebase.json has the project already', async () => { - const tree = Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - const tempTree = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); - - expect(() => ngAdd(tempTree, { - firebaseProject: FIREBASE_PROJECT, - project: OTHER_PROJECT_NAME - })).toThrowError(/ already defined in .firebaserc/); - }); - - it('Should throw if firebase.json is broken', async () => { - const tree = Tree.empty(); - tree.create('angular.json', JSON.stringify(generateAngularJson())); - - const tempTree = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); - - expect(() => ngAdd(tempTree, { - firebaseProject: FIREBASE_PROJECT, - project: OTHER_PROJECT_NAME - })).toThrowError(/ already defined in .firebaserc/); - }); - }); -}); - - -function generateAngularJson() { - return { - defaultProject: PROJECT_NAME, - projects: { - [PROJECT_NAME]: { - projectType: 'application', - root: PROJECT_ROOT, - architect: { - build: { - options: { - outputPath: 'dist/ikachu' - } - }, - } - }, - [OTHER_PROJECT_NAME]: { - projectType: 'application', - root: PROJECT_ROOT, - architect: { - build: { - options: { - outputPath: 'dist/ikachu' - } - }, - } - } - } - }; -} diff --git a/src/deploy/package.json b/src/deploy/package.json deleted file mode 100644 index e72a99e52..000000000 --- a/src/deploy/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "ng-deploy", - "version": "0.0.0", - "description": "A blank schematics", - "scripts": { - "build": "tsc -p tsconfig.json", - "start": "tsc -p tsconfig.json -w", - "format": "prettier --config ./.prettierrc \"*.{json,md}\" \"src/**/*.{css,scss,ts}\" \"test/**/*.{css,scss,ts}\" --write", - "test": "jest '.*\\.spec\\.ts'" - }, - "keywords": [ - "schematics" - ], - "author": "", - "license": "MIT", - "schematics": "./collection.json", - "builders": "./builders.json", - "dependencies": { - "@angular-devkit/architect": "^0.14.0-beta.5", - "@angular-devkit/core": "^8.0.0-beta.5", - "@angular-devkit/schematics": "^8.0.0-beta.5", - "@types/node": "^8.0.31", - "firebase-tools": "^6.3.1", - "fuzzy": "^0.1.3", - "inquirer": "^6.2.2", - "inquirer-autocomplete-prompt": "^1.0.1" - }, - "devDependencies": { - "@angular/cli": "^8.0.0-beta.4", - "@types/inquirer": "0.0.44", - "@types/jest": "^24.0.9", - "jest": "^24.3.1", - "prettier": "^1.16.4", - "schematics-utilities": "^1.1.1", - "ts-jest": "^24.0.0", - "typescript": "~3.2.2" - } -} diff --git a/src/deploy/shared/types.d.ts b/src/deploy/shared/types.d.ts deleted file mode 100644 index cc546bd58..000000000 --- a/src/deploy/shared/types.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -export interface Project { - name: string; - id: string; - permission: 'edit' | 'view' | 'own'; -} -export interface FirebaseDeployConfig { - cwd: string; - only?: string; -} -export interface FirebaseTools { - login(): Promise; - list(): Promise; - deploy(config: FirebaseDeployConfig): Promise; - use(options: any, lol: any): Promise; -} -export interface FirebaseHostingRewrite { - source: string; - destination: string; -} -export interface FirebaseHostingConfig { - public: string; - ignore: string[]; - target: string; - rewrites: FirebaseHostingRewrite[]; -} -export interface FirebaseJSON { - hosting: FirebaseHostingConfig[]; -} -export interface FirebaseRcTarget { - hosting: Record; -} -export interface FirebaseRc { - targets: Record; -} diff --git a/src/deploy/shared/types.js b/src/deploy/shared/types.js deleted file mode 100644 index 11e638d1e..000000000 --- a/src/deploy/shared/types.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/src/deploy/shared/types.js.map b/src/deploy/shared/types.js.map deleted file mode 100644 index 8da0887a5..000000000 --- a/src/deploy/shared/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/src/deploy/shared/utils.d.ts b/src/deploy/shared/utils.d.ts deleted file mode 100644 index a8a2af86b..000000000 --- a/src/deploy/shared/utils.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Project } from './types'; -export declare function listProjects(): any; -export declare const projectPrompt: (projects: Project[]) => any; -export declare function getFirebaseProjectName(projectRoot: string, target: string): string | undefined; diff --git a/src/deploy/shared/utils.js b/src/deploy/shared/utils.js deleted file mode 100644 index cffeac7f7..000000000 --- a/src/deploy/shared/utils.js +++ /dev/null @@ -1,54 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const fs_1 = require("fs"); -const inquirer = require("inquirer"); -const path_1 = require("path"); -const firebase = require('firebase-tools'); -const fuzzy = require('fuzzy'); -function listProjects() { - return firebase.list().catch( - /* If list failed, then login and try again. */ - () => firebase.login().then(() => firebase.list())); -} -exports.listProjects = listProjects; -inquirer.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt')); -// `fuzzy` passes either the original list of projects or an internal object -// which contains the project as a property. -const isProject = (elem) => { - return elem.original === undefined; -}; -const searchProjects = (projects) => { - return (_, input) => { - return Promise.resolve(fuzzy - .filter(input, projects, { - extract(el) { - return `${el.id} ${el.name} ${el.permission}`; - } - }) - .map((result) => { - let original; - if (isProject(result)) { - original = result; - } - else { - original = result.original; - } - return { name: `${original.id} (${original.name})`, title: original.name, value: original.id }; - })); - }; -}; -exports.projectPrompt = (projects) => { - return inquirer.prompt({ - type: 'autocomplete', - name: 'firebaseProject', - source: searchProjects(projects), - message: 'Please select a project:' - }); -}; -function getFirebaseProjectName(projectRoot, target) { - const { targets } = JSON.parse(fs_1.readFileSync(path_1.join(projectRoot, '.firebaserc'), 'UTF-8')); - const projects = Object.keys(targets); - return projects.find(project => !!Object.keys(targets[project].hosting).find(t => t === target)); -} -exports.getFirebaseProjectName = getFirebaseProjectName; -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/src/deploy/shared/utils.js.map b/src/deploy/shared/utils.js.map deleted file mode 100644 index 8d44b2e5b..000000000 --- a/src/deploy/shared/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":";;AAAA,2BAAkC;AAClC,qCAAqC;AAErC,+BAA4B;AAE5B,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE3C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/B,SAAgB,YAAY;IACxB,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK;IACxB,+CAA+C;IAC/C,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAJD,oCAIC;AAGD,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAEjF,4EAA4E;AAC5E,4CAA4C;AAC5C,MAAM,SAAS,GAAG,CAAC,IAAqC,EAAmB,EAAE;IACzE,OAA+B,IAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,QAAmB,EAAE,EAAE;IAC3C,OAAO,CAAC,CAAM,EAAE,KAAa,EAAE,EAAE;QAC7B,OAAO,OAAO,CAAC,OAAO,CAClB,KAAK;aACA,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE;YACrB,OAAO,CAAC,EAAW;gBACf,OAAO,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YAClD,CAAC;SACJ,CAAC;aACD,GAAG,CAAC,CAAC,MAAuC,EAAE,EAAE;YAC7C,IAAI,QAAiB,CAAC;YACtB,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;gBACnB,QAAQ,GAAG,MAAM,CAAC;aACrB;iBAAM;gBACH,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;aAC9B;YACD,OAAO,EAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAC,CAAC;QACjG,CAAC,CAAC,CACT,CAAC;IACN,CAAC,CAAC;AACN,CAAC,CAAC;AAEW,QAAA,aAAa,GAAG,CAAC,QAAmB,EAAE,EAAE;IACjD,OAAQ,QAAgB,CAAC,MAAM,CAAC;QAC5B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC;QAChC,OAAO,EAAE,0BAA0B;KACtC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,SAAgB,sBAAsB,CAAC,WAAmB,EAAE,MAAc;IACtE,MAAM,EAAC,OAAO,EAAC,GAAe,IAAI,CAAC,KAAK,CAAC,iBAAY,CAAC,WAAI,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAClG,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AACrG,CAAC;AAJD,wDAIC"} \ No newline at end of file diff --git a/src/root.spec.js b/src/root.spec.js index 62285d9d6..b619bf9f1 100644 --- a/src/root.spec.js +++ b/src/root.spec.js @@ -13,8 +13,7 @@ export * from './packages-dist/database/list/snapshot-changes.spec'; export * from './packages-dist/database/list/state-changes.spec'; export * from './packages-dist/database/list/audit-trail.spec'; export * from './packages-dist/storage/storage.spec'; -export * from './packages-dist/storage/storage.spec'; -export * from './packages-dist/deploy/ng-add/ng-add.spec'; +//export * from './packages-dist/schematics/ng-add.spec'; //export * from './packages-dist/messaging/messaging.spec'; // // Since this a deprecated API, we run on it on manual tests only diff --git a/src/deploy/builders/actions/deploy.ts b/src/schematics/deploy/actions.ts similarity index 96% rename from src/deploy/builders/actions/deploy.ts rename to src/schematics/deploy/actions.ts index fb5d79a61..cc6956ab8 100644 --- a/src/deploy/builders/actions/deploy.ts +++ b/src/schematics/deploy/actions.ts @@ -1,5 +1,5 @@ import { BuilderContext } from '@angular-devkit/architect/src/index2'; -import { FirebaseTools } from '../../shared/types'; +import { FirebaseTools } from '../interfaces'; export default async function deploy(firebaseTools: FirebaseTools, context: BuilderContext, projectRoot: string, firebaseProject?: string) { if (!firebaseProject) { diff --git a/src/deploy/builders/builder.ts b/src/schematics/deploy/builder.ts similarity index 93% rename from src/deploy/builders/builder.ts rename to src/schematics/deploy/builder.ts index fdae304cb..e9c1a7083 100644 --- a/src/deploy/builders/builder.ts +++ b/src/schematics/deploy/builder.ts @@ -1,8 +1,8 @@ import { BuilderContext, BuilderOutput, createBuilder } from '@angular-devkit/architect/src/index2'; import { NodeJsSyncHost } from '@angular-devkit/core/node'; -import deploy from './actions/deploy'; +import deploy from './actions'; import { experimental, join, normalize } from '@angular-devkit/core'; -import { getFirebaseProjectName } from '../shared/utils'; +import { getFirebaseProjectName } from '../utils'; // Call the createBuilder() function to create a builder. This mirrors // createJobHandler() but add typings specific to Architect Builders. diff --git a/src/schematics/deploy/index.spec.ts b/src/schematics/deploy/index.spec.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/deploy/builders/schema.json b/src/schematics/deploy/schema.json similarity index 100% rename from src/deploy/builders/schema.json rename to src/schematics/deploy/schema.json diff --git a/src/schematics/index.spec.ts b/src/schematics/index.spec.ts new file mode 100644 index 000000000..089e39b87 --- /dev/null +++ b/src/schematics/index.spec.ts @@ -0,0 +1,2 @@ +import './ng-add.spec'; +import './deploy/index.spec'; \ No newline at end of file diff --git a/src/deploy/ng-add/index.ts b/src/schematics/index.ts similarity index 82% rename from src/deploy/ng-add/index.ts rename to src/schematics/index.ts index 3315aa451..cee7ea3e5 100644 --- a/src/deploy/ng-add/index.ts +++ b/src/schematics/index.ts @@ -1,10 +1,8 @@ import { Tree } from '@angular-devkit/schematics'; import { from, Observable } from 'rxjs'; - -import { Project } from '../shared/types'; - +import { Project } from './interfaces'; import { ngAdd } from './ng-add'; -import { listProjects, projectPrompt } from '../shared/utils'; +import { listProjects, projectPrompt } from './utils'; interface DeployOptions { project: string; @@ -14,8 +12,7 @@ interface DeployOptions { // per file. export function ngDeploy({project}: DeployOptions): (host: Tree) => Observable { return (host: Tree): Observable => { - - return from>( + return from( listProjects().then((projects: Project[]) => { return projectPrompt(projects).then(({firebaseProject}: any) => { return ngAdd(host, {firebaseProject, project}) diff --git a/src/deploy/shared/types.ts b/src/schematics/interfaces.ts similarity index 100% rename from src/deploy/shared/types.ts rename to src/schematics/interfaces.ts diff --git a/src/schematics/ng-add.spec.ts b/src/schematics/ng-add.spec.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/deploy/ng-add/ng-add.ts b/src/schematics/ng-add.ts similarity index 98% rename from src/deploy/ng-add/ng-add.ts rename to src/schematics/ng-add.ts index ae969aeff..4bbfac29b 100644 --- a/src/deploy/ng-add/ng-add.ts +++ b/src/schematics/ng-add.ts @@ -1,5 +1,5 @@ import { SchematicsException, Tree } from '@angular-devkit/schematics'; -import { FirebaseJSON, FirebaseRc } from '../shared/types'; +import { FirebaseJSON, FirebaseRc } from './interfaces'; import { experimental, JsonParseMode, parseJson } from '@angular-devkit/core'; const stringifyFormatted = (obj: any) => JSON.stringify(obj, null, 2); diff --git a/src/schematics/tsconfig.json b/src/schematics/tsconfig.json new file mode 100644 index 000000000..f59d53a86 --- /dev/null +++ b/src/schematics/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "baseUrl": "tsconfig", + "lib": ["es2018", "es2015", "dom"], + "outDir": "../../dist/packages-dist/schematics", + "declaration": true, + "module": "commonjs", + "moduleResolution": "node", + "noEmitOnError": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitThis": true, + "noUnusedParameters": true, + "noUnusedLocals": true, + "rootDir": ".", + "skipDefaultLibCheck": true, + "skipLibCheck": true, + "sourceMap": true, + "strictNullChecks": true, + "target": "es6", + "types": [ "node"] + }, + "include": ["*"] +} \ No newline at end of file diff --git a/src/deploy/shared/utils.ts b/src/schematics/utils.ts similarity index 97% rename from src/deploy/shared/utils.ts rename to src/schematics/utils.ts index 868ba7876..f50714e97 100644 --- a/src/deploy/shared/utils.ts +++ b/src/schematics/utils.ts @@ -1,6 +1,6 @@ import { readFileSync } from 'fs'; import * as inquirer from 'inquirer'; -import { FirebaseRc, Project } from './types'; +import { FirebaseRc, Project } from './interfaces'; import { join } from 'path'; const firebase = require('firebase-tools'); diff --git a/tools/build.js b/tools/build.js index 5882c7dd4..7a09626b5 100644 --- a/tools/build.js +++ b/tools/build.js @@ -45,7 +45,11 @@ const VERSIONS = { WS_VERSION: pkg.dependencies['ws'], BUFFERUTIL_VERSION: pkg.optionalDependencies['bufferutil'], UTF_8_VALIDATE_VERSION: pkg.optionalDependencies['utf-8-validate'], - XHR2_VERSION: pkg.dependencies['xhr2'] + XHR2_VERSION: pkg.dependencies['xhr2'], + FIREBASE_TOOLS_VERSION: pkg.dependencies["firebase-tools"], + FUZZY_VERSION: pkg.dependencies["fuzzy"], + INQUIRER_VERSION: pkg.dependencies["inquirer"], + INQUIRER_AUTOCOMPLETE_VERSION: pkg.dependencies["inquirer-autocomplete-prompt"] }; const MODULE_NAMES = { @@ -240,6 +244,18 @@ function copyNodeFixes() { return copy(`${process.cwd()}/src/firebase-node`, `${process.cwd()}/dist/packages-dist/firebase-node`); } +function copySchematicFiles() { + return Promise.all([ + copy(`${process.cwd()}/src/core/builders.json`, `${process.cwd()}/dist/packages-dist/builders.json`), + copy(`${process.cwd()}/src/core/collection.json`, `${process.cwd()}/dist/packages-dist/collection.json`), + copy(`${process.cwd()}/src/schematics/deploy/schema.json`, `${process.cwd()}/dist/packages-dist/schematics/deploy`) + ]); +} + +function compileSchematics() { + return spawnObservable(TSC, [`-p`, `${process.cwd()}/src/schematics/tsconfig.json`]); +} + function measure(module) { const path = `${process.cwd()}/dist/packages-dist/bundles/${module}.umd.js`; const file = readFileSync(path); @@ -317,12 +333,14 @@ function buildModules(globals) { function buildLibrary(globals) { const modules$ = buildModules(globals); return forkJoin(modules$).pipe( - switchMap(() => from(createTestUmd(globals))), switchMap(() => from(copyNpmIgnore())), switchMap(() => from(copyReadme())), switchMap(() => from(copyDocs())), switchMap(() => from(copyNodeFixes())), + switchMap(() => compileSchematics()), + switchMap(() => from(copySchematicFiles())), switchMap(() => replaceVersionsObservable('firebase-node', VERSIONS)), + switchMap(() => from(createTestUmd(globals))), tap(() => { const coreStats = measure('core'); const authStats = measure('auth'); diff --git a/yarn.lock b/yarn.lock index e06d8a205..80950426c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,63 @@ # yarn lockfile v1 +"@angular-devkit/architect@^0.14.0-beta.5": + version "0.14.0-beta.5" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.14.0-beta.5.tgz#9ede7a04840c206cb422eb777d184c1753e78c20" + integrity sha512-AR186t8mpQisJtGysUo73PY4MM9tkM+V8l6Rj3v66sihZJ7PIkcA93AtywUtl7GGS21BKfO6LJ4PaqxiPKV9/g== + dependencies: + "@angular-devkit/core" "8.0.0-beta.5" + rxjs "6.4.0" + +"@angular-devkit/core@7.3.8", "@angular-devkit/core@^7.3.6": + version "7.3.8" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-7.3.8.tgz#702b0944a69c71cce3a1492e0d62de18df22a993" + integrity sha512-3X9uzaZXFpm5o2TSzhD6wEOtVU32CgeytKjD1Scxj+uMMVo48SWLlKiFh312T+smI9ko7tOT8VqxglwYkWosgg== + dependencies: + ajv "6.9.1" + chokidar "2.0.4" + fast-json-stable-stringify "2.0.0" + rxjs "6.3.3" + source-map "0.7.3" + +"@angular-devkit/core@8.0.0-beta.15", "@angular-devkit/core@^8.0.0-beta.5": + version "8.0.0-beta.15" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-8.0.0-beta.15.tgz#dac6ef16ddd5c2c5dc6a1184bd2aad7b8ed57e93" + integrity sha512-pWhD0aZ9vcjguBiR+22CT0ihvwmGTf5EY1lPBhIkbTkKXihQ3g0Pg36RHU2wW+dMlapZ6wuT9jW57vvJ2Vf41w== + dependencies: + ajv "6.10.0" + fast-json-stable-stringify "2.0.0" + magic-string "0.25.2" + rxjs "6.4.0" + source-map "0.7.3" + +"@angular-devkit/core@8.0.0-beta.5": + version "8.0.0-beta.5" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-8.0.0-beta.5.tgz#a0a388a9aa5cd3eb75f62b52734f5f876c7515e0" + integrity sha512-ob5HpUusC6Q/TsC1gGgeBvG1JZ53SYdCKBDPcLgpOAg1hAXKrbmmUGe4Y+UQtRSVYPEKceXv3L0cmqcjelBHXQ== + dependencies: + ajv "6.10.0" + chokidar "2.1.2" + fast-json-stable-stringify "2.0.0" + rxjs "6.4.0" + source-map "0.7.3" + +"@angular-devkit/schematics@^7.3.6": + version "7.3.8" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-7.3.8.tgz#70bfc7876f7924ff53ab9310a00b62f20acf2f5c" + integrity sha512-mvaKoORZIaW/h0VNZ3IQWP0qThRCZRX6869FNlzV0jlW0mhn07XbiIGHCGGSCDRxS7qJ0VbuIVnKXntF+iDeWw== + dependencies: + "@angular-devkit/core" "7.3.8" + rxjs "6.3.3" + +"@angular-devkit/schematics@^8.0.0-beta.5": + version "8.0.0-beta.15" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-8.0.0-beta.15.tgz#fefb6f3dd3e6638f3484fc96a5fbbfc89732ba7b" + integrity sha512-XtOB6m0RjDfeNpiq1Zs6OelDwBL7dk7LBAICnYGpvexUKoksgFR6klQEbOconV+WB0YAYQqcqoTq5q9GI9s1ZA== + dependencies: + "@angular-devkit/core" "8.0.0-beta.15" + rxjs "6.4.0" + "@angular/animations@>=6.0.0 <8": version "7.0.0" resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-7.0.0.tgz#5c9e1683063c29df10253b7dc5bb9b13694ee396" @@ -197,6 +254,88 @@ resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.11.tgz#32a853fad9974cbbc9fc766ec5699a18b22ccee6" integrity sha512-WyMXDxk/WZ+f2lOCeEvDWUce2f5Kk2sNfvArK8f+PlUnzFdy/MBzLXrmbMgyZXP7GP4ooUxYV8Sdmoh1hGk1Uw== +"@google-cloud/common@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@google-cloud/common/-/common-0.17.0.tgz#8ef558750db481fc10a13757a49479ab9a1c8c07" + integrity sha512-HRZLSU762E6HaKoGfJGa8W95yRjb9rY7LePhjaHK9ILAnFacMuUGVamDbTHu1csZomm1g3tZTtXfX/aAhtie/Q== + dependencies: + array-uniq "^1.0.3" + arrify "^1.0.1" + concat-stream "^1.6.0" + create-error-class "^3.0.2" + duplexify "^3.5.0" + ent "^2.2.0" + extend "^3.0.1" + google-auto-auth "^0.10.0" + is "^3.2.0" + log-driver "1.2.7" + methmeth "^1.1.0" + modelo "^4.2.0" + request "^2.79.0" + retry-request "^3.0.0" + split-array-stream "^1.0.0" + stream-events "^1.0.1" + string-format-obj "^1.1.0" + through2 "^2.0.3" + +"@google-cloud/functions-emulator@^1.0.0-beta.5": + version "1.0.0-beta.5" + resolved "https://registry.yarnpkg.com/@google-cloud/functions-emulator/-/functions-emulator-1.0.0-beta.5.tgz#08aa14a007b739aadcf7296e0b4354cd8a8d81df" + integrity sha512-65qxXqyyD5SnKBlv76YNZDKRxP2o8sh2B5bSkiV4VHNmoaRiB/SYjc2GQuKqrxwJ6MbI4mhTLgvNTy6BSP2QSQ== + dependencies: + "@google-cloud/storage" "^1.7.0" + adm-zip "^0.4.11" + ajv "^6.5.2" + body-parser "^1.18.3" + cli-table2 "0.2.0" + colors "1.1.2" + configstore "^3.1.2" + express "^4.16.3" + googleapis "^23.0.2" + got "^8.3.2" + http-proxy "1.16.2" + lodash "4.17.5" + prompt "1.0.0" + rimraf "2.6.2" + semver "5.5.0" + serializerr "1.0.3" + tmp "0.0.33" + uuid "3.2.1" + winston "2.4.0" + yargs "11.0.0" + +"@google-cloud/storage@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-1.7.0.tgz#07bff573d92d5c294db6a04af246688875a8f74b" + integrity sha512-QaAxzCkbhspwajoaEnT0GcnQcpjPRcBrHYuQsXtD05BtOJgVnHCLXSsfUiRdU0nVpK+Thp7+sTkQ0fvk5PanKg== + dependencies: + "@google-cloud/common" "^0.17.0" + arrify "^1.0.0" + async "^2.0.1" + compressible "^2.0.12" + concat-stream "^1.5.0" + create-error-class "^3.0.2" + duplexify "^3.5.0" + extend "^3.0.0" + gcs-resumable-upload "^0.10.2" + hash-stream-validation "^0.2.1" + is "^3.0.1" + mime "^2.2.0" + mime-types "^2.0.8" + once "^1.3.1" + pumpify "^1.5.1" + request "^2.85.0" + safe-buffer "^5.1.1" + snakeize "^0.1.0" + stream-events "^1.0.1" + through2 "^2.0.0" + xdg-basedir "^3.0.0" + +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" + integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== + "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" @@ -209,6 +348,14 @@ dependencies: "@types/node" "*" +"@types/inquirer@^0.0.44": + version "0.0.44" + resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-0.0.44.tgz#60ce954581cfdf44ad3899ec4cdc5fbe3fef1694" + integrity sha512-ugbhy1yBtCz5iTWYF+AGRS/UcMcWicdyHhxl9VaeFYc3ueg0CCssthQLB3rIcIOeGtfG6WPEvHdLu/IjKYfefg== + dependencies: + "@types/rx" "*" + "@types/through" "*" + "@types/jasmine@^2.5.36": version "2.8.8" resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.8.tgz#bf53a7d193ea8b03867a38bfdb4fbb0e0bf066c9" @@ -232,6 +379,114 @@ "@types/form-data" "0.0.*" "@types/node" "6.0.*" +"@types/rx-core-binding@*": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/rx-core-binding/-/rx-core-binding-4.0.4.tgz#d969d32f15a62b89e2862c17b3ee78fe329818d3" + integrity sha512-5pkfxnC4w810LqBPUwP5bg7SFR/USwhMSaAeZQQbEHeBp57pjKXRlXmqpMrLJB4y1oglR/c2502853uN0I+DAQ== + dependencies: + "@types/rx-core" "*" + +"@types/rx-core@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-core/-/rx-core-4.0.3.tgz#0b3354b1238cedbe2b74f6326f139dbc7a591d60" + integrity sha1-CzNUsSOM7b4rdPYybxOdvHpZHWA= + +"@types/rx-lite-aggregates@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-aggregates/-/rx-lite-aggregates-4.0.3.tgz#6efb2b7f3d5f07183a1cb2bd4b1371d7073384c2" + integrity sha512-MAGDAHy8cRatm94FDduhJF+iNS5//jrZ/PIfm+QYw9OCeDgbymFHChM8YVIvN2zArwsRftKgE33QfRWvQk4DPg== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-async@*": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/rx-lite-async/-/rx-lite-async-4.0.2.tgz#27fbf0caeff029f41e2d2aae638b05e91ceb600c" + integrity sha512-vTEv5o8l6702ZwfAM5aOeVDfUwBSDOs+ARoGmWAKQ6LOInQ8J4/zjM7ov12fuTpktUKdMQjkeCp07Vd73mPkxw== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-backpressure@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-backpressure/-/rx-lite-backpressure-4.0.3.tgz#05abb19bdf87cc740196c355e5d0b37bb50b5d56" + integrity sha512-Y6aIeQCtNban5XSAF4B8dffhIKu6aAy/TXFlScHzSxh6ivfQBQw6UjxyEJxIOt3IT49YkS+siuayM2H/Q0cmgA== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-coincidence@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-coincidence/-/rx-lite-coincidence-4.0.3.tgz#80bd69acc4054a15cdc1638e2dc8843498cd85c0" + integrity sha512-1VNJqzE9gALUyMGypDXZZXzR0Tt7LC9DdAZQ3Ou/Q0MubNU35agVUNXKGHKpNTba+fr8GdIdkC26bRDqtCQBeQ== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-experimental@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/rx-lite-experimental/-/rx-lite-experimental-4.0.1.tgz#c532f5cbdf3f2c15da16ded8930d1b2984023cbd" + integrity sha1-xTL1y98/LBXaFt7Ykw0bKYQCPL0= + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-joinpatterns@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/rx-lite-joinpatterns/-/rx-lite-joinpatterns-4.0.1.tgz#f70fe370518a8432f29158cc92ffb56b4e4afc3e" + integrity sha1-9w/jcFGKhDLykVjMkv+1a05K/D4= + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-testing@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/rx-lite-testing/-/rx-lite-testing-4.0.1.tgz#21b19d11f4dfd6ffef5a9d1648e9c8879bfe21e9" + integrity sha1-IbGdEfTf1v/vWp0WSOnIh5v+Iek= + dependencies: + "@types/rx-lite-virtualtime" "*" + +"@types/rx-lite-time@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-time/-/rx-lite-time-4.0.3.tgz#0eda65474570237598f3448b845d2696f2dbb1c4" + integrity sha512-ukO5sPKDRwCGWRZRqPlaAU0SKVxmWwSjiOrLhoQDoWxZWg6vyB9XLEZViKOzIO6LnTIQBlk4UylYV0rnhJLxQw== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-virtualtime@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-virtualtime/-/rx-lite-virtualtime-4.0.3.tgz#4b30cacd0fe2e53af29f04f7438584c7d3959537" + integrity sha512-3uC6sGmjpOKatZSVHI2xB1+dedgml669ZRvqxy+WqmGJDVusOdyxcKfyzjW0P3/GrCiN4nmRkLVMhPwHCc5QLg== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite@*": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/rx-lite/-/rx-lite-4.0.6.tgz#3c02921c4244074234f26b772241bcc20c18c253" + integrity sha512-oYiDrFIcor9zDm0VDUca1UbROiMYBxMLMaM6qzz4ADAfOmA9r1dYEcAFH+2fsPI5BCCjPvV9pWC3X3flbrvs7w== + dependencies: + "@types/rx-core" "*" + "@types/rx-core-binding" "*" + +"@types/rx@*": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@types/rx/-/rx-4.1.1.tgz#598fc94a56baed975f194574e0f572fd8e627a48" + integrity sha1-WY/JSla67ZdfGUV04PVy/Y5iekg= + dependencies: + "@types/rx-core" "*" + "@types/rx-core-binding" "*" + "@types/rx-lite" "*" + "@types/rx-lite-aggregates" "*" + "@types/rx-lite-async" "*" + "@types/rx-lite-backpressure" "*" + "@types/rx-lite-coincidence" "*" + "@types/rx-lite-experimental" "*" + "@types/rx-lite-joinpatterns" "*" + "@types/rx-lite-testing" "*" + "@types/rx-lite-time" "*" + "@types/rx-lite-virtualtime" "*" + +"@types/through@*": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.29.tgz#72943aac922e179339c651fa34a4428a4d722f93" + integrity sha512-9a7C5VHh+1BKblaYiq+7Tfc+EOmjMdZaD1MYtkQjSoxgB69tBjW98ry6SKsi4zEIWztLOMRuL87A3bdT/Fc/4w== + dependencies: + "@types/node" "*" + JSONStream@^1.0.4: version "1.3.3" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.3.tgz#27b4b8fbbfeab4e71bcf551e7f27be8d952239bf" @@ -240,12 +495,27 @@ JSONStream@^1.0.4: jsonparse "^1.2.0" through ">=2.2.7 <3" +JSONStream@^1.2.1: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -accepts@~1.3.4: +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +accepts@~1.3.4, accepts@~1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= @@ -268,6 +538,11 @@ adm-zip@0.4.4: resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.4.tgz#a61ed5ae6905c3aea58b3a657d25033091052736" integrity sha1-ph7VrmkFw66lizplfSUDMJEFJzY= +adm-zip@^0.4.11: + version "0.4.13" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.13.tgz#597e2f8cc3672151e1307d3e95cddbc75672314a" + integrity sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw== + after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" @@ -288,6 +563,26 @@ agent-base@4, agent-base@^4.1.0, agent-base@^4.2.0: dependencies: es6-promisify "^5.0.0" +ajv@6.10.0, ajv@^6.5.2, ajv@^6.5.5: + version "6.10.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" + integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@6.9.1: + version "6.9.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.9.1.tgz#a4d3683d74abc5670e75f0b16520f70a20ea8dc1" + integrity sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ajv@^5.1.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" @@ -323,6 +618,23 @@ amqplib@^0.5.2: readable-stream "1.x >=1.1.9" safe-buffer "^5.0.1" +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= + dependencies: + string-width "^2.0.0" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= + +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + ansi-gray@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" @@ -335,7 +647,7 @@ ansi-regex@^0.2.0, ansi-regex@^0.2.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" integrity sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk= -ansi-regex@^2.0.0: +ansi-regex@^2.0.0, ansi-regex@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= @@ -345,6 +657,11 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-styles@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" @@ -375,11 +692,45 @@ anymatch@^1.3.0: micromatch "^2.1.5" normalize-path "^2.0.0" +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + aproba@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +archiver-utils@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174" + integrity sha1-5QtMCccL89aA4y/xt5lOn52JUXQ= + dependencies: + glob "^7.0.0" + graceful-fs "^4.1.0" + lazystream "^1.0.0" + lodash "^4.8.0" + normalize-path "^2.0.0" + readable-stream "^2.0.0" + +archiver@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-2.1.1.tgz#ff662b4a78201494a3ee544d3a33fe7496509ebc" + integrity sha1-/2YrSnggFJSj7lRNOjP+dJZQnrw= + dependencies: + archiver-utils "^1.3.0" + async "^2.0.0" + buffer-crc32 "^0.2.1" + glob "^7.0.0" + lodash "^4.8.0" + readable-stream "^2.0.0" + tar-stream "^1.5.0" + zip-stream "^1.2.0" + archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" @@ -430,6 +781,16 @@ array-find-index@^1.0.1: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= +array-flatten@1.1.1, array-flatten@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" + integrity sha1-Qmu52oQJDBg42BLIFQryCoMx4pY= + array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -445,7 +806,7 @@ array-slice@^1.0.0: resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== -array-uniq@^1.0.2: +array-uniq@^1.0.2, array-uniq@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= @@ -470,6 +831,20 @@ arrify@^1.0.0, arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= +as-array@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/as-array/-/as-array-1.0.0.tgz#28a6eeeaa5729f1f4eca2047df5e9de1abda0ed1" + integrity sha1-KKbu6qVynx9OyiBH316d4avaDtE= + dependencies: + lodash.isarguments "2.4.x" + lodash.isobject "^2.4.1" + lodash.values "^2.4.1" + +as-array@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/as-array/-/as-array-2.0.0.tgz#4f04805d87f8fce8e511bc2108f8e5e3a287d547" + integrity sha1-TwSAXYf4/OjlEbwhCPjl46KH1Uc= + ascli@~1: version "1.0.1" resolved "https://registry.yarnpkg.com/ascli/-/ascli-1.0.1.tgz#bcfa5974a62f18e81cabaeb49732ab4a88f906bc" @@ -518,6 +893,11 @@ async-each@^1.0.0: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" integrity sha1-GdOGodntxufByF04iu28xW0zYC0= +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" @@ -528,11 +908,25 @@ async@0.9.0: resolved "https://registry.yarnpkg.com/async/-/async-0.9.0.tgz#ac3613b1da9bed1b47510bb4651b8931e47146c7" integrity sha1-rDYTsdqb7RtHUQu0ZRuJMeRxRsc= -async@^1.4.0: +async@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" + integrity sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw== + dependencies: + lodash "^4.14.0" + +async@^1.3.0, async@^1.4.0, async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= +async@^2.0.0, async@^2.0.1, async@^2.3.0, async@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" + integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== + dependencies: + lodash "^4.17.11" + async@~0.2.6: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" @@ -543,6 +937,11 @@ async@~0.9.0: resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= +async@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9" + integrity sha1-+PwEyjoTeErenhZBr5hXjPvWR6k= + async@~2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" @@ -580,6 +979,11 @@ aws4@^1.2.1, aws4@^1.6.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" integrity sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w== +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + axios@^0.15.3: version "0.15.3" resolved "https://registry.yarnpkg.com/axios/-/axios-0.15.3.tgz#2c9d638b2e191a08ea1d6cc988eadd6ba5bdc053" @@ -587,6 +991,14 @@ axios@^0.15.3: dependencies: follow-redirects "1.0.0" +axios@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" + integrity sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI= + dependencies: + follow-redirects "^1.3.0" + is-buffer "^1.1.5" + babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -763,6 +1175,11 @@ base64-arraybuffer@0.1.5: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= +base64-js@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== + base64id@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" @@ -781,6 +1198,18 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +basic-auth-connect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz#fdb0b43962ca7b40456a7c2bb48fe173da2d2122" + integrity sha1-/bC0OWLKe0BFanwrtI/hc9otISI= + +basic-auth@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" @@ -864,7 +1293,7 @@ bluebird@^3.3.0, bluebird@^3.3.4, bluebird@^3.4.6: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== -body-parser@^1.16.1: +body-parser@1.18.3, body-parser@^1.16.1, body-parser@^1.18.3: version "1.18.3" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= @@ -887,6 +1316,19 @@ boom@2.x.x: dependencies: hoek "2.x.x" +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + brace-expansion@^1.0.0, brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -911,7 +1353,7 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" -braces@^2.3.1: +braces@^2.3.0, braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== @@ -932,7 +1374,7 @@ buffer-alloc-unsafe@^1.1.0: resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== -buffer-alloc@^1.1.0: +buffer-alloc@^1.1.0, buffer-alloc@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== @@ -940,16 +1382,39 @@ buffer-alloc@^1.1.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" +buffer-crc32@^0.2.1: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + buffer-fill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + buffer-more-ints@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz#26b3885d10fa13db7fc01aae3aab870199e0124c" integrity sha1-JrOIXRD6E9t/wBquOquHAZngEkw= +buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + bufferutil@1.2.x: version "1.2.1" resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-1.2.1.tgz#37be5d36e1e06492221e68d474b1ac58e510cbd7" @@ -990,6 +1455,11 @@ builtin-modules@^2.0.0: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e" integrity sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg== +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + bytebuffer@~5: version "5.0.1" resolved "https://registry.yarnpkg.com/bytebuffer/-/bytebuffer-5.0.1.tgz#582eea4b1a873b6d020a48d58df85f0bba6cfddd" @@ -1017,6 +1487,19 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" @@ -1049,7 +1532,7 @@ camelcase@^2.0.0, camelcase@^2.0.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= -camelcase@^4.1.0: +camelcase@^4.0.0, camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= @@ -1059,6 +1542,11 @@ canonical-path@0.0.2: resolved "https://registry.yarnpkg.com/canonical-path/-/canonical-path-0.0.2.tgz#e31eb937a8c93ee2a01df1839794721902874574" integrity sha1-4x65N6jJPuKgHfGDl5RyGQKHRXQ= +capture-stack-trace@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" + integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + caseless@~0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.10.0.tgz#ed6b2719adcd1fd18f58dc081c0f1a5b43963909" @@ -1104,6 +1592,15 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^2.0.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chalk@^2.0.1, chalk@^2.1.0: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" @@ -1113,6 +1610,55 @@ chalk@^2.0.1, chalk@^2.1.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +char-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/char-spinner/-/char-spinner-1.0.1.tgz#e6ea67bd247e107112983b7ab0479ed362800081" + integrity sha1-5upnvSR+EHESmDt6sEee02KAAIE= + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" + integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + lodash.debounce "^4.0.8" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.5" + optionalDependencies: + fsevents "^1.2.2" + +chokidar@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.2.tgz#9c23ea40b01638439e0513864d362aeacc5ad058" + integrity sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.0" + optionalDependencies: + fsevents "^1.2.7" + chokidar@^1.4.1, chokidar@^1.4.2, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" @@ -1134,11 +1680,28 @@ chownr@^1.0.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" integrity sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE= +chownr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + circular-json@^0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.4.tgz#ff1ad2f2e392eeb8a5172d4d985fa846ed8ad656" integrity sha512-vnJA8KS0BfOihugYEUkLRcnmq21FbuivbxgzDLXNs3zIk4KllV4Mx4UuTzBXht9F00C7QfD1YqMXg1zP6EXpig== +cjson@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.3.tgz#a92d9c786e5bf9b930806329ee05d5d3261b4afa" + integrity sha1-qS2ceG5b+bkwgGMp7gXV0yYbSvo= + dependencies: + json-parse-helpfulerror "^1.0.3" + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1149,6 +1712,64 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= + +cli-color@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz#7d10738f48526824f8fe7da51857cb0f572fe01f" + integrity sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w== + dependencies: + ansi-regex "^2.1.1" + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + memoizee "^0.4.14" + timers-ext "^0.1.5" + +cli-cursor@^1.0.1, cli-cursor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= + dependencies: + restore-cursor "^1.0.1" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-spinners@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" + integrity sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw= + +cli-table2@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/cli-table2/-/cli-table2-0.2.0.tgz#2d1ef7f218a0e786e214540562d4bd177fe32d97" + integrity sha1-LR738hig54biFFQFYtS9F3/jLZc= + dependencies: + lodash "^3.10.1" + string-width "^1.0.1" + optionalDependencies: + colors "^1.1.2" + +cli-table@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + integrity sha1-9TsFJmqLGguTSz0IIebi3FkUriM= + dependencies: + colors "1.0.3" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" @@ -1167,6 +1788,22 @@ cliui@^3.0.3, cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +clone-response@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + clone-stats@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" @@ -1217,16 +1854,26 @@ color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -colors@1.0.3: +colors@1.0.3, colors@1.0.x: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= +colors@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= + colors@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.0.tgz#5f20c9fef6945cb1134260aab33bfbdc8295e04e" integrity sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw== +colors@^1.1.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + colour@~0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/colour/-/colour-0.7.1.tgz#9cb169917ec5d12c0736d3e8685746df1cadf778" @@ -1246,6 +1893,13 @@ combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.1, combined- dependencies: delayed-stream "~1.0.0" +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== + dependencies: + delayed-stream "~1.0.0" + combined-stream@~0.0.4: version "0.0.7" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" @@ -1278,6 +1932,13 @@ compare-func@^1.3.1: array-ify "^1.0.0" dot-prop "^3.0.0" +compare-semver@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/compare-semver/-/compare-semver-1.1.0.tgz#7c0a79a27bb80b6c6994445f82958259d3d02153" + integrity sha1-fAp5onu4C2xplERfgpWCWdPQIVM= + dependencies: + semver "^5.0.1" + component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" @@ -1293,11 +1954,51 @@ component-inherit@0.0.3: resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= +compress-commons@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.2.2.tgz#524a9f10903f3a813389b0225d27c48bb751890f" + integrity sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8= + dependencies: + buffer-crc32 "^0.2.1" + crc32-stream "^2.0.0" + normalize-path "^2.0.0" + readable-stream "^2.0.0" + +compressible@^2.0.12, compressible@~2.0.16: + version "2.0.16" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.16.tgz#a49bf9858f3821b64ce1be0296afc7380466a77f" + integrity sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA== + dependencies: + mime-db ">= 1.38.0 < 2" + +compression@^1.7.0: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + concurrently@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-2.2.0.tgz#bad248e0bb129fb1621768903a6311d45d56895a" @@ -1311,7 +2012,40 @@ concurrently@^2.2.0: moment "^2.11.2" rx "2.3.24" -connect@^3.6.0: +configstore@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" + integrity sha1-w1eB0FAdJowlxUuLF/YkDopPsCE= + dependencies: + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + object-assign "^4.0.1" + os-tmpdir "^1.0.0" + osenv "^0.1.0" + uuid "^2.0.1" + write-file-atomic "^1.1.2" + xdg-basedir "^2.0.0" + +configstore@^3.0.0, configstore@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +connect-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/connect-query/-/connect-query-1.0.0.tgz#de44f577209da2404d1fc04692d1a4118e582119" + integrity sha1-3kT1dyCdokBNH8BGktGkEY5YIRk= + dependencies: + qs "~6.4.0" + +connect@^3.6.0, connect@^3.6.2: version "3.6.6" resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= @@ -1326,6 +2060,11 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= + content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" @@ -1490,6 +2229,11 @@ convert-source-map@^1.1.1, convert-source-map@^1.5.1: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" integrity sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU= +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" @@ -1520,6 +2264,36 @@ corser@~2.0.0: resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= +crc32-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4" + integrity sha1-483TtN8xaN10494/u8t7KX/pCPQ= + dependencies: + crc "^3.4.4" + readable-stream "^2.0.0" + +crc@^3.4.4: + version "3.8.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + +create-error-class@^3.0.0, create-error-class@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + dependencies: + capture-stack-trace "^1.0.0" + +cross-env@^5.1.3: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz#6ecd4c015d5773e614039ee529076669b9d126f2" + integrity sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg== + dependencies: + cross-spawn "^6.0.5" + is-windows "^1.0.0" + cross-spawn@^0.2.9: version "0.2.9" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-0.2.9.tgz#bd67f96c07efb6303b7fe94c1e979f88478e0a39" @@ -1527,6 +2301,14 @@ cross-spawn@^0.2.9: dependencies: lru-cache "^2.5.0" +cross-spawn@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -1536,6 +2318,17 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -1543,6 +2336,18 @@ cryptiles@2.x.x: dependencies: boom "2.x.x" +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" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + +csv-streamify@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/csv-streamify/-/csv-streamify-3.0.4.tgz#4cb614c57e3f299cca17b63fdcb4ad167777f47a" + integrity sha1-TLYUxX4/KZzKF7Y/3LStFnd39Ho= + dependencies: + through2 "2.0.1" + ctype@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" @@ -1560,6 +2365,11 @@ custom-event@~1.0.0: resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= +cycle@1.0.x: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" + integrity sha1-IegLK+hYD5i0aPN5QwZisEbDStI= + d@1: version "1.0.0" resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" @@ -1620,6 +2430,20 @@ debug@3.1.0, debug@^3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" +debug@^3.0.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + decamelize-keys@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" @@ -1645,6 +2469,11 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +deep-equal@~0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-0.2.2.tgz#84b745896f34c684e98f2ce0e42abaf43bba017d" + integrity sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0= + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -1723,6 +2552,11 @@ deprecated@^0.0.1: resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" integrity sha1-+cmvVGSvoeepcUWKi97yqpTVuxk= +destroy@^1.0.4, destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" @@ -1745,6 +2579,11 @@ di@^0.0.1: resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= +didyoumean@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff" + integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8= + dom-serialize@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" @@ -1772,6 +2611,13 @@ dot-prop@^3.0.0: dependencies: is-obj "^1.0.0" +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + double-ended-queue@^2.1.0-0: version "2.1.0-0" resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" @@ -1784,6 +2630,11 @@ duplexer2@0.0.2: dependencies: readable-stream "~1.1.9" +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + duplexer@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" @@ -1799,6 +2650,16 @@ duplexify@^3.2.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +duplexify@^3.5.0, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" @@ -1806,6 +2667,13 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + ecstatic@~0.7.0: version "0.7.6" resolved "https://registry.yarnpkg.com/ecstatic/-/ecstatic-0.7.6.tgz#cba2aabea46b8cd97f0160859713b70d28e6a022" @@ -1821,7 +2689,7 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -encodeurl@~1.0.1: +encodeurl@~1.0.1, encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= @@ -1889,7 +2757,7 @@ engine.io@~3.1.0: optionalDependencies: uws "~9.14.0" -ent@~2.2.0: +ent@^2.2.0, ent@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= @@ -1910,7 +2778,16 @@ es5-ext@^0.10.12, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: es6-symbol "~3.1.1" next-tick "1" -es6-iterator@~2.0.3: +es5-ext@^0.10.14, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.49" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.49.tgz#059a239de862c94494fec28f8150c977028c6c5e" + integrity sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "^1.0.0" + +es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= @@ -1938,12 +2815,23 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" +es6-set@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + es6-shim@^0.35.0: version "0.35.3" resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.3.tgz#9bfb7363feffff87a6cdb6cd93e405ec3c4b6f26" integrity sha1-m/tzY/7//4emzbbNk+QF7DxLbyY= -es6-symbol@^3.1.1, es6-symbol@~3.1.1: +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= @@ -1959,6 +2847,16 @@ es6-template-strings@^2.0.0: es5-ext "^0.10.12" esniff "^1.1" +es6-weak-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + integrity sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8= + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2009,6 +2907,29 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-emitter@^0.3.5, event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + integrity sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg= + eventemitter3@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" @@ -2027,6 +2948,16 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +exit-code@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/exit-code/-/exit-code-1.0.2.tgz#ce165811c9f117af6a5f882940b96ae7f9aecc34" + integrity sha1-zhZYEcnxF69qX4gpQLlq5/muzDQ= + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -2088,6 +3019,42 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" +express@^4.16.3: + version "4.16.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" + integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== + dependencies: + accepts "~1.3.5" + array-flatten "1.1.1" + body-parser "1.18.3" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.1" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.4" + qs "6.5.2" + range-parser "~1.2.0" + safe-buffer "5.1.2" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + utils-merge "1.0.1" + vary "~1.1.2" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -2108,6 +3075,20 @@ extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" integrity sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ= +extend@^3.0.1, extend@^3.0.2, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" @@ -2139,6 +3120,11 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= +eyes@0.1.x: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" + integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A= + fancy-log@^1.1.0: version "1.3.2" resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" @@ -2153,7 +3139,12 @@ fast-deep-equal@^1.0.0: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= -fast-json-stable-stringify@^2.0.0: +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-json-stable-stringify@2.0.0, fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= @@ -2163,13 +3154,35 @@ fast-levenshtein@~2.0.4: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -faye-websocket@0.11.1: +fast-url-parser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= + dependencies: + punycode "^1.3.2" + +faye-websocket@0.11.1, faye-websocket@>=0.6.0: version "0.11.1" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg= dependencies: websocket-driver ">=0.5.1" +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + file-uri-to-path@1: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -2180,6 +3193,11 @@ filename-regex@^2.0.0: resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= +filesize@^3.1.3: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + fill-range@^2.1.0: version "2.2.4" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" @@ -2214,6 +3232,19 @@ finalhandler@1.1.0: statuses "~1.3.1" unpipe "~1.0.0" +finalhandler@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.4.0" + unpipe "~1.0.0" + find-index@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" @@ -2227,7 +3258,7 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.0.0: +find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= @@ -2255,6 +3286,59 @@ fined@^1.0.1: object.pick "^1.2.0" parse-filepath "^1.0.1" +firebase-tools@^6.3.1: + version "6.6.0" + resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-6.6.0.tgz#02c17a0633c3fbd5985b34017782878c4f97f906" + integrity sha512-a15gw3kFBXNxPW7jBq6Tn3IajcoraQgbetbybOqAgNtUi+x7pMdbPMqrbQRLID/I7ViXm2utSAlEPm3KaRZwDQ== + dependencies: + JSONStream "^1.2.1" + archiver "^2.1.1" + cjson "^0.3.1" + cli-color "^1.2.0" + cli-table "^0.3.1" + commander "^2.8.1" + configstore "^1.2.0" + cross-env "^5.1.3" + cross-spawn "^4.0.0" + csv-streamify "^3.0.4" + didyoumean "^1.2.1" + es6-set "^0.1.4" + exit-code "^1.0.2" + filesize "^3.1.3" + firebase "2.x.x" + fs-extra "^0.23.1" + glob "^7.1.2" + google-auto-auth "^0.7.2" + inquirer "^0.12.0" + is "^3.2.1" + jsonschema "^1.0.2" + jsonwebtoken "^8.2.1" + lodash "^4.17.10" + minimatch "^3.0.4" + opn "^5.5.0" + ora "0.2.3" + portfinder "^1.0.13" + progress "^2.0.0" + request "^2.87.0" + semver "^5.0.3" + superstatic "^6.0.1" + tar "^4.3.0" + tmp "0.0.33" + universal-analytics "^0.4.16" + update-notifier "^2.5.0" + user-home "^2.0.0" + uuid "^3.0.0" + winston "^1.0.1" + optionalDependencies: + "@google-cloud/functions-emulator" "^1.0.0-beta.5" + +firebase@2.x.x: + version "2.4.2" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-2.4.2.tgz#4e1119ec0396ca561d8a7acbff1630feac6c0a31" + integrity sha1-ThEZ7AOWylYdinrL/xYw/qxsCjE= + dependencies: + faye-websocket ">=0.6.0" + firebase@^5.5.0: version "5.5.4" resolved "https://registry.yarnpkg.com/firebase/-/firebase-5.5.4.tgz#6c6c9c829c1c223dd6bc9c5a7805a5ebcaf36ae2" @@ -2279,6 +3363,16 @@ flagged-respawn@^1.0.0: resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.0.tgz#4e79ae9b2eb38bf86b3bb56bf3e0a56aa5fcabd7" integrity sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c= +flat-arguments@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flat-arguments/-/flat-arguments-1.0.2.tgz#9baa780adf0501f282d726c9c6a038dba44ea76f" + integrity sha1-m6p4Ct8FAfKC1ybJxqA426ROp28= + dependencies: + array-flatten "^1.0.0" + as-array "^1.0.0" + lodash.isarguments "^3.0.0" + lodash.isobject "^3.0.0" + follow-redirects@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37" @@ -2293,6 +3387,13 @@ follow-redirects@^1.0.0: dependencies: debug "^3.1.0" +follow-redirects@^1.3.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" + integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ== + dependencies: + debug "^3.2.6" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2344,6 +3445,20 @@ form-data@~2.3.0, form-data@~2.3.1: combined-stream "1.0.6" mime-types "^2.1.12" +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -2351,6 +3466,19 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + fs-access@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" @@ -2363,6 +3491,27 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== +fs-extra@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.23.1.tgz#6611dba6adf2ab8dc9c69fab37cddf8818157e3d" + integrity sha1-ZhHbpq3yq43Jxp+rN83fiBgVfj0= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= + 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@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -2392,6 +3541,14 @@ fsevents@^1.0.0: nan "^2.9.2" node-pre-gyp "^0.10.0" +fsevents@^1.2.2, fsevents@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.8.tgz#57ea5320f762cd4696e5e8e87120eccc8b11cacf" + integrity sha512-tPvHgPGB7m40CZ68xqFGkKuzN+RnpGmSV+hgeKxhRpbxdqKXUFJGC3yonBOLzQBcJyGpdZFDfCsdOC2KFsXzeA== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + ftp@~0.3.10: version "0.3.10" resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" @@ -2400,6 +3557,11 @@ ftp@~0.3.10: readable-stream "1.1.x" xregexp "2.0.0" +fuzzy@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" + integrity sha1-THbsL/CsGjap3M+aAN+GIweNTtg= + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -2414,6 +3576,16 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" +gaxios@^1.0.4: + version "1.8.3" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-1.8.3.tgz#7dd79860880d22f854d814b3870332be8b16de56" + integrity sha512-6Lc1P0NjbPNQ2FGgTRurz32P6FktNJbwLqXvrUNhfwzKb9iizcWuAJiHoSG2W186K9ZL0X6ST5xD9gJWhHI1sg== + dependencies: + abort-controller "^3.0.0" + extend "^3.0.2" + https-proxy-agent "^2.2.1" + node-fetch "^2.3.0" + gaze@^0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" @@ -2421,6 +3593,34 @@ gaze@^0.5.1: dependencies: globule "~0.1.0" +gcp-metadata@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-0.3.1.tgz#313814456e7c3d0eeb8f8b084b33579e886f829a" + integrity sha512-5kJPX/RXuqoLmHiOOgkSDk/LI0QaXpEvZ3pvQP4ifjGGDKZKVSOjL/GcDjXA5kLxppFCOjmmsu0Uoop9d1upaQ== + dependencies: + extend "^3.0.0" + retry-request "^3.0.0" + +gcp-metadata@^0.6.1, gcp-metadata@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-0.6.3.tgz#4550c08859c528b370459bd77a7187ea0bdbc4ab" + integrity sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg== + dependencies: + axios "^0.18.0" + extend "^3.0.1" + retry-axios "0.3.2" + +gcs-resumable-upload@^0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/gcs-resumable-upload/-/gcs-resumable-upload-0.10.2.tgz#7f29b3ee23dcec4170367c0711418249c660545f" + integrity sha1-fymz7iPc7EFwNnwHEUGCScZgVF8= + dependencies: + configstore "^3.1.2" + google-auto-auth "^0.10.0" + pumpify "^1.4.0" + request "^2.85.0" + stream-events "^1.0.3" + generate-function@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" @@ -2454,7 +3654,7 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= -get-stream@^3.0.0: +get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= @@ -2537,7 +3737,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob-parent@^3.0.0: +glob-parent@^3.0.0, glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= @@ -2545,6 +3745,20 @@ glob-parent@^3.0.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/glob-slash/-/glob-slash-1.0.0.tgz#fe52efa433233f74a2fe64c7abb9bc848202ab95" + integrity sha1-/lLvpDMjP3Si/mTHq7m8hIICq5U= + +glob-slasher@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/glob-slasher/-/glob-slasher-1.0.1.tgz#747a0e5bb222642ee10d3e05443e109493cb0f8e" + integrity sha1-dHoOW7IiZC7hDT4FRD4QlJPLD44= + dependencies: + glob-slash "^1.0.0" + lodash.isobject "^2.4.1" + toxic "^1.0.0" + glob-stream@^3.1.5: version "3.1.18" resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" @@ -2636,6 +3850,18 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.2, glob@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@~3.1.21: version "3.1.21" resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" @@ -2645,6 +3871,13 @@ glob@~3.1.21: inherits "1" minimatch "~0.2.11" +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -2686,6 +3919,124 @@ glogg@^1.0.0: dependencies: sparkles "^1.0.0" +google-auth-library@0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.12.0.tgz#a3fc6c296d00bb54e4d877ef581a05947330d07f" + integrity sha512-79qCXtJ1VweBmmLr4yLq9S4clZB2p5Y+iACvuKk9gu4JitEnPc+bQFmYvtCYehVR44MQzD1J8DVmYW2w677IEw== + dependencies: + gtoken "^1.2.3" + jws "^3.1.4" + lodash.isstring "^4.0.1" + lodash.merge "^4.6.0" + request "^2.81.0" + +google-auth-library@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.10.0.tgz#6e15babee85fd1dd14d8d128a295b6838d52136e" + integrity sha1-bhW6vuhf0d0U2NEoopW2g41SE24= + dependencies: + gtoken "^1.2.1" + jws "^3.1.4" + lodash.noop "^3.0.1" + request "^2.74.0" + +google-auth-library@^1.3.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-1.6.1.tgz#9c73d831ad720c0c3048ab89d0ffdec714d07dd2" + integrity sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg== + dependencies: + axios "^0.18.0" + gcp-metadata "^0.6.3" + gtoken "^2.3.0" + jws "^3.1.5" + lodash.isstring "^4.0.1" + lru-cache "^4.1.3" + retry-axios "^0.3.2" + +google-auto-auth@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/google-auto-auth/-/google-auto-auth-0.10.1.tgz#68834a6f3da59a6cb27fce56f76e3d99ee49d0a2" + integrity sha512-iIqSbY7Ypd32mnHGbYctp80vZzXoDlvI9gEfvtl3kmyy5HzOcrZCIGCBdSlIzRsg7nHpQiHE3Zl6Ycur6TSodQ== + dependencies: + async "^2.3.0" + gcp-metadata "^0.6.1" + google-auth-library "^1.3.1" + request "^2.79.0" + +google-auto-auth@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/google-auto-auth/-/google-auto-auth-0.7.2.tgz#bf9352d5c4a0897bf31fd9c491028b765fbea71e" + integrity sha512-ux2n2AE2g3+vcLXwL4dP/M12SFMRX5dzCzBfhAEkTeAB7dpyGdOIEj7nmUx0BHKaCcUQrRWg9kT63X/Mmtk1+A== + dependencies: + async "^2.3.0" + gcp-metadata "^0.3.0" + google-auth-library "^0.10.0" + request "^2.79.0" + +google-p12-pem@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-0.1.2.tgz#33c46ab021aa734fa0332b3960a9a3ffcb2f3177" + integrity sha1-M8RqsCGqc0+gMys5YKmj/8svMXc= + dependencies: + node-forge "^0.7.1" + +google-p12-pem@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-1.0.4.tgz#b77fb833a2eb9f7f3c689e2e54f095276f777605" + integrity sha512-SwLAUJqUfTB2iS+wFfSS/G9p7bt4eWcc2LyfvmUXe7cWp6p3mpxDo6LLI29MXdU6wvPcQ/up298X7GMC5ylAlA== + dependencies: + node-forge "^0.8.0" + pify "^4.0.0" + +googleapis@^23.0.2: + version "23.0.2" + resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-23.0.2.tgz#18737965a9525b16e3e73b6cd660fcaeba6b792d" + integrity sha512-OobqDn586ogcF0dE+Byu5xZ6XmR/J7nkZN/wmhJoaxKdmELaf27ty2gKxGuq3I4/GDN+hcsUaMBueoQzFD3ObA== + dependencies: + async "2.6.0" + google-auth-library "0.12.0" + string-template "1.0.0" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= + 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" + +got@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + graceful-fs@^3.0.0: version "3.0.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" @@ -2698,6 +4049,11 @@ graceful-fs@^4.0.0, graceful-fs@^4.1.2, graceful-fs@^4.1.6: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= +graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.9: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + graceful-fs@~1.2.0: version "1.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" @@ -2718,6 +4074,27 @@ grpc@1.13.1: node-pre-gyp "^0.10.0" protobufjs "^5.0.3" +gtoken@^1.2.1, gtoken@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-1.2.3.tgz#5509571b8afd4322e124cf66cf68115284c476d8" + integrity sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w== + dependencies: + google-p12-pem "^0.1.0" + jws "^3.0.0" + mime "^1.4.1" + request "^2.72.0" + +gtoken@^2.3.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-2.3.3.tgz#8a7fe155c5ce0c4b71c886cfb282a9060d94a641" + integrity sha512-EaB49bu/TCoNeQjhCYKI/CurooBKkGxIqFHsWABW0b25fobBYVTMe84A8EBVVZhl8emiUdNypil9huMOTmyAnw== + dependencies: + gaxios "^1.0.4" + google-p12-pem "^1.0.0" + jws "^3.1.5" + mime "^2.2.0" + pify "^4.0.0" + gulp-jasmine@^2.2.1: version "2.4.2" resolved "https://registry.yarnpkg.com/gulp-jasmine/-/gulp-jasmine-2.4.2.tgz#5a7f47e27370c3619ac0a2a442be399671409db3" @@ -2853,6 +4230,14 @@ har-validator@~5.0.3: ajv "^5.1.0" har-schema "^2.0.0" +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + has-ansi@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" @@ -2891,6 +4276,18 @@ has-gulplog@^0.1.0: dependencies: sparkles "^1.0.0" +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -2927,6 +4324,13 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +hash-stream-validation@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/hash-stream-validation/-/hash-stream-validation-0.2.1.tgz#ecc9b997b218be5bb31298628bb807869b73dcd1" + integrity sha1-7Mm5l7IYvluzEphii7gHhptz3NE= + dependencies: + through2 "^2.0.0" + hawk@~2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/hawk/-/hawk-2.3.1.tgz#1e731ce39447fa1d0f6d707f7bceebec0fd1ec1f" @@ -2965,6 +4369,11 @@ hoek@2.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0= +home-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/home-dir/-/home-dir-1.0.0.tgz#2917eb44bdc9072ceda942579543847e3017fe4e" + integrity sha1-KRfrRL3JByztqUJXlUOEfjAX/k4= + home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" @@ -2985,7 +4394,17 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" integrity sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw== -http-errors@1.6.3, http-errors@~1.6.3: +hosted-git-info@^2.6.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== + +http-cache-semantics@3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + +http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= @@ -3008,6 +4427,14 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" +http-proxy@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" + integrity sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I= + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + http-proxy@^1.13.0, http-proxy@^1.8.1: version "1.17.0" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" @@ -3088,6 +4515,11 @@ https-proxy-agent@^2.2.1: agent-base "^4.1.0" debug "^3.1.0" +i@0.3.x: + version "0.3.6" + resolved "https://registry.yarnpkg.com/i/-/i-0.3.6.tgz#d96c92732076f072711b6b10fd7d4f65ad8ee23d" + integrity sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0= + iconv-lite@0.4.15: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" @@ -3100,6 +4532,18 @@ iconv-lite@0.4.23, iconv-lite@^0.4.4, iconv-lite@~0.4.13: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" @@ -3107,6 +4551,16 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" @@ -3147,7 +4601,7 @@ inherits@1: resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" integrity sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js= -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= @@ -3157,11 +4611,67 @@ ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== +inquirer-autocomplete-prompt@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.0.1.tgz#e4be98a9e727ea5160937e33f8724e70464e3c4d" + integrity sha512-Y4V6ifAu9LNrNjcEtYq8YUKhrgmmufUn5fsDQqeWgHY8rEO6ZAQkNUiZtBm2kw2uUQlC9HdgrRCHDhTPPguH5A== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + figures "^2.0.0" + run-async "^2.3.0" + +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + integrity sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34= + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +inquirer@^6.2.2: + version "6.3.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" + integrity sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.11" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + interpret@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" + integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -3179,6 +4689,11 @@ ip@^1.1.2, ip@^1.1.4, ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" @@ -3225,6 +4740,13 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -3286,7 +4808,7 @@ is-extglob@^1.0.0: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= -is-extglob@^2.1.0: +is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= @@ -3324,6 +4846,21 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -3345,6 +4882,11 @@ is-my-json-valid@^2.12.0, is-my-json-valid@^2.12.4: 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" + integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= + is-number@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" @@ -3374,6 +4916,11 @@ is-obj@^1.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= + is-odd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" @@ -3381,7 +4928,14 @@ is-odd@^2.0.0: dependencies: is-number "^4.0.0" -is-plain-obj@^1.1.0: +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= @@ -3403,11 +4957,21 @@ is-primitive@^2.0.0: resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= +is-promise@^2.1, is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + is-property@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= + is-relative@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" @@ -3415,7 +4979,17 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" -is-stream@^1.0.1, is-stream@^1.1.0: +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= + +is-stream-ended@^0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-stream-ended/-/is-stream-ended-0.1.4.tgz#f50224e95e06bce0e356d440a4827cd35b267eda" + integrity sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw== + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -3444,6 +5018,11 @@ is-unc-path@^1.0.0: dependencies: unc-path-regex "^0.1.2" +is-url@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" @@ -3454,11 +5033,21 @@ is-valid-glob@^0.3.0: resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" integrity sha1-1LVcafUYhvm2XHDWwmItN+KfSP4= -is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is@^3.0.1, is@^3.2.0, is@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79" + integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg== + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -3504,11 +5093,19 @@ isomorphic-fetch@2.2.1: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" -isstream@~0.1.1, isstream@~0.1.2: +isstream@0.1.x, isstream@~0.1.1, isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + jasmine-core@^2.4.1, jasmine-core@~2.99.0: version "2.99.1" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.99.1.tgz#e6400df1e6b56e130b61c4bcd093daa7f6e8ca15" @@ -3550,6 +5147,20 @@ jasminewd2@0.0.6: resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-0.0.6.tgz#259157f06d2d149fbecb96302c80aa322a377222" integrity sha1-JZFX8G0tFJ++y5YwLICqMio3ciI= +jju@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" + integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= + +join-path@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/join-path/-/join-path-1.1.1.tgz#10535a126d24cbd65f7ffcdf15ef2e631076b505" + integrity sha1-EFNaEm0ky9Zff/zfFe8uYxB2tQU= + dependencies: + as-array "^2.0.0" + url-join "0.0.1" + valid-url "^1" + js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" @@ -3565,16 +5176,33 @@ jsesc@^1.3.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== +json-parse-helpfulerror@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc" + integrity sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w= + dependencies: + jju "^1.1.0" + json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -3602,6 +5230,13 @@ json@^9.0.3: resolved "https://registry.yarnpkg.com/json/-/json-9.0.6.tgz#7972c2a5a48a42678db2730c7c2c4ee6e4e24585" integrity sha1-eXLCpaSKQmeNsnMMfCxO5uTiRYU= +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -3624,6 +5259,27 @@ jsonpointer@^4.0.0: resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= +jsonschema@^1.0.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.4.tgz#a46bac5d3506a254465bc548876e267c6d0d6464" + integrity sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw== + +jsonwebtoken@^8.2.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -3634,6 +5290,23 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.0.0, jws@^3.1.4, jws@^3.1.5, jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + karma-chrome-launcher@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" @@ -3702,6 +5375,13 @@ karma@^2.0.0: tmp "0.0.33" useragent "2.2.1" +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== + dependencies: + json-buffer "3.0.0" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -3726,6 +5406,20 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= + optionalDependencies: + graceful-fs "^4.1.9" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= + dependencies: + package-json "^4.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" @@ -3850,6 +5544,16 @@ lodash._isiterateecall@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= +lodash._isnative@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._isnative/-/lodash._isnative-2.4.1.tgz#3ea6404b784a7be836c7b57580e1cdf79b14832c" + integrity sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw= + +lodash._objecttypes@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz#7c0b7f69d98a1f76529f890b0cdb1b4dfec11c11" + integrity sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE= + lodash._reescape@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" @@ -3870,6 +5574,18 @@ lodash._root@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= +lodash._shimkeys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz#6e9cc9666ff081f0b5a6c978b83e242e6949d203" + integrity sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM= + dependencies: + lodash._objecttypes "~2.4.1" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + lodash.escape@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" @@ -3877,6 +5593,16 @@ lodash.escape@^3.0.0: dependencies: lodash._root "^3.0.0" +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.isarguments@2.4.x: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-2.4.1.tgz#4931a9c08253adf091ae7ca192258a973876ecca" + integrity sha1-STGpwIJTrfCRrnyhkiWKlzh27Mo= + lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" @@ -3887,11 +5613,48 @@ lodash.isarray@^3.0.0: resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + lodash.isequal@^4.0.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +lodash.isobject@^2.4.1, lodash.isobject@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz#5a2e47fe69953f1ee631a7eba1fe64d2d06558f5" + integrity sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU= + dependencies: + lodash._objecttypes "~2.4.1" + +lodash.isobject@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" + integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" @@ -3901,6 +5664,30 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" +lodash.keys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.4.1.tgz#48dea46df8ff7632b10d706b8acb26591e2b3727" + integrity sha1-SN6kbfj/djKxDXBrissmWR4rNyc= + dependencies: + lodash._isnative "~2.4.1" + lodash._shimkeys "~2.4.1" + lodash.isobject "~2.4.1" + +lodash.merge@^4.6.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" + integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ== + +lodash.noop@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c" + integrity sha1-OBiPTWUKOkdCWEObluxFsyYXEzw= + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" @@ -3944,6 +5731,18 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "~3.0.0" +lodash.values@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-2.4.1.tgz#abf514436b3cb705001627978cbcf30b1280eea4" + integrity sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ= + dependencies: + lodash.keys "~2.4.1" + +lodash@4.17.5: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + integrity sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw== + lodash@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" @@ -3954,7 +5753,7 @@ lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.2.1, l resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" integrity sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg== -lodash@^4.17.5: +lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.8.0: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -3969,6 +5768,11 @@ lodash@~2.4.1: resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e" integrity sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4= +log-driver@1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" + integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== + log-symbols@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" @@ -4030,6 +5834,16 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" +lowercase-keys@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + lru-cache@2, lru-cache@^2.5.0: version "2.7.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" @@ -4048,6 +5862,28 @@ lru-cache@^4.0.1, lru-cache@^4.1.2: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^4.1.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-queue@0.1: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= + dependencies: + es5-ext "~0.10.2" + +magic-string@0.25.2: + version "0.25.2" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.2.tgz#139c3a729515ec55e96e69e82a11fe890a293ad9" + integrity sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg== + dependencies: + sourcemap-codec "^1.4.4" + magic-string@^0.25.0: version "0.25.1" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.1.tgz#b1c248b399cd7485da0fe7385c2fc7011843266e" @@ -4078,6 +5914,13 @@ mailgun-js@^0.18.0: proxy-agent "~3.0.0" tsscmp "~1.0.0" +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + make-iterator@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" @@ -4124,6 +5967,20 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" +memoizee@^0.4.14: + version "0.4.14" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" + integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg== + dependencies: + d "1" + es5-ext "^0.10.45" + es6-weak-map "^2.0.2" + event-emitter "^0.3.5" + is-promise "^2.1" + lru-queue "0.1" + next-tick "1" + timers-ext "^0.1.5" + meow@^3.3.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" @@ -4155,6 +6012,11 @@ meow@^4.0.0: redent "^2.0.0" trim-newlines "^2.0.0" +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + merge-stream@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" @@ -4162,6 +6024,16 @@ merge-stream@^1.0.0: dependencies: readable-stream "^2.0.1" +methmeth@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/methmeth/-/methmeth-1.1.0.tgz#e80a26618e52f5c4222861bb748510bd10e29089" + integrity sha1-6AomYY5S9cQiKGG7dIUQvRDikIk= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" @@ -4181,7 +6053,7 @@ micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.0.4: +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -4200,6 +6072,11 @@ micromatch@^3.0.4: snapdragon "^0.8.1" to-regex "^3.0.2" +"mime-db@>= 1.38.0 < 2": + version "1.39.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.39.0.tgz#f95a20275742f7d2ad0429acfe40f4233543780e" + integrity sha512-DTsrw/iWVvwHH+9Otxccdyy0Tgiil6TWK/xhfARJZF/QFhwOgZgOIvA2/VIGpM8U7Q8z5nDmdDWC6tuVMJNibw== + mime-db@~1.12.0: version "1.12.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" @@ -4210,6 +6087,18 @@ mime-db@~1.33.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== +mime-db@~1.38.0: + version "1.38.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" + integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg== + +mime-types@^2.0.8, mime-types@^2.1.16, mime-types@~2.1.19: + version "2.1.22" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd" + integrity sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog== + dependencies: + mime-db "~1.38.0" + mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: version "2.1.18" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" @@ -4224,11 +6113,21 @@ mime-types@~2.0.1, mime-types@~2.0.3: dependencies: mime-db "~1.12.0" -mime@^1.2.11, mime@^1.3.4: +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== + +mime@^1.2.11, mime@^1.3.4, mime@^1.4.1: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^2.2.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78" + integrity sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg== + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -4300,6 +6199,14 @@ minipass@^2.2.1, minipass@^2.3.3: safe-buffer "^5.1.2" yallist "^3.0.0" +minipass@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + minizlib@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" @@ -4307,6 +6214,13 @@ minizlib@^1.1.0: dependencies: minipass "^2.2.1" +minizlib@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + dependencies: + minipass "^2.2.1" + mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" @@ -4315,13 +6229,18 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@0.5.x, mkdirp@0.x.x, mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" +modelo@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/modelo/-/modelo-4.2.3.tgz#b278588a4db87fc1e5107ae3a277c0876f38d894" + integrity sha512-9DITV2YEMcw7XojdfvGl3gDD8J9QjZTJ7ZOUuSAkP+F3T6rDbzMJuPktxptsdHYEvZcmXrCD3LMOhdSAEq6zKA== + modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" @@ -4332,11 +6251,27 @@ moment@^2.11.2: resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y= +morgan@^1.8.2: + version "1.9.1" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59" + integrity sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA== + dependencies: + basic-auth "~2.0.0" + debug "2.6.9" + depd "~1.1.2" + on-finished "~2.3.0" + on-headers "~1.0.1" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= +ms@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + multipipe@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" @@ -4344,11 +6279,31 @@ multipipe@^0.1.2: dependencies: duplexer2 "0.0.2" +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + integrity sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA= + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + nan@^2.0.0, nan@^2.0.5, nan@^2.9.2, nan@~2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" integrity sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA== +nan@^2.12.1: + version "2.13.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" + integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== + nan@~2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" @@ -4372,11 +6327,26 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +nash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/nash/-/nash-3.0.0.tgz#bced3a0cb8434c2ad30d1a0d567cfc0c37128eea" + integrity sha512-M5SahEycXUmko3zOvsBkF6p94CWLhnyy9hfpQ9Qzp+rQkQ8D1OaTlfTl1OBWktq9Fak3oDXKU+ev7tiMaMu+1w== + dependencies: + async "^1.3.0" + flat-arguments "^1.0.0" + lodash "^4.17.5" + minimist "^1.1.0" + natives@^1.1.0: version "1.1.4" resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.4.tgz#2f0f224fc9a7dd53407c7667c84cf8dbe773de58" integrity sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg== +ncp@1.0.x: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-1.0.1.tgz#d15367e5cb87432ba117d2bf80fdf45aecfb4246" + integrity sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY= + ncp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" @@ -4391,6 +6361,15 @@ needle@^2.2.0: iconv-lite "^0.4.4" sax "^1.2.4" +needle@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.0.tgz#ce3fea21197267bacb310705a7bbe24f2a3a3492" + integrity sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg== + dependencies: + debug "^4.1.0" + iconv-lite "^0.4.4" + sax "^1.2.4" + negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" @@ -4401,11 +6380,16 @@ netmask@^1.0.6: resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" integrity sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU= -next-tick@1: +next-tick@1, next-tick@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + node-abi@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.1.tgz#7628c4d4ec4e9cd3764ceb3652f36b2e7f8d4923" @@ -4421,6 +6405,21 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-fetch@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5" + integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA== + +node-forge@^0.7.1: + version "0.7.6" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac" + integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw== + +node-forge@^0.8.0: + version "0.8.2" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.8.2.tgz#b4bcc59fb12ce77a8825fc6a783dfe3182499c5a" + integrity sha512-mXQ9GBq1N3uDCyV1pdSzgIguwgtVpM7f5/5J4ipz12PKWElmPpVWLDuWl8iXmhysr21+WmX/OJ5UKx82wjomgg== + node-pre-gyp@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz#6e4ef5bb5c5203c6552448828c852c40111aac46" @@ -4437,6 +6436,22 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + node-uuid@~1.4.0, node-uuid@~1.4.7: version "1.4.8" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" @@ -4521,18 +6536,52 @@ normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package- semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.0, normalize-path@^2.0.1: +"normalize-package-data@~1.0.1 || ^2.0.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + npm-bundled@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" integrity sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow== +"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" + integrity sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA== + dependencies: + hosted-git-info "^2.6.0" + osenv "^0.1.5" + semver "^5.5.0" + validate-npm-package-name "^3.0.0" + npm-packlist@^1.1.6: version "1.1.10" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" @@ -4541,6 +6590,25 @@ npm-packlist@^1.1.6: ignore-walk "^3.0.1" npm-bundled "^1.0.1" +npm-registry-client@^8.5.1: + version "8.6.0" + resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4" + integrity sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg== + dependencies: + concat-stream "^1.5.2" + graceful-fs "^4.1.6" + normalize-package-data "~1.0.1 || ^2.0.0" + npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + once "^1.3.3" + request "^2.74.0" + retry "^0.10.0" + safe-buffer "^5.1.1" + semver "2 >=2.2.1 || 3.x || 4 || 5" + slide "^1.1.3" + ssri "^5.2.4" + optionalDependencies: + npmlog "2 || ^3.1.0 || ^4.0.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -4548,7 +6616,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^4.0.1, npmlog@^4.0.2: +"npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.1, npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -4573,6 +6641,11 @@ oauth-sign@~0.8.0, oauth-sign@~0.8.1, oauth-sign@~0.8.2: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + object-assign@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" @@ -4637,14 +6710,19 @@ object.pick@^1.2.0, object.pick@^1.3.0: dependencies: isobject "^3.0.1" -on-finished@~2.3.0: +on-finished@^2.2.0, on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +on-headers@^1.0.0, on-headers@~1.0.1, on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -4658,11 +6736,30 @@ once@~1.3.0: dependencies: wrappy "1" +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + opener@~1.4.0: version "1.4.3" resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" integrity sha1-XG2ixdflgx6P+jlklQ+NZnSskLg= +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + optimist@0.6.x, optimist@^0.6.1, optimist@~0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -4693,6 +6790,16 @@ optjs@~3.2.2: resolved "https://registry.yarnpkg.com/optjs/-/optjs-3.2.2.tgz#69a6ce89c442a44403141ad2f9b370bd5bb6f4ee" integrity sha1-aabOicRCpEQDFBrS+bNwvVu29O4= +ora@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" + integrity sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q= + dependencies: + chalk "^1.1.1" + cli-cursor "^1.0.2" + cli-spinners "^0.1.2" + object-assign "^4.0.1" + orchestrator@^0.3.0: version "0.3.8" resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" @@ -4741,7 +6848,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@^0.1.4: +osenv@^0.1.0, osenv@^0.1.4, osenv@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -4749,11 +6856,21 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +p-cancelable@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" + integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -4768,6 +6885,13 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -4798,6 +6922,16 @@ pac-resolver@^3.0.0: netmask "^1.0.6" thunkify "^2.1.2" +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + parse-filepath@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" @@ -4847,6 +6981,11 @@ parse5@^1.3.2: resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" integrity sha1-m387DeMr543CQBsXVzzK8Pb1nZQ= +parse5@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + parseqs@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" @@ -4893,7 +7032,12 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.0: +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= @@ -4903,6 +7047,11 @@ path-parse@^1.0.5: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" integrity sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME= +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + path-proxy@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/path-proxy/-/path-proxy-1.0.0.tgz#18e8a36859fc9d2f1a53b48dee138543c020de5e" @@ -4922,6 +7071,18 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-to-regexp@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30= + dependencies: + isarray "0.0.1" + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -4960,6 +7121,11 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= +pify@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -4972,6 +7138,16 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pkginfo@0.3.x: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" + integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE= + +pkginfo@0.x.x: + version "0.4.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" + integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8= + pluralize@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" @@ -4985,6 +7161,15 @@ portfinder@0.4.x: async "0.9.0" mkdirp "0.5.x" +portfinder@^1.0.13: + version "1.0.20" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a" + integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw== + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -5016,6 +7201,16 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" @@ -5046,6 +7241,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + promise-polyfill@7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-7.1.2.tgz#ab05301d8c28536301622d69227632269a70ca3b" @@ -5058,6 +7258,18 @@ promisify-call@^2.0.2: dependencies: with-callback "^1.0.2" +prompt@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prompt/-/prompt-1.0.0.tgz#8e57123c396ab988897fb327fd3aedc3e735e4fe" + integrity sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4= + dependencies: + colors "^1.1.2" + pkginfo "0.x.x" + read "1.0.x" + revalidator "0.1.x" + utile "0.3.x" + winston "2.1.x" + protobufjs@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-5.0.3.tgz#e4dfe9fb67c90b2630d15868249bcc4961467a17" @@ -5068,6 +7280,11 @@ protobufjs@^5.0.3: glob "^7.0.5" yargs "^3.10.0" +protochain@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/protochain/-/protochain-1.0.5.tgz#991c407e99de264aadf8f81504b5e7faf7bfa260" + integrity sha1-mRxAfpneJkqt+PgVBLXn+ve/omA= + protractor@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/protractor/-/protractor-3.0.0.tgz#ac76778770f629bab2afa56a6aac9c59ca6d259d" @@ -5085,6 +7302,14 @@ protractor@3.0.0: selenium-webdriver "2.48.2" source-map-support "~0.3.2" +proxy-addr@~2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + proxy-agent@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-3.0.0.tgz#f6768e202889b2285d39906d3a94768416f8f713" @@ -5122,7 +7347,7 @@ pump@^1.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pump@^2.0.1: +pump@^2.0.0, pump@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== @@ -5130,11 +7355,25 @@ pump@^2.0.1: end-of-stream "^1.1.0" once "^1.3.1" -punycode@1.4.1, punycode@^1.4.1: +pumpify@^1.4.0, pumpify@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.4.1, punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + q@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/q/-/q-1.0.0.tgz#dc1f92c4587be54f7853b29dc28e6d243a88498d" @@ -5150,7 +7389,7 @@ qjobs@^1.1.4: resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== -qs@6.5.2, qs@~6.5.1: +qs@6.5.2, qs@~6.5.1, qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== @@ -5170,6 +7409,20 @@ qs@~6.2.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" integrity sha1-HPyyXBCpsrSDBT/zn138kjOQjP4= +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + integrity sha1-E+JtKK1rD/qpExLNO/cI7TUecjM= + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" @@ -5184,7 +7437,7 @@ randomatic@^3.0.0: kind-of "^6.0.0" math-random "^1.0.1" -range-parser@^1.2.0: +range-parser@^1.2.0, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= @@ -5199,7 +7452,7 @@ raw-body@2.3.3, raw-body@^2.2.0: iconv-lite "0.4.23" unpipe "1.0.0" -rc@^1.1.6, rc@^1.1.7: +rc@^1.0.1, rc@^1.1.6, rc@^1.1.7, rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -5260,6 +7513,13 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" +read@1.0.x: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + dependencies: + mute-stream "~0.0.4" + readable-stream@1.1.x, "readable-stream@1.x >=1.1.9", readable-stream@~1.1.9: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -5270,7 +7530,7 @@ readable-stream@1.1.x, "readable-stream@1.x >=1.1.9", readable-stream@~1.1.9: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.3.0, readable-stream@^2.3.5: +readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== @@ -5293,7 +7553,7 @@ readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stre isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@~2.0.5: +readable-stream@~2.0.0, readable-stream@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" integrity sha1-j5A0HmilPMySh4jaz80Rs265t44= @@ -5315,6 +7575,24 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + integrity sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -5387,6 +7665,21 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +registry-auth-token@^3.0.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" + integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= + dependencies: + rc "^1.0.1" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -5472,6 +7765,32 @@ request@^2.0.0, request@^2.74.0: tunnel-agent "^0.6.0" uuid "^3.1.0" +request@^2.72.0, request@^2.79.0, request@^2.81.0, request@^2.85.0, request@^2.87.0, request@^2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + request@~2.57.0: version "2.57.0" resolved "https://registry.yarnpkg.com/request/-/request-2.57.0.tgz#d445105a42d009b9d724289633b449a6d723d989" @@ -5521,7 +7840,7 @@ require-relative@0.8.7: resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4= -requires-port@^1.0.0: +requires-port@1.x.x, requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= @@ -5546,11 +7865,64 @@ resolve@^1.1.6, resolve@^1.1.7: dependencies: path-parse "^1.0.5" +resolve@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" + integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== + dependencies: + path-parse "^1.0.6" + +responselike@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +retry-axios@0.3.2, retry-axios@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/retry-axios/-/retry-axios-0.3.2.tgz#5757c80f585b4cc4c4986aa2ffd47a60c6d35e13" + integrity sha512-jp4YlI0qyDFfXiXGhkCOliBN1G7fRH03Nqy8YdShzGqbY5/9S2x/IR6C88ls2DFkbWuL3ASkP7QD3pVrNpPgwQ== + +retry-request@^3.0.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-3.3.2.tgz#fd8e0079e7b0dfc7056e500b6f089437db0da4df" + integrity sha512-WIiGp37XXDC6e7ku3LFoi7LCL/Gs9luGeeqvbPRb+Zl6OQMw4RCRfSaW+aLfE6lhz1R941UavE6Svl3Dm5xGIQ== + dependencies: + request "^2.81.0" + through2 "^2.0.0" + +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + +revalidator@0.1.x: + version "0.1.8" + resolved "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz#fece61bfa0c1b52a206bd6b18198184bdd523a3b" + integrity sha1-/s5hv6DBtSoga9axgZgYS91SOjs= + right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" @@ -5558,13 +7930,20 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: +rimraf@2.6.2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== dependencies: glob "^7.0.5" +rimraf@2.x.x: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + rollup-plugin-node-resolve@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz#c26d110a36812cbefa7ce117cadcd3439aa1c713" @@ -5606,16 +7985,62 @@ rollup@^0.64.1: "@types/estree" "0.0.39" "@types/node" "*" -rsvp@^3.0.13: +router@^1.3.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/router/-/router-1.3.3.tgz#c142f6b5ea4d6b3359022ca95b6580bd217f89cf" + integrity sha1-wUL2tepNazNZAiypW2WAvSF/ic8= + dependencies: + array-flatten "2.1.1" + debug "2.6.9" + methods "~1.1.2" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + setprototypeof "1.1.0" + utils-merge "1.0.1" + +rsvp@^3.0.13, rsvp@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + integrity sha1-yK1KXhEGYeQCp9IbUw4AnyX444k= + dependencies: + once "^1.3.0" + +run-async@^2.2.0, run-async@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + dependencies: + is-promise "^2.1.0" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI= + rx@2.3.24: version "2.3.24" resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7" integrity sha1-FPlQpCF9fjXapxu8vljv9o6ksrc= +rxjs@6.3.3: + version "6.3.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55" + integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw== + dependencies: + tslib "^1.9.0" + +rxjs@6.4.0, rxjs@^6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" + integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw== + dependencies: + tslib "^1.9.0" + rxjs@^6.0.0: version "6.2.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.1.tgz#246cebec189a6cbc143a3ef9f62d6f4c91813ca1" @@ -5623,7 +8048,7 @@ rxjs@^6.0.0: dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -5657,6 +8082,18 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +schematics-utilities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/schematics-utilities/-/schematics-utilities-1.1.2.tgz#5a54bc36bdc9cf2424a33feccc43ae9b61c5c32e" + integrity sha512-HhY15I4pugKtzu/g3gnSNPkz3ah8fAm1asp+fbElzp7rpm69PgGWkp4ta0ubyCbpj2qSV4TvZE87n10KpdE9zw== + dependencies: + "@angular-devkit/core" "^7.3.6" + "@angular-devkit/schematics" "^7.3.6" + npm-registry-client "^8.5.1" + parse5 "^5.0.0" + rxjs "^6.4.0" + typescript "^3.3.3333" + selenium-webdriver@2.48.2: version "2.48.2" resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-2.48.2.tgz#b26a4631430d0a9f36284ee0cfe09676e8f348ca" @@ -5668,7 +8105,19 @@ selenium-webdriver@2.48.2: ws "^0.8.0" xml2js "0.4.4" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + dependencies: + semver "^5.0.3" + +"semver@2 >=2.2.1 || 3.x || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.6.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== + +"semver@2 || 3 || 4 || 5", semver@5.5.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== @@ -5688,11 +8137,47 @@ semver@~5.0.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" integrity sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no= +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + sequencify@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" integrity sha1-kM/xnQLgcCf9dn9erT57ldHnOAw= +serializerr@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/serializerr/-/serializerr-1.0.3.tgz#12d4c5aa1c3ffb8f6d1dc5f395aa9455569c3f91" + integrity sha1-EtTFqhw/+49tHcXzlaqUVVacP5E= + dependencies: + protochain "^1.0.5" + +serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -5754,7 +8239,7 @@ sigmund@~1.0.0: resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= -signal-exit@^3.0.0: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= @@ -5785,6 +8270,11 @@ slash@^1.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= +slide@^1.1.3, slide@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + smart-buffer@^1.0.13, smart-buffer@^1.0.4: version "1.1.15" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" @@ -5798,6 +8288,11 @@ smtp-connection@2.12.0: httpntlm "1.6.1" nodemailer-shared "1.1.0" +snakeize@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/snakeize/-/snakeize-0.1.0.tgz#10c088d8b58eb076b3229bb5a04e232ce126422d" + integrity sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0= + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -5904,6 +8399,13 @@ socks@^1.1.10: ip "^1.1.4" smart-buffer "^1.0.13" +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + dependencies: + is-plain-obj "^1.0.0" + source-map-resolve@^0.5.0: version "0.5.2" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" @@ -5948,6 +8450,11 @@ source-map@0.1.32: dependencies: amdefine ">=0.0.4" +source-map@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" @@ -5970,6 +8477,11 @@ sourcemap-codec@^1.4.1: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.3.tgz#0ba615b73ec35112f63c2f2d9e7c3f87282b0e33" integrity sha512-vFrY/x/NdsD7Yc8mpTJXuao9S8lq08Z/kOITHz6b7YbfI9xL8Spe5EvSQUHOI7SbpY8bRPr0U3kKSsPuqEGSfA== +sourcemap-codec@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz#c63ea927c029dd6bd9a2b7fa03b3fec02ad56e9f" + integrity sha512-CYAPYdBu34781kLHkaW3m6b/uUSyMOC2R61gcYMWooeuaGtjof86ZA/8T+qVPPt7np1085CR9hmMGrySwEc8Xg== + sparkles@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" @@ -6001,6 +8513,14 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" integrity sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA== +split-array-stream@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/split-array-stream/-/split-array-stream-1.0.3.tgz#d2b75a8e5e0d824d52fdec8b8225839dc2e35dfa" + integrity sha1-0rdajl4Ngk1S/eyLgiWDncLjXfo= + dependencies: + async "^2.4.0" + is-stream-ended "^0.1.0" + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -6038,6 +8558,18 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== + dependencies: + safe-buffer "^5.1.1" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -6056,11 +8588,23 @@ statuses@~1.3.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== + stream-consume@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz#d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48" integrity sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg== +stream-events@^1.0.1, stream-events@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" + integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== + dependencies: + stubs "^3.0.0" + stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" @@ -6076,6 +8620,28 @@ streamroller@0.7.0: mkdirp "^0.5.1" readable-stream "^2.3.0" +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-format-obj@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string-format-obj/-/string-format-obj-1.1.1.tgz#c7612ca4e2ad923812a81db192dc291850aa1f65" + integrity sha512-Mm+sROy+pHJmx0P/0Bs1uxIX6UhGJGj6xDGQZ5zh9v/SZRmLGevp+p0VJxV7lirrkAmQ2mvva/gHKpnF/pTb+Q== + +string-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" + integrity sha1-VpcPscOFWOnnC3KL894mmsRa36w= + dependencies: + strip-ansi "^3.0.0" + +string-template@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96" + integrity sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y= + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -6085,7 +8651,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -6131,6 +8697,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-bom-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" @@ -6181,6 +8754,47 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +stubs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" + integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= + +superstatic@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/superstatic/-/superstatic-6.0.4.tgz#5c38fe05e2e9513b68d5ba2798925e4839c151dd" + integrity sha512-Nfli9mSPa9fJloKuDeUOdqC1lcw4c4SnxiWPB8s7Yn1iYo7Ja3pj7qc8AXMqHVqn/Kf7QsxBjAeOJTpuJ0mcrQ== + dependencies: + as-array "^2.0.0" + async "^1.5.2" + basic-auth-connect "^1.0.0" + chalk "^1.1.3" + char-spinner "^1.0.1" + compare-semver "^1.0.0" + compression "^1.7.0" + connect "^3.6.2" + connect-query "^1.0.0" + destroy "^1.0.4" + fast-url-parser "^1.1.3" + fs-extra "^0.30.0" + glob "^7.1.2" + glob-slasher "^1.0.1" + home-dir "^1.0.0" + is-url "^1.2.2" + join-path "^1.1.1" + lodash "^4.17.4" + mime-types "^2.1.16" + minimatch "^3.0.4" + morgan "^1.8.2" + nash "^3.0.0" + on-finished "^2.2.0" + on-headers "^1.0.0" + path-to-regexp "^1.7.0" + router "^1.3.1" + rsvp "^3.6.2" + string-length "^1.0.0" + try-require "^1.0.0" + update-notifier "^2.5.0" + supports-color@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" @@ -6249,6 +8863,19 @@ tar-stream@^1.1.2: to-buffer "^1.1.0" xtend "^4.0.0" +tar-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + tar@^4: version "4.4.4" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.4.tgz#ec8409fae9f665a4355cc3b4087d0820232bb8cd" @@ -6262,6 +8889,19 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" +tar@^4.3.0: + version "4.4.8" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" + integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.3.4" + minizlib "^1.1.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + tempfile@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" @@ -6270,6 +8910,13 @@ tempfile@^1.1.1: os-tmpdir "^1.0.0" uuid "^2.0.1" +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + text-extensions@^1.0.0: version "1.7.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.7.0.tgz#faaaba2625ed746d568a23e4d0aacd9bf08a8b39" @@ -6283,6 +8930,14 @@ through2-filter@^2.0.0: through2 "~2.0.0" xtend "~4.0.0" +through2@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.1.tgz#384e75314d49f32de12eebb8136b8eb6b5d59da9" + integrity sha1-OE51MU1J8y3hLuu4E2uOtrXVnak= + dependencies: + readable-stream "~2.0.0" + xtend "~4.0.0" + through2@^0.6.0, through2@^0.6.1: version "0.6.5" resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" @@ -6299,7 +8954,15 @@ through2@^2.0.0, through2@^2.0.2, through2@~2.0.0, through2@~2.0.1: readable-stream "^2.1.5" xtend "~4.0.1" -through@2, "through@>=2.2.7 <3": +through2@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@2, "through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -6321,6 +8984,19 @@ time-stamp@^1.0.0: resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timers-ext@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + timespan@2.3.x: version "2.3.0" resolved "https://registry.yarnpkg.com/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929" @@ -6331,7 +9007,7 @@ tmp@0.0.24: resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.24.tgz#d6a5e198d14a9835cc6f2d7c3d9e302428c8cf12" integrity sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI= -tmp@0.0.33, tmp@0.0.x: +tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== @@ -6350,7 +9026,7 @@ to-array@0.1.4: resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= -to-buffer@^1.1.0: +to-buffer@^1.1.0, to-buffer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== @@ -6400,6 +9076,21 @@ tough-cookie@~2.3.0, tough-cookie@~2.3.3: dependencies: punycode "^1.4.1" +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +toxic@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toxic/-/toxic-1.0.1.tgz#8c2e2528da591100adc3883f2c0e56acfb1c7288" + integrity sha512-WI3rIGdcaKULYg7KVoB0zcjikqvcYYvcuT6D89bFPz2rVR0Rl0PK6x8/X62rtdLtBKIE985NzVf/auTtGegIIg== + dependencies: + lodash "^4.17.10" + traceur@0.0.105: version "0.0.105" resolved "https://registry.yarnpkg.com/traceur/-/traceur-0.0.105.tgz#5cf9dee83d6b77861c3d6c44d53859aed7ab0479" @@ -6442,6 +9133,11 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= +try-require@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/try-require/-/try-require-1.2.1.tgz#34489a2cac0c09c1cc10ed91ba011594d4333be2" + integrity sha1-NEiaLKwMCcHMEO2RugEVlNQzO+I= + tslib@1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" @@ -6489,6 +9185,11 @@ type-is@~1.6.16: media-typer "0.3.0" mime-types "~2.1.18" +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + typescript@1.8.10: version "1.8.10" resolved "https://registry.yarnpkg.com/typescript/-/typescript-1.8.10.tgz#b475d6e0dff0bf50f296e5ca6ef9fbb5c7320f1e" @@ -6499,6 +9200,11 @@ typescript@1.8.10: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.3.tgz#01b70247a6d3c2467f70c45795ef5ea18ce191d5" integrity sha512-+81MUSyX+BaSo+u2RbozuQk/UWx6hfG0a5gHu4ANEM4sU96XbuIyAB+rWBW1u70c6a5QuZfuYICn3s2UjuHUpA== +typescript@^3.3.3333: + version "3.4.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.3.tgz#0eb320e4ace9b10eadf5bc6103286b0f8b7c224f" + integrity sha512-FFgHdPt4T/duxx6Ndf7hwgMZZjZpB+U0nMNGVCYPq0rEzWKjEDobm4J6yb3CS7naZ0yURFqdw9Gwc7UOh/P9oQ== + uglify-js@^2.6: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" @@ -6574,6 +9280,22 @@ unique-stream@^2.0.2: json-stable-stringify "^1.0.0" through2-filter "^2.0.0" +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + +universal-analytics@^0.4.16: + version "0.4.20" + resolved "https://registry.yarnpkg.com/universal-analytics/-/universal-analytics-0.4.20.tgz#d6b64e5312bf74f7c368e3024a922135dbf24b03" + integrity sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw== + dependencies: + debug "^3.0.0" + request "^2.88.0" + uuid "^3.0.0" + universalify@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" @@ -6592,6 +9314,39 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= + +upath@^1.0.5, upath@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== + +update-notifier@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" @@ -6602,6 +9357,25 @@ url-join@0.0.1: resolved "https://registry.yarnpkg.com/url-join/-/url-join-0.0.1.tgz#1db48ad422d3402469a87f7d97bdebfe4fb1e3c8" integrity sha1-HbSK1CLTQCRpqH99l73r/k+x48g= +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" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + use@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" @@ -6614,6 +9388,13 @@ user-home@^1.1.1: resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8= + dependencies: + os-homedir "^1.0.0" + useragent@2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e" @@ -6644,20 +9425,37 @@ util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= +utile@0.3.x: + version "0.3.0" + resolved "https://registry.yarnpkg.com/utile/-/utile-0.3.0.tgz#1352c340eb820e4d8ddba039a4fbfaa32ed4ef3a" + integrity sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo= + dependencies: + async "~0.9.0" + deep-equal "~0.2.1" + i "0.3.x" + mkdirp "0.x.x" + ncp "1.0.x" + rimraf "2.x.x" + utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= +uuid@3.2.1, uuid@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + integrity sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA== + uuid@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho= -uuid@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - integrity sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA== +uuid@^3.0.0, uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== uws@~9.14.0: version "9.14.0" @@ -6676,6 +9474,11 @@ vali-date@^1.0.0: resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" integrity sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY= +valid-url@^1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" + integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= + validate-npm-package-license@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" @@ -6684,6 +9487,18 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -6808,6 +9623,13 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" @@ -6818,6 +9640,44 @@ window-size@^0.1.4: resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" integrity sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY= +winston@2.1.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/winston/-/winston-2.1.1.tgz#3c9349d196207fd1bdff9d4bc43ef72510e3a12e" + integrity sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4= + dependencies: + async "~1.0.0" + colors "1.0.x" + cycle "1.0.x" + eyes "0.1.x" + isstream "0.1.x" + pkginfo "0.3.x" + stack-trace "0.0.x" + +winston@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-2.4.0.tgz#808050b93d52661ed9fb6c26b3f0c826708b0aee" + integrity sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4= + dependencies: + async "~1.0.0" + colors "1.0.x" + cycle "1.0.x" + eyes "0.1.x" + isstream "0.1.x" + stack-trace "0.0.x" + +winston@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/winston/-/winston-1.1.2.tgz#68edd769ff79d4f9528cf0e5d80021aade67480c" + integrity sha1-aO3Xaf951PlSjPDl2AAhqt5nSAw= + dependencies: + async "~1.0.0" + colors "1.0.x" + cycle "1.0.x" + eyes "0.1.x" + isstream "0.1.x" + pkginfo "0.3.x" + stack-trace "0.0.x" + with-callback@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/with-callback/-/with-callback-1.0.2.tgz#a09629b9a920028d721404fb435bdcff5c91bc21" @@ -6851,6 +9711,24 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^1.1.2: + version "1.3.4" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +write-file-atomic@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" + integrity sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + ws@^0.8.0: version "0.8.1" resolved "https://registry.yarnpkg.com/ws/-/ws-0.8.1.tgz#6b65273b99193c5f067a4cf5809598f777e3b759" @@ -6871,6 +9749,18 @@ ws@^3.3.2, ws@~3.3.1: safe-buffer "~5.1.0" ultron "~1.1.0" +xdg-basedir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" + integrity sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I= + 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" + integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= + xhr2@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f" @@ -6931,6 +9821,31 @@ yargs-parser@^7.0.0: dependencies: camelcase "^4.1.0" +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= + dependencies: + camelcase "^4.1.0" + +yargs@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" + integrity sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw== + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" + yargs@9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" @@ -6978,6 +9893,16 @@ yeast@0.1.2: resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= +zip-stream@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.2.0.tgz#a8bc45f4c1b49699c6b90198baacaacdbcd4ba04" + integrity sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ= + dependencies: + archiver-utils "^1.3.0" + compress-commons "^1.2.0" + lodash "^4.8.0" + readable-stream "^2.0.0" + zone.js@^0.8.0: version "0.8.26" resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.26.tgz#7bdd72f7668c5a7ad6b118148b4ea39c59d08d2d" From 125cc134a8e380643b861804bbda7e46a2175610 Mon Sep 17 00:00:00 2001 From: James Daniels Date: Wed, 24 Apr 2019 13:57:57 -0700 Subject: [PATCH 03/16] Cleaning some stuff up, still having spec issues --- .travis.yml | 2 +- package.json | 2 +- src/root.spec.js | 2 +- src/schematics/index.ts | 18 ++++++------------ tools/build.js | 2 +- 5 files changed, 10 insertions(+), 16 deletions(-) diff --git a/.travis.yml b/.travis.yml index 10d26c8ec..23c8f6687 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: node_js sudo: false node_js: -- 'node' +- 'lts/*' addons: chrome: stable diff --git a/package.json b/package.json index 3ccd62ac8..77a8856b5 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "optionalDependencies": { "bufferutil": "~3.0.0", "utf-8-validate": "~4.0.0" - }, + }, "devDependencies": { "@angular/compiler-cli": ">=6.0.0 <8", "@angular/platform-server": ">=6.0.0 <8", diff --git a/src/root.spec.js b/src/root.spec.js index b619bf9f1..66df08b8b 100644 --- a/src/root.spec.js +++ b/src/root.spec.js @@ -13,7 +13,7 @@ export * from './packages-dist/database/list/snapshot-changes.spec'; export * from './packages-dist/database/list/state-changes.spec'; export * from './packages-dist/database/list/audit-trail.spec'; export * from './packages-dist/storage/storage.spec'; -//export * from './packages-dist/schematics/ng-add.spec'; +//export * from './packages-dist/schematics/index.spec'; //export * from './packages-dist/messaging/messaging.spec'; // // Since this a deprecated API, we run on it on manual tests only diff --git a/src/schematics/index.ts b/src/schematics/index.ts index cee7ea3e5..02ea5207a 100644 --- a/src/schematics/index.ts +++ b/src/schematics/index.ts @@ -1,5 +1,6 @@ import { Tree } from '@angular-devkit/schematics'; -import { from, Observable } from 'rxjs'; +import { from } from 'rxjs'; +import { map } from 'rxjs/operators'; import { Project } from './interfaces'; import { ngAdd } from './ng-add'; import { listProjects, projectPrompt } from './utils'; @@ -10,14 +11,7 @@ interface DeployOptions { // You don't have to export the function as default. You can also have more than one rule factory // per file. -export function ngDeploy({project}: DeployOptions): (host: Tree) => Observable { - return (host: Tree): Observable => { - return from( - listProjects().then((projects: Project[]) => { - return projectPrompt(projects).then(({firebaseProject}: any) => { - return ngAdd(host, {firebaseProject, project}) - }); - }) - ); - }; -} +export const ngDeploy = ({project}: DeployOptions) => (host: Tree) => from(listProjects()).pipe( + map((projects: Project[]) => projectPrompt(projects)), + map(({firebaseProject}: any) => ngAdd(host, {firebaseProject, project})) +) \ No newline at end of file diff --git a/tools/build.js b/tools/build.js index 7a09626b5..973a5dfea 100644 --- a/tools/build.js +++ b/tools/build.js @@ -248,7 +248,7 @@ function copySchematicFiles() { return Promise.all([ copy(`${process.cwd()}/src/core/builders.json`, `${process.cwd()}/dist/packages-dist/builders.json`), copy(`${process.cwd()}/src/core/collection.json`, `${process.cwd()}/dist/packages-dist/collection.json`), - copy(`${process.cwd()}/src/schematics/deploy/schema.json`, `${process.cwd()}/dist/packages-dist/schematics/deploy`) + copy(`${process.cwd()}/src/schematics/deploy/schema.json`, `${process.cwd()}/dist/packages-dist/schematics/deploy/schema.json`) ]); } From b36f9729f190d22edf00a08d92d7e14116f93ce3 Mon Sep 17 00:00:00 2001 From: NothingEverHappens Date: Wed, 24 Apr 2019 18:32:25 -0400 Subject: [PATCH 04/16] Set up builder/schematic in package.json (#2053) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make sure everything works 🔥 --- package.json | 2 ++ src/core/collection.json | 4 ++-- src/schematics/index.ts | 10 +++++----- src/schematics/ng-add.spec.ts | 7 +++++++ src/schematics/tsconfig.json | 4 ++-- 5 files changed, 18 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 77a8856b5..6842945c7 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,8 @@ "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 1", "build:wrapper": "npm i --prefix wrapper && VERSION=5.1.2 npm run --prefix wrapper build" }, + "schematics": "./dist/packages-dist/collection.json", + "builders": "./dist/packages-dist/builders.json", "keywords": [ "angular", "firebase", diff --git a/src/core/collection.json b/src/core/collection.json index 8a4fc0ae0..1f16aac35 100644 --- a/src/core/collection.json +++ b/src/core/collection.json @@ -3,7 +3,7 @@ "schematics": { "ng-add": { "description": "Add firebase deploy schematic", - "factory": "./schematics/ng-add/index#ngDeploy" + "factory": "./schematics/index#ngDeploy" } } - } \ No newline at end of file + } diff --git a/src/schematics/index.ts b/src/schematics/index.ts index 02ea5207a..4d99e5e82 100644 --- a/src/schematics/index.ts +++ b/src/schematics/index.ts @@ -1,17 +1,17 @@ import { Tree } from '@angular-devkit/schematics'; import { from } from 'rxjs'; -import { map } from 'rxjs/operators'; +import { map, switchMap } from 'rxjs/operators'; import { Project } from './interfaces'; import { ngAdd } from './ng-add'; import { listProjects, projectPrompt } from './utils'; interface DeployOptions { - project: string; + project: string; } // You don't have to export the function as default. You can also have more than one rule factory // per file. export const ngDeploy = ({project}: DeployOptions) => (host: Tree) => from(listProjects()).pipe( - map((projects: Project[]) => projectPrompt(projects)), - map(({firebaseProject}: any) => ngAdd(host, {firebaseProject, project})) -) \ No newline at end of file + switchMap((projects: Project[]) => projectPrompt(projects)), + map(({firebaseProject}: any) => ngAdd(host, {firebaseProject, project})) +); diff --git a/src/schematics/ng-add.spec.ts b/src/schematics/ng-add.spec.ts index e69de29bb..c4cafd24a 100644 --- a/src/schematics/ng-add.spec.ts +++ b/src/schematics/ng-add.spec.ts @@ -0,0 +1,7 @@ +import 'jasmine'; + +describe('ng add', () => { + it('adds', () => { + expect(1).toBe(1); + }); +}); diff --git a/src/schematics/tsconfig.json b/src/schematics/tsconfig.json index f59d53a86..0ae90cd85 100644 --- a/src/schematics/tsconfig.json +++ b/src/schematics/tsconfig.json @@ -20,5 +20,5 @@ "target": "es6", "types": [ "node"] }, - "include": ["*"] -} \ No newline at end of file + "include": ["**/*.ts"] +} From 524be3839a8bd47b44d49bd18c526cdb070ee8f9 Mon Sep 17 00:00:00 2001 From: James Daniels Date: Wed, 24 Apr 2019 17:20:18 -0700 Subject: [PATCH 05/16] Build the schematics as UMD, so we can test --- src/root.spec.js | 4 ++- src/schematics/deploy/actions.spec.ts | 5 +++ src/schematics/deploy/builder.spec.ts | 5 +++ src/schematics/deploy/index.spec.ts | 0 src/schematics/index.spec.ts | 3 +- src/schematics/index.ts | 18 +--------- src/schematics/ng-add.spec.ts | 2 -- src/schematics/ng-add.ts | 15 +++++++++ src/schematics/public_api.ts | 3 ++ src/schematics/tsconfig-build.json | 29 +++++++++++++++++ src/schematics/tsconfig-esm.json | 20 ++++++++++++ src/schematics/tsconfig-test.json | 11 +++++++ src/schematics/tsconfig.json | 24 -------------- tools/build.js | 47 ++++++++++++++++++--------- 14 files changed, 126 insertions(+), 60 deletions(-) create mode 100644 src/schematics/deploy/actions.spec.ts create mode 100644 src/schematics/deploy/builder.spec.ts delete mode 100644 src/schematics/deploy/index.spec.ts create mode 100644 src/schematics/public_api.ts create mode 100644 src/schematics/tsconfig-build.json create mode 100644 src/schematics/tsconfig-esm.json create mode 100644 src/schematics/tsconfig-test.json delete mode 100644 src/schematics/tsconfig.json diff --git a/src/root.spec.js b/src/root.spec.js index 66df08b8b..20c8f5cf1 100644 --- a/src/root.spec.js +++ b/src/root.spec.js @@ -13,7 +13,9 @@ export * from './packages-dist/database/list/snapshot-changes.spec'; export * from './packages-dist/database/list/state-changes.spec'; export * from './packages-dist/database/list/audit-trail.spec'; export * from './packages-dist/storage/storage.spec'; -//export * from './packages-dist/schematics/index.spec'; +export * from './packages-dist/schematics/ng-add.spec'; +export * from './packages-dist/schematics/deploy/actions.spec'; +export * from './packages-dist/schematics/deploy/builder.spec'; //export * from './packages-dist/messaging/messaging.spec'; // // Since this a deprecated API, we run on it on manual tests only diff --git a/src/schematics/deploy/actions.spec.ts b/src/schematics/deploy/actions.spec.ts new file mode 100644 index 000000000..c2ff7797e --- /dev/null +++ b/src/schematics/deploy/actions.spec.ts @@ -0,0 +1,5 @@ +describe('ng deploy:firebase', () => { + it('adds', () => { + expect(1).toBe(1); + }); +}); diff --git a/src/schematics/deploy/builder.spec.ts b/src/schematics/deploy/builder.spec.ts new file mode 100644 index 000000000..d1379b78c --- /dev/null +++ b/src/schematics/deploy/builder.spec.ts @@ -0,0 +1,5 @@ +describe('ng deploy:firebase createBuilder', () => { + it('adds', () => { + expect(1).toBe(1); + }); +}); diff --git a/src/schematics/deploy/index.spec.ts b/src/schematics/deploy/index.spec.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/schematics/index.spec.ts b/src/schematics/index.spec.ts index 089e39b87..0bb778f32 100644 --- a/src/schematics/index.spec.ts +++ b/src/schematics/index.spec.ts @@ -1,2 +1,3 @@ import './ng-add.spec'; -import './deploy/index.spec'; \ No newline at end of file +import './deploy/builder.spec'; +import './deploy/actions.spec'; \ No newline at end of file diff --git a/src/schematics/index.ts b/src/schematics/index.ts index 4d99e5e82..9a85f300e 100644 --- a/src/schematics/index.ts +++ b/src/schematics/index.ts @@ -1,17 +1 @@ -import { Tree } from '@angular-devkit/schematics'; -import { from } from 'rxjs'; -import { map, switchMap } from 'rxjs/operators'; -import { Project } from './interfaces'; -import { ngAdd } from './ng-add'; -import { listProjects, projectPrompt } from './utils'; - -interface DeployOptions { - project: string; -} - -// You don't have to export the function as default. You can also have more than one rule factory -// per file. -export const ngDeploy = ({project}: DeployOptions) => (host: Tree) => from(listProjects()).pipe( - switchMap((projects: Project[]) => projectPrompt(projects)), - map(({firebaseProject}: any) => ngAdd(host, {firebaseProject, project})) -); +export * from './public_api'; \ No newline at end of file diff --git a/src/schematics/ng-add.spec.ts b/src/schematics/ng-add.spec.ts index c4cafd24a..0ead257e2 100644 --- a/src/schematics/ng-add.spec.ts +++ b/src/schematics/ng-add.spec.ts @@ -1,5 +1,3 @@ -import 'jasmine'; - describe('ng add', () => { it('adds', () => { expect(1).toBe(1); diff --git a/src/schematics/ng-add.ts b/src/schematics/ng-add.ts index 4bbfac29b..18bba9628 100644 --- a/src/schematics/ng-add.ts +++ b/src/schematics/ng-add.ts @@ -1,6 +1,10 @@ import { SchematicsException, Tree } from '@angular-devkit/schematics'; import { FirebaseJSON, FirebaseRc } from './interfaces'; import { experimental, JsonParseMode, parseJson } from '@angular-devkit/core'; +import { from } from 'rxjs'; +import { map, switchMap } from 'rxjs/operators'; +import { Project } from './interfaces'; +import { listProjects, projectPrompt } from './utils'; const stringifyFormatted = (obj: any) => JSON.stringify(obj, null, 2); @@ -115,6 +119,17 @@ interface NgAddOptions { project?: string; } +interface DeployOptions { + project: string; +} + +// You don't have to export the function as default. You can also have more than one rule factory +// per file. +export const ngDeploy = ({project}: DeployOptions) => (host: Tree) => from(listProjects()).pipe( + switchMap((projects: Project[]) => projectPrompt(projects)), + map(({firebaseProject}: any) => ngAdd(host, {firebaseProject, project})) +); + export function ngAdd(tree: Tree, options: NgAddOptions) { const {path: workspacePath, workspace} = getWorkspace(tree); diff --git a/src/schematics/public_api.ts b/src/schematics/public_api.ts new file mode 100644 index 000000000..ad655b255 --- /dev/null +++ b/src/schematics/public_api.ts @@ -0,0 +1,3 @@ +export * from './ng-add'; +export * from './deploy/actions'; +export * from './deploy/builder'; diff --git a/src/schematics/tsconfig-build.json b/src/schematics/tsconfig-build.json new file mode 100644 index 000000000..eda5caa88 --- /dev/null +++ b/src/schematics/tsconfig-build.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "module": "es2015", + "target": "es2015", + "noImplicitAny": false, + "outDir": "../../dist/packages-dist/schematics/es2015", + "rootDir": ".", + "sourceMap": true, + "inlineSources": true, + "declaration": false, + "removeComments": true, + "strictNullChecks": true, + "lib": ["es2015", "dom", "es2015.promise", "es2015.collection", "es2015.iterable"], + "skipLibCheck": true, + "moduleResolution": "node" + }, + "files": [ + "index.ts", + "../../node_modules/zone.js/dist/zone.js.d.ts" + ], + "angularCompilerOptions": { + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "enableSummariesForJit": false + } +} diff --git a/src/schematics/tsconfig-esm.json b/src/schematics/tsconfig-esm.json new file mode 100644 index 000000000..dee9883b5 --- /dev/null +++ b/src/schematics/tsconfig-esm.json @@ -0,0 +1,20 @@ +{ + "extends": "./tsconfig-build.json", + "compilerOptions": { + "target": "es5", + "outDir": "../../dist/packages-dist/schematics", + "declaration": true + }, + "files": [ + "public_api.ts", + "../../node_modules/zone.js/dist/zone.js.d.ts" + ], + "angularCompilerOptions": { + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "enableSummariesForJit": false, + "flatModuleOutFile": "index.js", + "flatModuleId": "@angular/fire/schematics" + } + } + \ No newline at end of file diff --git a/src/schematics/tsconfig-test.json b/src/schematics/tsconfig-test.json new file mode 100644 index 000000000..48a0cbe35 --- /dev/null +++ b/src/schematics/tsconfig-test.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig-esm.json", + "compilerOptions": { + "baseUrl": ".", + "paths": { } + }, + "files": [ + "index.spec.ts", + "../../node_modules/zone.js/dist/zone.js.d.ts" + ] +} \ No newline at end of file diff --git a/src/schematics/tsconfig.json b/src/schematics/tsconfig.json deleted file mode 100644 index 0ae90cd85..000000000 --- a/src/schematics/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "tsconfig", - "lib": ["es2018", "es2015", "dom"], - "outDir": "../../dist/packages-dist/schematics", - "declaration": true, - "module": "commonjs", - "moduleResolution": "node", - "noEmitOnError": true, - "noFallthroughCasesInSwitch": true, - "noImplicitAny": true, - "noImplicitThis": true, - "noUnusedParameters": true, - "noUnusedLocals": true, - "rootDir": ".", - "skipDefaultLibCheck": true, - "skipLibCheck": true, - "sourceMap": true, - "strictNullChecks": true, - "target": "es6", - "types": [ "node"] - }, - "include": ["**/*.ts"] -} diff --git a/tools/build.js b/tools/build.js index 973a5dfea..d0a515708 100644 --- a/tools/build.js +++ b/tools/build.js @@ -16,6 +16,11 @@ const GLOBALS = { '@angular/core': 'ng.core', '@angular/core/testing': 'ng.core.testing', '@angular/platform-browser': 'ng.platformBrowser', + '@angular-devkit/schematics': 'ng-devkit.schematics', + '@angular-devkit/core': 'ng-devkit.core', + '@angular-devkit/core/node': 'ng-devkit.core.node', + '@angular-devkit/architect': 'ng-devkit.architect', + '@angular-devkit/architect/src/index2': 'ng-devkit.architect-2', 'firebase': 'firebase', 'firebase/app': 'firebase', 'firebase/auth': 'firebase', @@ -32,6 +37,9 @@ const GLOBALS = { '@angular/fire/functions': 'angularfire2.functions', '@angular/fire/storage': 'angularfire2.storage', '@angular/fire/messaging': 'angularfire2.messaging', + 'fs': 'node.fs', + 'path': 'node.path', + 'inquirer': 'inquirer' }; // Map of dependency versions across all packages @@ -59,6 +67,7 @@ const MODULE_NAMES = { "database-deprecated": 'angularfire2.database_deprecated', firestore: 'angularfire2.firestore', functions: 'angularfire2.functions', + schematics: 'angularfire2.schematics', storage: 'angularfire2.storage', messaging: 'angularfire2.messaging', }; @@ -70,6 +79,7 @@ const ENTRIES = { "database-deprecated": `${process.cwd()}/dist/packages-dist/database-deprecated/index.js`, firestore: `${process.cwd()}/dist/packages-dist/firestore/index.js`, functions: `${process.cwd()}/dist/packages-dist/functions/index.js`, + schematics: `${process.cwd()}/dist/packages-dist/schematics/index.js`, storage: `${process.cwd()}/dist/packages-dist/storage/index.js`, messaging: `${process.cwd()}/dist/packages-dist/messaging/index.js`, }; @@ -202,21 +212,26 @@ function getDestPackageFile(moduleName) { function replaceVersionsObservable(name, versions) { return Observable.create((observer) => { const package = getSrcPackageFile(name); - let pkg = readFileSync(package, 'utf8'); - const regexs = Object.keys(versions).map(key => - ({ expr: new RegExp(key, 'g'), key, val: versions[key] })); - regexs.forEach(reg => { - pkg = pkg.replace(reg.expr, reg.val); - }); - const outPath = getDestPackageFile(name); - writeFile(outPath, pkg, err => { - if (err) { - observer.error(err); - } else { - observer.next(pkg); - observer.complete(); - } - }); + if (package) { + let pkg = readFileSync(package, 'utf8'); + const regexs = Object.keys(versions).map(key => + ({ expr: new RegExp(key, 'g'), key, val: versions[key] })); + regexs.forEach(reg => { + pkg = pkg.replace(reg.expr, reg.val); + }); + const outPath = getDestPackageFile(name); + writeFile(outPath, pkg, err => { + if (err) { + observer.error(err); + } else { + observer.next(pkg); + observer.complete(); + } + }); + } else { + observer.next(); + observer.complete(); + } }); } @@ -316,10 +331,12 @@ function buildModules(globals) { const db$ = buildModule('database', globals); const firestore$ = buildModule('firestore', globals); const functions$ = buildModule('functions', globals); + const schematics$ = buildModule('schematics', globals); const storage$ = buildModule('storage', globals); const messaging$ = buildModule('messaging', globals); const dbdep$ = buildModule('database-deprecated', globals); return forkJoin(core$, from(copyRootTest())).pipe( + switchMapTo(schematics$), switchMapTo(auth$), switchMapTo(db$), switchMapTo(firestore$), From 5c23777734e797cecedff017bb56d005bc4c0dbf Mon Sep 17 00:00:00 2001 From: James Daniels Date: Wed, 24 Apr 2019 17:22:54 -0700 Subject: [PATCH 06/16] Drop the compileSchematics build step --- tools/build.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tools/build.js b/tools/build.js index d0a515708..0f033cccc 100644 --- a/tools/build.js +++ b/tools/build.js @@ -267,10 +267,6 @@ function copySchematicFiles() { ]); } -function compileSchematics() { - return spawnObservable(TSC, [`-p`, `${process.cwd()}/src/schematics/tsconfig.json`]); -} - function measure(module) { const path = `${process.cwd()}/dist/packages-dist/bundles/${module}.umd.js`; const file = readFileSync(path); @@ -354,7 +350,6 @@ function buildLibrary(globals) { switchMap(() => from(copyReadme())), switchMap(() => from(copyDocs())), switchMap(() => from(copyNodeFixes())), - switchMap(() => compileSchematics()), switchMap(() => from(copySchematicFiles())), switchMap(() => replaceVersionsObservable('firebase-node', VERSIONS)), switchMap(() => from(createTestUmd(globals))), From fdde4d73e88ced3cfcc65fb1072f61ca5c337ffa Mon Sep 17 00:00:00 2001 From: James Daniels Date: Wed, 24 Apr 2019 20:04:27 -0700 Subject: [PATCH 07/16] Target es6 & commonjs --- package.json | 2 +- src/schematics/tsconfig-esm.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 6842945c7..074b8d77e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angularfire2", - "version": "5.1.2", + "version": "5.2.0", "description": "The official library of Firebase and Angular.", "private": true, "scripts": { diff --git a/src/schematics/tsconfig-esm.json b/src/schematics/tsconfig-esm.json index dee9883b5..b8c37b904 100644 --- a/src/schematics/tsconfig-esm.json +++ b/src/schematics/tsconfig-esm.json @@ -1,7 +1,8 @@ { "extends": "./tsconfig-build.json", "compilerOptions": { - "target": "es5", + "target": "es6", + "module": "commonjs", "outDir": "../../dist/packages-dist/schematics", "declaration": true }, From 72da1b145d3f56f6504941c35207e9e9f34d61ec Mon Sep 17 00:00:00 2001 From: James Daniels Date: Wed, 24 Apr 2019 21:11:18 -0700 Subject: [PATCH 08/16] @angular/fire:deploy, not ng-deploy --- src/schematics/ng-add.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/schematics/ng-add.ts b/src/schematics/ng-add.ts index 18bba9628..efb8c309f 100644 --- a/src/schematics/ng-add.ts +++ b/src/schematics/ng-add.ts @@ -157,7 +157,7 @@ export function ngAdd(tree: Tree, options: NgAddOptions) { const outputPath = project.architect.build.options.outputPath; project.architect['deploy'] = { - builder: 'ng-deploy:deploy', + builder: '@angular/fire:deploy', options: {} }; From a72c3f79025e915054753da12907d208f61dc0bc Mon Sep 17 00:00:00 2001 From: Minko Gechev Date: Sun, 28 Apr 2019 17:03:41 -0700 Subject: [PATCH 09/16] test: add specs for ng deploy firebase (#2054) --- package.json | 3 +- src/root.spec.js | 3 - src/schematics/deploy/actions.spec.ts | 107 ++++++- src/schematics/deploy/actions.ts | 81 +++-- src/schematics/deploy/builder.spec.ts | 5 - src/schematics/deploy/builder.ts | 65 ++-- src/schematics/index.spec.ts | 3 +- src/schematics/index.ts | 2 +- src/schematics/interfaces.ts | 37 ++- src/schematics/ng-add.spec.ts | 444 +++++++++++++++++++++++++- src/schematics/ng-add.ts | 290 +++++++++-------- src/schematics/public_api.ts | 6 +- src/schematics/tsconfig-build.json | 13 +- src/schematics/tsconfig-esm.json | 34 +- src/schematics/tsconfig-test.json | 9 +- src/schematics/utils.ts | 97 +++--- 16 files changed, 902 insertions(+), 297 deletions(-) delete mode 100644 src/schematics/deploy/builder.spec.ts diff --git a/package.json b/package.json index 074b8d77e..8e3418c3b 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "description": "The official library of Firebase and Angular.", "private": true, "scripts": { - "test": "npm run build && karma start --single-run", + "test": "npm run build && karma start --single-run && npm run test:node", + "test:node": "jasmine 'dist/packages-dist/schematics/**/*[sS]pec.js'", "test:watch": "concurrently \"npm run build:watch\" \"npm run delayed_karma\"", "test:debug": "npm run build && karma start", "karma": "karma start", diff --git a/src/root.spec.js b/src/root.spec.js index 20c8f5cf1..27cfec26b 100644 --- a/src/root.spec.js +++ b/src/root.spec.js @@ -13,9 +13,6 @@ export * from './packages-dist/database/list/snapshot-changes.spec'; export * from './packages-dist/database/list/state-changes.spec'; export * from './packages-dist/database/list/audit-trail.spec'; export * from './packages-dist/storage/storage.spec'; -export * from './packages-dist/schematics/ng-add.spec'; -export * from './packages-dist/schematics/deploy/actions.spec'; -export * from './packages-dist/schematics/deploy/builder.spec'; //export * from './packages-dist/messaging/messaging.spec'; // // Since this a deprecated API, we run on it on manual tests only diff --git a/src/schematics/deploy/actions.spec.ts b/src/schematics/deploy/actions.spec.ts index c2ff7797e..24be1aace 100644 --- a/src/schematics/deploy/actions.spec.ts +++ b/src/schematics/deploy/actions.spec.ts @@ -1,5 +1,106 @@ -describe('ng deploy:firebase', () => { - it('adds', () => { - expect(1).toBe(1); +import { JsonObject, logging } from '@angular-devkit/core'; +import { BuilderContext, BuilderRun, ScheduleOptions, Target, } from '@angular-devkit/architect/src/index2'; +import { FirebaseTools, FirebaseDeployConfig } from 'schematics/interfaces'; +import deploy from './actions'; + + +let context: BuilderContext; +let firebaseMock: FirebaseTools; + +const FIREBASE_PROJECT = 'ikachu-aa3ef'; +const PROJECT = 'pirojok-project'; + +describe('Deploy Angular apps', () => { + beforeEach(() => initMocks()); + + it('should check if the user is authenticated by invoking list', async () => { + const spy = spyOn(firebaseMock, 'list'); + const spyLogin = spyOn(firebaseMock, 'login'); + await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spyLogin).not.toHaveBeenCalled(); + }); + + it('should invoke login if list rejects', async () => { + firebaseMock.list = () => Promise.reject(); + const spy = spyOn(firebaseMock, 'list').and.callThrough(); + const spyLogin = spyOn(firebaseMock, 'login'); + await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spyLogin).toHaveBeenCalled(); + }); + + it('should invoke the builder', async () => { + const spy = spyOn(context, 'scheduleTarget').and.callThrough(); + await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spy).toHaveBeenCalledWith({ + target: 'build', + configuration: 'production', + project: PROJECT }); + }); + + it('should invoke firebase.deploy', async () => { + const spy = spyOn(firebaseMock, 'deploy').and.callThrough(); + await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT); + expect(spy).toHaveBeenCalled(); + expect(spy).toHaveBeenCalledWith({ + cwd: 'host', only: 'hosting:' + PROJECT + }); + }); + + describe('error handling', () => { + it('throws if there is no firebase project', async () => { + try { + await deploy(firebaseMock, context, 'host') + fail(); + } catch (e) { + expect(e.message).toMatch(/Cannot find firebase project/); + } + }); + + it('throws if there is no target project', async () => { + context.target = undefined; + try { + await deploy(firebaseMock, context, 'host', FIREBASE_PROJECT) + fail(); + } catch (e) { + expect(e.message).toMatch(/Cannot execute the build target/); + } + }); + }); }); + +const initMocks = () => { + firebaseMock = { + login: () => Promise.resolve(), + list: () => Promise.resolve([]), + deploy: (_: FirebaseDeployConfig) => Promise.resolve(), + use: () => Promise.resolve() + }; + + context = { + target: { + configuration: 'production', + project: PROJECT, + target: 'foo' + }, + builder: { + builderName: 'mock', + description: 'mock', + optionSchema: false + }, + currentDirectory: 'cwd', + id: 1, + logger: new logging.NullLogger() as any, + workspaceRoot: 'cwd', + getTargetOptions: (_: Target) => Promise.resolve({}), + reportProgress: (_: number, __?: number, ___?: string) => { + }, + reportStatus: (_: string) => {}, + reportRunning: () => {}, + scheduleBuilder: (_: string, __?: JsonObject, ___?: ScheduleOptions) => Promise.resolve({} as BuilderRun), + scheduleTarget: (_: Target, __?: JsonObject, ___?: ScheduleOptions) => Promise.resolve({} as BuilderRun) + }; +}; \ No newline at end of file diff --git a/src/schematics/deploy/actions.ts b/src/schematics/deploy/actions.ts index cc6956ab8..58246690b 100644 --- a/src/schematics/deploy/actions.ts +++ b/src/schematics/deploy/actions.ts @@ -1,41 +1,54 @@ -import { BuilderContext } from '@angular-devkit/architect/src/index2'; -import { FirebaseTools } from '../interfaces'; +import { BuilderContext } from "@angular-devkit/architect/src/index2"; +import { FirebaseTools } from "../interfaces"; -export default async function deploy(firebaseTools: FirebaseTools, context: BuilderContext, projectRoot: string, firebaseProject?: string) { - if (!firebaseProject) { - throw new Error('Cannot find firebase project for your app in .firebaserc'); - } +export default async function deploy( + firebaseTools: FirebaseTools, + context: BuilderContext, + projectRoot: string, + firebaseProject?: string +) { + if (!firebaseProject) { + throw new Error("Cannot find firebase project for your app in .firebaserc"); + } - try { - await firebaseTools.list(); - } catch (e) { - context.logger.warn("🚨 You're not logged into Firebase. Logging you in..."); - await firebaseTools.login(); - } - if (!context.target) { - throw new Error('Cannot execute the build target'); - } + try { + await firebaseTools.list(); + } catch (e) { + context.logger.warn( + "🚨 You're not logged into Firebase. Logging you in..." + ); + await firebaseTools.login(); + } + if (!context.target) { + throw new Error("Cannot execute the build target"); + } - context.logger.info(`📦 Building "${context.target.project}"`); + context.logger.info(`📦 Building "${context.target.project}"`); - const run = await context.scheduleTarget({ - target: 'build', - project: context.target.project, - configuration: 'production' - }); - await run.result; - - try { - await firebaseTools.use(firebaseProject, {project: firebaseProject}); - } catch (e) { - throw new Error(`Cannot select firebase project '${firebaseProject}'`); - } + const run = await context.scheduleTarget({ + target: "build", + project: context.target.project, + configuration: "production" + }); + await run.result; + try { + await firebaseTools.use(firebaseProject, { project: firebaseProject }); + } catch (e) { + throw new Error(`Cannot select firebase project '${firebaseProject}'`); + } - try { - const success = await firebaseTools.deploy({only: 'hosting:' + context.target.project, cwd: projectRoot}); - context.logger.info(`🚀 Your application is now available at https://${success.hosting.split('/')[1]}.firebaseapp.com/`); - } catch (e) { - context.logger.error(e); - } + try { + const success = await firebaseTools.deploy({ + only: "hosting:" + context.target.project, + cwd: projectRoot + }); + context.logger.info( + `🚀 Your application is now available at https://${ + success.hosting.split("/")[1] + }.firebaseapp.com/` + ); + } catch (e) { + context.logger.error(e); + } } diff --git a/src/schematics/deploy/builder.spec.ts b/src/schematics/deploy/builder.spec.ts deleted file mode 100644 index d1379b78c..000000000 --- a/src/schematics/deploy/builder.spec.ts +++ /dev/null @@ -1,5 +0,0 @@ -describe('ng deploy:firebase createBuilder', () => { - it('adds', () => { - expect(1).toBe(1); - }); -}); diff --git a/src/schematics/deploy/builder.ts b/src/schematics/deploy/builder.ts index e9c1a7083..7e96123b3 100644 --- a/src/schematics/deploy/builder.ts +++ b/src/schematics/deploy/builder.ts @@ -1,34 +1,51 @@ -import { BuilderContext, BuilderOutput, createBuilder } from '@angular-devkit/architect/src/index2'; -import { NodeJsSyncHost } from '@angular-devkit/core/node'; -import deploy from './actions'; -import { experimental, join, normalize } from '@angular-devkit/core'; -import { getFirebaseProjectName } from '../utils'; +import { + BuilderContext, + BuilderOutput, + createBuilder +} from "@angular-devkit/architect/src/index2"; +import { NodeJsSyncHost } from "@angular-devkit/core/node"; +import deploy from "./actions"; +import { experimental, join, normalize } from "@angular-devkit/core"; +import { getFirebaseProjectName } from "../utils"; // Call the createBuilder() function to create a builder. This mirrors // createJobHandler() but add typings specific to Architect Builders. export default createBuilder( - async (_: any, context: BuilderContext): Promise => { - // The project root is added to a BuilderContext. - const root = normalize(context.workspaceRoot); - const workspace = new experimental.workspace.Workspace(root, new NodeJsSyncHost()); - await workspace.loadWorkspaceFromHost(normalize('angular.json')).toPromise(); + async (_: any, context: BuilderContext): Promise => { + // The project root is added to a BuilderContext. + const root = normalize(context.workspaceRoot); + const workspace = new experimental.workspace.Workspace( + root, + new NodeJsSyncHost() + ); + await workspace + .loadWorkspaceFromHost(normalize("angular.json")) + .toPromise(); - if (!context.target) { - throw new Error('Cannot deploy the application without a target'); - } - - const project = workspace.getProject(context.target.project); + if (!context.target) { + throw new Error("Cannot deploy the application without a target"); + } - const firebaseProject = getFirebaseProjectName(workspace.root, context.target.project); + const project = workspace.getProject(context.target.project); - try { - await deploy(require('firebase-tools'), context, join(workspace.root, project.root), firebaseProject); - } catch (e) { - console.error('Error when trying to deploy: '); - console.error(e.message); - return {success: false} - } + const firebaseProject = getFirebaseProjectName( + workspace.root, + context.target.project + ); - return {success: true} + try { + await deploy( + require("firebase-tools"), + context, + join(workspace.root, project.root), + firebaseProject + ); + } catch (e) { + console.error("Error when trying to deploy: "); + console.error(e.message); + return { success: false }; } + + return { success: true }; + } ); diff --git a/src/schematics/index.spec.ts b/src/schematics/index.spec.ts index 0bb778f32..a88cfd94b 100644 --- a/src/schematics/index.spec.ts +++ b/src/schematics/index.spec.ts @@ -1,3 +1,2 @@ import './ng-add.spec'; -import './deploy/builder.spec'; -import './deploy/actions.spec'; \ No newline at end of file +import './deploy/actions.spec'; diff --git a/src/schematics/index.ts b/src/schematics/index.ts index 9a85f300e..4ef9ceca4 100644 --- a/src/schematics/index.ts +++ b/src/schematics/index.ts @@ -1 +1 @@ -export * from './public_api'; \ No newline at end of file +export * from "./public_api"; diff --git a/src/schematics/interfaces.ts b/src/schematics/interfaces.ts index 3c9d22df5..0d483364f 100644 --- a/src/schematics/interfaces.ts +++ b/src/schematics/interfaces.ts @@ -1,45 +1,44 @@ export interface Project { - name: string; - id: string; - permission: 'edit' | 'view' | 'own'; + name: string; + id: string; + permission: "edit" | "view" | "own"; } export interface FirebaseDeployConfig { - cwd: string; - only?: string; + cwd: string; + only?: string; } export interface FirebaseTools { - login(): Promise; + login(): Promise; - list(): Promise; + list(): Promise; - deploy(config: FirebaseDeployConfig): Promise; + deploy(config: FirebaseDeployConfig): Promise; - use(options: any, lol: any): Promise; + use(options: any, lol: any): Promise; } export interface FirebaseHostingRewrite { - source: string; - destination: string; - + source: string; + destination: string; } export interface FirebaseHostingConfig { - public: string; - ignore: string[]; - target: string; - rewrites: FirebaseHostingRewrite[]; + public: string; + ignore: string[]; + target: string; + rewrites: FirebaseHostingRewrite[]; } export interface FirebaseJSON { - hosting: FirebaseHostingConfig[] + hosting: FirebaseHostingConfig[]; } export interface FirebaseRcTarget { - hosting: Record + hosting: Record; } export interface FirebaseRc { - targets: Record + targets: Record; } diff --git a/src/schematics/ng-add.spec.ts b/src/schematics/ng-add.spec.ts index 0ead257e2..eb213bc2c 100644 --- a/src/schematics/ng-add.spec.ts +++ b/src/schematics/ng-add.spec.ts @@ -1,5 +1,443 @@ -describe('ng add', () => { - it('adds', () => { - expect(1).toBe(1); +import { Tree } from "@angular-devkit/schematics"; +import { ngAdd } from "./ng-add"; + +const PROJECT_NAME = "pie-ka-chu"; +const PROJECT_ROOT = "pirojok"; +const FIREBASE_PROJECT = "pirojok-111e3"; + +const OTHER_PROJECT_NAME = "pi-catch-you"; +const OTHER_FIREBASE_PROJECT_NAME = "bi-catch-you-77e7e"; + +describe("ng-add", () => { + describe("generating files", () => { + let tree: Tree; + + beforeEach(() => { + tree = Tree.empty(); + tree.create("angular.json", JSON.stringify(generateAngularJson())); }); + + it('generates new files if starting from scratch', async () => { + const result = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); + expect(result.read('firebase.json')!.toString()).toEqual(initialFirebaseJson); + expect(result.read('.firebaserc')!.toString()).toEqual(initialFirebaserc); + expect(result.read('angular.json')!.toString()).toEqual(initialAngularJson); + }); + + it('uses default project', async () => { + const result = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT}); + expect(result.read('firebase.json')!.toString()).toEqual(overwriteFirebaseJson); + expect(result.read('.firebaserc')!.toString()).toEqual(overwriteFirebaserc); + expect(result.read('angular.json')!.toString()).toEqual(overwriteAngularJson); + }); + + it('overrides existing files', async () => { + const tempTree = ngAdd(tree, {firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME}); + const result = ngAdd(tempTree, {firebaseProject: OTHER_FIREBASE_PROJECT_NAME, project: OTHER_PROJECT_NAME}); + expect(result.read('firebase.json')!.toString()).toEqual(projectFirebaseJson); + expect(result.read('.firebaserc')!.toString()).toEqual(projectFirebaserc); + expect(result.read('angular.json')!.toString()).toEqual(projectAngularJson); + }); + }); + + describe("error handling", () => { + it("fails if project not defined", () => { + const tree = Tree.empty(); + const angularJSON = generateAngularJson(); + delete angularJSON.defaultProject; + tree.create("angular.json", JSON.stringify(angularJSON)); + expect(() => + ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: "" + }) + ).toThrowError( + /No project selected and no default project in the workspace/ + ); + }); + + it("Should throw if angular.json not found", async () => { + expect(() => + ngAdd(Tree.empty(), { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + }) + ).toThrowError(/Could not find angular.json/); + }); + + it("Should throw if angular.json can not be parsed", async () => { + const tree = Tree.empty(); + tree.create("angular.json", "hi"); + expect(() => + ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + }) + ).toThrowError(/Could not parse angular.json/); + }); + + it("Should throw if specified project does not exist ", async () => { + const tree = Tree.empty(); + tree.create("angular.json", JSON.stringify({ projects: {} })); + expect(() => + ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + }) + ).toThrowError(/Project is not defined in this workspace/); + }); + + it("Should throw if specified project is not application", async () => { + const tree = Tree.empty(); + tree.create( + "angular.json", + JSON.stringify({ + projects: { [PROJECT_NAME]: { projectType: "pokemon" } } + }) + ); + expect(() => + ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + }) + ).toThrowError(/Deploy requires a project type of "application"/); + }); + + it("Should throw if app does not have architect configured", async () => { + const tree = Tree.empty(); + tree.create( + "angular.json", + JSON.stringify({ + projects: { [PROJECT_NAME]: { projectType: "application" } } + }) + ); + expect(() => + ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + }) + ).toThrowError(/Cannot read the output path/); + }); + + it("Should throw if firebase.json has the project already", async () => { + const tree = Tree.empty(); + tree.create("angular.json", JSON.stringify(generateAngularJson())); + const tempTree = ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + }); + + expect(() => + ngAdd(tempTree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + }) + ).toThrowError(/already exists in firebase.json/); + }); + + it("Should throw if firebase.json is broken", async () => { + const tree = Tree.empty(); + tree.create("angular.json", JSON.stringify(generateAngularJson())); + tree.create("firebase.json", "I'm broken 😔"); + expect(() => + ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + }) + ).toThrowError(/firebase.json: Unexpected token/); + }); + + it("Should throw if .firebaserc is broken", async () => { + const tree = Tree.empty(); + tree.create("angular.json", JSON.stringify(generateAngularJson())); + tree.create(".firebaserc", "I'm broken 😔"); + expect(() => + ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + }) + ).toThrowError(/.firebaserc: Unexpected token/); + }); + + it("Should throw if firebase.json has the project already", async () => { + const tree = Tree.empty(); + tree.create("angular.json", JSON.stringify(generateAngularJson())); + const tempTree = ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + }); + + expect(() => + ngAdd(tempTree, { + firebaseProject: FIREBASE_PROJECT, + project: OTHER_PROJECT_NAME + }) + ).toThrowError(/ already defined in .firebaserc/); + }); + + it("Should throw if firebase.json is broken", async () => { + const tree = Tree.empty(); + tree.create("angular.json", JSON.stringify(generateAngularJson())); + + const tempTree = ngAdd(tree, { + firebaseProject: FIREBASE_PROJECT, + project: PROJECT_NAME + }); + + expect(() => + ngAdd(tempTree, { + firebaseProject: FIREBASE_PROJECT, + project: OTHER_PROJECT_NAME + }) + ).toThrowError(/ already defined in .firebaserc/); + }); + }); }); + +function generateAngularJson() { + return { + defaultProject: PROJECT_NAME, + projects: { + [PROJECT_NAME]: { + projectType: "application", + root: PROJECT_ROOT, + architect: { + build: { + options: { + outputPath: "dist/ikachu" + } + } + } + }, + [OTHER_PROJECT_NAME]: { + projectType: "application", + root: PROJECT_ROOT, + architect: { + build: { + options: { + outputPath: "dist/ikachu" + } + } + } + } + } + }; +} + +const initialFirebaseJson = `{ + \"hosting\": [ + { + \"target\": \"pie-ka-chu\", + \"public\": \"dist/ikachu\", + \"ignore\": [ + \"firebase.json\", + \"**/.*\", + \"**/node_modules/**\" + ], + \"rewrites\": [ + { + \"source\": \"**\", + \"destination\": \"/index.html\" + } + ] + } + ] +}`; + +const initialFirebaserc = `{ + \"targets\": { + \"pirojok-111e3\": { + \"hosting\": { + \"pie-ka-chu\": [ + \"pirojok-111e3\" + ] + } + } + } +}`; + +const initialAngularJson = `{ + \"defaultProject\": \"pie-ka-chu\", + \"projects\": { + \"pie-ka-chu\": { + \"projectType\": \"application\", + \"root\": \"pirojok\", + \"architect\": { + \"build\": { + \"options\": { + \"outputPath\": \"dist/ikachu\" + } + }, + \"deploy\": { + \"builder\": \"@angular/fire:deploy\", + \"options\": {} + } + } + }, + \"pi-catch-you\": { + \"projectType\": \"application\", + \"root\": \"pirojok\", + \"architect\": { + \"build\": { + \"options\": { + \"outputPath\": \"dist/ikachu\" + } + } + } + } + } +}`; + +const overwriteFirebaseJson = `{ + \"hosting\": [ + { + \"target\": \"pie-ka-chu\", + \"public\": \"dist/ikachu\", + \"ignore\": [ + \"firebase.json\", + \"**/.*\", + \"**/node_modules/**\" + ], + \"rewrites\": [ + { + \"source\": \"**\", + \"destination\": \"/index.html\" + } + ] + } + ] +}`; + +const overwriteFirebaserc = `{ + \"targets\": { + \"pirojok-111e3\": { + \"hosting\": { + \"pie-ka-chu\": [ + \"pirojok-111e3\" + ] + } + } + } +}`; + +const overwriteAngularJson = `{ + \"defaultProject\": \"pie-ka-chu\", + \"projects\": { + \"pie-ka-chu\": { + \"projectType\": \"application\", + \"root\": \"pirojok\", + \"architect\": { + \"build\": { + \"options\": { + \"outputPath\": \"dist/ikachu\" + } + }, + \"deploy\": { + \"builder\": \"@angular/fire:deploy\", + \"options\": {} + } + } + }, + \"pi-catch-you\": { + \"projectType\": \"application\", + \"root\": \"pirojok\", + \"architect\": { + \"build\": { + \"options\": { + \"outputPath\": \"dist/ikachu\" + } + } + } + } + } +}`; + +const projectFirebaseJson = `{ + \"hosting\": [ + { + \"target\": \"pie-ka-chu\", + \"public\": \"dist/ikachu\", + \"ignore\": [ + \"firebase.json\", + \"**/.*\", + \"**/node_modules/**\" + ], + \"rewrites\": [ + { + \"source\": \"**\", + \"destination\": \"/index.html\" + } + ] + }, + { + \"target\": \"pi-catch-you\", + \"public\": \"dist/ikachu\", + \"ignore\": [ + \"firebase.json\", + \"**/.*\", + \"**/node_modules/**\" + ], + \"rewrites\": [ + { + \"source\": \"**\", + \"destination\": \"/index.html\" + } + ] + } + ] +}`; + +const projectFirebaserc = `{ + \"targets\": { + \"pirojok-111e3\": { + \"hosting\": { + \"pie-ka-chu\": [ + \"pirojok-111e3\" + ] + } + }, + \"bi-catch-you-77e7e\": { + \"hosting\": { + \"pi-catch-you\": [ + \"bi-catch-you-77e7e\" + ] + } + } + } +}`; + +const projectAngularJson = `{ + \"defaultProject\": \"pie-ka-chu\", + \"projects\": { + \"pie-ka-chu\": { + \"projectType\": \"application\", + \"root\": \"pirojok\", + \"architect\": { + \"build\": { + \"options\": { + \"outputPath\": \"dist/ikachu\" + } + }, + \"deploy\": { + \"builder\": \"@angular/fire:deploy\", + \"options\": {} + } + } + }, + \"pi-catch-you\": { + \"projectType\": \"application\", + \"root\": \"pirojok\", + \"architect\": { + \"build\": { + \"options\": { + \"outputPath\": \"dist/ikachu\" + } + }, + \"deploy\": { + \"builder\": \"@angular/fire:deploy\", + \"options\": {} + } + } + } + } +}`; diff --git a/src/schematics/ng-add.ts b/src/schematics/ng-add.ts index efb8c309f..104c05003 100644 --- a/src/schematics/ng-add.ts +++ b/src/schematics/ng-add.ts @@ -1,122 +1,139 @@ -import { SchematicsException, Tree } from '@angular-devkit/schematics'; -import { FirebaseJSON, FirebaseRc } from './interfaces'; -import { experimental, JsonParseMode, parseJson } from '@angular-devkit/core'; -import { from } from 'rxjs'; -import { map, switchMap } from 'rxjs/operators'; -import { Project } from './interfaces'; -import { listProjects, projectPrompt } from './utils'; +import { SchematicsException, Tree } from "@angular-devkit/schematics"; +import { FirebaseJSON, FirebaseRc } from "./interfaces"; +import { experimental, JsonParseMode, parseJson } from "@angular-devkit/core"; +import { from } from "rxjs"; +import { map, switchMap } from "rxjs/operators"; +import { Project } from "./interfaces"; +import { listProjects, projectPrompt } from "./utils"; const stringifyFormatted = (obj: any) => JSON.stringify(obj, null, 2); function emptyFirebaseJson() { - return { - hosting: [] - } + return { + hosting: [] + }; } function emptyFirebaseRc() { - return { - targets: {} - }; + return { + targets: {} + }; } - function generateHostingConfig(project: string, dist: string) { - return { - target: project, - public: dist, - ignore: ['firebase.json', '**/.*', '**/node_modules/**'], - rewrites: [ - { - source: '**', - destination: '/index.html' - } - ] - } + return { + target: project, + public: dist, + ignore: ["firebase.json", "**/.*", "**/node_modules/**"], + rewrites: [ + { + source: "**", + destination: "/index.html" + } + ] + }; } function safeReadJSON(path: string, tree: Tree) { - try { - return JSON.parse(tree.read(path)!.toString()) - } catch (e) { - throw new SchematicsException(`Error when parsing ${path}: ${e.message}`); - } + try { + return JSON.parse(tree.read(path)!.toString()); + } catch (e) { + throw new SchematicsException(`Error when parsing ${path}: ${e.message}`); + } } -function generateFirebaseJson(tree: Tree, path: string, project: string, dist: string) { - let firebaseJson: FirebaseJSON = tree.exists(path) ? safeReadJSON(path, tree) : emptyFirebaseJson(); - - if (firebaseJson.hosting.find(config => config.target === project)) { - throw new SchematicsException(`Target ${project} already exists in firebase.json`); - } - - firebaseJson.hosting.push(generateHostingConfig(project, dist)); - - overwriteIfExists(tree, path, stringifyFormatted(firebaseJson)); +function generateFirebaseJson( + tree: Tree, + path: string, + project: string, + dist: string +) { + let firebaseJson: FirebaseJSON = tree.exists(path) + ? safeReadJSON(path, tree) + : emptyFirebaseJson(); + + if (firebaseJson.hosting.find(config => config.target === project)) { + throw new SchematicsException( + `Target ${project} already exists in firebase.json` + ); + } + + firebaseJson.hosting.push(generateHostingConfig(project, dist)); + + overwriteIfExists(tree, path, stringifyFormatted(firebaseJson)); } - function generateFirebaseRcTarget(firebaseProject: string, project: string) { - return { - "hosting": { - [project]: [ - // TODO(kirjs): Generally site name is consistent with the project name, but there are edge cases. - firebaseProject - ] - } - }; -} - -function generateFirebaseRc(tree: Tree, path: string, firebaseProject: string, project: string) { - const firebaseRc: FirebaseRc = tree.exists(path) ? safeReadJSON(path, tree) : emptyFirebaseRc(); - - - if (firebaseProject in firebaseRc.targets) { - throw new SchematicsException(`Firebase project ${firebaseProject} already defined in .firebaserc`); + return { + hosting: { + [project]: [ + // TODO(kirjs): Generally site name is consistent with the project name, but there are edge cases. + firebaseProject + ] } + }; +} - firebaseRc.targets[firebaseProject] = generateFirebaseRcTarget(firebaseProject, project); - - overwriteIfExists(tree, path, stringifyFormatted(firebaseRc)); +function generateFirebaseRc( + tree: Tree, + path: string, + firebaseProject: string, + project: string +) { + const firebaseRc: FirebaseRc = tree.exists(path) + ? safeReadJSON(path, tree) + : emptyFirebaseRc(); + + if (firebaseProject in firebaseRc.targets) { + throw new SchematicsException( + `Firebase project ${firebaseProject} already defined in .firebaserc` + ); + } + + firebaseRc.targets[firebaseProject] = generateFirebaseRcTarget( + firebaseProject, + project + ); + + overwriteIfExists(tree, path, stringifyFormatted(firebaseRc)); } const overwriteIfExists = (tree: Tree, path: string, content: string) => { - if (tree.exists(path)) tree.overwrite(path, content); - else tree.create(path, content); + if (tree.exists(path)) tree.overwrite(path, content); + else tree.create(path, content); }; function getWorkspace( - host: Tree, -): { path: string, workspace: experimental.workspace.WorkspaceSchema } { - const possibleFiles = ['/angular.json', '/.angular.json']; - const path = possibleFiles.filter(path => host.exists(path))[0]; - - const configBuffer = host.read(path); - if (configBuffer === null) { - throw new SchematicsException(`Could not find angular.json`); - } - const content = configBuffer.toString(); - - let workspace: experimental.workspace.WorkspaceSchema; - try { - workspace = parseJson( - content, - JsonParseMode.Loose, - ) as {} as experimental.workspace.WorkspaceSchema; - } catch (e) { - throw new SchematicsException(`Could not parse angular.json: ` + e.message); - } - - return { - path, - workspace, - }; + host: Tree +): { path: string; workspace: experimental.workspace.WorkspaceSchema } { + const possibleFiles = ["/angular.json", "/.angular.json"]; + const path = possibleFiles.filter(path => host.exists(path))[0]; + + const configBuffer = host.read(path); + if (configBuffer === null) { + throw new SchematicsException(`Could not find angular.json`); + } + const content = configBuffer.toString(); + + let workspace: experimental.workspace.WorkspaceSchema; + try { + workspace = (parseJson( + content, + JsonParseMode.Loose + ) as {}) as experimental.workspace.WorkspaceSchema; + } catch (e) { + throw new SchematicsException(`Could not parse angular.json: ` + e.message); + } + + return { + path, + workspace + }; } - interface NgAddOptions { - firebaseProject: string; - project?: string; + firebaseProject: string; + project?: string; } interface DeployOptions { @@ -125,44 +142,63 @@ interface DeployOptions { // You don't have to export the function as default. You can also have more than one rule factory // per file. -export const ngDeploy = ({project}: DeployOptions) => (host: Tree) => from(listProjects()).pipe( - switchMap((projects: Project[]) => projectPrompt(projects)), - map(({firebaseProject}: any) => ngAdd(host, {firebaseProject, project})) -); +export const ngDeploy = ({ project }: DeployOptions) => (host: Tree) => + from(listProjects()).pipe( + switchMap((projects: Project[]) => projectPrompt(projects)), + map(({ firebaseProject }: any) => ngAdd(host, { firebaseProject, project })) + ); export function ngAdd(tree: Tree, options: NgAddOptions) { - const {path: workspacePath, workspace} = getWorkspace(tree); - - if (!options.project) { - if (workspace.defaultProject) { - options.project = workspace.defaultProject; - } else { - throw new SchematicsException('No project selected and no default project in the workspace'); - } - } - - const project = workspace.projects[options.project]; - if (!project) { - throw new SchematicsException('Project is not defined in this workspace'); + const { path: workspacePath, workspace } = getWorkspace(tree); + + if (!options.project) { + if (workspace.defaultProject) { + options.project = workspace.defaultProject; + } else { + throw new SchematicsException( + "No project selected and no default project in the workspace" + ); } - - if (project.projectType !== 'application') { - throw new SchematicsException(`Deploy requires a project type of "application" in angular.json`); - } - - if (!project.architect || !project.architect.build || !project.architect.build.options || !project.architect.build.options.outputPath) { - throw new SchematicsException(`Cannot read the output path (architect.build.options.outputPath) of project "${options.project}" in angular.json`); - } - - const outputPath = project.architect.build.options.outputPath; - - project.architect['deploy'] = { - builder: '@angular/fire:deploy', - options: {} - }; - - tree.overwrite(workspacePath, JSON.stringify(workspace, null, 2)); - generateFirebaseJson(tree, 'firebase.json', options.project, outputPath); - generateFirebaseRc(tree, '.firebaserc', options.firebaseProject, options.project); - return tree; + } + + const project = workspace.projects[options.project]; + if (!project) { + throw new SchematicsException("Project is not defined in this workspace"); + } + + if (project.projectType !== "application") { + throw new SchematicsException( + `Deploy requires a project type of "application" in angular.json` + ); + } + + if ( + !project.architect || + !project.architect.build || + !project.architect.build.options || + !project.architect.build.options.outputPath + ) { + throw new SchematicsException( + `Cannot read the output path (architect.build.options.outputPath) of project "${ + options.project + }" in angular.json` + ); + } + + const outputPath = project.architect.build.options.outputPath; + + project.architect["deploy"] = { + builder: "@angular/fire:deploy", + options: {} + }; + + tree.overwrite(workspacePath, JSON.stringify(workspace, null, 2)); + generateFirebaseJson(tree, "firebase.json", options.project, outputPath); + generateFirebaseRc( + tree, + ".firebaserc", + options.firebaseProject, + options.project + ); + return tree; } diff --git a/src/schematics/public_api.ts b/src/schematics/public_api.ts index ad655b255..a0c0eeb20 100644 --- a/src/schematics/public_api.ts +++ b/src/schematics/public_api.ts @@ -1,3 +1,3 @@ -export * from './ng-add'; -export * from './deploy/actions'; -export * from './deploy/builder'; +export * from "./ng-add"; +export * from "./deploy/actions"; +export * from "./deploy/builder"; diff --git a/src/schematics/tsconfig-build.json b/src/schematics/tsconfig-build.json index eda5caa88..ee6afe822 100644 --- a/src/schematics/tsconfig-build.json +++ b/src/schematics/tsconfig-build.json @@ -13,14 +13,17 @@ "declaration": false, "removeComments": true, "strictNullChecks": true, - "lib": ["es2015", "dom", "es2015.promise", "es2015.collection", "es2015.iterable"], + "lib": [ + "es2015", + "dom", + "es2015.promise", + "es2015.collection", + "es2015.iterable" + ], "skipLibCheck": true, "moduleResolution": "node" }, - "files": [ - "index.ts", - "../../node_modules/zone.js/dist/zone.js.d.ts" - ], + "files": ["index.ts", "../../node_modules/zone.js/dist/zone.js.d.ts"], "angularCompilerOptions": { "skipTemplateCodegen": true, "strictMetadataEmit": true, diff --git a/src/schematics/tsconfig-esm.json b/src/schematics/tsconfig-esm.json index b8c37b904..174bca217 100644 --- a/src/schematics/tsconfig-esm.json +++ b/src/schematics/tsconfig-esm.json @@ -1,21 +1,17 @@ { - "extends": "./tsconfig-build.json", - "compilerOptions": { - "target": "es6", - "module": "commonjs", - "outDir": "../../dist/packages-dist/schematics", - "declaration": true - }, - "files": [ - "public_api.ts", - "../../node_modules/zone.js/dist/zone.js.d.ts" - ], - "angularCompilerOptions": { - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "enableSummariesForJit": false, - "flatModuleOutFile": "index.js", - "flatModuleId": "@angular/fire/schematics" - } + "extends": "./tsconfig-build.json", + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "outDir": "../../dist/packages-dist/schematics", + "declaration": true + }, + "files": ["public_api.ts", "../../node_modules/zone.js/dist/zone.js.d.ts"], + "angularCompilerOptions": { + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "enableSummariesForJit": false, + "flatModuleOutFile": "index.js", + "flatModuleId": "@angular/fire/schematics" } - \ No newline at end of file +} diff --git a/src/schematics/tsconfig-test.json b/src/schematics/tsconfig-test.json index 48a0cbe35..874330b3e 100644 --- a/src/schematics/tsconfig-test.json +++ b/src/schematics/tsconfig-test.json @@ -2,10 +2,7 @@ "extends": "./tsconfig-esm.json", "compilerOptions": { "baseUrl": ".", - "paths": { } + "paths": {} }, - "files": [ - "index.spec.ts", - "../../node_modules/zone.js/dist/zone.js.d.ts" - ] -} \ No newline at end of file + "files": ["index.spec.ts", "../../node_modules/zone.js/dist/zone.js.d.ts"] +} diff --git a/src/schematics/utils.ts b/src/schematics/utils.ts index f50714e97..aa46aca6a 100644 --- a/src/schematics/utils.ts +++ b/src/schematics/utils.ts @@ -1,61 +1,74 @@ -import { readFileSync } from 'fs'; -import * as inquirer from 'inquirer'; -import { FirebaseRc, Project } from './interfaces'; -import { join } from 'path'; +import { readFileSync } from "fs"; +import * as inquirer from "inquirer"; +import { FirebaseRc, Project } from "./interfaces"; +import { join } from "path"; -const firebase = require('firebase-tools'); +const firebase = require("firebase-tools"); -const fuzzy = require('fuzzy'); +const fuzzy = require("fuzzy"); export function listProjects() { - return firebase.list().catch( - /* If list failed, then login and try again. */ - () => firebase.login().then(() => firebase.list())); + return firebase.list().catch( + /* If list failed, then login and try again. */ + () => firebase.login().then(() => firebase.list()) + ); } - -inquirer.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt')); +inquirer.registerPrompt( + "autocomplete", + require("inquirer-autocomplete-prompt") +); // `fuzzy` passes either the original list of projects or an internal object // which contains the project as a property. const isProject = (elem: Project | { original: Project }): elem is Project => { - return (<{ original: Project }>elem).original === undefined; + return (<{ original: Project }>elem).original === undefined; }; const searchProjects = (projects: Project[]) => { - return (_: any, input: string) => { - return Promise.resolve( - fuzzy - .filter(input, projects, { - extract(el: Project) { - return `${el.id} ${el.name} ${el.permission}`; - } - }) - .map((result: Project | { original: Project }) => { - let original: Project; - if (isProject(result)) { - original = result; - } else { - original = result.original; - } - return {name: `${original.id} (${original.name})`, title: original.name, value: original.id}; - }) - ); - }; + return (_: any, input: string) => { + return Promise.resolve( + fuzzy + .filter(input, projects, { + extract(el: Project) { + return `${el.id} ${el.name} ${el.permission}`; + } + }) + .map((result: Project | { original: Project }) => { + let original: Project; + if (isProject(result)) { + original = result; + } else { + original = result.original; + } + return { + name: `${original.id} (${original.name})`, + title: original.name, + value: original.id + }; + }) + ); + }; }; export const projectPrompt = (projects: Project[]) => { - return (inquirer as any).prompt({ - type: 'autocomplete', - name: 'firebaseProject', - source: searchProjects(projects), - message: 'Please select a project:' - }); + return (inquirer as any).prompt({ + type: "autocomplete", + name: "firebaseProject", + source: searchProjects(projects), + message: "Please select a project:" + }); }; -export function getFirebaseProjectName(projectRoot: string, target: string): string|undefined { - const {targets}: FirebaseRc = JSON.parse(readFileSync(join(projectRoot, '.firebaserc'), 'UTF-8')); - const projects = Object.keys(targets); - return projects.find(project => !!Object.keys(targets[project].hosting).find(t => t === target)); +export function getFirebaseProjectName( + projectRoot: string, + target: string +): string | undefined { + const { targets }: FirebaseRc = JSON.parse( + readFileSync(join(projectRoot, ".firebaserc"), "UTF-8") + ); + const projects = Object.keys(targets); + return projects.find( + project => !!Object.keys(targets[project].hosting).find(t => t === target) + ); } - From fc6f869ad19230de4421b00878053219b91ea5ea Mon Sep 17 00:00:00 2001 From: James Daniels Date: Sun, 28 Apr 2019 17:36:17 -0700 Subject: [PATCH 10/16] Add node tests to travis --- .travis.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 23c8f6687..864640842 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,8 +40,9 @@ install: script: - yarn run build - - ./node_modules/.bin/karma start --single-run --browsers ChromeHeadlessTravis --reporters mocha - # Run integration test to make sure our typings are correct for user-land. - - node tools/run-typings-test.js - # Run the ng6 build test - - cd test/ng-build/ng6 && yarn && yarn build:prod + - | + ./node_modules/.bin/karma start --single-run --browsers ChromeHeadlessTravis --reporters mocha && + yarn test:node && + node tools/run-typings-test.js && + cd test/ng-build/ng6 && + yarn && yarn build:prod \ No newline at end of file From 5c962cc5048d5a36bd52d8301e0474c458fdc3e2 Mon Sep 17 00:00:00 2001 From: Minko Gechev Date: Mon, 29 Apr 2019 19:22:39 -0700 Subject: [PATCH 11/16] docs: add docs for the deployment capabilities (#2056) --- docs/deploy/getting-started.md | 66 ++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 docs/deploy/getting-started.md diff --git a/docs/deploy/getting-started.md b/docs/deploy/getting-started.md new file mode 100644 index 000000000..176486e89 --- /dev/null +++ b/docs/deploy/getting-started.md @@ -0,0 +1,66 @@ +# Deployment with the Angular CLI + +In this guide, we'll look at how to use `@angular/fire` to automatically deploy an Angular application to Firebase hosting by using the Angular CLI. + +## Step 1: add `@angular/fire` to your project + +First, you need to add the `@angular/fire` package to your project. In your Angular CLI project run: + +```shell +ng add @angular/fire +``` + +*Note that the command above assumes you have global Angular CLI installed. To install Angular CLI globally run `npm i -g @angular/cli`.* + +The command above will trigger the `@angular/fire` `ng-add` schematics. Once they install `@angular/fire`. If you are not authenticated, the schematics will open a browser which will guide you through the authentication flow. Once you authenticate, you'll see a prompt to select a Firebase hosting project. + +The schematics will do the following: + +- Add `@angular/fire` to your list of dependencies +- Create `firebase.json`, `.firebaserc` files in the root of your workspace. You can use them to configure your firebase hosting deployment. Find more about them [here](https://firebase.google.com/docs/hosting/full-config) +- Update your workspace file (`angular.json`) by inserting the `deploy` builder + +In the end, your `angular.json` project will look like below: + +```json +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "sample-app": { + // ... + "deploy": { + "builder": "@angular/fire:deploy", + "options": {} + } + } + } + // ... + }, + "defaultProject": "sample-app" +} +``` + +If you want to add deployment capabilities to a different project in your workspace, you can run: + +``` +ng add @angular/fire --project=[PROJECT_NAME] +``` + +## Step 2: deploying the project + +As the second step, to deploy your project run: + +``` +ng run [PROJECT_NAME]:deploy +``` + +The command above will trigger: + +1. Production build of your application +2. Deployment of the produced assets to the firebase hosting project you selected during `ng add` + +## Step 3: customization + +To customize the deployment flow, you can use the configuration files you're already familiar with from `firebase-tools`. You can find more in the [firebase documentation](https://firebase.google.com/docs/hosting/full-config). From c940a82e34654a7a78cce9f657e440e679b2b2e5 Mon Sep 17 00:00:00 2001 From: James Daniels Date: Sun, 19 May 2019 22:58:40 -0700 Subject: [PATCH 12/16] Bumping versions --- package.json | 35 +- src/core/package.json | 2 +- src/database/list/audit-trail.ts | 2 +- src/schematics/deploy/actions.ts | 2 +- src/schematics/deploy/builder.ts | 2 +- tools/build.js | 2 +- yarn.lock | 2388 +++++++++--------------------- 7 files changed, 746 insertions(+), 1687 deletions(-) diff --git a/package.json b/package.json index e99a30fd9..33534e214 100644 --- a/package.json +++ b/package.json @@ -33,33 +33,32 @@ }, "homepage": "https://github.com/angular/angularfire2#readme", "dependencies": { - "@angular/common": ">=6.0.0 <8", - "@angular/compiler": ">=6.0.0 <8", - "@angular/core": ">=6.0.0 <8", - "@angular/platform-browser": ">=6.0.0 <8", - "@angular/platform-browser-dynamic": ">=6.0.0 <8", - "@angular-devkit/architect": "^0.14.0-beta.5", - "@angular-devkit/core": "^8.0.0-beta.5", - "@angular-devkit/schematics": "^8.0.0-beta.5", + "@angular-devkit/architect": "^0.800.0-rc.4", + "@angular-devkit/core": ">=6.0.0 <9 || 9.0.0-0", + "@angular-devkit/schematics": ">=6.0.0 <9 || 9.0.0-0", + "@angular/common": ">=6.0.0 <9 || 9.0.0-0", + "@angular/compiler": ">=6.0.0 <9 || 9.0.0-0", + "@angular/core": ">=6.0.0 <9 || 9.0.0-0", + "@angular/platform-browser": ">=6.0.0 <9 || 9.0.0-0", + "@angular/platform-browser-dynamic": ">=6.0.0 <9 || 9.0.0-0", "firebase": ">= 5.5.0 <7", - "firebase-tools": "^6.3.1", + "firebase-tools": "^6.10.0", + "fuzzy": "^0.1.3", + "inquirer": "^6.2.2", + "inquirer-autocomplete-prompt": "^1.0.1", "rxjs": "^6.0.0", "ws": "^3.3.2", "xhr2": "^0.1.4", - "zone.js": "^0.8.0", - "fuzzy": "^0.1.3", - "inquirer": "^6.2.2", - "inquirer-autocomplete-prompt": "^1.0.1" + "zone.js": "^0.8.0" }, "optionalDependencies": { "bufferutil": "~3.0.0", "utf-8-validate": "~4.0.0" }, "devDependencies": { - "@angular/animations": ">=6.0.0 <8", - "@angular/compiler-cli": ">=6.0.0 <8", - "@angular/platform-server": ">=6.0.0 <8", - "@angular/animations": ">=6.0.0 <8", + "@angular/animations": ">=6.0.0 <9 || 9.0.0-0", + "@angular/compiler-cli": ">=6.0.0 <9 || 9.0.0-0", + "@angular/platform-server": ">=6.0.0 <9 || 9.0.0-0", "@types/inquirer": "^0.0.44", "@types/jasmine": "^2.5.36", "@types/request": "0.0.30", @@ -96,7 +95,7 @@ "systemjs": "^0.19.16", "systemjs-builder": "^0.15.7", "traceur": "0.0.96", - "typescript": ">=2.7.2 <2.8.0, >=3.1.1 <3.2" + "typescript": "^3.1.6 <3.2" }, "typings": "index.d.ts" } diff --git a/src/core/package.json b/src/core/package.json index 0a9ae33ec..da4023e5c 100644 --- a/src/core/package.json +++ b/src/core/package.json @@ -30,7 +30,7 @@ "zone.js": "ZONEJS_VERSION" }, "dependencies": { - "@angular-devkit/architect": "^0.14.0-beta.5", + "@angular-devkit/architect": "ANGULAR_DEVKIT_ARCH_VERSION", "@angular-devkit/core": "ANGULAR_VERSION", "@angular-devkit/schematics": "ANGULAR_VERSION", "firebase-tools": "FIREBASE_TOOLS_VERSION", diff --git a/src/database/list/audit-trail.ts b/src/database/list/audit-trail.ts index a9d41903a..8f0c35ab3 100644 --- a/src/database/list/audit-trail.ts +++ b/src/database/list/audit-trail.ts @@ -9,7 +9,7 @@ import { skipWhile, withLatestFrom, map, scan } from 'rxjs/operators'; export function auditTrail(query: DatabaseQuery, events?: ChildEvent[]): Observable[]> { const auditTrail$ = stateChanges(query, events) .pipe( - scan>((current, action) => [...current, action], []) + scan((current, action) => [...current, action], []) ); return waitForLoaded(query, auditTrail$); } diff --git a/src/schematics/deploy/actions.ts b/src/schematics/deploy/actions.ts index 58246690b..516fbf651 100644 --- a/src/schematics/deploy/actions.ts +++ b/src/schematics/deploy/actions.ts @@ -1,4 +1,4 @@ -import { BuilderContext } from "@angular-devkit/architect/src/index2"; +import { BuilderContext } from "@angular-devkit/architect"; import { FirebaseTools } from "../interfaces"; export default async function deploy( diff --git a/src/schematics/deploy/builder.ts b/src/schematics/deploy/builder.ts index 7e96123b3..6c8fd9075 100644 --- a/src/schematics/deploy/builder.ts +++ b/src/schematics/deploy/builder.ts @@ -2,7 +2,7 @@ import { BuilderContext, BuilderOutput, createBuilder -} from "@angular-devkit/architect/src/index2"; +} from "@angular-devkit/architect"; import { NodeJsSyncHost } from "@angular-devkit/core/node"; import deploy from "./actions"; import { experimental, join, normalize } from "@angular-devkit/core"; diff --git a/tools/build.js b/tools/build.js index 0f033cccc..179f0d90f 100644 --- a/tools/build.js +++ b/tools/build.js @@ -20,7 +20,6 @@ const GLOBALS = { '@angular-devkit/core': 'ng-devkit.core', '@angular-devkit/core/node': 'ng-devkit.core.node', '@angular-devkit/architect': 'ng-devkit.architect', - '@angular-devkit/architect/src/index2': 'ng-devkit.architect-2', 'firebase': 'firebase', 'firebase/app': 'firebase', 'firebase/auth': 'firebase', @@ -45,6 +44,7 @@ const GLOBALS = { // Map of dependency versions across all packages const VERSIONS = { ANGULAR_VERSION: pkg.dependencies['@angular/core'], + ANGULAR_DEVKIT_ARCH_VERSION: pkg.dependencies['@angular-devkit/architect'], FIREBASE_VERSION: pkg.dependencies['firebase'], RXJS_VERSION: pkg.dependencies['rxjs'], ZONEJS_VERSION: pkg.dependencies['zone.js'], diff --git a/yarn.lock b/yarn.lock index 2fd13ae81..e6273cd74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,18 +2,18 @@ # yarn lockfile v1 -"@angular-devkit/architect@^0.14.0-beta.5": - version "0.14.0-beta.5" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.14.0-beta.5.tgz#9ede7a04840c206cb422eb777d184c1753e78c20" - integrity sha512-AR186t8mpQisJtGysUo73PY4MM9tkM+V8l6Rj3v66sihZJ7PIkcA93AtywUtl7GGS21BKfO6LJ4PaqxiPKV9/g== +"@angular-devkit/architect@^0.800.0-rc.4": + version "0.800.0-rc.4" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.800.0-rc.4.tgz#ca0bb9b7b62663caf7bf76f8f0afb2ec5ac32db1" + integrity sha512-R+LxKHuGKawzAtSBL7fQ9oYEQfzAEX5DNMvDVC1f+INmyA03vcTKPNf1JzgzetKAN4Y3rt4zpv4OSLiuhjvFwg== dependencies: - "@angular-devkit/core" "8.0.0-beta.5" + "@angular-devkit/core" "8.0.0-rc.4" rxjs "6.4.0" -"@angular-devkit/core@7.3.8", "@angular-devkit/core@^7.3.6": - version "7.3.8" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-7.3.8.tgz#702b0944a69c71cce3a1492e0d62de18df22a993" - integrity sha512-3X9uzaZXFpm5o2TSzhD6wEOtVU32CgeytKjD1Scxj+uMMVo48SWLlKiFh312T+smI9ko7tOT8VqxglwYkWosgg== +"@angular-devkit/core@7.3.9", "@angular-devkit/core@>=6.0.0 <9 || 9.0.0-0", "@angular-devkit/core@^7.3.6": + version "7.3.9" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-7.3.9.tgz#bef2aaa0be7219c546fb99ea0ba9dd3a6dcd288a" + integrity sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw== dependencies: ajv "6.9.1" chokidar "2.0.4" @@ -21,10 +21,10 @@ rxjs "6.3.3" source-map "0.7.3" -"@angular-devkit/core@8.0.0-beta.15", "@angular-devkit/core@^8.0.0-beta.5": - version "8.0.0-beta.15" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-8.0.0-beta.15.tgz#dac6ef16ddd5c2c5dc6a1184bd2aad7b8ed57e93" - integrity sha512-pWhD0aZ9vcjguBiR+22CT0ihvwmGTf5EY1lPBhIkbTkKXihQ3g0Pg36RHU2wW+dMlapZ6wuT9jW57vvJ2Vf41w== +"@angular-devkit/core@8.0.0-rc.4": + version "8.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-8.0.0-rc.4.tgz#1deef68aae6e79513b843e9ac75c4f37382eaf73" + integrity sha512-+CzO7ymFRZxKEhWGxzHUOvK0lSTW+XV8yoKzNMNWPP9WxHNluAUi82/fxaNtpyUEr0BxKkRlJyU9dkFGYpb++Q== dependencies: ajv "6.10.0" fast-json-stable-stringify "2.0.0" @@ -32,54 +32,35 @@ rxjs "6.4.0" source-map "0.7.3" -"@angular-devkit/core@8.0.0-beta.5": - version "8.0.0-beta.5" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-8.0.0-beta.5.tgz#a0a388a9aa5cd3eb75f62b52734f5f876c7515e0" - integrity sha512-ob5HpUusC6Q/TsC1gGgeBvG1JZ53SYdCKBDPcLgpOAg1hAXKrbmmUGe4Y+UQtRSVYPEKceXv3L0cmqcjelBHXQ== +"@angular-devkit/schematics@>=6.0.0 <9 || 9.0.0-0", "@angular-devkit/schematics@^7.3.6": + version "7.3.9" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-7.3.9.tgz#4fe7bc878b116b157a3adf00583c28c951215877" + integrity sha512-xzROGCYp7aQbeJ3V6YC0MND7wKEAdWqmm/GaCufEk0dDS8ZGe0sQhcM2oBRa2nQqGQNeThFIH51kx+FayrJP0w== dependencies: - ajv "6.10.0" - chokidar "2.1.2" - fast-json-stable-stringify "2.0.0" - rxjs "6.4.0" - source-map "0.7.3" - -"@angular-devkit/schematics@^7.3.6": - version "7.3.8" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-7.3.8.tgz#70bfc7876f7924ff53ab9310a00b62f20acf2f5c" - integrity sha512-mvaKoORZIaW/h0VNZ3IQWP0qThRCZRX6869FNlzV0jlW0mhn07XbiIGHCGGSCDRxS7qJ0VbuIVnKXntF+iDeWw== - dependencies: - "@angular-devkit/core" "7.3.8" + "@angular-devkit/core" "7.3.9" rxjs "6.3.3" -"@angular-devkit/schematics@^8.0.0-beta.5": - version "8.0.0-beta.15" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-8.0.0-beta.15.tgz#fefb6f3dd3e6638f3484fc96a5fbbfc89732ba7b" - integrity sha512-XtOB6m0RjDfeNpiq1Zs6OelDwBL7dk7LBAICnYGpvexUKoksgFR6klQEbOconV+WB0YAYQqcqoTq5q9GI9s1ZA== - dependencies: - "@angular-devkit/core" "8.0.0-beta.15" - rxjs "6.4.0" - -"@angular/animations@>=6.0.0 <8": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-7.0.0.tgz#5c9e1683063c29df10253b7dc5bb9b13694ee396" - integrity sha512-IYdryQXdYfPvhJpExLSAr0o9rlUeyVS++a6h/sjqN1dkUt/yJBHLRreuHx8Udvlj2nH70raHJgevk8FwhAkTdA== +"@angular/animations@>=6.0.0 <9 || 9.0.0-0": + version "7.2.15" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-7.2.15.tgz#980c1f523a79d4b7cb44508f57fba06f2e0872fa" + integrity sha512-8oBt3HLgd2+kyJHUgsd7OzKCCss67t2sch15XNoIWlOLfxclqU+EfFE6t/vCzpT8/+lpZS6LU9ZrTnb+UBj5jg== dependencies: tslib "^1.9.0" -"@angular/common@>=6.0.0 <8": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-7.0.0.tgz#29206614d2b8dc79e5207b7dc6f9fc559e9a24f2" - integrity sha512-jp6MA6EOq/a1m+F0c1aZC345pAYYYFpN1m7GMM91JlqkjzJMhyYVk+Bod9xQOEWadcpY+RFudG+jRsPCMO8bvQ== +"@angular/common@>=6.0.0 <9 || 9.0.0-0": + version "7.2.15" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-7.2.15.tgz#e6c2f6913cdc49f87adcaabc30604e721561374b" + integrity sha512-2b5JY2HWVHCf3D1GZjmde7jdAXSTXkYtmjLtA9tQkjOOTr80eHpNSujQqnzb97dk9VT9OjfjqTQd7K3pxZz8jw== dependencies: tslib "^1.9.0" -"@angular/compiler-cli@>=6.0.0 <8": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-7.0.0.tgz#fc3f2be293d00834ea5ba268e5aea796cc5deccc" - integrity sha512-fj5ixB4X3BsUnUukFx+dK5z2KkO7lCx5vlbUT2GOMbGCG43dIH6JKUfy5HbpCodLsJHG0gRgZZuY7/k+pbzS+g== +"@angular/compiler-cli@>=6.0.0 <9 || 9.0.0-0": + version "7.2.15" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-7.2.15.tgz#25cc3a6556ba726d00c4992ad894f8db203f4fbc" + integrity sha512-+AsfyKawmj/sa+m4Pz8VSRFbCfx/3IOjAuuEjhopbyr154YpPDSu8NTbcwzq3yfbVcPwK4/4exmbQzpsndaCTg== dependencies: - canonical-path "0.0.2" - chokidar "^1.4.2" + canonical-path "1.0.0" + chokidar "^2.1.1" convert-source-map "^1.5.1" dependency-graph "^0.7.2" magic-string "^0.25.0" @@ -87,40 +68,41 @@ reflect-metadata "^0.1.2" shelljs "^0.8.1" source-map "^0.6.1" + tslib "^1.9.0" yargs "9.0.1" -"@angular/compiler@>=6.0.0 <8": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-7.0.0.tgz#f953a213a01e4736e94fe1a370b07e13e2393b71" - integrity sha512-4fkohfGyG1BEpeYenOartuJmduyZ/R3XQx46hDDiR/9A8/Go4qLGkgr9Bd/JL/gPIR1XAHH9D5ii2sh+28ZEmA== +"@angular/compiler@>=6.0.0 <9 || 9.0.0-0": + version "7.2.15" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-7.2.15.tgz#9698dac49dbb46956f0b8a6280580025ea7ab04e" + integrity sha512-5yb4NcLk8GuXkYf7Dcor4XkGueYp4dgihzDmMjYDUrV0NPhubKlr+SwGtLOtzgRBWJ1I2bO0S3zwa0q0OgIPOw== dependencies: tslib "^1.9.0" -"@angular/core@>=6.0.0 <8": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-7.0.0.tgz#01e9db9074a1db1c47a32f745b787d1c86f5d61a" - integrity sha512-DjVyWNGBWKEeBvxeXy8FGBNlnr/W/tNygOZEd6/uCktcXTG4DNyNQrWuNZUKEpr7RuIT3YVMj+UNwgTq0jB/9g== +"@angular/core@>=6.0.0 <9 || 9.0.0-0": + version "7.2.15" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-7.2.15.tgz#c00d4be0ebe95b70f7631154169509cc97934e9a" + integrity sha512-XsuYm0jEU/mOqwDOk2utThv8J9kESkAerfuCHClE9rB2TtHUOGCfekF7lJWqjjypu6/J9ygoPFo7hdAE058ZGg== dependencies: tslib "^1.9.0" -"@angular/platform-browser-dynamic@>=6.0.0 <8": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.0.0.tgz#2b2a50b5a8176bee257f90ee47b1d873502f7182" - integrity sha512-lH2KuH+Em1y/mTOE6yTJmsOxYkMbYKzKLP9gYzc9vZu3er1df6Jx6jxefeBmAr9v+kNCLnpnHWHz2y4GzAesJA== +"@angular/platform-browser-dynamic@>=6.0.0 <9 || 9.0.0-0": + version "7.2.15" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.15.tgz#e697159b565ef78bd7d276fa876d099172ad8735" + integrity sha512-UL2PqhzXMD769NQ6Lh6pxlBDKvN9Qol3XLRFil80lwJ1GRW16ITeYbCamcafIH2GOyd88IhmYcbMfUQ/6q4MMQ== dependencies: tslib "^1.9.0" -"@angular/platform-browser@>=6.0.0 <8": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-7.0.0.tgz#8c13a6380cf465b3628e5b576a1313e9b4976093" - integrity sha512-XyvL30d6meJ+SXlOmdR+sxoLdSvkQdmVNvpdvUzAHC/EqwA/byg4V3bTe5lpZmypclgFCjkGoTsz6uOnnwlQhw== +"@angular/platform-browser@>=6.0.0 <9 || 9.0.0-0": + version "7.2.15" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-7.2.15.tgz#d6df74c427453e563c12bc2ec03a83bf10bb3805" + integrity sha512-aYgmPsbC9Tvp9vmKWD8voeAp4crwCay7/D6lM3ClEe2EeK934LuEXq3/uczMrFVbnIX7BBIo8fh03Tl7wbiGPw== dependencies: tslib "^1.9.0" -"@angular/platform-server@>=6.0.0 <8": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-7.0.0.tgz#0a60f306f2d7d93daca2214f5afa2899dcd5f977" - integrity sha512-UJlPi/tlsYeNxMV1kNkGUUYDAW9HCq3Ihj8l8syCSOtlDsLhqu+5mqap4SBzoLUy+Qb/P3rLipgC2hrTqZ7+0Q== +"@angular/platform-server@>=6.0.0 <9 || 9.0.0-0": + version "7.2.15" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-7.2.15.tgz#06c8a4c1850da6289f643bd690fc7e1e8bdd6376" + integrity sha512-a7XhYlbmQ7pN6liFq8WqdX4GNoxCIXhlZqotZkfwJDsDy2E2yyvVx6BYCEOnSRvO9xXwfyBXiLfZ4Y2A7xeCoQ== dependencies: domino "^2.1.0" tslib "^1.9.0" @@ -285,83 +267,6 @@ resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.19.tgz#991df31d892a51414e0e544b5cff4216cfb04915" integrity sha512-U9e2dCB38mD2AvV/zAjghauwa0UX15Wt98iBgm8IOw8spluDxysx8UZFUhj38fu0iFXORVRBqseyK2wCxZIl5w== -"@google-cloud/common@^0.17.0": - version "0.17.0" - resolved "https://registry.yarnpkg.com/@google-cloud/common/-/common-0.17.0.tgz#8ef558750db481fc10a13757a49479ab9a1c8c07" - integrity sha512-HRZLSU762E6HaKoGfJGa8W95yRjb9rY7LePhjaHK9ILAnFacMuUGVamDbTHu1csZomm1g3tZTtXfX/aAhtie/Q== - dependencies: - array-uniq "^1.0.3" - arrify "^1.0.1" - concat-stream "^1.6.0" - create-error-class "^3.0.2" - duplexify "^3.5.0" - ent "^2.2.0" - extend "^3.0.1" - google-auto-auth "^0.10.0" - is "^3.2.0" - log-driver "1.2.7" - methmeth "^1.1.0" - modelo "^4.2.0" - request "^2.79.0" - retry-request "^3.0.0" - split-array-stream "^1.0.0" - stream-events "^1.0.1" - string-format-obj "^1.1.0" - through2 "^2.0.3" - -"@google-cloud/functions-emulator@^1.0.0-beta.5": - version "1.0.0-beta.5" - resolved "https://registry.yarnpkg.com/@google-cloud/functions-emulator/-/functions-emulator-1.0.0-beta.5.tgz#08aa14a007b739aadcf7296e0b4354cd8a8d81df" - integrity sha512-65qxXqyyD5SnKBlv76YNZDKRxP2o8sh2B5bSkiV4VHNmoaRiB/SYjc2GQuKqrxwJ6MbI4mhTLgvNTy6BSP2QSQ== - dependencies: - "@google-cloud/storage" "^1.7.0" - adm-zip "^0.4.11" - ajv "^6.5.2" - body-parser "^1.18.3" - cli-table2 "0.2.0" - colors "1.1.2" - configstore "^3.1.2" - express "^4.16.3" - googleapis "^23.0.2" - got "^8.3.2" - http-proxy "1.16.2" - lodash "4.17.5" - prompt "1.0.0" - rimraf "2.6.2" - semver "5.5.0" - serializerr "1.0.3" - tmp "0.0.33" - uuid "3.2.1" - winston "2.4.0" - yargs "11.0.0" - -"@google-cloud/storage@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-1.7.0.tgz#07bff573d92d5c294db6a04af246688875a8f74b" - integrity sha512-QaAxzCkbhspwajoaEnT0GcnQcpjPRcBrHYuQsXtD05BtOJgVnHCLXSsfUiRdU0nVpK+Thp7+sTkQ0fvk5PanKg== - dependencies: - "@google-cloud/common" "^0.17.0" - arrify "^1.0.0" - async "^2.0.1" - compressible "^2.0.12" - concat-stream "^1.5.0" - create-error-class "^3.0.2" - duplexify "^3.5.0" - extend "^3.0.0" - gcs-resumable-upload "^0.10.2" - hash-stream-validation "^0.2.1" - is "^3.0.1" - mime "^2.2.0" - mime-types "^2.0.8" - once "^1.3.1" - pumpify "^1.5.1" - request "^2.85.0" - safe-buffer "^5.1.1" - snakeize "^0.1.0" - stream-events "^1.0.1" - through2 "^2.0.0" - xdg-basedir "^3.0.0" - "@grpc/proto-loader@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.0.tgz#6d21930530db6089ed68a90f10a22b76fdc3387d" @@ -423,11 +328,6 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== - "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" @@ -449,9 +349,9 @@ "@types/through" "*" "@types/jasmine@^2.5.36": - version "2.8.8" - resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.8.tgz#bf53a7d193ea8b03867a38bfdb4fbb0e0bf066c9" - integrity sha512-OJSUxLaxXsjjhob2DBzqzgrkLmukM3+JMpRp0r0E4HTdT1nwDCWhaswjYxazPij6uOdzHCJfNbDjmQ1/rnNbCg== + version "2.8.16" + resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.16.tgz#a6cb24b1149d65293bd616923500014838e14e7d" + integrity sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g== "@types/long@^4.0.0": version "4.0.0" @@ -459,20 +359,25 @@ integrity sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q== "@types/node@*": - version "10.3.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.3.tgz#8798d9e39af2fa604f715ee6a6b19796528e46c3" - integrity sha512-/gwCgiI2e9RzzZTKbl+am3vgNqOt7a9fJ/uxv4SqYKxenoEDNVU3KZEadlpusWhQI0A0dOrZ0T68JYKVjzmgdQ== + version "12.0.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.2.tgz#3452a24edf9fea138b48fad4a0a028a683da1e40" + integrity sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA== "@types/node@6.0.*": - version "6.0.113" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.113.tgz#4b41f38ad03e4b41f9dc259b3b58aecb22c9aebc" - integrity sha512-f9XXUWFqryzjkZA1EqFvJHSFyqyasV17fq8zCDIzbRV4ctL7RrJGKvG+lcex86Rjbzd1GrER9h9VmF5sSjV0BQ== + version "6.0.118" + resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.118.tgz#8014a9b1dee0b72b4d7cd142563f1af21241c3a2" + integrity sha512-N33cKXGSqhOYaPiT4xUGsYlPPDwFtQM/6QxJxuMXA/7BcySW+lkn2yigWP7vfs4daiL/7NJNU6DMCqg5N4B+xQ== "@types/node@^10.1.0": version "10.14.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.6.tgz#9cbfcb62c50947217f4d88d4d274cc40c22625a9" integrity sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg== +"@types/node@^8.0.7": + version "8.10.48" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.48.tgz#e385073561643a9ba6199a1985ffc03530f90781" + integrity sha512-c35YEBTkL4rzXY2ucpSKy+UYHjUBIIkuJbWYbsGIrKLEWU5dgJMmLkkIb3qeC3O3Tpb1ZQCwecscvJTDjDjkRw== + "@types/request@0.0.30": version "0.0.30" resolved "https://registry.yarnpkg.com/@types/request/-/request-0.0.30.tgz#18208841a0cf6538eff5e306bfa92e86c8c8acae" @@ -589,15 +494,7 @@ dependencies: "@types/node" "*" -JSONStream@^1.0.4: - version "1.3.3" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.3.tgz#27b4b8fbbfeab4e71bcf551e7f27be8d952239bf" - integrity sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -JSONStream@^1.2.1: +JSONStream@^1.0.4, JSONStream@^1.2.1: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== @@ -610,20 +507,13 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -accepts@~1.3.4, accepts@~1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" - integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" + mime-types "~2.1.24" + negotiator "0.6.2" add-stream@^1.0.0: version "1.0.0" @@ -640,11 +530,6 @@ adm-zip@0.4.4: resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.4.tgz#a61ed5ae6905c3aea58b3a657d25033091052736" integrity sha1-ph7VrmkFw66lizplfSUDMJEFJzY= -adm-zip@^0.4.11: - version "0.4.13" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.13.tgz#597e2f8cc3672151e1307d3e95cddbc75672314a" - integrity sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw== - after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" @@ -658,14 +543,14 @@ agent-base@2: extend "~3.0.0" semver "~5.0.1" -agent-base@4, agent-base@^4.1.0, agent-base@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.0.tgz#9838b5c3392b962bad031e6a4c5e1024abec45ce" - integrity sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg== +agent-base@4, agent-base@^4.1.0, agent-base@^4.2.0, agent-base@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== dependencies: es6-promisify "^5.0.0" -ajv@6.10.0, ajv@^6.5.2, ajv@^6.5.5: +ajv@6.10.0, ajv@^6.5.5: version "6.10.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== @@ -685,16 +570,6 @@ ajv@6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^5.1.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -710,15 +585,16 @@ amdefine@>=0.0.4: integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= amqplib@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/amqplib/-/amqplib-0.5.2.tgz#d2d7313c7ffaa4d10bcf1e6252de4591b6cc7b63" - integrity sha512-l9mCs6LbydtHqRniRwYkKdqxVa6XMz3Vw1fh+2gJaaVgTM6Jk3o8RccAKWKtlhT1US5sWrFh+KKxsVUALURSIA== + version "0.5.3" + resolved "https://registry.yarnpkg.com/amqplib/-/amqplib-0.5.3.tgz#7ccfc85d12ee7cd3c6dc861bb07f0648ec3d7193" + integrity sha512-ZOdUhMxcF+u62rPI+hMtU1NBXSDFQ3eCJJrenamtdQ7YYwh7RZJHOIM1gonVbZ5PyVdYH4xqBPje9OYqk7fnqw== dependencies: - bitsyntax "~0.0.4" - bluebird "^3.4.6" - buffer-more-ints "0.0.2" + bitsyntax "~0.1.0" + bluebird "^3.5.2" + buffer-more-ints "~1.0.0" readable-stream "1.x >=1.1.9" - safe-buffer "^5.0.1" + safe-buffer "~5.1.2" + url-parse "~1.4.3" ansi-align@^2.0.0: version "2.0.0" @@ -908,7 +784,7 @@ array-slice@^1.0.0: resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== -array-uniq@^1.0.2, array-uniq@^1.0.3: +array-uniq@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= @@ -961,9 +837,11 @@ asn1@0.1.11: integrity sha1-VZvhg3bQik7E2+gId9J4GGObLfc= asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y= + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" @@ -986,16 +864,11 @@ assign-symbols@^1.0.0: integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= ast-types@0.x.x: - version "0.11.5" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.5.tgz#9890825d660c03c28339f315e9fa0a360e31ec28" - integrity sha512-oJjo+5e7/vEc2FBK8gUalV0pba4L3VdBIs2EKhOLHLcOd2FgQIVQN9xb0eZ9IjEWyAL7vq6fGJxOvVvdCHNyMw== + version "0.13.1" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.1.tgz#9461428a270c5a27fda44b738dd3bab2e9353003" + integrity sha512-b+EeK0WlzrSmpMw5jktWvQGxblpWnvMrV+vOp69RLjzGiHwWV0vgq75DPKtUjppKni3yWwSW8WLGV3Ch/XIWcQ== -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - integrity sha1-GdOGodntxufByF04iu28xW0zYC0= - -async-each@^1.0.1: +async-each@^1.0.0, async-each@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== @@ -1010,19 +883,12 @@ async@0.9.0: resolved "https://registry.yarnpkg.com/async/-/async-0.9.0.tgz#ac3613b1da9bed1b47510bb4651b8931e47146c7" integrity sha1-rDYTsdqb7RtHUQu0ZRuJMeRxRsc= -async@2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" - integrity sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw== - dependencies: - lodash "^4.14.0" - -async@^1.3.0, async@^1.4.0, async@^1.5.2: +async@^1.3.0, async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.0.0, async@^2.0.1, async@^2.3.0, async@^2.4.0: +async@^2.0.0, async@^2.3.0, async@~2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== @@ -1044,22 +910,15 @@ async@~1.0.0: resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9" integrity sha1-+PwEyjoTeErenhZBr5hXjPvWR6k= -async@~2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" - integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== - dependencies: - lodash "^4.17.10" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= atob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" - integrity sha1-ri1acpR38onWDdf5amMUoi3Wwio= + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== aws-sign2@~0.5.0: version "0.5.0" @@ -1076,12 +935,7 @@ aws-sign2@~0.7.0: resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= -aws4@^1.2.1, aws4@^1.6.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" - integrity sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w== - -aws4@^1.8.0: +aws4@^1.2.1, aws4@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== @@ -1093,14 +947,6 @@ axios@^0.15.3: dependencies: follow-redirects "1.0.0" -axios@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" - integrity sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI= - dependencies: - follow-redirects "^1.3.0" - is-buffer "^1.1.5" - babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -1313,9 +1159,9 @@ basic-auth@~2.0.0: safe-buffer "5.1.2" bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - integrity sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40= + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" @@ -1332,9 +1178,9 @@ better-assert@~1.0.0: callsite "1.0.0" binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" - integrity sha1-RqoXUftqL5PuXmibsQh9SxTGwgU= + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== bindings@1.2.x, bindings@~1.2.1: version "1.2.1" @@ -1342,16 +1188,18 @@ bindings@1.2.x, bindings@~1.2.1: integrity sha1-FK1hE4EtLTfXLme0ystLtyZQXxE= bindings@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" - integrity sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw== + version "1.3.1" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.1.tgz#21fc7c6d67c18516ec5aaa2815b145ff77b26ea5" + integrity sha512-i47mqjF9UbjxJhxGf+pZ6kSxrnI3wBLlnGI2ArWJ4r0VrvDS7ZYXkprq/pLaBWYq4GM0r4zdHY+NNRqEMU7uew== -bitsyntax@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/bitsyntax/-/bitsyntax-0.0.4.tgz#eb10cc6f82b8c490e3e85698f07e83d46e0cba82" - integrity sha1-6xDMb4K4xJDj6FaY8H6D1G4MuoI= +bitsyntax@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/bitsyntax/-/bitsyntax-0.1.0.tgz#b0c59acef03505de5a2ed62a2f763c56ae1d6205" + integrity sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q== dependencies: - buffer-more-ints "0.0.2" + buffer-more-ints "~1.0.0" + debug "~2.6.9" + safe-buffer "~5.1.2" bl@^1.0.0: version "1.2.2" @@ -1375,10 +1223,10 @@ bl@~1.1.2: dependencies: readable-stream "~2.0.5" -blob@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" - integrity sha1-vPEwUspURj8w+fx+lbmkdjCpSSE= +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== bluebird@2.9.6: version "2.9.6" @@ -1390,26 +1238,26 @@ bluebird@^2.9.30: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" integrity sha1-U0uQM8AiyVecVro7Plpcqvu2UOE= -bluebird@^3.3.0, bluebird@^3.3.4, bluebird@^3.4.6: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" - integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== +bluebird@^3.3.0, bluebird@^3.3.4, bluebird@^3.5.2: + version "3.5.4" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" + integrity sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== -body-parser@1.18.3, body-parser@^1.16.1, body-parser@^1.18.3: - version "1.18.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" - integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= +body-parser@1.19.0, body-parser@^1.16.1, body-parser@^1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== dependencies: - bytes "3.0.0" + bytes "3.1.0" content-type "~1.0.4" debug "2.6.9" depd "~1.1.2" - http-errors "~1.6.3" - iconv-lite "0.4.23" + http-errors "1.7.2" + iconv-lite "0.4.24" on-finished "~2.3.0" - qs "6.5.2" - raw-body "2.3.3" - type-is "~1.6.16" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" boom@2.x.x: version "2.10.1" @@ -1476,7 +1324,7 @@ buffer-alloc-unsafe@^1.1.0: resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== -buffer-alloc@^1.1.0, buffer-alloc@^1.2.0: +buffer-alloc@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== @@ -1504,10 +1352,10 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer-more-ints@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz#26b3885d10fa13db7fc01aae3aab870199e0124c" - integrity sha1-JrOIXRD6E9t/wBquOquHAZngEkw= +buffer-more-ints@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz#ef4f8e2dddbad429ed3828a9c55d44f05c611422" + integrity sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg== buffer@^5.1.0: version "5.2.1" @@ -1547,11 +1395,6 @@ buildmail@4.0.1: nodemailer-shared "1.1.0" punycode "1.4.1" -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - builtin-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e" @@ -1574,6 +1417,11 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -1589,19 +1437,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" @@ -1639,10 +1474,10 @@ camelcase@^4.0.0, camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -canonical-path@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/canonical-path/-/canonical-path-0.0.2.tgz#e31eb937a8c93ee2a01df1839794721902874574" - integrity sha1-4x65N6jJPuKgHfGDl5RyGQKHRXQ= +canonical-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/canonical-path/-/canonical-path-1.0.0.tgz#fcb470c23958def85081856be7a86e904f180d1d" + integrity sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg== capture-stack-trace@^1.0.0: version "1.0.1" @@ -1694,7 +1529,7 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1703,15 +1538,6 @@ chalk@^2.0.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^2.0.1, chalk@^2.1.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - char-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/char-spinner/-/char-spinner-1.0.1.tgz#e6ea67bd247e107112983b7ab0479ed362800081" @@ -1742,26 +1568,7 @@ chokidar@2.0.4: optionalDependencies: fsevents "^1.2.2" -chokidar@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.2.tgz#9c23ea40b01638439e0513864d362aeacc5ad058" - integrity sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.0" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^1.4.1, chokidar@^1.4.2, chokidar@^1.7.0: +chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg= @@ -1777,6 +1584,25 @@ chokidar@^1.4.1, chokidar@^1.4.2, chokidar@^1.7.0: optionalDependencies: fsevents "^1.0.0" +chokidar@^2.0.3, chokidar@^2.1.1, chokidar@^2.1.5: + version "2.1.6" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" + integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + chownr@^1.0.1, chownr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" @@ -1788,9 +1614,9 @@ ci-info@^1.5.0: integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== circular-json@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.4.tgz#ff1ad2f2e392eeb8a5172d4d985fa846ed8ad656" - integrity sha512-vnJA8KS0BfOihugYEUkLRcnmq21FbuivbxgzDLXNs3zIk4KllV4Mx4UuTzBXht9F00C7QfD1YqMXg1zP6EXpig== + version "0.5.9" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.9.tgz#932763ae88f4f7dead7a0d09c8a51a4743a53b1d" + integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ== cjson@^0.3.1: version "0.3.3" @@ -1845,16 +1671,6 @@ cli-spinners@^0.1.2: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" integrity sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw= -cli-table2@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/cli-table2/-/cli-table2-0.2.0.tgz#2d1ef7f218a0e786e214540562d4bd177fe32d97" - integrity sha1-LR738hig54biFFQFYtS9F3/jLZc= - dependencies: - lodash "^3.10.1" - string-width "^1.0.1" - optionalDependencies: - colors "^1.1.2" - cli-table@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" @@ -1885,22 +1701,6 @@ cliui@^3.0.3, cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -clone-response@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - clone-stats@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" @@ -1935,16 +1735,16 @@ collection-visit@^1.0.0: object-visit "^1.0.0" color-convert@^1.9.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" - integrity sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg== + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: - color-name "1.1.1" + color-name "1.1.3" -color-name@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" - integrity sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok= +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-support@^1.1.3: version "1.1.3" @@ -1956,17 +1756,7 @@ colors@1.0.3, colors@1.0.x: resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= -colors@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= - colors@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.0.tgz#5f20c9fef6945cb1134260aab33bfbdc8295e04e" - integrity sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw== - -colors@^1.1.2: version "1.3.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== @@ -1983,17 +1773,10 @@ combine-lists@^1.0.0: dependencies: lodash "^4.5.0" -combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.1, combined-stream@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" - integrity sha1-cj599ugBrFYTETp+RFqbactjKBg= - dependencies: - delayed-stream "~1.0.0" - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" - integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== +combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@~1.0.1, combined-stream@~1.0.5, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" @@ -2016,10 +1799,10 @@ commander@2.9.x: dependencies: graceful-readlink ">= 1.0.0" -commander@^2.8.1, commander@^2.9.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== +commander@^2.8.1, commander@^2.9.0, commander@~2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== compare-func@^1.3.1: version "1.3.2" @@ -2041,11 +1824,16 @@ component-bind@1.0.0: resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= -component-emitter@1.2.1, component-emitter@^1.2.1: +component-emitter@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + component-inherit@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" @@ -2061,12 +1849,12 @@ compress-commons@^1.2.0: normalize-path "^2.0.0" readable-stream "^2.0.0" -compressible@^2.0.12, compressible@~2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.16.tgz#a49bf9858f3821b64ce1be0296afc7380466a77f" - integrity sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA== +compressible@~2.0.16: + version "2.0.17" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== dependencies: - mime-db ">= 1.38.0 < 2" + mime-db ">= 1.40.0 < 2" compression@^1.7.0: version "1.7.4" @@ -2086,7 +1874,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0: +concat-stream@^1.5.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -2123,7 +1911,7 @@ configstore@^1.2.0: write-file-atomic "^1.1.2" xdg-basedir "^2.0.0" -configstore@^3.0.0, configstore@^3.1.2: +configstore@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== @@ -2143,13 +1931,13 @@ connect-query@^1.0.0: qs "~6.4.0" connect@^3.6.0, connect@^3.6.2: - version "3.6.6" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" - integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== dependencies: debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" + finalhandler "1.1.2" + parseurl "~1.3.3" utils-merge "1.0.1" console-control-strings@^1.0.0, console-control-strings@~1.1.0: @@ -2157,10 +1945,12 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" content-type@~1.0.4: version "1.0.4" @@ -2322,9 +2112,11 @@ conventional-commits-parser@^2.1.7: trim-off-newlines "^1.0.0" convert-source-map@^1.1.1, convert-source-map@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" - integrity sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU= + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== + dependencies: + safe-buffer "~5.1.1" cookie-signature@1.0.6: version "1.0.6" @@ -2336,6 +2128,11 @@ cookie@0.3.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -2347,9 +2144,9 @@ core-js@3.0.1: integrity sha512-sco40rF+2KlE0ROMvydjkrVMMG1vYilP2ALoRXcYR4obqbYIuV3Bg+51GEDW+HF8n7NRA+iaA4qD0nD9lo9mew== core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0: - version "2.5.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" - integrity sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw== + version "2.6.6" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.6.tgz#00eb6d6bf815471cc16d8563edd7d38786dec50b" + integrity sha512-Mt/LaAym54NXnrjEMdo918cT2h70tqb/Yl7T3uPHQHRm5SxVoqlKmerUy4mL11k8saSBDWQ7ULIHxmeFyT3pfg== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -2376,7 +2173,7 @@ crc@^3.4.4: dependencies: buffer "^5.1.0" -create-error-class@^3.0.0, create-error-class@^3.0.2: +create-error-class@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= @@ -2493,10 +2290,12 @@ data-uri-to-buffer@0.0.4: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz#46e13ab9da8e309745c8d01ce547213ebdb2fe3f" integrity sha1-RuE6udqOMJdFyNAc5UchPr2y/j8= -data-uri-to-buffer@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" - integrity sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ== +data-uri-to-buffer@2: + version "2.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-2.0.1.tgz#ca8f56fe38b1fd329473e9d1b4a9afcd8ce1c045" + integrity sha512-OkVVLrerfAKZlW2ZZ3Ve2y65jgiWqBKsTfUIAFbn8nVbPcCZg6l6gikKlEYv0kXcmzqGm6mFq/Jf2vriuEkv8A== + dependencies: + "@types/node" "^8.0.7" date-format@^1.2.0: version "1.2.0" @@ -2513,34 +2312,34 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9, debug@~2.6.4, debug@~2.6.6: +debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9, debug@~2.6.4, debug@~2.6.6, debug@~2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@3.1.0, debug@^3.1.0, debug@~3.1.0: +debug@3.1.0, debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0: +debug@4: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" +debug@^3.0.0, debug@^3.1.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + decamelize-keys@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" @@ -2566,11 +2365,6 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" -deep-equal@~0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-0.2.2.tgz#84b745896f34c684e98f2ce0e42abaf43bba017d" - integrity sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0= - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -2697,9 +2491,9 @@ dom-storage@2.1.0: integrity sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q== domino@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domino/-/domino-2.1.0.tgz#653ba7d331441113b42e40ba05f24253ec86e02e" - integrity sha512-xINSODvrnuQcm3eXJN4IkBR+JxqLrJN8Ge4fd00y1b7HsY0A4huKN5BflSS/oo8quBWmocTfWdFvrw2H8TjGqQ== + version "2.1.3" + resolved "https://registry.yarnpkg.com/domino/-/domino-2.1.3.tgz#0ca1ad02cbd316ebe2e99e0ac9fb0010407d4601" + integrity sha512-EwjTbUv1Q/RLQOdn9k7ClHutrQcWGsfXaRQNOnM/KgK4xDBoLFEcIRFuBSxAx13Vfa63X029gXYrNFrSy+DOSg== dot-prop@^3.0.0: version "3.0.0" @@ -2738,16 +2532,6 @@ duplexer@^0.1.1: integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= duplexify@^3.2.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" - integrity sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -duplexify@^3.5.0, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== @@ -2758,11 +2542,12 @@ duplexify@^3.5.0, duplexify@^3.6.0: stream-shift "^1.0.0" ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - integrity sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU= + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" + safer-buffer "^2.1.0" ecdsa-sig-formatter@1.0.11: version "1.0.11" @@ -2786,7 +2571,7 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -encodeurl@~1.0.1, encodeurl@~1.0.2: +encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= @@ -2830,14 +2615,14 @@ engine.io-client@~3.1.0: yeast "0.1.2" engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196" - integrity sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw== + version "2.1.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== dependencies: after "0.8.2" arraybuffer.slice "~0.0.7" base64-arraybuffer "0.1.5" - blob "0.0.4" + blob "0.0.5" has-binary2 "~1.0.2" engine.io@~3.1.0: @@ -2854,31 +2639,22 @@ engine.io@~3.1.0: optionalDependencies: uws "~9.14.0" -ent@^2.2.0, ent@~2.2.0: +ent@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" - integrity sha1-+FWobOYa3E6GIcPNoh56dhLDqNw= + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es5-ext@^0.10.12, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.45" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653" - integrity sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "1" - -es5-ext@^0.10.14, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@~0.10.2, es5-ext@~0.10.46: - version "0.10.49" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.49.tgz#059a239de862c94494fec28f8150c977028c6c5e" - integrity sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg== +es5-ext@^0.10.12, es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.50" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778" + integrity sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw== dependencies: es6-iterator "~2.0.3" es6-symbol "~3.1.1" @@ -2901,9 +2677,9 @@ es6-module-loader@^0.17.10: when "^3.7.2" es6-promise@^4.0.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" - integrity sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ== + version "4.2.6" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" + integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q== es6-promisify@^5.0.0: version "5.0.0" @@ -2924,9 +2700,9 @@ es6-set@^0.1.4: event-emitter "~0.3.5" es6-shim@^0.35.0: - version "0.35.3" - resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.3.tgz#9bfb7363feffff87a6cdb6cd93e405ec3c4b6f26" - integrity sha1-m/tzY/7//4emzbbNk+QF7DxLbyY= + version "0.35.5" + resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.5.tgz#46f59dc0a84a1c5029e8ff1166ca0a902077a9ab" + integrity sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg== es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.1" @@ -2965,9 +2741,9 @@ escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@1.x.x: - version "1.10.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.10.0.tgz#f647395de22519fbd0d928ffcf1d17e0dec2603e" - integrity sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g== + version "1.11.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" + integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw== dependencies: esprima "^3.1.3" estraverse "^4.2.0" @@ -2994,10 +2770,10 @@ estraverse@^4.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= -estree-walker@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39" - integrity sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig== +estree-walker@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.0.tgz#5d865327c44a618dde5699f763891ae31f257dae" + integrity sha512-peq1RfVAVzr3PU/jL31RaOjUKLoZJpObQWJJ+LgfcxDUifyLZ1RjPQZTl0pzj2uJ45b7A7XpyppXvxdEqzo4rw== esutils@^2.0.2: version "2.0.2" @@ -3017,20 +2793,10 @@ event-emitter@^0.3.5, event-emitter@~0.3.5: d "1" es5-ext "~0.10.14" -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -eventemitter3@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" - integrity sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg= - eventemitter3@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" - integrity sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== execa@^0.7.0: version "0.7.0" @@ -3116,39 +2882,39 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -express@^4.16.3: - version "4.16.4" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" - integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== +express@^4.16.4: + version "4.17.0" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.0.tgz#288af62228a73f4c8ea2990ba3b791bb87cd4438" + integrity sha512-1Z7/t3Z5ZnBG252gKUPyItc4xdeaA0X934ca2ewckAsVsw9EG71i++ZHZPYnus8g/s5Bty8IMpSVEuRkmwwPRQ== dependencies: - accepts "~1.3.5" + accepts "~1.3.7" array-flatten "1.1.1" - body-parser "1.18.3" - content-disposition "0.5.2" + body-parser "1.19.0" + content-disposition "0.5.3" content-type "~1.0.4" - cookie "0.3.1" + cookie "0.4.0" cookie-signature "1.0.6" debug "2.6.9" depd "~1.1.2" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.1.1" + finalhandler "~1.1.2" fresh "0.5.2" merge-descriptors "1.0.1" methods "~1.1.2" on-finished "~2.3.0" - parseurl "~1.3.2" + parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.4" - qs "6.5.2" - range-parser "~1.2.0" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" safe-buffer "5.1.2" - send "0.16.2" - serve-static "1.13.2" - setprototypeof "1.1.0" - statuses "~1.4.0" - type-is "~1.6.16" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -3167,12 +2933,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - integrity sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ= - -extend@^3.0.1, extend@^3.0.2, extend@~3.0.2: +extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -3223,19 +2984,15 @@ eyes@0.1.x: integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A= fancy-log@^1.1.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" - integrity sha1-9BEl49hPLn2JpD0G2VjI94vha+E= + version "1.3.3" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" + integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== dependencies: ansi-gray "^0.1.1" color-support "^1.1.3" + parse-node-version "^1.0.0" time-stamp "^1.0.0" -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= - fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" @@ -3316,30 +3073,17 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - -finalhandler@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" - integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg== +finalhandler@1.1.2, finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.4.0" + parseurl "~1.3.3" + statuses "~1.5.0" unpipe "~1.0.0" find-index@^0.1.1: @@ -3355,7 +3099,7 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.0.0, find-up@^2.1.0: +find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= @@ -3373,9 +3117,9 @@ findup-sync@^2.0.0: resolve-dir "^1.0.1" fined@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476" - integrity sha1-s33IRLdqL15wgeiE98CuNE8VNHY= + version "1.2.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== dependencies: expand-tilde "^2.0.2" is-plain-object "^2.0.3" @@ -3383,13 +3127,15 @@ fined@^1.0.1: object.pick "^1.2.0" parse-filepath "^1.0.1" -firebase-tools@^6.3.1: - version "6.6.0" - resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-6.6.0.tgz#02c17a0633c3fbd5985b34017782878c4f97f906" - integrity sha512-a15gw3kFBXNxPW7jBq6Tn3IajcoraQgbetbybOqAgNtUi+x7pMdbPMqrbQRLID/I7ViXm2utSAlEPm3KaRZwDQ== +firebase-tools@^6.10.0: + version "6.10.0" + resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-6.10.0.tgz#ccd21d80ec0100b8a18b79addb5db667d4e31415" + integrity sha512-6frS6a9QyjyKzSqcQDihN8udOscL8zvMb6LWqA0gROI2axEkoFgGgeFQc0Qrkye0ysmjUqackDcHhhb1qzM1+Q== dependencies: JSONStream "^1.2.1" archiver "^2.1.1" + body-parser "^1.19.0" + chokidar "^2.1.5" cjson "^0.3.1" cli-color "^1.2.0" cli-table "^0.3.1" @@ -3401,6 +3147,7 @@ firebase-tools@^6.3.1: didyoumean "^1.2.1" es6-set "^0.1.4" exit-code "^1.0.2" + express "^4.16.4" filesize "^3.1.3" firebase "2.x.x" fs-extra "^0.23.1" @@ -3423,11 +3170,8 @@ firebase-tools@^6.3.1: tmp "0.0.33" universal-analytics "^0.4.16" update-notifier "^2.5.0" - user-home "^2.0.0" uuid "^3.0.0" winston "^1.0.1" - optionalDependencies: - "@google-cloud/functions-emulator" "^1.0.0-beta.5" firebase@2.x.x: version "2.4.2" @@ -3457,9 +3201,9 @@ first-chunk-stream@^1.0.0: integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04= flagged-respawn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.0.tgz#4e79ae9b2eb38bf86b3bb56bf3e0a56aa5fcabd7" - integrity sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c= + version "1.0.1" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== flat-arguments@^1.0.0: version "1.0.2" @@ -3479,13 +3223,6 @@ follow-redirects@1.0.0: debug "^2.2.0" follow-redirects@^1.0.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.0.tgz#234f49cf770b7f35b40e790f636ceba0c3a0ab77" - integrity sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA== - dependencies: - debug "^3.1.0" - -follow-redirects@^1.3.0: version "1.7.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ== @@ -3534,16 +3271,7 @@ form-data@~2.0.0: combined-stream "^1.0.5" mime-types "^2.1.11" -form-data@~2.3.0, form-data@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" - integrity sha1-SXBJi+YEwgwAXU9cI67NIda0kJk= - dependencies: - asynckit "^0.4.0" - combined-stream "1.0.6" - mime-types "^2.1.12" - -form-data@~2.3.2: +form-data@~2.3.0, form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== @@ -3569,14 +3297,6 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -from2@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - fs-access@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" @@ -3620,9 +3340,9 @@ fs-extra@^4.0.0: universalify "^0.1.0" fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== + version "1.2.6" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" + integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== dependencies: minipass "^2.2.1" @@ -3631,18 +3351,10 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" - integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg== - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -fsevents@^1.2.2, fsevents@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.8.tgz#57ea5320f762cd4696e5e8e87120eccc8b11cacf" - integrity sha512-tPvHgPGB7m40CZ68xqFGkKuzN+RnpGmSV+hgeKxhRpbxdqKXUFJGC3yonBOLzQBcJyGpdZFDfCsdOC2KFsXzeA== +fsevents@^1.0.0, fsevents@^1.2.2, fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== dependencies: nan "^2.12.1" node-pre-gyp "^0.12.0" @@ -3674,16 +3386,6 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gaxios@^1.0.4: - version "1.8.3" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-1.8.3.tgz#7dd79860880d22f854d814b3870332be8b16de56" - integrity sha512-6Lc1P0NjbPNQ2FGgTRurz32P6FktNJbwLqXvrUNhfwzKb9iizcWuAJiHoSG2W186K9ZL0X6ST5xD9gJWhHI1sg== - dependencies: - abort-controller "^3.0.0" - extend "^3.0.2" - https-proxy-agent "^2.2.1" - node-fetch "^2.3.0" - gaze@^0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" @@ -3699,30 +3401,12 @@ gcp-metadata@^0.3.0: extend "^3.0.0" retry-request "^3.0.0" -gcp-metadata@^0.6.1, gcp-metadata@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-0.6.3.tgz#4550c08859c528b370459bd77a7187ea0bdbc4ab" - integrity sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg== - dependencies: - axios "^0.18.0" - extend "^3.0.1" - retry-axios "0.3.2" - -gcs-resumable-upload@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/gcs-resumable-upload/-/gcs-resumable-upload-0.10.2.tgz#7f29b3ee23dcec4170367c0711418249c660545f" - integrity sha1-fymz7iPc7EFwNnwHEUGCScZgVF8= - dependencies: - configstore "^3.1.2" - google-auto-auth "^0.10.0" - pumpify "^1.4.0" - request "^2.85.0" - stream-events "^1.0.3" - generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - integrity sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ= + version "2.3.1" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" + integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== + dependencies: + is-property "^1.0.2" generate-object-property@^1.1.0: version "1.2.0" @@ -3752,22 +3436,22 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= -get-stream@3.0.0, get-stream@^3.0.0: +get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= get-uri@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.2.tgz#5c795e71326f6ca1286f2fc82575cd2bab2af578" - integrity sha512-ZD325dMZOgerGqF/rF6vZXyFGTAay62svjQIT+X/oU2PtxYpFxvSkbsdi+oxIrsNxlZVd4y8wUDqkaExWTI/Cw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.3.tgz#fa13352269781d75162c6fc813c9e905323fbab5" + integrity sha512-x5j6Ks7FOgLD/GlvjKwgu7wdmMR55iuRHhn8hj/+gA+eSbxQvZ+AEomq+3MgVEZj1vpi738QahGbCCSIDtXtkw== dependencies: - data-uri-to-buffer "1" - debug "2" - extend "3" + data-uri-to-buffer "2" + debug "4" + extend "~3.0.2" file-uri-to-path "1" ftp "~0.3.10" - readable-stream "2" + readable-stream "3" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" @@ -3936,22 +3620,10 @@ glob@^4.3.1: minimatch "^2.0.1" once "^1.3.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.6, glob@^7.1.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.5, glob@^7.1.2, glob@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -4011,23 +3683,12 @@ globule@~0.1.0: minimatch "~0.2.11" glogg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" - integrity sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" + integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA== dependencies: sparkles "^1.0.0" -google-auth-library@0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.12.0.tgz#a3fc6c296d00bb54e4d877ef581a05947330d07f" - integrity sha512-79qCXtJ1VweBmmLr4yLq9S4clZB2p5Y+iACvuKk9gu4JitEnPc+bQFmYvtCYehVR44MQzD1J8DVmYW2w677IEw== - dependencies: - gtoken "^1.2.3" - jws "^3.1.4" - lodash.isstring "^4.0.1" - lodash.merge "^4.6.0" - request "^2.81.0" - google-auth-library@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.10.0.tgz#6e15babee85fd1dd14d8d128a295b6838d52136e" @@ -4038,29 +3699,6 @@ google-auth-library@^0.10.0: lodash.noop "^3.0.1" request "^2.74.0" -google-auth-library@^1.3.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-1.6.1.tgz#9c73d831ad720c0c3048ab89d0ffdec714d07dd2" - integrity sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg== - dependencies: - axios "^0.18.0" - gcp-metadata "^0.6.3" - gtoken "^2.3.0" - jws "^3.1.5" - lodash.isstring "^4.0.1" - lru-cache "^4.1.3" - retry-axios "^0.3.2" - -google-auto-auth@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/google-auto-auth/-/google-auto-auth-0.10.1.tgz#68834a6f3da59a6cb27fce56f76e3d99ee49d0a2" - integrity sha512-iIqSbY7Ypd32mnHGbYctp80vZzXoDlvI9gEfvtl3kmyy5HzOcrZCIGCBdSlIzRsg7nHpQiHE3Zl6Ycur6TSodQ== - dependencies: - async "^2.3.0" - gcp-metadata "^0.6.1" - google-auth-library "^1.3.1" - request "^2.79.0" - google-auto-auth@^0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/google-auto-auth/-/google-auto-auth-0.7.2.tgz#bf9352d5c4a0897bf31fd9c491028b765fbea71e" @@ -4078,23 +3716,6 @@ google-p12-pem@^0.1.0: dependencies: node-forge "^0.7.1" -google-p12-pem@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-1.0.4.tgz#b77fb833a2eb9f7f3c689e2e54f095276f777605" - integrity sha512-SwLAUJqUfTB2iS+wFfSS/G9p7bt4eWcc2LyfvmUXe7cWp6p3mpxDo6LLI29MXdU6wvPcQ/up298X7GMC5ylAlA== - dependencies: - node-forge "^0.8.0" - pify "^4.0.0" - -googleapis@^23.0.2: - version "23.0.2" - resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-23.0.2.tgz#18737965a9525b16e3e73b6cd660fcaeba6b792d" - integrity sha512-OobqDn586ogcF0dE+Byu5xZ6XmR/J7nkZN/wmhJoaxKdmELaf27ty2gKxGuq3I4/GDN+hcsUaMBueoQzFD3ObA== - dependencies: - async "2.6.0" - google-auth-library "0.12.0" - string-template "1.0.0" - got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -4112,29 +3733,6 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -got@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - graceful-fs@^3.0.0: version "3.0.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" @@ -4142,12 +3740,7 @@ graceful-fs@^3.0.0: dependencies: natives "^1.1.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= - -graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.9: +graceful-fs@^4.0.0, graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== @@ -4173,7 +3766,7 @@ grpc@1.20.0: node-pre-gyp "^0.12.0" protobufjs "^5.0.3" -gtoken@^1.2.1, gtoken@^1.2.3: +gtoken@^1.2.1: version "1.2.3" resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-1.2.3.tgz#5509571b8afd4322e124cf66cf68115284c476d8" integrity sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w== @@ -4183,17 +3776,6 @@ gtoken@^1.2.1, gtoken@^1.2.3: mime "^1.4.1" request "^2.72.0" -gtoken@^2.3.0: - version "2.3.3" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-2.3.3.tgz#8a7fe155c5ce0c4b71c886cfb282a9060d94a641" - integrity sha512-EaB49bu/TCoNeQjhCYKI/CurooBKkGxIqFHsWABW0b25fobBYVTMe84A8EBVVZhl8emiUdNypil9huMOTmyAnw== - dependencies: - gaxios "^1.0.4" - google-p12-pem "^1.0.0" - jws "^3.1.5" - mime "^2.2.0" - pify "^4.0.0" - gulp-jasmine@^2.2.1: version "2.4.2" resolved "https://registry.yarnpkg.com/gulp-jasmine/-/gulp-jasmine-2.4.2.tgz#5a7f47e27370c3619ac0a2a442be399671409db3" @@ -4286,15 +3868,15 @@ gzip-size@^4.0.0: pify "^3.0.0" handlebars@^4.0.2: - version "4.0.11" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" - integrity sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw= + version "4.1.2" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" + integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== dependencies: - async "^1.4.0" + neo-async "^2.6.0" optimist "^0.6.1" - source-map "^0.4.4" + source-map "^0.6.1" optionalDependencies: - uglify-js "^2.6" + uglify-js "^3.1.4" har-schema@^2.0.0: version "2.0.0" @@ -4321,14 +3903,6 @@ har-validator@~2.0.6: is-my-json-valid "^2.12.4" pinkie-promise "^2.0.0" -har-validator@~5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" - integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0= - dependencies: - ajv "^5.1.0" - har-schema "^2.0.0" - har-validator@~5.1.0: version "5.1.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" @@ -4375,18 +3949,6 @@ has-gulplog@^0.1.0: dependencies: sparkles "^1.0.0" -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -4423,13 +3985,6 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -hash-stream-validation@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/hash-stream-validation/-/hash-stream-validation-0.2.1.tgz#ecc9b997b218be5bb31298628bb807869b73dcd1" - integrity sha1-7Mm5l7IYvluzEphii7gHhptz3NE= - dependencies: - through2 "^2.0.0" - hawk@~2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/hawk/-/hawk-2.3.1.tgz#1e731ce39447fa1d0f6d707f7bceebec0fd1ec1f" @@ -4482,36 +4037,27 @@ home-or-tmp@^2.0.0: os-tmpdir "^1.0.1" homedir-polyfill@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" - integrity sha1-TCu8inWJmP7r9e1oWA921GdotLw= + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: parse-passwd "^1.0.0" -hosted-git-info@^2.1.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" - integrity sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw== - -hosted-git-info@^2.6.0: +hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: version "2.7.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - -http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= +http-errors@1.7.2, http-errors@~1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== dependencies: depd "~1.1.2" inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" http-parser-js@>=0.4.0: version "0.5.0" @@ -4526,14 +4072,6 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" -http-proxy@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" - integrity sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I= - dependencies: - eventemitter3 "1.x.x" - requires-port "1.x.x" - http-proxy@^1.13.0, http-proxy@^1.8.1: version "1.17.0" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" @@ -4614,24 +4152,12 @@ https-proxy-agent@^2.2.1: agent-base "^4.1.0" debug "^3.1.0" -i@0.3.x: - version "0.3.6" - resolved "https://registry.yarnpkg.com/i/-/i-0.3.6.tgz#d96c92732076f072711b6b10fd7d4f65ad8ee23d" - integrity sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0= - iconv-lite@0.4.15: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" integrity sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es= -iconv-lite@0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" - integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -4764,17 +4290,9 @@ inquirer@^6.2.2: through "^2.3.6" interpret@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" - integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= - -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== invariant@^2.2.2: version "2.2.4" @@ -4788,7 +4306,12 @@ invert-kv@^1.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= -ip@^1.1.2, ip@^1.1.4, ip@^1.1.5: +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.2, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= @@ -4837,13 +4360,6 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74= - dependencies: - builtin-modules "^1.0.0" - is-ci@^1.0.10: version "1.2.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" @@ -4976,9 +4492,9 @@ is-my-ip-valid@^1.0.0: integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ== is-my-json-valid@^2.12.0, is-my-json-valid@^2.12.4: - version "2.17.2" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" - integrity sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg== + version "2.20.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz#1345a6fca3e8daefc10d0fa77067f54cedafd59a" + integrity sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA== dependencies: generate-function "^2.0.0" generate-object-property "^1.1.0" @@ -5020,18 +4536,6 @@ is-obj@^1.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= -is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= - -is-odd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" - integrity sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ== - dependencies: - is-number "^4.0.0" - is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" @@ -5039,7 +4543,7 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: +is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= @@ -5066,7 +4570,7 @@ is-promise@^2.1, is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= -is-property@^1.0.0: +is-property@^1.0.0, is-property@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= @@ -5083,16 +4587,11 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: +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" integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= -is-stream-ended@^0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-stream-ended/-/is-stream-ended-0.1.4.tgz#f50224e95e06bce0e356d440a4827cd35b267eda" - integrity sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw== - is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -5147,7 +4646,7 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is@^3.0.1, is@^3.2.0, is@^3.2.1: +is@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79" integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg== @@ -5168,9 +4667,11 @@ isarray@2.0.1: integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= isbinaryfile@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" - integrity sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE= + version "3.0.3" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== + dependencies: + buffer-alloc "^1.2.0" isexe@^2.0.0: version "2.0.0" @@ -5202,14 +4703,6 @@ isstream@0.1.x, isstream@~0.1.1, isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - jasmine-core@^2.4.1, jasmine-core@~2.99.0: version "2.99.1" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.99.1.tgz#e6400df1e6b56e130b61c4bcd093daa7f6e8ca15" @@ -5265,7 +4758,12 @@ join-path@^1.1.1: url-join "0.0.1" valid-url "^1" -js-tokens@^3.0.0, js-tokens@^3.0.2: +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= @@ -5280,11 +4778,6 @@ jsesc@^1.3.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -5297,11 +4790,6 @@ json-parse-helpfulerror@^1.0.3: dependencies: jju "^1.1.0" -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -5312,12 +4800,10 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= -json-stable-stringify@^1.0.0: +json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: version "5.0.1" @@ -5348,11 +4834,6 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" @@ -5403,7 +4884,7 @@ jwa@^1.4.1: ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" -jws@^3.0.0, jws@^3.1.4, jws@^3.1.5, jws@^3.2.2: +jws@^3.0.0, jws@^3.1.4, jws@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== @@ -5447,13 +4928,13 @@ karma-systemjs@^0.10.0: minimatch "^3.0.0" karma@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/karma/-/karma-2.0.2.tgz#4d2db9402850a66551fa784b0164fb0824ed8c4b" - integrity sha1-TS25QChQpmVR+nhLAWT7CCTtjEs= + version "2.0.5" + resolved "https://registry.yarnpkg.com/karma/-/karma-2.0.5.tgz#3710c7a2e71b1c439313f283846d88e04e4f918c" + integrity sha512-rECezBeY7mjzGUWhFlB7CvPHgkHJLXyUmWg+6vHCEsdWNUTnmiS6jRrIMcJEWgU2DUGZzGWG0bTRVky8fsDTOA== dependencies: bluebird "^3.3.0" body-parser "^1.16.1" - chokidar "^1.4.1" + chokidar "^2.0.3" colors "^1.1.0" combine-lists "^1.0.0" connect "^3.6.0" @@ -5466,7 +4947,7 @@ karma@^2.0.0: http-proxy "^1.13.0" isbinaryfile "^3.0.0" lodash "^4.17.4" - log4js "^2.3.9" + log4js "^2.5.3" mime "^1.3.4" minimatch "^3.0.2" optimist "^0.6.1" @@ -5479,13 +4960,6 @@ karma@^2.0.0: tmp "0.0.33" useragent "2.2.1" -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -5787,11 +5261,6 @@ lodash.keys@~2.4.1: lodash._shimkeys "~2.4.1" lodash.isobject "~2.4.1" -lodash.merge@^4.6.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" - integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ== - lodash.noop@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c" @@ -5852,22 +5321,12 @@ lodash.values@^2.4.1: dependencies: lodash.keys "~2.4.1" -lodash@4.17.5: - version "4.17.5" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" - integrity sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw== - lodash@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= -lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.5.0, lodash@^4.5.1: - version "4.17.10" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" - integrity sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg== - -lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.8.0: +lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.5.1, lodash@^4.8.0: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -5882,11 +5341,6 @@ lodash@~2.4.1: resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e" integrity sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4= -log-driver@1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" - integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== - log-symbols@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" @@ -5894,10 +5348,10 @@ log-symbols@^2.1.0: dependencies: chalk "^2.0.1" -log4js@^2.3.9: - version "2.8.0" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-2.8.0.tgz#9f42fcc4fe82004dfd136604dd7bc1c35d61d6c5" - integrity sha512-PjsaE4ElS0e2jWOY14Ef2PrC1Y+fny4AWPPT3xD6+2k2Aa5golhqJ4DSzP+5kXRL5bSw/5j1ocU5A9ceaxZeGA== +log4js@^2.5.3: + version "2.11.0" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-2.11.0.tgz#bf3902eff65c6923d9ce9cfbd2db54160e34005a" + integrity sha512-z1XdwyGFg8/WGkOyF6DPJjivCWNLKrklGdViywdYnSKOvgtEBo2UyEMZS5sD2mZrQlU3TvO8wDWLc8mzE1ncBQ== dependencies: circular-json "^0.5.4" date-format "^1.2.0" @@ -5939,11 +5393,11 @@ longest@^1.0.1: integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - integrity sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg= + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: - js-tokens "^3.0.0" + js-tokens "^3.0.0 || ^4.0.0" loud-rejection@^1.0.0: version "1.6.0" @@ -5953,11 +5407,6 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= - lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -5974,14 +5423,6 @@ lru-cache@2.2.x: integrity sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0= lru-cache@^4.0.1, lru-cache@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" - integrity sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^4.1.3: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -5996,20 +5437,13 @@ lru-queue@0.1: dependencies: es5-ext "~0.10.2" -magic-string@0.25.2: +magic-string@0.25.2, magic-string@^0.25.0: version "0.25.2" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.2.tgz#139c3a729515ec55e96e69e82a11fe890a293ad9" integrity sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg== dependencies: sourcemap-codec "^1.4.4" -magic-string@^0.25.0: - version "0.25.1" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.1.tgz#b1c248b399cd7485da0fe7385c2fc7011843266e" - integrity sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg== - dependencies: - sourcemap-codec "^1.4.1" - mailcomposer@4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/mailcomposer/-/mailcomposer-4.0.1.tgz#0e1c44b2a07cf740ee17dc149ba009f19cadfeb4" @@ -6019,9 +5453,9 @@ mailcomposer@4.0.1: libmime "3.0.0" mailgun-js@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/mailgun-js/-/mailgun-js-0.18.0.tgz#81fed0c66a411d3ff6c4354861ad21387afcfaaa" - integrity sha512-o0P6jjZlx5CQj12tvVgDTbgjTqVN0+5h6/6P1+3c6xmozVKBwniQ6Qt3MkCSF0+ueVTbobAfWyGpWRZMJu8t1g== + version "0.18.1" + resolved "https://registry.yarnpkg.com/mailgun-js/-/mailgun-js-0.18.1.tgz#ee39aa18d7bb598a5ce9ede84afb681defc8a6b0" + integrity sha512-lvuMP14u24HS2uBsJEnzSyPMxzU2b99tQsIx1o6QNjqxjk8b3WvR+vq5oG1mjqz/IBYo+5gF+uSoDS0RkMVHmg== dependencies: async "~2.6.0" debug "~3.1.0" @@ -6070,9 +5504,9 @@ map-visit@^1.0.0: object-visit "^1.0.0" math-random@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" - integrity sha1-izqsWIuKZuSXXjzepn97sylgH6w= + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== media-typer@0.3.0: version "0.3.0" @@ -6143,17 +5577,12 @@ merge-stream@^1.0.0: dependencies: readable-stream "^2.0.1" -methmeth@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/methmeth/-/methmeth-1.1.0.tgz#e80a26618e52f5c4222861bb748510bd10e29089" - integrity sha1-6AomYY5S9cQiKGG7dIUQvRDikIk= - methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: +micromatch@^2.1.5, micromatch@^2.3.7: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= @@ -6191,39 +5620,22 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -"mime-db@>= 1.38.0 < 2": - version "1.39.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.39.0.tgz#f95a20275742f7d2ad0429acfe40f4233543780e" - integrity sha512-DTsrw/iWVvwHH+9Otxccdyy0Tgiil6TWK/xhfARJZF/QFhwOgZgOIvA2/VIGpM8U7Q8z5nDmdDWC6tuVMJNibw== +mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== mime-db@~1.12.0: version "1.12.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" integrity sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc= -mime-db@~1.33.0: - version "1.33.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" - integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== - -mime-db@~1.38.0: - version "1.38.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" - integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg== - -mime-types@^2.0.8, mime-types@^2.1.16, mime-types@~2.1.19: - version "2.1.22" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd" - integrity sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog== +mime-types@^2.1.11, mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.7: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== dependencies: - mime-db "~1.38.0" - -mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: - version "2.1.18" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" - integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== - dependencies: - mime-db "~1.33.0" + mime-db "1.40.0" mime-types@~2.0.1, mime-types@~2.0.3: version "2.0.14" @@ -6232,30 +5644,20 @@ mime-types@~2.0.1, mime-types@~2.0.3: dependencies: mime-db "~1.12.0" -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== - -mime@^1.2.11, mime@^1.3.4, mime@^1.4.1: +mime@1.6.0, mime@^1.2.11, mime@^1.3.4, mime@^1.4.1: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.2.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78" - integrity sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg== - mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== mimic-response@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" - integrity sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4= + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== minimatch@0.3: version "0.3.0" @@ -6333,27 +5735,22 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.x, mkdirp@0.x.x, mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" -modelo@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/modelo/-/modelo-4.2.3.tgz#b278588a4db87fc1e5107ae3a277c0876f38d894" - integrity sha512-9DITV2YEMcw7XojdfvGl3gDD8J9QjZTJ7ZOUuSAkP+F3T6rDbzMJuPktxptsdHYEvZcmXrCD3LMOhdSAEq6zKA== - modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== moment@^2.11.2: - version "2.22.2" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" - integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y= + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== morgan@^1.8.2: version "1.9.1" @@ -6371,7 +5768,7 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@^2.1.1: +ms@2.1.1, ms@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== @@ -6393,17 +5790,12 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -mute-stream@~0.0.4: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nan@^2.0.0, nan@^2.12.1: - version "2.13.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" - integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== +nan@^2.0.0, nan@^2.0.5, nan@^2.12.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== -nan@^2.0.5, nan@^2.9.2, nan@~2.10.0: +nan@~2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" integrity sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA== @@ -6414,16 +5806,15 @@ nan@~2.4.0: integrity sha1-+zxZ1F/k7/4hXwuJD4rfbrMtIjI= nanomatch@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" - integrity sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA== + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" define-property "^2.0.2" extend-shallow "^3.0.2" fragment-cache "^0.2.1" - is-odd "^2.0.0" is-windows "^1.0.2" kind-of "^6.0.2" object.pick "^1.3.0" @@ -6442,14 +5833,9 @@ nash@^3.0.0: minimist "^1.1.0" natives@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.4.tgz#2f0f224fc9a7dd53407c7667c84cf8dbe773de58" - integrity sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg== - -ncp@1.0.x: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ncp/-/ncp-1.0.1.tgz#d15367e5cb87432ba117d2bf80fdf45aecfb4246" - integrity sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY= + version "1.1.6" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb" + integrity sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA== ncp@^2.0.0: version "2.0.0" @@ -6457,18 +5843,23 @@ ncp@^2.0.0: integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= needle@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.0.tgz#ce3fea21197267bacb310705a7bbe24f2a3a3492" - integrity sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg== + version "2.4.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== dependencies: - debug "^4.1.0" + debug "^3.2.6" iconv-lite "^0.4.4" sax "^1.2.4" -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== netmask@^1.0.6: version "1.0.6" @@ -6486,9 +5877,9 @@ nice-try@^1.0.4: integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-abi@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.1.tgz#7628c4d4ec4e9cd3764ceb3652f36b2e7f8d4923" - integrity sha512-pUlswqpHQ7zGPI9lGjZ4XDNIEUDbHxsltfIRb7dTnYdhgHWHOcB0MLZKLoCz6UMcGzSPG5wGl1HODZVQAUsH6w== + version "2.8.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.8.0.tgz#bd2e88dbe6a6871e6dd08553e0605779325737ec" + integrity sha512-1/aa2clS0pue0HjckL62CsbhWWU35HARvBDXcJtYKbYR7LnIutmpxmXbuDMV9kEviD2lP/wACOgWmmwljghHyQ== dependencies: semver "^5.4.1" @@ -6500,37 +5891,11 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" -node-fetch@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5" - integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA== - node-forge@^0.7.1: version "0.7.6" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac" integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw== -node-forge@^0.8.0: - version "0.8.2" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.8.2.tgz#b4bcc59fb12ce77a8825fc6a783dfe3182499c5a" - integrity sha512-mXQ9GBq1N3uDCyV1pdSzgIguwgtVpM7f5/5J4ipz12PKWElmPpVWLDuWl8iXmhysr21+WmX/OJ5UKx82wjomgg== - -node-pre-gyp@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" - integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - node-pre-gyp@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" @@ -6621,17 +5986,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw== - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -"normalize-package-data@~1.0.1 || ^2.0.0": +normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, "normalize-package-data@~1.0.1 || ^2.0.0": version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -6653,15 +6008,6 @@ normalize-path@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - npm-bundled@^1.0.1: version "1.0.6" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" @@ -6731,7 +6077,7 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -oauth-sign@~0.8.0, oauth-sign@~0.8.1, oauth-sign@~0.8.2: +oauth-sign@~0.8.0, oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= @@ -6951,21 +6297,11 @@ osenv@^0.1.0, osenv@^0.1.4, osenv@^0.1.5: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -6980,22 +6316,15 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== - dependencies: - p-finally "^1.0.0" - p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= -pac-proxy-agent@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-2.0.2.tgz#90d9f6730ab0f4d2607dcdcd4d3d641aa26c3896" - integrity sha512-cDNAN1Ehjbf5EHkNY5qnRhGPUCp6SnpyVof5fRzN800QV1Y2OkzbH9rmjZkbBRa8igof903yOnjIl6z0SlAhxA== +pac-proxy-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz#11d578b72a164ad74bf9d5bac9ff462a38282432" + integrity sha512-AOUX9jES/EkQX2zRz0AW7lSx9jD//hQS8wFXBvcnd/J2Py9KaMJMqV/LPqJssj1tgGufotb2mmopGPR15ODv1Q== dependencies: agent-base "^4.2.0" debug "^3.1.0" @@ -7004,7 +6333,7 @@ pac-proxy-agent@^2.0.1: https-proxy-agent "^2.2.1" pac-resolver "^3.0.0" raw-body "^2.2.0" - socks-proxy-agent "^3.0.0" + socks-proxy-agent "^4.0.1" pac-resolver@^3.0.0: version "3.0.0" @@ -7066,6 +6395,11 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-node-version@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" @@ -7095,10 +6429,10 @@ parseuri@0.0.5: dependencies: better-assert "~1.0.0" -parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascalcase@^0.1.1: version "0.1.1" @@ -7137,11 +6471,6 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-parse@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" - integrity sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME= - path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -7216,11 +6545,6 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= -pify@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -7238,11 +6562,6 @@ pkginfo@0.3.x: resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE= -pkginfo@0.x.x: - version "0.4.1" - resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" - integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8= - pluralize@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" @@ -7301,11 +6620,6 @@ prepend-http@^1.0.1: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" @@ -7353,18 +6667,6 @@ promisify-call@^2.0.2: dependencies: with-callback "^1.0.2" -prompt@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prompt/-/prompt-1.0.0.tgz#8e57123c396ab988897fb327fd3aedc3e735e4fe" - integrity sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4= - dependencies: - colors "^1.1.2" - pkginfo "0.x.x" - read "1.0.x" - revalidator "0.1.x" - utile "0.3.x" - winston "2.1.x" - protobufjs@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-5.0.3.tgz#e4dfe9fb67c90b2630d15868249bcc4961467a17" @@ -7394,11 +6696,6 @@ protobufjs@^6.8.6: "@types/node" "^10.1.0" long "^4.0.0" -protochain@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/protochain/-/protochain-1.0.5.tgz#991c407e99de264aadf8f81504b5e7faf7bfa260" - integrity sha1-mRxAfpneJkqt+PgVBLXn+ve/omA= - protractor@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/protractor/-/protractor-3.0.0.tgz#ac76778770f629bab2afa56a6aac9c59ca6d259d" @@ -7416,7 +6713,7 @@ protractor@3.0.0: selenium-webdriver "2.48.2" source-map-support "~0.3.2" -proxy-addr@~2.0.4: +proxy-addr@~2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== @@ -7425,18 +6722,18 @@ proxy-addr@~2.0.4: ipaddr.js "1.9.0" proxy-agent@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-3.0.0.tgz#f6768e202889b2285d39906d3a94768416f8f713" - integrity sha512-g6n6vnk8fRf705ShN+FEXFG/SDJaW++lSs0d9KaJh4uBWW/wi7en4Cpo5VYQW3SZzAE121lhB/KLQrbURoubZw== + version "3.0.3" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-3.0.3.tgz#1c1a33db60ef5f2e9e35b876fd63c2bc681c611d" + integrity sha512-PXVVVuH9tiQuxQltFJVSnXWuDtNr+8aNBP6XVDDCDiUuDN8eRCm+ii4/mFWmXWEA0w8jjJSlePa4LXlM4jIzNA== dependencies: agent-base "^4.2.0" debug "^3.1.0" http-proxy-agent "^2.1.0" https-proxy-agent "^2.2.1" lru-cache "^4.1.2" - pac-proxy-agent "^2.0.1" + pac-proxy-agent "^3.0.0" proxy-from-env "^1.0.0" - socks-proxy-agent "^3.0.0" + socks-proxy-agent "^4.0.1" proxy-from-env@^1.0.0: version "1.0.0" @@ -7448,10 +6745,10 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.24: - version "1.1.28" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.28.tgz#4fb6ceb08a1e2214d4fd4de0ca22dae13740bc7b" - integrity sha512-+AqO1Ae+N/4r7Rvchrdm432afjT9hqJRyBN3DQv9At0tPz4hIFSGKbq64fN9dVoCow4oggIIax5/iONx0r9hZw== +psl@^1.1.24, psl@^1.1.28: + version "1.1.31" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" + integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw== pump@^1.0.0: version "1.0.3" @@ -7461,7 +6758,7 @@ pump@^1.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pump@^2.0.0, pump@^2.0.1: +pump@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== @@ -7469,21 +6766,12 @@ pump@^2.0.0, pump@^2.0.1: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^1.4.0, pumpify@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - punycode@1.4.1, punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -punycode@^2.1.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -7503,10 +6791,10 @@ qjobs@^1.1.4: resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== -qs@6.5.2, qs@~6.5.1, qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== qs@~2.3.3: version "2.3.3" @@ -7528,14 +6816,15 @@ qs@~6.4.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" integrity sha1-E+JtKK1rD/qpExLNO/cI7TUecjM= -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== quick-lru@^1.0.0: version "1.1.0" @@ -7543,27 +6832,27 @@ quick-lru@^1.0.0: integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= randomatic@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" - integrity sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== dependencies: is-number "^4.0.0" kind-of "^6.0.0" math-random "^1.0.1" -range-parser@^1.2.0, range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= +range-parser@^1.2.0, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.3.3, raw-body@^2.2.0: - version "2.3.3" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" - integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== +raw-body@2.4.0, raw-body@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== dependencies: - bytes "3.0.0" - http-errors "1.6.3" - iconv-lite "0.4.23" + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" unpipe "1.0.0" rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: @@ -7627,13 +6916,6 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read@1.0.x: - version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= - dependencies: - mute-stream "~0.0.4" - readable-stream@1.1.x, "readable-stream@1.x >=1.1.9", readable-stream@~1.1.9: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -7644,18 +6926,14 @@ readable-stream@1.1.x, "readable-stream@1.x >=1.1.9", readable-stream@~1.1.9: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== +readable-stream@3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9" + integrity sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw== dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.26: version "1.0.34" @@ -7667,6 +6945,19 @@ readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stre isarray "0.0.1" string_decoder "~0.10.x" +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readable-stream@~2.0.0, readable-stream@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" @@ -7679,17 +6970,7 @@ readable-stream@~2.0.0, readable-stream@~2.0.5: string_decoder "~0.10.x" util-deprecate "~1.0.1" -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - integrity sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg= - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -readdirp@^2.2.1: +readdirp@^2.0.0, readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== @@ -7731,9 +7012,9 @@ redent@^2.0.0: strip-indent "^2.0.0" redis-commands@^1.2.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.5.tgz#4495889414f1e886261180b1442e7295602d83a2" - integrity sha512-foGF8u6MXGFF++1TZVC6icGXuMYPftKXt1FBT2vrfU9ZATNtZJ8duRC5d1lEfE8hyVe3jhelHGB91oB7I6qLsA== + version "1.5.0" + resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.5.0.tgz#80d2e20698fe688f227127ff9e5164a7dd17e785" + integrity sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg== redis-parser@^2.6.0: version "2.6.0" @@ -7755,9 +7036,9 @@ reflect-metadata@0.1.2: integrity sha1-6iPlgj3IMPKSgivT2puJ/Ve/+wM= reflect-metadata@^0.1.2: - version "0.1.12" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz#311bf0c6b63cd782f228a81abe146a2bfa9c56f2" - integrity sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A== + version "0.1.13" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== regenerator-runtime@^0.11.0: version "0.11.1" @@ -7800,9 +7081,9 @@ remove-trailing-separator@^1.0.1: integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - integrity sha1-7wiaF40Ug7quTZPrmLT55OEdmQo= + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== repeat-string@^0.2.2: version "0.2.2" @@ -7853,33 +7134,7 @@ request@2.75.x: tough-cookie "~2.3.0" tunnel-agent "~0.4.1" -request@^2.0.0, request@^2.74.0: - version "2.87.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" - integrity sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" - -request@^2.72.0, request@^2.79.0, request@^2.81.0, request@^2.85.0, request@^2.87.0, request@^2.88.0: +request@^2.0.0, request@^2.72.0, request@^2.74.0, request@^2.79.0, request@^2.81.0, request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== @@ -7954,7 +7209,7 @@ require-relative@0.8.7: resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4= -requires-port@1.x.x, requires-port@^1.0.0: +requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= @@ -7972,27 +7227,13 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.1.7: - version "1.7.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" - integrity sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw== - dependencies: - path-parse "^1.0.5" - -resolve@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" - integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" + integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== dependencies: path-parse "^1.0.6" -responselike@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -8014,11 +7255,6 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry-axios@0.3.2, retry-axios@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/retry-axios/-/retry-axios-0.3.2.tgz#5757c80f585b4cc4c4986aa2ffd47a60c6d35e13" - integrity sha512-jp4YlI0qyDFfXiXGhkCOliBN1G7fRH03Nqy8YdShzGqbY5/9S2x/IR6C88ls2DFkbWuL3ASkP7QD3pVrNpPgwQ== - retry-request@^3.0.0: version "3.3.2" resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-3.3.2.tgz#fd8e0079e7b0dfc7056e500b6f089437db0da4df" @@ -8032,11 +7268,6 @@ retry@^0.10.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= -revalidator@0.1.x: - version "0.1.8" - resolved "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz#fece61bfa0c1b52a206bd6b18198184bdd523a3b" - integrity sha1-/s5hv6DBtSoga9axgZgYS91SOjs= - right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" @@ -8044,14 +7275,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2.6.2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== - dependencies: - glob "^7.0.5" - -rimraf@2.x.x, rimraf@^2.6.1: +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== @@ -8059,21 +7283,21 @@ rimraf@2.x.x, rimraf@^2.6.1: glob "^7.1.3" rollup-plugin-node-resolve@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz#c26d110a36812cbefa7ce117cadcd3439aa1c713" - integrity sha512-9zHGr3oUJq6G+X0oRMYlzid9fXicBdiydhwGChdyeNRGPcN/majtegApRKHLR5drboUvEWU+QeUmGTyEZQs3WA== + version "3.4.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz#908585eda12e393caac7498715a01e08606abc89" + integrity sha512-PJcd85dxfSBWih84ozRtBkB731OjXk0KnzN0oGp7WOWcarAFkVa71cV5hTJg2qpVsV2U8EUwrzHP3tvy9vS3qg== dependencies: builtin-modules "^2.0.0" is-module "^1.0.0" resolve "^1.1.6" rollup-pluginutils@^2.0.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.3.1.tgz#760d185ccc237dedc12d7ae48c6bcd127b4892d0" - integrity sha512-JZS8aJMHEHhqmY2QVPMXwKP6lsD1ShkrcGYjhAIvqKKdXQyPHw/9NF0tl3On/xOJ4ACkxfeG7AF+chfCN1NpBg== + version "2.7.1" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.7.1.tgz#a7915ce8b12c177364784bf38a1590cc6c2c8250" + integrity sha512-3nRf3buQGR9qz/IsSzhZAJyoK663kzseps8itkYHr+Z7ESuaffEPfgRinxbCRA0pf0gzLqkNKkSb8aNVTq75NA== dependencies: - estree-walker "^0.5.2" - micromatch "^2.3.11" + estree-walker "^0.6.0" + micromatch "^3.1.10" rollup-watch@^4.3.1: version "4.3.1" @@ -8148,21 +7372,21 @@ rxjs@6.3.3: dependencies: tslib "^1.9.0" -rxjs@6.4.0, rxjs@^6.4.0: +rxjs@6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw== dependencies: tslib "^1.9.0" -rxjs@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.1.tgz#246cebec189a6cbc143a3ef9f62d6f4c91813ca1" - integrity sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g== +rxjs@^6.0.0, rxjs@^6.4.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== dependencies: tslib "^1.9.0" -safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -8174,7 +7398,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -8226,16 +7450,11 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -"semver@2 >=2.2.1 || 3.x || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.6.0: +"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== -"semver@2 || 3 || 4 || 5", semver@5.5.0, semver@^5.4.1, semver@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== - semver@2.x: version "2.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-2.3.2.tgz#b9848f25d6cf36333073ec9ef8856d42f1233e52" @@ -8251,10 +7470,10 @@ semver@~5.0.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" integrity sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no= -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" - integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== dependencies: debug "2.6.9" depd "~1.1.2" @@ -8263,45 +7482,33 @@ send@0.16.2: escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" + range-parser "~1.2.1" + statuses "~1.5.0" sequencify@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" integrity sha1-kM/xnQLgcCf9dn9erT57ldHnOAw= -serializerr@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/serializerr/-/serializerr-1.0.3.tgz#12d4c5aa1c3ffb8f6d1dc5f395aa9455569c3f91" - integrity sha1-EtTFqhw/+49tHcXzlaqUVVacP5E= - dependencies: - protochain "^1.0.5" - -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" - integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" + parseurl "~1.3.3" + send "0.17.1" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= - set-value@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" @@ -8327,6 +7534,11 @@ setprototypeof@1.1.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -8340,9 +7552,9 @@ shebang-regex@^1.0.0: integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shelljs@^0.8.0, shelljs@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.2.tgz#345b7df7763f4c2340d584abb532c5f752ca9e35" - integrity sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ== + version "0.8.3" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097" + integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A== dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -8389,7 +7601,12 @@ slide@^1.1.3, slide@^1.1.5: resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= -smart-buffer@^1.0.13, smart-buffer@^1.0.4: +smart-buffer@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.2.tgz#5207858c3815cc69110703c6b94e46c15634395d" + integrity sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw== + +smart-buffer@^1.0.4: version "1.1.15" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" integrity sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY= @@ -8402,11 +7619,6 @@ smtp-connection@2.12.0: httpntlm "1.6.1" nodemailer-shared "1.1.0" -snakeize@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/snakeize/-/snakeize-0.1.0.tgz#10c088d8b58eb076b3229bb5a04e232ce126422d" - integrity sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0= - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -8489,13 +7701,13 @@ socket.io@2.0.4: socket.io-client "2.0.4" socket.io-parser "~3.1.1" -socks-proxy-agent@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659" - integrity sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA== +socks-proxy-agent@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== dependencies: - agent-base "^4.1.0" - socks "^1.1.10" + agent-base "~4.2.1" + socks "~2.3.2" socks@1.1.9: version "1.1.9" @@ -8505,20 +7717,13 @@ socks@1.1.9: ip "^1.1.2" smart-buffer "^1.0.4" -socks@^1.1.10: - version "1.1.10" - resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" - integrity sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o= - dependencies: - ip "^1.1.4" - smart-buffer "^1.0.13" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= +socks@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.2.tgz#ade388e9e6d87fdb11649c15746c578922a5883e" + integrity sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ== dependencies: - is-plain-obj "^1.0.0" + ip "^1.1.5" + smart-buffer "4.0.2" source-map-resolve@^0.5.0: version "0.5.2" @@ -8569,13 +7774,6 @@ source-map@0.7.3: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -source-map@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - integrity sha1-66T12pwNyZneaAMti092FzZSA2s= - dependencies: - amdefine ">=0.0.4" - source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -8586,11 +7784,6 @@ source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -sourcemap-codec@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.3.tgz#0ba615b73ec35112f63c2f2d9e7c3f87282b0e33" - integrity sha512-vFrY/x/NdsD7Yc8mpTJXuao9S8lq08Z/kOITHz6b7YbfI9xL8Spe5EvSQUHOI7SbpY8bRPr0U3kKSsPuqEGSfA== - sourcemap-codec@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz#c63ea927c029dd6bd9a2b7fa03b3fec02ad56e9f" @@ -8602,17 +7795,17 @@ sparkles@^1.0.0: integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== spdx-correct@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" - integrity sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g== + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" - integrity sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== spdx-expression-parse@^3.0.0: version "3.0.0" @@ -8623,17 +7816,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" - integrity sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA== - -split-array-stream@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/split-array-stream/-/split-array-stream-1.0.3.tgz#d2b75a8e5e0d824d52fdec8b8225839dc2e35dfa" - integrity sha1-0rdajl4Ngk1S/eyLgiWDncLjXfo= - dependencies: - async "^2.4.0" - is-stream-ended "^0.1.0" + version "3.0.4" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -8657,19 +7842,18 @@ split@^1.0.0: through "2" sshpk@^1.7.0: - version "1.14.2" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" - integrity sha1-xvxhZIo9nE52T9P8306hBeSSupg= + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - safer-buffer "^2.0.2" - optionalDependencies: bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" ecc-jsbn "~0.1.1" + getpass "^0.1.1" jsbn "~0.1.0" + safer-buffer "^2.0.2" tweetnacl "~0.14.0" ssri@^5.2.4: @@ -8692,33 +7876,16 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2": +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= - -statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== - stream-consume@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz#d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48" integrity sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg== -stream-events@^1.0.1, stream-events@^1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" - integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== - dependencies: - stubs "^3.0.0" - stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" @@ -8734,16 +7901,6 @@ streamroller@0.7.0: mkdirp "^0.5.1" readable-stream "^2.3.0" -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-format-obj@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string-format-obj/-/string-format-obj-1.1.1.tgz#c7612ca4e2ad923812a81db192dc291850aa1f65" - integrity sha512-Mm+sROy+pHJmx0P/0Bs1uxIX6UhGJGj6xDGQZ5zh9v/SZRmLGevp+p0VJxV7lirrkAmQ2mvva/gHKpnF/pTb+Q== - string-length@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" @@ -8751,11 +7908,6 @@ string-length@^1.0.0: dependencies: strip-ansi "^3.0.0" -string-template@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96" - integrity sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y= - string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -8773,6 +7925,13 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string_decoder@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== + dependencies: + safe-buffer "~5.1.0" + string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -8868,11 +8027,6 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -stubs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" - integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= - superstatic@^6.0.1: version "6.0.4" resolved "https://registry.yarnpkg.com/superstatic/-/superstatic-6.0.4.tgz#5c38fe05e2e9513b68d5ba2798925e4839c151dd" @@ -8920,9 +8074,9 @@ supports-color@^2.0.0: integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^5.3.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" - integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" @@ -8955,29 +8109,16 @@ systemjs@^0.19.16, systemjs@^0.19.43: when "^3.7.5" tar-fs@^1.13.0: - version "1.16.2" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.2.tgz#17e5239747e399f7e77344f5f53365f04af53577" - integrity sha512-LdknWjPEiZC1nOBwhv0JBzfJBGPJar08dZg2rwZe0ZTLQoRGEzgrl7vF3qUEkCHpI/wN9e7RyCuDhMsJUCLPPQ== + version "1.16.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== dependencies: chownr "^1.0.1" mkdirp "^0.5.1" pump "^1.0.0" tar-stream "^1.1.2" -tar-stream@^1.1.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395" - integrity sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA== - dependencies: - bl "^1.0.0" - buffer-alloc "^1.1.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.0" - xtend "^4.0.0" - -tar-stream@^1.5.0: +tar-stream@^1.1.2, tar-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== @@ -9019,9 +8160,9 @@ term-size@^1.2.0: execa "^0.7.0" text-extensions@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.7.0.tgz#faaaba2625ed746d568a23e4d0aacd9bf08a8b39" - integrity sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg== + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== through2-filter@^2.0.0: version "2.0.0" @@ -9031,6 +8172,14 @@ through2-filter@^2.0.0: through2 "~2.0.0" xtend "~4.0.0" +through2-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" + integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + through2@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.1.tgz#384e75314d49f32de12eebb8136b8eb6b5d59da9" @@ -9048,14 +8197,6 @@ through2@^0.6.0, through2@^0.6.1: xtend ">=4.0.0 <4.1.0-0" through2@^2.0.0, through2@^2.0.2, through2@~2.0.0, through2@~2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - integrity sha1-AARWmzfHx0ujnEPzzteNGtlBQL4= - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through2@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -9085,7 +8226,7 @@ time-stamp@^1.0.0: resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= -timed-out@^4.0.0, timed-out@^4.0.1: +timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= @@ -9127,7 +8268,7 @@ to-array@0.1.4: resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= -to-buffer@^1.1.0, to-buffer@^1.1.1: +to-buffer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== @@ -9162,15 +8303,21 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + tough-cookie@>=0.12.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.2.tgz#aa9133154518b494efab98a58247bfc38818c00c" - integrity sha512-vahm+X8lSV/KjXziec8x5Vp0OTC9mq8EVCOApIsRAooeuMPSO8aT7PFACYkaL0yZ/3hVqw+8DzhCJwl8H2Ad6w== + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== dependencies: - psl "^1.1.24" - punycode "^1.4.1" + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" -tough-cookie@~2.3.0, tough-cookie@~2.3.3: +tough-cookie@~2.3.0: version "2.3.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" integrity sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA== @@ -9239,20 +8386,15 @@ try-require@^1.0.0: resolved "https://registry.yarnpkg.com/try-require/-/try-require-1.2.1.tgz#34489a2cac0c09c1cc10ed91ba011594d4333be2" integrity sha1-NEiaLKwMCcHMEO2RugEVlNQzO+I= -tslib@1.9.3: +tslib@1.9.3, tslib@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== -tslib@^1.9.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.2.tgz#8be0cc9a1f6dc7727c38deb16c2ebd1a2892988e" - integrity sha512-AVP5Xol3WivEr7hnssHDsaM+lVrVXWUvd1cfXTRkTj80b//6g2wIFEH6hZG0muGZRnHGrfttpdzRk3YlBkWjKw== - tsscmp@~1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97" - integrity sha1-fcSjOvcVgatDN9qR2FylQn69mpc= + version "1.0.6" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== tunnel-agent@^0.6.0: version "0.6.0" @@ -9278,13 +8420,13 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-is@~1.6.16: - version "1.6.16" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" - integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" - mime-types "~2.1.18" + mime-types "~2.1.24" typedarray@^0.0.6: version "0.0.6" @@ -9296,25 +8438,23 @@ typescript@1.8.10: resolved "https://registry.yarnpkg.com/typescript/-/typescript-1.8.10.tgz#b475d6e0dff0bf50f296e5ca6ef9fbb5c7320f1e" integrity sha1-tHXW4N/wv1DyluXKbvn7tccyDx4= -"typescript@>=2.7.2 <2.8.0, >=3.1.1 <3.2": - version "3.1.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.3.tgz#01b70247a6d3c2467f70c45795ef5ea18ce191d5" - integrity sha512-+81MUSyX+BaSo+u2RbozuQk/UWx6hfG0a5gHu4ANEM4sU96XbuIyAB+rWBW1u70c6a5QuZfuYICn3s2UjuHUpA== +"typescript@^3.1.6 <3.2": + version "3.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68" + integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA== typescript@^3.3.3333: - version "3.4.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.3.tgz#0eb320e4ace9b10eadf5bc6103286b0f8b7c224f" - integrity sha512-FFgHdPt4T/duxx6Ndf7hwgMZZjZpB+U0nMNGVCYPq0rEzWKjEDobm4J6yb3CS7naZ0yURFqdw9Gwc7UOh/P9oQ== + version "3.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" + integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw== -uglify-js@^2.6: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= +uglify-js@^3.1.4: + version "3.5.13" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.13.tgz#d2d8857b598d77f8764ae3bfcf90bb1df134d2bd" + integrity sha512-Lho+IJlquX6sdJgyKSJx/M9y4XbDd3ekPjD8S6HYmT5yVSwDtlSuca2w5hV4g2dIsp0Y/4orbfWxKexodmFv7w== dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" + commander "~2.20.0" + source-map "~0.6.1" uglify-js@~2.7.5: version "2.7.5" @@ -9374,12 +8514,12 @@ unique-stream@^1.0.0: integrity sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs= unique-stream@^2.0.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" - integrity sha1-WqADz76Uxf+GbE59ZouxxNuts2k= + version "2.3.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" + integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== dependencies: - json-stable-stringify "^1.0.0" - through2-filter "^2.0.0" + json-stable-stringify-without-jsonify "^1.0.1" + through2-filter "^3.0.0" unique-string@^1.0.0: version "1.0.0" @@ -9398,9 +8538,9 @@ universal-analytics@^0.4.16: uuid "^3.0.0" universalify@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" - integrity sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc= + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" @@ -9420,7 +8560,7 @@ unzip-response@^2.0.1: resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= -upath@^1.0.5, upath@^1.1.0: +upath@^1.0.5, upath@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== @@ -9465,37 +8605,24 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= +url-parse@~1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== dependencies: - prepend-http "^2.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + querystringify "^2.1.1" + requires-port "^1.0.0" use@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" - integrity sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw== - dependencies: - kind-of "^6.0.2" + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= -user-home@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" - integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8= - dependencies: - os-homedir "^1.0.0" - useragent@2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e" @@ -9521,33 +8648,16 @@ utf-8-validate@~4.0.0: nan "~2.10.0" prebuild-install "~4.0.0" -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -utile@0.3.x: - version "0.3.0" - resolved "https://registry.yarnpkg.com/utile/-/utile-0.3.0.tgz#1352c340eb820e4d8ddba039a4fbfaa32ed4ef3a" - integrity sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo= - dependencies: - async "~0.9.0" - deep-equal "~0.2.1" - i "0.3.x" - mkdirp "0.x.x" - ncp "1.0.x" - rimraf "2.x.x" - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@3.2.1, uuid@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - integrity sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA== - uuid@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" @@ -9581,9 +8691,9 @@ valid-url@^1: integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= validate-npm-package-license@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" - integrity sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g== + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" @@ -9746,31 +8856,6 @@ window-size@^0.1.4: resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" integrity sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY= -winston@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/winston/-/winston-2.1.1.tgz#3c9349d196207fd1bdff9d4bc43ef72510e3a12e" - integrity sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4= - dependencies: - async "~1.0.0" - colors "1.0.x" - cycle "1.0.x" - eyes "0.1.x" - isstream "0.1.x" - pkginfo "0.3.x" - stack-trace "0.0.x" - -winston@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-2.4.0.tgz#808050b93d52661ed9fb6c26b3f0c826708b0aee" - integrity sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4= - dependencies: - async "~1.0.0" - colors "1.0.x" - cycle "1.0.x" - eyes "0.1.x" - isstream "0.1.x" - stack-trace "0.0.x" - winston@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/winston/-/winston-1.1.2.tgz#68edd769ff79d4f9528cf0e5d80021aade67480c" @@ -9881,9 +8966,9 @@ xml2js@0.4.4: xmlbuilder ">=1.0.0" xmlbuilder@>=1.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-10.0.0.tgz#c64e52f8ae097fe5fd46d1c38adaade071ee1b55" - integrity sha512-7RWHlmF1yU/E++BZkRQTEv8ZFAhZ+YHINUAxiZ5LQTKRQq//igpiY8rh7dJqPzgb/IzeC5jH9P7OaCERfM9DwA== + version "13.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-13.0.1.tgz#0770a63c8672e38eea413ed13080de4fdc01f0ef" + integrity sha512-qdGT2O3+OWTVY5HqESkgbOd8NE5MWUIuKxXd9PNQOhVC83SRfdje+Ku4vjFCaEpL6JZqlTOcKN33TlCEbApNcA== xmlhttprequest-ssl@~1.5.4: version "1.5.5" @@ -9927,31 +9012,6 @@ yargs-parser@^7.0.0: dependencies: camelcase "^4.1.0" -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= - dependencies: - camelcase "^4.1.0" - -yargs@11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" - integrity sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw== - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" - yargs@9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" @@ -10010,6 +9070,6 @@ zip-stream@^1.2.0: readable-stream "^2.0.0" zone.js@^0.8.0: - version "0.8.26" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.26.tgz#7bdd72f7668c5a7ad6b118148b4ea39c59d08d2d" - integrity sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA== + version "0.8.29" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.29.tgz#8dce92aa0dd553b50bc5bfbb90af9986ad845a12" + integrity sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ== From b6662545cdd9ab2998ac962f6c0012d3b49af94a Mon Sep 17 00:00:00 2001 From: James Daniels Date: Mon, 20 May 2019 00:00:33 -0700 Subject: [PATCH 13/16] Deploy getting started to replace old guide --- README.md | 2 +- docs/deploy/getting-started.md | 2 +- docs/deploying-angularfire-to-firebase.md | 31 ----------------------- 3 files changed, 2 insertions(+), 33 deletions(-) delete mode 100644 docs/deploying-angularfire-to-firebase.md diff --git a/README.md b/README.md index 8da57864a..ac70a6a7c 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ Firebase offers two cloud-based, client-accessible database solutions that suppo > Firebase Hosting is production-grade web content hosting for developers. With Hosting, you can quickly and easily deploy web apps and static content to a global content delivery network (CDN) with a single command. -- [Deploy your Angular application on Firebase Hosting](docs/deploying-angularfire-to-firebase.md) +- [Deploy your application on Firebase Hosting](docs/deploy/getting-started.md) #### Server-side rendering diff --git a/docs/deploy/getting-started.md b/docs/deploy/getting-started.md index 176486e89..64bc90018 100644 --- a/docs/deploy/getting-started.md +++ b/docs/deploy/getting-started.md @@ -1,4 +1,4 @@ -# Deployment with the Angular CLI +# Deploy your application on Firebase Hosting In this guide, we'll look at how to use `@angular/fire` to automatically deploy an Angular application to Firebase hosting by using the Angular CLI. diff --git a/docs/deploying-angularfire-to-firebase.md b/docs/deploying-angularfire-to-firebase.md deleted file mode 100644 index 3ae739758..000000000 --- a/docs/deploying-angularfire-to-firebase.md +++ /dev/null @@ -1,31 +0,0 @@ -# 7. Deploy AngularFire to Firebase - -### 0. Build your Angular project for production - -Before you can deploy your angular project, you need to build a version with your prod environment variables. -Make sure to add your production firebase configuration to the src/environments/environment.prod.ts before you build. - -```bash -# build the angular project, creates a dist folder in your directory -ng build --prod -``` - -### 1. Initializing a Firebase project - -You must initialize Firebase Hosting in order to deploy your application. In order to do this, run the `firebase init` command. - -Note: If you haven't installed the Firebase CLI yet, run this command: - -```bash -npm install --global firebase-tools -``` - -- This command prompts you to enter a public directory. Enter `dist` (generated by `ng build -prod`). -- The command will also ask you if you want to overwrite your index file. Type `n` since your Angular app includes an index file. -- This command also prompts you whether to configure the project as a single-page app. Enter `y` if you're using Angular Router or similar. Otherwise, enter `n`. - -### 2. Deploy your Project - -To deploy your app, simply run `firebase deploy`! - -For more information on Firebase `init` and `deploy` commands, check out the [Firebase CLI documentation](https://firebase.google.com/docs/cli/). From 4292cdd3bde98fbb9f1b0dd2ff07aa9e57acc8a2 Mon Sep 17 00:00:00 2001 From: James Daniels Date: Mon, 20 May 2019 00:08:05 -0700 Subject: [PATCH 14/16] Bad npm command --- docs/universal/cloud-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/universal/cloud-functions.md b/docs/universal/cloud-functions.md index 62c1269ab..126853e9a 100644 --- a/docs/universal/cloud-functions.md +++ b/docs/universal/cloud-functions.md @@ -7,7 +7,7 @@ After [setting up your application with Angular Universal as outlined in Getting If you don't already have the Firebase CLI installed, do so: ```bash -npm i -g @firebase-tools +npm i -g firebase-tools firebase login ``` From 3a1b108f2a11e3fa79ab302b80988f9d110d6408 Mon Sep 17 00:00:00 2001 From: Minko Gechev Date: Wed, 22 May 2019 23:49:49 +0200 Subject: [PATCH 15/16] refactor: update documentation & improve error messages (#2081) --- docs/deploy/getting-started.md | 4 ++-- src/schematics/ng-add.ts | 44 ++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/docs/deploy/getting-started.md b/docs/deploy/getting-started.md index 64bc90018..f35d4eff2 100644 --- a/docs/deploy/getting-started.md +++ b/docs/deploy/getting-started.md @@ -12,7 +12,7 @@ ng add @angular/fire *Note that the command above assumes you have global Angular CLI installed. To install Angular CLI globally run `npm i -g @angular/cli`.* -The command above will trigger the `@angular/fire` `ng-add` schematics. Once they install `@angular/fire`. If you are not authenticated, the schematics will open a browser which will guide you through the authentication flow. Once you authenticate, you'll see a prompt to select a Firebase hosting project. +The command above will trigger the `@angular/fire` `ng-add` schematics. The schematics will open a web browser and guide you through the Firebase authentication flow (if you're not signed in already). After you authenticate, you'll see a prompt to select a Firebase hosting project. The schematics will do the following: @@ -53,7 +53,7 @@ ng add @angular/fire --project=[PROJECT_NAME] As the second step, to deploy your project run: ``` -ng run [PROJECT_NAME]:deploy +ng run [ANGULAR_PROJECT_NAME]:deploy ``` The command above will trigger: diff --git a/src/schematics/ng-add.ts b/src/schematics/ng-add.ts index 104c05003..997d4eede 100644 --- a/src/schematics/ng-add.ts +++ b/src/schematics/ng-add.ts @@ -1,10 +1,10 @@ -import { SchematicsException, Tree } from "@angular-devkit/schematics"; -import { FirebaseJSON, FirebaseRc } from "./interfaces"; -import { experimental, JsonParseMode, parseJson } from "@angular-devkit/core"; -import { from } from "rxjs"; -import { map, switchMap } from "rxjs/operators"; -import { Project } from "./interfaces"; -import { listProjects, projectPrompt } from "./utils"; +import { SchematicsException, Tree } from '@angular-devkit/schematics'; +import { FirebaseJSON, FirebaseRc } from './interfaces'; +import { experimental, JsonParseMode, parseJson } from '@angular-devkit/core'; +import { from } from 'rxjs'; +import { map, switchMap } from 'rxjs/operators'; +import { Project } from './interfaces'; +import { listProjects, projectPrompt } from './utils'; const stringifyFormatted = (obj: any) => JSON.stringify(obj, null, 2); @@ -24,11 +24,11 @@ function generateHostingConfig(project: string, dist: string) { return { target: project, public: dist, - ignore: ["firebase.json", "**/.*", "**/node_modules/**"], + ignore: ['firebase.json', '**/.*', '**/node_modules/**'], rewrites: [ { - source: "**", - destination: "/index.html" + source: '**', + destination: '/index.html' } ] }; @@ -106,7 +106,7 @@ const overwriteIfExists = (tree: Tree, path: string, content: string) => { function getWorkspace( host: Tree ): { path: string; workspace: experimental.workspace.WorkspaceSchema } { - const possibleFiles = ["/angular.json", "/.angular.json"]; + const possibleFiles = ['/angular.json', '/.angular.json']; const path = possibleFiles.filter(path => host.exists(path))[0]; const configBuffer = host.read(path); @@ -156,19 +156,21 @@ export function ngAdd(tree: Tree, options: NgAddOptions) { options.project = workspace.defaultProject; } else { throw new SchematicsException( - "No project selected and no default project in the workspace" + 'No Angular project selected and no default project in the workspace' ); } } const project = workspace.projects[options.project]; if (!project) { - throw new SchematicsException("Project is not defined in this workspace"); + throw new SchematicsException( + 'The specified Angular project is not defined in this workspace' + ); } - if (project.projectType !== "application") { + if (project.projectType !== 'application') { throw new SchematicsException( - `Deploy requires a project type of "application" in angular.json` + `Deploy requires an Angular project type of "application" in angular.json` ); } @@ -179,7 +181,7 @@ export function ngAdd(tree: Tree, options: NgAddOptions) { !project.architect.build.options.outputPath ) { throw new SchematicsException( - `Cannot read the output path (architect.build.options.outputPath) of project "${ + `Cannot read the output path (architect.build.options.outputPath) of the Angular project "${ options.project }" in angular.json` ); @@ -187,18 +189,18 @@ export function ngAdd(tree: Tree, options: NgAddOptions) { const outputPath = project.architect.build.options.outputPath; - project.architect["deploy"] = { - builder: "@angular/fire:deploy", + project.architect['deploy'] = { + builder: '@angular/fire:deploy', options: {} }; tree.overwrite(workspacePath, JSON.stringify(workspace, null, 2)); - generateFirebaseJson(tree, "firebase.json", options.project, outputPath); + generateFirebaseJson(tree, 'firebase.json', options.project!, outputPath); generateFirebaseRc( tree, - ".firebaserc", + '.firebaserc', options.firebaseProject, - options.project + options.project! ); return tree; } From c709f042964bee55cec6771d5a1dfedf242feef4 Mon Sep 17 00:00:00 2001 From: James Daniels Date: Wed, 22 May 2019 15:15:33 -0700 Subject: [PATCH 16/16] Fix the node test and clean up build output --- src/schematics/ng-add.spec.ts | 6 +++--- tools/build.js | 27 +++++++++++---------------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/schematics/ng-add.spec.ts b/src/schematics/ng-add.spec.ts index eb213bc2c..dcb2c6753 100644 --- a/src/schematics/ng-add.spec.ts +++ b/src/schematics/ng-add.spec.ts @@ -52,7 +52,7 @@ describe("ng-add", () => { project: "" }) ).toThrowError( - /No project selected and no default project in the workspace/ + /No Angular project selected and no default project in the workspace/ ); }); @@ -84,7 +84,7 @@ describe("ng-add", () => { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }) - ).toThrowError(/Project is not defined in this workspace/); + ).toThrowError(/The specified Angular project is not defined in this workspace/); }); it("Should throw if specified project is not application", async () => { @@ -100,7 +100,7 @@ describe("ng-add", () => { firebaseProject: FIREBASE_PROJECT, project: PROJECT_NAME }) - ).toThrowError(/Deploy requires a project type of "application"/); + ).toThrowError(/Deploy requires an Angular project type of "application" in angular.json/); }); it("Should throw if app does not have architect configured", async () => { diff --git a/tools/build.js b/tools/build.js index 179f0d90f..a1ec20271 100644 --- a/tools/build.js +++ b/tools/build.js @@ -124,7 +124,7 @@ function spawnObservable(command, args) { const cmd = spawn(command, args); observer.next(''); // hack to kick things off, not every command will have a stdout cmd.stdout.on('data', (data) => { observer.next(data.toString('utf8')); }); - cmd.stderr.on('data', (data) => { console.log(data); observer.error(data.toString('utf8')); }); + cmd.stderr.on('data', (data) => { observer.error(data.toString('utf8')); }); cmd.on('close', (data) => { observer.complete(); }); }); } @@ -138,7 +138,7 @@ function generateBundle(input, { file, globals, name }) { // Supress Typescript this warning // https://github.com/rollup/rollup/wiki/Troubleshooting#this-is-undefined if (warning.code !== 'THIS_IS_UNDEFINED') { - console.log(warning.message); + console.warn(warning.message); } } }).then(bundle => @@ -298,7 +298,6 @@ function getVersions() { function verifyVersions() { const versions = getVersions(); - console.log(versions); versions.map(version => { if(version !== pkg.version) { throw new Error('Versions mistmatch'); @@ -363,21 +362,17 @@ function buildLibrary(globals) { const messagingStats = measure('messaging'); const dbdepStats = measure('database-deprecated'); console.log(` - core.umd.js - ${coreStats.size}, ${coreStats.gzip} - auth.umd.js - ${authStats.size}, ${authStats.gzip} - database.umd.js - ${dbStats.size}, ${dbStats.gzip} - firestore.umd.js - ${fsStats.size}, ${fsStats.gzip} - functions.umd.js - ${functionsStats.size}, ${functionsStats.gzip} - storage.umd.js - ${storageStats.size}, ${storageStats.gzip} - messaging.umd.js - ${messagingStats.size}, ${messagingStats.gzip} - database-deprecated.umd.js - ${dbdepStats.size}, ${dbdepStats.gzip} +core.umd.js - ${coreStats.size}, ${coreStats.gzip} +auth.umd.js - ${authStats.size}, ${authStats.gzip} +database.umd.js - ${dbStats.size}, ${dbStats.gzip} +firestore.umd.js - ${fsStats.size}, ${fsStats.gzip} +functions.umd.js - ${functionsStats.size}, ${functionsStats.gzip} +storage.umd.js - ${storageStats.size}, ${storageStats.gzip} +messaging.umd.js - ${messagingStats.size}, ${messagingStats.gzip} +database-deprecated.umd.js - ${dbdepStats.size}, ${dbdepStats.gzip} `); verifyVersions(); })); } -buildLibrary(GLOBALS).subscribe( - data => { console.log('data', data) }, - err => { console.log('err', err) }, - () => { console.log('complete') } -); +buildLibrary(GLOBALS).subscribe(() => { }, err => { console.error(err) }); \ No newline at end of file