From 6c02464fa6569e3ecf1bd1ce931e02920cc5e2aa Mon Sep 17 00:00:00 2001 From: mrmeku Date: Tue, 1 Oct 2019 15:56:41 -0600 Subject: [PATCH] feat(vscode): Integrate with vscode-ui (#839) --- angular.json | 105 +- .../src/app/app.component.html | 4 +- apps/angular-console/src/app/app.component.ts | 10 +- apps/angular-console/src/app/app.module.ts | 16 +- apps/vscode-ui/src/app/app.component.html | 1 - apps/vscode-ui/src/app/app.component.scss | 0 apps/vscode-ui/src/app/app.component.spec.ts | 18 - apps/vscode-ui/src/app/app.component.ts | 10 - apps/vscode-ui/src/app/app.module.ts | 12 +- .../src/environments/environment.prod.ts | 3 +- .../vscode-ui/src/environments/environment.ts | 274 +- apps/vscode-ui/src/index.html | 14 +- apps/vscode-ui/src/main.ts | 1 + apps/vscode-ui/src/polyfills.ts | 62 - apps/vscode-ui/src/styles.prod.scss | 1 + apps/vscode-ui/src/styles.scss | 1 + apps/vscode-ui/tsconfig.app.json | 6 + apps/vscode-ui/tslint.json | 4 +- apps/vscode/src/app/legacy-webview.ts | 146 + .../src/app/ng-task/ng-task-definition.ts | 1 + apps/vscode/src/app/ng-task/ng-task.ts | 1 + apps/vscode/src/app/start-server.ts | 2 +- apps/vscode/src/app/webview.ts | 132 +- .../get-task-execution-schema.ts | 149 + .../app/workspace-tree/workspace-tree-item.ts | 221 +- .../workspace-tree/workspace-tree-provider.ts | 15 +- apps/vscode/src/assets/angular-console.png | Bin 0 -> 53972 bytes apps/vscode/src/main.ts | 47 +- jest.config.js | 1 + libs/feature-extensions/src/index.ts | 1 - .../lib/extension/extension.component.html | 23 - .../lib/extension/extension.component.scss | 18 - .../src/lib/extension/extension.component.ts | 144 - .../lib/extensions/extensions.component.html | 7 - .../lib/extensions/extensions.component.ts | 137 - .../src/lib/feature-extensions.module.ts | 46 - .../src/lib/generated/graphql.ts | 168 - .../src/lib/graphql/ng-add.graphql | 5 - .../workspace-and-extensions-by-name.graphql | 12 - .../graphql/workspace-and-extensions.graphql | 11 - libs/feature-extensions/tsconfig.json | 6 - libs/feature-extensions/tsconfig.lib.json | 27 - libs/feature-extensions/tslint.json | 7 - libs/feature-generate/src/index.ts | 3 - .../src/lib/feature-generate.module.ts | 40 - .../src/lib/generated/graphql.ts | 323 -- .../lib/graphql/generate-using-npm.graphql | 5 - .../src/lib/graphql/generate.graphql | 5 - .../schematic-collections-by-name.graphql | 26 - .../src/lib/graphql/schematic-docs.graphql | 11 - .../graphql/schematics-collections.graphql | 12 - .../lib/schematic/schematic.component.html | 29 - .../lib/schematic/schematic.component.scss | 3 - .../src/lib/schematic/schematic.component.ts | 311 -- .../lib/schematics/schematics.component.html | 7 - .../lib/schematics/schematics.component.ts | 147 - libs/feature-generate/tsconfig.json | 6 - libs/feature-generate/tsconfig.lib.json | 28 - libs/feature-generate/tslint.json | 7 - libs/feature-install-node-js/src/index.ts | 1 - .../src/lib/feature-install-node-js.module.ts | 17 - .../src/lib/generated/graphql.ts | 54 - .../lib/graphql/is-nodejs-installed.graphql | 5 - .../src/lib/install-node-js.component.html | 43 - .../src/lib/install-node-js.component.scss | 59 - .../src/lib/install-node-js.component.ts | 40 - libs/feature-install-node-js/tsconfig.json | 6 - .../feature-install-node-js/tsconfig.lib.json | 27 - libs/feature-install-node-js/tslint.json | 7 - libs/feature-run/src/index.ts | 3 - .../feature-run/src/lib/feature-run.module.ts | 42 - libs/feature-run/src/lib/generated/graphql.ts | 439 --- .../src/lib/graphql/npm-run.graphql | 5 - .../src/lib/graphql/npm-scripts.graphql | 17 - .../src/lib/graphql/projects.graphql | 35 - .../src/lib/graphql/run-ng.graphql | 5 - .../src/lib/graphql/schematic-docs.graphql | 11 - .../graphql/workspace-and-projects.graphql | 17 - .../src/lib/npmscript/npmscript.component.css | 3 - .../lib/npmscript/npmscript.component.html | 20 - .../src/lib/npmscript/npmscript.component.ts | 155 - .../src/lib/target/target.component.css | 3 - .../src/lib/target/target.component.html | 48 - .../src/lib/target/target.component.ts | 207 -- .../src/lib/targets/targets.component.html | 7 - .../src/lib/targets/targets.component.ts | 186 - libs/feature-run/tsconfig.json | 6 - libs/feature-run/tsconfig.lib.json | 27 - libs/feature-run/tslint.json | 7 - libs/feature-settings/src/index.ts | 1 - .../src/lib/feature-settings.module.ts | 36 - .../src/lib/generated/graphql.ts | 1 - .../src/lib/settings/settings.component.html | 69 - .../src/lib/settings/settings.component.scss | 36 - .../src/lib/settings/settings.component.ts | 49 - libs/feature-settings/tsconfig.json | 6 - libs/feature-settings/tsconfig.lib.json | 27 - libs/feature-settings/tslint.json | 17 - .../src/lib/feature-workspaces.module.ts | 63 +- .../filter-menu/filter-menu.component.html | 30 - .../filter-menu/filter-menu.component.scss | 34 - .../filter-menu/filter-menu.component.ts | 19 - .../src/lib/projects/projects.component.html | 114 - .../src/lib/projects/projects.component.scss | 165 - .../src/lib/projects/projects.component.ts | 276 -- .../src/lib/projects/projects.constants.ts | 81 - .../lib/workspace/workspace.component.html | 6 +- .../src/lib/workspace/workspace.component.ts | 16 - libs/server/src/index.ts | 2 + libs/server/src/lib/api/read-projects.ts | 64 +- .../src/lib/checkbox/checkbox.component.html | 10 +- .../src/lib/checkbox/checkbox.component.scss | 15 +- .../src/lib/field/field.component.html | 59 +- .../src/lib/field/field.component.scss | 3 + .../src/lib/field/field.component.ts | 1 + .../feature-task-execution-form/src/index.ts | 5 + .../src/lib/mock-component-architect.ts | 256 -- .../lib/task-execution-form.component.html | 52 +- .../lib/task-execution-form.component.scss | 35 +- .../src/lib/task-execution-form.component.ts | 102 +- .../src/lib/task-execution-form.schema.ts | 20 + ...e-ui-feature-task-execution-form.module.ts | 23 +- .../feature-task-execution-form/tslint.json | 4 +- libs/vscode-ui/styles/src/index.ts | 1 - libs/vscode-ui/styles/src/lib/_flex.scss | 75 + .../styles/src/lib/vscode-ui-styles.module.ts | 7 - nx.json | 15 - package-scripts.js | 9 +- tsconfig.json | 16 +- yarn.lock | 3269 +++++++++-------- 130 files changed, 2814 insertions(+), 6609 deletions(-) delete mode 100644 apps/vscode-ui/src/app/app.component.html delete mode 100644 apps/vscode-ui/src/app/app.component.scss delete mode 100644 apps/vscode-ui/src/app/app.component.spec.ts delete mode 100644 apps/vscode-ui/src/app/app.component.ts delete mode 100644 apps/vscode-ui/src/polyfills.ts create mode 100644 apps/vscode-ui/src/styles.prod.scss create mode 100644 apps/vscode/src/app/legacy-webview.ts create mode 100644 apps/vscode/src/app/workspace-tree/get-task-execution-schema.ts create mode 100644 apps/vscode/src/assets/angular-console.png delete mode 100644 libs/feature-extensions/src/index.ts delete mode 100644 libs/feature-extensions/src/lib/extension/extension.component.html delete mode 100644 libs/feature-extensions/src/lib/extension/extension.component.scss delete mode 100644 libs/feature-extensions/src/lib/extension/extension.component.ts delete mode 100644 libs/feature-extensions/src/lib/extensions/extensions.component.html delete mode 100644 libs/feature-extensions/src/lib/extensions/extensions.component.ts delete mode 100644 libs/feature-extensions/src/lib/feature-extensions.module.ts delete mode 100644 libs/feature-extensions/src/lib/generated/graphql.ts delete mode 100644 libs/feature-extensions/src/lib/graphql/ng-add.graphql delete mode 100644 libs/feature-extensions/src/lib/graphql/workspace-and-extensions-by-name.graphql delete mode 100644 libs/feature-extensions/src/lib/graphql/workspace-and-extensions.graphql delete mode 100644 libs/feature-extensions/tsconfig.json delete mode 100644 libs/feature-extensions/tsconfig.lib.json delete mode 100644 libs/feature-extensions/tslint.json delete mode 100644 libs/feature-generate/src/index.ts delete mode 100644 libs/feature-generate/src/lib/feature-generate.module.ts delete mode 100644 libs/feature-generate/src/lib/generated/graphql.ts delete mode 100644 libs/feature-generate/src/lib/graphql/generate-using-npm.graphql delete mode 100644 libs/feature-generate/src/lib/graphql/generate.graphql delete mode 100644 libs/feature-generate/src/lib/graphql/schematic-collections-by-name.graphql delete mode 100644 libs/feature-generate/src/lib/graphql/schematic-docs.graphql delete mode 100644 libs/feature-generate/src/lib/graphql/schematics-collections.graphql delete mode 100644 libs/feature-generate/src/lib/schematic/schematic.component.html delete mode 100644 libs/feature-generate/src/lib/schematic/schematic.component.scss delete mode 100644 libs/feature-generate/src/lib/schematic/schematic.component.ts delete mode 100644 libs/feature-generate/src/lib/schematics/schematics.component.html delete mode 100644 libs/feature-generate/src/lib/schematics/schematics.component.ts delete mode 100644 libs/feature-generate/tsconfig.json delete mode 100644 libs/feature-generate/tsconfig.lib.json delete mode 100644 libs/feature-generate/tslint.json delete mode 100644 libs/feature-install-node-js/src/index.ts delete mode 100644 libs/feature-install-node-js/src/lib/feature-install-node-js.module.ts delete mode 100644 libs/feature-install-node-js/src/lib/generated/graphql.ts delete mode 100644 libs/feature-install-node-js/src/lib/graphql/is-nodejs-installed.graphql delete mode 100644 libs/feature-install-node-js/src/lib/install-node-js.component.html delete mode 100644 libs/feature-install-node-js/src/lib/install-node-js.component.scss delete mode 100644 libs/feature-install-node-js/src/lib/install-node-js.component.ts delete mode 100644 libs/feature-install-node-js/tsconfig.json delete mode 100644 libs/feature-install-node-js/tsconfig.lib.json delete mode 100644 libs/feature-install-node-js/tslint.json delete mode 100644 libs/feature-run/src/index.ts delete mode 100644 libs/feature-run/src/lib/feature-run.module.ts delete mode 100644 libs/feature-run/src/lib/generated/graphql.ts delete mode 100644 libs/feature-run/src/lib/graphql/npm-run.graphql delete mode 100644 libs/feature-run/src/lib/graphql/npm-scripts.graphql delete mode 100644 libs/feature-run/src/lib/graphql/projects.graphql delete mode 100644 libs/feature-run/src/lib/graphql/run-ng.graphql delete mode 100644 libs/feature-run/src/lib/graphql/schematic-docs.graphql delete mode 100644 libs/feature-run/src/lib/graphql/workspace-and-projects.graphql delete mode 100644 libs/feature-run/src/lib/npmscript/npmscript.component.css delete mode 100644 libs/feature-run/src/lib/npmscript/npmscript.component.html delete mode 100644 libs/feature-run/src/lib/npmscript/npmscript.component.ts delete mode 100644 libs/feature-run/src/lib/target/target.component.css delete mode 100644 libs/feature-run/src/lib/target/target.component.html delete mode 100644 libs/feature-run/src/lib/target/target.component.ts delete mode 100644 libs/feature-run/src/lib/targets/targets.component.html delete mode 100644 libs/feature-run/src/lib/targets/targets.component.ts delete mode 100644 libs/feature-run/tsconfig.json delete mode 100644 libs/feature-run/tsconfig.lib.json delete mode 100644 libs/feature-run/tslint.json delete mode 100644 libs/feature-settings/src/index.ts delete mode 100644 libs/feature-settings/src/lib/feature-settings.module.ts delete mode 100644 libs/feature-settings/src/lib/generated/graphql.ts delete mode 100644 libs/feature-settings/src/lib/settings/settings.component.html delete mode 100644 libs/feature-settings/src/lib/settings/settings.component.scss delete mode 100644 libs/feature-settings/src/lib/settings/settings.component.ts delete mode 100644 libs/feature-settings/tsconfig.json delete mode 100644 libs/feature-settings/tsconfig.lib.json delete mode 100644 libs/feature-settings/tslint.json delete mode 100644 libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.html delete mode 100644 libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.scss delete mode 100644 libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.ts delete mode 100644 libs/feature-workspaces/src/lib/projects/projects.component.html delete mode 100644 libs/feature-workspaces/src/lib/projects/projects.component.scss delete mode 100644 libs/feature-workspaces/src/lib/projects/projects.component.ts delete mode 100644 libs/feature-workspaces/src/lib/projects/projects.constants.ts create mode 100644 libs/vscode-ui/components/src/lib/field/field.component.scss delete mode 100644 libs/vscode-ui/feature-task-execution-form/src/lib/mock-component-architect.ts create mode 100644 libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.schema.ts delete mode 100644 libs/vscode-ui/styles/src/index.ts create mode 100644 libs/vscode-ui/styles/src/lib/_flex.scss delete mode 100644 libs/vscode-ui/styles/src/lib/vscode-ui-styles.module.ts diff --git a/angular.json b/angular.json index a35cd09489..636a3e0b7a 100644 --- a/angular.json +++ b/angular.json @@ -41,7 +41,7 @@ "with": "apps/angular-console/src/environments/environment.vscode.ts" } ], - "outputPath": "dist/apps/vscode/assets/public" + "outputPath": "dist/apps/vscode/assets/legacy" }, "intellij": { "fileReplacements": [ @@ -220,76 +220,6 @@ } } }, - "feature-extensions": { - "root": "libs/feature-extensions", - "sourceRoot": "libs/feature-extensions/src", - "projectType": "library", - "architect": { - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": ["libs/feature-extensions/tsconfig.lib.json"], - "exclude": ["**/node_modules/**", "**/generated/**"] - } - } - } - }, - "feature-generate": { - "root": "libs/feature-generate", - "sourceRoot": "libs/feature-generate/src", - "projectType": "library", - "architect": { - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": ["libs/feature-generate/tsconfig.lib.json"], - "exclude": ["**/node_modules/**", "**/generated/**"] - } - } - } - }, - "feature-install-node-js": { - "root": "libs/feature-install-node-js", - "sourceRoot": "libs/feature-install-node-js/src", - "projectType": "library", - "architect": { - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": ["libs/feature-install-node-js/tsconfig.lib.json"], - "exclude": ["**/node_modules/**", "**/generated/**"] - } - } - } - }, - "feature-run": { - "root": "libs/feature-run", - "sourceRoot": "libs/feature-run/src", - "projectType": "library", - "architect": { - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": ["libs/feature-run/tsconfig.lib.json"], - "exclude": ["**/node_modules/**", "**/generated/**"] - } - } - } - }, - "feature-settings": { - "root": "libs/feature-settings", - "sourceRoot": "libs/feature-settings/src", - "projectType": "library", - "architect": { - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": ["libs/feature-settings/tsconfig.lib.json"], - "exclude": ["**/node_modules/**", "**/generated/**"] - } - } - } - }, "feature-workspaces": { "root": "libs/feature-workspaces", "sourceRoot": "libs/feature-workspaces/src", @@ -413,43 +343,38 @@ "build": { "builder": "@angular-devkit/build-angular:browser", "options": { - "outputPath": "dist/apps/vscode-ui", + "outputPath": "dist/apps/vscode/assets/public", "index": "apps/vscode-ui/src/index.html", "main": "apps/vscode-ui/src/main.ts", - "polyfills": "apps/vscode-ui/src/polyfills.ts", "tsConfig": "apps/vscode-ui/tsconfig.app.json", "assets": [ "apps/vscode-ui/src/favicon.ico", "apps/vscode-ui/src/assets" ], "styles": ["apps/vscode-ui/src/styles.scss"], - "scripts": [], + "extractCss": true, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false, "stylePreprocessorOptions": { "includePaths": ["libs/vscode-ui/styles/src/lib"] - } + }, + "es5BrowserSupport": false }, "configurations": { "production": { + "sourceMap": false, + "aot": true, + "optimization": true, + "buildOptimizer": true, "fileReplacements": [ { "replace": "apps/vscode-ui/src/environments/environment.ts", "with": "apps/vscode-ui/src/environments/environment.prod.ts" - } - ], - "optimization": true, - "outputHashing": "all", - "sourceMap": false, - "extractCss": true, - "namedChunks": false, - "aot": true, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, - "budgets": [ + }, { - "type": "initial", - "maximumWarning": "2mb", - "maximumError": "5mb" + "replace": "apps/vscode-ui/src/styles.scss", + "with": "apps/vscode-ui/src/styles.prod.scss" } ] } diff --git a/apps/angular-console/src/app/app.component.html b/apps/angular-console/src/app/app.component.html index cf51db8808..95082eb61f 100644 --- a/apps/angular-console/src/app/app.component.html +++ b/apps/angular-console/src/app/app.component.html @@ -4,9 +4,7 @@ > -
+
- -
diff --git a/apps/angular-console/src/app/app.component.ts b/apps/angular-console/src/app/app.component.ts index 40282ad580..e4b0871afe 100644 --- a/apps/angular-console/src/app/app.component.ts +++ b/apps/angular-console/src/app/app.component.ts @@ -1,6 +1,4 @@ -import { FADE_IN } from '@angular-console/ui'; import { Settings } from '@angular-console/utils'; -import { transition, trigger } from '@angular/animations'; import { ChangeDetectionStrategy, Component, @@ -23,13 +21,7 @@ const TITLE_SEPARATOR = ' | '; selector: 'angular-console-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - animations: [ - trigger('routerTransition', [ - transition('void => *', []), - transition(`* => *`, FADE_IN) - ]) - ] + changeDetection: ChangeDetectionStrategy.OnPush }) export class AppComponent implements OnInit, OnDestroy { @ViewChild(RouterOutlet, { static: true }) routerOutlet: RouterOutlet; diff --git a/apps/angular-console/src/app/app.module.ts b/apps/angular-console/src/app/app.module.ts index 98602f2d2c..d86cf4333a 100644 --- a/apps/angular-console/src/app/app.module.ts +++ b/apps/angular-console/src/app/app.module.ts @@ -4,7 +4,6 @@ import { IS_INTELLIJ, IS_VSCODE } from '@angular-console/environment'; -import { FeatureSettingsModule } from '@angular-console/feature-settings'; import { FeatureWorkspacesModule, workspaceRoutes @@ -76,7 +75,7 @@ export function initApollo( @NgModule({ declarations: [AppComponent], imports: [ - FeatureSettingsModule, + UiModule, MatSidenavModule, MatListModule, MatIconModule, @@ -88,22 +87,13 @@ export function initApollo( HttpLinkModule, HttpClientModule, FeatureWorkspacesModule, - UiModule, AngularConsoleEnterpriseFrontendModule.forRoot(), RouterModule.forRoot( [ - { path: '', pathMatch: 'full', redirectTo: '/workspaces' }, { path: '', - children: workspaceRoutes, - canActivateChild: [IsNodeJsInstalledGuard] - }, - { - path: 'install-nodejs', - loadChildren: - '@angular-console/feature-install-node-js#FeatureInstallNodeJsModule' - }, - { path: '**', redirectTo: '/workspaces' } + children: workspaceRoutes + } ], { paramsInheritanceStrategy: 'always' } ) diff --git a/apps/vscode-ui/src/app/app.component.html b/apps/vscode-ui/src/app/app.component.html deleted file mode 100644 index 5c9f2a3c87..0000000000 --- a/apps/vscode-ui/src/app/app.component.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/apps/vscode-ui/src/app/app.component.scss b/apps/vscode-ui/src/app/app.component.scss deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/apps/vscode-ui/src/app/app.component.spec.ts b/apps/vscode-ui/src/app/app.component.spec.ts deleted file mode 100644 index 8325b46d22..0000000000 --- a/apps/vscode-ui/src/app/app.component.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { TestBed, async } from '@angular/core/testing'; -import { AppComponent } from './app.component'; -import { VscodeUiFeatureTaskExecutionFormModule } from '@angular-console/vscode-ui/feature-task-execution-form'; - -describe('AppComponent', () => { - beforeEach(async(() => { - TestBed.configureTestingModule({ - imports: [VscodeUiFeatureTaskExecutionFormModule], - declarations: [AppComponent] - }).compileComponents(); - })); - - it('should create the app', () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.debugElement.componentInstance; - expect(app).toBeTruthy(); - }); -}); diff --git a/apps/vscode-ui/src/app/app.component.ts b/apps/vscode-ui/src/app/app.component.ts deleted file mode 100644 index b2375304a2..0000000000 --- a/apps/vscode-ui/src/app/app.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'angular-console-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'] -}) -export class AppComponent { - title = 'vscode-ui'; -} diff --git a/apps/vscode-ui/src/app/app.module.ts b/apps/vscode-ui/src/app/app.module.ts index 9023cf4250..81bd2ad027 100644 --- a/apps/vscode-ui/src/app/app.module.ts +++ b/apps/vscode-ui/src/app/app.module.ts @@ -1,13 +1,15 @@ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; -import { AppComponent } from './app.component'; -import { VscodeUiFeatureTaskExecutionFormModule } from '@angular-console/vscode-ui/feature-task-execution-form'; +import { + VscodeUiFeatureTaskExecutionFormModule, + TaskExecutionFormComponent +} from '@angular-console/vscode-ui/feature-task-execution-form'; +import { environment } from '../environments/environment'; @NgModule({ - declarations: [AppComponent], imports: [BrowserModule, VscodeUiFeatureTaskExecutionFormModule], - providers: [], - bootstrap: [AppComponent] + providers: [...environment.providers], + bootstrap: [TaskExecutionFormComponent] }) export class AppModule {} diff --git a/apps/vscode-ui/src/environments/environment.prod.ts b/apps/vscode-ui/src/environments/environment.prod.ts index 3612073bc3..644fd4a809 100644 --- a/apps/vscode-ui/src/environments/environment.prod.ts +++ b/apps/vscode-ui/src/environments/environment.prod.ts @@ -1,3 +1,4 @@ export const environment = { - production: true + production: true, + providers: [] }; diff --git a/apps/vscode-ui/src/environments/environment.ts b/apps/vscode-ui/src/environments/environment.ts index 7b4f817adb..f1f0a00d52 100644 --- a/apps/vscode-ui/src/environments/environment.ts +++ b/apps/vscode-ui/src/environments/environment.ts @@ -1,16 +1,270 @@ +import { TASK_EXECUTION_SCHEMA } from '@angular-console/vscode-ui/feature-task-execution-form'; + // This file can be replaced during build by using the `fileReplacements` array. // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. // The list of file replacements can be found in `angular.json`. -export const environment = { - production: false +export const MOCK_COMPONENT_ARCHITECT = { + name: 'Component', + project: 'Project', + builder: 'Builder', + description: 'Description', + options: { defaultValues: [] }, + configurations: [], + schema: [ + { + name: 'inlineStyle', + enum: null, + type: 'boolean', + description: + 'When true, includes styles inline in the component.ts file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the component.ts file.', + defaultValue: false, + required: false, + positional: false, + __typename: 'Schema', + important: false + }, + { + name: 'inlineTemplate', + enum: null, + type: 'boolean', + description: + 'When true, includes template inline in the component.ts file. By default, an external template file is created and referenced in the component.ts file.', + defaultValue: false, + required: false, + positional: false, + __typename: 'Schema', + important: false + }, + { + name: 'viewEncapsulation', + enum: ['Emulated', 'Native', 'None', 'ShadowDom'], + type: 'enum', + description: + 'The view encapsulation strategy to use in the new component.', + defaultValue: null, + required: false, + positional: false, + __typename: 'Schema', + important: false, + completionValues: { + _isScalar: false, + source: { + source: { + _isScalar: false, + source: { + _isScalar: false, + source: { _isScalar: false }, + operator: { concurrent: 1 } + }, + operator: {} + } + }, + operator: { + connectable: { + source: { + _isScalar: false, + source: { + _isScalar: false, + source: { _isScalar: false }, + operator: { concurrent: 1 } + }, + operator: {} + } + } + } + } + }, + { + name: 'changeDetection', + enum: ['Default', 'OnPush'], + type: 'string', + description: 'The change detection strategy to use in the new component.', + defaultValue: 'Default', + required: false, + positional: false, + __typename: 'Schema', + important: false, + completionValues: { + _isScalar: false, + source: { + source: { + _isScalar: false, + source: { + _isScalar: false, + source: { _isScalar: false }, + operator: { concurrent: 1 } + }, + operator: {} + } + }, + operator: { + connectable: { + source: { + _isScalar: false, + source: { + _isScalar: false, + source: { _isScalar: false }, + operator: { concurrent: 1 } + }, + operator: {} + } + } + } + } + }, + { + name: 'prefix', + enum: null, + type: 'string', + description: 'The prefix to apply to the generated component selector.', + defaultValue: null, + required: false, + positional: false, + __typename: 'Schema', + important: false + }, + { + name: 'styleext', + enum: null, + type: 'string', + description: 'The file extension to use for style files.', + defaultValue: 'css', + required: false, + positional: false, + __typename: 'Schema', + important: false + }, + { + name: 'style', + enum: ['css', 'scss', 'sass', 'less', 'styl'], + type: 'string', + description: 'The file extension or preprocessor to use for style files.', + defaultValue: 'css', + required: false, + positional: false, + __typename: 'Schema', + important: false, + completionValues: { + _isScalar: false, + source: { + source: { + _isScalar: false, + source: { + _isScalar: false, + source: { _isScalar: false }, + operator: { concurrent: 1 } + }, + operator: {} + } + }, + operator: { + connectable: { + source: { + _isScalar: false, + source: { + _isScalar: false, + source: { _isScalar: false }, + operator: { concurrent: 1 } + }, + operator: {} + } + } + } + } + }, + { + name: 'spec', + enum: null, + type: 'boolean', + description: + 'When true (the default), generates a "spec.ts" test file for the new component.', + defaultValue: true, + required: false, + positional: false, + __typename: 'Schema', + important: false + }, + { + name: 'skipTests', + enum: null, + type: 'boolean', + description: + 'When true, does not create "spec.ts" test files for the new component.', + defaultValue: false, + required: false, + positional: false, + __typename: 'Schema', + important: false + }, + { + name: 'flat', + enum: null, + type: 'boolean', + description: + 'When true, creates the new files at the top level of the current project.', + defaultValue: false, + required: false, + positional: false, + __typename: 'Schema', + important: false + }, + { + name: 'skipImport', + enum: null, + type: 'boolean', + description: + 'When true, does not import this component into the owning NgModule.', + defaultValue: false, + required: false, + positional: false, + __typename: 'Schema', + important: false + }, + { + name: 'selector', + enum: null, + type: 'string', + description: 'The HTML selector to use for this component.', + defaultValue: null, + required: false, + positional: false, + __typename: 'Schema', + important: false + }, + { + name: 'entryComponent', + enum: null, + type: 'boolean', + description: + 'When true, the new component is the entry component of the declaring NgModule.', + defaultValue: false, + required: false, + positional: false, + __typename: 'Schema', + important: false + }, + { + name: 'lintFix', + enum: null, + type: 'boolean', + description: + 'When true, applies lint fixes after generating the component.', + defaultValue: false, + required: false, + positional: false, + __typename: 'Schema', + important: false + } + ] }; -/* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. - * - * This import should be commented out in production mode because it will have a negative impact - * on performance if an error is thrown. - */ -// import 'zone.js/dist/zone-error'; // Included with Angular CLI. +export const environment = { + production: false, + providers: [ + { + provide: TASK_EXECUTION_SCHEMA, + useValue: MOCK_COMPONENT_ARCHITECT + } + ] +}; diff --git a/apps/vscode-ui/src/index.html b/apps/vscode-ui/src/index.html index 1fd4f04a4f..a597175d5b 100644 --- a/apps/vscode-ui/src/index.html +++ b/apps/vscode-ui/src/index.html @@ -7,8 +7,20 @@ + + - + diff --git a/apps/vscode-ui/src/main.ts b/apps/vscode-ui/src/main.ts index fa4e0aef33..6c98870820 100644 --- a/apps/vscode-ui/src/main.ts +++ b/apps/vscode-ui/src/main.ts @@ -3,6 +3,7 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; +import 'zone.js/dist/zone'; if (environment.production) { enableProdMode(); diff --git a/apps/vscode-ui/src/polyfills.ts b/apps/vscode-ui/src/polyfills.ts deleted file mode 100644 index 2f258e56c6..0000000000 --- a/apps/vscode-ui/src/polyfills.ts +++ /dev/null @@ -1,62 +0,0 @@ -/** - * This file includes polyfills needed by Angular and is loaded before the app. - * You can add your own extra polyfills to this file. - * - * This file is divided into 2 sections: - * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. - * 2. Application imports. Files imported after ZoneJS that should be loaded before your main - * file. - * - * The current setup is for so-called "evergreen" browsers; the last versions of browsers that - * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), - * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. - * - * Learn more in https://angular.io/guide/browser-support - */ - -/*************************************************************************************************** - * BROWSER POLYFILLS - */ - -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ -// import 'classlist.js'; // Run `npm install --save classlist.js`. - -/** - * Web Animations `@angular/platform-browser/animations` - * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. - * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). - */ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. - -/** - * By default, zone.js will patch all possible macroTask and DomEvents - * user can disable parts of macroTask/DomEvents patch by setting following flags - * because those flags need to be set before `zone.js` being loaded, and webpack - * will put import in the top of bundle, so user need to create a separate file - * in this directory (for example: zone-flags.ts), and put the following flags - * into that file, and then add the following code before importing zone.js. - * import './zone-flags.ts'; - * - * The flags allowed in zone-flags.ts are listed here. - * - * The following flags will work for all browsers. - * - * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame - * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick - * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames - * - * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js - * with the following flag, it will bypass `zone.js` patch for IE/Edge - * - * (window as any).__Zone_enable_cross_context_check = true; - * - */ - -/*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ -import 'zone.js/dist/zone'; // Included with Angular CLI. - -/*************************************************************************************************** - * APPLICATION IMPORTS - */ diff --git a/apps/vscode-ui/src/styles.prod.scss b/apps/vscode-ui/src/styles.prod.scss new file mode 100644 index 0000000000..1f293ff13d --- /dev/null +++ b/apps/vscode-ui/src/styles.prod.scss @@ -0,0 +1 @@ +@import 'flex'; diff --git a/apps/vscode-ui/src/styles.scss b/apps/vscode-ui/src/styles.scss index 10378a2611..efdc025481 100644 --- a/apps/vscode-ui/src/styles.scss +++ b/apps/vscode-ui/src/styles.scss @@ -1,6 +1,7 @@ /* You can add global styles to this file, and also import other style files */ @import 'variables'; +@import 'styles.prod'; body { background-color: $bg-color; diff --git a/apps/vscode-ui/tsconfig.app.json b/apps/vscode-ui/tsconfig.app.json index 827b63017c..e5c2bce539 100644 --- a/apps/vscode-ui/tsconfig.app.json +++ b/apps/vscode-ui/tsconfig.app.json @@ -4,6 +4,12 @@ "outDir": "../../dist/out-tsc", "types": [] }, + "angularCompilerOptions": { + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true + }, "include": ["**/*.ts"], "exclude": ["src/test-setup.ts", "**/*.spec.ts"] } diff --git a/apps/vscode-ui/tslint.json b/apps/vscode-ui/tslint.json index 0874ae551f..4556266528 100644 --- a/apps/vscode-ui/tslint.json +++ b/apps/vscode-ui/tslint.json @@ -1,7 +1,7 @@ { "extends": "../../tslint.json", "rules": { - "directive-selector": [true, "attribute", "angularConsole", "camelCase"], - "component-selector": [true, "element", "angular-console", "kebab-case"] + "directive-selector": [true, "attribute", "vscodeUi", "camelCase"], + "component-selector": [true, "element", "vscode-ui", "kebab-case"] } } diff --git a/apps/vscode/src/app/legacy-webview.ts b/apps/vscode/src/app/legacy-webview.ts new file mode 100644 index 0000000000..90fa692ac3 --- /dev/null +++ b/apps/vscode/src/app/legacy-webview.ts @@ -0,0 +1,146 @@ +import { + ExtensionContext, + TreeView, + ViewColumn, + WebviewPanel, + window +} from 'vscode'; + +import { + WorkspaceRouteTitle, + WorkspaceTreeItem, + LegacyWorkspaceRouteTitle +} from './workspace-tree/workspace-tree-item'; + +let webviewPanel: WebviewPanel | undefined; + +interface RevealWebViewPanelConfig { + context: ExtensionContext; + port: number; + workspaceTreeItem: WorkspaceTreeItem; + workspaceTreeView: TreeView; +} + +export async function revealLegacyWebViewPanel({ + context, + port, + workspaceTreeItem, + workspaceTreeView +}: RevealWebViewPanelConfig) { + const { workspacePath, label } = workspaceTreeItem; + + const workspaceRoute = await getWorkspaceRoute( + workspacePath, + workspaceTreeItem.label as LegacyWorkspaceRouteTitle + ); + + if (!workspaceRoute) { + return; + } + + const webViewPanel = createWebViewPanel( + context, + ViewColumn.Active, + `http://localhost:${port}/`, + workspaceRoute, + label + ); + context.subscriptions.push(webViewPanel); + + webViewPanel.onDidChangeViewState(e => { + if (e.webviewPanel.visible) { + workspaceTreeItem.revealWorkspaceRoute(workspaceTreeView); + } + }); + + return webViewPanel; +} + +export function createWebViewPanel( + context: ExtensionContext, + viewColumn: ViewColumn, + serverUrl: string, + routePath: string, + route: WorkspaceRouteTitle | undefined +) { + const panelTitle = route || 'Angular Console'; + + if (webviewPanel) { + webviewPanel.title = panelTitle; + webviewPanel.webview.postMessage({ routePath }); + webviewPanel.reveal(); + } else { + webviewPanel = window.createWebviewPanel( + 'angular-console', // Identifies the type of the webview. Used internally + panelTitle, // Title of the panel displayed to the user + viewColumn, // Editor column to show the new webview panel in. + { + retainContextWhenHidden: true, + enableScripts: true + } + ); + + webviewPanel.webview.html = getIframeHtml(serverUrl, routePath); + } + + webviewPanel.onDidDispose(() => { + webviewPanel = undefined; + }); + + webviewPanel.iconPath = WorkspaceTreeItem.getIconUriForRoute( + context.extensionPath, + route + ); + + return webviewPanel; +} + +export function getIframeHtml(serverUrl: string, routePath: string) { + return ` + + + + + + + + + + + + + + + + + + + `; +} + +export async function getWorkspaceRoute( + workspacePath: string, + workspaceRouteTitle: LegacyWorkspaceRouteTitle +): Promise { + if (!workspacePath) { + return; + } + + switch (workspaceRouteTitle) { + case 'Connect': + return 'connect/support'; + case 'Dep-Graph': + return `workspace/${encodeURIComponent( + workspacePath + )}/connect/affected-projects`; + } +} diff --git a/apps/vscode/src/app/ng-task/ng-task-definition.ts b/apps/vscode/src/app/ng-task/ng-task-definition.ts index 22794a8370..0de0383280 100644 --- a/apps/vscode/src/app/ng-task/ng-task-definition.ts +++ b/apps/vscode/src/app/ng-task/ng-task-definition.ts @@ -6,6 +6,7 @@ export interface NgTaskDefinition { } export interface ArchitectDef { + builder: string; configurations?: { [configuration: string]: {}; }; diff --git a/apps/vscode/src/app/ng-task/ng-task.ts b/apps/vscode/src/app/ng-task/ng-task.ts index f609875f5a..6ad9b83d58 100644 --- a/apps/vscode/src/app/ng-task/ng-task.ts +++ b/apps/vscode/src/app/ng-task/ng-task.ts @@ -23,6 +23,7 @@ export class NgTask extends Task { case 'serve': case 'test': case 'xi18n': + case 'add': args = [architectName]; if (projectName) args.push(projectName); } diff --git a/apps/vscode/src/app/start-server.ts b/apps/vscode/src/app/start-server.ts index 08cdddaac8..0454d1454d 100644 --- a/apps/vscode/src/app/start-server.ts +++ b/apps/vscode/src/app/start-server.ts @@ -83,7 +83,7 @@ export async function startServer( 'showNotification' ]; - const assetsPath = path.join(context.extensionPath, 'assets', 'public'); + const assetsPath = path.join(context.extensionPath, 'assets', 'legacy'); const providers = [ { diff --git a/apps/vscode/src/app/webview.ts b/apps/vscode/src/app/webview.ts index 1b33d34941..e0142583d5 100644 --- a/apps/vscode/src/app/webview.ts +++ b/apps/vscode/src/app/webview.ts @@ -3,53 +3,52 @@ import { TreeView, ViewColumn, WebviewPanel, - window + window, + Uri } from 'vscode'; import { ProjectDef } from './ng-task/ng-task-definition'; -import { - getWorkspaceRoute, - WorkspaceRouteTitle, - WorkspaceTreeItem -} from './workspace-tree/workspace-tree-item'; +import { WorkspaceTreeItem } from './workspace-tree/workspace-tree-item'; +import { readFileSync } from 'fs'; +import { join } from 'path'; +import { TaskExecutionSchema } from '@angular-console/vscode-ui/feature-task-execution-form'; +import { getTaskExecutionSchema } from './workspace-tree/get-task-execution-schema'; let webviewPanel: WebviewPanel | undefined; +let indexHtml: string | undefined; interface RevealWebViewPanelConfig { context: ExtensionContext; - viewColumn: ViewColumn; - port: number; workspaceTreeItem: WorkspaceTreeItem; getProjectEntries(): [string, ProjectDef][]; workspaceTreeView: TreeView; + serverAddress: string; } export async function revealWebViewPanel({ context, - viewColumn, - port, getProjectEntries, workspaceTreeItem, - workspaceTreeView + workspaceTreeView, + serverAddress }: RevealWebViewPanelConfig) { const { workspacePath, projectName, label } = workspaceTreeItem; - const workspaceRoute = await getWorkspaceRoute( + const schema = await getTaskExecutionSchema( workspacePath, getProjectEntries, - workspaceTreeItem.label, + label, projectName ); - if (!workspaceRoute) { + if (!schema) { return; } const webViewPanel = createWebViewPanel( context, - viewColumn, - `http://localhost:${port}/`, - workspaceRoute, + schema, + serverAddress, label ); context.subscriptions.push(webViewPanel); @@ -65,71 +64,72 @@ export async function revealWebViewPanel({ export function createWebViewPanel( context: ExtensionContext, - viewColumn: ViewColumn, - serverUrl: string, - routePath: string, - route: WorkspaceRouteTitle | undefined + schema: TaskExecutionSchema, + serverAddress: string, + title: string ) { - const panelTitle = route || 'Angular Console'; - if (webviewPanel) { - webviewPanel.title = panelTitle; - webviewPanel.webview.postMessage({ routePath }); + webviewPanel.title = title; + webviewPanel.webview.postMessage({ taskExecutionSchema: schema }); webviewPanel.reveal(); } else { webviewPanel = window.createWebviewPanel( 'angular-console', // Identifies the type of the webview. Used internally - panelTitle, // Title of the panel displayed to the user - viewColumn, // Editor column to show the new webview panel in. + title, // Title of the panel displayed to the user + ViewColumn.Active, // Editor column to show the new webview panel in. { retainContextWhenHidden: true, enableScripts: true } ); + webviewPanel.onDidDispose(() => { + webviewPanel = undefined; + }); + webviewPanel.iconPath = Uri.file( + join(context.extensionPath, 'assets', 'angular-console.png') + ); - webviewPanel.webview.html = getIframeHtml(serverUrl, routePath); + webviewPanel.webview.html = getIframeHtml(context, schema, serverAddress); } - webviewPanel.onDidDispose(() => { - webviewPanel = undefined; - }); - - webviewPanel.iconPath = WorkspaceTreeItem.getIconUriForRoute( - context.extensionPath, - route - ); - return webviewPanel; } -export function getIframeHtml(serverUrl: string, routePath: string) { - return ` - - - - - - - - - - - - +export function getIframeHtml( + context: ExtensionContext, + schema: TaskExecutionSchema, + serverAddress: string +) { + if (!indexHtml) { + // Cache html and inline all styles and scripts. + indexHtml = readFileSync( + join(context.extensionPath, 'assets/public/index.html') + ) + .toString() + .replace( + '', + `` + ) + .replace( + '', + `` + ) + .replace( + '', + `` + ); + } - - - - - - `; + return indexHtml + .replace( + 'window.VSCODE_UI_SCHEMA = {};', + `window.VSCODE_UI_SCHEMA = ${JSON.stringify(schema)};` + ) + .replace('', ``); } diff --git a/apps/vscode/src/app/workspace-tree/get-task-execution-schema.ts b/apps/vscode/src/app/workspace-tree/get-task-execution-schema.ts new file mode 100644 index 0000000000..2daa783b96 --- /dev/null +++ b/apps/vscode/src/app/workspace-tree/get-task-execution-schema.ts @@ -0,0 +1,149 @@ +import { + readAllSchematicCollections, + readArchitectDef, + readSchema +} from '@angular-console/server'; +import { TaskExecutionSchema } from '@angular-console/vscode-ui/feature-task-execution-form'; +import { QuickPickItem, window } from 'vscode'; + +import { ArchitectDef, ProjectDef } from '../ng-task/ng-task-definition'; +import { WorkspaceRouteTitle } from './workspace-tree-item'; +import { Schematic } from '@angular-console/schema'; + +export class NgTaskQuickPickItem implements QuickPickItem { + constructor( + readonly projectName: string, + readonly architectDef: ArchitectDef, + readonly command: string, + readonly label: string + ) {} +} + +export async function getTaskExecutionSchema( + workspacePath: string, + getProjectEntries: () => [string, ProjectDef][], + workspaceRouteTitle: WorkspaceRouteTitle = 'Run', + projectName?: string +): Promise { + if (!workspacePath) { + return; + } + + const command = workspaceRouteTitle.toLowerCase(); + switch (workspaceRouteTitle) { + case 'Build': + case 'Deploy': + case 'E2e': + case 'Lint': + case 'Serve': + case 'Test': + case 'Xi18n': + const items = getProjectEntries() + .filter(([_, { architect }]) => Boolean(architect)) + .flatMap(([project, { architect }]) => ({ project, architect })) + .filter(({ architect }) => Boolean(architect && architect[command])) + .map( + ({ project, architect }) => + new NgTaskQuickPickItem( + project, + architect![command]!, + command, + project + ) + ); + + if (!items.length) { + window.showInformationMessage( + `None of your projects support ng ${command}` + ); + + return; + } + + let selectedArchitectDef: ArchitectDef | undefined; + if (!projectName) { + const selection = await window.showQuickPick(items); + if (!selection) return; + + projectName = selection.projectName; + selectedArchitectDef = selection.architectDef; + } else { + const projectDef = items.find(i => i.projectName === projectName); + if (projectDef) { + selectedArchitectDef = projectDef.architectDef; + } + } + + if (!projectName || !selectedArchitectDef) return; + + return { + ...readArchitectDef(command, selectedArchitectDef, projectName), + schema: readSchema(workspacePath, selectedArchitectDef.builder) + }; + + case 'Run': + const runnableItems = getProjectEntries() + .filter(([_, { architect }]) => Boolean(architect)) + .flatMap(([project, { architect }]) => ({ project, architect })) + .flatMap(({ project, architect }) => [ + ...Object.entries(architect!).map( + ([architectName, architectDef]) => ({ + project, + architectName, + architectDef + }) + ) + ]) + .map( + ({ project, architectName, architectDef }) => + new NgTaskQuickPickItem( + project, + architectDef, + architectName, + `${project}:${architectName}` + ) + ); + + return window.showQuickPick(runnableItems).then(selection => + selection + ? { + ...readArchitectDef( + command, + selection.command, + selection.projectName + ), + schema: readSchema(workspacePath, selection.architectDef.builder) + } + : undefined + ); + case 'Generate': + interface GenerateQuickPickItem extends QuickPickItem { + collectionName: string; + schematic: Schematic; + } + + const schematics = readAllSchematicCollections( + workspacePath, + 'tools/schematics', // TODO: Make these values auto detectable / configurable + 'workspace-schematic' // TODO: Make these values auto detectable / configurable + ) + .map( + (c): GenerateQuickPickItem[] => + c.schematics.map( + (s): GenerateQuickPickItem => ({ + description: s.description, + label: `${c.name} - ${s.name}`, + collectionName: c.name, + schematic: s + }) + ) + ) + .flat(); + + return window.showQuickPick(schematics).then(selection => { + if (selection) { + return selection.schematic; + } + }); + } +} diff --git a/apps/vscode/src/app/workspace-tree/workspace-tree-item.ts b/apps/vscode/src/app/workspace-tree/workspace-tree-item.ts index a190e59762..8143a9cde3 100644 --- a/apps/vscode/src/app/workspace-tree/workspace-tree-item.ts +++ b/apps/vscode/src/app/workspace-tree/workspace-tree-item.ts @@ -1,18 +1,5 @@ -import { - EXTENSIONS, - readAllSchematicCollections -} from '@angular-console/server'; import { join } from 'path'; -import { - QuickPickItem, - TreeItem, - TreeItemCollapsibleState, - TreeView, - Uri, - window -} from 'vscode'; - -import { ProjectDef } from '../ng-task/ng-task-definition'; +import { TreeItem, TreeItemCollapsibleState, TreeView, Uri } from 'vscode'; export type WorkspaceRouteTitle = | 'Add' @@ -25,11 +12,14 @@ export type WorkspaceRouteTitle = | 'Serve' | 'Test' | 'Xi18n' - | 'Dep-Graph' - | 'Connect' | 'Select angular.json'; -const ROUTE_TO_ICON_MAP = new Map([ +export type LegacyWorkspaceRouteTitle = 'Dep-Graph' | 'Connect'; + +const ROUTE_TO_ICON_MAP = new Map< + WorkspaceRouteTitle | LegacyWorkspaceRouteTitle | undefined, + string +>([ ['Add', 'angular-cli.svg'], ['Build', 'angular-cli.svg'], ['Deploy', 'angular-cli.svg'], @@ -55,18 +45,39 @@ export const ROUTE_LIST = [ 'Run', 'Serve', 'Test', - 'Xi18n', + 'Xi18n' +] as WorkspaceRouteTitle[]; + +export const LEGACY_ROUTE_LIST = [ 'Dep-Graph', 'Connect' -] as WorkspaceRouteTitle[]; +] as LegacyWorkspaceRouteTitle[]; export class WorkspaceTreeItem extends TreeItem { - revealWorkspaceRoute: RevealWorkspaceRoute = currentWorkspace => { - revealWorkspaceRouteIfVisible(currentWorkspace, this).then( - () => {}, - () => {} - ); // Explicitly handle rejection - }; + static createLegacyTreeItem( + workspacePath: string, + route: any, + extensionPath: string + ): WorkspaceTreeItem { + const item = new WorkspaceTreeItem(workspacePath, route, extensionPath); + item.command = { + title: route, + command: 'angularConsole.revealLegacyWebViewPanel', + tooltip: '', + arguments: [item] + }; + return item; + } + + revealWorkspaceRoute(currentWorkspace: TreeView) { + (currentWorkspace.visible + ? currentWorkspace.reveal(this, { + select: true, + focus: true + }) + : Promise.reject() + ).then(() => {}, () => {}); // Explicitly handle rejection + } command = { title: this.route, @@ -99,163 +110,3 @@ export class WorkspaceTreeItem extends TreeItem { return icon ? Uri.file(join(extensionPath, 'assets', icon)) : undefined; } } - -export type RevealWorkspaceRoute = ( - currentWorkspace: TreeView -) => void; - -export function revealWorkspaceRouteIfVisible( - treeView: TreeView, - item: WorkspaceTreeItem -): Thenable { - return treeView.visible - ? treeView.reveal(item, { - select: true, - focus: true - }) - : Promise.reject(); -} - -class NgTaskQuickPickItem implements QuickPickItem { - constructor( - readonly project: string, - readonly command: string, - readonly label: string - ) {} -} - -export async function getWorkspaceRoute( - workspacePath: string, - getProjectEntries: () => [string, ProjectDef][], - workspaceRouteTitle: WorkspaceRouteTitle = 'Run', - projectName?: string -): Promise { - if (!workspacePath) { - return; - } - - const command = workspaceRouteTitle.toLowerCase(); - switch (workspaceRouteTitle) { - case 'Build': - case 'Deploy': - case 'E2e': - case 'Lint': - case 'Serve': - case 'Test': - case 'Xi18n': - const items = getProjectEntries() - .filter(([_, { architect }]) => Boolean(architect)) - .flatMap(([project, { architect }]) => ({ project, architect })) - .filter(({ architect }) => Boolean(architect && architect[command])) - .map( - ({ project }) => new NgTaskQuickPickItem(project, command, project) - ); - - if (!items.length) { - window.showInformationMessage( - `None of your projects support ng ${command}` - ); - - return ''; - } - - if (!projectName) { - const selection = await window.showQuickPick(items); - if (!selection) return; - - projectName = selection.project; - } - - if (!projectName) return; - - return `workspace/${encodeURIComponent( - workspacePath - )}/projects/task/${command}/${projectName}`; - - case 'Run': - const runnableItems = getProjectEntries() - .filter(([_, { architect }]) => Boolean(architect)) - .flatMap(([project, { architect }]) => ({ project, architect })) - .flatMap(({ project, architect }) => [ - ...Object.keys(architect!).map(architectName => ({ - project, - architectName - })) - ]) - .map( - ({ project, architectName }) => - new NgTaskQuickPickItem( - project, - architectName, - `${project}:${architectName}` - ) - ); - - return window - .showQuickPick(runnableItems) - .then(selection => - selection - ? `workspace/${encodeURIComponent(workspacePath)}/projects/task/${ - selection.command - }/${selection.project}` - : '' - ); - case 'Connect': - return 'connect/support'; - case 'Dep-Graph': - return `workspace/${encodeURIComponent( - workspacePath - )}/connect/affected-projects`; - case 'Add': - const extensions = Object.entries(EXTENSIONS).map( - ([label, description]): QuickPickItem => ({ - label, - description - }) - ); - return window - .showQuickPick(extensions) - .then( - (selection): string => - `workspace/${encodeURIComponent(workspacePath)}/extensions${ - selection ? `/${encodeURIComponent(selection.label)}` : '' - }` - ); - case 'Generate': - interface GenerateQuickPickItem extends QuickPickItem { - collectionName: string; - schematicName: string; - } - - const schematics = readAllSchematicCollections( - workspacePath, - 'tools/schematics', // TODO: Make these values auto detectable / configurable - 'workspace-schematic' // TODO: Make these values auto detectable / configurable - ) - .map( - (c): GenerateQuickPickItem[] => - c.schematics.map( - (s): GenerateQuickPickItem => ({ - description: s.description, - label: `${c.name} - ${s.name}`, - collectionName: c.name, - schematicName: s.name - }) - ) - ) - .flat(); - - return window - .showQuickPick(schematics) - .then( - (selection): string => - `workspace/${encodeURIComponent(workspacePath)}/generate${ - selection - ? `/${encodeURIComponent( - selection.collectionName - )}/${encodeURIComponent(selection.schematicName)}` - : '' - }` - ); - } -} diff --git a/apps/vscode/src/app/workspace-tree/workspace-tree-provider.ts b/apps/vscode/src/app/workspace-tree/workspace-tree-provider.ts index 8be676ce1a..0b978b906a 100644 --- a/apps/vscode/src/app/workspace-tree/workspace-tree-provider.ts +++ b/apps/vscode/src/app/workspace-tree/workspace-tree-provider.ts @@ -1,4 +1,8 @@ -import { WorkspaceTreeItem, ROUTE_LIST } from './workspace-tree-item'; +import { + WorkspaceTreeItem, + ROUTE_LIST, + LEGACY_ROUTE_LIST +} from './workspace-tree-item'; import { AbstractTreeProvider } from '../abstract-tree-provider'; import { TreeItem } from 'vscode'; import { join } from 'path'; @@ -10,7 +14,7 @@ export const LOCATE_YOUR_WORKSPACE = new TreeItem('Select angular.json'); LOCATE_YOUR_WORKSPACE.command = { tooltip: 'Select an angular.json file to open', title: 'Select angular.json', - command: 'angularConsole.revealWebViewPanel.selectWorkspaceManually' + command: 'angularConsole.selectWorkspaceManually' }; export class WorkspaceTreeProvider extends AbstractTreeProvider< @@ -70,6 +74,13 @@ export class WorkspaceTreeProvider extends AbstractTreeProvider< ...ROUTE_LIST.map( route => new WorkspaceTreeItem(workspacePath, route, this.extensionPath) ), + ...LEGACY_ROUTE_LIST.map(route => + WorkspaceTreeItem.createLegacyTreeItem( + workspacePath, + route, + this.extensionPath + ) + ), LOCATE_YOUR_WORKSPACE ]; } diff --git a/apps/vscode/src/assets/angular-console.png b/apps/vscode/src/assets/angular-console.png new file mode 100644 index 0000000000000000000000000000000000000000..0c856755edf9b0e2bf505e0fe4cc61076d08861f GIT binary patch literal 53972 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 literal 0 HcmV?d00001 diff --git a/apps/vscode/src/main.ts b/apps/vscode/src/main.ts index 8530220fa9..13bcfd1905 100644 --- a/apps/vscode/src/main.ts +++ b/apps/vscode/src/main.ts @@ -1,4 +1,4 @@ -import { FileUtils } from '@angular-console/server'; +import { FileUtils, EXTENSIONS } from '@angular-console/server'; import { stream } from 'fast-glob'; import { existsSync, readFileSync } from 'fs'; import { Server } from 'http'; @@ -8,9 +8,9 @@ import { ExtensionContext, tasks, TreeView, - ViewColumn, window, - workspace + workspace, + QuickPickItem } from 'vscode'; import { AngularJsonTreeItem } from './app/angular-json-tree/angular-json-tree-item'; @@ -25,6 +25,7 @@ import { WorkspaceTreeProvider } from './app/workspace-tree/workspace-tree-provider'; import { migrateSettings } from './app/migrate-settings'; +import { revealLegacyWebViewPanel } from './app/legacy-webview'; let server: Promise; @@ -69,11 +70,48 @@ export function activate(c: ExtensionContext) { commands.registerCommand( 'angularConsole.revealWebViewPanel', async (workspaceTreeItem: WorkspaceTreeItem) => { + const port = ((await server).address() as any).port; + + switch (workspaceTreeItem.route) { + case 'Add': + const extensions = Object.entries(EXTENSIONS).map( + ([label, description]): QuickPickItem => ({ + label, + description + }) + ); + window.showQuickPick(extensions).then(selection => { + if (!selection) { + return; + } + + tasks.executeTask( + ngTaskProvider.createTask({ + architectName: 'add', + projectName: selection.label, + type: 'shell' + }) + ); + }); + } + revealWebViewPanel({ workspaceTreeItem, context, - viewColumn: ViewColumn.Active, getProjectEntries: () => ngTaskProvider.getProjectEntries(), + workspaceTreeView, + serverAddress: `http://localhost:${port}/` + }); + } + ) + ); + context.subscriptions.push( + commands.registerCommand( + 'angularConsole.revealLegacyWebViewPanel', + async (workspaceTreeItem: WorkspaceTreeItem) => { + revealLegacyWebViewPanel({ + workspaceTreeItem, + context, port: ((await server).address() as any).port, workspaceTreeView }); @@ -150,7 +188,6 @@ async function setAngularWorkspace(workspacePath: string) { server = startServer(context, workspacePath); } catch (e) { console.error('Invalid angular JSON', e); - commands.executeCommand('setContext', 'isAngularWorkspace', false); window.showErrorMessage( 'Your angular.json file is invalid (see debug console)' ); diff --git a/jest.config.js b/jest.config.js index 30b91f3cbe..a828fb1d8e 100644 --- a/jest.config.js +++ b/jest.config.js @@ -3,6 +3,7 @@ module.exports = { transform: { '^.+\\.(ts|js|html)$': 'ts-jest' }, + passWithNoTests: true, resolver: '@nrwl/jest/plugins/resolver', moduleFileExtensions: ['ts', 'js', 'html'], coverageReporters: ['html'] diff --git a/libs/feature-extensions/src/index.ts b/libs/feature-extensions/src/index.ts deleted file mode 100644 index bbc68bf00a..0000000000 --- a/libs/feature-extensions/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './lib/feature-extensions.module'; diff --git a/libs/feature-extensions/src/lib/extension/extension.component.html b/libs/feature-extensions/src/lib/extension/extension.component.html deleted file mode 100644 index b40446aaf2..0000000000 --- a/libs/feature-extensions/src/lib/extension/extension.component.html +++ /dev/null @@ -1,23 +0,0 @@ - - - -
- -
- - -
-
- - Click the Add button to install this extension. - - -
-
{{ extension.name }}
-
{{ extension.description }}
-
-
-
diff --git a/libs/feature-extensions/src/lib/extension/extension.component.scss b/libs/feature-extensions/src/lib/extension/extension.component.scss deleted file mode 100644 index 938d37ec36..0000000000 --- a/libs/feature-extensions/src/lib/extension/extension.component.scss +++ /dev/null @@ -1,18 +0,0 @@ -:host { - width: 100%; -} - -.ui-flags { - background: white; - overflow: auto; - - .name { - padding: 24px; - font-size: 20px; - font-weight: 500; - } - - .description { - padding: 24px; - } -} diff --git a/libs/feature-extensions/src/lib/extension/extension.component.ts b/libs/feature-extensions/src/lib/extension/extension.component.ts deleted file mode 100644 index 970407f1c5..0000000000 --- a/libs/feature-extensions/src/lib/extension/extension.component.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { Extension } from '@angular-console/schema'; -import { - TaskRunnerComponent, - CommandOutputComponent -} from '@angular-console/ui'; -import { - IncrementalCommandOutput, - CommandRunner -} from '@angular-console/utils'; -import { - ChangeDetectionStrategy, - Component, - OnInit, - ViewChild -} from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { ContextualActionBarService } from '@nrwl/angular-console-enterprise-frontend'; -import { BehaviorSubject, Observable, of, Subject } from 'rxjs'; -import { - map, - publishReplay, - refCount, - switchMap, - tap, - withLatestFrom -} from 'rxjs/operators'; -import { - NgAddGQL, - WorkspaceAndExtensionsByNameGQL -} from '../generated/graphql'; - -@Component({ - changeDetection: ChangeDetectionStrategy.OnPush, - selector: 'angular-console-extension', - templateUrl: './extension.component.html', - styleUrls: ['./extension.component.scss'] -}) -export class ExtensionComponent implements OnInit { - extension$: Observable; - command$: Observable; - commandOutput$: Observable; - @ViewChild(CommandOutputComponent, { static: false }) - out: CommandOutputComponent; - @ViewChild(TaskRunnerComponent, { static: false }) - taskRunner: TaskRunnerComponent; - - private readonly ngAdd$ = new Subject(); - private readonly ngAddDisabled$ = new BehaviorSubject(true); - - constructor( - private readonly route: ActivatedRoute, - private readonly runner: CommandRunner, - private readonly contextActionService: ContextualActionBarService, - private readonly ngAddGQL: NgAddGQL, - private readonly workspaceAndExtensionsByNameGQL: WorkspaceAndExtensionsByNameGQL - ) {} - - ngOnInit() { - const extensionDescription$ = this.route.params.pipe( - map(p => { - if (!p.name) return null; - return { - name: decodeURIComponent(p.name), - path: p.path - }; - }) - ); - - this.extension$ = extensionDescription$.pipe( - switchMap(p => { - if (!p) { - return of(); - } - if (this.out) { - this.out.reset(); - } - - return this.workspaceAndExtensionsByNameGQL.fetch(p); - }), - map((r: any) => { - const extension: Extension = r.data.availableExtensions[0]; - const installed: Array = r.data.workspace.extensions; - const i = installed.filter(ii => ii.name === extension.name).length > 0; - return { - ...extension, - description: extension.detailedDescription - ? extension.detailedDescription - : extension.description, - installed: i - }; - }), - tap((extension: Extension) => { - const contextTitle = this.getContextTitle(extension); - this.ngAddDisabled$.next(Boolean(extension.installed)); - this.contextActionService.contextualActions$.next({ - contextTitle, - actions: [ - { - invoke: this.ngAdd$, - disabled: this.ngAddDisabled$, - name: extension.installed ? 'Already Installed' : 'Add' - } - ] - }); - }), - publishReplay(1), - refCount() - ); - - this.commandOutput$ = this.ngAdd$.pipe( - withLatestFrom(this.extension$), - tap(() => { - this.taskRunner.terminalVisible$.next(true); - }), - switchMap(([_, a]) => { - this.out.reset(); - return this.runner.runCommand( - this.ngAddGQL.mutate({ - path: this.path(), - name: a.name - }), - false, - this.out.terminal.currentCols - ); - }), - publishReplay(1), - refCount() - ); - - this.command$ = this.extension$.pipe(map(a => `ng add ${a.name}`)); - } - - getContextTitle(extension: Extension) { - return `${extension.name} extension`; - } - - path() { - return this.route.snapshot.params.path; - } - - onRun() { - this.ngAdd$.next(); - } -} diff --git a/libs/feature-extensions/src/lib/extensions/extensions.component.html b/libs/feature-extensions/src/lib/extensions/extensions.component.html deleted file mode 100644 index 8b373a33cf..0000000000 --- a/libs/feature-extensions/src/lib/extensions/extensions.component.html +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/libs/feature-extensions/src/lib/extensions/extensions.component.ts b/libs/feature-extensions/src/lib/extensions/extensions.component.ts deleted file mode 100644 index 5ecabfe82c..0000000000 --- a/libs/feature-extensions/src/lib/extensions/extensions.component.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { Extension } from '@angular-console/schema'; -import { Task, TaskCollection, TaskCollections } from '@angular-console/ui'; -import { RouterNavigation, Telemetry } from '@angular-console/utils'; -import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; -import { combineLatest, Observable } from 'rxjs'; -import { - distinctUntilChanged, - filter, - map, - shareReplay, - startWith, - switchMap -} from 'rxjs/operators'; - -import { WorkspaceAndExtensionsGQL } from '../generated/graphql'; - -interface ExtensionId { - name: string | undefined; -} - -export interface ExtensionGroup { - name: string; - extensions: Extension[]; -} - -@Component({ - changeDetection: ChangeDetectionStrategy.OnPush, - selector: 'angular-console-extensions', - templateUrl: './extensions.component.html' -}) -export class ExtensionsComponent implements OnInit { - private readonly extensions$: Observable< - Array - > = this.route.params.pipe( - map(m => m.path), - switchMap(path => { - return this.workspaceAndExtensionsGQL.fetch({ - path - }); - }), - map(r => { - const availableExtensions: Array = (r as any).data - .availableExtensions; - const installed: Array = (r as any).data.workspace.extensions; - const extensions = availableExtensions.map(a => { - const i = installed.filter(ii => ii.name === a.name).length > 0; - return { - ...a, - installed: i - }; - }); - return [{ name: 'Available Extensions', extensions }]; - }) - ); - - private readonly selectedExtensionId$: Observable< - ExtensionId - > = this.router.events.pipe( - filter(event => event instanceof NavigationEnd), - startWith(null), - map(() => { - const firstChild = this.route.snapshot.firstChild; - if (firstChild) { - return { - name: decodeURIComponent(firstChild.params.name) - }; - } - return { - name: '' - }; - }), - distinctUntilChanged((a: ExtensionId, b: ExtensionId) => a.name === b.name) - ); - - readonly taskCollections$: Observable< - TaskCollections - > = combineLatest([this.extensions$, this.selectedExtensionId$]).pipe( - map(([extensions, selectedId]) => { - const collections: Array> = extensions.map( - group => ({ - collectionName: group.name, - tasks: group.extensions.map(extension => ({ - taskName: extension.name, - taskDescription: extension.description, - task: extension - })) - }) - ); - - const taskCollections: TaskCollections = { - selectedTask: this.findSelectedExtension(selectedId, collections), - taskCollections: collections - }; - - return taskCollections; - }), - shareReplay(1) - ); - - constructor( - private readonly telemetry: Telemetry, - private readonly route: ActivatedRoute, - private readonly router: Router, - private readonly workspaceAndExtensionsGQL: WorkspaceAndExtensionsGQL, - private readonly locationExt: RouterNavigation - ) {} - - ngOnInit() { - this.telemetry.screenViewed('Extensions'); - } - - navigateToSelectedExtension(s: Extension | null) { - if (s) { - this.router.navigate([encodeURIComponent(s.name)], { - relativeTo: this.route - }); - } else { - this.locationExt.navigateToPrevious(['.'], { - relativeTo: this.route - }); - } - } - - findSelectedExtension( - extensionId: ExtensionId, - taskCollections: Array> - ): Task | null { - if (!extensionId.name) { - return null; - } - const selectedTask = taskCollections[0].tasks.find( - task => task.taskName === extensionId.name - ); - return selectedTask || null; - } -} diff --git a/libs/feature-extensions/src/lib/feature-extensions.module.ts b/libs/feature-extensions/src/lib/feature-extensions.module.ts deleted file mode 100644 index c3a7230b04..0000000000 --- a/libs/feature-extensions/src/lib/feature-extensions.module.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { Route, RouterModule } from '@angular/router'; -import { UiModule } from '@angular-console/ui'; - -import { ExtensionsComponent } from './extensions/extensions.component'; -import { ExtensionComponent } from './extension/extension.component'; -import { - MatIconModule, - MatListModule, - MatOptionModule -} from '@angular/material'; -import { FlexLayoutModule } from '@angular/flex-layout'; -import { ReactiveFormsModule } from '@angular/forms'; - -export const extensionsRoutes: Route[] = [ - { - path: '', - component: ExtensionsComponent, - children: [ - { - path: ':name', - component: ExtensionComponent - }, - { - path: '', - component: ExtensionComponent - } - ] - } -]; - -@NgModule({ - imports: [ - MatIconModule, - MatListModule, - FlexLayoutModule, - MatOptionModule, - CommonModule, - RouterModule, - ReactiveFormsModule, - UiModule - ], - declarations: [ExtensionsComponent, ExtensionComponent] -}) -export class FeatureExtensionsModule {} diff --git a/libs/feature-extensions/src/lib/generated/graphql.ts b/libs/feature-extensions/src/lib/generated/graphql.ts deleted file mode 100644 index 1faffafbff..0000000000 --- a/libs/feature-extensions/src/lib/generated/graphql.ts +++ /dev/null @@ -1,168 +0,0 @@ -export type Maybe = T | null; - -// ==================================================== -// Documents -// ==================================================== - -export namespace NgAdd { - export type Variables = { - path: string; - name: string; - }; - - export type Mutation = { - __typename?: 'Mutation'; - - ngAdd: Maybe; - }; - - export type NgAdd = { - __typename?: 'CommandStarted'; - - id: string; - }; -} - -export namespace WorkspaceAndExtensionsByName { - export type Variables = { - path: string; - name: string; - }; - - export type Query = { - __typename?: 'Query'; - - workspace: Workspace; - - availableExtensions: AvailableExtensions[]; - }; - - export type Workspace = { - __typename?: 'Workspace'; - - extensions: Extensions[]; - }; - - export type Extensions = { - __typename?: 'Extension'; - - name: string; - }; - - export type AvailableExtensions = { - __typename?: 'Extension'; - - name: string; - - description: string; - - detailedDescription: Maybe; - }; -} - -export namespace WorkspaceAndExtensions { - export type Variables = { - path: string; - }; - - export type Query = { - __typename?: 'Query'; - - workspace: Workspace; - - availableExtensions: AvailableExtensions[]; - }; - - export type Workspace = { - __typename?: 'Workspace'; - - extensions: Extensions[]; - }; - - export type Extensions = { - __typename?: 'Extension'; - - name: string; - }; - - export type AvailableExtensions = { - __typename?: 'Extension'; - - name: string; - - description: string; - }; -} - -// ==================================================== -// START: Apollo Angular template -// ==================================================== - -import { Injectable } from '@angular/core'; -import * as Apollo from 'apollo-angular'; - -import gql from 'graphql-tag'; - -// ==================================================== -// Apollo Services -// ==================================================== - -@Injectable({ - providedIn: 'root' -}) -export class NgAddGQL extends Apollo.Mutation { - document: any = gql` - mutation NgAdd($path: String!, $name: String!) { - ngAdd(path: $path, name: $name) { - id - } - } - `; -} -@Injectable({ - providedIn: 'root' -}) -export class WorkspaceAndExtensionsByNameGQL extends Apollo.Query< - WorkspaceAndExtensionsByName.Query, - WorkspaceAndExtensionsByName.Variables -> { - document: any = gql` - query WorkspaceAndExtensionsByName($path: String!, $name: String!) { - workspace(path: $path) { - extensions { - name - } - } - availableExtensions(name: $name) { - name - description - detailedDescription - } - } - `; -} -@Injectable({ - providedIn: 'root' -}) -export class WorkspaceAndExtensionsGQL extends Apollo.Query< - WorkspaceAndExtensions.Query, - WorkspaceAndExtensions.Variables -> { - document: any = gql` - query WorkspaceAndExtensions($path: String!) { - workspace(path: $path) { - extensions { - name - } - } - availableExtensions { - name - description - } - } - `; -} - -// ==================================================== -// END: Apollo Angular template -// ==================================================== diff --git a/libs/feature-extensions/src/lib/graphql/ng-add.graphql b/libs/feature-extensions/src/lib/graphql/ng-add.graphql deleted file mode 100644 index ec517f11e6..0000000000 --- a/libs/feature-extensions/src/lib/graphql/ng-add.graphql +++ /dev/null @@ -1,5 +0,0 @@ -mutation NgAdd($path: String!, $name: String!) { - ngAdd(path: $path, name: $name) { - id - } -} diff --git a/libs/feature-extensions/src/lib/graphql/workspace-and-extensions-by-name.graphql b/libs/feature-extensions/src/lib/graphql/workspace-and-extensions-by-name.graphql deleted file mode 100644 index e71ec46ae7..0000000000 --- a/libs/feature-extensions/src/lib/graphql/workspace-and-extensions-by-name.graphql +++ /dev/null @@ -1,12 +0,0 @@ -query WorkspaceAndExtensionsByName($path: String!, $name: String!) { - workspace(path: $path) { - extensions { - name - } - } - availableExtensions(name: $name) { - name - description - detailedDescription - } -} diff --git a/libs/feature-extensions/src/lib/graphql/workspace-and-extensions.graphql b/libs/feature-extensions/src/lib/graphql/workspace-and-extensions.graphql deleted file mode 100644 index 2e9adf028b..0000000000 --- a/libs/feature-extensions/src/lib/graphql/workspace-and-extensions.graphql +++ /dev/null @@ -1,11 +0,0 @@ -query WorkspaceAndExtensions($path: String!) { - workspace(path: $path) { - extensions { - name - } - } - availableExtensions { - name - description - } -} diff --git a/libs/feature-extensions/tsconfig.json b/libs/feature-extensions/tsconfig.json deleted file mode 100644 index 1e1052869e..0000000000 --- a/libs/feature-extensions/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": [] - } -} diff --git a/libs/feature-extensions/tsconfig.lib.json b/libs/feature-extensions/tsconfig.lib.json deleted file mode 100644 index b74f95a635..0000000000 --- a/libs/feature-extensions/tsconfig.lib.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "target": "es2019", - "module": "esnext", - "moduleResolution": "node", - "declaration": true, - "sourceMap": true, - "inlineSources": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "importHelpers": true, - "types": [], - "lib": ["dom", "es2015"] - }, - "angularCompilerOptions": { - "annotateForClosureCompiler": true, - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "fullTemplateTypeCheck": true, - "strictInjectionParameters": true, - "flatModuleId": "AUTOGENERATED", - "flatModuleOutFile": "AUTOGENERATED" - }, - "exclude": ["src/test.ts", "**/*.spec.ts"] -} diff --git a/libs/feature-extensions/tslint.json b/libs/feature-extensions/tslint.json deleted file mode 100644 index 5a371c6a8d..0000000000 --- a/libs/feature-extensions/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "angular-console", "camelCase"], - "component-selector": [true, "element", "angular-console", "kebab-case"] - } -} diff --git a/libs/feature-generate/src/index.ts b/libs/feature-generate/src/index.ts deleted file mode 100644 index 984c934cfc..0000000000 --- a/libs/feature-generate/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { SchematicComponent } from './lib/schematic/schematic.component'; - -export * from './lib/feature-generate.module'; diff --git a/libs/feature-generate/src/lib/feature-generate.module.ts b/libs/feature-generate/src/lib/feature-generate.module.ts deleted file mode 100644 index ff9ac1adf5..0000000000 --- a/libs/feature-generate/src/lib/feature-generate.module.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { FlexLayoutModule } from '@angular/flex-layout'; -import { ReactiveFormsModule } from '@angular/forms'; -import { - MatIconModule, - MatListModule, - MatOptionModule -} from '@angular/material'; -import { Route, RouterModule } from '@angular/router'; -import { UiModule } from '@angular-console/ui'; - -import { SchematicComponent } from './schematic/schematic.component'; -import { SchematicsComponent } from './schematics/schematics.component'; - -export const generateRoutes: Route[] = [ - { - path: '', - component: SchematicsComponent, - children: [ - { path: ':collection/:schematic', component: SchematicComponent }, - { path: '', pathMatch: 'full', component: SchematicComponent } - ] - } -]; - -@NgModule({ - imports: [ - MatIconModule, - MatListModule, - FlexLayoutModule, - MatOptionModule, - CommonModule, - RouterModule, - ReactiveFormsModule, - UiModule - ], - declarations: [SchematicsComponent, SchematicComponent] -}) -export class FeatureGenerateModule {} diff --git a/libs/feature-generate/src/lib/generated/graphql.ts b/libs/feature-generate/src/lib/generated/graphql.ts deleted file mode 100644 index fee83faae8..0000000000 --- a/libs/feature-generate/src/lib/generated/graphql.ts +++ /dev/null @@ -1,323 +0,0 @@ -export type Maybe = T | null; - -// ==================================================== -// Documents -// ==================================================== - -export namespace GenerateUsingNmp { - export type Variables = { - path: string; - genCommand: string[]; - dryRun: boolean; - npmClient: string; - }; - - export type Mutation = { - __typename?: 'Mutation'; - - generateUsingNpm: Maybe; - }; - - export type GenerateUsingNpm = { - __typename?: 'CommandStarted'; - - id: string; - }; -} - -export namespace Generate { - export type Variables = { - path: string; - genCommand: string[]; - dryRun: boolean; - }; - - export type Mutation = { - __typename?: 'Mutation'; - - generate: Maybe; - }; - - export type Generate = { - __typename?: 'CommandStarted'; - - id: string; - }; -} - -export namespace SchematicCollectionsByName { - export type Variables = { - path: string; - collection: string; - schematic: string; - }; - - export type Query = { - __typename?: 'Query'; - - workspace: Workspace; - }; - - export type Workspace = { - __typename?: 'Workspace'; - - schematicCollections: SchematicCollections[]; - }; - - export type SchematicCollections = { - __typename?: 'SchematicCollection'; - - schematics: Schematics[]; - }; - - export type Schematics = { - __typename?: 'Schematic'; - - collection: string; - - name: string; - - description: string; - - npmScript: Maybe; - - npmClient: Maybe; - - schema: Schema[]; - }; - - export type Schema = { - __typename?: 'Schema'; - - name: string; - - enum: Maybe; - - type: string; - - description: string; - - defaultValue: Maybe; - - required: boolean; - - positional: boolean; - }; -} - -export namespace SchematicDocs { - export type Variables = { - path: string; - collectionName: string; - name: string; - }; - - export type Query = { - __typename?: 'Query'; - - workspace: Workspace; - }; - - export type Workspace = { - __typename?: 'Workspace'; - - docs: Docs; - }; - - export type Docs = { - __typename?: 'Docs'; - - schematicDocs: SchematicDocs[]; - }; - - export type SchematicDocs = { - __typename?: 'Doc'; - - id: string; - - description: Maybe; - - prop: Maybe; - }; -} - -export namespace SchematicCollections { - export type Variables = { - path: string; - }; - - export type Query = { - __typename?: 'Query'; - - workspace: Workspace; - }; - - export type Workspace = { - __typename?: 'Workspace'; - - schematicCollections: SchematicCollections[]; - }; - - export type SchematicCollections = { - __typename?: 'SchematicCollection'; - - name: string; - - schematics: Schematics[]; - }; - - export type Schematics = { - __typename?: 'Schematic'; - - name: string; - - description: string; - - collection: string; - }; -} - -// ==================================================== -// START: Apollo Angular template -// ==================================================== - -import { Injectable } from '@angular/core'; -import * as Apollo from 'apollo-angular'; - -import gql from 'graphql-tag'; - -// ==================================================== -// Apollo Services -// ==================================================== - -@Injectable({ - providedIn: 'root' -}) -export class GenerateUsingNmpGQL extends Apollo.Mutation< - GenerateUsingNmp.Mutation, - GenerateUsingNmp.Variables -> { - document: any = gql` - mutation GenerateUsingNmp( - $path: String! - $genCommand: [String!]! - $dryRun: Boolean! - $npmClient: String! - ) { - generateUsingNpm( - path: $path - genCommand: $genCommand - dryRun: $dryRun - npmClient: $npmClient - ) { - id - } - } - `; -} -@Injectable({ - providedIn: 'root' -}) -export class GenerateGQL extends Apollo.Mutation< - Generate.Mutation, - Generate.Variables -> { - document: any = gql` - mutation Generate( - $path: String! - $genCommand: [String!]! - $dryRun: Boolean! - ) { - generate(path: $path, genCommand: $genCommand, dryRun: $dryRun) { - id - } - } - `; -} -@Injectable({ - providedIn: 'root' -}) -export class SchematicCollectionsByNameGQL extends Apollo.Query< - SchematicCollectionsByName.Query, - SchematicCollectionsByName.Variables -> { - document: any = gql` - query SchematicCollectionsByName( - $path: String! - $collection: String! - $schematic: String! - ) { - workspace(path: $path) { - schematicCollections(name: $collection) { - schematics(name: $schematic) { - collection - name - description - npmScript - npmClient - schema { - name - enum - type - description - defaultValue - required - positional - } - } - } - } - } - `; -} -@Injectable({ - providedIn: 'root' -}) -export class SchematicDocsGQL extends Apollo.Query< - SchematicDocs.Query, - SchematicDocs.Variables -> { - document: any = gql` - query SchematicDocs( - $path: String! - $collectionName: String! - $name: String! - ) { - workspace(path: $path) { - docs { - schematicDocs(collectionName: $collectionName, name: $name) { - id - description - prop - } - } - } - } - `; -} -@Injectable({ - providedIn: 'root' -}) -export class SchematicCollectionsGQL extends Apollo.Query< - SchematicCollections.Query, - SchematicCollections.Variables -> { - document: any = gql` - query SchematicCollections($path: String!) { - workspace(path: $path) { - schematicCollections { - name - schematics { - name - description - collection - } - } - } - } - `; -} - -// ==================================================== -// END: Apollo Angular template -// ==================================================== diff --git a/libs/feature-generate/src/lib/graphql/generate-using-npm.graphql b/libs/feature-generate/src/lib/graphql/generate-using-npm.graphql deleted file mode 100644 index 3cc7e69e63..0000000000 --- a/libs/feature-generate/src/lib/graphql/generate-using-npm.graphql +++ /dev/null @@ -1,5 +0,0 @@ -mutation GenerateUsingNmp($path: String!, $genCommand: [String!]!, $dryRun: Boolean!, $npmClient: String!) { - generateUsingNpm(path: $path, genCommand: $genCommand, dryRun: $dryRun, npmClient: $npmClient) { - id - } -} diff --git a/libs/feature-generate/src/lib/graphql/generate.graphql b/libs/feature-generate/src/lib/graphql/generate.graphql deleted file mode 100644 index d0d39e8e09..0000000000 --- a/libs/feature-generate/src/lib/graphql/generate.graphql +++ /dev/null @@ -1,5 +0,0 @@ -mutation Generate($path: String!, $genCommand: [String!]!, $dryRun: Boolean!) { - generate(path: $path, genCommand: $genCommand, dryRun: $dryRun) { - id - } -} diff --git a/libs/feature-generate/src/lib/graphql/schematic-collections-by-name.graphql b/libs/feature-generate/src/lib/graphql/schematic-collections-by-name.graphql deleted file mode 100644 index 47c28174d6..0000000000 --- a/libs/feature-generate/src/lib/graphql/schematic-collections-by-name.graphql +++ /dev/null @@ -1,26 +0,0 @@ -query SchematicCollectionsByName( - $path: String! - $collection: String! - $schematic: String! -) { - workspace(path: $path) { - schematicCollections(name: $collection) { - schematics(name: $schematic) { - collection - name - description - npmScript - npmClient - schema { - name - enum - type - description - defaultValue - required - positional - } - } - } - } -} diff --git a/libs/feature-generate/src/lib/graphql/schematic-docs.graphql b/libs/feature-generate/src/lib/graphql/schematic-docs.graphql deleted file mode 100644 index e96242865b..0000000000 --- a/libs/feature-generate/src/lib/graphql/schematic-docs.graphql +++ /dev/null @@ -1,11 +0,0 @@ -query SchematicDocs($path: String!, $collectionName: String!, $name: String!) { - workspace(path: $path) { - docs { - schematicDocs(collectionName: $collectionName, name: $name) { - id - description - prop - } - } - } -} diff --git a/libs/feature-generate/src/lib/graphql/schematics-collections.graphql b/libs/feature-generate/src/lib/graphql/schematics-collections.graphql deleted file mode 100644 index 53d92467a7..0000000000 --- a/libs/feature-generate/src/lib/graphql/schematics-collections.graphql +++ /dev/null @@ -1,12 +0,0 @@ -query SchematicCollections($path: String!) { - workspace(path: $path) { - schematicCollections { - name - schematics { - name - description - collection - } - } - } -} diff --git a/libs/feature-generate/src/lib/schematic/schematic.component.html b/libs/feature-generate/src/lib/schematic/schematic.component.html deleted file mode 100644 index bee25ab05d..0000000000 --- a/libs/feature-generate/src/lib/schematic/schematic.component.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - Click the Generate button to start this task. - - diff --git a/libs/feature-generate/src/lib/schematic/schematic.component.scss b/libs/feature-generate/src/lib/schematic/schematic.component.scss deleted file mode 100644 index b9bc65ea45..0000000000 --- a/libs/feature-generate/src/lib/schematic/schematic.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -:host { - width: 100%; -} diff --git a/libs/feature-generate/src/lib/schematic/schematic.component.ts b/libs/feature-generate/src/lib/schematic/schematic.component.ts deleted file mode 100644 index 5a718665f9..0000000000 --- a/libs/feature-generate/src/lib/schematic/schematic.component.ts +++ /dev/null @@ -1,311 +0,0 @@ -import { Schematic } from '@angular-console/schema'; -import { - CommandOutputComponent, - FlagsComponent, - TaskRunnerComponent -} from '@angular-console/ui'; -import { - CommandRunner, - IncrementalCommandOutput, - Serializer, - Settings -} from '@angular-console/utils'; -import { - ChangeDetectionStrategy, - Component, - ElementRef, - OnInit, - ViewChild -} from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { ContextualActionBarService } from '@nrwl/angular-console-enterprise-frontend'; -import { BehaviorSubject, merge, Observable, of, Subject } from 'rxjs'; -import { - debounceTime, - map, - publishReplay, - refCount, - startWith, - switchMap, - tap, - withLatestFrom, - skip -} from 'rxjs/operators'; - -import { - GenerateGQL, - GenerateUsingNmpGQL, - SchematicCollectionsByNameGQL, - SchematicDocsGQL -} from '../generated/graphql'; - -const DEBOUNCE_TIME = 500; - -@Component({ - changeDetection: ChangeDetectionStrategy.OnPush, - selector: 'angular-console-schematic', - templateUrl: './schematic.component.html', - styleUrls: ['./schematic.component.scss'] -}) -export class SchematicComponent implements OnInit { - schematic$: Observable; - commandArray$ = new BehaviorSubject<{ - commands: string[]; - valid: boolean; - schematic: Schematic | null; - }>({ - schematic: null, - commands: [], - valid: false - }); - command$: Observable; - dryRunResult$: Observable; - commandOutput$: Observable; - initValues$: Observable; - - combinedOutput$: Observable; - @ViewChild(CommandOutputComponent, { static: false }) - out: CommandOutputComponent; - @ViewChild(TaskRunnerComponent, { static: false }) - taskRunner: TaskRunnerComponent; - @ViewChild(FlagsComponent, { static: false }) flags: FlagsComponent; - - docs$: Observable; - - private readonly ngGen$ = new Subject(); - readonly ngGenDisabled$ = new BehaviorSubject(true); - - constructor( - private readonly runner: CommandRunner, - private readonly route: ActivatedRoute, - private readonly serializer: Serializer, - private readonly elementRef: ElementRef, - private readonly contextActionService: ContextualActionBarService, - private readonly generateGQL: GenerateGQL, - private readonly generateUsingNpmGQL: GenerateUsingNmpGQL, - private readonly schematicDocsGQL: SchematicDocsGQL, - private readonly settings: Settings, - private readonly schematicCollectionsByNameGQL: SchematicCollectionsByNameGQL - ) {} - - ngOnInit() { - const schematicDescription$ = this.route.params.pipe( - map(p => { - if (!p.collection || !p.schematic) return null; - return { - collection: decodeURIComponent(p.collection), - schematic: decodeURIComponent(p.schematic), - path: p.path - }; - }) - ); - - this.initValues$ = this.route.params.pipe( - map(p => { - return { - project: p.project - }; - }) - ); - - this.schematic$ = schematicDescription$.pipe( - switchMap(p => { - if (!p) { - return of(); - } - if (this.out) { - this.out.reset(); - } - - return this.schematicCollectionsByNameGQL.fetch(p); - }), - map((r: any) => { - if (!r) { - return null; - } - const schematic: Schematic = - r.data.workspace.schematicCollections[0].schematics[0]; - - return this.serializer.normalizeSchematic(schematic); - }), - tap((schematic: Schematic | null) => { - if (!schematic) return; - const uiFlags = (this.elementRef - .nativeElement as HTMLElement).querySelector('.ui-flags-container'); - - this.contextActionService.contextualActions$.next({ - contextTitle: this.getContextTitle(schematic), - actions: [ - { - invoke: this.ngGen$, - disabled: this.ngGenDisabled$, - name: 'Generate' - } - ] - }); - - if (uiFlags && uiFlags.scrollTo) { - uiFlags.scrollTo({ - top: 0, - behavior: 'smooth' - }); - } - }), - publishReplay(1), - refCount() - ); - - this.dryRunResult$ = this.commandArray$.pipe( - skip(1), - debounceTime(DEBOUNCE_TIME), - switchMap( - (c): Observable => { - if (this.runner.activeCommand$.value) { - return of(); - } - - this.out.reset(); - - return this.runCommand(c.schematic, c.commands, true); - } - ), - publishReplay(1), - refCount() - ); - - this.commandOutput$ = this.ngGen$.pipe( - withLatestFrom(this.commandArray$), - tap(() => { - this.flags.hideFields(); - this.taskRunner.terminalVisible$.next(true); - }), - switchMap(([_, c]) => { - this.out.reset(); - return this.runCommand(c.schematic, c.commands, false); - }), - publishReplay(1), - refCount() - ); - - this.combinedOutput$ = merge(this.dryRunResult$, this.commandOutput$); - - const isDryRun = merge( - this.dryRunResult$.pipe(map(() => ['--dry-run'])), - this.commandOutput$.pipe(map(() => [])) - ).pipe( - startWith(['--dry-run']), - publishReplay(1), - refCount() - ); - - this.command$ = merge( - this.commandArray$, - this.commandOutput$, - this.dryRunResult$ - ).pipe( - switchMap(() => { - return this.commandArray$.pipe( - withLatestFrom(isDryRun), - map(c => { - const args = this.serializer.argsToString([ - ...c[0].commands, - ...c[1] - ]); - const schematic = c[0].schematic; - if (schematic && schematic.npmScript) { - return `${schematic.npmClient} ${args}`; - } else { - return `ng generate ${args}`; - } - }) - ); - }) - ); - - if (this.settings.showDocs) { - this.docs$ = schematicDescription$.pipe( - switchMap((d: any) => { - if (d === null) { - return of(null); - } else { - return this.schematicDocsGQL.fetch({ - path: d.path, - collectionName: d.collection, - name: d.schematic - }); - } - }), - map(r => { - if (!r) { - return []; - } else { - return r.data.workspace.docs.schematicDocs; - } - }) - ); - } else { - this.docs$ = of([]); - } - } - - private runCommand( - schematic: Schematic | null, - commands: string[], - dryRun: boolean - ) { - let mutation; - if (schematic && schematic.npmScript) { - mutation = this.generateUsingNpmGQL.mutate({ - path: this.path(), - genCommand: commands, - dryRun, - npmClient: schematic.npmClient! - }); - } else { - mutation = this.generateGQL.mutate({ - path: this.path(), - genCommand: commands, - dryRun - }); - } - return this.runner.runCommand( - mutation, - dryRun, - this.out.terminal.currentCols - ); - } - - getContextTitle(schematic: Schematic) { - let contextTitle = `${schematic.collection} - ${schematic.name}`; - - if (contextTitle.endsWith('.')) { - contextTitle = contextTitle.slice(0, contextTitle.length - 1); - } - - return contextTitle; - } - - getPrefix(schematic: Schematic) { - if (schematic.npmScript) { - return ['run', schematic.npmScript, '--', schematic.name]; - } else { - return [`${schematic.collection}:${schematic.name}`]; - } - } - - path() { - return this.route.snapshot.params.path; - } - - onFlagsChange( - schematic: Schematic, - e: { commands: string[]; valid: boolean } - ) { - this.commandArray$.next({ - schematic: schematic, - commands: e.commands, - valid: e.valid - }); - this.ngGenDisabled$.next(!e.valid); - } -} diff --git a/libs/feature-generate/src/lib/schematics/schematics.component.html b/libs/feature-generate/src/lib/schematics/schematics.component.html deleted file mode 100644 index 453e139b5c..0000000000 --- a/libs/feature-generate/src/lib/schematics/schematics.component.html +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/libs/feature-generate/src/lib/schematics/schematics.component.ts b/libs/feature-generate/src/lib/schematics/schematics.component.ts deleted file mode 100644 index 3c935d1381..0000000000 --- a/libs/feature-generate/src/lib/schematics/schematics.component.ts +++ /dev/null @@ -1,147 +0,0 @@ -import { Schematic, SchematicCollection } from '@angular-console/schema'; -import { Task, TaskCollection, TaskCollections } from '@angular-console/ui'; -import { RouterNavigation, Telemetry } from '@angular-console/utils'; -import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; -import { combineLatest, Observable } from 'rxjs'; -import { - distinctUntilChanged, - filter, - map, - shareReplay, - startWith, - switchMap -} from 'rxjs/operators'; - -import { SchematicCollectionsGQL } from '../generated/graphql'; - -interface SchematicId { - collectionName: string | undefined; - schematicName: string | undefined; -} - -@Component({ - changeDetection: ChangeDetectionStrategy.OnPush, - selector: 'angular-console-generate', - templateUrl: './schematics.component.html' -}) -export class SchematicsComponent implements OnInit { - private readonly schematicCollections$: Observable< - Array - > = this.route.params.pipe( - map(m => m.path), - switchMap(path => { - return this.schematicCollectionsGQL.fetch({ - path - }); - }), - map(r => { - const collections: Array = (r as any).data.workspace - .schematicCollections; - return collections.filter(c => c.schematics.length > 0); - }) - ); - - private readonly selectedSchematicId$: Observable< - SchematicId - > = this.router.events.pipe( - filter(event => event instanceof NavigationEnd), - startWith(null), - map(() => { - const firstChild = this.route.snapshot.firstChild; - if (firstChild) { - return { - collectionName: decodeURIComponent(firstChild.params.collection), - schematicName: decodeURIComponent(firstChild.params.schematic) - }; - } - return { - collectionName: '', - schematicName: '' - }; - }), - distinctUntilChanged( - (a: SchematicId, b: SchematicId) => - a.collectionName === b.collectionName && - a.schematicName === b.schematicName - ) - ); - - readonly taskCollections$: Observable< - TaskCollections - > = combineLatest([ - this.schematicCollections$, - this.selectedSchematicId$ - ]).pipe( - map(([schematicCollections, selectedSchematicId]) => { - const collections: Array< - TaskCollection - > = schematicCollections.map(schematicCollection => ({ - collectionName: schematicCollection.name, - tasks: schematicCollection.schematics.map(schematic => ({ - taskName: schematic.name, - task: schematic - })) - })); - - const taskCollections: TaskCollections = { - selectedTask: this.findSelectedSchematic( - selectedSchematicId, - collections - ), - taskCollections: collections - }; - - return taskCollections; - }), - shareReplay(1) - ); - - constructor( - private readonly telemetry: Telemetry, - private readonly route: ActivatedRoute, - private readonly router: Router, - private readonly schematicCollectionsGQL: SchematicCollectionsGQL, - private readonly locationExt: RouterNavigation - ) {} - - ngOnInit() { - this.telemetry.screenViewed('Generate'); - } - - navigateToSelectedSchematic(s: Schematic | null) { - if (s) { - this.router.navigate( - [encodeURIComponent(s.collection), encodeURIComponent(s.name)], - { relativeTo: this.route } - ); - } else { - this.locationExt.navigateToPrevious(['.'], { - relativeTo: this.route - }); - } - } - - findSelectedSchematic( - schematicId: SchematicId, - taskCollections: Array> - ): Task | null { - if (!schematicId.collectionName || !schematicId.schematicName) { - return null; - } - - const selectedTaskCollection = taskCollections.find( - collection => collection.collectionName === schematicId.collectionName - ); - - if (!selectedTaskCollection) { - return null; - } - - const selectedTask = selectedTaskCollection.tasks.find( - task => task.taskName === schematicId.schematicName - ); - - return selectedTask || null; - } -} diff --git a/libs/feature-generate/tsconfig.json b/libs/feature-generate/tsconfig.json deleted file mode 100644 index 1e1052869e..0000000000 --- a/libs/feature-generate/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": [] - } -} diff --git a/libs/feature-generate/tsconfig.lib.json b/libs/feature-generate/tsconfig.lib.json deleted file mode 100644 index 137029750f..0000000000 --- a/libs/feature-generate/tsconfig.lib.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "target": "es2019", - "module": "esnext", - "moduleResolution": "node", - "declaration": true, - "sourceMap": true, - "inlineSources": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "importHelpers": true, - "downlevelIteration": true, - "types": [], - "lib": ["dom", "es2015"] - }, - "angularCompilerOptions": { - "annotateForClosureCompiler": true, - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "fullTemplateTypeCheck": true, - "strictInjectionParameters": true, - "flatModuleId": "AUTOGENERATED", - "flatModuleOutFile": "AUTOGENERATED" - }, - "exclude": ["src/test.ts", "**/*.spec.ts"] -} diff --git a/libs/feature-generate/tslint.json b/libs/feature-generate/tslint.json deleted file mode 100644 index 5a371c6a8d..0000000000 --- a/libs/feature-generate/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "angular-console", "camelCase"], - "component-selector": [true, "element", "angular-console", "kebab-case"] - } -} diff --git a/libs/feature-install-node-js/src/index.ts b/libs/feature-install-node-js/src/index.ts deleted file mode 100644 index 0fd5e50fce..0000000000 --- a/libs/feature-install-node-js/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './lib/feature-install-node-js.module'; diff --git a/libs/feature-install-node-js/src/lib/feature-install-node-js.module.ts b/libs/feature-install-node-js/src/lib/feature-install-node-js.module.ts deleted file mode 100644 index 799d158b81..0000000000 --- a/libs/feature-install-node-js/src/lib/feature-install-node-js.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { RouterModule } from '@angular/router'; -import { InstallNodeJsComponent } from './install-node-js.component'; -import { UiModule } from '@angular-console/ui'; - -@NgModule({ - imports: [ - CommonModule, - UiModule, - RouterModule.forChild([ - { path: '', pathMatch: 'full', component: InstallNodeJsComponent } - ]) - ], - declarations: [InstallNodeJsComponent] -}) -export class FeatureInstallNodeJsModule {} diff --git a/libs/feature-install-node-js/src/lib/generated/graphql.ts b/libs/feature-install-node-js/src/lib/generated/graphql.ts deleted file mode 100644 index 546e87f22e..0000000000 --- a/libs/feature-install-node-js/src/lib/generated/graphql.ts +++ /dev/null @@ -1,54 +0,0 @@ -export type Maybe = T | null; - -// ==================================================== -// Documents -// ==================================================== - -export namespace IsNodejsInstalled { - export type Variables = {}; - - export type Query = { - __typename?: 'Query'; - - isNodejsInstalled: Maybe; - }; - - export type IsNodejsInstalled = { - __typename?: 'IsNodeInstalledResult'; - - result: boolean; - }; -} - -// ==================================================== -// START: Apollo Angular template -// ==================================================== - -import { Injectable } from '@angular/core'; -import * as Apollo from 'apollo-angular'; - -import gql from 'graphql-tag'; - -// ==================================================== -// Apollo Services -// ==================================================== - -@Injectable({ - providedIn: 'root' -}) -export class IsNodejsInstalledGQL extends Apollo.Query< - IsNodejsInstalled.Query, - IsNodejsInstalled.Variables -> { - document: any = gql` - query IsNodejsInstalled { - isNodejsInstalled { - result - } - } - `; -} - -// ==================================================== -// END: Apollo Angular template -// ==================================================== diff --git a/libs/feature-install-node-js/src/lib/graphql/is-nodejs-installed.graphql b/libs/feature-install-node-js/src/lib/graphql/is-nodejs-installed.graphql deleted file mode 100644 index f792ddbc8a..0000000000 --- a/libs/feature-install-node-js/src/lib/graphql/is-nodejs-installed.graphql +++ /dev/null @@ -1,5 +0,0 @@ -query IsNodejsInstalled { - isNodejsInstalled { - result - } -} diff --git a/libs/feature-install-node-js/src/lib/install-node-js.component.html b/libs/feature-install-node-js/src/lib/install-node-js.component.html deleted file mode 100644 index 9f3a03f99e..0000000000 --- a/libs/feature-install-node-js/src/lib/install-node-js.component.html +++ /dev/null @@ -1,43 +0,0 @@ -
- -
- -
- -
Just a little set up
-
- Angular Console requires that Node JS be installed on your computer. -
-
- - - - -
-
-
-
diff --git a/libs/feature-install-node-js/src/lib/install-node-js.component.scss b/libs/feature-install-node-js/src/lib/install-node-js.component.scss deleted file mode 100644 index a0def8d82c..0000000000 --- a/libs/feature-install-node-js/src/lib/install-node-js.component.scss +++ /dev/null @@ -1,59 +0,0 @@ -.empty-container { - padding: 48px; - - mat-card-content { - height: 120px; - width: 680px; - padding-left: 36px; - padding-right: 36px; - - mat-progress-bar { - padding-top: 24px; - } - } - - .install-progress .sub-headline { - margin-top: 16px; - margin-bottom: 0 !important; - } - - mat-card { - padding-top: 0; - padding-left: 0; - padding-right: 0; - min-width: 480px; - border-radius: 4px; - overflow: hidden; - } - - .code-image-container { - background-color: #333; - padding: 48px; - } - - .headline { - font-weight: 400; - letter-spacing: 0.01em; - font-size: 16px; - line-height: 24px; - color: rgba(0, 0, 0, 0.87); - margin-top: 16px; - text-align: center; - } - - .sub-headline { - margin-top: 8px; - font-size: 14px; - line-height: 20px; - font-weight: 400; - letter-spacing: 0.01em; - color: rgba(0, 0, 0, 0.54); - text-align: center; - margin-bottom: 16px; - } - - button mat-icon { - color: white; - margin-right: 8px; - } -} diff --git a/libs/feature-install-node-js/src/lib/install-node-js.component.ts b/libs/feature-install-node-js/src/lib/install-node-js.component.ts deleted file mode 100644 index 52fd24db74..0000000000 --- a/libs/feature-install-node-js/src/lib/install-node-js.component.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { Settings, Telemetry } from '@angular-console/utils'; -import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; -import { filter, first } from 'rxjs/operators'; - -import { IsNodejsInstalledGQL } from './generated/graphql'; - -@Component({ - changeDetection: ChangeDetectionStrategy.OnPush, - selector: 'angular-console-install-node-js', - templateUrl: './install-node-js.component.html', - styleUrls: ['./install-node-js.component.scss'] -}) -export class InstallNodeJsComponent implements OnInit { - constructor( - private readonly telemetry: Telemetry, - private readonly router: Router, - private readonly settings: Settings, - private readonly isNodejsInstalledGQL: IsNodejsInstalledGQL - ) {} - - ngOnInit() { - this.telemetry.screenViewed('Install Node'); - } - - installManually() { - this.settings.setInstallManually(true); - - // wait for the settings to update - this.isNodejsInstalledGQL - .watch() - .valueChanges.pipe( - filter((v: any) => v.data.isNodejsInstalled.result), - first() - ) - .subscribe(() => { - this.router.navigate(['/workspaces']); - }); - } -} diff --git a/libs/feature-install-node-js/tsconfig.json b/libs/feature-install-node-js/tsconfig.json deleted file mode 100644 index 1e1052869e..0000000000 --- a/libs/feature-install-node-js/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": [] - } -} diff --git a/libs/feature-install-node-js/tsconfig.lib.json b/libs/feature-install-node-js/tsconfig.lib.json deleted file mode 100644 index b74f95a635..0000000000 --- a/libs/feature-install-node-js/tsconfig.lib.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "target": "es2019", - "module": "esnext", - "moduleResolution": "node", - "declaration": true, - "sourceMap": true, - "inlineSources": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "importHelpers": true, - "types": [], - "lib": ["dom", "es2015"] - }, - "angularCompilerOptions": { - "annotateForClosureCompiler": true, - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "fullTemplateTypeCheck": true, - "strictInjectionParameters": true, - "flatModuleId": "AUTOGENERATED", - "flatModuleOutFile": "AUTOGENERATED" - }, - "exclude": ["src/test.ts", "**/*.spec.ts"] -} diff --git a/libs/feature-install-node-js/tslint.json b/libs/feature-install-node-js/tslint.json deleted file mode 100644 index 5a371c6a8d..0000000000 --- a/libs/feature-install-node-js/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "angular-console", "camelCase"], - "component-selector": [true, "element", "angular-console", "kebab-case"] - } -} diff --git a/libs/feature-run/src/index.ts b/libs/feature-run/src/index.ts deleted file mode 100644 index a218c41774..0000000000 --- a/libs/feature-run/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { TargetComponent } from './lib/target/target.component'; - -export * from './lib/feature-run.module'; diff --git a/libs/feature-run/src/lib/feature-run.module.ts b/libs/feature-run/src/lib/feature-run.module.ts deleted file mode 100644 index f13224110b..0000000000 --- a/libs/feature-run/src/lib/feature-run.module.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { FlexLayoutModule } from '@angular/flex-layout'; -import { ReactiveFormsModule } from '@angular/forms'; -import { - MatIconModule, - MatListModule, - MatOptionModule -} from '@angular/material'; -import { Route, RouterModule } from '@angular/router'; -import { UiModule } from '@angular-console/ui'; - -import { TargetComponent } from './target/target.component'; -import { TargetsComponent } from './targets/targets.component'; -import { NpmScriptComponent } from './npmscript/npmscript.component'; - -export const runRoutes: Route[] = [ - { - path: '', - component: TargetsComponent, - children: [ - { path: 'script/:script', component: NpmScriptComponent }, - { path: ':target/:project', component: TargetComponent }, - { path: '', pathMatch: 'full', component: TargetComponent } - ] - } -]; - -@NgModule({ - imports: [ - MatIconModule, - MatListModule, - FlexLayoutModule, - MatOptionModule, - CommonModule, - RouterModule, - ReactiveFormsModule, - UiModule - ], - declarations: [TargetsComponent, TargetComponent, NpmScriptComponent] -}) -export class FeatureRunModule {} diff --git a/libs/feature-run/src/lib/generated/graphql.ts b/libs/feature-run/src/lib/generated/graphql.ts deleted file mode 100644 index 4f4d26463c..0000000000 --- a/libs/feature-run/src/lib/generated/graphql.ts +++ /dev/null @@ -1,439 +0,0 @@ -export type Maybe = T | null; - -// ==================================================== -// Documents -// ==================================================== - -export namespace NpmRun { - export type Variables = { - path: string; - npmClient?: Maybe; - runCommand: string[]; - }; - - export type Mutation = { - __typename?: 'Mutation'; - - runNpm: Maybe; - }; - - export type RunNpm = { - __typename?: 'CommandStarted'; - - id: string; - }; -} - -export namespace NpmScripts { - export type Variables = { - path: string; - script: string; - }; - - export type Query = { - __typename?: 'Query'; - - workspace: Workspace; - }; - - export type Workspace = { - __typename?: 'Workspace'; - - npmScripts: NpmScripts[]; - }; - - export type NpmScripts = { - __typename?: 'NpmScript'; - - name: string; - - npmClient: Maybe; - - schema: Schema[]; - }; - - export type Schema = { - __typename?: 'Schema'; - - name: string; - - enum: Maybe; - - type: string; - - description: string; - - defaultValue: Maybe; - - required: boolean; - - positional: boolean; - }; -} - -export namespace Projects { - export type Variables = { - path: string; - project: string; - target: string; - }; - - export type Query = { - __typename?: 'Query'; - - workspace: Workspace; - }; - - export type Workspace = { - __typename?: 'Workspace'; - - projects: Projects[]; - }; - - export type Projects = { - __typename?: 'Project'; - - name: string; - - root: string; - - projectType: string; - - architect: Architect[]; - }; - - export type Architect = { - __typename?: 'Architect'; - - name: string; - - builder: string; - - options: Options; - - configurations: Configurations[]; - - schema: Schema[]; - }; - - export type Options = { - __typename?: 'Options'; - - defaultValues: DefaultValues[]; - }; - - export type DefaultValues = { - __typename?: 'FieldValue'; - - name: string; - - defaultValue: Maybe; - }; - - export type Configurations = { - __typename?: 'ArchitectConfigurations'; - - name: string; - - defaultValues: _DefaultValues[]; - }; - - export type _DefaultValues = { - __typename?: 'FieldValue'; - - name: string; - - defaultValue: Maybe; - }; - - export type Schema = { - __typename?: 'Schema'; - - name: string; - - enum: Maybe; - - type: string; - - description: string; - - defaultValue: Maybe; - - required: boolean; - - positional: boolean; - }; -} - -export namespace RunNg { - export type Variables = { - path: string; - runCommand: string[]; - }; - - export type Mutation = { - __typename?: 'Mutation'; - - runNg: Maybe; - }; - - export type RunNg = { - __typename?: 'CommandStarted'; - - id: string; - }; -} - -export namespace SchematicDocs { - export type Variables = { - path: string; - collectionName: string; - name: string; - }; - - export type Query = { - __typename?: 'Query'; - - workspace: Workspace; - }; - - export type Workspace = { - __typename?: 'Workspace'; - - docs: Docs; - }; - - export type Docs = { - __typename?: 'Docs'; - - schematicDocs: SchematicDocs[]; - }; - - export type SchematicDocs = { - __typename?: 'Doc'; - - id: string; - - description: Maybe; - - prop: Maybe; - }; -} - -export namespace WorkspaceAndProjects { - export type Variables = { - path: string; - }; - - export type Query = { - __typename?: 'Query'; - - workspace: Workspace; - }; - - export type Workspace = { - __typename?: 'Workspace'; - - npmScripts: NpmScripts[]; - - projects: Projects[]; - }; - - export type NpmScripts = { - __typename?: 'NpmScript'; - - name: string; - }; - - export type Projects = { - __typename?: 'Project'; - - name: string; - - root: string; - - projectType: string; - - architect: Architect[]; - }; - - export type Architect = { - __typename?: 'Architect'; - - name: string; - - project: string; - }; -} - -// ==================================================== -// START: Apollo Angular template -// ==================================================== - -import { Injectable } from '@angular/core'; -import * as Apollo from 'apollo-angular'; - -import gql from 'graphql-tag'; - -// ==================================================== -// Apollo Services -// ==================================================== - -@Injectable({ - providedIn: 'root' -}) -export class NpmRunGQL extends Apollo.Mutation< - NpmRun.Mutation, - NpmRun.Variables -> { - document: any = gql` - mutation NpmRun( - $path: String! - $npmClient: String - $runCommand: [String!]! - ) { - runNpm(path: $path, npmClient: $npmClient, runCommand: $runCommand) { - id - } - } - `; -} -@Injectable({ - providedIn: 'root' -}) -export class NpmScriptsGQL extends Apollo.Query< - NpmScripts.Query, - NpmScripts.Variables -> { - document: any = gql` - query NpmScripts($path: String!, $script: String!) { - workspace(path: $path) { - npmScripts(name: $script) { - name - npmClient - schema { - name - enum - type - description - defaultValue - required - positional - } - } - } - } - `; -} -@Injectable({ - providedIn: 'root' -}) -export class ProjectsGQL extends Apollo.Query< - Projects.Query, - Projects.Variables -> { - document: any = gql` - query Projects($path: String!, $project: String!, $target: String!) { - workspace(path: $path) { - projects(name: $project) { - name - root - projectType - architect(name: $target) { - name - builder - options { - defaultValues { - name - defaultValue - } - } - configurations { - name - defaultValues { - name - defaultValue - } - } - schema { - name - enum - type - description - defaultValue - required - positional - } - } - } - } - } - `; -} -@Injectable({ - providedIn: 'root' -}) -export class RunNgGQL extends Apollo.Mutation { - document: any = gql` - mutation RunNg($path: String!, $runCommand: [String!]!) { - runNg(path: $path, runCommand: $runCommand) { - id - } - } - `; -} -@Injectable({ - providedIn: 'root' -}) -export class SchematicDocsGQL extends Apollo.Query< - SchematicDocs.Query, - SchematicDocs.Variables -> { - document: any = gql` - query SchematicDocs( - $path: String! - $collectionName: String! - $name: String! - ) { - workspace(path: $path) { - docs { - schematicDocs(collectionName: $collectionName, name: $name) { - id - description - prop - } - } - } - } - `; -} -@Injectable({ - providedIn: 'root' -}) -export class WorkspaceAndProjectsGQL extends Apollo.Query< - WorkspaceAndProjects.Query, - WorkspaceAndProjects.Variables -> { - document: any = gql` - query WorkspaceAndProjects($path: String!) { - workspace(path: $path) { - npmScripts { - name - } - projects { - name - root - projectType - architect { - name - project - } - } - } - } - `; -} - -// ==================================================== -// END: Apollo Angular template -// ==================================================== diff --git a/libs/feature-run/src/lib/graphql/npm-run.graphql b/libs/feature-run/src/lib/graphql/npm-run.graphql deleted file mode 100644 index c0b08676cf..0000000000 --- a/libs/feature-run/src/lib/graphql/npm-run.graphql +++ /dev/null @@ -1,5 +0,0 @@ -mutation NpmRun($path: String!, $npmClient: String, $runCommand: [String!]!) { - runNpm(path: $path, npmClient: $npmClient, runCommand: $runCommand) { - id - } -} diff --git a/libs/feature-run/src/lib/graphql/npm-scripts.graphql b/libs/feature-run/src/lib/graphql/npm-scripts.graphql deleted file mode 100644 index 9062cc0584..0000000000 --- a/libs/feature-run/src/lib/graphql/npm-scripts.graphql +++ /dev/null @@ -1,17 +0,0 @@ -query NpmScripts($path: String!, $script: String!) { - workspace(path: $path) { - npmScripts(name: $script) { - name - npmClient - schema { - name - enum - type - description - defaultValue - required - positional - } - } - } -} diff --git a/libs/feature-run/src/lib/graphql/projects.graphql b/libs/feature-run/src/lib/graphql/projects.graphql deleted file mode 100644 index 4ed29161bb..0000000000 --- a/libs/feature-run/src/lib/graphql/projects.graphql +++ /dev/null @@ -1,35 +0,0 @@ -query Projects($path: String!, $project: String!, $target: String!) { - workspace(path: $path) { - projects(name: $project) { - name - root - projectType - architect(name: $target) { - name - builder - options { - defaultValues { - name - defaultValue - } - } - configurations { - name - defaultValues { - name - defaultValue - } - } - schema { - name - enum - type - description - defaultValue - required - positional - } - } - } - } -} diff --git a/libs/feature-run/src/lib/graphql/run-ng.graphql b/libs/feature-run/src/lib/graphql/run-ng.graphql deleted file mode 100644 index 75c1cf7d3d..0000000000 --- a/libs/feature-run/src/lib/graphql/run-ng.graphql +++ /dev/null @@ -1,5 +0,0 @@ -mutation RunNg($path: String!, $runCommand: [String!]!) { - runNg(path: $path, runCommand: $runCommand) { - id - } -} diff --git a/libs/feature-run/src/lib/graphql/schematic-docs.graphql b/libs/feature-run/src/lib/graphql/schematic-docs.graphql deleted file mode 100644 index e96242865b..0000000000 --- a/libs/feature-run/src/lib/graphql/schematic-docs.graphql +++ /dev/null @@ -1,11 +0,0 @@ -query SchematicDocs($path: String!, $collectionName: String!, $name: String!) { - workspace(path: $path) { - docs { - schematicDocs(collectionName: $collectionName, name: $name) { - id - description - prop - } - } - } -} diff --git a/libs/feature-run/src/lib/graphql/workspace-and-projects.graphql b/libs/feature-run/src/lib/graphql/workspace-and-projects.graphql deleted file mode 100644 index dd6770b21e..0000000000 --- a/libs/feature-run/src/lib/graphql/workspace-and-projects.graphql +++ /dev/null @@ -1,17 +0,0 @@ -query WorkspaceAndProjects($path: String!) { - workspace(path: $path) { - npmScripts { - name - } - - projects { - name - root - projectType - architect { - name - project - } - } - } -} diff --git a/libs/feature-run/src/lib/npmscript/npmscript.component.css b/libs/feature-run/src/lib/npmscript/npmscript.component.css deleted file mode 100644 index b9bc65ea45..0000000000 --- a/libs/feature-run/src/lib/npmscript/npmscript.component.css +++ /dev/null @@ -1,3 +0,0 @@ -:host { - width: 100%; -} diff --git a/libs/feature-run/src/lib/npmscript/npmscript.component.html b/libs/feature-run/src/lib/npmscript/npmscript.component.html deleted file mode 100644 index 38ac970e1e..0000000000 --- a/libs/feature-run/src/lib/npmscript/npmscript.component.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - Click the Run button to start this task - diff --git a/libs/feature-run/src/lib/npmscript/npmscript.component.ts b/libs/feature-run/src/lib/npmscript/npmscript.component.ts deleted file mode 100644 index f95e6b261c..0000000000 --- a/libs/feature-run/src/lib/npmscript/npmscript.component.ts +++ /dev/null @@ -1,155 +0,0 @@ -import { NpmScript } from '@angular-console/schema'; -import { - FlagsComponent, - TaskRunnerComponent, - CommandOutputComponent -} from '@angular-console/ui'; -import { - IncrementalCommandOutput, - CommandRunner, - Serializer -} from '@angular-console/utils'; -import { - ChangeDetectionStrategy, - Component, - OnInit, - ViewChild -} from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { ContextualActionBarService } from '@nrwl/angular-console-enterprise-frontend'; -import { BehaviorSubject, Observable, of, Subject } from 'rxjs'; -import { - map, - publishReplay, - refCount, - switchMap, - tap, - withLatestFrom -} from 'rxjs/operators'; -import { NpmRunGQL, NpmScriptsGQL } from '../generated/graphql'; - -@Component({ - changeDetection: ChangeDetectionStrategy.OnPush, - selector: 'angular-console-npmscript', - templateUrl: './npmscript.component.html', - styleUrls: ['./npmscript.component.css'] -}) -export class NpmScriptComponent implements OnInit { - script$: Observable; - commandArray$ = new BehaviorSubject<{ commands: string[]; valid: boolean }>({ - commands: [], - valid: true - }); - command$: Observable; - commandOutput$: Observable; - @ViewChild(CommandOutputComponent, { static: false }) - out: CommandOutputComponent; - @ViewChild(TaskRunnerComponent, { static: false }) - taskRunner: TaskRunnerComponent; - @ViewChild(FlagsComponent, { static: false }) flags: FlagsComponent; - private readonly ngRun$ = new Subject(); - private readonly ngRunDisabled$ = new BehaviorSubject(true); - - constructor( - private readonly route: ActivatedRoute, - private readonly runner: CommandRunner, - private readonly serializer: Serializer, - private readonly contextActionService: ContextualActionBarService, - private readonly npmRunGQL: NpmRunGQL, - private readonly npmScriptsGQL: NpmScriptsGQL - ) {} - - ngOnInit() { - const targetDescription$ = this.route.params.pipe( - map(p => { - if (!p.script) return null; - return { - script: decodeURIComponent(p.script), - path: p.path - }; - }) - ); - - this.script$ = targetDescription$.pipe( - switchMap(p => { - if (!p) { - return of(); - } - if (this.out) { - this.out.reset(); - } - - return this.npmScriptsGQL.fetch(p); - }), - map((r: any) => { - const script: NpmScript = r.data.workspace.npmScripts[0]; - return { - ...script, - schema: this.serializer.normalizeTarget(script.name, script.schema) - }; - }), - tap((script: NpmScript) => { - const contextTitle = this.getContextTitle(script); - - this.contextActionService.contextualActions$.next({ - contextTitle, - actions: [ - { - invoke: this.ngRun$, - disabled: this.ngRunDisabled$, - name: 'Run' - } - ] - }); - }), - publishReplay(1), - refCount() - ); - - this.commandOutput$ = this.ngRun$.pipe( - withLatestFrom(this.commandArray$, this.script$), - tap(() => { - this.flags.hideFields(); - this.taskRunner.terminalVisible$.next(true); - }), - switchMap(([_, c, s]) => { - this.out.reset(); - return this.runner.runCommand( - this.npmRunGQL.mutate({ - path: this.path(), - npmClient: s.npmClient || '', - runCommand: c.commands - }), - false, - this.out.terminal.currentCols - ); - }), - publishReplay(1), - refCount() - ); - - this.command$ = this.commandArray$.pipe( - withLatestFrom(this.script$), - map( - ([c, s]) => `${s.npmClient} ${this.serializer.argsToString(c.commands)}` - ) - ); - } - - getContextTitle(script: NpmScript) { - return `${script.npmClient} run ${script.name}`; - } - - path() { - return this.route.snapshot.params.path; - } - - onRun() { - this.ngRun$.next(); - } - - onFlagsChange(e: { commands: string[]; valid: boolean }) { - setTimeout(() => this.commandArray$.next(e), 0); - this.ngRunDisabled$.next(!e.valid); - } -} diff --git a/libs/feature-run/src/lib/target/target.component.css b/libs/feature-run/src/lib/target/target.component.css deleted file mode 100644 index b9bc65ea45..0000000000 --- a/libs/feature-run/src/lib/target/target.component.css +++ /dev/null @@ -1,3 +0,0 @@ -:host { - width: 100%; -} diff --git a/libs/feature-run/src/lib/target/target.component.html b/libs/feature-run/src/lib/target/target.component.html deleted file mode 100644 index 8535dc0131..0000000000 --- a/libs/feature-run/src/lib/target/target.component.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Sorry, we don't yet support build analyzer for this type of build. - Currently we support apps which build with - @angular-devkit/build-angular:browser - - - - Click the run button to start building your application. When the build - completes you can analyze your bundle here. - - - - - - - Click the Run button to start. - diff --git a/libs/feature-run/src/lib/target/target.component.ts b/libs/feature-run/src/lib/target/target.component.ts deleted file mode 100644 index 50e7d43770..0000000000 --- a/libs/feature-run/src/lib/target/target.component.ts +++ /dev/null @@ -1,207 +0,0 @@ -import { Architect, Project } from '@angular-console/schema'; -import { - CommandOutputComponent, - FlagsComponent, - TaskRunnerComponent -} from '@angular-console/ui'; -import { - CommandRunner, - IncrementalCommandOutput, - Serializer -} from '@angular-console/utils'; -import { - ChangeDetectionStrategy, - Component, - OnInit, - ViewChild -} from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { ContextualActionBarService } from '@nrwl/angular-console-enterprise-frontend'; -import { BehaviorSubject, Observable, of, Subject } from 'rxjs'; -import { - first, - map, - publishReplay, - refCount, - shareReplay, - switchMap, - tap, - withLatestFrom -} from 'rxjs/operators'; - -import { ProjectsGQL, RunNgGQL } from '../generated/graphql'; - -@Component({ - changeDetection: ChangeDetectionStrategy.OnPush, - selector: 'angular-console-target', - templateUrl: './target.component.html', - styleUrls: ['./target.component.css'] -}) -export class TargetComponent implements OnInit { - project$: Observable; - commandArray$ = new BehaviorSubject<{ commands: string[]; valid: boolean }>({ - commands: [], - valid: true - }); - command$: Observable; - commandOutput$: Observable; - @ViewChild(CommandOutputComponent, { static: false }) - out: CommandOutputComponent; - @ViewChild(TaskRunnerComponent, { static: false }) - taskRunner: TaskRunnerComponent; - @ViewChild(FlagsComponent, { static: false }) flags: FlagsComponent; - - docs$: Observable = of(); - - showOutputInFlags$: Observable; - - private readonly ngRun$ = new Subject(); - private readonly ngRunDisabled$ = new BehaviorSubject(true); - - constructor( - private readonly route: ActivatedRoute, - private readonly runner: CommandRunner, - private readonly serializer: Serializer, - private readonly contextActionService: ContextualActionBarService, - private readonly projectsGQL: ProjectsGQL, - private readonly runNgGQL: RunNgGQL - ) {} - - ngOnInit() { - const targetDescription$ = this.route.params.pipe( - map(p => { - if (!p.target || !p.project) return null; - return { - target: decodeURIComponent(p.target), - project: decodeURIComponent(p.project), - path: p.path - }; - }) - ); - - this.project$ = targetDescription$.pipe( - switchMap(p => { - if (!p) { - return of(); - } - if (this.out) { - this.out.reset(); - } - - return this.projectsGQL.fetch(p); - }), - map((r: any) => { - const project: Project = r.data.workspace.projects[0]; - const architect = project.architect.map(a => ({ - ...a, - schema: this.serializer.normalizeTarget(a.builder, a.schema) - })); - return { - ...project, - architect - }; - }), - tap((project: Project) => { - const contextTitle = this.getContextTitle(project); - - this.contextActionService.contextualActions$.next({ - contextTitle, - actions: [ - { - invoke: this.ngRun$, - disabled: this.ngRunDisabled$, - name: 'Run' - } - ] - }); - }), - publishReplay(1), - refCount() - ); - - this.commandOutput$ = this.ngRun$.pipe( - withLatestFrom(this.commandArray$), - tap(() => { - this.flags.hideFields(); - this.taskRunner.terminalVisible$.next(true); - }), - switchMap(([_, c]) => { - this.out.reset(); - return this.runner.runCommand( - this.runNgGQL.mutate({ - path: this.path(), - runCommand: c.commands - }), - false, - this.out.terminal.currentCols - ); - }), - publishReplay(), - refCount() - ); - - this.command$ = this.commandArray$.pipe( - map(c => `ng ${this.serializer.argsToString(c.commands)}`), - shareReplay() - ); - - this.showOutputInFlags$ = this.commandArray$.pipe( - first(c => Boolean(c.commands.length)), - map(c => c.commands[0] === 'build'), - shareReplay() - ); - } - - getContextTitle(project: Project) { - const prefix = this.getPrefix(project.architect[0].name, project.name); - return `ng ${prefix.join(' ')}`; - } - - getPrefix(targetName: string, projectName: string) { - if (this.runSyntax(targetName)) { - return ['run', `${projectName}:${targetName}`]; - } else { - return [targetName, projectName]; - } - } - - runSyntax(targetName: string) { - return !( - targetName === 'build' || - targetName === 'serve' || - targetName === 'e2e' || - targetName === 'test' || - targetName === 'lint' - ); - } - - path() { - return this.route.snapshot.params.path; - } - - onRun() { - this.ngRun$.next(); - } - - onFlagsChange(e: { commands: string[]; valid: boolean }) { - setTimeout(() => this.commandArray$.next(e), 0); - this.ngRunDisabled$.next(!e.valid); - } - - initSourceMapAndStatsJson(architect: Architect) { - if (architect.name !== 'build') { - return; - } - - const defaultValues = architect.configurations[0] - ? architect.configurations[0].defaultValues - : []; - const sourceMap = defaultValues.find(value => value.name === 'sourceMap'); - const statsJson = defaultValues.find(value => value.name === 'statsJson'); - - return { - sourceMap: sourceMap ? sourceMap.defaultValue : true, - statsJson: statsJson ? statsJson.defaultValue : true - }; - } -} diff --git a/libs/feature-run/src/lib/targets/targets.component.html b/libs/feature-run/src/lib/targets/targets.component.html deleted file mode 100644 index 481c3607cf..0000000000 --- a/libs/feature-run/src/lib/targets/targets.component.html +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/libs/feature-run/src/lib/targets/targets.component.ts b/libs/feature-run/src/lib/targets/targets.component.ts deleted file mode 100644 index f51be18db4..0000000000 --- a/libs/feature-run/src/lib/targets/targets.component.ts +++ /dev/null @@ -1,186 +0,0 @@ -import { NpmScripts, Project } from '@angular-console/schema'; -import { Task, TaskCollection, TaskCollections } from '@angular-console/ui'; -import { RouterNavigation, Telemetry } from '@angular-console/utils'; -import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; -import { combineLatest, Observable } from 'rxjs'; -import { - distinctUntilChanged, - filter, - map, - startWith, - switchMap -} from 'rxjs/operators'; - -import { WorkspaceAndProjectsGQL } from '../generated/graphql'; - -interface Target { - projectName: string; - targetName: string; -} - -@Component({ - changeDetection: ChangeDetectionStrategy.OnPush, - selector: 'angular-console-targets', - templateUrl: './targets.component.html' -}) -export class TargetsComponent implements OnInit { - private readonly projectsAndNpmScripts$: Observable< - Array - > = this.route.params.pipe( - map(m => m.path), - switchMap(path => { - return this.workspaceAndProjectsGQL.fetch({ - path - }); - }), - map(r => { - const sortedProjects = (r as any).data.workspace.projects - .map((c: any) => { - const s = [...c.architect].sort((a, b) => - a.name.localeCompare(b.name) - ); - return { ...c, architect: s }; - }) - .filter((p: any) => p.architect.length > 0); - - const scripts = { - name: 'package.json scripts', - scripts: (r as any).data.workspace.npmScripts - }; - return [scripts, ...sortedProjects]; - }) - ); - - private readonly selectedTargetId$: Observable< - Target - > = this.router.events.pipe( - filter(event => event instanceof NavigationEnd), - startWith(null), - map(() => { - const firstChild = this.route.snapshot.firstChild; - if (firstChild) { - if (firstChild.params.script) { - return { - projectName: 'package.json scripts', - targetName: decodeURIComponent(firstChild.params.script) - }; - } else { - return { - projectName: decodeURIComponent(firstChild.params.project), - targetName: decodeURIComponent(firstChild.params.target) - }; - } - } - return { - projectName: '', - targetName: '' - }; - }), - distinctUntilChanged( - (a: Target, b: Target) => - a.projectName === b.projectName && a.targetName === b.targetName - ) - ); - - readonly taskCollections$: Observable< - TaskCollections - > = combineLatest([this.projectsAndNpmScripts$, this.selectedTargetId$]).pipe( - map(([projects, target]) => { - const collections: Array> = projects.map( - projectOrScripts => { - if ((projectOrScripts as any).projectType) { - const project = projectOrScripts as Project; - return { - collectionName: project.name, - tasks: project.architect.map(builder => ({ - taskName: builder.name, - task: { - projectName: project.name, - targetName: builder.name - } - })) - }; - } else { - const scripts = projectOrScripts as NpmScripts; - return { - collectionName: projectOrScripts.name, - tasks: scripts.scripts.map(script => ({ - taskName: script.name, - task: { - projectName: scripts.name, - targetName: script.name - } - })) - }; - } - } - ); - - const taskCollections: TaskCollections = { - selectedTask: this.getSelectedTask(collections, target), - taskCollections: collections - }; - - return taskCollections; - }) - ); - - constructor( - private readonly telemetry: Telemetry, - private readonly route: ActivatedRoute, - private readonly router: Router, - private readonly workspaceAndProjectsGQL: WorkspaceAndProjectsGQL, - private readonly locationExt: RouterNavigation - ) {} - - ngOnInit() { - this.telemetry.screenViewed('Run Targets'); - } - - navigateToSelectedTarget(target: Target | null) { - if (target && isNpmScript(target)) { - this.router.navigate(['script', encodeURIComponent(target.targetName)], { - relativeTo: this.route - }); - } else if (target) { - this.router.navigate( - [ - encodeURIComponent(target.targetName), - encodeURIComponent(target.projectName) - ], - { relativeTo: this.route } - ); - } else { - this.locationExt.navigateToPrevious(['.'], { - relativeTo: this.route - }); - } - } - - getSelectedTask( - taskCollections: Array>, - target: Target - ): Task | null { - if (!target.projectName || !target.targetName) { - return null; - } - - const selectedTask = taskCollections - .reduce( - (targets, collection) => [...targets, ...collection.tasks], - [] as Array> - ) - .find( - ({ task }) => - task.projectName === target.projectName && - task.targetName === target.targetName - ); - - return selectedTask || null; - } -} - -function isNpmScript(target: Target) { - return target.projectName.indexOf('package.json') > -1; -} diff --git a/libs/feature-run/tsconfig.json b/libs/feature-run/tsconfig.json deleted file mode 100644 index 1e1052869e..0000000000 --- a/libs/feature-run/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": [] - } -} diff --git a/libs/feature-run/tsconfig.lib.json b/libs/feature-run/tsconfig.lib.json deleted file mode 100644 index b74f95a635..0000000000 --- a/libs/feature-run/tsconfig.lib.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "target": "es2019", - "module": "esnext", - "moduleResolution": "node", - "declaration": true, - "sourceMap": true, - "inlineSources": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "importHelpers": true, - "types": [], - "lib": ["dom", "es2015"] - }, - "angularCompilerOptions": { - "annotateForClosureCompiler": true, - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "fullTemplateTypeCheck": true, - "strictInjectionParameters": true, - "flatModuleId": "AUTOGENERATED", - "flatModuleOutFile": "AUTOGENERATED" - }, - "exclude": ["src/test.ts", "**/*.spec.ts"] -} diff --git a/libs/feature-run/tslint.json b/libs/feature-run/tslint.json deleted file mode 100644 index 5a371c6a8d..0000000000 --- a/libs/feature-run/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "angular-console", "camelCase"], - "component-selector": [true, "element", "angular-console", "kebab-case"] - } -} diff --git a/libs/feature-settings/src/index.ts b/libs/feature-settings/src/index.ts deleted file mode 100644 index 547034cf0f..0000000000 --- a/libs/feature-settings/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './lib/feature-settings.module'; diff --git a/libs/feature-settings/src/lib/feature-settings.module.ts b/libs/feature-settings/src/lib/feature-settings.module.ts deleted file mode 100644 index 62f570a4f1..0000000000 --- a/libs/feature-settings/src/lib/feature-settings.module.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { NgModule } from '@angular/core'; -import { FlexLayoutModule } from '@angular/flex-layout'; -import { ReactiveFormsModule } from '@angular/forms'; -import { CommonModule } from '@angular/common'; -import { Route } from '@angular/router'; -import { - MatFormFieldModule, - MatSlideToggleModule, - MatListModule, - MatInputModule, - MatSelectModule -} from '@angular/material'; -import { SettingsComponent } from './settings/settings.component'; - -export const settingsRoutes: Route[] = [ - { - path: '', - component: SettingsComponent - } -]; - -@NgModule({ - imports: [ - CommonModule, - FlexLayoutModule, - MatSlideToggleModule, - MatInputModule, - MatListModule, - MatSelectModule, - MatFormFieldModule, - ReactiveFormsModule - ], - declarations: [SettingsComponent], - exports: [SettingsComponent] -}) -export class FeatureSettingsModule {} diff --git a/libs/feature-settings/src/lib/generated/graphql.ts b/libs/feature-settings/src/lib/generated/graphql.ts deleted file mode 100644 index 076b4f0cad..0000000000 --- a/libs/feature-settings/src/lib/generated/graphql.ts +++ /dev/null @@ -1 +0,0 @@ -export type Maybe = T | null; diff --git a/libs/feature-settings/src/lib/settings/settings.component.html b/libs/feature-settings/src/lib/settings/settings.component.html deleted file mode 100644 index ddddbb8e7d..0000000000 --- a/libs/feature-settings/src/lib/settings/settings.component.html +++ /dev/null @@ -1,69 +0,0 @@ -
-
-
-
-

Send anonymous usage data

-

- Help make Angular Console better by sending anonymous usage data to - the Angular Console team. -

-
- -
-
-
-

Disable Animations

-

Disable all animations for a snappier feel

-
- -
-
-
-

Use detailed status

-

- Enables visual status for certain tasks (e.g. build, test, etc.). -

-
- -
-
-
-

Use WSL

-

Runs tasks using WSL

-
- -
-
-
-

Use NVM

-

Runs tasks using Node Version Manager

-
- -
-
-
diff --git a/libs/feature-settings/src/lib/settings/settings.component.scss b/libs/feature-settings/src/lib/settings/settings.component.scss deleted file mode 100644 index d24a56aaf1..0000000000 --- a/libs/feature-settings/src/lib/settings/settings.component.scss +++ /dev/null @@ -1,36 +0,0 @@ -@import '../../../../ui/src/lib/variables'; - -h4 { - font-weight: 600; - color: mat-color($grey-darker); - margin: 6px 0 0 0; -} - -p { - margin: 0; - color: mat-color($grey-dark); - padding-bottom: 20px; -} - -mat-form-field { - width: 33.33%; - min-width: 250px; - max-width: 350px; - margin-bottom: 0; -} - -.container { - margin-left: auto; - margin-right: auto; - margin-top: 24px; - - // Set the max-width to an absoulte value to avoid a weird layout on even wider screens - max-width: 840px; - - @media (max-width: $smallScreen) { - width: auto; - max-width: initial; - margin-left: 24px; - margin-right: 24px; - } -} diff --git a/libs/feature-settings/src/lib/settings/settings.component.ts b/libs/feature-settings/src/lib/settings/settings.component.ts deleted file mode 100644 index de2987a90d..0000000000 --- a/libs/feature-settings/src/lib/settings/settings.component.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Settings, Telemetry } from '@angular-console/utils'; -import { Component, OnDestroy, OnInit } from '@angular/core'; -import { NavigationEnd, Router } from '@angular/router'; -import { ContextualActionBarService } from '@nrwl/angular-console-enterprise-frontend'; -import { Subject } from 'rxjs'; -import { filter, takeUntil } from 'rxjs/operators'; - -@Component({ - selector: 'angular-console-settings', - templateUrl: './settings.component.html', - styleUrls: ['./settings.component.scss'] -}) -export class SettingsComponent implements OnDestroy, OnInit { - destroyed$ = new Subject(); - - constructor( - private readonly telemetry: Telemetry, - readonly settings: Settings, - private readonly contextualActionBarService: ContextualActionBarService, - router: Router - ) { - router.events - .pipe( - filter((e): e is NavigationEnd => e instanceof NavigationEnd), - takeUntil(this.destroyed$) - ) - .subscribe(e => { - if (e.urlAfterRedirects === '/settings') { - // TODO: This logic belong within the settings component after electron redesign. - this.contextualActionBarService.breadcrumbs$.next([ - { title: 'Settings' } - ]); - } - }); - } - - ngOnInit() { - this.telemetry.screenViewed('Settings'); - } - - ngOnDestroy() { - this.destroyed$.next(); - this.destroyed$.complete(); - } - - toggleDataCollection(x: boolean) { - this.settings.setCanCollectData(x); - } -} diff --git a/libs/feature-settings/tsconfig.json b/libs/feature-settings/tsconfig.json deleted file mode 100644 index 1e1052869e..0000000000 --- a/libs/feature-settings/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": [] - } -} diff --git a/libs/feature-settings/tsconfig.lib.json b/libs/feature-settings/tsconfig.lib.json deleted file mode 100644 index b74f95a635..0000000000 --- a/libs/feature-settings/tsconfig.lib.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "target": "es2019", - "module": "esnext", - "moduleResolution": "node", - "declaration": true, - "sourceMap": true, - "inlineSources": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "importHelpers": true, - "types": [], - "lib": ["dom", "es2015"] - }, - "angularCompilerOptions": { - "annotateForClosureCompiler": true, - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "fullTemplateTypeCheck": true, - "strictInjectionParameters": true, - "flatModuleId": "AUTOGENERATED", - "flatModuleOutFile": "AUTOGENERATED" - }, - "exclude": ["src/test.ts", "**/*.spec.ts"] -} diff --git a/libs/feature-settings/tslint.json b/libs/feature-settings/tslint.json deleted file mode 100644 index 16160e82e0..0000000000 --- a/libs/feature-settings/tslint.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [ - true, - "attribute", - "angular-console-settings", - "camelCase" - ], - "component-selector": [ - true, - "element", - "angular-console-settings", - "kebab-case" - ] - } -} diff --git a/libs/feature-workspaces/src/lib/feature-workspaces.module.ts b/libs/feature-workspaces/src/lib/feature-workspaces.module.ts index b6ab31c61f..686940ede0 100644 --- a/libs/feature-workspaces/src/lib/feature-workspaces.module.ts +++ b/libs/feature-workspaces/src/lib/feature-workspaces.module.ts @@ -1,19 +1,3 @@ -import { - extensionsRoutes, - FeatureExtensionsModule -} from '@angular-console/feature-extensions'; -import { - FeatureGenerateModule, - generateRoutes, - SchematicComponent -} from '@angular-console/feature-generate'; -import { - FeatureRunModule, - runRoutes, - TargetComponent -} from '@angular-console/feature-run'; -import { settingsRoutes } from '@angular-console/feature-settings'; -import { UiModule } from '@angular-console/ui'; import { NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { Route, RouterModule } from '@angular/router'; @@ -22,9 +6,10 @@ import { connectWorkspaceRoutes } from '@nrwl/angular-console-enterprise-frontend'; -import { ProjectsComponent } from './projects/projects.component'; import { WorkspaceComponent } from './workspace/workspace.component'; -import { FilterMenuComponent } from './projects/filter-menu/filter-menu.component'; +import { HttpClientModule } from '@angular/common/http'; +import { FlexLayoutModule } from '@angular/flex-layout'; +import { CommonModule } from '@angular/common'; export type FeatureWorkspaceRouteState = | 'workspaces' @@ -40,44 +25,15 @@ export const workspaceRoutes: Route[] = [ path: 'connect', children: connectRootRoutes }, - { path: 'settings', children: settingsRoutes }, { path: 'workspace/:path', component: WorkspaceComponent, data: { state: WORKSPACE }, children: [ - { - data: { state: 'projects' }, - path: 'projects', - component: ProjectsComponent, - children: [ - { - path: 'generate/:collection/:schematic', - component: SchematicComponent - }, - { - path: 'task/:target/:project', - component: TargetComponent - } - ] - }, - { path: '', pathMatch: 'full', redirectTo: 'projects' }, - { - data: { state: 'extensions' }, - path: 'extensions', - children: extensionsRoutes - }, { path: 'connect', children: [...connectWorkspaceRoutes, ...connectRootRoutes] - }, - { - data: { state: 'generate' }, - path: 'generate', - children: generateRoutes - }, - { data: { state: 'tasks' }, path: 'tasks', children: runRoutes }, - { path: 'settings', children: settingsRoutes } + } ] } ]; @@ -85,12 +41,13 @@ export const workspaceRoutes: Route[] = [ @NgModule({ imports: [ RouterModule, - FeatureExtensionsModule, - FeatureGenerateModule, - FeatureRunModule, ReactiveFormsModule, - UiModule + HttpClientModule, + CommonModule, + FlexLayoutModule, + ReactiveFormsModule, + RouterModule ], - declarations: [ProjectsComponent, WorkspaceComponent, FilterMenuComponent] + declarations: [WorkspaceComponent] }) export class FeatureWorkspacesModule {} diff --git a/libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.html b/libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.html deleted file mode 100644 index c993008abe..0000000000 --- a/libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.html +++ /dev/null @@ -1,30 +0,0 @@ -
- - - {{ filterFormControl.value ? 'clear' : 'filter_list' }} - -
- - - {{ a.displayText }} - - - - diff --git a/libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.scss b/libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.scss deleted file mode 100644 index fcde177dad..0000000000 --- a/libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.scss +++ /dev/null @@ -1,34 +0,0 @@ -.filter-container { - background-color: white; - border-bottom: 1px solid rgba(0, 0, 0, 0.12); - height: 48px; - min-height: 48px; - max-height: 48px; - position: sticky; - top: 0; - z-index: 2; - - input { - background: none; - background-color: none; - outline: none; - border: none; - font-size: 16px; - padding: 0 16px; - } - - .filter-icon { - cursor: pointer; - margin-right: 12px; - color: rgba(0, 0, 0, 0.87); - height: 28px; - width: 28px; - font-size: 28px; - position: relative; - top: -1px; - } -} - -mat-list { - padding: 0 !important; -} diff --git a/libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.ts b/libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.ts deleted file mode 100644 index 514515e347..0000000000 --- a/libs/feature-workspaces/src/lib/projects/filter-menu/filter-menu.component.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Component, ChangeDetectionStrategy, Input } from '@angular/core'; -import { FormControl } from '@angular/forms'; -import { Observable } from 'apollo-link'; - -export interface FilterMenuLink { - displayText: string; - link?: any; // Optional to indicate section header -} - -@Component({ - selector: 'angular-console-filter-menu', - templateUrl: './filter-menu.component.html', - styleUrls: ['./filter-menu.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class FilterMenuComponent { - @Input() filterFormControl: FormControl; - @Input() links$: Observable; -} diff --git a/libs/feature-workspaces/src/lib/projects/projects.component.html b/libs/feature-workspaces/src/lib/projects/projects.component.html deleted file mode 100644 index ce5479d6cc..0000000000 --- a/libs/feature-workspaces/src/lib/projects/projects.component.html +++ /dev/null @@ -1,114 +0,0 @@ -
-
- - - {{ projectFilterFormControl.value ? 'clear' : 'filter_list' }} - -
- - - - - - - - - - - - - - - - -
- - - - favorite_border - - favorite -
{{ p.projectType }}
-
{{ p.name }}
-
- folder_open - {{ p.root }} -
-
- - -
-
-
-
-
-
-
-
- -
- -
diff --git a/libs/feature-workspaces/src/lib/projects/projects.component.scss b/libs/feature-workspaces/src/lib/projects/projects.component.scss deleted file mode 100644 index 6cd9d65d17..0000000000 --- a/libs/feature-workspaces/src/lib/projects/projects.component.scss +++ /dev/null @@ -1,165 +0,0 @@ -:host { - background: white; - position: relative; - overflow: hidden; -} - -.route-button { - text-transform: capitalize; -} - -mat-list-item { - border-bottom: 1px solid rgba(0, 0, 0, 0.12); - - mat-icon { - cursor: pointer; - color: rgb(128, 128, 128); - transform: scale(1); - transition: all 0.1s ease-in-out; - - &:hover { - color: rgba(0, 0, 0, 0.87); - transform: scale(1.05); - } - - &.favorite-icon:hover { - color: #a53339; - } - - &.favorited { - color: #bb3a3f; - } - } -} - -.field-viewport { - position: relative; -} - -.projects-container { - z-index: 1; - position: relative; - overflow: hidden; - background: white; -} - -mat-list[dense] { - padding: 0 !important; -} - -.project-action-button-container { - height: 34px; - max-height: 34px; - min-height: 34px; - overflow: hidden; -} - -.nested-outlet-container { - overflow: hidden; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: 0; - background: #f0f0f0; -} - -.project-card { - padding: 16px !important; - padding-bottom: 24px !important; -} - -.mat-card-actions .mat-button { - padding: 0; -} - -.project-type { - text-transform: uppercase; - color: rgba(0, 0, 0, 0.54); - font-size: 12px !important; - line-height: unset !important; - letter-spacing: 2px !important; - font-weight: 500 !important; -} - -.project-name { - font-size: 16px !important; - line-height: unset !important; - font-weight: 400 !important; - letter-spacing: 0.01em !important; - color: rgba(0, 0, 0, 0.87) !important; -} - -.project-root { - color: rgba(0, 0, 0, 0.54) !important; - font-size: 14px !important; - line-height: 20px !important; - font-weight: 400 !important; - letter-spacing: 0.01em !important; - - mat-icon { - height: 13px; - width: 13px; - font-size: 13px; - line-height: 20px; - position: relative; - top: 2px; - } -} - -.mat-stroked-button { - min-width: unset !important; -} - -.application { - .project-type { - color: #bb3a3f; - } - - .project-name { - font-weight: 500 !important; - } -} - -.avatar { - height: 48px; - width: 48px; - line-height: 48px; - background: rgba(0, 0, 0, 0.27); - color: white; - border-radius: 50%; - overflow: hidden; - text-transform: uppercase; -} - -.filter-container { - background-color: white; - border-bottom: 1px solid rgba(0, 0, 0, 0.12); - height: 48px; - min-height: 48px; - max-height: 48px; - position: sticky; - top: 0; - z-index: 2; - - input { - background: none; - background-color: none; - outline: none; - border: none; - font-size: 16px; - padding: 0 16px; - } - - .filter-icon { - cursor: pointer; - margin-right: 12px; - color: rgba(0, 0, 0, 0.87); - height: 28px; - width: 28px; - font-size: 28px; - position: relative; - top: -1px; - } -} diff --git a/libs/feature-workspaces/src/lib/projects/projects.component.ts b/libs/feature-workspaces/src/lib/projects/projects.component.ts deleted file mode 100644 index 415354fba7..0000000000 --- a/libs/feature-workspaces/src/lib/projects/projects.component.ts +++ /dev/null @@ -1,276 +0,0 @@ -import { FADE_IN } from '@angular-console/ui'; -import { - CommandRunner, - Settings, - Telemetry, - toggleItemInArray -} from '@angular-console/utils'; -import { - animate, - state, - style, - transition, - trigger -} from '@angular/animations'; -import { - ChangeDetectionStrategy, - Component, - OnDestroy, - OnInit -} from '@angular/core'; -import { FormControl } from '@angular/forms'; -import { ActivatedRoute, NavigationStart, Router } from '@angular/router'; -import { ContextualActionBarService } from '@nrwl/angular-console-enterprise-frontend'; -import { combineLatest, Observable, of, ReplaySubject } from 'rxjs'; -import { - catchError, - filter, - map, - shareReplay, - startWith, - switchMap, - tap -} from 'rxjs/operators'; - -import { - Workspace, - WorkspaceDocsGQL, - WorkspaceGQL, - WorkspaceSchematics, - WorkspaceSchematicsGQL -} from '../generated/graphql'; -import { - createLinkForTask, - createLinksForCollection, - isDefinedProjectAction, - ProjectAction, - SCHEMATIC_COLLECTION_ERROR_RESPONSE -} from './projects.constants'; - -@Component({ - changeDetection: ChangeDetectionStrategy.OnPush, - selector: 'angular-console-projects', - templateUrl: './projects.component.html', - styleUrls: ['./projects.component.scss'], - animations: [ - trigger('fadeIn', [ - state('hide', style({ opacity: 0, 'z-index': '-1' })), - state('reveal', style({ opacity: 1, 'z-index': '2' })), - transition(`hide <=> reveal`, [ - animate(`300ms cubic-bezier(0.4, 0.0, 0.2, 1)`), - FADE_IN - ]) - ]) - ] -}) -export class ProjectsComponent implements OnInit, OnDestroy { - private readonly viewportOffsetPx = 48; - private readonly workspace$ = this.route.params.pipe( - map(m => m.path), - tap(path => { - this.workspacePath = path; - }), - switchMap(path => { - return combineLatest([ - this.workspaceGQL.fetch({ path }), - this.workspaceSchematicsGQL - .fetch({ path }) - .pipe(catchError(() => SCHEMATIC_COLLECTION_ERROR_RESPONSE)) - ]); - }), - filter(([r1, r2]) => Boolean(r1 && r2)), - map(([r1, r2]) => { - return { - workspace: r1.data.workspace, - schematicCollections: r2.data.workspace.schematicCollections - }; - }) - ); - - readonly animationState = new ReplaySubject<'reveal' | 'hide'>(); - - workspacePath: string; - pinnedProjectNames: string[]; - docs$ = this.settings.showDocs - ? this.route.params.pipe( - switchMap(p => this.workspaceDocsGQL.fetch({ path: p.path })), - map(p => p.data.workspace.docs.workspaceDocs) - ) - : of([]); - - readonly projectFilterFormControl = new FormControl(''); - readonly schematicFilterFormControl = new FormControl(''); - - readonly filteredCollections$: Observable< - WorkspaceSchematics.SchematicCollections[] - > = combineLatest([ - this.workspace$, - this.schematicFilterFormControl.valueChanges.pipe( - startWith(this.schematicFilterFormControl.value) - ) - ]).pipe( - map(([workspace, filterValue]) => { - if (!filterValue) { - return workspace.schematicCollections; - } - - filterValue = filterValue.toLowerCase(); - - return workspace.schematicCollections - .map(collection => { - const filteredSchematics = collection.name.includes(filterValue) - ? collection.schematics - : collection.schematics.filter(schematic => - schematic.name.includes(filterValue) - ); - - return { - ...collection, - schematics: filteredSchematics - }; - }) - .filter(collection => Boolean(collection.schematics.length)); - }), - shareReplay(1) - ); - - readonly projects$: Observable = this.workspace$.pipe( - map(({ workspace }) => { - const workspaceSettings = this.settings.getWorkspace(this.workspacePath); - this.pinnedProjectNames = - (workspaceSettings && workspaceSettings.pinnedProjectNames) || []; - const projects = workspace.projects.map(p => { - return { - ...p, - actions: this.createActions(p), - links$: this.getLinksForProject(p), - supportsGenerate: !(p.architect || []).find(a => a.name === 'e2e') - }; - }); - return projects; - }) - ); - - readonly filteredProjects$: Observable = combineLatest([ - this.projectFilterFormControl.valueChanges.pipe( - startWith(''), - map(value => value.toLowerCase()) - ), - this.projects$ - ]).pipe( - map(([lowerCaseFilterValue, projects]) => - projects.filter((project: any) => - project.name.includes(lowerCaseFilterValue) - ) - ), - map(projects => { - const pinned = projects.filter(project => - this.pinnedProjectNames.includes(project.name) - ); - const unpinned = projects.filter( - project => !this.pinnedProjectNames.includes(project.name) - ); - return [...pinned, ...unpinned]; - }) - ); - - viewportHeight$ = this.commandRunner.listAllCommands().pipe( - map(() => { - return `calc(100vh - ${this.viewportOffsetPx}px)`; - }), - shareReplay() - ); - - private readonly contextActionCloseSubscription = this.contextActionService.contextualActions$.subscribe( - actions => { - if (actions === null) { - this.router.navigate(['./'], { relativeTo: this.activatedRoute }); - this.animationState.next('reveal'); - } - } - ); - - constructor( - private readonly activatedRoute: ActivatedRoute, - private readonly router: Router, - private readonly contextActionService: ContextualActionBarService, - readonly settings: Settings, - private readonly telemetry: Telemetry, - private readonly route: ActivatedRoute, - private readonly workspaceGQL: WorkspaceGQL, - private readonly workspaceDocsGQL: WorkspaceDocsGQL, - private readonly commandRunner: CommandRunner, - private readonly workspaceSchematicsGQL: WorkspaceSchematicsGQL - ) {} - - ngOnInit() { - // Make collection hot to remove jank on initial render. - this.telemetry.screenViewed('Projects'); - this.filteredCollections$.subscribe().unsubscribe(); - this.router.events - .pipe( - filter((e): e is NavigationStart => e instanceof NavigationStart), - map(e => e.url), - startWith(this.router.url) - ) - .subscribe(url => { - if (!url.endsWith('projects')) { - this.animationState.next('hide'); - } - }); - } - - ngOnDestroy() { - this.contextActionCloseSubscription.unsubscribe(); - } - - trackByProjectRoot(_: number, project: Workspace.Projects) { - return project.root; - } - - trackByProjectLink(_: number, action: ProjectAction) { - return action.link; - } - - getLinksForProject(project: Workspace.Projects) { - return this.filteredCollections$.pipe( - map(collections => - collections.reduce( - (allLinks, collection) => [ - ...allLinks, - ...createLinksForCollection(project, collection) - ], - [] as ProjectAction[] - ) - ) - ); - } - - onPinClick(p: Workspace.Projects) { - this.pinnedProjectNames = toggleItemInArray( - this.pinnedProjectNames || [], - p.name - ); - this.projectFilterFormControl.setValue( - this.projectFilterFormControl.value || '' - ); - this.settings.toggleProjectPin(this.workspacePath, p); - } - - trackByName(p: Workspace.Projects) { - return p.name; - } - - private createActions(p: Workspace.Projects) { - return [ - ...(p.architect || []) - .map(task => { - if (!task) { - return undefined; - } - return createLinkForTask(p, task.name, task.name); - }) - .filter(isDefinedProjectAction) - ]; - } -} diff --git a/libs/feature-workspaces/src/lib/projects/projects.constants.ts b/libs/feature-workspaces/src/lib/projects/projects.constants.ts deleted file mode 100644 index d614dc6547..0000000000 --- a/libs/feature-workspaces/src/lib/projects/projects.constants.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { Observable, of } from 'rxjs'; - -import { Workspace, WorkspaceSchematics } from '../generated/graphql'; -import { FilterMenuLink } from './filter-menu/filter-menu.component'; - -export interface ProjectAction extends FilterMenuLink { - name: string; - displayText: string; - schematicName?: string; - link$?: Observable; -} - -export function createLinkForTask( - project: Workspace.Projects, - name: string, - displayText: string -) { - if ((project.architect || []).find(a => a.name === name)) { - return { displayText, name, link: ['./task', name, project.name] }; - } else { - return undefined; - } -} - -export function createLinksForCollection( - project: Workspace.Projects, - collection: WorkspaceSchematics.SchematicCollections -): ProjectAction[] { - const newLinks = (collection.schematics || []) - .map(schematic => - createLinkForSchematic( - project, - collection.name, - schematic ? schematic.name : '', - schematic ? schematic.name : '' - ) - ) - .filter(isDefinedProjectAction); - if (newLinks.length > 0) { - newLinks.unshift({ - name: collection.name, - displayText: collection.name - }); - } - return newLinks; -} - -export function createLinkForSchematic( - project: Workspace.Projects, - schematicName: string, - name: string, - displayText: string -): ProjectAction | undefined { - { - return { - name, - schematicName, - displayText: displayText, - link: [ - './generate', - decodeURIComponent(schematicName), - name, - { project: project.name } - ] - }; - } -} - -export function isDefinedProjectAction( - action: ProjectAction | undefined -): action is ProjectAction { - return action !== undefined; -} - -export const SCHEMATIC_COLLECTION_ERROR_RESPONSE = of({ - data: { - workspace: { - schematicCollections: [] as WorkspaceSchematics.SchematicCollections[] - } - } -}); diff --git a/libs/feature-workspaces/src/lib/workspace/workspace.component.html b/libs/feature-workspaces/src/lib/workspace/workspace.component.html index b746dae7d4..1f8c47cdcb 100644 --- a/libs/feature-workspaces/src/lib/workspace/workspace.component.html +++ b/libs/feature-workspaces/src/lib/workspace/workspace.component.html @@ -1,10 +1,6 @@
-
+
diff --git a/libs/feature-workspaces/src/lib/workspace/workspace.component.ts b/libs/feature-workspaces/src/lib/workspace/workspace.component.ts index adfc1830c0..9b581322f4 100644 --- a/libs/feature-workspaces/src/lib/workspace/workspace.component.ts +++ b/libs/feature-workspaces/src/lib/workspace/workspace.component.ts @@ -1,5 +1,4 @@ import { IS_INTELLIJ } from '@angular-console/environment'; -import { FADE_IN } from '@angular-console/ui'; import { Settings, Telemetry } from '@angular-console/utils'; import { animate, @@ -37,11 +36,6 @@ interface Route { title: string; } -const TASK_RUNNER_GHOST_STYLE = style({ - 'background-color': '#F5F5F5', - background: 'linear-gradient(to bottom, #ffffff 55px,#F5F5F5 2%)' -}); - @Component({ selector: 'angular-console-workspace', templateUrl: './workspace.component.html', @@ -53,16 +47,6 @@ const TASK_RUNNER_GHOST_STYLE = style({ state('collapse', style({ width: '0' })), state('expand', style({ width: '52px' })), transition(`* <=> *`, animate(`300ms cubic-bezier(0.4, 0.0, 0.2, 1)`)) - ]), - trigger('routerTransition', [ - transition('void => *', []), - transition('generate <=> tasks', []), - transition('extensions <=> tasks', []), - transition('generate <=> extensions', []), - transition('* => tasks', [TASK_RUNNER_GHOST_STYLE, FADE_IN]), - transition('* => generate', [TASK_RUNNER_GHOST_STYLE, FADE_IN]), - transition('* => extensions', [TASK_RUNNER_GHOST_STYLE, FADE_IN]), - transition('* => *', FADE_IN) ]) ] }) diff --git a/libs/server/src/index.ts b/libs/server/src/index.ts index bffb9e1463..c37ace6c9f 100644 --- a/libs/server/src/index.ts +++ b/libs/server/src/index.ts @@ -1,3 +1,5 @@ +export { readArchitectDef, readSchema } from './lib/api/read-projects'; + export { readAllSchematicCollections } from './lib/api/read-schematic-collections'; diff --git a/libs/server/src/lib/api/read-projects.ts b/libs/server/src/lib/api/read-projects.ts index 4ef7d0d5d5..952aa53f29 100644 --- a/libs/server/src/lib/api/read-projects.ts +++ b/libs/server/src/lib/api/read-projects.ts @@ -34,32 +34,40 @@ function compareProjects(a: Project, b: Project) { return a.root.localeCompare(b.root); } -function readArchitect(project: string, architect: any): Architect[] { +export function readArchitectDef( + architectName: string, + architectDef: any, + project: string +): Architect { + const options = { + defaultValues: serializeDefaultsForConfig(architectDef.options) + }; + const configurations = architectDef.configurations + ? Object.keys(architectDef.configurations).map(name => ({ + name, + defaultValues: readDefaultValues( + architectDef.options, + architectDef.configurations, + name + ) + })) + : []; + + return { + schema: [], + options, + configurations, + name: architectName, + project, + description: architectDef.description || '', + builder: architectDef.builder + }; +} + +export function readArchitect(project: string, architect: any): Architect[] { if (!architect) return []; return Object.entries(architect).map(([key, value]: [string, any]) => { - const options = { - defaultValues: serializeDefaultsForConfig(value.options) - }; - const configurations = value.configurations - ? Object.keys(value.configurations).map(name => ({ - name, - defaultValues: readDefaultValues( - value.options, - value.configurations, - name - ) - })) - : []; - - return { - schema: [], - options, - configurations, - name: key, - project, - description: value.description || '', - builder: value.builder - }; + return readArchitectDef(key, value, project); }); } @@ -75,9 +83,13 @@ function serializeDefaultsForConfig(config: any) { ); } -export function readSchema(basedir: string, builder: string) { +export function readBuilder(basedir: string, builder: string) { const [npmPackage, builderName] = builder.split(':'); - return readBuildersFile(basedir, npmPackage)[builderName].schema; + return readBuildersFile(basedir, npmPackage)[builderName]; +} + +export function readSchema(basedir: string, builder: string) { + return readBuilder(basedir, builder).schema; } function readBuildersFile(basedir: string, npmPackage: string): any { diff --git a/libs/vscode-ui/components/src/lib/checkbox/checkbox.component.html b/libs/vscode-ui/components/src/lib/checkbox/checkbox.component.html index 05b847ee28..c1c73dd714 100644 --- a/libs/vscode-ui/components/src/lib/checkbox/checkbox.component.html +++ b/libs/vscode-ui/components/src/lib/checkbox/checkbox.component.html @@ -1,19 +1,19 @@ -
-
+
+
-
+
{{ field.description }}
-
+
diff --git a/libs/vscode-ui/components/src/lib/checkbox/checkbox.component.scss b/libs/vscode-ui/components/src/lib/checkbox/checkbox.component.scss index 4ae51853b7..7fd1f39cdd 100644 --- a/libs/vscode-ui/components/src/lib/checkbox/checkbox.component.scss +++ b/libs/vscode-ui/components/src/lib/checkbox/checkbox.component.scss @@ -1,14 +1,19 @@ @import 'variables'; -.setting-value-checkbox { +.checkbox { background-color: $bg-color-offset; - border: solid 1px $input-border-color; - border-radius: $input-border-radius-size; color: $text-color; - margin-right: 1rem; margin-top: 0.2rem; + height: 18px; + width: 18px; + border: 1px solid transparent; + border-radius: 3px; + margin-right: 9px; + margin-left: 0; + padding: 0; + background-size: 16px !important; &.checked { - background-color: $bg-color-offset; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0…7.818-.574 2.978 4.24 8.052-9.506.762.646z' fill='%23C5C5C5'/%3E%3C/svg%3E"); } } diff --git a/libs/vscode-ui/components/src/lib/field/field.component.html b/libs/vscode-ui/components/src/lib/field/field.component.html index 526490a9e1..aac4e21e30 100644 --- a/libs/vscode-ui/components/src/lib/field/field.component.html +++ b/libs/vscode-ui/components/src/lib/field/field.component.html @@ -1,35 +1,32 @@ -
-
-
-
- - - {{ field.name }} - -
+
+
+
+ + + {{ field.name }} +
+
+ + - - - - + - - -
+ +
diff --git a/libs/vscode-ui/components/src/lib/field/field.component.scss b/libs/vscode-ui/components/src/lib/field/field.component.scss new file mode 100644 index 0000000000..5d4e87f30f --- /dev/null +++ b/libs/vscode-ui/components/src/lib/field/field.component.scss @@ -0,0 +1,3 @@ +:host { + display: block; +} diff --git a/libs/vscode-ui/components/src/lib/field/field.component.ts b/libs/vscode-ui/components/src/lib/field/field.component.ts index 98ecf505ee..77f41e11f1 100644 --- a/libs/vscode-ui/components/src/lib/field/field.component.ts +++ b/libs/vscode-ui/components/src/lib/field/field.component.ts @@ -15,6 +15,7 @@ import { Schema } from '@angular-console/schema'; selector: 'angular-console-field', templateUrl: './field.component.html', changeDetection: ChangeDetectionStrategy.OnPush, + styleUrls: ['field.component.scss'], providers: [ { provide: NG_VALUE_ACCESSOR, diff --git a/libs/vscode-ui/feature-task-execution-form/src/index.ts b/libs/vscode-ui/feature-task-execution-form/src/index.ts index 2ee4ad1a8d..16b8ff2d16 100644 --- a/libs/vscode-ui/feature-task-execution-form/src/index.ts +++ b/libs/vscode-ui/feature-task-execution-form/src/index.ts @@ -1 +1,6 @@ +export { + TaskExecutionFormComponent +} from './lib/task-execution-form.component'; + export * from './lib/vscode-ui-feature-task-execution-form.module'; +export * from './lib/task-execution-form.schema'; diff --git a/libs/vscode-ui/feature-task-execution-form/src/lib/mock-component-architect.ts b/libs/vscode-ui/feature-task-execution-form/src/lib/mock-component-architect.ts deleted file mode 100644 index 2f0fe1f49c..0000000000 --- a/libs/vscode-ui/feature-task-execution-form/src/lib/mock-component-architect.ts +++ /dev/null @@ -1,256 +0,0 @@ -// import { Architect } from '../../../../schema/src/index'; - -export const MOCK_COMPONENT_ARCHITECT = { - name: 'Component', - project: 'Project', - builder: 'Builder', - description: 'Description', - options: { defaultValues: [] }, - configurations: [], - schema: [ - { - name: 'inlineStyle', - enum: null, - type: 'boolean', - description: - 'When true, includes styles inline in the component.ts file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the component.ts file.', - defaultValue: false, - required: false, - positional: false, - __typename: 'Schema', - important: false - }, - { - name: 'inlineTemplate', - enum: null, - type: 'boolean', - description: - 'When true, includes template inline in the component.ts file. By default, an external template file is created and referenced in the component.ts file.', - defaultValue: false, - required: false, - positional: false, - __typename: 'Schema', - important: false - }, - { - name: 'viewEncapsulation', - enum: ['Emulated', 'Native', 'None', 'ShadowDom'], - type: 'enum', - description: - 'The view encapsulation strategy to use in the new component.', - defaultValue: null, - required: false, - positional: false, - __typename: 'Schema', - important: false, - completionValues: { - _isScalar: false, - source: { - source: { - _isScalar: false, - source: { - _isScalar: false, - source: { _isScalar: false }, - operator: { concurrent: 1 } - }, - operator: {} - } - }, - operator: { - connectable: { - source: { - _isScalar: false, - source: { - _isScalar: false, - source: { _isScalar: false }, - operator: { concurrent: 1 } - }, - operator: {} - } - } - } - } - }, - { - name: 'changeDetection', - enum: ['Default', 'OnPush'], - type: 'string', - description: 'The change detection strategy to use in the new component.', - defaultValue: 'Default', - required: false, - positional: false, - __typename: 'Schema', - important: false, - completionValues: { - _isScalar: false, - source: { - source: { - _isScalar: false, - source: { - _isScalar: false, - source: { _isScalar: false }, - operator: { concurrent: 1 } - }, - operator: {} - } - }, - operator: { - connectable: { - source: { - _isScalar: false, - source: { - _isScalar: false, - source: { _isScalar: false }, - operator: { concurrent: 1 } - }, - operator: {} - } - } - } - } - }, - { - name: 'prefix', - enum: null, - type: 'string', - description: 'The prefix to apply to the generated component selector.', - defaultValue: null, - required: false, - positional: false, - __typename: 'Schema', - important: false - }, - { - name: 'styleext', - enum: null, - type: 'string', - description: 'The file extension to use for style files.', - defaultValue: 'css', - required: false, - positional: false, - __typename: 'Schema', - important: false - }, - { - name: 'style', - enum: ['css', 'scss', 'sass', 'less', 'styl'], - type: 'string', - description: 'The file extension or preprocessor to use for style files.', - defaultValue: 'css', - required: false, - positional: false, - __typename: 'Schema', - important: false, - completionValues: { - _isScalar: false, - source: { - source: { - _isScalar: false, - source: { - _isScalar: false, - source: { _isScalar: false }, - operator: { concurrent: 1 } - }, - operator: {} - } - }, - operator: { - connectable: { - source: { - _isScalar: false, - source: { - _isScalar: false, - source: { _isScalar: false }, - operator: { concurrent: 1 } - }, - operator: {} - } - } - } - } - }, - { - name: 'spec', - enum: null, - type: 'boolean', - description: - 'When true (the default), generates a "spec.ts" test file for the new component.', - defaultValue: true, - required: false, - positional: false, - __typename: 'Schema', - important: false - }, - { - name: 'skipTests', - enum: null, - type: 'boolean', - description: - 'When true, does not create "spec.ts" test files for the new component.', - defaultValue: false, - required: false, - positional: false, - __typename: 'Schema', - important: false - }, - { - name: 'flat', - enum: null, - type: 'boolean', - description: - 'When true, creates the new files at the top level of the current project.', - defaultValue: false, - required: false, - positional: false, - __typename: 'Schema', - important: false - }, - { - name: 'skipImport', - enum: null, - type: 'boolean', - description: - 'When true, does not import this component into the owning NgModule.', - defaultValue: false, - required: false, - positional: false, - __typename: 'Schema', - important: false - }, - { - name: 'selector', - enum: null, - type: 'string', - description: 'The HTML selector to use for this component.', - defaultValue: null, - required: false, - positional: false, - __typename: 'Schema', - important: false - }, - { - name: 'entryComponent', - enum: null, - type: 'boolean', - description: - 'When true, the new component is the entry component of the declaring NgModule.', - defaultValue: false, - required: false, - positional: false, - __typename: 'Schema', - important: false - }, - { - name: 'lintFix', - enum: null, - type: 'boolean', - description: - 'When true, applies lint fixes after generating the component.', - defaultValue: false, - required: false, - positional: false, - __typename: 'Schema', - important: false - } - ] -}; diff --git a/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.html b/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.html index 992ca9692d..e03ded7efc 100644 --- a/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.html +++ b/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.html @@ -1,29 +1,25 @@ -
-
-
-
-
-
- -
-
-
-
-
+
+
+ +
+
+
+ +
+
diff --git a/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.scss b/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.scss index 1efc5553b8..441a7434fe 100644 --- a/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.scss +++ b/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.scss @@ -1,12 +1,37 @@ -/** VScode sets the position of each of these -elements manually, so I'm not sure if these are needed */ -.monaco-list-row { +@import 'variables'; + +.list-row { position: relative; margin-bottom: 1rem; } -.settings-tree-container { - height: calc(100vh - 20px); +:host { + height: 100vh; overflow-y: scroll; overflow-x: hidden; } + +.filter-container { + border-width: 1px; + border-style: solid; + background-color: $bg-color-offset; + border-color: $input-border-color; + border-radius: $input-border-radius-size; + height: 30px; + box-sizing: border-box; + padding: 0.3rem 0.5rem; + margin-bottom: 1rem; + + input { + width: 100%; + line-height: 30px; + height: 20px; + margin: none; + box-sizing: border-box; + color: $text-color; + background: transparent; + border: none !important; + outline: none !important; + font-size: 13px; + } +} diff --git a/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.ts b/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.ts index 12ed37041e..ab2de5e57b 100644 --- a/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.ts +++ b/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.component.ts @@ -1,6 +1,28 @@ -import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { + Component, + ChangeDetectionStrategy, + Inject, + OnInit, + ChangeDetectorRef +} from '@angular/core'; import { FormControl, FormGroup, FormBuilder } from '@angular/forms'; -import { MOCK_COMPONENT_ARCHITECT } from './mock-component-architect'; +import { + TASK_EXECUTION_SCHEMA, + TaskExecutionSchema +} from './task-execution-form.schema'; +import { ReplaySubject, Observable, combineLatest } from 'rxjs'; +import { + map, + startWith, + distinctUntilChanged, + shareReplay +} from 'rxjs/operators'; + +declare global { + interface Window { + SET_TASK_EXECUTION_SCHEMA: (schema: TaskExecutionSchema) => void; + } +} @Component({ selector: 'vscode-ui-task-execution-form', @@ -8,22 +30,80 @@ import { MOCK_COMPONENT_ARCHITECT } from './mock-component-architect'; styleUrls: ['./task-execution-form.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) -export class TaskExecutionFormComponent { - architect = MOCK_COMPONENT_ARCHITECT; - taskExecForm: FormGroup; +export class TaskExecutionFormComponent implements OnInit { + private readonly architectSubject = new ReplaySubject(); + + readonly architect$ = this.architectSubject.asObservable(); + + readonly taskExecForm$: Observable = this.architect$.pipe( + map(architect => this.buildForm(architect)), + shareReplay() + ); + + readonly filterFieldsControl = new FormControl(''); - constructor(private readonly fb: FormBuilder) { - this.buildForm(); + private readonly filterValue$ = (this.filterFieldsControl + .valueChanges as Observable).pipe( + startWith(''), + map(filterValue => filterValue.toLowerCase()), + distinctUntilChanged() + ); + + readonly filteredFields$: Observable<{ + [key: string]: boolean; + }> = combineLatest([ + this.architect$.pipe( + map(architect => { + return architect.schema.map(field => { + return { + fieldName: field.name, + fieldNameLowerCase: field.name.toLowerCase() + }; + }); + }) + ), + this.filterValue$ + ]).pipe( + map(([fields, filterValue]) => { + const filteredFields: { + [key: string]: boolean; + } = {}; + fields.forEach(field => { + filteredFields[field.fieldName] = field.fieldNameLowerCase.includes( + filterValue + ); + }); + + return filteredFields; + }), + shareReplay() + ); + + constructor( + private readonly fb: FormBuilder, + @Inject(TASK_EXECUTION_SCHEMA) public initialSchema: TaskExecutionSchema, + private readonly changeDetectorRef: ChangeDetectorRef + ) {} + + ngOnInit() { + this.architectSubject.next(this.initialSchema); + + window.SET_TASK_EXECUTION_SCHEMA = schema => { + this.architectSubject.next(schema); + this.changeDetectorRef.detectChanges(); + }; } - buildForm(): void { - this.taskExecForm = this.fb.group({}); + buildForm(architect: TaskExecutionSchema): FormGroup { + const taskExecForm = this.fb.group({}); - this.architect.schema.forEach(schema => { - this.taskExecForm.addControl( + architect.schema.forEach(schema => { + taskExecForm.addControl( schema.name, new FormControl(schema.defaultValue) ); }); + + return taskExecForm; } } diff --git a/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.schema.ts b/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.schema.ts new file mode 100644 index 0000000000..719afec20a --- /dev/null +++ b/libs/vscode-ui/feature-task-execution-form/src/lib/task-execution-form.schema.ts @@ -0,0 +1,20 @@ +import { + ArchitectConfigurations, + Options, + Schema +} from '@angular-console/schema'; +import { InjectionToken } from '@angular/core'; + +export const TASK_EXECUTION_SCHEMA = new InjectionToken( + 'VSCODE_UI_FEATURE_TASK_EXECUTION_FORM_SCHEMA' +); + +export interface TaskExecutionSchema { + name: string; + project?: string; + builder?: string; + description: string; + options?: Options; + configurations?: ArchitectConfigurations[]; + schema: Schema[]; +} diff --git a/libs/vscode-ui/feature-task-execution-form/src/lib/vscode-ui-feature-task-execution-form.module.ts b/libs/vscode-ui/feature-task-execution-form/src/lib/vscode-ui-feature-task-execution-form.module.ts index e687b085af..e118b09548 100644 --- a/libs/vscode-ui/feature-task-execution-form/src/lib/vscode-ui-feature-task-execution-form.module.ts +++ b/libs/vscode-ui/feature-task-execution-form/src/lib/vscode-ui-feature-task-execution-form.module.ts @@ -4,9 +4,30 @@ import { ReactiveFormsModule } from '@angular/forms'; import { TaskExecutionFormComponent } from './task-execution-form.component'; import { VscodeUiComponentsModule } from '@angular-console/vscode-ui/components'; +import { + TASK_EXECUTION_SCHEMA, + TaskExecutionSchema +} from './task-execution-form.schema'; + +declare global { + interface Window { + VSCODE_UI_SCHEMA: TaskExecutionSchema; + } +} + +export function getSchema() { + return window.VSCODE_UI_SCHEMA; +} + @NgModule({ imports: [CommonModule, VscodeUiComponentsModule, ReactiveFormsModule], declarations: [TaskExecutionFormComponent], - exports: [TaskExecutionFormComponent] + exports: [TaskExecutionFormComponent], + providers: [ + { + provide: TASK_EXECUTION_SCHEMA, + useFactory: getSchema + } + ] }) export class VscodeUiFeatureTaskExecutionFormModule {} diff --git a/libs/vscode-ui/feature-task-execution-form/tslint.json b/libs/vscode-ui/feature-task-execution-form/tslint.json index 130a635abb..94b10d356c 100644 --- a/libs/vscode-ui/feature-task-execution-form/tslint.json +++ b/libs/vscode-ui/feature-task-execution-form/tslint.json @@ -1,7 +1,7 @@ { "extends": "../../../tslint.json", "rules": { - "directive-selector": [true, "attribute", "angularConsole", "camelCase"], - "component-selector": [true, "element", "angular-console", "kebab-case"] + "directive-selector": [true, "attribute", "vscodeVscode", "camelCase"], + "component-selector": [true, "element", "vscode-ui", "kebab-case"] } } diff --git a/libs/vscode-ui/styles/src/index.ts b/libs/vscode-ui/styles/src/index.ts deleted file mode 100644 index c768ace4b1..0000000000 --- a/libs/vscode-ui/styles/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './lib/vscode-ui-styles.module'; diff --git a/libs/vscode-ui/styles/src/lib/_flex.scss b/libs/vscode-ui/styles/src/lib/_flex.scss new file mode 100644 index 0000000000..7a3df9505b --- /dev/null +++ b/libs/vscode-ui/styles/src/lib/_flex.scss @@ -0,0 +1,75 @@ +.fx-row, +.fx-row-wrap { + flex-direction: row; + box-sizing: border-box; + display: flex; +} + +.fx-row-wrap { + flex-flow: row wrap; +} + +.fx-column { + flex-direction: column; + box-sizing: border-box; + display: flex; +} + +.fx-align-start-center { + place-content: center flex-start; + align-items: center; +} + +.fx-align-center-start { + place-content: flex-start center; + align-items: flex-start; +} + +.fx-align-center-center { + place-content: center; + align-items: center; +} + +.fx-align-space-between { + place-content: stretch space-between; + align-items: stretch; +} + +.fx-align-space-between-center { + place-content: center space-between; + align-items: center; +} + +.fx-align-space-around-center { + place-content: center space-around; + align-items: center; +} + +.fx-align-left-top { + place-content: stretch flex-start; + align-items: stretch; +} + +.fx-align-end-center { + place-content: center flex-end; + align-items: center; +} + +.fx-align-option-start { + place-content: flex-start; + align-items: flex-start; + flex-direction: row; + box-sizing: border-box; + display: flex; +} + +.fx-flex { + flex: 1 1 0; + box-sizing: border-box; +} + +.fx-flex-100 { + box-sizing: border-box; + flex: 1 1 100%; + max-width: 100%; +} diff --git a/libs/vscode-ui/styles/src/lib/vscode-ui-styles.module.ts b/libs/vscode-ui/styles/src/lib/vscode-ui-styles.module.ts deleted file mode 100644 index fb769f0e93..0000000000 --- a/libs/vscode-ui/styles/src/lib/vscode-ui-styles.module.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; - -@NgModule({ - imports: [CommonModule] -}) -export class VscodeUiStylesModule {} diff --git a/nx.json b/nx.json index 8cde4f83ae..f277958ef6 100644 --- a/nx.json +++ b/nx.json @@ -10,27 +10,12 @@ "angular-console": { "tags": [] }, - "feature-install-node-js": { - "tags": [] - }, "feature-workspaces": { "tags": [] }, - "feature-extensions": { - "tags": [] - }, - "feature-generate": { - "tags": [] - }, - "feature-settings": { - "tags": [] - }, "utils": { "tags": [] }, - "feature-run": { - "tags": [] - }, "ui": { "tags": [] }, diff --git a/package-scripts.js b/package-scripts.js index fce3eb02d5..9fae055f21 100644 --- a/package-scripts.js +++ b/package-scripts.js @@ -43,7 +43,8 @@ module.exports = { ...forEachApplication( nps.concurrent({ server: 'ng build APPLICATION --prod --noSourceMap', - client: 'ng build angular-console --configuration=APPLICATION' + client: 'ng build APPLICATION-ui --prod', + legacyClient: 'ng build angular-console --configuration=APPLICATION' }) ), ci: { @@ -59,8 +60,12 @@ module.exports = { ...forEachApplication( nps.concurrent({ server: 'ng build APPLICATION --watch', + // NOTE: To inline JS we must run terser over the bundle to strip comments + // Some comments have html tags in them which would otherwise need special escaping client: - 'ng build angular-console --configuration=APPLICATION --watch --aot=false --buildOptimizer=false' + 'ng build APPLICATION-ui --watch --aot=false --buildOptimizer=false --prod', + legacyClient: + 'ng build angular-console --configuration=APPLICATION --aot=false --buildOptimizer=false' }) ) } diff --git a/tsconfig.json b/tsconfig.json index d00a32d80e..be83a55f07 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -23,26 +23,12 @@ "types": ["node", "jest"], "baseUrl": ".", "paths": { - "@angular-console/feature-install-node-js": [ - "libs/feature-install-node-js/src/index.ts" - ], "@angular-console/feature-workspaces": [ "libs/feature-workspaces/src/index.ts" ], - "@angular-console/feature-extensions": [ - "libs/feature-extensions/src/index.ts" - ], - "@angular-console/feature-generate": [ - "libs/feature-generate/src/index.ts" - ], - "@angular-console/utils": ["libs/utils/src/index.ts"], - "@angular-console/feature-run": ["libs/feature-run/src/index.ts"], "@angular-console/ui": ["libs/ui/src/index.ts"], - "schema/*": ["dist/schema/*"], + "@angular-console/utils": ["libs/utils/src/index.ts"], "@angular-console/schema": ["libs/schema/src/index.ts"], - "@angular-console/feature-settings": [ - "libs/feature-settings/src/index.ts" - ], "@angular-console/server": ["libs/server/src/index.ts"], "@angular-console/environment": ["libs/environment/src/index.ts"], "@angular-console/vscode-ui/feature-task-execution-form": [ diff --git a/yarn.lock b/yarn.lock index 07a98f15c7..18d6e79ca5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -259,10 +259,10 @@ dependencies: tslib "^1.9.0" -"@apollographql/apollo-tools@^0.3.6": - version "0.3.7" - resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.3.7.tgz#3bc9c35b9fff65febd4ddc0c1fc04677693a3d40" - integrity sha512-+ertvzAwzkYmuUtT8zH3Zi6jPdyxZwOgnYaZHY7iLnMVJDhQKWlkyjLMF8wyzlPiEdDImVUMm5lOIBZo7LkGlg== +"@apollographql/apollo-tools@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.4.0.tgz#8a1a0ab7a0bb12ccc03b72e4a104cfa5d969fd5f" + integrity sha512-7wEO+S+zgz/wVe3ilFQqICufRBYYDSNUkd1V03JWvXuSydbYq2SM5EgvWmFF+04iadt+aQ0XCCsRzCzRPQODfQ== dependencies: apollo-env "0.5.1" @@ -271,81 +271,42 @@ resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz#3ce939cb127fb8aaa3ffc1e90dff9b8af9f2e3dc" integrity sha512-8GqG48m1XqyXh4mIZrtB5xOhUwSsh1WsrrsaZQOEYYql3YN9DEu9OOSg0ILzXHZo/h2Q74777YE4YzlArQzQEQ== -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.0.0-beta.35": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35", "@babel/code-frame@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@>=7.2.2", "@babel/core@^7.0.1": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.4.tgz#4c32df7ad5a58e9ea27ad025c11276324e0b4ddd" - integrity sha512-+DaeBEpYq6b2+ZmHx3tHspC+ZRflrvLqwfv8E3hNr5LVQoyBnL8RPKSBCg+rK2W2My9PWlujBiqd0ZPsR9Q6zQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.5.0" - "@babel/helpers" "^7.5.4" - "@babel/parser" "^7.5.0" - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.0" - "@babel/types" "^7.5.0" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.11" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.1.0": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.4.tgz#84055750b05fcd50f9915a826b44fa347a825250" - integrity sha512-lQgGX3FPRgbz2SKmhMtYgJvVzGZrmjaF4apZ2bLwofAKiSjxU0drPh4S/VasyYXwaTs+A1gvQ45BN8SQJzHsQQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.4" - "@babel/helpers" "^7.4.4" - "@babel/parser" "^7.4.4" - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" +"@babel/core@>=7.2.2", "@babel/core@^7.0.1", "@babel/core@^7.1.0": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.2.tgz#069a776e8d5e9eefff76236bc8845566bd31dd91" + integrity sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.6.2" + "@babel/helpers" "^7.6.2" + "@babel/parser" "^7.6.2" + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.2" + "@babel/types" "^7.6.0" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" - lodash "^4.17.11" + lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" - integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ== +"@babel/generator@^7.4.0", "@babel/generator@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.2.tgz#dac8a3c2df118334c2a29ff3446da1636a8f8c03" + integrity sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ== dependencies: - "@babel/types" "^7.4.4" + "@babel/types" "^7.6.0" jsesc "^2.5.1" - lodash "^4.17.11" + lodash "^4.17.13" source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/generator@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.0.tgz#f20e4b7a91750ee8b63656073d843d2a736dca4a" - integrity sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA== - dependencies: - "@babel/types" "^7.5.0" - jsesc "^2.5.1" - lodash "^4.17.11" - source-map "^0.5.0" - trim-right "^1.0.1" "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" @@ -371,14 +332,14 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/helper-define-map@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a" - integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg== +"@babel/helper-define-map@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" + integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.4.4" - lodash "^4.17.11" + "@babel/types" "^7.5.5" + lodash "^4.17.13" "@babel/helper-explode-assignable-expression@^7.1.0": version "7.1.0" @@ -411,12 +372,12 @@ dependencies: "@babel/types" "^7.4.4" -"@babel/helper-member-expression-to-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" - integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== +"@babel/helper-member-expression-to-functions@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" + integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.5.5" "@babel/helper-module-imports@^7.0.0": version "7.0.0" @@ -426,16 +387,16 @@ "@babel/types" "^7.0.0" "@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8" - integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" + integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" "@babel/template" "^7.4.4" - "@babel/types" "^7.4.4" - lodash "^4.17.11" + "@babel/types" "^7.5.5" + lodash "^4.17.13" "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" @@ -450,11 +411,11 @@ integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== "@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2" - integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" + integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== dependencies: - lodash "^4.17.11" + lodash "^4.17.13" "@babel/helper-remap-async-to-generator@^7.1.0": version "7.1.0" @@ -467,15 +428,15 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27" - integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg== +"@babel/helper-replace-supers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" + integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== dependencies: - "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-member-expression-to-functions" "^7.5.5" "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" "@babel/helper-simple-access@^7.1.0": version "7.1.0" @@ -502,42 +463,28 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5" - integrity sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A== +"@babel/helpers@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153" + integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA== dependencies: - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/helpers@^7.5.4": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.4.tgz#2f00608aa10d460bde0ccf665d6dcf8477357cf0" - integrity sha512-6LJ6xwUEJP51w0sIgKyfvFMJvIb9mWAfohJp0+m6eHJigkFdcH8duZ1sfhn0ltJRzwUIT/yqqhdSfRpCpL7oow== - dependencies: - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.0" - "@babel/types" "^7.5.0" + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.2" + "@babel/types" "^7.6.0" "@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.2.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6" - integrity sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w== - -"@babel/parser@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.0.tgz#3e0713dff89ad6ae37faec3b29dcfc5c979770b7" - integrity sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA== +"@babel/parser@^7.1.0", "@babel/parser@^7.2.0", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz#205e9c95e16ba3b8b96090677a67c9d6075b70a1" + integrity sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -564,10 +511,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.5.4": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.4.tgz#250de35d867ce8260a31b1fdac6c4fc1baa99331" - integrity sha512-KCx0z3y7y8ipZUMAEEJOyNi11lMb/FOPUjjB113tfowgw0c16EGYos7worCKBcUAh2oG+OBnoUhsnTSoLpV9uA== +"@babel/plugin-proposal-object-rest-spread@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" + integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" @@ -580,14 +527,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" - integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== +"@babel/plugin-proposal-unicode-property-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz#05413762894f41bfe42b9a5e80919bd575dcc802" + integrity sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" + regexpu-core "^4.6.0" "@babel/plugin-syntax-async-generators@^7.2.0": version "7.2.0" @@ -647,25 +594,25 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d" - integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA== +"@babel/plugin-transform-block-scoping@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz#96c33ab97a9ae500cc6f5b19e04a7e6553360a79" + integrity sha512-zZT8ivau9LOQQaOGC7bQLQOT4XPkPXgN2ERfUgk1X8ql+mVkLc4E8eKk+FO3o0154kxzqenWCorfmEXpEZcrSQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.11" + lodash "^4.17.13" -"@babel/plugin-transform-classes@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6" - integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw== +"@babel/plugin-transform-classes@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" + integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.4.4" + "@babel/helper-define-map" "^7.5.5" "@babel/helper-function-name" "^7.1.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.4.4" + "@babel/helper-replace-supers" "^7.5.5" "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" @@ -676,21 +623,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" - integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== +"@babel/plugin-transform-destructuring@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" + integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" - integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== +"@babel/plugin-transform-dotall-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz#44abb948b88f0199a627024e1508acaf8dc9b2f9" + integrity sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" + regexpu-core "^4.6.0" "@babel/plugin-transform-duplicate-keys@^7.5.0": version "7.5.0" @@ -745,10 +692,10 @@ "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" - integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== +"@babel/plugin-transform-modules-commonjs@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" + integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== dependencies: "@babel/helper-module-transforms" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -772,12 +719,12 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" - integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz#c1ca0bb84b94f385ca302c3932e870b0fb0e522b" + integrity sha512-xBdB+XOs+lgbZc2/4F5BVDVcDNS4tcSKQc96KmlqLEAwz6tpYPEvPdmDfvVG0Ssn8lAhronaRs6Z6KSexIpK5g== dependencies: - regexp-tree "^0.1.6" + regexpu-core "^4.6.0" "@babel/plugin-transform-new-target@^7.4.4": version "7.4.4" @@ -786,13 +733,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-object-super@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" - integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== +"@babel/plugin-transform-object-super@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" + integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-replace-supers" "^7.5.5" "@babel/plugin-transform-parameters@^7.4.4": version "7.4.4" @@ -831,10 +778,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-spread@^7.2.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" - integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== +"@babel/plugin-transform-spread@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd" + integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -861,28 +808,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-unicode-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" - integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== +"@babel/plugin-transform-unicode-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz#b692aad888a7e8d8b1b214be6b9dc03d5031f698" + integrity sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" + regexpu-core "^4.6.0" "@babel/preset-env@^7.0.0": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.4.tgz#64bc15041a3cbb0798930319917e70fcca57713d" - integrity sha512-hFnFnouyRNiH1rL8YkX1ANCNAUVC8Djwdqfev8i1415tnAG+7hlA5zhZ0Q/3Q5gkop4HioIPbCEWAalqcbxRoQ== + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.2.tgz#abbb3ed785c7fe4220d4c82a53621d71fc0c75d3" + integrity sha512-Ru7+mfzy9M1/YTEtlDS8CD45jd22ngb9tXnn64DvQK3ooyqSw9K4K9DUWmYknTTVk4TqygL9dqCrZgm1HMea/Q== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.2.0" "@babel/plugin-proposal-dynamic-import" "^7.5.0" "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.5.4" + "@babel/plugin-proposal-object-rest-spread" "^7.6.2" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.6.2" "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-syntax-dynamic-import" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" @@ -891,11 +838,11 @@ "@babel/plugin-transform-arrow-functions" "^7.2.0" "@babel/plugin-transform-async-to-generator" "^7.5.0" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.4.4" - "@babel/plugin-transform-classes" "^7.4.4" + "@babel/plugin-transform-block-scoping" "^7.6.2" + "@babel/plugin-transform-classes" "^7.5.5" "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.5.0" - "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/plugin-transform-destructuring" "^7.6.0" + "@babel/plugin-transform-dotall-regex" "^7.6.2" "@babel/plugin-transform-duplicate-keys" "^7.5.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" "@babel/plugin-transform-for-of" "^7.4.4" @@ -903,84 +850,60 @@ "@babel/plugin-transform-literals" "^7.2.0" "@babel/plugin-transform-member-expression-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.6.0" "@babel/plugin-transform-modules-systemjs" "^7.5.0" "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.2" "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.2.0" + "@babel/plugin-transform-object-super" "^7.5.5" "@babel/plugin-transform-parameters" "^7.4.4" "@babel/plugin-transform-property-literals" "^7.2.0" "@babel/plugin-transform-regenerator" "^7.4.5" "@babel/plugin-transform-reserved-words" "^7.2.0" "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-spread" "^7.6.2" "@babel/plugin-transform-sticky-regex" "^7.2.0" "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.4.4" - "@babel/types" "^7.5.0" + "@babel/plugin-transform-unicode-regex" "^7.6.2" + "@babel/types" "^7.6.0" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" - integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.4.tgz#0776f038f6d78361860b6823887d4f3937133fe8" - integrity sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A== +"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" + integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.4" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.4.4" - "@babel/types" "^7.4.4" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.11" + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.0" -"@babel/traverse@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.0.tgz#4216d6586854ef5c3c4592dab56ec7eb78485485" - integrity sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz#b0e2bfd401d339ce0e6c05690206d1e11502ce2c" + integrity sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.5.0" + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.6.2" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.5.0" - "@babel/types" "^7.5.0" + "@babel/parser" "^7.6.2" + "@babel/types" "^7.6.0" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.11" + lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" - integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ== +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" + integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== dependencies: esutils "^2.0.2" - lodash "^4.17.11" - to-fast-properties "^2.0.0" - -"@babel/types@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.0.tgz#e47d43840c2e7f9105bc4d3a2c371b4d0c7832ab" - integrity sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ== - dependencies: - esutils "^2.0.2" - lodash "^4.17.11" + lodash "^4.17.13" to-fast-properties "^2.0.0" "@cnakazawa/watch@^1.0.3": @@ -1037,76 +960,77 @@ tslib "1.9.3" winston "3.1.0" -"@jest/console@^24.7.1": - version "24.7.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" - integrity sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg== +"@jest/console@^24.7.1", "@jest/console@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" + integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== dependencies: - "@jest/source-map" "^24.3.0" + "@jest/source-map" "^24.9.0" chalk "^2.0.1" slash "^2.0.0" -"@jest/core@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz#fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b" - integrity sha512-R9rhAJwCBQzaRnrRgAdVfnglUuATXdwTRsYqs6NMdVcAl5euG8LtWDe+fVkN27YfKVBW61IojVsXKaOmSnqd/A== +"@jest/core@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" + integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== dependencies: "@jest/console" "^24.7.1" - "@jest/reporters" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/reporters" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" ansi-escapes "^3.0.0" chalk "^2.0.1" exit "^0.1.2" graceful-fs "^4.1.15" - jest-changed-files "^24.8.0" - jest-config "^24.8.0" - jest-haste-map "^24.8.0" - jest-message-util "^24.8.0" + jest-changed-files "^24.9.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve-dependencies "^24.8.0" - jest-runner "^24.8.0" - jest-runtime "^24.8.0" - jest-snapshot "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" - jest-watcher "^24.8.0" + jest-resolve "^24.9.0" + jest-resolve-dependencies "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + jest-watcher "^24.9.0" micromatch "^3.1.10" p-each-series "^1.0.0" - pirates "^4.0.1" realpath-native "^1.1.0" rimraf "^2.5.4" + slash "^2.0.0" strip-ansi "^5.0.0" -"@jest/environment@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.8.0.tgz#0342261383c776bdd652168f68065ef144af0eac" - integrity sha512-vlGt2HLg7qM+vtBrSkjDxk9K0YtRBi7HfRFaDxoRtyi+DyVChzhF20duvpdAnKVBV6W5tym8jm0U9EfXbDk1tw== - dependencies: - "@jest/fake-timers" "^24.8.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" - jest-mock "^24.8.0" - -"@jest/fake-timers@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.8.0.tgz#2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1" - integrity sha512-2M4d5MufVXwi6VzZhJ9f5S/wU4ud2ck0kxPof1Iz3zWx6Y+V2eJrES9jEktB6O3o/oEyk+il/uNu9PvASjWXQw== - dependencies: - "@jest/types" "^24.8.0" - jest-message-util "^24.8.0" - jest-mock "^24.8.0" - -"@jest/reporters@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz#075169cd029bddec54b8f2c0fc489fd0b9e05729" - integrity sha512-eZ9TyUYpyIIXfYCrw0UHUWUvE35vx5I92HGMgS93Pv7du+GHIzl+/vh8Qj9MCWFK/4TqyttVBPakWMOfZRIfxw== - dependencies: - "@jest/environment" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" +"@jest/environment@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" + integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== + dependencies: + "@jest/fake-timers" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + +"@jest/fake-timers@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" + integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== + dependencies: + "@jest/types" "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + +"@jest/reporters@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" + integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.2" @@ -1114,74 +1038,86 @@ istanbul-lib-instrument "^3.0.1" istanbul-lib-report "^2.0.4" istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.1.1" - jest-haste-map "^24.8.0" - jest-resolve "^24.8.0" - jest-runtime "^24.8.0" - jest-util "^24.8.0" + istanbul-reports "^2.2.6" + jest-haste-map "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" jest-worker "^24.6.0" - node-notifier "^5.2.1" + node-notifier "^5.4.2" slash "^2.0.0" source-map "^0.6.0" string-length "^2.0.0" -"@jest/source-map@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28" - integrity sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag== +"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" + integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== dependencies: callsites "^3.0.0" graceful-fs "^4.1.15" source-map "^0.6.0" -"@jest/test-result@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz#7675d0aaf9d2484caa65e048d9b467d160f8e9d3" - integrity sha512-+YdLlxwizlfqkFDh7Mc7ONPQAhA4YylU1s529vVM1rsf67vGZH/2GGm5uO8QzPeVyaVMobCQ7FTxl38QrKRlng== +"@jest/test-result@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" + integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== dependencies: - "@jest/console" "^24.7.1" - "@jest/types" "^24.8.0" + "@jest/console" "^24.9.0" + "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-sequencer@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz#2f993bcf6ef5eb4e65e8233a95a3320248cf994b" - integrity sha512-OzL/2yHyPdCHXEzhoBuq37CE99nkme15eHkAzXRVqthreWZamEMA0WoetwstsQBCXABhczpK03JNbc4L01vvLg== +"@jest/test-sequencer@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" + integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== dependencies: - "@jest/test-result" "^24.8.0" - jest-haste-map "^24.8.0" - jest-runner "^24.8.0" - jest-runtime "^24.8.0" + "@jest/test-result" "^24.9.0" + jest-haste-map "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" -"@jest/transform@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.8.0.tgz#628fb99dce4f9d254c6fd9341e3eea262e06fef5" - integrity sha512-xBMfFUP7TortCs0O+Xtez2W7Zu1PLH9bvJgtraN1CDST6LBM/eTOZ9SfwS/lvV8yOfcDpFmwf9bq5cYbXvqsvA== +"@jest/transform@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" + integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" babel-plugin-istanbul "^5.1.0" chalk "^2.0.1" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.15" - jest-haste-map "^24.8.0" - jest-regex-util "^24.3.0" - jest-util "^24.8.0" + jest-haste-map "^24.9.0" + jest-regex-util "^24.9.0" + jest-util "^24.9.0" micromatch "^3.1.10" + pirates "^4.0.1" realpath-native "^1.1.0" slash "^2.0.0" source-map "^0.6.1" write-file-atomic "2.4.1" -"@jest/types@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz#f31e25948c58f0abd8c845ae26fcea1491dea7ad" - integrity sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg== +"@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^12.0.9" + "@types/yargs" "^13.0.0" + +"@kamilkisiela/graphql-tools@4.0.6": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@kamilkisiela/graphql-tools/-/graphql-tools-4.0.6.tgz#6dcf4d18bedaf34f6ab1d5bad2414e530d0875d1" + integrity sha512-IPWa+dOFCE4zaCsrJrAMp7yWXnfOZLNhqoMEOmn958WkLM0mmsDc/W/Rh7/7xopIT6P0oizb6/N1iH5HnNXOUA== + dependencies: + apollo-link "^1.2.3" + apollo-utilities "^1.0.1" + deprecated-decorator "^0.1.6" + iterall "^1.1.3" + uuid "^3.1.0" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -1241,18 +1177,18 @@ tree-kill "1.2.1" webpack-sources "1.3.0" -"@nodelib/fs.scandir@2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.1.tgz#7fa8fed654939e1a39753d286b48b4836d00e0eb" - integrity sha512-NT/skIZjgotDSiXs0WqYhgcuBKhUMgfekCmCGtkUAiLqZdOnrdjmZr9wRl3ll64J9NF79uZ4fk16Dx0yMc/Xbg== +"@nodelib/fs.scandir@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.2.tgz#1f981cd5b83e85cfdeb386fc693d4baab392fa54" + integrity sha512-wrIBsjA5pl13f0RN4Zx4FNWmU71lv03meGKnqRUoCyan17s4V3WL92f3w3AIuWbNnpcrQyFBU5qMavJoB8d27w== dependencies: - "@nodelib/fs.stat" "2.0.1" + "@nodelib/fs.stat" "2.0.2" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.1", "@nodelib/fs.stat@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.1.tgz#814f71b1167390cfcb6a6b3d9cdeb0951a192c14" - integrity sha512-+RqhBlLn6YRBGOIoVYthsG0J9dfpO79eJyN7BYBkZJtfqrBwf2KK+rD/M/yjZR6WBmIhAgOV7S60eCgaSWtbFw== +"@nodelib/fs.stat@2.0.2", "@nodelib/fs.stat@^2.0.1": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.2.tgz#2762aea8fe78ea256860182dcb52d61ee4b8fda6" + integrity sha512-z8+wGWV2dgUhLqrtRYa03yDx4HWMvXKi1z8g3m2JyxAx8F7xk74asqPk5LAETjqDSGLFML/6CDl0+yFunSYicw== "@nodelib/fs.stat@^1.1.2": version "1.1.3" @@ -1260,17 +1196,17 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@nodelib/fs.walk@^1.2.1": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.2.tgz#6a6450c5e17012abd81450eb74949a4d970d2807" - integrity sha512-J/DR3+W12uCzAJkw7niXDcqcKBg6+5G5Q/ZpThpGNzAUz70eOR6RV4XnnSN01qHZiVl0eavoxJsBypQoKsV2QQ== + version "1.2.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.3.tgz#a555dc256acaf00c62b0db29529028dd4d4cb141" + integrity sha512-l6t8xEhfK9Sa4YO5mIRdau7XSOADfmh3jCr0evNHdY+HNkW6xuQhgMH7D73VV6WpZOagrW0UludvMTiifiwTfA== dependencies: - "@nodelib/fs.scandir" "2.1.1" + "@nodelib/fs.scandir" "2.1.2" fastq "^1.6.0" "@nrwl/angular-console-enterprise-electron@^0.3.686": - version "0.3.695" - resolved "https://registry.yarnpkg.com/@nrwl/angular-console-enterprise-electron/-/angular-console-enterprise-electron-0.3.695.tgz#cb808f92f2418cac3f221c52798bddd9497750ca" - integrity sha512-i1SNKnQAdeESbg8cXEt4XMXq3NmH/JCMOpKzMuw0J/xQj5plsFXPQQP0g7HpEGommNAcKg8/kZosVD19LzMzKQ== + version "0.3.900" + resolved "https://registry.yarnpkg.com/@nrwl/angular-console-enterprise-electron/-/angular-console-enterprise-electron-0.3.900.tgz#f016ec4ed81a25a518a8e2680cd7810b9e6da82e" + integrity sha512-5Oo52iJ4p1vtt41Q+Ywhb6bS4uwW7oWToReoCVwstXlCIvB8mZ6QanlGaNaxV9Lb0q5VB9a/UdPQawYv2/23gA== dependencies: apollo-cache-inmemory "1.3.10" apollo-client "^2.3.5" @@ -1281,9 +1217,9 @@ request "2.88.0" "@nrwl/angular-console-enterprise-frontend@^0.3.686": - version "0.3.695" - resolved "https://registry.yarnpkg.com/@nrwl/angular-console-enterprise-frontend/-/angular-console-enterprise-frontend-0.3.695.tgz#4df5d9f9bc3f5933872ab4544e81eae28992f2c5" - integrity sha512-4N8V1JMGeT3EJ2Wv30V9sQDMBszeANkUqcx4/0DsrYyhhRgemW/5bHY04lYedpMYJTWUMyibTGLCAQ+jEss4Xg== + version "0.3.900" + resolved "https://registry.yarnpkg.com/@nrwl/angular-console-enterprise-frontend/-/angular-console-enterprise-frontend-0.3.900.tgz#4d317aabe812f3bd651eccc9fbcf805972baa827" + integrity sha512-5rJf5Dj+0fVRgdp/WIkd1d515SyZ2iSPiRXUH2VRu80cUfVDAwFzxoHEuGV/sM2/OI1Y0JxWL61EdGRfnPNPxA== dependencies: d3-ease "^1.0.5" d3-format "^1.3.2" @@ -1475,7 +1411,7 @@ semver "6.2.0" semver-intersect "1.4.0" -"@types/accepts@^1.3.5": +"@types/accepts@*", "@types/accepts@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== @@ -1488,9 +1424,9 @@ integrity sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ== "@types/babel__core@^7.1.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" - integrity sha512-cfCCrFmiGY/yq0NuKNxIQvZFy9kY/1immpSpTngOnyIbD4+eJOG5mxphhHDv3CHL9GltO4GcKr54kGBg3RNdbg== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30" + integrity sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1499,9 +1435,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" - integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ== + version "7.6.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.0.tgz#f1ec1c104d1bb463556ecb724018ab788d0c172a" + integrity sha512-c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw== dependencies: "@babel/types" "^7.0.0" @@ -1514,9 +1450,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.6.tgz#328dd1a8fc4cfe3c8458be9477b219ea158fd7b2" - integrity sha512-XYVgHF2sQ0YblLRMLNPB3CkFMewzFmlDsH/TneZFHUXDlABQgh88uOxuez7ZcXxayLFrqLwtDH1t+FmlFwNZxw== + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.7.tgz#2496e9ff56196cc1429c72034e07eab6121b6f3f" + integrity sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw== dependencies: "@babel/types" "^7.3.0" @@ -1527,10 +1463,10 @@ dependencies: "@types/babel-types" "*" -"@types/body-parser@*", "@types/body-parser@1.17.0": - version "1.17.0" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" - integrity sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w== +"@types/body-parser@*", "@types/body-parser@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.1.tgz#18fcf61768fb5c30ccc508c21d6fd2e8b3bf7897" + integrity sha512-RoX2EZjMiFMjZh9lmYrwgoP9RTpAjSHiJxdp4oidAQVO02T7HER3xj9UKue5534ULWeqVEkujhWcyvUce+d68w== dependencies: "@types/connect" "*" "@types/node" "*" @@ -1547,10 +1483,20 @@ dependencies: "@types/node" "*" +"@types/cookies@*": + version "0.7.3" + resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.3.tgz#5a4e2b61b36e19f578851f274be45fa9d802a87e" + integrity sha512-NEkYn8pNsYZIxf3ZrjdPoeyueiPc0RbQClUpTwmdHkpmQQ8iDAlQYKpabuegHy7BJcqTteSTkhURMEs9ZxyEWg== + dependencies: + "@types/connect" "*" + "@types/express" "*" + "@types/keygrip" "*" + "@types/node" "*" + "@types/cors@^2.8.4": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.5.tgz#c0c54c4e643e1d943d447292f2baf9dc82cfc8ec" - integrity sha512-GmK8AKu8i+s+EChK/uZ5IbrXPcPaQKWaNSGevDT/7o3gFObwSUQwqb1jMqxuo+YPvj0ckGzINI+EO7EHcmJjKg== + version "2.8.6" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.6.tgz#cfaab33c49c15b1ded32f235111ce9123009bd02" + integrity sha512-invOmosX0DqbpA+cE2yoHGUlF/blyf7nB0OGYBBiH27crcVm5NmFaZkLP4Ta1hGaesckCi5lVLlydNJCxkTOSg== dependencies: "@types/express" "*" @@ -1589,26 +1535,17 @@ integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== "@types/express-serve-static-core@*": - version "4.16.4" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.4.tgz#56bb8be4559401d68af4a3624ae9dd3166103e60" - integrity sha512-x/8h6FHm14rPWnW2HP5likD/rsqJ3t/77OWx2PLxym0hXbeBWQmcPyHmwX+CtCQpjIfgrUdEoDFcLPwPZWiqzQ== + version "4.16.9" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.9.tgz#69e00643b0819b024bdede95ced3ff239bb54558" + integrity sha512-GqpaVWR0DM8FnRUJYKlWgyARoBUAVfRIeVDZQKOttLFp5SmhhF9YFIYeTPwMd/AXfxlP7xVO2dj1fGu0Q+krKQ== dependencies: "@types/node" "*" "@types/range-parser" "*" -"@types/express@*": - version "4.16.1" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.1.tgz#d756bd1a85c34d87eaf44c888bad27ba8a4b7cf0" - integrity sha512-V0clmJow23WeyblmACoxbHBu2JKlE5TiIme6Lem14FnPW9gsttyHtk6wq7njcdIWH1njAaFgR8gW09lgY98gQg== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "*" - "@types/serve-static" "*" - -"@types/express@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.0.tgz#49eaedb209582a86f12ed9b725160f12d04ef287" - integrity sha512-CjaMu57cjgjuZbh9DpkloeGxV45CnMGlVd+XpG7Gm9QgVrd7KFq+X4HY0vM+2v0bczS48Wg7bvnMY5TN+Xmcfw== +"@types/express@*", "@types/express@4.17.1": + version "4.17.1" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.1.tgz#4cf7849ae3b47125a567dfee18bfca4254b88c5c" + integrity sha512-VfH/XCP0QbQk5B5puLqTLEeFgR8lfCJHZJKkInZ9mkYd+u8byX0kztXEQxEk4wZXJs8HI+7km2ALXjn4YKcX9w== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "*" @@ -1619,7 +1556,14 @@ resolved "https://registry.yarnpkg.com/@types/fontfaceobserver/-/fontfaceobserver-0.0.6.tgz#14a4a02b77e66e6a1070622981d431c885a174ed" integrity sha512-QJ1znjr9CDax2L17rgBnDOfNHsC1XtVAMswu+lRWvWb+kANhHA0slUNSSBsG8FVNvM4I4yXlN9doJRot3A2hkQ== -"@types/glob@*", "@types/glob@^7.1.1": +"@types/fs-capacitor@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz#17113e25817f584f58100fb7a08eed288b81956e" + integrity sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ== + dependencies: + "@types/node" "*" + +"@types/glob@*", "@types/glob@7.1.1", "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== @@ -1628,11 +1572,26 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/graphql-upload@^8.0.0": + version "8.0.3" + resolved "https://registry.yarnpkg.com/@types/graphql-upload/-/graphql-upload-8.0.3.tgz#b371edb5f305a2a1f7b7843a890a2a7adc55c3ec" + integrity sha512-hmLg9pCU/GmxBscg8GCr1vmSoEmbItNNxdD5YH2TJkXm//8atjwuprB+xJBK714JG1dkxbbhp5RHX+Pz1KsCMA== + dependencies: + "@types/express" "*" + "@types/fs-capacitor" "*" + "@types/koa" "*" + graphql "^14.5.3" + "@types/graphql@14.0.5": version "14.0.5" resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-14.0.5.tgz#e696292fd2d77dc168b5b791710f83463aa39abd" integrity sha512-bwGYLE0SRy5ZraC91dqI2bxbspfm10kyJ2Yjuvk4OjdGznh7fkoWW+xXZHfFydJaqu9syZi099cpiZw3GlPDiA== +"@types/http-assert@*": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" + integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== + "@types/is-glob@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/is-glob/-/is-glob-4.0.0.tgz#fb8a2bff539025d4dcd6d5efe7689e03341b876d" @@ -1675,6 +1634,30 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/keygrip@*": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.1.tgz#ff540462d2fb4d0a88441ceaf27d287b01c3d878" + integrity sha1-/1QEYtL7TQqIRBzq8n0oewHD2Hg= + +"@types/koa-compose@*": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.4.tgz#76a461634a59c3e13449831708bb9b355fb1548e" + integrity sha512-ioou0rxkuWL+yBQYsHUQAzRTfVxAg8Y2VfMftU+Y3RA03/MzuFL0x/M2sXXj3PkfnENbHsjeHR1aMdezLYpTeA== + dependencies: + "@types/koa" "*" + +"@types/koa@*": + version "2.0.50" + resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.0.50.tgz#c295cbbd59f4898e7a8794c0f2e42e60da83aab2" + integrity sha512-TcgOD2lh0EISSadAk1DOBYw7kNoY9XdeB3vEMOKiDDaTMYm+V54nyPsU7Ulb/htb5OBIR79RgTeCWntCcophLw== + dependencies: + "@types/accepts" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + "@types/long@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" @@ -1690,25 +1673,20 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*": - 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@*", "@types/node@>=6": + version "12.7.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.8.tgz#cb1bf6800238898bc2ff6ffa5702c3cadd350708" + integrity sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A== "@types/node@11.13.0": version "11.13.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.0.tgz#b0df8d6ef9b5001b2be3a94d909ce3c29a80f9e1" integrity sha512-rx29MMkRdVmzunmiA4lzBYJNnXsW/PhG4kMBy2ATsYaDjGGR75dCFEVVROKpNwlVdcUX3xxlghKQOeDPBJobng== -"@types/node@>=6": - version "12.6.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.3.tgz#44d507c5634f85e7164707ca36bba21b5213d487" - integrity sha512-7TEYTQT1/6PP53NftXXabIZDaZfaoBdeBm8Md/i7zsWRoBe0YwOXguyK8vhHs8ehgB/w9U4K/6EWuTyp0W6nIA== - "@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== + version "10.14.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.19.tgz#f52742c7834a815dedf66edfc8a51547e2a67342" + integrity sha512-j6Sqt38ssdMKutXBUuAcmWF8QtHW1Fwz/mz4Y+Wd9mzpBiVFirjpNQf363hG5itkG+yGaD+oiLyb50HxJ36l9Q== "@types/opn@^5.1.0": version "5.5.0" @@ -1728,9 +1706,9 @@ integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== "@types/request@^2.48.1": - version "2.48.2" - resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.2.tgz#936374cbe1179d7ed529fc02543deb4597450fed" - integrity sha512-gP+PSFXAXMrd5PcD7SqHeUjdGshAI8vKQ3+AvpQr3ht9iQea+59LOKvKITcQI+Lg+1EIkDP6AFSBUJPWG8GDyA== + version "2.48.3" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.3.tgz#970b8ed2317568c390361d29c555a95e74bd6135" + integrity sha512-3Wo2jNYwqgXcIz/rrq18AdOZUQB8cQ34CXZo+LUwPJNpvRAL86+Kc2wwI8mqpz9Cr1V+enIox5v+WZhy/p3h8w== dependencies: "@types/caseless" "*" "@types/node" "*" @@ -1743,9 +1721,9 @@ integrity sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ== "@types/serve-static@*": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" - integrity sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q== + version "1.13.3" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1" + integrity sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g== dependencies: "@types/express-serve-static-core" "*" "@types/mime" "*" @@ -1832,17 +1810,23 @@ source-map "^0.6.1" "@types/ws@^6.0.0": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-6.0.1.tgz#ca7a3f3756aa12f62a0a62145ed14c6db25d5a28" - integrity sha512-EzH8k1gyZ4xih/MaZTXwT2xOkPiIMSrhQ9b8wrlX88L0T02eYsddatQlwVFlEPyEqV0ChpdpNnE51QPH6NVT4Q== + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-6.0.3.tgz#b772375ba59d79066561c8d87500144d674ba6b3" + integrity sha512-yBTM0P05Tx9iXGq00BbJPo37ox68R5vaGTXivs6RGh/BQ6QP5zqZDGWdAO6JbRE/iR1l80xeGAwCQS2nMV9S/w== dependencies: - "@types/events" "*" "@types/node" "*" -"@types/yargs@^12.0.2", "@types/yargs@^12.0.9": - version "12.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" - integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw== +"@types/yargs-parser@*": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228" + integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== + +"@types/yargs@^13.0.0": + version "13.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.3.tgz#76482af3981d4412d65371a318f992d33464a380" + integrity sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ== + dependencies: + "@types/yargs-parser" "*" "@types/zen-observable@^0.8.0": version "0.8.0" @@ -2182,9 +2166,9 @@ JSONStream@^1.3.4: through ">=2.2.7 <3" abab@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" - integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== + version "2.0.2" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.2.tgz#a2fba1b122c69a85caa02d10f9270c7219709a9d" + integrity sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg== abbrev@1: version "1.1.1" @@ -2205,34 +2189,36 @@ acorn-dynamic-import@^4.0.0: integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== acorn-globals@^4.1.0, acorn-globals@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006" - integrity sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ== + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== dependencies: acorn "^6.0.1" acorn-walk "^6.0.1" acorn-walk@^6.0.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" - integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== acorn@^5.5.3: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -acorn@^6.0.1, acorn@^6.0.4, acorn@^6.0.5: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" - integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== +acorn@^6.0.1, acorn@^6.0.4, acorn@^6.0.5, acorn@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" + integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== -acorn@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.0.tgz#67f0da2fc339d6cfb5d6fb244fd449f33cd8bbe3" - integrity sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw== +agent-base@4, agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" -agent-base@4, agent-base@^4.1.0, agent-base@~4.2.1: +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== @@ -2254,17 +2240,25 @@ aggregate-error@2.1.0: clean-stack "^2.0.0" indent-string "^3.0.0" +aggregate-error@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.0.tgz#5b5a3c95e9095f311c9ab16c19fb4f3527cd3f79" + integrity sha512-yKD9kEoJIR+2IFqhMwayIBgheLYbB3PS2OBhWae1L/ODTd/JF/30cW0bc9TqzRL3k4U41Dieu3BF4I29p8xesA== + dependencies: + clean-stack "^2.0.0" + indent-string "^3.2.0" + ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^3.1.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" - integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@6.10.0, ajv@^6.1.0, ajv@^6.9.1: +ajv@6.10.0: version "6.10.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== @@ -2284,7 +2278,7 @@ ajv@^5.0.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.5.5: +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: version "6.10.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== @@ -2369,10 +2363,10 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.0.2.tgz#ddb3a8495d44875423af7b919aace11e91732a41" - integrity sha512-rUe9SxpRQlVg4EM8It7JMNWWYHAirTPpbTuvaSKybb5IejNgWB3PGBBX9rrPKDx2pM/p3Wh+7+ASaWRyyAbxmQ== +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -2401,13 +2395,13 @@ apollo-angular@1.6.0: semver "^6.0.0" tslib "^1.9.0" -apollo-cache-control@0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.7.5.tgz#5d8b949bd9b4f03ca32c7d7e429f509c6881eefc" - integrity sha512-zCPwHjbo/VlmXl0sclZfBq/MlVVeGUAg02Q259OIXSgHBvn9BbExyz+EkO/DJvZfGMquxqS1X1BFO3VKuLUTdw== +apollo-cache-control@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.8.4.tgz#a3650d5e4173953e2a3af995bea62147f1ffe4d7" + integrity sha512-IZ1d3AXZtkZhLYo0kWqTbZ6nqLFaeUvLdMESs+9orMadBZ7mvzcAfBwrhKyCWPGeAAZ/jKv8FtYHybpchHgFAg== dependencies: - apollo-server-env "2.4.0" - graphql-extensions "0.7.7" + apollo-server-env "^2.4.3" + graphql-extensions "^0.10.3" apollo-cache-inmemory@1.3.10: version "1.3.10" @@ -2429,15 +2423,7 @@ apollo-cache-inmemory@1.6.2: ts-invariant "^0.4.0" tslib "^1.9.3" -apollo-cache@1.2.1, apollo-cache@^1.1.20: - version "1.2.1" - resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.2.1.tgz#aae71eb4a11f1f7322adc343f84b1a39b0693644" - integrity sha512-nzFmep/oKlbzUuDyz6fS6aYhRmfpcHWqNkkA9Bbxwk18RD6LXC4eZkuE0gXRX0IibVBHNjYVK+Szi0Yied4SpQ== - dependencies: - apollo-utilities "^1.2.1" - tslib "^1.9.3" - -apollo-cache@1.3.2, apollo-cache@^1.3.2: +apollo-cache@1.3.2, apollo-cache@^1.1.20, apollo-cache@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.2.tgz#df4dce56240d6c95c613510d7e409f7214e6d26a" integrity sha512-+KA685AV5ETEJfjZuviRTEImGA11uNBp/MJGnaCvkgr+BYRrGLruVKBv6WvyFod27WEB2sp7SsG8cNBKANhGLg== @@ -2445,25 +2431,10 @@ apollo-cache@1.3.2, apollo-cache@^1.3.2: apollo-utilities "^1.3.2" tslib "^1.9.3" -apollo-client@^2.3.5: - version "2.5.1" - resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.5.1.tgz#36126ed1d32edd79c3713c6684546a3bea80e6d1" - integrity sha512-MNcQKiqLHdGmNJ0rZ0NXaHrToXapJgS/5kPk0FygXt+/FmDCdzqcujI7OPxEC6e9Yw5S/8dIvOXcRNuOMElHkA== - dependencies: - "@types/zen-observable" "^0.8.0" - apollo-cache "1.2.1" - apollo-link "^1.0.0" - apollo-link-dedup "^1.0.0" - apollo-utilities "1.2.1" - symbol-observable "^1.0.2" - ts-invariant "^0.2.1" - tslib "^1.9.3" - zen-observable "^0.8.0" - -apollo-client@^2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.3.tgz#9bb2d42fb59f1572e51417f341c5f743798d22db" - integrity sha512-DS8pmF5CGiiJ658dG+mDn8pmCMMQIljKJSTeMNHnFuDLV0uAPZoeaAwVFiAmB408Ujqt92oIZ/8yJJAwSIhd4A== +apollo-client@^2.3.5, apollo-client@^2.6.3: + version "2.6.4" + resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.4.tgz#872c32927263a0d34655c5ef8a8949fbb20b6140" + integrity sha512-oWOwEOxQ9neHHVZrQhHDbI6bIibp9SHgxaLRVPoGvOFy7OH5XUykZE7hBQAVxq99tQjBzgytaZffQkeWo1B4VQ== dependencies: "@types/zen-observable" "^0.8.0" apollo-cache "1.3.2" @@ -2474,32 +2445,33 @@ apollo-client@^2.6.3: tslib "^1.9.3" zen-observable "^0.8.0" -apollo-datasource@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.5.0.tgz#7a8c97e23da7b9c15cb65103d63178ab19eca5e9" - integrity sha512-SVXxJyKlWguuDjxkY/WGlC/ykdsTmPxSF0z8FenagcQ91aPURXzXP1ZDz5PbamY+0iiCRubazkxtTQw4GWTFPg== +apollo-datasource@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.6.3.tgz#b31e089e52adb92fabb536ab8501c502573ffe13" + integrity sha512-gRYyFVpJgHE2hhS+VxMeOerxXQ/QYxWG7T6QddfugJWYAG9DRCl65e2b7txcGq2NP3r+O1iCm4GNwhRBDJbd8A== dependencies: - apollo-server-caching "0.4.0" - apollo-server-env "2.4.0" + apollo-server-caching "^0.5.0" + apollo-server-env "^2.4.3" -apollo-engine-reporting-protobuf@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.3.1.tgz#a581257fa8e3bb115ce38bf1b22e052d1475ad69" - integrity sha512-Ui3nPG6BSZF8BEqxFs6EkX6mj2OnFLMejxEHSOdM82bakyeouCGd7J0fiy8AD6liJoIyc4X7XfH4ZGGMvMh11A== +apollo-engine-reporting-protobuf@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.4.0.tgz#e34c192d86493b33a73181fd6be75721559111ec" + integrity sha512-cXHZSienkis8v4RhqB3YG3DkaksqLpcxApRLTpRMs7IXNozgV7CUPYGFyFBEra1ZFgUyHXx4G9MpelV+n2cCfA== dependencies: protobufjs "^6.8.6" -apollo-engine-reporting@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-1.3.6.tgz#579ba2da85ff848bd92be1b0f1ad61f0c57e3585" - integrity sha512-oCoFAUBGveg1i1Sao/2gNsf1kirJBT6vw6Zan9BCNUkyh68ewDts+xRg32VnD9lDhaHpXVJ3tVtuaV44HmdSEw== +apollo-engine-reporting@^1.4.6: + version "1.4.6" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-1.4.6.tgz#83af6689c4ab82d1c62c3f5dde7651975508114f" + integrity sha512-acfb7oFnru/8YQdY4x6+7WJbZfzdVETI8Cl+9ImgUrvUnE8P+f2SsGTKXTC1RuUvve4c56PAvaPgE+z8X1a1Mw== dependencies: - apollo-engine-reporting-protobuf "0.3.1" + apollo-engine-reporting-protobuf "^0.4.0" apollo-graphql "^0.3.3" - apollo-server-core "2.6.9" - apollo-server-env "2.4.0" + apollo-server-caching "^0.5.0" + apollo-server-env "^2.4.3" + apollo-server-types "^0.2.4" async-retry "^1.2.1" - graphql-extensions "0.7.7" + graphql-extensions "^0.10.3" apollo-env@0.5.1: version "0.5.1" @@ -2518,14 +2490,6 @@ apollo-graphql@^0.3.3: apollo-env "0.5.1" lodash.sortby "^4.7.0" -apollo-link-dedup@^1.0.0: - version "1.0.18" - resolved "https://registry.yarnpkg.com/apollo-link-dedup/-/apollo-link-dedup-1.0.18.tgz#635cb5659b082e7f270f7649c4b0f71021f7bb4b" - integrity sha512-1rr54wyMTuqUmbWvcXbwduIcaCDcuIgU6MqQ599nAMuTrbSOXthGfoAD8BDTxBGQ9roVlM7ABP0VZVEWRoHWSg== - dependencies: - apollo-link "^1.2.11" - tslib "^1.9.3" - apollo-link-error@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/apollo-link-error/-/apollo-link-error-1.1.0.tgz#ef8a64411361314364db40c1d4023b987a84860f" @@ -2542,24 +2506,15 @@ apollo-link-error@1.1.11: apollo-link-http-common "^0.2.14" tslib "^1.9.3" -apollo-link-http-common@^0.2.14: - version "0.2.14" - resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.14.tgz#d3a195c12e00f4e311c417f121181dcc31f7d0c8" - integrity sha512-v6mRU1oN6XuX8beVIRB6OpF4q1ULhSnmy7ScnHnuo1qV6GaFmDcbdvXqxIkAV1Q8SQCo2lsv4HeqJOWhFfApOg== +apollo-link-http-common@^0.2.14, apollo-link-http-common@^0.2.5: + version "0.2.15" + resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.15.tgz#304e67705122bf69a9abaded4351b10bc5efd6d9" + integrity sha512-+Heey4S2IPsPyTf8Ag3PugUupASJMW894iVps6hXbvwtg1aHSNMXUYO5VG7iRHkPzqpuzT4HMBanCTXPjtGzxg== dependencies: - apollo-link "^1.2.12" + apollo-link "^1.2.13" ts-invariant "^0.4.0" tslib "^1.9.3" -apollo-link-http-common@^0.2.5: - version "0.2.13" - resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.13.tgz#c688f6baaffdc7b269b2db7ae89dae7c58b5b350" - integrity sha512-Uyg1ECQpTTA691Fwx5e6Rc/6CPSu4TB4pQRTGIpwZ4l5JDOQ+812Wvi/e3IInmzOZpwx5YrrOfXrtN8BrsDXoA== - dependencies: - apollo-link "^1.2.11" - ts-invariant "^0.3.2" - tslib "^1.9.3" - apollo-link-http@1.5.5: version "1.5.5" resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.5.tgz#7dbe851821771ad67fa29e3900c57f38cbd80da8" @@ -2568,7 +2523,7 @@ apollo-link-http@1.5.5: apollo-link "^1.2.3" apollo-link-http-common "^0.2.5" -apollo-link@1.2.12, apollo-link@^1.2.12: +apollo-link@1.2.12: version "1.2.12" resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.12.tgz#014b514fba95f1945c38ad4c216f31bcfee68429" integrity sha512-fsgIAXPKThyMVEMWQsUN22AoQI+J/pVXcjRGAShtk97h7D8O+SPskFinCGEkxPeQpE83uKaqafB2IyWdjN+J3Q== @@ -2578,42 +2533,43 @@ apollo-link@1.2.12, apollo-link@^1.2.12: tslib "^1.9.3" zen-observable-ts "^0.8.19" -apollo-link@^1.0.0, apollo-link@^1.2.11, apollo-link@^1.2.2, apollo-link@^1.2.3: - version "1.2.11" - resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.11.tgz#493293b747ad3237114ccd22e9f559e5e24a194d" - integrity sha512-PQvRCg13VduLy3X/0L79M6uOpTh5iHdxnxYuo8yL7sJlWybKRJwsv4IcRBJpMFbChOOaHY7Og9wgPo6DLKDKDA== +apollo-link@^1.0.0, apollo-link@^1.2.12, apollo-link@^1.2.13, apollo-link@^1.2.2, apollo-link@^1.2.3: + version "1.2.13" + resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.13.tgz#dff00fbf19dfcd90fddbc14b6a3f9a771acac6c4" + integrity sha512-+iBMcYeevMm1JpYgwDEIDt/y0BB7VWyvlm/7x+TIPNLHCTCMgcEgDuW5kH86iQZWo0I7mNwQiTOz+/3ShPFmBw== dependencies: - apollo-utilities "^1.2.1" - ts-invariant "^0.3.2" + apollo-utilities "^1.3.0" + ts-invariant "^0.4.0" tslib "^1.9.3" - zen-observable-ts "^0.8.18" + zen-observable-ts "^0.8.20" -apollo-server-caching@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.4.0.tgz#e82917590d723c0adc1fa52900e79e93ad65e4d9" - integrity sha512-GTOZdbLhrSOKYNWMYgaqX5cVNSMT0bGUTZKV8/tYlyYmsB6ey7l6iId3Q7UpHS6F6OR2lstz5XaKZ+T3fDfPzQ== +apollo-server-caching@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.5.0.tgz#446a37ce2d4e24c81833e276638330a634f7bd46" + integrity sha512-l7ieNCGxUaUAVAAp600HjbUJxVaxjJygtPV0tPTe1Q3HkPy6LEWoY6mNHV7T268g1hxtPTxcdRu7WLsJrg7ufw== dependencies: lru-cache "^5.0.0" -apollo-server-core@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.6.9.tgz#75542ad206782e5c31a023b54962e9fdc6404a91" - integrity sha512-r2/Kjm1UmxoTViUt5EcExWXkWl0riXsuGyS1q5LpHKKnA+6b+t4LQKECkRU4EWNpuuzJQn7aF7MmMdvURxoEig== +apollo-server-core@^2.9.4: + version "2.9.4" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.9.4.tgz#0404455884951804d23ea64e45514c73afd34e5e" + integrity sha512-6mzipnn9woJxgo/JQFWTlY13svS7HCr0ZsN035eRmKOsXzROfB9ugXcTuc6MP94ICM7TlB/DtJOP+bLX53mijw== dependencies: - "@apollographql/apollo-tools" "^0.3.6" + "@apollographql/apollo-tools" "^0.4.0" "@apollographql/graphql-playground-html" "1.6.24" + "@types/graphql-upload" "^8.0.0" "@types/ws" "^6.0.0" - apollo-cache-control "0.7.5" - apollo-datasource "0.5.0" - apollo-engine-reporting "1.3.6" - apollo-server-caching "0.4.0" - apollo-server-env "2.4.0" - apollo-server-errors "2.3.1" - apollo-server-plugin-base "0.5.8" - apollo-tracing "0.7.4" + apollo-cache-control "^0.8.4" + apollo-datasource "^0.6.3" + apollo-engine-reporting "^1.4.6" + apollo-server-caching "^0.5.0" + apollo-server-env "^2.4.3" + apollo-server-errors "^2.3.3" + apollo-server-plugin-base "^0.6.4" + apollo-server-types "^0.2.4" + apollo-tracing "^0.8.4" fast-json-stable-stringify "^2.0.0" - graphql-extensions "0.7.7" - graphql-subscriptions "^1.0.0" + graphql-extensions "^0.10.3" graphql-tag "^2.9.2" graphql-tools "^4.0.0" graphql-upload "^8.0.2" @@ -2621,60 +2577,66 @@ apollo-server-core@2.6.9: subscriptions-transport-ws "^0.9.11" ws "^6.0.0" -apollo-server-env@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.4.0.tgz#6611556c6b627a1636eed31317d4f7ea30705872" - integrity sha512-7ispR68lv92viFeu5zsRUVGP+oxsVI3WeeBNniM22Cx619maBUwcYTIC3+Y3LpXILhLZCzA1FASZwusgSlyN9w== +apollo-server-env@^2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.4.3.tgz#9bceedaae07eafb96becdfd478f8d92617d825d2" + integrity sha512-23R5Xo9OMYX0iyTu2/qT0EUb+AULCBriA9w8HDfMoChB8M+lFClqUkYtaTTHDfp6eoARLW8kDBhPOBavsvKAjA== dependencies: node-fetch "^2.1.2" util.promisify "^1.0.0" -apollo-server-errors@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.3.1.tgz#033cf331463ebb99a563f8354180b41ac6714eb6" - integrity sha512-errZvnh0vUQChecT7M4A/h94dnBSRL213dNxpM5ueMypaLYgnp4hiCTWIEaooo9E4yMGd1qA6WaNbLDG2+bjcg== +apollo-server-errors@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.3.3.tgz#83763b00352c10dc68fbb0d41744ade66de549ff" + integrity sha512-MO4oJ129vuCcbqwr5ZwgxqGGiLz3hCyowz0bstUF7MR+vNGe4oe3DWajC9lv4CxrhcqUHQOeOPViOdIo1IxE3g== apollo-server-express@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.6.9.tgz#176dab7f2cd5a99655c8eb382ad9b10797422a7b" - integrity sha512-iTkdIdX7m9EAlmL/ZPkKR+x/xuFk1HYZWuJIJG57hHUhcOxj50u7F1E5+5fDwl5RFIdepQ61azF31hhNZuNi4g== + version "2.9.4" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.9.4.tgz#ae7ca0b70a644ba9fa5e3ac395d1e2d9a4b23522" + integrity sha512-diX9n81E0tIJ0Sy2bHvDGPM9QsFBsZ76Nx/dszinY00ViyWG0yIAYEYWeRbsoKTeNDWWTvlMrh/3Eu2oaCIEhQ== dependencies: "@apollographql/graphql-playground-html" "1.6.24" "@types/accepts" "^1.3.5" - "@types/body-parser" "1.17.0" + "@types/body-parser" "1.17.1" "@types/cors" "^2.8.4" - "@types/express" "4.17.0" + "@types/express" "4.17.1" accepts "^1.3.5" - apollo-server-core "2.6.9" + apollo-server-core "^2.9.4" + apollo-server-types "^0.2.4" body-parser "^1.18.3" cors "^2.8.4" + express "^4.17.1" graphql-subscriptions "^1.0.0" graphql-tools "^4.0.0" + parseurl "^1.3.2" + subscriptions-transport-ws "^0.9.16" type-is "^1.6.16" -apollo-server-plugin-base@0.5.8: - version "0.5.8" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.5.8.tgz#77b4127aff4e3514a9d49e3cc61256aee4d9422e" - integrity sha512-ICbaXr0ycQZL5llbtZhg8zyHbxuZ4khdAJsJgiZaUXXP6+F47XfDQ5uwnl/4Sq9fvkpwS0ctvfZ1D+Ks4NvUzA== +apollo-server-plugin-base@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.6.4.tgz#63ea4fd0bbb6c4510bc8d0d2ad0a0684c8d0da8c" + integrity sha512-4rY+cBAIpQomGWYBtk8hHkLQWHrh5hgIBPQqmhXh00YFdcY+Ob1/cU2/2iqTcIzhtcaezsc8OZ63au6ahSBQqg== + dependencies: + apollo-server-types "^0.2.4" -apollo-tracing@0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.7.4.tgz#f24d1065100b6d8bf581202859ea0e85ba7bf30d" - integrity sha512-vA0FJCBkFpwdWyVF5UtCqN+enShejyiqSGqq8NxXHU1+GEYTngWa56x9OGsyhX+z4aoDIa3HPKPnP3pjzA0qpg== +apollo-server-types@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-0.2.4.tgz#28864900ffc7f9711a859297c143a833fdb6aa43" + integrity sha512-G4FvBVgGQcTW6ZBS2+hvcDQkSfdOIKV+cHADduXA275v+5zl42g+bCaGd/hCCKTDRjmQvObLiMxH/BJ6pDMQgA== dependencies: - apollo-server-env "2.4.0" - graphql-extensions "0.7.7" + apollo-engine-reporting-protobuf "^0.4.0" + apollo-server-caching "^0.5.0" + apollo-server-env "^2.4.3" -apollo-utilities@1.2.1, apollo-utilities@^1.0.1, apollo-utilities@^1.0.25, apollo-utilities@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.2.1.tgz#1c3a1ebf5607d7c8efe7636daaf58e7463b41b3c" - integrity sha512-Zv8Udp9XTSFiN8oyXOjf6PMHepD4yxxReLsl6dPUy5Ths7jti3nmlBzZUOxuTWRwZn0MoclqL7RQ5UEJN8MAxg== +apollo-tracing@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.8.4.tgz#0117820c3f0ad3aa6daf7bf13ddbb923cbefa6de" + integrity sha512-DjbFW0IvHicSlTVG+vK+1WINfBMRCdPPHJSW/j65JMir9Oe56WGeqL8qz8hptdUUmLYEb+azvcyyGsJsiR3zpQ== dependencies: - fast-json-stable-stringify "^2.0.0" - ts-invariant "^0.2.1" - tslib "^1.9.3" + apollo-server-env "^2.4.3" + graphql-extensions "^0.10.3" -apollo-utilities@1.3.2, apollo-utilities@^1.3.0, apollo-utilities@^1.3.2: +apollo-utilities@1.3.2, apollo-utilities@^1.0.1, apollo-utilities@^1.0.25, apollo-utilities@^1.3.0, apollo-utilities@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.2.tgz#8cbdcf8b012f664cd6cb5767f6130f5aed9115c9" integrity sha512-JWNHj8XChz7S4OZghV6yc9FNnzEXj285QYp/nLNh943iObycI5GTDO3NGR9Dth12LRrSFMeDOConPfPln+WGfg== @@ -2713,9 +2675,9 @@ are-we-there-yet@~1.1.2: readable-stream "^2.0.6" arg@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" - integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== + version "4.1.1" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.1.tgz#485f8e7c390ce4c5f78257dbea80d4be11feda4c" + integrity sha512-SlmP3fEA88MBv0PypnXZ8ZfJhwmDeIE3SP71j37AiXQBXYosPV0x6uISAaHYSlSVhmHOVkomen0tbGk6Anlebw== argparse@^1.0.7: version "1.0.10" @@ -2769,11 +2731,6 @@ array-equal@^1.0.0: resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= - array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -2789,16 +2746,6 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= - array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -2881,9 +2828,9 @@ async-each@^1.0.1: 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" - integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async-retry@^1.2.1: version "1.2.3" @@ -2904,14 +2851,7 @@ async@^1.5.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.5.0, async@^2.6.1: - 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@^2.6.0: +async@^2.5.0, async@^2.6.0, async@^2.6.1: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== @@ -2923,6 +2863,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +asyncro@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/asyncro/-/asyncro-3.0.0.tgz#3c7a732e263bc4a42499042f48d7d858e9c0134e" + integrity sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg== + atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -3012,16 +2957,16 @@ babel-generator@^6.18.0: source-map "^0.5.7" trim-right "^1.0.1" -babel-jest@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz#5c15ff2b28e20b0f45df43fe6b7f2aae93dba589" - integrity sha512-+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw== +babel-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" + integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== dependencies: - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" "@types/babel__core" "^7.1.0" babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.6.0" + babel-preset-jest "^24.9.0" chalk "^2.4.2" slash "^2.0.0" @@ -3050,28 +2995,29 @@ babel-plugin-dynamic-import-node@^2.3.0: object.assign "^4.1.0" babel-plugin-istanbul@^5.1.0: - version "5.1.4" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.4.tgz#841d16b9a58eeb407a0ddce622ba02fe87a752ba" - integrity sha512-dySz4VJMH+dpndj0wjJ8JPs/7i1TdSPb1nRrn56/92pKOF9VKC1FMFJmMXjzlGGusnCAqujP6PBCiKq0sVA+YQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" + integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== dependencies: + "@babel/helper-plugin-utils" "^7.0.0" find-up "^3.0.0" istanbul-lib-instrument "^3.3.0" test-exclude "^5.2.3" -babel-plugin-jest-hoist@^24.6.0: - version "24.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz#f7f7f7ad150ee96d7a5e8e2c5da8319579e78019" - integrity sha512-3pKNH6hMt9SbOv0F3WVmy5CWQ4uogS3k0GY5XLyQHJ9EGpAT9XWkFd2ZiXXtkwFHdAHa5j7w7kfxSP5lAIwu7w== +babel-plugin-jest-hoist@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" + integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== dependencies: "@types/babel__traverse" "^7.0.6" -babel-preset-jest@^24.6.0: - version "24.6.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz#66f06136eefce87797539c0d63f1769cc3915984" - integrity sha512-pdZqLEdmy1ZK5kyRUfvBb2IfTPb2BUvIJczlPspS8fWmBQslNNDBqVfh7BW5leOVJMDZKzjD8XEyABTk6gQ5yw== +babel-preset-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" + integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== dependencies: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.6.0" + babel-plugin-jest-hoist "^24.9.0" babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" @@ -3152,9 +3098,9 @@ balanced-match@^1.0.0: integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 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== + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== base@^0.11.1: version "0.11.2" @@ -3201,12 +3147,7 @@ bluebird@3.5.0: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" integrity sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw= -bluebird@^3.5.1, bluebird@^3.5.3: - version "3.5.4" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" - integrity sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== - -bluebird@^3.5.5: +bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: version "3.5.5" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== @@ -3314,7 +3255,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1, braces@^3.0.2: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -3411,14 +3352,14 @@ browserslist@4.6.3: electron-to-chromium "^1.3.164" node-releases "^1.1.23" -browserslist@^4.6.0, browserslist@^4.6.1, browserslist@^4.6.2, browserslist@^4.6.3: - version "4.6.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" - integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== +browserslist@^4.6.0, browserslist@^4.6.1, browserslist@^4.6.3, browserslist@^4.6.6: + version "4.7.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" + integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== dependencies: - caniuse-lite "^1.0.30000984" - electron-to-chromium "^1.3.191" - node-releases "^1.1.25" + caniuse-lite "^1.0.30000989" + electron-to-chromium "^1.3.247" + node-releases "^1.1.29" bs-logger@0.x: version "0.2.6" @@ -3428,9 +3369,9 @@ bs-logger@0.x: fast-json-stable-stringify "2.x" bser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" - integrity sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk= + version "2.1.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" + integrity sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg== dependencies: node-int64 "^0.4.0" @@ -3527,36 +3468,37 @@ cacache@^10.0.4: unique-filename "^1.1.0" y18n "^4.0.0" -cacache@^11.3.2: - version "11.3.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" - integrity sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg== +cacache@^11.3.2, cacache@^11.3.3: + version "11.3.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" + integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA== dependencies: - bluebird "^3.5.3" + bluebird "^3.5.5" chownr "^1.1.1" figgy-pudding "^3.5.1" - glob "^7.1.3" + glob "^7.1.4" graceful-fs "^4.1.15" lru-cache "^5.1.1" mississippi "^3.0.0" mkdirp "^0.5.1" move-concurrently "^1.0.1" promise-inflight "^1.0.1" - rimraf "^2.6.2" + rimraf "^2.6.3" ssri "^6.0.1" unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^11.3.3: - version "11.3.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" - integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA== +cacache@^12.0.2: + version "12.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== dependencies: bluebird "^3.5.5" chownr "^1.1.1" figgy-pudding "^3.5.1" glob "^7.1.4" graceful-fs "^4.1.15" + infer-owner "^1.0.3" lru-cache "^5.1.1" mississippi "^3.0.0" mkdirp "^0.5.1" @@ -3653,7 +3595,7 @@ camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -camelcase@^5.0.0: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -3663,10 +3605,10 @@ caniuse-lite@1.0.30000979: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000979.tgz#92f16d00186a6cf20d6c5711bb6e042a3d667029" integrity sha512-gcu45yfq3B7Y+WB05fOMfr0EiSlq+1u+m6rPHyJli/Wy3PVQNGaU7VA4bZE5qw+AU2UVOBR/N5g1bzADUqdvFw== -caniuse-lite@^1.0.30000971, caniuse-lite@^1.0.30000975, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000984: - version "1.0.30000984" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000984.tgz#dc96c3c469e9bcfc6ad5bdd24c77ec918ea76fe0" - integrity sha512-n5tKOjMaZ1fksIpQbjERuqCyfgec/m9pferkFQbLmWtqLUdmt12hNhjSwsmPdqeiG2NkITOQhr1VYIwWSAceiA== +caniuse-lite@^1.0.30000971, caniuse-lite@^1.0.30000975, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000989: + version "1.0.30000997" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000997.tgz#ba44a606804f8680894b7042612c2c7f65685b7e" + integrity sha512-BQLFPIdj2ntgBNWp9Q64LGUIEmvhKkzzHhUHR3CD5A9Lb7ZKF20/+sgadhFap69lk5XmK1fTUleDclaRFvgVUA== canonical-path@1.0.0: version "1.0.0" @@ -3796,24 +3738,24 @@ chokidar@2.1.2: fsevents "^1.2.7" "chokidar@>=2.0.0 <4.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.0.2.tgz#0d1cd6d04eb2df0327446188cd13736a3367d681" - integrity sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA== - dependencies: - anymatch "^3.0.1" - braces "^3.0.2" - glob-parent "^5.0.0" - is-binary-path "^2.1.0" - is-glob "^4.0.1" - normalize-path "^3.0.0" - readdirp "^3.1.1" + version "3.2.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.2.1.tgz#4634772a1924512d990d4505957bf3a510611387" + integrity sha512-/j5PPkb5Feyps9e+jo07jUZGvkB5Aj953NrI4s8xSVScrAo/RHeILrtdb4uzR7N6aaFFxxJ+gt8mA8HfNpw76w== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.1.3" optionalDependencies: - fsevents "^2.0.6" + fsevents "~2.1.0" chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.1, chokidar@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" - integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" async-each "^1.0.1" @@ -3830,14 +3772,14 @@ chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.1, chokidar@^2. 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" - integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== + version "1.1.3" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== -chrome-trace-event@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" - integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== +chrome-trace-event@^1.0.0, chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== dependencies: tslib "^1.9.0" @@ -3859,11 +3801,16 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-dependency-plugin@5.0.2, circular-dependency-plugin@^5.0.2: +circular-dependency-plugin@5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz#da168c0b37e7b43563fb9f912c1c007c213389ef" integrity sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA== +circular-dependency-plugin@^5.0.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" + integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -3882,9 +3829,9 @@ clean-css@4.2.1: source-map "~0.6.0" clean-stack@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.1.0.tgz#9e7fec7f3f8340a2ab4f127c80273085e8fbbdd0" - integrity sha512-uQWrpRm+iZZUCAp7ZZJQbd4Za9I3AjR/3YTjmcnAtkauaIm/T5CT6U8zVI6e60T6OANqBFAzuR9/HB3NzuZCRA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-color@1.2.0: version "1.2.0" @@ -3948,6 +3895,15 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + clone-deep@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" @@ -4052,9 +4008,9 @@ colornames@^1.1.1: integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y= colors@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" - integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== colorspace@1.1.x: version "1.1.2" @@ -4086,10 +4042,10 @@ commander@2.6.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.6.0.tgz#9df7e52fb2a0cb0fb89058ee80c3104225f37e1d" integrity sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0= -commander@^2.11.0, commander@^2.12.1, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1, 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== +commander@^2.11.0, commander@^2.12.1, commander@^2.20.0, commander@^2.8.1, commander@~2.20.0: + version "2.20.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" + integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== common-tags@1.8.0, common-tags@^1.4.0: version "1.8.0" @@ -4285,33 +4241,27 @@ copy-webpack-plugin@5.0.3: webpack-log "^2.0.0" core-js-compat@^3.1.1: - version "3.1.4" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.4.tgz#e4d0c40fbd01e65b1d457980fe4112d4358a7408" - integrity sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg== + version "3.2.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150" + integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== dependencies: - browserslist "^4.6.2" - core-js-pure "3.1.4" - semver "^6.1.1" - -core-js-pure@3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz#5fa17dc77002a169a3566cc48dc774d2e13e3769" - integrity sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA== + browserslist "^4.6.6" + semver "^6.3.0" -core-js@2.6.9: +core-js@2.6.9, core-js@^2.4.0: version "2.6.9" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== -core-js@3.1.4, core-js@^3.0.1: +core-js@3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07" integrity sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ== -core-js@^2.4.0: - version "2.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" - integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== +core-js@^3.0.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.2.1.tgz#cd41f38534da6cc59f7db050fe67307de9868b09" + integrity sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw== core-js@~2.3.0: version "2.3.0" @@ -4339,7 +4289,7 @@ cors@^2.8.4: object-assign "^4" vary "^1" -cosmiconfig@4.0.0, cosmiconfig@^4.0.0: +cosmiconfig@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ== @@ -4349,7 +4299,7 @@ cosmiconfig@4.0.0, cosmiconfig@^4.0.0: parse-json "^4.0.0" require-from-string "^2.0.1" -cosmiconfig@^5.0.7, cosmiconfig@^5.2.0: +cosmiconfig@^5.0.0, cosmiconfig@^5.0.7, cosmiconfig@^5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== @@ -4439,6 +4389,14 @@ cross-fetch@2.2.2: node-fetch "2.1.2" whatwg-fetch "2.0.4" +cross-fetch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.4.tgz#7bef7020207e684a7638ef5f2f698e24d9eb283c" + integrity sha512-MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw== + dependencies: + node-fetch "2.6.0" + whatwg-fetch "3.0.0" + cross-spawn@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" @@ -4526,14 +4484,14 @@ cssesc@^0.1.0: integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4: - version "0.3.6" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad" - integrity sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A== + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== cssstyle@^1.0.0, cssstyle@^1.1.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.2.tgz#427ea4d585b18624f6fdbf9de7a2a1a3ba713077" - integrity sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow== + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== dependencies: cssom "0.3.x" @@ -4544,10 +4502,10 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= cypress@3.4.0: version "3.4.0" @@ -4597,9 +4555,9 @@ d3-collection@1: integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== d3-color@1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.2.3.tgz#6c67bb2af6df3cc8d79efcc4d3a3e83e28c8048f" - integrity sha512-x37qq3ChOTLd26hnps36lexMRhNXEtVxZ4B25rL0DVdDsGQIJGB18S7y9XDwlDD6MD/ZBzITCf4JjGMM10TZkw== + version "1.4.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.0.tgz#89c45a995ed773b13314f06460df26d60ba0ecaf" + integrity sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg== d3-dispatch@1: version "1.0.5" @@ -4612,9 +4570,9 @@ d3-ease@1, d3-ease@^1.0.5: integrity sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ== d3-format@1, d3-format@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.3.2.tgz#6a96b5e31bcb98122a30863f7d92365c00603562" - integrity sha512-Z18Dprj96ExragQ0DeGi+SYPQ7pPfRMtUXtsg/ChVIKNBCzjO8XYJvRTC1usblx52lqge56V5ect+frYTQc8WQ== + version "1.4.1" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.1.tgz#c45f74b17c5a290c072a4ba7039dd19662cd5ce6" + integrity sha512-TUswGe6hfguUX1CtKxyG2nymO+1lyThbkS1ifLX0Sr+dOQtAD5gkrffpHnx+yHNKUZ0Bmg5T4AjUQwugPDrm0g== d3-hierarchy@^1.1.8: version "1.1.8" @@ -4629,9 +4587,9 @@ d3-interpolate@1: d3-color "1" d3-path@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.7.tgz#8de7cd693a75ac0b5480d3abaccd94793e58aae8" - integrity sha512-q0cW1RpvA5c5ma2rch62mX8AYaiLX0+bdaSM2wxSU9tXjU4DNvkx9qiUvjkuWCj3p22UO/hlPivujqMiR9PDzA== + version "1.0.8" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.8.tgz#4a0606a794d104513ec4a8af43525f374b278719" + integrity sha512-J6EfUNwcMQ+aM5YPOB8ZbgAZu6wc82f/0WFxrxwV6Ll8wBwLaHLKCqQ5Imub02JriCVVdPjgI+6P3a4EWJCxAg== d3-sankey@^0.7.1: version "0.7.1" @@ -4643,9 +4601,9 @@ d3-sankey@^0.7.1: d3-shape "^1.2.0" d3-scale-chromatic@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.3.3.tgz#dad4366f0edcb288f490128979c3c793583ed3c0" - integrity sha512-BWTipif1CimXcYfT02LKjAyItX5gKiwxuPRgr4xM58JwlLocWbjPLI7aMEjkcoOQXMkYsmNsvv3d2yl/OKuHHw== + version "1.5.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98" + integrity sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg== dependencies: d3-color "1" d3-interpolate "1" @@ -4682,9 +4640,9 @@ d3-time-format@2, d3-time-format@^2.1.3: d3-time "1" d3-time@1, d3-time@^1.0.10: - version "1.0.11" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.11.tgz#1d831a3e25cd189eb256c17770a666368762bbce" - integrity sha512-Z3wpvhPLW4vEScGeIMUckDW7+3hWKOQfAWg/U7PlWBnQmeKQ00gCUsTtWSYulrKNA7ta8hJ+xXc6MHrMuITwEw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" + integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== d3-timer@1: version "1.0.9" @@ -4703,12 +4661,13 @@ d3-transition@^1.1.3, d3-transition@^1.2.0: d3-selection "^1.1.0" d3-timer "1" -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - integrity sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8= +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== dependencies: - es5-ext "^0.10.9" + es5-ext "^0.10.50" + type "^1.0.1" damerau-levenshtein@^1.0.4: version "1.0.5" @@ -4800,9 +4759,16 @@ decode-uri-component@^0.2.0: integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= deep-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + version "1.1.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745" + integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" deep-extend@^0.6.0: version "0.6.0" @@ -4819,10 +4785,10 @@ deepmerge@3.2.0: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e" integrity sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow== -deepmerge@^2.0.1, deepmerge@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" - integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== +deepmerge@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz#3e3110ca29205f120d7cb064960a39c3d2087c09" + integrity sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww== default-gateway@^2.6.0: version "2.7.2" @@ -4845,7 +4811,7 @@ default-shell@^1.0.0: resolved "https://registry.yarnpkg.com/default-shell/-/default-shell-1.0.1.tgz#752304bddc6174f49eb29cb988feea0b8813c8bc" integrity sha1-dSMEvdxhdPSespy5iP7qC4gTyLw= -define-properties@^1.1.2: +define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -5021,10 +4987,10 @@ didyoumean@^1.2.1: resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff" integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8= -diff-sequences@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" - integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== diff@3.5.0, diff@^3.1.0, diff@^3.2.0: version "3.5.0" @@ -5080,7 +5046,15 @@ docopt@^0.6.2: resolved "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz#b28e9e2220da5ec49f7ea5bb24a47787405eeb11" integrity sha1-so6eIiDaXsSffqW7JKR3h0Be6xE= -dom-serializer@0, dom-serializer@~0.1.1: +dom-serializer@0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" + integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== @@ -5098,6 +5072,11 @@ domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -5175,25 +5154,15 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -ejs@^2.5.7: - version "2.6.1" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" - integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ== - -ejs@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.2.tgz#3a32c63d1cd16d11266cd4703b14fec4e74ab4f6" - integrity sha512-PcW2a0tyTuPHz3tWyYqtK6r1fZ3gp+3Sop8Ph+ZYN81Ob5rwmbHEzaqs10N3BEsaGTkh/ooniXK+WwszGlc2+Q== - -electron-to-chromium@^1.3.164: - version "1.3.194" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.194.tgz#a96452a96d4539131957aade9f634a45721f2819" - integrity sha512-w0LHR2YD9Ex1o+Sz4IN2hYzCB8vaFtMNW+yJcBf6SZlVqgFahkne/4rGVJdk4fPF98Gch9snY7PiabOh+vqHNg== +ejs@^2.5.7, ejs@^2.6.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" + integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== -electron-to-chromium@^1.3.191: - version "1.3.191" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.191.tgz#c451b422cd8b2eab84dedabab5abcae1eaefb6f0" - integrity sha512-jasjtY5RUy/TOyiUYM2fb4BDaPZfm6CXRFeJDMfFsXYADGxUN49RBqtgB7EL2RmJXeIRUk9lM1U6A5yk2YJMPQ== +electron-to-chromium@^1.3.164, electron-to-chromium@^1.3.247: + version "1.3.271" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.271.tgz#b80899cb03dab6437a1fb909abb6a722440a3215" + integrity sha512-c+bEenRFLQrK9tKM7xycKx1aOt6TiLoOujV2LXf1K9zm4kWSMY7BRDBezw2QcYCD0mMwtmbZdhyz9gamRq1J+Q== elegant-spinner@^1.0.1: version "1.0.1" @@ -5201,9 +5170,9 @@ elegant-spinner@^1.0.1: integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= elliptic@^6.0.0: - version "6.4.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" - integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== + version "6.5.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b" + integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -5248,9 +5217,9 @@ encoding@^0.1.11: iconv-lite "~0.4.13" end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" @@ -5268,6 +5237,11 @@ entities@^1.1.1, entities@~1.1.1: resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + env-variable@0.0.x: version "0.0.5" resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.5.tgz#913dd830bef11e96a039c038d4130604eba37f88" @@ -5293,16 +5267,20 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.4.3, es-abstract@^1.5.1: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== + version "1.14.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.2.tgz#7ce108fad83068c8783c3cdf62e504e084d8c497" + integrity sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg== dependencies: es-to-primitive "^1.2.0" function-bind "^1.1.1" has "^1.0.3" + has-symbols "^1.0.0" is-callable "^1.1.4" is-regex "^1.0.4" - object-keys "^1.0.12" + object-inspect "^1.6.0" + object-keys "^1.1.1" + string.prototype.trimleft "^2.0.0" + string.prototype.trimright "^2.0.0" es-to-primitive@^1.2.0: version "1.2.0" @@ -5313,16 +5291,16 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.12, es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.45, 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== +es5-ext@^0.10.12, es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.51, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.51" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f" + integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ== dependencies: es6-iterator "~2.0.3" es6-symbol "~3.1.1" next-tick "^1.0.0" -es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.3: +es6-iterator@2, es6-iterator@^2.0.3, 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= @@ -5337,9 +5315,9 @@ es6-object-assign@^1.0.3: integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= es6-promise@^4.0.3: - version "4.2.6" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" - integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q== + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== es6-promise@~3.0.2: version "3.0.2" @@ -5354,21 +5332,21 @@ es6-promisify@^5.0.0: es6-promise "^4.0.3" 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= + version "3.1.2" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.2.tgz#859fdd34f32e905ff06d752e7171ddd4444a7ed1" + integrity sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ== dependencies: - d "1" - es5-ext "~0.10.14" + d "^1.0.1" + es5-ext "^0.10.51" 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= + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== dependencies: d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" es6-symbol "^3.1.1" escape-html@~1.0.3: @@ -5382,9 +5360,9 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@^1.11.0, escodegen@^1.9.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" - integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw== + version "1.12.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" + integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== dependencies: esprima "^3.1.3" estraverse "^4.2.0" @@ -5393,7 +5371,7 @@ escodegen@^1.11.0, escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-scope@^4.0.0: +eslint-scope@^4.0.0, eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== @@ -5424,14 +5402,14 @@ esrecurse@^4.1.0: estraverse "^4.1.0" estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" @@ -5459,11 +5437,16 @@ event-stream@=3.3.4: stream-combiner "~0.0.4" through "~2.3.1" -eventemitter3@^3.0.0, eventemitter3@^3.1.0: +eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + events@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" @@ -5617,17 +5600,17 @@ expect@^23.6.0: jest-message-util "^23.4.0" jest-regex-util "^23.3.0" -expect@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz#471f8ec256b7b6129ca2524b2a62f030df38718d" - integrity sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA== +expect@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" + integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" ansi-styles "^3.2.0" - jest-get-type "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-regex-util "^24.3.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.9.0" express@4.16.3: version "4.16.3" @@ -5665,7 +5648,7 @@ express@4.16.3: utils-merge "1.0.1" vary "~1.1.2" -express@4.17.1, express@^4.17.1: +express@4.17.1, express@^4.16.2, express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== @@ -5701,42 +5684,6 @@ express@4.17.1, express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -express@^4.16.2: - 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" @@ -5758,9 +5705,9 @@ extend@^3.0.0, extend@~3.0.2: 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== + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: chardet "^0.7.0" iconv-lite "^0.4.24" @@ -5834,7 +5781,7 @@ fast-glob@3.0.4: merge2 "^1.2.3" micromatch "^4.0.2" -fast-glob@^2.0.2: +fast-glob@^2.0.2, fast-glob@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== @@ -5846,18 +5793,6 @@ fast-glob@^2.0.2: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz#a5d5b697ec8deda468d85a74035290a025a95295" - integrity sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - fast-json-stable-stringify@2.0.0, fast-json-stable-stringify@2.x, 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" @@ -5874,9 +5809,9 @@ fast-safe-stringify@1.2.0: integrity sha1-69QmZv0Y/k8rpPDSlQZfP4XK3pY= fast-safe-stringify@^2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz#04b26106cc56681f51a044cfc0d76cf0008ac2c2" - integrity sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg== + version "2.0.7" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" + integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== fastparse@^1.1.1: version "1.1.2" @@ -5898,9 +5833,9 @@ faye-websocket@^0.10.0: websocket-driver ">=0.5.1" faye-websocket@~0.11.1: - version "0.11.1" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" - integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg= + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== dependencies: websocket-driver ">=0.5.1" @@ -6086,9 +6021,9 @@ flat-cache@^2.0.1: write "1.0.3" flatted@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" - integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" + integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== flush-write-stream@^1.0.0: version "1.1.1" @@ -6099,11 +6034,11 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.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== + version "1.9.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" + integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== dependencies: - debug "^3.2.6" + debug "^3.0.0" fontfaceobserver@^2.1.0: version "2.1.0" @@ -6156,9 +6091,9 @@ fork-ts-checker-webpack-plugin@0.4.9: tapable "^1.0.0" form-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.0.tgz#094ec359dc4b55e7d62e0db4acd76e89fe874d37" - integrity sha512-WXieX3G/8side6VIqx44ablyULoGruSde5PNTxoUyo5CeyAMX6nVWUd0rgist/EuX655cjhUhTo1Fo3tRYqbcA== + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" @@ -6203,7 +6138,7 @@ from@~0: resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= -fs-capacitor@^2.0.1: +fs-capacitor@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/fs-capacitor/-/fs-capacitor-2.0.4.tgz#5a22e72d40ae5078b4fe64fe4d08c0d3fc88ad3c" integrity sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA== @@ -6236,11 +6171,11 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: universalify "^0.1.0" fs-minipass@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" - integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: - minipass "^2.2.1" + minipass "^2.6.0" fs-write-stream-atomic@^1.0.8: version "1.0.10" @@ -6265,10 +6200,10 @@ fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" -fsevents@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a" - integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ== +fsevents@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.0.tgz#ce1a5f9ac71c6d75278b0c5bd236d7dfece4cbaa" + integrity sha512-+iXhW3LuDQsno8dOIrCIT/CBjeBWuP7PXe8w9shnj9Lebny/Gx1ZjVBYwexLz36Ri2jKuXMNpV6CYNh8lHHgrQ== function-bind@^1.0.2, function-bind@^1.1.1: version "1.1.1" @@ -6393,10 +6328,10 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" - integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== +glob-parent@^5.0.0, glob-parent@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" + integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== dependencies: is-glob "^4.0.1" @@ -6572,9 +6507,9 @@ gonzales-pe@^4.2.3: minimist "1.1.x" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - 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== + version "4.2.2" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" + integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== graphql-code-generator@0.18.2: version "0.18.2" @@ -6691,13 +6626,14 @@ graphql-config@2.2.1: lodash "^4.17.4" minimatch "^3.0.4" -graphql-extensions@0.7.7: - version "0.7.7" - resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.7.7.tgz#19f4dea35391065de72b25def98f8396887bdf43" - integrity sha512-xiTbVGPUpLbF86Bc+zxI/v/axRkwZx3s+y2/kUb2c2MxNZeNhMZEw1dSutuhY2f2JkRkYFJii0ucjIVqPAQ/Lg== +graphql-extensions@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.10.3.tgz#9e37f3bd26309c40b03a0be0e63e02b3f99d52ea" + integrity sha512-kwU0gUe+Qdfr8iZYT91qrPSwQNgPhB/ClF1m1LEPdxlptk5FhFmjpxAcbMZ8q7j0kjfnbp2IeV1OhRDCEPqz2w== dependencies: - "@apollographql/apollo-tools" "^0.3.6" - apollo-server-env "2.4.0" + "@apollographql/apollo-tools" "^0.4.0" + apollo-server-env "^2.4.3" + apollo-server-types "^0.2.4" graphql-import@0.7.1, graphql-import@^0.7.1: version "0.7.1" @@ -6754,7 +6690,26 @@ graphql-toolkit@0.2.0: tslib "^1.9.3" valid-url "1.0.9" -graphql-tools@4.0.4, graphql-tools@^4.0.0: +graphql-toolkit@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/graphql-toolkit/-/graphql-toolkit-0.5.0.tgz#7371c21809898286b2a9e164b45469586cf64498" + integrity sha512-tBgqyWPHI/Pgt+jp+uLZZy2EBCzjd6yWAu73oUlmrhgg7XM6f1ONotVHvIO2MK7j8khR+ex/cUe8FgpS1i845w== + dependencies: + "@kamilkisiela/graphql-tools" "4.0.6" + "@types/glob" "7.1.1" + aggregate-error "3.0.0" + asyncro "^3.0.0" + cross-fetch "^3.0.4" + deepmerge "4.0.0" + glob "7.1.4" + graphql-import "0.7.1" + is-glob "4.0.1" + is-valid-path "0.1.1" + lodash "4.17.15" + tslib "^1.9.3" + valid-url "1.0.9" + +graphql-tools@4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.4.tgz#ca08a63454221fdde825fe45fbd315eb2a6d566b" integrity sha512-chF12etTIGVVGy3fCTJ1ivJX2KB7OSG4c6UOJQuqOHCmBQwTyNgCDuejZKvpYxNZiEx7bwIjrodDgDe9RIkjlw== @@ -6765,7 +6720,7 @@ graphql-tools@4.0.4, graphql-tools@^4.0.0: iterall "^1.1.3" uuid "^3.1.0" -graphql-tools@4.0.5, graphql-tools@^4.0.3: +graphql-tools@4.0.5, graphql-tools@^4.0.0, graphql-tools@^4.0.3: version "4.0.5" resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.5.tgz#d2b41ee0a330bfef833e5cdae7e1f0b0d86b1754" integrity sha512-kQCh3IZsMqquDx7zfIGWBau42xe46gmqabwYkpPlCLIjcEY1XK+auP7iGRD9/205BPyoQdY8hT96MPpgERdC9Q== @@ -6777,12 +6732,12 @@ graphql-tools@4.0.5, graphql-tools@^4.0.3: uuid "^3.1.0" graphql-upload@^8.0.2: - version "8.0.6" - resolved "https://registry.yarnpkg.com/graphql-upload/-/graphql-upload-8.0.6.tgz#90fb6246962d953b64d9ddabd6472d8e8b116ee0" - integrity sha512-cBRALMOvGBm2AD6M61b1QbSmKfCLXvgV+Z3wXT2JS1EQwGWQ1g5/sby4J/cpwAaGnq5P2eGp+N3HQI9cSn9Jfg== + version "8.0.7" + resolved "https://registry.yarnpkg.com/graphql-upload/-/graphql-upload-8.0.7.tgz#8644264e241529552ea4b3797e7ee15809cf01a3" + integrity sha512-gi2yygbDPXbHPC7H0PNPqP++VKSoNoJO4UrXWq4T0Bi4IhyUd3Ycop/FSxhx2svWIK3jdXR/i0vi91yR1aAF0g== dependencies: busboy "^0.3.1" - fs-capacitor "^2.0.1" + fs-capacitor "^2.0.4" http-errors "^1.7.2" object-path "^0.11.4" @@ -6793,6 +6748,13 @@ graphql@14.4.2: dependencies: iterall "^1.2.2" +graphql@^14.5.3: + version "14.5.8" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.5.8.tgz#504f3d3114cb9a0a3f359bbbcf38d9e5bf6a6b3c" + integrity sha512-MMwmi0zlVLQKLdGiMfWkgQD7dY/TUKt4L+zgJ/aR0Howebod3aNgP5JkgvAULiR2HPVZaP2VEElqtdidHweLkg== + dependencies: + iterall "^1.2.2" + graphviz@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/graphviz/-/graphviz-0.0.8.tgz#e599e40733ef80e1653bfe89a5f031ecf2aa4aaa" @@ -6816,9 +6778,9 @@ handle-thing@^2.0.0: integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== handlebars@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" - integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== + version "4.4.0" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.0.tgz#22e1a897c5d83023d39801f35f6b65cf97ed8b25" + integrity sha512-xkRtOt3/3DzTKMOt3xahj2M/EqNhY988T+imYSlMgs5fVhLN2fmKVVj0LtEGmb+3UUYV5Qmm1052Mm3dIQxOvw== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -6942,10 +6904,10 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -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== +hosted-git-info@^2.1.4, hosted-git-info@^2.6.0, hosted-git-info@^2.7.1: + version "2.8.4" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" + integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== hpack.js@^2.1.6: version "2.1.6" @@ -6970,9 +6932,9 @@ html-entities@^1.2.0, html-entities@^1.2.1: integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= html-tags@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.0.0.tgz#41f57708c9e6b7b46a00a22317d614c4a2bab166" - integrity sha512-xiXEBjihaNI+VZ2mKEoI5ZPxqUsevTKM+aeeJ/W4KAg2deGE35minmCJMn51BvwJZmiHaeAxrb2LAS0yZJxuuA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" + integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== htmlparser2@^3.10.0, htmlparser2@^3.9.1: version "3.10.1" @@ -7016,7 +6978,7 @@ http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" -http-errors@1.7.2, http-errors@^1.7.2, 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== @@ -7027,10 +6989,21 @@ http-errors@1.7.2, http-errors@^1.7.2, http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-parser-js@>=0.4.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8" - integrity sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w== +http-errors@^1.7.2, http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= http-proxy-agent@^2.1.0: version "2.1.0" @@ -7061,11 +7034,11 @@ http-proxy-middleware@~0.18.0: micromatch "^3.1.9" http-proxy@^1.16.2, http-proxy@^1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" - integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== + version "1.18.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" + integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== dependencies: - eventemitter3 "^3.0.0" + eventemitter3 "^4.0.0" follow-redirects "^1.0.0" requires-port "^1.0.0" @@ -7084,11 +7057,11 @@ https-browserify@^1.0.0: integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= https-proxy-agent@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" - integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== + version "2.2.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" + integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== dependencies: - agent-base "^4.1.0" + agent-base "^4.3.0" debug "^3.1.0" humanize-ms@^1.2.1: @@ -7144,9 +7117,9 @@ iferr@^0.1.5: integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + version "3.0.2" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.2.tgz#99d83a246c196ea5c93ef9315ad7b0819c35069b" + integrity sha512-EXyErtpHbn75ZTsOADsfx6J/FPo6/5cjev46PXrcTpd8z3BoRkXgYu9/JVqrI7tusjmwCZutGeRJeU0Wo1e4Cw== dependencies: minimatch "^3.0.4" @@ -7166,9 +7139,9 @@ ignore@^4.0.3: integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.0.6: - version "5.1.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.2.tgz#e28e584d43ad7e92f96995019cc43b9e1ac49558" - integrity sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ== + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== ij-rpc-client@^0.3.2: version "0.3.2" @@ -7233,7 +7206,7 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@3.2.0, indent-string@^3.0.0: +indent-string@3.2.0, indent-string@^3.0.0, indent-string@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= @@ -7250,10 +7223,10 @@ indexes-of@^1.0.1: resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" @@ -7263,16 +7236,21 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -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= +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + ini@1.3.5, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" @@ -7364,11 +7342,16 @@ ip@^1.1.0, ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.0, ipaddr.js@^1.5.2, ipaddr.js@^1.9.0: +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== +ipaddr.js@^1.5.2, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" @@ -7409,6 +7392,11 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -7426,7 +7414,7 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-binary-path@^2.1.0: +is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== @@ -7439,9 +7427,9 @@ is-buffer@^1.1.5: integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" - integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== is-callable@^1.1.4: version "1.1.4" @@ -7584,6 +7572,13 @@ is-glob@4.0.0: dependencies: is-extglob "^2.1.1" +is-glob@4.0.1, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + 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-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -7598,13 +7593,6 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1: - 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-hexadecimal@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz#e8a426a69b6d31470d3a33a47bb825cda02506ee" @@ -7684,9 +7672,9 @@ is-path-cwd@^1.0.0: integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= is-path-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.1.0.tgz#2e0c7e463ff5b7a0eb60852d851a6809347a124c" - integrity sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== is-path-in-cwd@^1.0.0: version "1.0.1" @@ -7721,7 +7709,7 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -7923,7 +7911,7 @@ istanbul-lib-source-maps@^3.0.1: rimraf "^2.6.3" source-map "^0.6.1" -istanbul-reports@^2.1.1: +istanbul-reports@^2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== @@ -7954,55 +7942,55 @@ jasmine-marbles@~0.5.0: dependencies: lodash "^4.5.0" -jest-changed-files@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz#7e7eb21cf687587a85e50f3d249d1327e15b157b" - integrity sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug== +jest-changed-files@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" + integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" execa "^1.0.0" throat "^4.0.0" jest-cli@^24.1.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz#b075ac914492ed114fa338ade7362a301693e989" - integrity sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA== + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" + integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== dependencies: - "@jest/core" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/core" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" exit "^0.1.2" import-local "^2.0.0" is-ci "^2.0.0" - jest-config "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-config "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" prompts "^2.0.1" realpath-native "^1.1.0" - yargs "^12.0.2" + yargs "^13.3.0" -jest-config@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz#77db3d265a6f726294687cbbccc36f8a76ee0f4f" - integrity sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw== +jest-config@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" + integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.8.0" - "@jest/types" "^24.8.0" - babel-jest "^24.8.0" + "@jest/test-sequencer" "^24.9.0" + "@jest/types" "^24.9.0" + babel-jest "^24.9.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^24.8.0" - jest-environment-node "^24.8.0" - jest-get-type "^24.8.0" - jest-jasmine2 "^24.8.0" + jest-environment-jsdom "^24.9.0" + jest-environment-node "^24.9.0" + jest-get-type "^24.9.0" + jest-jasmine2 "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-resolve "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" micromatch "^3.1.10" - pretty-format "^24.8.0" + pretty-format "^24.9.0" realpath-native "^1.1.0" jest-diff@^23.6.0: @@ -8015,20 +8003,20 @@ jest-diff@^23.6.0: jest-get-type "^22.1.0" pretty-format "^23.6.0" -jest-diff@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz#146435e7d1e3ffdf293d53ff97e193f1d1546172" - integrity sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g== +jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== dependencies: chalk "^2.0.1" - diff-sequences "^24.3.0" - jest-get-type "^24.8.0" - pretty-format "^24.8.0" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" jest-docblock@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd" - integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg== + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" + integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== dependencies: detect-newline "^2.1.0" @@ -8040,16 +8028,16 @@ jest-each@^23.6.0: chalk "^2.0.1" pretty-format "^23.6.0" -jest-each@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz#a05fd2bf94ddc0b1da66c6d13ec2457f35e52775" - integrity sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA== +jest-each@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" + integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" - jest-get-type "^24.8.0" - jest-util "^24.8.0" - pretty-format "^24.8.0" + jest-get-type "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" jest-environment-jsdom-thirteen@^0.0.2: version "0.0.2" @@ -8060,52 +8048,52 @@ jest-environment-jsdom-thirteen@^0.0.2: jest-util "^23.4.0" jsdom "^13.0.0" -jest-environment-jsdom@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz#300f6949a146cabe1c9357ad9e9ecf9f43f38857" - integrity sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ== +jest-environment-jsdom@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" + integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== dependencies: - "@jest/environment" "^24.8.0" - "@jest/fake-timers" "^24.8.0" - "@jest/types" "^24.8.0" - jest-mock "^24.8.0" - jest-util "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" jsdom "^11.5.1" -jest-environment-node@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz#d3f726ba8bc53087a60e7a84ca08883a4c892231" - integrity sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q== +jest-environment-node@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" + integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== dependencies: - "@jest/environment" "^24.8.0" - "@jest/fake-timers" "^24.8.0" - "@jest/types" "^24.8.0" - jest-mock "^24.8.0" - jest-util "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" jest-get-type@^22.1.0: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w== -jest-get-type@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz#a7440de30b651f5a70ea3ed7ff073a32dfe646fc" - integrity sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ== +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== -jest-haste-map@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.0.tgz#51794182d877b3ddfd6e6d23920e3fe72f305800" - integrity sha512-ZBPRGHdPt1rHajWelXdqygIDpJx8u3xOoLyUBWRW28r3tagrgoepPrzAozW7kW9HrQfhvmiv1tncsxqHJO1onQ== +jest-haste-map@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" + integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" anymatch "^2.0.0" fb-watchman "^2.0.0" graceful-fs "^4.1.15" invariant "^2.2.4" - jest-serializer "^24.4.0" - jest-util "^24.8.0" - jest-worker "^24.6.0" + jest-serializer "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.9.0" micromatch "^3.1.10" sane "^4.0.3" walker "^1.0.7" @@ -8130,34 +8118,35 @@ jest-jasmine2@23.6.0: jest-util "^23.4.0" pretty-format "^23.6.0" -jest-jasmine2@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz#a9c7e14c83dd77d8b15e820549ce8987cc8cd898" - integrity sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong== +jest-jasmine2@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" + integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" co "^4.6.0" - expect "^24.8.0" + expect "^24.9.0" is-generator-fn "^2.0.0" - jest-each "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-runtime "^24.8.0" - jest-snapshot "^24.8.0" - jest-util "^24.8.0" - pretty-format "^24.8.0" + jest-each "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" throat "^4.0.0" -jest-leak-detector@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz#c0086384e1f650c2d8348095df769f29b48e6980" - integrity sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g== +jest-leak-detector@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" + integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== dependencies: - pretty-format "^24.8.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" jest-matcher-utils@^23.6.0: version "23.6.0" @@ -8168,15 +8157,15 @@ jest-matcher-utils@^23.6.0: jest-get-type "^22.1.0" pretty-format "^23.6.0" -jest-matcher-utils@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz#2bce42204c9af12bde46f83dc839efe8be832495" - integrity sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw== +jest-matcher-utils@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== dependencies: chalk "^2.0.1" - jest-diff "^24.8.0" - jest-get-type "^24.8.0" - pretty-format "^24.8.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" jest-message-util@^23.4.0: version "23.4.0" @@ -8189,14 +8178,14 @@ jest-message-util@^23.4.0: slash "^1.0.0" stack-utils "^1.0.1" -jest-message-util@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz#0d6891e72a4beacc0292b638685df42e28d6218b" - integrity sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g== +jest-message-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" + integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" "@types/stack-utils" "^1.0.1" chalk "^2.0.1" micromatch "^3.1.10" @@ -8208,12 +8197,12 @@ jest-mock@^23.2.0: resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ= -jest-mock@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56" - integrity sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A== +jest-mock@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" + integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" jest-pnp-resolver@^1.2.1: version "1.2.1" @@ -8233,19 +8222,19 @@ jest-regex-util@^23.3.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" integrity sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U= -jest-regex-util@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" - integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== +jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" + integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== -jest-resolve-dependencies@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz#19eec3241f2045d3f990dba331d0d7526acff8e0" - integrity sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw== +jest-resolve-dependencies@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" + integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" jest-regex-util "^24.3.0" - jest-snapshot "^24.8.0" + jest-snapshot "^24.9.0" jest-resolve@^23.6.0: version "23.6.0" @@ -8256,75 +8245,75 @@ jest-resolve@^23.6.0: chalk "^2.0.1" realpath-native "^1.0.0" -jest-resolve@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz#84b8e5408c1f6a11539793e2b5feb1b6e722439f" - integrity sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw== +jest-resolve@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" + integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" browser-resolve "^1.11.3" chalk "^2.0.1" jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-runner@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz#4f9ae07b767db27b740d7deffad0cf67ccb4c5bb" - integrity sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow== +jest-runner@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" + integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.4.2" exit "^0.1.2" graceful-fs "^4.1.15" - jest-config "^24.8.0" + jest-config "^24.9.0" jest-docblock "^24.3.0" - jest-haste-map "^24.8.0" - jest-jasmine2 "^24.8.0" - jest-leak-detector "^24.8.0" - jest-message-util "^24.8.0" - jest-resolve "^24.8.0" - jest-runtime "^24.8.0" - jest-util "^24.8.0" + jest-haste-map "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-leak-detector "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" jest-worker "^24.6.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz#05f94d5b05c21f6dc54e427cd2e4980923350620" - integrity sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA== +jest-runtime@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" + integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.8.0" + "@jest/environment" "^24.9.0" "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" - "@types/yargs" "^12.0.2" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.1.15" - jest-config "^24.8.0" - jest-haste-map "^24.8.0" - jest-message-util "^24.8.0" - jest-mock "^24.8.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve "^24.8.0" - jest-snapshot "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-resolve "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" realpath-native "^1.1.0" slash "^2.0.0" strip-bom "^3.0.0" - yargs "^12.0.2" + yargs "^13.3.0" -jest-serializer@^24.4.0: - version "24.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" - integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== +jest-serializer@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" + integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== jest-snapshot@^23.6.0: version "23.6.0" @@ -8342,23 +8331,24 @@ jest-snapshot@^23.6.0: pretty-format "^23.6.0" semver "^5.5.0" -jest-snapshot@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz#3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6" - integrity sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg== +jest-snapshot@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" + integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" - expect "^24.8.0" - jest-diff "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-resolve "^24.8.0" + expect "^24.9.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^24.8.0" - semver "^5.5.0" + pretty-format "^24.9.0" + semver "^6.2.0" jest-util@^23.4.0: version "23.4.0" @@ -8374,16 +8364,16 @@ jest-util@^23.4.0: slash "^1.0.0" source-map "^0.6.0" -jest-util@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz#41f0e945da11df44cc76d64ffb915d0716f46cd1" - integrity sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA== +jest-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" + integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== dependencies: - "@jest/console" "^24.7.1" - "@jest/fake-timers" "^24.8.0" - "@jest/source-map" "^24.3.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/console" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/source-map" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" callsites "^3.0.0" chalk "^2.0.1" graceful-fs "^4.1.15" @@ -8392,37 +8382,37 @@ jest-util@^24.8.0: slash "^2.0.0" source-map "^0.6.0" -jest-validate@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz#624c41533e6dfe356ffadc6e2423a35c2d3b4849" - integrity sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA== +jest-validate@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" + integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== dependencies: - "@jest/types" "^24.8.0" - camelcase "^5.0.0" + "@jest/types" "^24.9.0" + camelcase "^5.3.1" chalk "^2.0.1" - jest-get-type "^24.8.0" - leven "^2.1.0" - pretty-format "^24.8.0" - -jest-watcher@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz#58d49915ceddd2de85e238f6213cef1c93715de4" - integrity sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw== - dependencies: - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" - "@types/yargs" "^12.0.9" + jest-get-type "^24.9.0" + leven "^3.1.0" + pretty-format "^24.9.0" + +jest-watcher@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" + integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== + dependencies: + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-util "^24.8.0" + jest-util "^24.9.0" string-length "^2.0.0" -jest-worker@^24.6.0: - version "24.6.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz#7f81ceae34b7cde0c9827a6980c35b7cdc0161b3" - integrity sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ== +jest-worker@^24.6.0, jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== dependencies: - merge-stream "^1.0.1" + merge-stream "^2.0.0" supports-color "^6.1.0" jest@24.1.0: @@ -8574,9 +8564,9 @@ json-to-pretty-yaml@1.2.2: remove-trailing-spaces "^1.0.6" json3@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE= + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== json5@2.x, json5@^2.1.0: version "2.1.0" @@ -8604,11 +8594,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" @@ -8671,7 +8656,7 @@ 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== -kleur@^3.0.2: +kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== @@ -8737,11 +8722,6 @@ less@3.9.0: request "^2.83.0" source-map "~0.6.0" -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -8778,9 +8758,9 @@ lie@~3.1.0: immediate "~3.0.5" linkify-it@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.1.0.tgz#c4caf38a6cd7ac2212ef3c7d2bde30a91561f9db" - integrity sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== dependencies: uc.micro "^1.0.1" @@ -8905,7 +8885,7 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -loader-runner@^2.3.0: +loader-runner@^2.3.0, loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== @@ -8955,7 +8935,7 @@ lodash.isstring@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= -lodash.memoize@4.1.2: +lodash.memoize@4.1.2, lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= @@ -8980,21 +8960,16 @@ lodash.tail@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ= -lodash@4.17.11, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.5.1: +lodash@4.17.11: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== -lodash@^4.17.14: +lodash@4.17.15, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.5.0, lodash@^4.5.1: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -lodash@^4.5.0: - version "4.17.14" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.14.tgz#9ce487ae66c96254fe20b599f21b6816028078ba" - integrity sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw== - log-symbols@2.2.0, log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" @@ -9055,15 +9030,10 @@ logform@^2.1.1: ms "^2.1.1" triple-beam "^1.3.0" -loglevel@^1.4.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" - integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po= - -loglevel@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" - integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== +loglevel@^1.4.1, loglevel@^1.6.3: + version "1.6.4" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56" + integrity sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g== long@^4.0.0: version "4.0.0" @@ -9124,7 +9094,7 @@ lru-queue@0.1: dependencies: es5-ext "~0.10.2" -magic-string@0.25.2, magic-string@^0.25.0: +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== @@ -9138,6 +9108,13 @@ magic-string@0.25.3: dependencies: sourcemap-codec "^1.4.4" +magic-string@^0.25.0: + version "0.25.4" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.4.tgz#325b8a0a79fc423db109b77fd5a19183b7ba5143" + integrity sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw== + dependencies: + sourcemap-codec "^1.4.4" + make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -9267,9 +9244,9 @@ md5.js@^1.3.4: safe-buffer "^5.1.2" mdast-util-compact@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz#c12ebe16fffc84573d3e19767726de226e95f649" - integrity sha512-d2WS98JSDVbpSsBfVvD9TaDMlqPRz7ohM/11G0rp5jOBb5q96RJ6YLszQ/09AAixyzh23FeIpCGqfaamEADtWg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz#98a25cc8a7865761a41477b3a87d1dcef0b1e79d" + integrity sha512-nRiU5GpNy62rZppDKbLwhhtw5DXoFMqw9UNZFmlPsNaQCZ//WLjGKUwWMdJrUH+Se7UvtO2gXtAMe0g/N+eI5w== dependencies: unist-util-visit "^1.1.0" @@ -9363,25 +9340,22 @@ merge-descriptors@1.0.1: integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= merge-graphql-schemas@^1.5.8: - version "1.5.8" - resolved "https://registry.yarnpkg.com/merge-graphql-schemas/-/merge-graphql-schemas-1.5.8.tgz#89457b60312aabead44d5b2b7625643f8ab9e369" - integrity sha512-0TGOKebltvmWR9h9dPYS2vAqMPThXwJ6gVz7O5MtpBp2sunAg/M25iMSNI7YhU6PDJVtGtldTfqV9a+55YhB+A== + version "1.7.0" + resolved "https://registry.yarnpkg.com/merge-graphql-schemas/-/merge-graphql-schemas-1.7.0.tgz#bedf99b90096d4b324f8e81271e878e6b5cc930d" + integrity sha512-uxErpYVjlf91eTBdwHxVEwKtaosmmEHMJaQfe35XHwOEpUfhA9OFbYKRfZX5jUUS53xMnk203HDAl/u0EfjP7A== dependencies: - deepmerge "^2.2.1" - glob "^7.1.3" - is-glob "^4.0.0" + graphql-toolkit "0.5.0" + tslib "1.10.0" -merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" - integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== methods@~1.1.2: version "1.1.2" @@ -9442,11 +9416,16 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": +mime-db@1.40.0: 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.40.0 < 2": + version "1.42.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" + integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== + mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.24" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" @@ -9464,10 +9443,10 @@ mime@1.6.0, mime@^1.3.4, mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.3.1, mime@^2.4.2: - version "2.4.3" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.3.tgz#229687331e86f68924e6cb59e1cdd937f18275fe" - integrity sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw== +mime@^2.3.1, mime@^2.4.2, mime@^2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== mimic-fn@^1.0.0: version "1.2.0" @@ -9534,20 +9513,20 @@ minimist@~0.0.1: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= -minipass@^2.2.1, minipass@^2.3.4, minipass@^2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" - integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== +minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" -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== +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== dependencies: - minipass "^2.2.1" + minipass "^2.9.0" mississippi@^2.0.0: version "2.0.0" @@ -9648,12 +9627,12 @@ 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.0.0: +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== -ms@^2.1.1: +ms@^2.0.0, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== @@ -9716,9 +9695,9 @@ mute-stream@~0.0.4: integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== 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== + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== nanomatch@^1.2.9: version "1.2.13" @@ -9761,7 +9740,7 @@ negotiator@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.5.0, neo-async@^2.6.0: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== @@ -9809,25 +9788,25 @@ node-fetch@2.3.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5" integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA== -node-fetch@^2.1.2, node-fetch@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.5.0.tgz#8028c49fc1191bba56a07adc6e2a954644a48501" - integrity sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw== +node-fetch@2.6.0, node-fetch@^2.1.2, node-fetch@^2.2.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== -node-forge@0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" - integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ== +node-forge@0.8.2: + 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-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -node-libs-browser@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77" - integrity sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA== +node-libs-browser@^2.0.0, node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== dependencies: assert "^1.1.1" browserify-zlib "^0.2.0" @@ -9839,7 +9818,7 @@ node-libs-browser@^2.0.0: events "^3.0.0" https-browserify "^1.0.0" os-browserify "^0.3.0" - path-browserify "0.0.0" + path-browserify "0.0.1" process "^0.11.10" punycode "^1.2.4" querystring-es3 "^0.2.0" @@ -9851,17 +9830,17 @@ node-libs-browser@^2.0.0: tty-browserify "0.0.0" url "^0.11.0" util "^0.11.0" - vm-browserify "0.0.4" + vm-browserify "^1.0.1" node-modules-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^5.2.1: - version "5.4.0" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a" - integrity sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ== +node-notifier@^5.4.2: + version "5.4.3" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" + integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== dependencies: growly "^1.3.0" is-wsl "^1.1.0" @@ -9885,10 +9864,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.23, node-releases@^1.1.25: - version "1.1.25" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.25.tgz#0c2d7dbc7fed30fbe02a9ee3007b8c90bf0133d3" - integrity sha512-fI5BXuk83lKEoZDdH3gRhtsNgh05/wZacuXkgbiYkceE7+QIMXOg98n9ZV7mz27B+kFHnqHcUpscZZlGRSmTpQ== +node-releases@^1.1.23, node-releases@^1.1.29: + version "1.1.33" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.33.tgz#349f10291234624574f44cf32b7de259bf028303" + integrity sha512-I0V30bWQEoHb+10W8oedVoUrdjW5wIkYm0w7vvcrPO95pZY738m1k77GF5sO0vKg5eXYg9oGtrMAETbgZGm11A== dependencies: semver "^5.3.0" @@ -9917,7 +9896,7 @@ normalize-path@^2.0.1, normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, 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== @@ -9947,7 +9926,7 @@ npm-bundled@^1.0.1: resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== -npm-package-arg@6.1.0, npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: +npm-package-arg@6.1.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== @@ -9957,10 +9936,20 @@ npm-package-arg@6.1.0, npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: semver "^5.5.0" validate-npm-package-name "^3.0.0" +npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" + integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== + dependencies: + hosted-git-info "^2.7.1" + osenv "^0.1.5" + semver "^5.6.0" + validate-npm-package-name "^3.0.0" + npm-packlist@^1.1.12, npm-packlist@^1.1.6: - version "1.4.1" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" - integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw== + version "1.4.4" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" + integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -10103,7 +10092,17 @@ object-hash@1.3.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2" integrity sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ== -object-keys@^1.0.11, object-keys@^1.0.12: +object-inspect@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== + +object-is@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -10366,9 +10365,9 @@ p-limit@^1.0.0, p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" - integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== + version "2.2.1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" + integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== dependencies: p-try "^2.0.0" @@ -10457,11 +10456,11 @@ pako@~1.0.2, pako@~1.0.5: integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== dependencies: - cyclist "~0.2.2" + cyclist "^1.0.1" inherits "^2.0.3" readable-stream "^2.1.5" @@ -10473,9 +10472,9 @@ param-case@^2.1.0: no-case "^2.2.0" parse-asn1@^5.0.0: - version "5.1.4" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" - integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -10545,7 +10544,7 @@ parse5@^3.0.1: dependencies: "@types/node" "*" -parseurl@~1.3.2, parseurl@~1.3.3: +parseurl@^1.3.2, 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== @@ -10563,10 +10562,10 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== path-case@^2.1.0: version "2.1.1" @@ -10732,9 +10731,9 @@ pkg-dir@^3.0.0: find-up "^3.0.0" please-upgrade-node@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" - integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== dependencies: semver-compare "^1.0.0" @@ -10744,9 +10743,9 @@ pn@^1.1.0: integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== portfinder@^1.0.20, portfinder@^1.0.9: - version "1.0.20" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a" - integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw== + version "1.0.24" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.24.tgz#11efbc6865f12f37624b6531ead1d809ed965cfa" + integrity sha512-ekRl7zD2qxYndYflwiryJwMioBI7LI7rVXg3EnLK3sjkouT5eOuhS3gS255XxBksa30VG8UPZYZCdgfGOfkSUg== dependencies: async "^1.5.2" debug "^2.2.0" @@ -10775,9 +10774,9 @@ postcss-import@12.0.1: resolve "^1.1.7" postcss-jsx@^0.36.1: - version "0.36.1" - resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.1.tgz#ab5e469e7449b84bd1a5973ff555fbe84c39f91d" - integrity sha512-xaZpy01YR7ijsFUtu5rViYCFHurFIPHir+faiOQp8g/NfTfWqZCKDhKrydQZ4d8WlSAmVdXGwLjpFbsNUI26Sw== + version "0.36.3" + resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.3.tgz#c91113eae2935a1c94f00353b788ece9acae3f46" + integrity sha512-yV8Ndo6KzU8eho5mCn7LoLUGPkXrRXRjhMpX4AaYJ9wLJPv099xbtpbRQ8FrPnzVxb/cuMebbPR7LweSt+hTfA== dependencies: "@babel/core" ">=7.2.2" @@ -10789,11 +10788,11 @@ postcss-less@^3.1.4: postcss "^7.0.14" postcss-load-config@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" - integrity sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" + integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== dependencies: - cosmiconfig "^4.0.0" + cosmiconfig "^5.0.0" import-cwd "^2.0.0" postcss-loader@3.0.0: @@ -10876,11 +10875,11 @@ postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.1: integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== postcss-value-parser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz#99a983d365f7b2ad8d0f9b8c3094926eab4b936d" - integrity sha512-ESPktioptiSUchCKgggAkzdmkgzKfmp0EU8jXH+5kbIUB+unr0Y4CY9SRMvibuvYUBjNh1ACLbxqYNpdTQOteQ== + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" + integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== -postcss@7.0.17, postcss@^7.0.16, postcss@^7.0.17: +postcss@7.0.17: version "7.0.17" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== @@ -10889,10 +10888,10 @@ postcss@7.0.17, postcss@^7.0.16, postcss@^7.0.17: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.7: - version "7.0.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.16.tgz#48f64f1b4b558cb8b52c88987724359acb010da2" - integrity sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA== +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.7: + version "7.0.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.18.tgz#4b9cda95ae6c069c67a4d933029eddd4838ac233" + integrity sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -10934,12 +10933,12 @@ pretty-format@^23.6.0: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -pretty-format@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz#8dae7044f58db7cb8be245383b565a963e3c27f2" - integrity sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw== +pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" ansi-regex "^4.0.0" ansi-styles "^3.2.0" react-is "^16.8.4" @@ -10967,9 +10966,9 @@ process-nextick-args@~1.0.6: integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" @@ -11005,12 +11004,12 @@ promise@^7.1.1: asap "~2.0.3" prompts@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.4.tgz#179f9d4db3128b9933aa35f93a800d8fce76a682" - integrity sha512-HTzM3UWp/99A0gk51gAegwo1QRYA7xjcZufMNe33rCclFszUYAuHe1fIN/3ZmiHeGPkUsNaRyQm1hHOfM0PKxA== + version "2.2.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.2.1.tgz#f901dd2a2dfee080359c0e20059b24188d75ad35" + integrity sha512-VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw== dependencies: - kleur "^3.0.2" - sisteransi "^1.0.0" + kleur "^3.0.3" + sisteransi "^1.0.3" protobufjs@^6.8.6: version "6.8.8" @@ -11038,7 +11037,7 @@ protoduck@^5.0.1: dependencies: genfun "^5.0.0" -proxy-addr@~2.0.3, proxy-addr@~2.0.4, proxy-addr@~2.0.5: +proxy-addr@~2.0.3, 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== @@ -11063,15 +11062,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.2.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.2.0.tgz#df12b5b1b3a30f51c329eacbdef98f3a6e136dc6" - integrity sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA== - -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== +psl@^1.1.24, psl@^1.1.28: + version "1.4.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" + integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== public-encrypt@^4.0.0: version "4.0.3" @@ -11251,9 +11245,9 @@ rc@^1.2.7: strip-json-comments "~2.0.1" react-is@^16.8.4: - version "16.8.6" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" - integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== + version "16.10.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.10.1.tgz#0612786bf19df406502d935494f0450b40b8294f" + integrity sha512-BXUMf9sIOPXXZWqr7+c5SeOKJykyVr2u0UDzEf4LNGc6taGkQe1A9DFD07umCIXz45RLr9oAAwZbAJ0Pkknfaw== read-cache@^1.0.0: version "1.0.0" @@ -11263,9 +11257,9 @@ read-cache@^1.0.0: pify "^2.3.0" read-package-json@^2.0.0: - version "2.0.13" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a" - integrity sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.0.tgz#e3d42e6c35ea5ae820d9a03ab0c7291217fc51d5" + integrity sha512-KLhu8M1ZZNkMcrq1+0UJbR8Dii8KZUqB0Sha4mOx/bknfKI/fyrQVrG/YIt2UOtG667sD8+ee4EXMM91W9dC+A== dependencies: glob "^7.1.1" json-parse-better-errors "^1.0.1" @@ -11382,9 +11376,9 @@ readable-stream@1.1.x: string_decoder "~0.10.x" readable-stream@^3.0.6, readable-stream@^3.1.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9" - integrity sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw== + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -11403,9 +11397,9 @@ readable-stream@~2.0.6: util-deprecate "~1.0.1" readdir-scoped-modules@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" - integrity sha1-n6+jfShr5dksuuve4DDcm19AZ0c= + version "1.1.0" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== dependencies: debuglog "^1.0.1" dezalgo "^1.0.0" @@ -11421,17 +11415,17 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.1.1.tgz#b158123ac343c8b0f31d65680269cc0fc1025db1" - integrity sha512-XXdSXZrQuvqoETj50+JAitxz1UPdt5dupjT6T5nVB+WvjMv2XKYj+s7hPeAVCXvmJrL36O4YYyWlIC3an2ePiQ== +readdirp@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.1.3.tgz#d6e011ed5b9240a92f08651eeb40f7942ceb6cc1" + integrity sha512-ZOsfTGkjO2kqeR5Mzr5RYDbTGYneSkdNKX2fOX2P5jF7vMrd/GNnIAUtDldeHHumHUCQ3V05YfWUdxMPAsRu9Q== dependencies: picomatch "^2.0.4" readline-sync@^1.4.7: - version "1.4.9" - resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.9.tgz#3eda8e65f23cd2a17e61301b1f0003396af5ecda" - integrity sha1-PtqOZfI80qF+YTAbHwADOWr17No= + version "1.4.10" + resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" + integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== realpath-native@^1.0.0, realpath-native@^1.1.0: version "1.1.0" @@ -11468,7 +11462,7 @@ reflect-metadata@0.1.13, reflect-metadata@^0.1.2: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -regenerate-unicode-properties@^8.0.2: +regenerate-unicode-properties@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== @@ -11486,9 +11480,9 @@ regenerator-runtime@^0.11.0: integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-transform@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.0.tgz#2ca9aaf7a2c239dd32e4761218425b8c7a86ecaf" - integrity sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" + integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== dependencies: private "^0.1.6" @@ -11507,10 +11501,12 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp-tree@^0.1.6: - version "0.1.11" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.11.tgz#c9c7f00fcf722e0a56c7390983a7a63dd6c272f3" - integrity sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg== +regexp.prototype.flags@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" + integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA== + dependencies: + define-properties "^1.1.2" regexpu-core@^1.0.0: version "1.0.0" @@ -11521,13 +11517,13 @@ regexpu-core@^1.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^4.5.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" - integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== +regexpu-core@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" + integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.0.2" + regenerate-unicode-properties "^8.1.0" regjsgen "^0.5.0" regjsparser "^0.6.0" unicode-match-property-ecmascript "^1.0.4" @@ -11763,9 +11759,9 @@ resolve@1.10.0: path-parse "^1.0.6" resolve@1.x, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" - integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== + version "1.12.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" + integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== dependencies: path-parse "^1.0.6" @@ -11805,13 +11801,20 @@ reusify@^1.0.0: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@~2.6.2: +rimraf@2.6.3, rimraf@~2.6.2: 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" +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -11821,9 +11824,9 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: inherits "^2.0.1" rsvp@^4.8.4: - version "4.8.4" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.4.tgz#b50e6b34583f3dd89329a2f23a8a2be072845911" - integrity sha512-6FomvYPfs+Jy9TfXmBpBuMWNH94SgCsZmJKcanySzgNNP6LjWxBvyLTa9KaMfDDM5oxRfrKDB0r/qeRsLwnBfA== + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== run-async@^2.2.0: version "2.3.0" @@ -11873,7 +11876,7 @@ rxjs@6.4.0: dependencies: tslib "^1.9.0" -rxjs@6.5.2, rxjs@^6.3.3, rxjs@^6.4.0: +rxjs@6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== @@ -11887,17 +11890,24 @@ rxjs@^5.0.0-beta.11: dependencies: symbol-observable "1.0.1" +rxjs@^6.3.3, rxjs@^6.4.0: + version "6.5.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" + integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== -safe-buffer@5.1.2, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, 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== -safe-buffer@^5.0.1, safe-buffer@^5.1.2: +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== @@ -11959,11 +11969,11 @@ sax@^1.2.4: integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== saxes@^3.1.5: - version "3.1.9" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.9.tgz#c1c197cd54956d88c09f960254b999e192d7058b" - integrity sha512-FZeKhJglhJHk7eWG5YM0z46VHmI3KJpMBAQm3xa9meDvd+wevB5GuBB0wc0exPInZiBBHqi00DbS8AcvCGCFMw== + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== dependencies: - xmlchars "^1.3.1" + xmlchars "^2.1.1" schema-utils@^0.3.0: version "0.3.0" @@ -11995,11 +12005,11 @@ select-hose@^2.0.0: integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= selfsigned@^1.10.4, selfsigned@^1.9.1: - version "1.10.4" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" - integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== + version "1.10.6" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.6.tgz#7b3cd37ed9c2034261a173af1a1aae27d8169b67" + integrity sha512-i3+CeqxL7DpAazgVpAGdKMwHuL63B5nhJMh9NQ7xmChGkA3jNFflq6Jyo1LLJYcr3idWiNOPWHCrm4zMayLG4w== dependencies: - node-forge "0.7.5" + node-forge "0.8.2" semver-compare@^1.0.0: version "1.0.0" @@ -12021,24 +12031,24 @@ semver-intersect@1.4.0: semver "^5.0.0" "semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.0.1, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5, 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== + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== -semver@6.2.0, semver@^6.1.1: +semver@6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.2.0.tgz#4d813d9590aaf8a9192693d6c85b9344de5901db" integrity sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A== -semver@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" - integrity sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ== +semver@^6.0.0, semver@^6.1.1, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== send@0.16.2: version "0.16.2" @@ -12087,9 +12097,9 @@ sentence-case@^2.1.0: upper-case-first "^1.1.2" serialize-javascript@^1.4.0, serialize-javascript@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" - integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== + version "1.9.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" + integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== serve-index@^1.7.2, serve-index@^1.9.1: version "1.9.1" @@ -12129,20 +12139,10 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -12215,14 +12215,9 @@ shell-path@^2.0.0: shell-env "^0.3.0" shell-quote@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== shelljs@0.8.3, shelljs@^0.8.1: version "0.8.3" @@ -12259,10 +12254,10 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -sisteransi@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c" - integrity sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ== +sisteransi@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.3.tgz#98168d62b79e3a5e758e27ae63c4a053d748f4eb" + integrity sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg== slash@^1.0.0: version "1.0.0" @@ -12422,7 +12417,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@0.5.12, source-map-support@^0.5.0, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@^0.5.9, source-map-support@~0.5.10, source-map-support@~0.5.12: +source-map-support@0.5.12: version "0.5.12" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== @@ -12430,6 +12425,14 @@ source-map-support@0.5.12, source-map-support@^0.5.0, source-map-support@^0.5.5, buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@^0.5.0, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@^0.5.9, source-map-support@~0.5.12: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -12470,9 +12473,9 @@ source-map@~0.4.1: amdefine ">=0.0.4" 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== + version "1.4.6" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz#e30a74f0402bad09807640d39e971090a08ce1e9" + integrity sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg== spawn-command-with-kill@^1.0.0: version "1.0.2" @@ -12509,9 +12512,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.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== + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== spdy-transport@^3.0.0: version "3.0.0" @@ -12526,9 +12529,9 @@ spdy-transport@^3.0.0: wbuf "^1.7.3" spdy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.0.tgz#81f222b5a743a329aa12cea6a390e60e9b613c52" - integrity sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q== + version "4.0.1" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" + integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== dependencies: debug "^4.1.0" handle-thing "^2.0.0" @@ -12735,7 +12738,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0: +string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== @@ -12762,12 +12765,28 @@ string.prototype.padend@^3.0.0: es-abstract "^1.4.3" function-bind "^1.0.2" +string.prototype.trimleft@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" + integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" + integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + string_decoder@^1.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== + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: - safe-buffer "~5.1.0" + safe-buffer "~5.2.0" string_decoder@~0.10.x: version "0.10.31" @@ -12946,7 +12965,7 @@ stylus@0.54.5: sax "0.5.x" source-map "0.1.x" -subscriptions-transport-ws@^0.9.11: +subscriptions-transport-ws@^0.9.11, subscriptions-transport-ws@^0.9.16: version "0.9.16" resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz#90a422f0771d9c32069294c08608af2d47f596ec" integrity sha512-pQdoU7nC+EpStXnCfh/+ho0zE0Z+ma+i7xvj7bkXKb1dvYHSZxgRPaU6spRP+Bjzow67c/rRDoix5RT0uU9omw== @@ -13021,37 +13040,37 @@ symbol-observable@1.2.0, symbol-observable@^1.0.2, symbol-observable@^1.0.4, sym integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== symbol-tree@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" - integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table@^5.2.3: - version "5.4.1" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.1.tgz#0691ae2ebe8259858efb63e550b6d5f9300171e8" - integrity sha512-E6CK1/pZe2N75rGZQotFOdmzWQ1AILtgYbMAbAjvms0S1l5IDB47zG3nCnFGB/w+7nB3vKofbLXCH7HPBo864w== + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== dependencies: - ajv "^6.9.1" - lodash "^4.17.11" + ajv "^6.10.2" + lodash "^4.17.14" slice-ansi "^2.1.0" string-width "^3.0.0" -tapable@^1.0.0, tapable@^1.1.0: +tapable@^1.0.0, tapable@^1.1.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar@^4, tar@^4.4.8: - version "4.4.8" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" - integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" - minipass "^2.3.4" - minizlib "^1.1.1" + minipass "^2.8.6" + minizlib "^1.2.1" mkdirp "^0.5.0" safe-buffer "^5.1.2" - yallist "^3.0.2" + yallist "^3.0.3" temp-write@^2.1.0: version "2.1.0" @@ -13093,34 +13112,25 @@ terser-webpack-plugin@1.3.0: webpack-sources "^1.3.0" worker-farm "^1.7.0" -terser-webpack-plugin@^1.1.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.4.tgz#56f87540c28dd5265753431009388f473b5abba3" - integrity sha512-64IiILNQlACWZLzFlpzNaG0bpQ4ytaB7fwOsbpsdIV70AfLUmIGGeuKL0YV2WmtcrURjE2aOvHD4/lrFV3Rg+Q== +terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" + integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== dependencies: - cacache "^11.3.2" - find-cache-dir "^2.0.0" + cacache "^12.0.2" + find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" serialize-javascript "^1.7.0" source-map "^0.6.1" - terser "^3.17.0" - webpack-sources "^1.3.0" + terser "^4.1.2" + webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser@^3.17.0: - version "3.17.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" - integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== - dependencies: - commander "^2.19.0" - source-map "~0.6.1" - source-map-support "~0.5.10" - -terser@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.1.2.tgz#b2656c8a506f7ce805a3f300a2ff48db022fa391" - integrity sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw== +terser@^4.0.0, terser@^4.1.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.4.tgz#ad91bade95619e3434685d69efa621a5af5f877d" + integrity sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -13170,9 +13180,9 @@ thunky@^1.0.2: integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== timers-browserify@^2.0.4: - version "2.0.10" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" - integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== dependencies: setimmediate "^1.0.4" @@ -13329,29 +13339,15 @@ triple-beam@^1.2.0, triple-beam@^1.3.0: integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== trix@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/trix/-/trix-1.1.1.tgz#ca8a3fab4d23d960a17e88441d601cb22a86f5d5" - integrity sha512-dNHTcryRK0EmwCyJDOBrG6OznL8HNEVVlecq/xzxLj3M9Eht5DV4yl+eCYX8RKyfrtBcNki+mpKIxESgXaGGZA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/trix/-/trix-1.2.0.tgz#b314101abd1d8d3d5da22ae5b866a719a73a6e21" + integrity sha512-gJ7edoWzcnc9DBjsgeGkmotVpyVhFQTlSOmUYjwFn71NlGixAhNgsu8pVIq/jkIkbk6om0PSetc9cRJm+qU3+A== trough@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e" integrity sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q== -ts-invariant@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.2.1.tgz#3d587f9d6e3bded97bf9ec17951dd9814d5a9d3f" - integrity sha512-Z/JSxzVmhTo50I+LKagEISFJW3pvPCqsMWLamCTX8Kr3N5aMrnGOqcflbe5hLUzwjvgPfnLzQtHZv0yWQ+FIHg== - dependencies: - tslib "^1.9.3" - -ts-invariant@^0.3.2: - version "0.3.3" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.3.3.tgz#b5742b1885ecf9e29c31a750307480f045ec0b16" - integrity sha512-UReOKsrJFGC9tUblgSRWo+BsVNbEd77Cl6WiV/XpMlkifXwNIJbknViCucHvVZkXSC/mcWeRnIGdY7uprcwvdQ== - dependencies: - tslib "^1.9.3" - ts-invariant@^0.4.0: version "0.4.4" resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" @@ -13359,7 +13355,7 @@ ts-invariant@^0.4.0: dependencies: tslib "^1.9.3" -ts-jest@24.0.2, ts-jest@^24.0.0: +ts-jest@24.0.2: version "24.0.2" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.0.2.tgz#8dde6cece97c31c03e80e474c749753ffd27194d" integrity sha512-h6ZCZiA1EQgjczxq+uGLXQlNgeg02WWJBbeT8j6nyIBRQdglqbvzDoHahTEIiS6Eor6x8mK6PfZ7brQ9Q6tzHw== @@ -13374,6 +13370,22 @@ ts-jest@24.0.2, ts-jest@^24.0.0: semver "^5.5" yargs-parser "10.x" +ts-jest@^24.0.0: + version "24.1.0" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.1.0.tgz#2eaa813271a2987b7e6c3fefbda196301c131734" + integrity sha512-HEGfrIEAZKfu1pkaxB9au17b1d9b56YZSqz5eCVE8mX68+5reOvlM93xGOzzCREIov9mdH7JBG+s0UyNAqr0tQ== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + mkdirp "0.x" + resolve "1.x" + semver "^5.5" + yargs-parser "10.x" + ts-loader@5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-5.3.1.tgz#70614c8ec4354a9c8b89c9f97b2becb7a98a3980" @@ -13426,12 +13438,11 @@ tsconfig-paths-webpack-plugin@3.2.0: tsconfig-paths "^3.4.0" tsconfig-paths@^3.4.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.8.0.tgz#4e34202d5b41958f269cf56b01ed95b853d59f72" - integrity sha512-zZEYFo4sjORK8W58ENkRn9s+HmQFkkwydDG7My5s/fnfr2YYCaiyXe/HBUcIgU8epEKOXwiahOO+KZYjiXlWyQ== + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== dependencies: "@types/json5" "^0.0.29" - deepmerge "^2.0.1" json5 "^1.0.1" minimist "^1.2.0" strip-bom "^3.0.0" @@ -13445,7 +13456,12 @@ tsickle@0.35.0: mkdirp "^0.5.1" source-map "^0.7.3" -tslib@1.9.3, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@1.10.0, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tslib@1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== @@ -13483,9 +13499,9 @@ tsutils@^2.27.2: tslib "^1.8.1" tsutils@^3.0.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.10.0.tgz#6f1c95c94606e098592b0dff06590cf9659227d6" - integrity sha512-q20XSMq7jutbGB8luhKKsQldRKWvyBO2BGqni3p4yq8Ys9bEP/xQw3KepKmMRt9gJ4lvQSScrihJrcKdKoSU7Q== + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== dependencies: tslib "^1.8.1" @@ -13536,6 +13552,11 @@ type-is@^1.6.16, type-is@^1.6.4, type-is@~1.6.15, type-is@~1.6.16, type-is@~1.6. media-typer "0.3.0" mime-types "~2.1.24" +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + typed-rest-client@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/typed-rest-client/-/typed-rest-client-1.2.0.tgz#723085d203f38d7d147271e5ed3a75488eb44a02" @@ -13549,20 +13570,25 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@3.4.5, typescript@^3.0.1, typescript@^3.2.2: +typescript@3.4.5: version "3.4.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw== +typescript@^3.0.1, typescript@^3.2.2: + version "3.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.3.tgz#fea942fabb20f7e1ca7164ff626f1a9f3f70b4da" + integrity sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw== + uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.5.12" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.12.tgz#6b759cabc08c3e91fe82323d6387019f0c5864cd" - integrity sha512-KeQesOpPiZNgVwJj8Ge3P4JYbQHUdZzpx6Fahy6eKAYRSV4zhVmLXoC+JtOeYxcHCHTve8RG1ZGdTvpeOUM26Q== + version "3.6.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" + integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== dependencies: commander "~2.20.0" source-map "~0.6.1" @@ -13623,14 +13649,14 @@ unified@^7.0.0: x-is-string "^0.1.0" union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" get-value "^2.0.6" is-extendable "^0.1.1" - set-value "^0.4.3" + set-value "^2.0.1" uniq@^1.0.1: version "1.0.1" @@ -13645,28 +13671,28 @@ unique-filename@^1.1.0, unique-filename@^1.1.1: unique-slug "^2.0.0" unique-slug@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" - integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" unist-util-find-all-after@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz#9be49cfbae5ca1566b27536670a92836bf2f8d6d" - integrity sha512-nDl79mKpffXojLpCimVXnxhlH/jjaTnDuScznU9J4jjsaUtBdDbxmlc109XtcqxY4SDO0SwzngsxxW8DIISt1w== + version "1.0.4" + resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.4.tgz#2eeaba818fd98492d69c44f9bee52c6a25282eef" + integrity sha512-CaxvMjTd+yF93BKLJvZnEfqdM7fgEACsIpQqz8vIj9CJnUb9VpyymFS3tg6TCtgrF7vfCJBF5jbT2Ox9CBRYRQ== dependencies: - unist-util-is "^2.0.0" + unist-util-is "^3.0.0" -unist-util-is@^2.0.0, unist-util-is@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.2.tgz#1193fa8f2bfbbb82150633f3a8d2eb9a1c1d55db" - integrity sha512-YkXBK/H9raAmG7KXck+UUpnKiNmUdB+aBGrknfQ4EreE1banuzrKABx3jP6Z5Z3fMSPMQQmeXBlKpCbMwBkxVw== +unist-util-is@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" + integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== unist-util-remove-position@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz#86b5dad104d0bbfbeb1db5f5c92f3570575c12cb" - integrity sha512-XxoNOBvq1WXRKXxgnSYbtCF76TJrRoe5++pD4cCBsssSiWSnPEktyFrFLE8LTk3JW5mt9hB0Sk5zn4x/JeWY7Q== + version "1.1.3" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.3.tgz#d91aa8b89b30cb38bad2924da11072faa64fd972" + integrity sha512-CtszTlOjP2sBGYc2zcKA/CvNdTdEs3ozbiJ63IPBxh8iZg42SCCb8m04f8z2+V1aSk5a7BxbZKEdoDjadmBkWA== dependencies: unist-util-visit "^1.1.0" @@ -13676,16 +13702,16 @@ unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== unist-util-visit-parents@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.0.tgz#e45cad0d7e5ac683362088b329bc80abd1cfc5fb" - integrity sha512-j0XZY3063E6v7qhx4+Q2Z0r8SMrLX7Mr6DabiCy67zMEcFQYtpNOplLlEK1KKEBEs9S+xB5U+yloQxbSwF9P/g== + version "2.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" + integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== dependencies: - unist-util-is "^2.1.2" + unist-util-is "^3.0.0" unist-util-visit@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.0.tgz#1cb763647186dc26f5e1df5db6bd1e48b3cc2fb1" - integrity sha512-FiGu34ziNsZA3ZUteZxSFaczIjGmksfSgdKqBfOejrrfzyUy5b7YrlzT1Bcvi+djkYDituJDy2XB7tGTeBieKw== + version "1.4.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" + integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== dependencies: unist-util-visit-parents "^2.0.0" @@ -13717,9 +13743,9 @@ unset-value@^1.0.0: isobject "^3.0.0" upath@^1.1.0, 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== + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== upper-case-first@^1.1.0, upper-case-first@^1.1.2: version "1.1.2" @@ -13810,7 +13836,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@3.3.2, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2: +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== @@ -13820,6 +13846,11 @@ uuid@^2.0.1: resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho= +uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + valid-url@1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" @@ -13855,9 +13886,9 @@ verror@1.10.0: extsprintf "^1.2.0" vfile-location@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.4.tgz#2a5e7297dd0d9e2da4381464d04acc6b834d3e55" - integrity sha512-KRL5uXQPoUKu+NGvQVL4XLORw45W62v4U4gxJ3vRlDfI9QsT4ZN1PNXn/zQpKUulqGDpYuT0XDfp5q9O87/y/w== + version "2.0.5" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.5.tgz#c83eb02f8040228a8d2b3f10e485be3e3433e0a2" + integrity sha512-Pa1ey0OzYBkLPxPZI3d9E+S4BmvfVwNAAXrrqGbwTVXWaX2p9kM1zZ+n35UtVM06shmWKH4RPRN8KI80qE3wNQ== vfile-message@^1.0.0: version "1.1.1" @@ -13881,17 +13912,15 @@ viz.js@^1.8.1: resolved "https://registry.yarnpkg.com/viz.js/-/viz.js-1.8.2.tgz#d9cc04cd99f98ec986bf9054db76a6cbcdc5d97a" integrity sha512-W+1+N/hdzLpQZEcvz79n2IgUE9pfx6JLdHh3Kh8RGvLL8P1LdJVQmi2OsDcLdY4QVID4OUy+FPelyerX0nJxIQ== -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= - dependencies: - indexof "0.0.1" +vm-browserify@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== vsce@^1.66.0: - version "1.66.0" - resolved "https://registry.yarnpkg.com/vsce/-/vsce-1.66.0.tgz#8cf1d64a4825d5d0523ea5efd0bf41e2c6829565" - integrity sha512-Zf4+WD4PhEcOr7jkU08SI9lwFqDhmhk73YOCGQ/tNLaBy+PnnX4eSdqj9LdzDLuI2dsyomJLXzDSNgxuaInxCQ== + version "1.67.1" + resolved "https://registry.yarnpkg.com/vsce/-/vsce-1.67.1.tgz#82dbb29d0197de3d02482abfa9ea5199d2697065" + integrity sha512-Y/0fnfaLs2cCfytTGmy4Cp1bf9BaxHO7020YePdUwxjAlPlZ9+lm74M9yEFEWXTIug0L0sMax1WMz0TnozIqxg== dependencies: azure-devops-node-api "^7.2.0" chalk "^2.4.2" @@ -13923,9 +13952,9 @@ vscode-test@^0.4.1: https-proxy-agent "^2.2.1" vscode@^1.1.35: - version "1.1.35" - resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.35.tgz#f8c6beb905738b874d539ddb3784e5feeec71c0a" - integrity sha512-xPnxzQU40LOS2yPyzWW+WKpTV6qA3z16TcgpZ9O38UWLA157Zz4GxUx5H7Gd07pxzw0GqvusbF4D+5GBgNxvEQ== + version "1.1.36" + resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.36.tgz#5e1a0d1bf4977d0c7bc5159a9a13d5b104d4b1b6" + integrity sha512-cGFh9jmGLcTapCpPCKvn8aG/j9zVQ+0x5hzYJq5h5YyUXVGa1iamOaB2M2PZXoumQPES4qeAP1FwkI0b6tL4bQ== dependencies: glob "^7.1.2" mocha "^5.2.0" @@ -13958,7 +13987,7 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.x" -watchpack@^1.5.0: +watchpack@^1.5.0, watchpack@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== @@ -13997,7 +14026,7 @@ webpack-dev-middleware@3.4.0: range-parser "^1.0.3" webpack-log "^2.0.0" -webpack-dev-middleware@3.7.0, webpack-dev-middleware@^3.7.0: +webpack-dev-middleware@3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" integrity sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA== @@ -14007,6 +14036,17 @@ webpack-dev-middleware@3.7.0, webpack-dev-middleware@^3.7.0: range-parser "^1.2.1" webpack-log "^2.0.0" +webpack-dev-middleware@^3.7.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + webpack-dev-server@3.1.14: version "3.1.14" resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz#60fb229b997fc5a0a1fc6237421030180959d469" @@ -14100,7 +14140,7 @@ webpack-node-externals@1.7.2: resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" integrity sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg== -webpack-sources@1.3.0, webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0: +webpack-sources@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== @@ -14108,7 +14148,7 @@ webpack-sources@1.3.0, webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-s source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^1.4.3: +webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -14184,40 +14224,41 @@ webpack@4.35.2: webpack-sources "^1.3.0" webpack@^4.36.1: - version "4.36.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.36.1.tgz#f546fda7a403a76faeaaa7196c50d12370ed18a9" - integrity sha512-Ej01/N9W8DVyhEpeQnbUdGvOECw0L46FxS12cCOs8gSK7bhUlrbHRnWkjiXckGlHjUrmL89kDpTRIkUk6Y+fKg== + version "4.41.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.0.tgz#db6a254bde671769f7c14e90a1a55e73602fc70b" + integrity sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5" "@webassemblyjs/wasm-edit" "1.8.5" "@webassemblyjs/wasm-parser" "1.8.5" - acorn "^6.2.0" - ajv "^6.1.0" - ajv-keywords "^3.1.0" - chrome-trace-event "^1.0.0" + acorn "^6.2.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" enhanced-resolve "^4.1.0" - eslint-scope "^4.0.0" + eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - micromatch "^3.1.8" - mkdirp "~0.5.0" - neo-async "^2.5.0" - node-libs-browser "^2.0.0" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.1" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" schema-utils "^1.0.0" - tapable "^1.1.0" - terser-webpack-plugin "^1.1.0" - watchpack "^1.5.0" - webpack-sources "^1.3.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.1" + watchpack "^1.6.0" + webpack-sources "^1.4.1" websocket-driver@>=0.5.1: - version "0.7.0" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" - integrity sha1-DK+dLXVdk67gSdS90NP+LMoqJOs= + version "0.7.3" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== dependencies: - http-parser-js ">=0.4.0" + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: @@ -14237,6 +14278,11 @@ whatwg-fetch@2.0.4: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== +whatwg-fetch@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" + integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== + whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" @@ -14362,6 +14408,15 @@ wrap-ansi@^3.0.1: string-width "^2.1.1" strip-ansi "^4.0.0" +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -14407,10 +14462,10 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xmlchars@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-1.3.1.tgz#1dda035f833dbb4f86a0c28eaa6ca769214793cf" - integrity sha512-tGkGJkN8XqCod7OT+EvGYK5Z4SfDQGD30zAa58OcnAa0RRWgzUEK72tkXhsX1FZd+rgnhRxFtmO+ihkp8LHSkw== +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== xregexp@4.0.0: version "4.0.0" @@ -14418,9 +14473,9 @@ xregexp@4.0.0: integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg== xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== xterm@3.14.5: version "3.14.5" @@ -14442,10 +14497,10 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yargs-parser@10.0.0: version "10.0.0" @@ -14469,10 +14524,10 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^13.0.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.0.tgz#7016b6dd03e28e1418a510e258be4bff5a31138f" - integrity sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA== +yargs-parser@^13.0.0, yargs-parser@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -14509,7 +14564,7 @@ yargs@12.0.2: y18n "^3.2.1 || ^4.0.0" yargs-parser "^10.1.0" -yargs@12.0.5, yargs@^12.0.2: +yargs@12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== @@ -14562,6 +14617,22 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" +yargs@^13.3.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.1" + yargs@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" @@ -14604,22 +14675,14 @@ yazl@^2.2.2: buffer-crc32 "~0.2.3" yn@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.0.tgz#fcbe2db63610361afcc5eb9e0ac91e976d046114" - integrity sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg== - -zen-observable-ts@^0.8.18: - version "0.8.18" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.18.tgz#ade44b1060cc4a800627856ec10b9c67f5f639c8" - integrity sha512-q7d05s75Rn1j39U5Oapg3HI2wzriVwERVo4N7uFGpIYuHB9ff02P/E92P9B8T7QVC93jCMHpbXH7X0eVR5LA7A== - dependencies: - tslib "^1.9.3" - zen-observable "^0.8.0" + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== -zen-observable-ts@^0.8.19: - version "0.8.19" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.19.tgz#c094cd20e83ddb02a11144a6e2a89706946b5694" - integrity sha512-u1a2rpE13G+jSzrg3aiCqXU5tN2kw41b+cBZGmnc+30YimdkKiDj9bTowcB41eL77/17RF/h+393AuVgShyheQ== +zen-observable-ts@^0.8.19, zen-observable-ts@^0.8.20: + version "0.8.20" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.20.tgz#44091e335d3fcbc97f6497e63e7f57d5b516b163" + integrity sha512-2rkjiPALhOtRaDX6pWyNqK1fnP5KkJJybYebopNSn6wDG1lxBoFs2+nwwXKoA6glHIrtwrfBBy6da0stkKtTAA== dependencies: tslib "^1.9.3" zen-observable "^0.8.0"