From f45ed42bdb225df82884e3cd93292136cf3bfc6e Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 9 Jun 2020 14:57:37 -0400 Subject: [PATCH 01/90] feat(layer) feature layer stored in a store now have a inMapExtent state --- .../shared/strategies/loading-layer.ts | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts b/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts index 8a0f83412a..050c8d1b0a 100644 --- a/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts +++ b/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts @@ -1,10 +1,12 @@ import { unByKey } from 'ol/Observable'; import { OlEvent } from 'ol/events/Event'; +import * as olextent from 'ol/extent'; import { EntityStoreStrategy } from '@igo2/common'; import { FeatureStore } from '../store'; -import { FeatureStoreLoadingLayerStrategyOptions } from '../feature.interfaces'; +import { FeatureStoreLoadingLayerStrategyOptions, Feature } from '../feature.interfaces'; +import { Subscription } from 'rxjs'; /** * This strategy loads a layer's features into it's store counterpart. @@ -20,6 +22,7 @@ export class FeatureStoreLoadingLayerStrategy extends EntityStoreStrategy { * Subscription to the store's OL source changes */ private stores$$ = new Map(); + private state$$: Subscription[]; constructor(protected options: FeatureStoreLoadingLayerStrategyOptions) { super(options); @@ -76,7 +79,22 @@ export class FeatureStoreLoadingLayerStrategy extends EntityStoreStrategy { const olSource = store.layer.ol.getSource(); olSource.on('change', (event: OlEvent) => { this.onSourceChanges(store); + this.updateEntitiesInExtent(store); }); + + this.state$$.push(store.layer.map.viewController.state$.subscribe(() => { + this.updateEntitiesInExtent(store); + })); + } + + private updateEntitiesInExtent(store) { + store.state.updateAll({ inMapExtent: false }); + const mapExtent = store.layer.map.viewController.getExtent(); + const entitiesInMapExtent = store.entities$.value + .filter((entity: Feature) => olextent.intersects(entity.ol.getGeometry().getExtent(), mapExtent)); + if (entitiesInMapExtent.length > 0) { + store.state.updateMany(entitiesInMapExtent, { inMapExtent: true }, true); + } } /** @@ -99,6 +117,7 @@ export class FeatureStoreLoadingLayerStrategy extends EntityStoreStrategy { unByKey(entries[1]); }); this.stores$$.clear(); + this.state$$.map(state => state.unsubscribe()); } /** From 9cdb867a6c9207a454f07ac8f085196c66df17b3 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 9 Jun 2020 15:06:03 -0400 Subject: [PATCH 02/90] feat(workspace-state) active widget subscription --- .../src/lib/workspace/workspace.state.ts | 60 +++++++++++++++++-- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/packages/integration/src/lib/workspace/workspace.state.ts b/packages/integration/src/lib/workspace/workspace.state.ts index f33aecfb73..77dcfc42be 100644 --- a/packages/integration/src/lib/workspace/workspace.state.ts +++ b/packages/integration/src/lib/workspace/workspace.state.ts @@ -1,8 +1,8 @@ -import { Injectable } from '@angular/core'; +import { Injectable, OnDestroy } from '@angular/core'; -import { BehaviorSubject } from 'rxjs'; +import { BehaviorSubject, Subscription } from 'rxjs'; -import { EntityRecord, Workspace, WorkspaceStore } from '@igo2/common'; +import { EntityRecord, Workspace, WorkspaceStore, Widget } from '@igo2/common'; /** * Service that holds the state of the workspace module @@ -10,7 +10,16 @@ import { EntityRecord, Workspace, WorkspaceStore } from '@igo2/common'; @Injectable({ providedIn: 'root' }) -export class WorkspaceState { +export class WorkspaceState implements OnDestroy { + + /** Subscription to the active workspace */ + private activeWorkspace$$: Subscription; + + /** Subscription to the active workspace widget */ + private activeWorkspaceWidget$$: Subscription; + + /** Active widget observable. Only one may be active for all clients */ + readonly activeWorkspaceWidget$: BehaviorSubject = new BehaviorSubject(undefined); /** * Observable of the active workspace @@ -24,6 +33,15 @@ export class WorkspaceState { private _store: WorkspaceStore; constructor() { + this.initWorkspaces(); + } + + /** + * Initialize the workspace store. Each time a workspace is activated, + * subscribe to it's active widget. Tracking the active widget is useful + * to make sure only one widget is active at a time. + */ + private initWorkspaces() { this._store = new WorkspaceStore([]); this._store.stateView .firstBy$((record: EntityRecord) => record.state.active === true) @@ -31,6 +49,40 @@ export class WorkspaceState { const workspace = record ? record.entity : undefined; this.workspace$.next(workspace); }); + + this.activeWorkspace$$ = this.workspace$ + .subscribe((workspace: Workspace) => { + if (this.activeWorkspaceWidget$$ !== undefined) { + this.activeWorkspaceWidget$$.unsubscribe(); + this.activeWorkspaceWidget$$ = undefined; + } + + if (workspace !== undefined) { + this.activeWorkspaceWidget$$ = workspace.widget$ + .subscribe((widget: Widget) => this.activeWorkspaceWidget$.next(widget)); + } + }); + } + + /** + * Teardown all the workspaces + * @internal + */ + ngOnDestroy() { + this.teardownWorkspaces(); + } + + /** + * Teardown the workspace store and any subscribers + */ + private teardownWorkspaces() { + this.store.clear(); + if (this.activeWorkspaceWidget$$ !== undefined) { + this.activeWorkspaceWidget$$.unsubscribe(); + } + if (this.activeWorkspace$$ !== undefined) { + this.activeWorkspace$$.unsubscribe(); + } } } From c554e663e61b116faaf295ec20cea66a7796f984 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 9 Jun 2020 15:09:21 -0400 Subject: [PATCH 03/90] feat(workspace) monitor a tool to activate on workspace --- packages/common/src/lib/workspace/shared/workspace.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/common/src/lib/workspace/shared/workspace.ts b/packages/common/src/lib/workspace/shared/workspace.ts index 531fea9845..64c883ebd5 100644 --- a/packages/common/src/lib/workspace/shared/workspace.ts +++ b/packages/common/src/lib/workspace/shared/workspace.ts @@ -87,6 +87,8 @@ export class Workspace { get active(): boolean { return this.active$.value; } readonly active$: BehaviorSubject = new BehaviorSubject(false); + toolToActivate$: BehaviorSubject<{ toolbox: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); + /** * Activate the workspace. By doing that, the workspace will observe * the selected entity (from the store) and update the actions availability. From 3d72d7f6db98cc85b81cfdbd2ee17ebd29b480dc Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 9 Jun 2020 15:12:24 -0400 Subject: [PATCH 04/90] feat(workspace) Feature datasource (imported or url based) now get a workspace --- .../shared/feature-actions.service.ts | 55 ++++++++++++ .../shared/feature-workspace.service.ts | 86 +++++++++++++++++++ .../lib/workspace/shared/feature-workspace.ts | 23 +++++ .../geo/src/lib/workspace/shared/index.ts | 3 + .../workspace-selector.directive.ts | 12 ++- 5 files changed, 176 insertions(+), 3 deletions(-) create mode 100644 packages/geo/src/lib/workspace/shared/feature-actions.service.ts create mode 100644 packages/geo/src/lib/workspace/shared/feature-workspace.service.ts create mode 100644 packages/geo/src/lib/workspace/shared/feature-workspace.ts diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts new file mode 100644 index 0000000000..879946238c --- /dev/null +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -0,0 +1,55 @@ +import { Injectable } from '@angular/core'; + +import { Action, EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; + +import { FeatureWorkspace } from './feature-workspace'; +import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip } from './workspace.utils'; +import { ExportOptions } from '../../import-export'; + +@Injectable({ + providedIn: 'root' +}) +export class FeatureActionsService { + + constructor() {} + + loadActions(workspace: FeatureWorkspace) { + const actions = this.buildActions(workspace); + workspace.actionStore.load(actions); + } + + buildActions(workspace: FeatureWorkspace): Action[] { + return [ + { + id: 'filterInMapExtent', + icon: mapExtentStrategyActiveIcon(workspace), + title: 'igo.geo.workspace.inMapExtent.title', + tooltip: mapExtentStrategyActiveToolTip(workspace), + args: [workspace], + handler: (ws: FeatureWorkspace) => { + const filterStrategy = ws.entityStore + .getStrategyOfType(EntityStoreFilterCustomFuncStrategy); + if (filterStrategy.active) { + filterStrategy.deactivate(); + } else { + filterStrategy.activate(); + } + } + }, + { + id: 'featureDownload', + icon: 'download', + title: 'igo.geo.workspace.wfsDownload.title', + tooltip: 'igo.geo.workspace.wfsDownload.tooltip', + handler: (ws: FeatureWorkspace) => { + const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); + ws.toolToActivate$.next({ + toolbox: 'importExport', + options: { layer: ws.layer.id, featureInMapExtent: filterStrategy.active } as ExportOptions + }); + }, + args: [workspace] + } + ]; + } +} diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts new file mode 100644 index 0000000000..93f5eba49f --- /dev/null +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -0,0 +1,86 @@ +import { Injectable } from '@angular/core'; + +import { + ActionStore, + EntityTableTemplate, + EntityStoreFilterSelectionStrategy, + EntityStoreFilterCustomFuncStrategy, + EntityRecord, + EntityStoreStrategyFuncOptions +} from '@igo2/common'; + +import { + FeatureStore, + FeatureStoreLoadingLayerStrategy, + FeatureStoreSelectionStrategy +} from '../../feature'; +import { VectorLayer } from '../../layer'; +import { IgoMap } from '../../map'; +import { SourceFieldsOptionsParams } from '../../datasource'; + +import { FeatureWorkspace } from './feature-workspace'; +import { FeatureActionsService } from './feature-actions.service'; + +@Injectable({ + providedIn: 'root' +}) +export class FeatureWorkspaceService { + + constructor(private featureActionsService: FeatureActionsService) {} + + createWorkspace(layer: VectorLayer, map: IgoMap): FeatureWorkspace { + const wks = new FeatureWorkspace({ + id: layer.id, + title: layer.title, + layer, + map, + entityStore: this.createFeatureStore(layer, map), + actionStore: new ActionStore([]), + meta: { + tableTemplate: this.createTableTemplate(layer) + } + }); + this.featureActionsService.loadActions(wks); + return wks; + + } + + private createFeatureStore(layer: VectorLayer, map: IgoMap): FeatureStore { + const store = new FeatureStore([], {map}); + store.bindLayer(layer); + + const loadingStrategy = new FeatureStoreLoadingLayerStrategy({}); + const selectionStrategy = new FeatureStoreSelectionStrategy({ + map, + hitTolerance: 15 + }); + store.addStrategy(loadingStrategy, true); + store.addStrategy(selectionStrategy, true); + store.addStrategy(this.createFilterInMapExtentStrategy(), false); + + return store; + } + + private createTableTemplate(layer: VectorLayer): EntityTableTemplate { + const fields = layer.dataSource.options.sourceFields || []; + const columns = fields.map((field: SourceFieldsOptionsParams) => { + return { + name: `properties.${field.name}`, + title: field.alias ? field.alias : field.name + }; + }); + + return { + selection: true, + sort: true, + columns + }; + } + + private createFilterInMapExtentStrategy(): EntityStoreFilterCustomFuncStrategy { + const filterClauseFunc = (record: EntityRecord) => { + return record.state.inMapExtent === true; + }; + return new EntityStoreFilterCustomFuncStrategy({filterClauseFunc} as EntityStoreStrategyFuncOptions); + } +} diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.ts new file mode 100644 index 0000000000..805eb6a1f4 --- /dev/null +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.ts @@ -0,0 +1,23 @@ +import { + Workspace, + WorkspaceOptions +} from '@igo2/common'; + +import { VectorLayer } from '../../layer'; +import { IgoMap } from '../../map'; + +export interface FeatureWorkspaceOptions extends WorkspaceOptions { + layer: VectorLayer; + map: IgoMap; +} + +export class FeatureWorkspace extends Workspace { + + get layer(): VectorLayer { return this.options.layer; } + + get map(): IgoMap { return this.options.map; } + + constructor(protected options: FeatureWorkspaceOptions) { + super(options); + } +} diff --git a/packages/geo/src/lib/workspace/shared/index.ts b/packages/geo/src/lib/workspace/shared/index.ts index 1af7adc41f..490e1d7669 100644 --- a/packages/geo/src/lib/workspace/shared/index.ts +++ b/packages/geo/src/lib/workspace/shared/index.ts @@ -1,3 +1,6 @@ export * from './wfs-workspace'; export * from './wfs-actions.service'; export * from './wfs-workspace.service'; +export * from './feature-workspace'; +export * from './feature-actions.service'; +export * from './feature-workspace.service'; \ No newline at end of file diff --git a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts index eec24bcd0e..b49061df6f 100644 --- a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts @@ -7,11 +7,12 @@ import { Workspace, WorkspaceStore, WorkspaceSelectorComponent } from '@igo2/com import { Layer, ImageLayer, VectorLayer } from '../../layer'; import { IgoMap } from '../../map'; -import { WFSDataSource, WMSDataSource } from '../../datasource'; +import { WFSDataSource, WMSDataSource, FeatureDataSource } from '../../datasource'; import { OgcFilterableDataSourceOptions } from '../../filter'; import { WfsWorkspaceService } from '../shared/wfs-workspace.service'; import { WmsWorkspaceService } from '../shared/wms-workspace.service'; +import { FeatureWorkspaceService } from '../shared/feature-workspace.service'; @Directive({ selector: '[igoWorkspaceSelector]' @@ -29,7 +30,8 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { constructor( private component: WorkspaceSelectorComponent, private wfsWorkspaceService: WfsWorkspaceService, - private wmsWorkspaceService: WmsWorkspaceService + private wmsWorkspaceService: WmsWorkspaceService, + private featureWorkspaceService: FeatureWorkspaceService ) {} ngOnInit() { @@ -81,6 +83,8 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { return this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); } else if (layer.dataSource instanceof WMSDataSource) { return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); + } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { + return this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); } return; @@ -91,7 +95,9 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { if (dataSource instanceof WFSDataSource) { return true; } - + if (dataSource instanceof FeatureDataSource) { + return true; + } if (dataSource instanceof WMSDataSource) { const dataSourceOptions = (dataSource.options || {}) as OgcFilterableDataSourceOptions; From 5d9f41d57a3a53c413e234f2f4bda3d8e9cb9d21 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 9 Jun 2020 15:16:51 -0400 Subject: [PATCH 05/90] feat(workspace) adjust actions/widget for wfs --- .../workspace/shared/wfs-actions.service.ts | 25 ++++++++++++++++--- .../workspace/shared/wfs-workspace.service.ts | 23 +++++++++++++---- .../lib/workspace/shared/workspace.utils.ts | 16 ++++++++++++ .../ogc-filter/ogc-filter.component.html | 15 +++-------- 4 files changed, 59 insertions(+), 20 deletions(-) create mode 100644 packages/geo/src/lib/workspace/shared/workspace.utils.ts diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index cbf9bc8947..4d8a34fa82 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -1,10 +1,11 @@ import { Inject, Injectable } from '@angular/core'; -import { Action, Widget } from '@igo2/common'; +import { Action, Widget, EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; -import { DownloadService } from '../../download'; -import { OgcFilterWidget } from '../widgets'; +import { DownloadService } from '../../download/shared/download.service'; +import { OgcFilterWidget } from '../widgets/widgets'; import { WfsWorkspace } from './wfs-workspace'; +import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip } from './workspace.utils'; @Injectable({ providedIn: 'root' @@ -18,9 +19,25 @@ export class WfsActionsService { buildActions(workspace: WfsWorkspace): Action[] { return [ + { + id: 'filterInMapExtent', + icon: mapExtentStrategyActiveIcon(workspace), + title: 'igo.geo.workspace.inMapExtent.title', + tooltip: mapExtentStrategyActiveToolTip(workspace), + args: [workspace], + handler: (ws: WfsWorkspace) => { + const filterStrategy = ws.entityStore + .getStrategyOfType(EntityStoreFilterCustomFuncStrategy); + if (filterStrategy.active) { + filterStrategy.deactivate(); + } else { + filterStrategy.activate(); + } + } + }, { id: 'ogcFilter', - icon: 'filter-list', + icon: 'filter', title: 'igo.geo.workspace.ogcFilter.title', tooltip: 'igo.geo.workspace.ogcFilter.tooltip', handler: (widget: Widget, ws: WfsWorkspace) => { diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index 802b41aac2..a6bc060145 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -2,7 +2,10 @@ import { Injectable } from '@angular/core'; import { ActionStore, - EntityTableTemplate + EntityTableTemplate, + EntityStoreFilterCustomFuncStrategy, + EntityStoreStrategyFuncOptions, + EntityRecord } from '@igo2/common'; import { @@ -15,16 +18,17 @@ import { IgoMap } from '../../map'; import { SourceFieldsOptionsParams } from '../../datasource'; import { WfsWorkspace } from './wfs-workspace'; +import { WfsActionsService } from './wfs-actions.service'; @Injectable({ providedIn: 'root' }) export class WfsWorkspaceService { - constructor() {} + constructor(private wfsActionsService: WfsActionsService) {} createWorkspace(layer: VectorLayer, map: IgoMap): WfsWorkspace { - return new WfsWorkspace({ + const wks = new WfsWorkspace({ id: layer.id, title: layer.title, layer, @@ -35,6 +39,9 @@ export class WfsWorkspaceService { tableTemplate: this.createTableTemplate(layer) } }); + wks.actionStore.insertMany(this.wfsActionsService.buildActions(wks)); + return wks; + } private createFeatureStore(layer: VectorLayer, map: IgoMap): FeatureStore { @@ -44,11 +51,11 @@ export class WfsWorkspaceService { const loadingStrategy = new FeatureStoreLoadingLayerStrategy({}); const selectionStrategy = new FeatureStoreSelectionStrategy({ map, - hitTolerance: 5 + hitTolerance: 10 }); store.addStrategy(loadingStrategy, true); store.addStrategy(selectionStrategy, true); - + store.addStrategy(this.createFilterInMapExtentStrategy(), false); return store; } @@ -68,4 +75,10 @@ export class WfsWorkspaceService { }; } + private createFilterInMapExtentStrategy(): EntityStoreFilterCustomFuncStrategy { + const filterClauseFunc = (record: EntityRecord) => { + return record.state.inMapExtent === true; + }; + return new EntityStoreFilterCustomFuncStrategy({filterClauseFunc} as EntityStoreStrategyFuncOptions); + } } diff --git a/packages/geo/src/lib/workspace/shared/workspace.utils.ts b/packages/geo/src/lib/workspace/shared/workspace.utils.ts new file mode 100644 index 0000000000..382ef9199f --- /dev/null +++ b/packages/geo/src/lib/workspace/shared/workspace.utils.ts @@ -0,0 +1,16 @@ +import { WfsWorkspace } from './wfs-workspace'; +import { FeatureWorkspace } from './feature-workspace'; +import { Observable } from 'rxjs'; +import { EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; +import { map } from 'rxjs/operators'; + +export function mapExtentStrategyActiveIcon(ws: WfsWorkspace | FeatureWorkspace): Observable { + return ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy).active$.pipe( + map((active: boolean) => active ? 'table-eye' : 'table') + ); + } +export function mapExtentStrategyActiveToolTip(ws: WfsWorkspace | FeatureWorkspace): Observable { + return ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy).active$.pipe( + map((active: boolean) => active ? 'igo.geo.workspace.inMapExtent.active.tooltip' : 'igo.geo.workspace.inMapExtent.inactive.tooltip') + ); + } diff --git a/packages/geo/src/lib/workspace/widgets/ogc-filter/ogc-filter.component.html b/packages/geo/src/lib/workspace/widgets/ogc-filter/ogc-filter.component.html index 7525f950f5..f10b7733b5 100644 --- a/packages/geo/src/lib/workspace/widgets/ogc-filter/ogc-filter.component.html +++ b/packages/geo/src/lib/workspace/widgets/ogc-filter/ogc-filter.component.html @@ -1,13 +1,6 @@ - - -
- -
+ \ No newline at end of file From 676d5d504f33b419d444fc309b86a2597ae7bb99 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 9 Jun 2020 15:25:52 -0400 Subject: [PATCH 06/90] wip --- packages/geo/src/lib/workspace/shared/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/geo/src/lib/workspace/shared/index.ts b/packages/geo/src/lib/workspace/shared/index.ts index 490e1d7669..7984431c22 100644 --- a/packages/geo/src/lib/workspace/shared/index.ts +++ b/packages/geo/src/lib/workspace/shared/index.ts @@ -3,4 +3,4 @@ export * from './wfs-actions.service'; export * from './wfs-workspace.service'; export * from './feature-workspace'; export * from './feature-actions.service'; -export * from './feature-workspace.service'; \ No newline at end of file +export * from './feature-workspace.service'; From 8fd6ae3c3209beac30be941c3c73b50d92f72cb0 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 9 Jun 2020 15:28:40 -0400 Subject: [PATCH 07/90] feat(workspace) Add a table template if no sourceFields provided --- .../workspace-selector.directive.ts | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts index b49061df6f..86cc2f6dab 100644 --- a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts @@ -1,7 +1,7 @@ import { Directive, Input, OnInit, OnDestroy } from '@angular/core'; import { Subscription } from 'rxjs'; -import { debounceTime } from 'rxjs/operators'; +import { debounceTime, skipWhile, first } from 'rxjs/operators'; import { Workspace, WorkspaceStore, WorkspaceSelectorComponent } from '@igo2/common'; @@ -80,16 +80,44 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { return; } if (layer.dataSource instanceof WFSDataSource) { - return this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); + const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); + this.validateTableTemplate(wfsWks); + return wfsWks; } else if (layer.dataSource instanceof WMSDataSource) { return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { - return this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); + const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); + this.validateTableTemplate(featureWks); + return featureWks; } return; } + private validateTableTemplate(workspace: Workspace) { + workspace.entityStore.entities$.pipe( + skipWhile(val => val.length === 0), + first() + ).subscribe(r => { + ((workspace as any).layer as VectorLayer).dataSource.ol.once('change', () => { + if ( + workspace && + workspace.meta.tableTemplate.columns.length === 0 && + workspace.entityStore.entities$.value.length > 0) { + workspace.meta.tableTemplate.columns = + (workspace.entityStore.entities$.value[0] as any).ol.getKeys().filter(f => !f.startsWith('_') && f !== 'geometry') + .map(col => { + return { + name: `properties.${col}`, + title: col + }; + }); + } + }); + ((workspace as any).layer as VectorLayer).dataSource.ol.dispatchEvent('change'); + }); + } + private layerIsEditable(layer: Layer): boolean { const dataSource = layer.dataSource; if (dataSource instanceof WFSDataSource) { From fa266e8dae5f42dc550e50e1edddf4108e9bf38a Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 9 Jun 2020 15:35:46 -0400 Subject: [PATCH 08/90] refactor(loading-layer) adjust store for cluster datasource --- .../src/lib/feature/shared/strategies/loading-layer.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts b/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts index 050c8d1b0a..702f1170cb 100644 --- a/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts +++ b/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts @@ -7,6 +7,7 @@ import { EntityStoreStrategy } from '@igo2/common'; import { FeatureStore } from '../store'; import { FeatureStoreLoadingLayerStrategyOptions, Feature } from '../feature.interfaces'; import { Subscription } from 'rxjs'; +import { ClusterDataSource } from '../../../datasource/shared/datasources/cluster-datasource'; /** * This strategy loads a layer's features into it's store counterpart. @@ -126,7 +127,13 @@ export class FeatureStoreLoadingLayerStrategy extends EntityStoreStrategy { * @param store Feature store */ private onSourceChanges(store: FeatureStore) { - const olFeatures = store.layer.ol.getSource().getFeatures(); + let olFeatures = store.layer.ol.getSource().getFeatures(); + + if (store.layer.dataSource instanceof ClusterDataSource) { + olFeatures = (olFeatures as any).flatMap((cluster: any) => + cluster.get('features') + ); + } if (olFeatures.length === 0) { store.clear(); } else { From af8d03ec4959eec89f58050fd34023326744df80 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 9 Jun 2020 16:07:25 -0400 Subject: [PATCH 09/90] wip --- .../directions/directions-form/directions-form.component.ts | 2 +- .../geo/src/lib/feature/shared/strategies/loading-layer.ts | 6 +++--- packages/geo/src/lib/workspace/shared/index.ts | 1 + packages/geo/src/locale/en.geo.json | 5 ++++- packages/geo/src/locale/fr.geo.json | 5 ++++- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/geo/src/lib/directions/directions-form/directions-form.component.ts b/packages/geo/src/lib/directions/directions-form/directions-form.component.ts index aa78e8f6f7..14eda68cb0 100644 --- a/packages/geo/src/lib/directions/directions-form/directions-form.component.ts +++ b/packages/geo/src/lib/directions/directions-form/directions-form.component.ts @@ -10,7 +10,7 @@ import { } from '@angular/core'; import { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms'; import { Subscription, Subject } from 'rxjs'; -import { debounceTime, distinctUntilChanged, map, take, skipWhile } from 'rxjs/operators'; +import { debounceTime, distinctUntilChanged, map } from 'rxjs/operators'; import olFeature from 'ol/Feature'; import OlGeoJSON from 'ol/format/GeoJSON'; diff --git a/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts b/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts index 702f1170cb..4988cfeb3c 100644 --- a/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts +++ b/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts @@ -23,7 +23,7 @@ export class FeatureStoreLoadingLayerStrategy extends EntityStoreStrategy { * Subscription to the store's OL source changes */ private stores$$ = new Map(); - private state$$: Subscription[]; + private states$$: Subscription[] = []; constructor(protected options: FeatureStoreLoadingLayerStrategyOptions) { super(options); @@ -83,7 +83,7 @@ export class FeatureStoreLoadingLayerStrategy extends EntityStoreStrategy { this.updateEntitiesInExtent(store); }); - this.state$$.push(store.layer.map.viewController.state$.subscribe(() => { + this.states$$.push(store.layer.map.viewController.state$.subscribe(() => { this.updateEntitiesInExtent(store); })); } @@ -118,7 +118,7 @@ export class FeatureStoreLoadingLayerStrategy extends EntityStoreStrategy { unByKey(entries[1]); }); this.stores$$.clear(); - this.state$$.map(state => state.unsubscribe()); + this.states$$.map(state => state.unsubscribe()); } /** diff --git a/packages/geo/src/lib/workspace/shared/index.ts b/packages/geo/src/lib/workspace/shared/index.ts index 7984431c22..cbe9c3e76b 100644 --- a/packages/geo/src/lib/workspace/shared/index.ts +++ b/packages/geo/src/lib/workspace/shared/index.ts @@ -4,3 +4,4 @@ export * from './wfs-workspace.service'; export * from './feature-workspace'; export * from './feature-actions.service'; export * from './feature-workspace.service'; +export * from './workspace.utils'; diff --git a/packages/geo/src/locale/en.geo.json b/packages/geo/src/locale/en.geo.json index 4974bb46c5..6039dac765 100644 --- a/packages/geo/src/locale/en.geo.json +++ b/packages/geo/src/locale/en.geo.json @@ -494,7 +494,10 @@ "ogcFilter.title": "Filters", "ogcFilter.tooltip": "Apply filters", "wfsDownload.title": "Download", - "wfsDownload.tooltip": "Download" + "wfsDownload.tooltip": "Download", + "inMapExtent.title": "Show records in map extent only", + "inMapExtent.active.tooltip": "Show records in map extent only", + "inMapExtent.inactive.tooltip": "Show all records" }, "network": { "online": { diff --git a/packages/geo/src/locale/fr.geo.json b/packages/geo/src/locale/fr.geo.json index 18c22d42a4..cd22b6f340 100644 --- a/packages/geo/src/locale/fr.geo.json +++ b/packages/geo/src/locale/fr.geo.json @@ -496,7 +496,10 @@ "ogcFilter.title": "Filtres", "ogcFilter.tooltip": "Appliquer des filtres sur la couche", "wfsDownload.title": "Télécharger les données associées", - "wfsDownload.tooltip": "Télécharger les données associées" + "wfsDownload.tooltip": "Télécharger les données associées", + "inMapExtent.title": "Ne montrer que les enregistrements contenus dans la carte", + "inMapExtent.active.tooltip": "Ne montrer que les enregistrements contenus dans la carte", + "inMapExtent.inactive.tooltip": "Montrer tous les enregistrements" }, "network": { "online": { From 227db73b476f08f830e7d037b9e99c5f453cdbb6 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 10 Jun 2020 10:17:38 -0400 Subject: [PATCH 10/90] feat(workspace) creation of a workspace button --- .../lib/workspace/workspace-button/index.ts | 1 + .../workspace-button.component.html | 9 +++++++ .../workspace-button.component.scss | 0 .../workspace-button.component.ts | 25 +++++++++++++++++++ .../geo/src/lib/workspace/workspace.module.ts | 16 +++++++++--- 5 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 packages/geo/src/lib/workspace/workspace-button/index.ts create mode 100644 packages/geo/src/lib/workspace/workspace-button/workspace-button.component.html create mode 100644 packages/geo/src/lib/workspace/workspace-button/workspace-button.component.scss create mode 100644 packages/geo/src/lib/workspace/workspace-button/workspace-button.component.ts diff --git a/packages/geo/src/lib/workspace/workspace-button/index.ts b/packages/geo/src/lib/workspace/workspace-button/index.ts new file mode 100644 index 0000000000..3b9a771bbc --- /dev/null +++ b/packages/geo/src/lib/workspace/workspace-button/index.ts @@ -0,0 +1 @@ +export * from './workspace-button.component'; diff --git a/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.html b/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.html new file mode 100644 index 0000000000..666c6af52a --- /dev/null +++ b/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.html @@ -0,0 +1,9 @@ + diff --git a/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.scss b/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.ts b/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.ts new file mode 100644 index 0000000000..b98c91679d --- /dev/null +++ b/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.ts @@ -0,0 +1,25 @@ +import { Component, Input, ChangeDetectionStrategy } from '@angular/core'; + +import { Layer } from '../../layer/shared/layers/layer'; +import { VectorLayer } from '../../layer/shared/layers/vector-layer'; + +@Component({ + selector: 'igo-workspace-button', + templateUrl: './workspace-button.component.html', + styleUrls: ['./workspace-button.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class WorkspaceButtonComponent { + + @Input() layer: Layer; + + @Input() color: string = 'primary'; + + @Input() workspaceEnabled: boolean = false; + + constructor() {} + + hasWorkspace() { + return this.workspaceEnabled && this.layer instanceof VectorLayer; + } +} diff --git a/packages/geo/src/lib/workspace/workspace.module.ts b/packages/geo/src/lib/workspace/workspace.module.ts index 199e9fc7ef..cec5ed7900 100644 --- a/packages/geo/src/lib/workspace/workspace.module.ts +++ b/packages/geo/src/lib/workspace/workspace.module.ts @@ -6,21 +6,29 @@ import { provideOgcFilterWidget } from './widgets/widgets'; import { IgoOgcFilterModule } from './widgets/ogc-filter/ogc-filter.module'; import { IgoWorkspaceSelectorModule } from './workspace-selector/workspace-selector.module'; +import { MatIconModule, MatButtonModule, MatTooltipModule } from '@angular/material'; +import { WorkspaceButtonComponent } from './workspace-button/workspace-button.component'; +import { IgoLanguageModule } from '@igo2/core'; @NgModule({ imports: [ CommonModule, + MatIconModule, + MatButtonModule, + MatTooltipModule, IgoWidgetModule, IgoWorkspaceSelectorModule, - IgoOgcFilterModule + IgoOgcFilterModule, + IgoLanguageModule ], exports: [ IgoWorkspaceSelectorModule, - IgoOgcFilterModule + IgoOgcFilterModule, + WorkspaceButtonComponent ], - declarations: [], + declarations: [WorkspaceButtonComponent], providers: [ provideOgcFilterWidget() ] }) -export class IgoGeoWorkspaceModule {} +export class IgoGeoWorkspaceModule {} \ No newline at end of file From a2dee6d01d0f1276d3a39b77ee4240f59903098c Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 10 Jun 2020 12:55:25 -0400 Subject: [PATCH 11/90] feat(map integration) adding the workspace button --- .../map-details-tool.component.html | 1 + .../map-details-tool.component.ts | 16 +++++++++++++++- .../src/lib/map/map-tool/map-tool.component.html | 1 + .../src/lib/map/map-tool/map-tool.component.ts | 16 +++++++++++++++- .../lib/map/map-tools/map-tools.component.html | 1 + .../src/lib/map/map-tools/map-tools.component.ts | 16 +++++++++++++++- packages/integration/src/lib/map/map.module.ts | 4 +++- .../src/lib/workspace/workspace.state.ts | 11 +++++++++++ 8 files changed, 62 insertions(+), 4 deletions(-) diff --git a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html index bc6bd04f88..ce8b821aa3 100644 --- a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html +++ b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html @@ -11,6 +11,7 @@ + diff --git a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts index ee8376987c..5d594d9b96 100644 --- a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts +++ b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts @@ -16,6 +16,7 @@ import { import { ToolState } from './../../tool/tool.state'; import { MapState } from './../map.state'; import { ImportExportState } from '../../import-export/import-export.state'; +import { WorkspaceState } from '../../workspace/workspace.state'; @ToolComponent({ name: 'mapDetails', @@ -110,7 +111,8 @@ export class MapDetailsToolComponent implements OnInit { private toolState: ToolState, private searchSourceService: SearchSourceService, private cdRef: ChangeDetectorRef, - private importExportState: ImportExportState + private importExportState: ImportExportState, + public workspaceState: WorkspaceState ) {} ngOnInit(): void { @@ -138,4 +140,16 @@ export class MapDetailsToolComponent implements OnInit { this.importExportState.setSelectedTab(1); this.toolState.toolbox.activateTool('importExport'); } + + activateWorkspace(layerId: string) { + if ( + this.workspaceState.workspace$.value && + (this.workspaceState.workspace$.value as any).layer.id === layerId && + this.workspaceState.workspacePanelExpanded) { + this.workspaceState.workspacePanelExpanded = false; + } else { + this.workspaceState.workspacePanelExpanded = true; + this.workspaceState.setActiveWorkspaceByLayerId(layerId); + } + } } diff --git a/packages/integration/src/lib/map/map-tool/map-tool.component.html b/packages/integration/src/lib/map/map-tool/map-tool.component.html index 16ebdb0483..01f1c4264f 100644 --- a/packages/integration/src/lib/map/map-tool/map-tool.component.html +++ b/packages/integration/src/lib/map/map-tool/map-tool.component.html @@ -14,6 +14,7 @@ + diff --git a/packages/integration/src/lib/map/map-tool/map-tool.component.ts b/packages/integration/src/lib/map/map-tool/map-tool.component.ts index c361647a42..45ce5734e6 100644 --- a/packages/integration/src/lib/map/map-tool/map-tool.component.ts +++ b/packages/integration/src/lib/map/map-tool/map-tool.component.ts @@ -5,6 +5,7 @@ import { LayerListControlsEnum, LayerListControlsOptions, IgoMap, ExportOptions import { MapState } from './../map.state'; import { ImportExportState } from '../../import-export/import-export.state'; import { ToolState } from '../../tool/tool.state'; +import { WorkspaceState } from '../../workspace/workspace.state'; /** * Tool to browse a map's layers or to choose a different map @@ -65,7 +66,20 @@ export class MapToolComponent { constructor( private mapState: MapState, private toolState: ToolState, - private importExportState: ImportExportState) {} + private importExportState: ImportExportState, + public workspaceState: WorkspaceState) {} + + activateWorkspace(layerId: string) { + if ( + this.workspaceState.workspace$.value && + (this.workspaceState.workspace$.value as any).layer.id === layerId && + this.workspaceState.workspacePanelExpanded) { + this.workspaceState.workspacePanelExpanded = false; + } else { + this.workspaceState.workspacePanelExpanded = true; + this.workspaceState.setActiveWorkspaceByLayerId(layerId); + } + } activateExport(id: string) { this.importExportState.setsExportOptions({ layer: id } as ExportOptions); diff --git a/packages/integration/src/lib/map/map-tools/map-tools.component.html b/packages/integration/src/lib/map/map-tools/map-tools.component.html index 7ce136183b..fb6dd2e477 100644 --- a/packages/integration/src/lib/map/map-tools/map-tools.component.html +++ b/packages/integration/src/lib/map/map-tools/map-tools.component.html @@ -18,6 +18,7 @@ + = new BehaviorSubject(false); + /** Subscription to the active workspace */ private activeWorkspace$$: Subscription; @@ -64,6 +68,13 @@ export class WorkspaceState implements OnDestroy { }); } + public setActiveWorkspaceByLayerId(id: string) { + const wksFromLayerId = this.store.all().find(workspace => (workspace as any).options.layer.id === id); + if (wksFromLayerId) { + this.store.activateWorkspace(wksFromLayerId); + } + } + /** * Teardown all the workspaces * @internal From ac1e9890d1506a3dcfb276f39b4910869c87c485 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 10 Jun 2020 13:04:08 -0400 Subject: [PATCH 12/90] wip --- .../lib/workspace/shared/feature-actions.service.ts | 2 +- .../src/lib/workspace/shared/wfs-actions.service.ts | 10 +++++++++- packages/geo/src/lib/workspace/workspace.module.ts | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index 879946238c..1c9d897461 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -4,7 +4,7 @@ import { Action, EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; import { FeatureWorkspace } from './feature-workspace'; import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip } from './workspace.utils'; -import { ExportOptions } from '../../import-export'; +import { ExportOptions } from '../../import-export/shared/export.interface'; @Injectable({ providedIn: 'root' diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index 4d8a34fa82..6533244205 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -6,6 +6,7 @@ import { DownloadService } from '../../download/shared/download.service'; import { OgcFilterWidget } from '../widgets/widgets'; import { WfsWorkspace } from './wfs-workspace'; import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip } from './workspace.utils'; +import { ExportOptions } from '../../import-export/shared/export.interface'; @Injectable({ providedIn: 'root' @@ -48,12 +49,19 @@ export class WfsActionsService { }, args: [this.ogcFilterWidget, workspace] }, + , { id: 'wfsDownload', icon: 'download', title: 'igo.geo.workspace.wfsDownload.title', tooltip: 'igo.geo.workspace.wfsDownload.tooltip', - handler: (ws: WfsWorkspace) => this.downloadService.open(ws.layer), + handler: (ws: WfsWorkspace) => { + const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); + ws.toolToActivate$.next({ + toolbox: 'importExport', + options: { layer: ws.layer.id, featureInMapExtent: filterStrategy.active } as ExportOptions + }); + }, args: [workspace] } ]; diff --git a/packages/geo/src/lib/workspace/workspace.module.ts b/packages/geo/src/lib/workspace/workspace.module.ts index cec5ed7900..48154d47e2 100644 --- a/packages/geo/src/lib/workspace/workspace.module.ts +++ b/packages/geo/src/lib/workspace/workspace.module.ts @@ -31,4 +31,4 @@ import { IgoLanguageModule } from '@igo2/core'; provideOgcFilterWidget() ] }) -export class IgoGeoWorkspaceModule {} \ No newline at end of file +export class IgoGeoWorkspaceModule {} From 60394aa3b12e2d3cbadafa8c336183c0e0335e21 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 10 Jun 2020 14:04:06 -0400 Subject: [PATCH 13/90] wip --- .../workspace/shared/feature-workspace.service.ts | 2 -- .../src/lib/workspace/shared/wfs-actions.service.ts | 12 ++++++------ .../lib/workspace/shared/wfs-workspace.service.ts | 8 ++++---- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index 93f5eba49f..b85fd46813 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -3,7 +3,6 @@ import { Injectable } from '@angular/core'; import { ActionStore, EntityTableTemplate, - EntityStoreFilterSelectionStrategy, EntityStoreFilterCustomFuncStrategy, EntityRecord, EntityStoreStrategyFuncOptions @@ -57,7 +56,6 @@ export class FeatureWorkspaceService { store.addStrategy(loadingStrategy, true); store.addStrategy(selectionStrategy, true); store.addStrategy(this.createFilterInMapExtentStrategy(), false); - return store; } diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index 6533244205..aa149b1c64 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -2,7 +2,6 @@ import { Inject, Injectable } from '@angular/core'; import { Action, Widget, EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; -import { DownloadService } from '../../download/shared/download.service'; import { OgcFilterWidget } from '../widgets/widgets'; import { WfsWorkspace } from './wfs-workspace'; import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip } from './workspace.utils'; @@ -13,10 +12,12 @@ import { ExportOptions } from '../../import-export/shared/export.interface'; }) export class WfsActionsService { - constructor( - @Inject(OgcFilterWidget) private ogcFilterWidget: Widget, - private downloadService: DownloadService - ) {} + constructor(@Inject(OgcFilterWidget) private ogcFilterWidget: Widget) {} + + loadActions(workspace: WfsWorkspace) { + const actions = this.buildActions(workspace); + workspace.actionStore.load(actions); + } buildActions(workspace: WfsWorkspace): Action[] { return [ @@ -49,7 +50,6 @@ export class WfsActionsService { }, args: [this.ogcFilterWidget, workspace] }, - , { id: 'wfsDownload', icon: 'download', diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index a6bc060145..d8337e0b3e 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -4,8 +4,8 @@ import { ActionStore, EntityTableTemplate, EntityStoreFilterCustomFuncStrategy, - EntityStoreStrategyFuncOptions, - EntityRecord + EntityRecord, + EntityStoreStrategyFuncOptions } from '@igo2/common'; import { @@ -39,7 +39,7 @@ export class WfsWorkspaceService { tableTemplate: this.createTableTemplate(layer) } }); - wks.actionStore.insertMany(this.wfsActionsService.buildActions(wks)); + this.wfsActionsService.loadActions(wks); return wks; } @@ -51,7 +51,7 @@ export class WfsWorkspaceService { const loadingStrategy = new FeatureStoreLoadingLayerStrategy({}); const selectionStrategy = new FeatureStoreSelectionStrategy({ map, - hitTolerance: 10 + hitTolerance: 15 }); store.addStrategy(loadingStrategy, true); store.addStrategy(selectionStrategy, true); From a5f2dfcb1809a1c2583ba47ffc44cc684f29389f Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 10 Jun 2020 14:55:48 -0400 Subject: [PATCH 14/90] refactor(workspace-button) moving from package geo to integration --- .../workspace-button.component.html | 9 ---- .../workspace-button.component.ts | 25 ----------- .../workspace-selector.directive.ts | 6 +-- .../geo/src/lib/workspace/workspace.module.ts | 14 ++---- .../map-details-tool.component.html | 2 +- .../map-details-tool.component.ts | 12 ----- .../lib/map/map-tool/map-tool.component.html | 2 +- .../lib/map/map-tool/map-tool.component.ts | 12 ----- .../map/map-tools/map-tools.component.html | 2 +- .../lib/map/map-tools/map-tools.component.ts | 12 ----- .../integration/src/lib/map/map.module.ts | 4 +- .../lib/workspace/workspace-button/index.ts | 0 .../workspace-button.component.html | 11 +++++ .../workspace-button.component.scss | 0 .../workspace-button.component.ts | 44 +++++++++++++++++++ .../src/lib/workspace/workspace.module.ts | 16 +++++-- .../src/locale/en.integration.json | 3 ++ .../src/locale/fr.integration.json | 3 ++ 18 files changed, 85 insertions(+), 92 deletions(-) delete mode 100644 packages/geo/src/lib/workspace/workspace-button/workspace-button.component.html delete mode 100644 packages/geo/src/lib/workspace/workspace-button/workspace-button.component.ts rename packages/{geo => integration}/src/lib/workspace/workspace-button/index.ts (100%) create mode 100644 packages/integration/src/lib/workspace/workspace-button/workspace-button.component.html rename packages/{geo => integration}/src/lib/workspace/workspace-button/workspace-button.component.scss (100%) create mode 100644 packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts diff --git a/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.html b/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.html deleted file mode 100644 index 666c6af52a..0000000000 --- a/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.html +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.ts b/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.ts deleted file mode 100644 index b98c91679d..0000000000 --- a/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Component, Input, ChangeDetectionStrategy } from '@angular/core'; - -import { Layer } from '../../layer/shared/layers/layer'; -import { VectorLayer } from '../../layer/shared/layers/vector-layer'; - -@Component({ - selector: 'igo-workspace-button', - templateUrl: './workspace-button.component.html', - styleUrls: ['./workspace-button.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class WorkspaceButtonComponent { - - @Input() layer: Layer; - - @Input() color: string = 'primary'; - - @Input() workspaceEnabled: boolean = false; - - constructor() {} - - hasWorkspace() { - return this.workspaceEnabled && this.layer instanceof VectorLayer; - } -} diff --git a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts index 86cc2f6dab..0932fc76ba 100644 --- a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts @@ -81,20 +81,20 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { } if (layer.dataSource instanceof WFSDataSource) { const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.validateTableTemplate(wfsWks); + this.computeTableTemplate(wfsWks); return wfsWks; } else if (layer.dataSource instanceof WMSDataSource) { return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.validateTableTemplate(featureWks); + this.computeTableTemplate(featureWks); return featureWks; } return; } - private validateTableTemplate(workspace: Workspace) { + private computeTableTemplate(workspace: Workspace) { workspace.entityStore.entities$.pipe( skipWhile(val => val.length === 0), first() diff --git a/packages/geo/src/lib/workspace/workspace.module.ts b/packages/geo/src/lib/workspace/workspace.module.ts index 48154d47e2..199e9fc7ef 100644 --- a/packages/geo/src/lib/workspace/workspace.module.ts +++ b/packages/geo/src/lib/workspace/workspace.module.ts @@ -6,27 +6,19 @@ import { provideOgcFilterWidget } from './widgets/widgets'; import { IgoOgcFilterModule } from './widgets/ogc-filter/ogc-filter.module'; import { IgoWorkspaceSelectorModule } from './workspace-selector/workspace-selector.module'; -import { MatIconModule, MatButtonModule, MatTooltipModule } from '@angular/material'; -import { WorkspaceButtonComponent } from './workspace-button/workspace-button.component'; -import { IgoLanguageModule } from '@igo2/core'; @NgModule({ imports: [ CommonModule, - MatIconModule, - MatButtonModule, - MatTooltipModule, IgoWidgetModule, IgoWorkspaceSelectorModule, - IgoOgcFilterModule, - IgoLanguageModule + IgoOgcFilterModule ], exports: [ IgoWorkspaceSelectorModule, - IgoOgcFilterModule, - WorkspaceButtonComponent + IgoOgcFilterModule ], - declarations: [WorkspaceButtonComponent], + declarations: [], providers: [ provideOgcFilterWidget() ] diff --git a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html index ce8b821aa3..1839ec5bd1 100644 --- a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html +++ b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html @@ -11,7 +11,7 @@ - + diff --git a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts index 5d594d9b96..0e27f758f3 100644 --- a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts +++ b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts @@ -140,16 +140,4 @@ export class MapDetailsToolComponent implements OnInit { this.importExportState.setSelectedTab(1); this.toolState.toolbox.activateTool('importExport'); } - - activateWorkspace(layerId: string) { - if ( - this.workspaceState.workspace$.value && - (this.workspaceState.workspace$.value as any).layer.id === layerId && - this.workspaceState.workspacePanelExpanded) { - this.workspaceState.workspacePanelExpanded = false; - } else { - this.workspaceState.workspacePanelExpanded = true; - this.workspaceState.setActiveWorkspaceByLayerId(layerId); - } - } } diff --git a/packages/integration/src/lib/map/map-tool/map-tool.component.html b/packages/integration/src/lib/map/map-tool/map-tool.component.html index 01f1c4264f..468a05da91 100644 --- a/packages/integration/src/lib/map/map-tool/map-tool.component.html +++ b/packages/integration/src/lib/map/map-tool/map-tool.component.html @@ -14,7 +14,7 @@ - + diff --git a/packages/integration/src/lib/map/map-tool/map-tool.component.ts b/packages/integration/src/lib/map/map-tool/map-tool.component.ts index 45ce5734e6..eafd1302c3 100644 --- a/packages/integration/src/lib/map/map-tool/map-tool.component.ts +++ b/packages/integration/src/lib/map/map-tool/map-tool.component.ts @@ -69,18 +69,6 @@ export class MapToolComponent { private importExportState: ImportExportState, public workspaceState: WorkspaceState) {} - activateWorkspace(layerId: string) { - if ( - this.workspaceState.workspace$.value && - (this.workspaceState.workspace$.value as any).layer.id === layerId && - this.workspaceState.workspacePanelExpanded) { - this.workspaceState.workspacePanelExpanded = false; - } else { - this.workspaceState.workspacePanelExpanded = true; - this.workspaceState.setActiveWorkspaceByLayerId(layerId); - } - } - activateExport(id: string) { this.importExportState.setsExportOptions({ layer: id } as ExportOptions); this.importExportState.setSelectedTab(1); diff --git a/packages/integration/src/lib/map/map-tools/map-tools.component.html b/packages/integration/src/lib/map/map-tools/map-tools.component.html index fb6dd2e477..0c34659201 100644 --- a/packages/integration/src/lib/map/map-tools/map-tools.component.html +++ b/packages/integration/src/lib/map/map-tools/map-tools.component.html @@ -18,7 +18,7 @@ - + + + diff --git a/packages/geo/src/lib/workspace/workspace-button/workspace-button.component.scss b/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.scss similarity index 100% rename from packages/geo/src/lib/workspace/workspace-button/workspace-button.component.scss rename to packages/integration/src/lib/workspace/workspace-button/workspace-button.component.scss diff --git a/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts b/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts new file mode 100644 index 0000000000..4cd5ac8cef --- /dev/null +++ b/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts @@ -0,0 +1,44 @@ +import { Component, Input, ChangeDetectionStrategy, OnInit, OnDestroy } from '@angular/core'; +import { Layer, VectorLayer } from '@igo2/geo'; +import { WorkspaceState } from '../workspace.state'; +import { BehaviorSubject, Subscription } from 'rxjs'; + +@Component({ + selector: 'igo-workspace-button', + templateUrl: './workspace-button.component.html', + styleUrls: ['./workspace-button.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class WorkspaceButtonComponent implements OnInit, OnDestroy { + + public hasWorkspace$: BehaviorSubject = new BehaviorSubject(false); + private hasWorkspace$$: Subscription; + + @Input() layer: Layer; + + @Input() color: string = 'primary'; + + constructor(private workspaceState: WorkspaceState) {} + + ngOnInit(): void { + this.hasWorkspace$$ = this.workspaceState.workspaceEnabled$.subscribe(wksEnabled => + (wksEnabled && this.layer instanceof VectorLayer) ? this.hasWorkspace$.next(true) : this.hasWorkspace$.next(false) + ); + } + + ngOnDestroy(): void { + this.hasWorkspace$$.unsubscribe(); + } + + activateWorkspace() { + if ( + this.workspaceState.workspace$.value && + (this.workspaceState.workspace$.value as any).layer.id === this.layer.id && + this.workspaceState.workspacePanelExpanded) { + this.workspaceState.workspacePanelExpanded = false; + } else { + this.workspaceState.workspacePanelExpanded = true; + this.workspaceState.setActiveWorkspaceByLayerId(this.layer.id); + } + } +} diff --git a/packages/integration/src/lib/workspace/workspace.module.ts b/packages/integration/src/lib/workspace/workspace.module.ts index 9a4b5d0279..c4b8b6dbec 100644 --- a/packages/integration/src/lib/workspace/workspace.module.ts +++ b/packages/integration/src/lib/workspace/workspace.module.ts @@ -1,8 +1,18 @@ import { NgModule } from '@angular/core'; +import { WorkspaceButtonComponent } from './workspace-button/workspace-button.component'; +import { MatIconModule, MatButtonModule, MatTooltipModule } from '@angular/material'; +import { IgoLanguageModule } from '@igo2/core'; +import { CommonModule } from '@angular/common'; @NgModule({ - imports: [], - declarations: [], - exports: [] + imports: [ + CommonModule, + MatIconModule, + MatButtonModule, + MatTooltipModule, + IgoLanguageModule + ], + declarations: [WorkspaceButtonComponent], + exports: [WorkspaceButtonComponent] }) export class IgoAppWorkspaceModule {} diff --git a/packages/integration/src/locale/en.integration.json b/packages/integration/src/locale/en.integration.json index 7eb14869f9..f9ba17e3b5 100644 --- a/packages/integration/src/locale/en.integration.json +++ b/packages/integration/src/locale/en.integration.json @@ -31,6 +31,9 @@ "context-tool": "Context manager", "noLayersVisible": "There is no visible layers.", "noLayersInRange": "There is no visible layers at the current scale. Please zoom in or out to discover theses layers." + }, + "workspace": { + "toggleWorkspace": "Open/Close the table view" } } } diff --git a/packages/integration/src/locale/fr.integration.json b/packages/integration/src/locale/fr.integration.json index dc6f77c8fe..d61b2707ad 100644 --- a/packages/integration/src/locale/fr.integration.json +++ b/packages/integration/src/locale/fr.integration.json @@ -31,6 +31,9 @@ "context-tool": "Gestionnaire de contextes", "noLayersVisible": "Aucune couche visible.", "noLayersInRange": "Aucune couche visible dans la plage d'échelle active. Veuillez zoomer ou dézoomer pour découvrir ces couches." + }, + "workspace": { + "toggleWorkspace": "Ouvrir/fermer la vue tabulaire" } } } From d9c49c8163b500def08ffcd369fced87eaf345a7 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 10 Jun 2020 15:01:37 -0400 Subject: [PATCH 15/90] wip --- .../lib/map/map-details-tool/map-details-tool.component.ts | 4 +--- .../integration/src/lib/map/map-tool/map-tool.component.ts | 4 +--- .../integration/src/lib/map/map-tools/map-tools.component.ts | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts index 0e27f758f3..ee8376987c 100644 --- a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts +++ b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts @@ -16,7 +16,6 @@ import { import { ToolState } from './../../tool/tool.state'; import { MapState } from './../map.state'; import { ImportExportState } from '../../import-export/import-export.state'; -import { WorkspaceState } from '../../workspace/workspace.state'; @ToolComponent({ name: 'mapDetails', @@ -111,8 +110,7 @@ export class MapDetailsToolComponent implements OnInit { private toolState: ToolState, private searchSourceService: SearchSourceService, private cdRef: ChangeDetectorRef, - private importExportState: ImportExportState, - public workspaceState: WorkspaceState + private importExportState: ImportExportState ) {} ngOnInit(): void { diff --git a/packages/integration/src/lib/map/map-tool/map-tool.component.ts b/packages/integration/src/lib/map/map-tool/map-tool.component.ts index eafd1302c3..c361647a42 100644 --- a/packages/integration/src/lib/map/map-tool/map-tool.component.ts +++ b/packages/integration/src/lib/map/map-tool/map-tool.component.ts @@ -5,7 +5,6 @@ import { LayerListControlsEnum, LayerListControlsOptions, IgoMap, ExportOptions import { MapState } from './../map.state'; import { ImportExportState } from '../../import-export/import-export.state'; import { ToolState } from '../../tool/tool.state'; -import { WorkspaceState } from '../../workspace/workspace.state'; /** * Tool to browse a map's layers or to choose a different map @@ -66,8 +65,7 @@ export class MapToolComponent { constructor( private mapState: MapState, private toolState: ToolState, - private importExportState: ImportExportState, - public workspaceState: WorkspaceState) {} + private importExportState: ImportExportState) {} activateExport(id: string) { this.importExportState.setsExportOptions({ layer: id } as ExportOptions); diff --git a/packages/integration/src/lib/map/map-tools/map-tools.component.ts b/packages/integration/src/lib/map/map-tools/map-tools.component.ts index e78324ef86..10a56cb78c 100644 --- a/packages/integration/src/lib/map/map-tools/map-tools.component.ts +++ b/packages/integration/src/lib/map/map-tools/map-tools.component.ts @@ -25,7 +25,6 @@ import { MapState } from '../map.state'; import { BehaviorSubject, Observable, Subscription, combineLatest } from 'rxjs'; import { map, debounceTime } from 'rxjs/operators'; import { ImportExportState } from '../../import-export/import-export.state'; -import { WorkspaceState } from '../../workspace/workspace.state'; /** * Tool to browse a map's layers or to choose a different map */ @@ -161,8 +160,7 @@ export class MapToolsComponent implements OnInit, OnDestroy { private toolState: ToolState, public mapState: MapState, private searchSourceService: SearchSourceService, - private importExportState: ImportExportState, - public workspaceState: WorkspaceState + private importExportState: ImportExportState ) {} ngOnInit(): void { From 0fbbba284c90090dfcc4c2fac8204190ca3fe9d1 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 10 Jun 2020 15:33:15 -0400 Subject: [PATCH 16/90] refactor(workspace-selector) review --- .../workspace-selector.directive.ts | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts index 0932fc76ba..37acb6caa4 100644 --- a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts @@ -13,6 +13,7 @@ import { OgcFilterableDataSourceOptions } from '../../filter'; import { WfsWorkspaceService } from '../shared/wfs-workspace.service'; import { WmsWorkspaceService } from '../shared/wms-workspace.service'; import { FeatureWorkspaceService } from '../shared/feature-workspace.service'; +import { Feature } from '../../feature/shared/feature.interfaces'; @Directive({ selector: '[igoWorkspaceSelector]' @@ -20,6 +21,7 @@ import { FeatureWorkspaceService } from '../shared/feature-workspace.service'; export class WorkspaceSelectorDirective implements OnInit, OnDestroy { private layers$$: Subscription; + private entities$$: Subscription[] = []; @Input() map: IgoMap; @@ -44,6 +46,7 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { ngOnDestroy() { this.layers$$.unsubscribe(); + this.entities$$.map(entities => entities.unsubscribe()); } private onLayersChange(layers: Layer[]) { @@ -95,27 +98,29 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { } private computeTableTemplate(workspace: Workspace) { - workspace.entityStore.entities$.pipe( + this.entities$$.push(workspace.entityStore.entities$.pipe( skipWhile(val => val.length === 0), first() - ).subscribe(r => { - ((workspace as any).layer as VectorLayer).dataSource.ol.once('change', () => { - if ( - workspace && - workspace.meta.tableTemplate.columns.length === 0 && - workspace.entityStore.entities$.value.length > 0) { - workspace.meta.tableTemplate.columns = - (workspace.entityStore.entities$.value[0] as any).ol.getKeys().filter(f => !f.startsWith('_') && f !== 'geometry') - .map(col => { - return { - name: `properties.${col}`, - title: col - }; - }); - } - }); - ((workspace as any).layer as VectorLayer).dataSource.ol.dispatchEvent('change'); - }); + ).subscribe(entities => { + if ( + entities.length > 0 && + workspace && + workspace.meta.tableTemplate.columns.length === 0 && + workspace.entityStore.entities$.value.length > 0) { + workspace.meta.tableTemplate.columns = (entities[0] as Feature).ol.getKeys() + .filter( + col => !col.startsWith('_') && + col !== 'geometry' && + col !== (entities[0] as Feature).ol.getGeometryName() && + !col.match(/boundedby/gi)) + .map(key => { + return { + name: `properties.${key}`, + title: key + }; + }); + } + })); } private layerIsEditable(layer: Layer): boolean { From a19bc84e0ce548515a1301f5c89d0106697f5f4f Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 12 Jun 2020 07:56:56 -0400 Subject: [PATCH 17/90] wip --- packages/integration/src/lib/workspace/workspace.state.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/integration/src/lib/workspace/workspace.state.ts b/packages/integration/src/lib/workspace/workspace.state.ts index 49406dce6c..8c65234fd2 100644 --- a/packages/integration/src/lib/workspace/workspace.state.ts +++ b/packages/integration/src/lib/workspace/workspace.state.ts @@ -22,7 +22,7 @@ export class WorkspaceState implements OnDestroy { /** Subscription to the active workspace widget */ private activeWorkspaceWidget$$: Subscription; - /** Active widget observable. Only one may be active for all clients */ + /** Active widget observable. Only one may be active for all available workspaces */ readonly activeWorkspaceWidget$: BehaviorSubject = new BehaviorSubject(undefined); /** From 0d8756e5a6cdf3e9c8543128cc997a3d37309a84 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 12 Jun 2020 08:23:18 -0400 Subject: [PATCH 18/90] feat(featureStore) in map extent state strategy --- .../lib/feature/shared/feature.interfaces.ts | 3 + .../shared/strategies/in-map-extent.ts | 111 ++++++++++++++++++ .../lib/feature/shared/strategies/index.ts | 1 + .../shared/strategies/loading-layer.ts | 21 +--- .../shared/feature-workspace.service.ts | 5 +- .../workspace/shared/wfs-workspace.service.ts | 5 +- 6 files changed, 124 insertions(+), 22 deletions(-) create mode 100644 packages/geo/src/lib/feature/shared/strategies/in-map-extent.ts diff --git a/packages/geo/src/lib/feature/shared/feature.interfaces.ts b/packages/geo/src/lib/feature/shared/feature.interfaces.ts index bb64acebfe..330b88cc5e 100644 --- a/packages/geo/src/lib/feature/shared/feature.interfaces.ts +++ b/packages/geo/src/lib/feature/shared/feature.interfaces.ts @@ -67,6 +67,9 @@ export interface FeatureStoreLoadingStrategyOptions motion?: FeatureMotion; } +export interface FeatureStoreInMapExtentStrategyOptions + extends FeatureStoreStrategyOptions {} + export interface FeatureStoreLoadingLayerStrategyOptions extends FeatureStoreStrategyOptions {} diff --git a/packages/geo/src/lib/feature/shared/strategies/in-map-extent.ts b/packages/geo/src/lib/feature/shared/strategies/in-map-extent.ts new file mode 100644 index 0000000000..5197336f2a --- /dev/null +++ b/packages/geo/src/lib/feature/shared/strategies/in-map-extent.ts @@ -0,0 +1,111 @@ +import { unByKey } from 'ol/Observable'; +import * as olextent from 'ol/extent'; + +import { EntityStoreStrategy } from '@igo2/common'; + +import { FeatureStore } from '../store'; +import { FeatureStoreInMapExtentStrategyOptions, Feature } from '../feature.interfaces'; +import { Subscription } from 'rxjs'; + +/** + * This strategy maintain the store features updated while the map is moved. + * The features's state inside the map are tagged inMapExtent = true; + */ +export class FeatureStoreInMapExtentStrategy extends EntityStoreStrategy { + + /** + * Subscription to the store's OL source changes + */ + private stores$$ = new Map(); + private states$$: Subscription[] = []; + + constructor(protected options: FeatureStoreInMapExtentStrategyOptions) { + super(options); + } + + /** + * Bind this strategy to a store and start watching for Ol source changes + * @param store Feature store + */ + bindStore(store: FeatureStore) { + super.bindStore(store); + if (this.active === true) { + this.watchStore(store); + } + } + + /** + * Unbind this strategy from a store and stop watching for Ol source changes + * @param store Feature store + */ + unbindStore(store: FeatureStore) { + super.unbindStore(store); + if (this.active === true) { + this.unwatchStore(store); + } + } + + /** + * Start watching all stores already bound to that strategy at once. + * @internal + */ + protected doActivate() { + this.stores.forEach((store: FeatureStore) => this.watchStore(store)); + } + + /** + * Stop watching all stores bound to that strategy + * @internal + */ + protected doDeactivate() { + this.unwatchAll(); + } + + /** + * Watch for a store's OL source changes + * @param store Feature store + */ + private watchStore(store: FeatureStore) { + if (this.stores$$.has(store)) { + return; + } + + this.updateEntitiesInExtent(store); + this.states$$.push(store.layer.map.viewController.state$.subscribe(() => { + this.updateEntitiesInExtent(store); + })); + } + + private updateEntitiesInExtent(store) { + store.state.updateAll({ inMapExtent: false }); + const mapExtent = store.layer.map.viewController.getExtent(); + const entitiesInMapExtent = store.entities$.value + .filter((entity: Feature) => olextent.intersects(entity.ol.getGeometry().getExtent(), mapExtent)); + if (entitiesInMapExtent.length > 0) { + store.state.updateMany(entitiesInMapExtent, { inMapExtent: true }, true); + } + } + + /** + * Stop watching for a store's OL source changes + * @param store Feature store + */ + private unwatchStore(store: FeatureStore) { + const key = this.stores$$.get(store); + if (key !== undefined) { + unByKey(key); + this.stores$$.delete(store); + } + } + + /** + * Stop watching for OL source changes in all stores. + */ + private unwatchAll() { + Array.from(this.stores$$.entries()).forEach((entries: [FeatureStore, string]) => { + unByKey(entries[1]); + }); + this.stores$$.clear(); + this.states$$.map(state => state.unsubscribe()); + } +} diff --git a/packages/geo/src/lib/feature/shared/strategies/index.ts b/packages/geo/src/lib/feature/shared/strategies/index.ts index 229fe518b6..073bfb3246 100644 --- a/packages/geo/src/lib/feature/shared/strategies/index.ts +++ b/packages/geo/src/lib/feature/shared/strategies/index.ts @@ -1,3 +1,4 @@ +export * from './in-map-extent'; export * from './loading'; export * from './loading-layer'; export * from './selection'; diff --git a/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts b/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts index 4988cfeb3c..b152b28c73 100644 --- a/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts +++ b/packages/geo/src/lib/feature/shared/strategies/loading-layer.ts @@ -1,12 +1,10 @@ import { unByKey } from 'ol/Observable'; import { OlEvent } from 'ol/events/Event'; -import * as olextent from 'ol/extent'; import { EntityStoreStrategy } from '@igo2/common'; import { FeatureStore } from '../store'; -import { FeatureStoreLoadingLayerStrategyOptions, Feature } from '../feature.interfaces'; -import { Subscription } from 'rxjs'; +import { FeatureStoreLoadingLayerStrategyOptions } from '../feature.interfaces'; import { ClusterDataSource } from '../../../datasource/shared/datasources/cluster-datasource'; /** @@ -23,7 +21,6 @@ export class FeatureStoreLoadingLayerStrategy extends EntityStoreStrategy { * Subscription to the store's OL source changes */ private stores$$ = new Map(); - private states$$: Subscription[] = []; constructor(protected options: FeatureStoreLoadingLayerStrategyOptions) { super(options); @@ -80,22 +77,7 @@ export class FeatureStoreLoadingLayerStrategy extends EntityStoreStrategy { const olSource = store.layer.ol.getSource(); olSource.on('change', (event: OlEvent) => { this.onSourceChanges(store); - this.updateEntitiesInExtent(store); }); - - this.states$$.push(store.layer.map.viewController.state$.subscribe(() => { - this.updateEntitiesInExtent(store); - })); - } - - private updateEntitiesInExtent(store) { - store.state.updateAll({ inMapExtent: false }); - const mapExtent = store.layer.map.viewController.getExtent(); - const entitiesInMapExtent = store.entities$.value - .filter((entity: Feature) => olextent.intersects(entity.ol.getGeometry().getExtent(), mapExtent)); - if (entitiesInMapExtent.length > 0) { - store.state.updateMany(entitiesInMapExtent, { inMapExtent: true }, true); - } } /** @@ -118,7 +100,6 @@ export class FeatureStoreLoadingLayerStrategy extends EntityStoreStrategy { unByKey(entries[1]); }); this.stores$$.clear(); - this.states$$.map(state => state.unsubscribe()); } /** diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index b85fd46813..2cbc4366cc 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -11,7 +11,8 @@ import { import { FeatureStore, FeatureStoreLoadingLayerStrategy, - FeatureStoreSelectionStrategy + FeatureStoreSelectionStrategy, + FeatureStoreInMapExtentStrategy } from '../../feature'; import { VectorLayer } from '../../layer'; import { IgoMap } from '../../map'; @@ -49,11 +50,13 @@ export class FeatureWorkspaceService { store.bindLayer(layer); const loadingStrategy = new FeatureStoreLoadingLayerStrategy({}); + const inMapExtentStrategy = new FeatureStoreInMapExtentStrategy({}); const selectionStrategy = new FeatureStoreSelectionStrategy({ map, hitTolerance: 15 }); store.addStrategy(loadingStrategy, true); + store.addStrategy(inMapExtentStrategy, true); store.addStrategy(selectionStrategy, true); store.addStrategy(this.createFilterInMapExtentStrategy(), false); return store; diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index d8337e0b3e..aa7eb0874d 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -11,7 +11,8 @@ import { import { FeatureStore, FeatureStoreLoadingLayerStrategy, - FeatureStoreSelectionStrategy + FeatureStoreSelectionStrategy, + FeatureStoreInMapExtentStrategy } from '../../feature'; import { VectorLayer } from '../../layer'; import { IgoMap } from '../../map'; @@ -49,11 +50,13 @@ export class WfsWorkspaceService { store.bindLayer(layer); const loadingStrategy = new FeatureStoreLoadingLayerStrategy({}); + const inMapExtentStrategy = new FeatureStoreInMapExtentStrategy({}); const selectionStrategy = new FeatureStoreSelectionStrategy({ map, hitTolerance: 15 }); store.addStrategy(loadingStrategy, true); + store.addStrategy(inMapExtentStrategy, true); store.addStrategy(selectionStrategy, true); store.addStrategy(this.createFilterInMapExtentStrategy(), false); return store; From 6fef828dab12c2bb7c19af5e2fc78f8027228cb0 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 12 Jun 2020 10:45:50 -0400 Subject: [PATCH 19/90] wip --- packages/geo/src/public_api.ts | 2 ++ packages/integration/src/lib/workspace/workspace.state.ts | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/geo/src/public_api.ts b/packages/geo/src/public_api.ts index 8d54844170..2222f02e3c 100644 --- a/packages/geo/src/public_api.ts +++ b/packages/geo/src/public_api.ts @@ -10,6 +10,8 @@ export * from './lib/datasource/datasource.module'; export * from './lib/directions/directions.module'; export * from './lib/download/download.module'; export * from './lib/workspace/workspace.module'; +export * from './lib/workspace/shared/wfs-workspace'; +export * from './lib/workspace/shared/feature-workspace'; export * from './lib/workspace/workspace-selector/workspace-selector.module'; export * from './lib/workspace/widgets/ogc-filter/ogc-filter.module'; export * from './lib/feature/feature.module'; diff --git a/packages/integration/src/lib/workspace/workspace.state.ts b/packages/integration/src/lib/workspace/workspace.state.ts index 8c65234fd2..b6d5e65f8d 100644 --- a/packages/integration/src/lib/workspace/workspace.state.ts +++ b/packages/integration/src/lib/workspace/workspace.state.ts @@ -3,6 +3,7 @@ import { Injectable, OnDestroy } from '@angular/core'; import { BehaviorSubject, Subscription } from 'rxjs'; import { EntityRecord, Workspace, WorkspaceStore, Widget } from '@igo2/common'; +import { WfsWorkspace, FeatureWorkspace } from '@igo2/geo'; /** * Service that holds the state of the workspace module @@ -69,7 +70,9 @@ export class WorkspaceState implements OnDestroy { } public setActiveWorkspaceByLayerId(id: string) { - const wksFromLayerId = this.store.all().find(workspace => (workspace as any).options.layer.id === id); + const wksFromLayerId = this.store + .all() + .find(workspace => (workspace as WfsWorkspace | FeatureWorkspace).layer.id === id); if (wksFromLayerId) { this.store.activateWorkspace(wksFromLayerId); } From 8dd8a467241c9e5c92e5b26698aa7e826615abdc Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 12 Jun 2020 11:20:23 -0400 Subject: [PATCH 20/90] wip --- .../workspace/workspace-button/workspace-button.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts b/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts index 4cd5ac8cef..fd9fd0a4e9 100644 --- a/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts +++ b/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts @@ -22,7 +22,7 @@ export class WorkspaceButtonComponent implements OnInit, OnDestroy { ngOnInit(): void { this.hasWorkspace$$ = this.workspaceState.workspaceEnabled$.subscribe(wksEnabled => - (wksEnabled && this.layer instanceof VectorLayer) ? this.hasWorkspace$.next(true) : this.hasWorkspace$.next(false) + this.hasWorkspace$.next(wksEnabled && this.layer instanceof VectorLayer) ); } From f00d25926c7ffd42f0f4d41afefa8b1f80b929b2 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 12 Jun 2020 11:22:08 -0400 Subject: [PATCH 21/90] refactor(workspace) tableTemplate in wfs/feature workspace --- .../shared/feature-workspace.service.ts | 40 ++++++++++++++++--- .../workspace/shared/wfs-workspace.service.ts | 40 ++++++++++++++++--- .../workspace-selector.directive.ts | 28 ------------- 3 files changed, 70 insertions(+), 38 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index 2cbc4366cc..802eee65a5 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -12,7 +12,8 @@ import { FeatureStore, FeatureStoreLoadingLayerStrategy, FeatureStoreSelectionStrategy, - FeatureStoreInMapExtentStrategy + FeatureStoreInMapExtentStrategy, + Feature } from '../../feature'; import { VectorLayer } from '../../layer'; import { IgoMap } from '../../map'; @@ -20,6 +21,7 @@ import { SourceFieldsOptionsParams } from '../../datasource'; import { FeatureWorkspace } from './feature-workspace'; import { FeatureActionsService } from './feature-actions.service'; +import { skipWhile, take } from 'rxjs/operators'; @Injectable({ providedIn: 'root' @@ -37,9 +39,10 @@ export class FeatureWorkspaceService { entityStore: this.createFeatureStore(layer, map), actionStore: new ActionStore([]), meta: { - tableTemplate: this.createTableTemplate(layer) + tableTemplate: undefined } }); + this.createTableTemplate(wks, layer); this.featureActionsService.loadActions(wks); return wks; @@ -62,16 +65,43 @@ export class FeatureWorkspaceService { return store; } - private createTableTemplate(layer: VectorLayer): EntityTableTemplate { + private createTableTemplate(workspace: FeatureWorkspace, layer: VectorLayer): EntityTableTemplate { const fields = layer.dataSource.options.sourceFields || []; + + if (fields.length === 0) { + workspace.entityStore.entities$.pipe( + skipWhile(val => val.length === 0), + take(1) + ).subscribe(entities => { + if (workspace) { + const columnsFromFeatures = (entities[0] as Feature).ol.getKeys() + .filter( + col => !col.startsWith('_') && + col !== 'geometry' && + col !== (entities[0] as Feature).ol.getGeometryName() && + !col.match(/boundedby/gi)) + .map(key => { + return { + name: `properties.${key}`, + title: key + }; + }); + workspace.meta.tableTemplate = { + selection: true, + sort: true, + columns: columnsFromFeatures + }; + } + }); + return; + } const columns = fields.map((field: SourceFieldsOptionsParams) => { return { name: `properties.${field.name}`, title: field.alias ? field.alias : field.name }; }); - - return { + workspace.meta.tableTemplate = { selection: true, sort: true, columns diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index aa7eb0874d..c962cbfa6c 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -12,7 +12,8 @@ import { FeatureStore, FeatureStoreLoadingLayerStrategy, FeatureStoreSelectionStrategy, - FeatureStoreInMapExtentStrategy + FeatureStoreInMapExtentStrategy, + Feature } from '../../feature'; import { VectorLayer } from '../../layer'; import { IgoMap } from '../../map'; @@ -20,6 +21,7 @@ import { SourceFieldsOptionsParams } from '../../datasource'; import { WfsWorkspace } from './wfs-workspace'; import { WfsActionsService } from './wfs-actions.service'; +import { skipWhile, take } from 'rxjs/operators'; @Injectable({ providedIn: 'root' @@ -37,9 +39,10 @@ export class WfsWorkspaceService { entityStore: this.createFeatureStore(layer, map), actionStore: new ActionStore([]), meta: { - tableTemplate: this.createTableTemplate(layer) + tableTemplate: undefined } }); + this.createTableTemplate(wks, layer); this.wfsActionsService.loadActions(wks); return wks; @@ -62,16 +65,43 @@ export class WfsWorkspaceService { return store; } - private createTableTemplate(layer: VectorLayer): EntityTableTemplate { + private createTableTemplate(workspace: WfsWorkspace, layer: VectorLayer): EntityTableTemplate { const fields = layer.dataSource.options.sourceFields || []; + + if (fields.length === 0) { + workspace.entityStore.entities$.pipe( + skipWhile(val => val.length === 0), + take(1) + ).subscribe(entities => { + if (workspace) { + const columnsFromFeatures = (entities[0] as Feature).ol.getKeys() + .filter( + col => !col.startsWith('_') && + col !== 'geometry' && + col !== (entities[0] as Feature).ol.getGeometryName() && + !col.match(/boundedby/gi)) + .map(key => { + return { + name: `properties.${key}`, + title: key + }; + }); + workspace.meta.tableTemplate = { + selection: true, + sort: true, + columns: columnsFromFeatures + }; + } + }); + return; + } const columns = fields.map((field: SourceFieldsOptionsParams) => { return { name: `properties.${field.name}`, title: field.alias ? field.alias : field.name }; }); - - return { + workspace.meta.tableTemplate = { selection: true, sort: true, columns diff --git a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts index 37acb6caa4..4765c457aa 100644 --- a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts @@ -84,45 +84,17 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { } if (layer.dataSource instanceof WFSDataSource) { const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.computeTableTemplate(wfsWks); return wfsWks; } else if (layer.dataSource instanceof WMSDataSource) { return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.computeTableTemplate(featureWks); return featureWks; } return; } - private computeTableTemplate(workspace: Workspace) { - this.entities$$.push(workspace.entityStore.entities$.pipe( - skipWhile(val => val.length === 0), - first() - ).subscribe(entities => { - if ( - entities.length > 0 && - workspace && - workspace.meta.tableTemplate.columns.length === 0 && - workspace.entityStore.entities$.value.length > 0) { - workspace.meta.tableTemplate.columns = (entities[0] as Feature).ol.getKeys() - .filter( - col => !col.startsWith('_') && - col !== 'geometry' && - col !== (entities[0] as Feature).ol.getGeometryName() && - !col.match(/boundedby/gi)) - .map(key => { - return { - name: `properties.${key}`, - title: key - }; - }); - } - })); - } - private layerIsEditable(layer: Layer): boolean { const dataSource = layer.dataSource; if (dataSource instanceof WFSDataSource) { From a63e1030e4b2b82a1ac57d7fc1df61290ae711b1 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 16 Jun 2020 15:45:48 -0400 Subject: [PATCH 22/90] fix(cluster) cluster base style creation. --- packages/geo/src/lib/layer/shared/layer.service.ts | 2 +- .../geo/src/lib/layer/shared/layers/vector-layer.interface.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/geo/src/lib/layer/shared/layer.service.ts b/packages/geo/src/lib/layer/shared/layer.service.ts index 43bb1dd3ee..34e341b2c5 100644 --- a/packages/geo/src/lib/layer/shared/layer.service.ts +++ b/packages/geo/src/lib/layer/shared/layer.service.ts @@ -143,7 +143,7 @@ export class LayerService { if (layerOptions.source instanceof ClusterDataSource) { const serviceStyle = this.styleService; - const baseStyle = layerOptions.style; + const baseStyle = layerOptions.clusterBaseStyle; layerOptions.style = feature => { return serviceStyle.createClusterStyle( feature, diff --git a/packages/geo/src/lib/layer/shared/layers/vector-layer.interface.ts b/packages/geo/src/lib/layer/shared/layers/vector-layer.interface.ts index 725198c79f..af7a9b2b24 100644 --- a/packages/geo/src/lib/layer/shared/layers/vector-layer.interface.ts +++ b/packages/geo/src/lib/layer/shared/layers/vector-layer.interface.ts @@ -34,6 +34,7 @@ export interface VectorLayerOptions extends LayerOptions { | WebSocketDataSourceOptions | ClusterDataSourceOptions; style?: { [key: string]: any } | olStyle | olStyle[]; + clusterBaseStyle?: { [key: string]: any } | olStyle | olStyle[]; browsable?: boolean; exportable?: boolean; ol?: olLayerVector; From 84c26d90c7f8b58fcf5664d0ec127b9db69a1d9a Mon Sep 17 00:00:00 2001 From: PE Lord Date: Mon, 20 Jul 2020 09:25:20 -0400 Subject: [PATCH 23/90] wip --- .../geo/src/lib/layer/shared/layers/vector-layer.interface.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/geo/src/lib/layer/shared/layers/vector-layer.interface.ts b/packages/geo/src/lib/layer/shared/layers/vector-layer.interface.ts index f084c0a1df..c3e94bbce4 100644 --- a/packages/geo/src/lib/layer/shared/layers/vector-layer.interface.ts +++ b/packages/geo/src/lib/layer/shared/layers/vector-layer.interface.ts @@ -34,7 +34,6 @@ export interface VectorLayerOptions extends LayerOptions { | WebSocketDataSourceOptions | ClusterDataSourceOptions; style?: { [key: string]: any } | olStyle | olStyle[]; - clusterBaseStyle?: { [key: string]: any } | olStyle | olStyle[]; browsable?: boolean; exportable?: boolean; ol?: olLayerVector; From a67e37f7a5a2997c47bce1dd21be6912bdc9ccb5 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 22 Jul 2020 14:40:56 -0400 Subject: [PATCH 24/90] feat(workspace) new directive to monitor if workspaces are available. --- .../workspace-updator.directive.ts | 113 ++++++++++++++++++ .../workspace-updator.module.ts | 20 ++++ .../geo/src/lib/workspace/workspace.module.ts | 3 + 3 files changed, 136 insertions(+) create mode 100644 packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts create mode 100644 packages/geo/src/lib/workspace/workspace-updator/workspace-updator.module.ts diff --git a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts new file mode 100644 index 0000000000..f7e718fb6d --- /dev/null +++ b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts @@ -0,0 +1,113 @@ +import { Directive, Input, OnInit, OnDestroy } from '@angular/core'; + +import { Subscription } from 'rxjs'; +import { debounceTime, skipWhile, first } from 'rxjs/operators'; + +import { Workspace, WorkspaceStore, WorkspaceSelectorComponent } from '@igo2/common'; + +import { Layer, ImageLayer, VectorLayer } from '../../layer'; +import { IgoMap } from '../../map'; +import { WFSDataSource, WMSDataSource, FeatureDataSource } from '../../datasource'; +import { OgcFilterableDataSourceOptions } from '../../filter'; + +import { WfsWorkspaceService } from '../shared/wfs-workspace.service'; +import { WmsWorkspaceService } from '../shared/wms-workspace.service'; +import { FeatureWorkspaceService } from '../shared/feature-workspace.service'; +import { Feature } from '../../feature/shared/feature.interfaces'; + +@Directive({ + selector: '[igoWorkspaceUpdator]' +}) +export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { + + private layers$$: Subscription; + private entities$$: Subscription[] = []; + + @Input() map: IgoMap; + + @Input() workspaceStore: WorkspaceStore; + + constructor( + private wfsWorkspaceService: WfsWorkspaceService, + private wmsWorkspaceService: WmsWorkspaceService, + private featureWorkspaceService: FeatureWorkspaceService + ) {} + + ngOnInit() { + this.layers$$ = this.map.layers$ + .pipe(debounceTime(50)) + .subscribe((layers: Layer[]) => + this.onLayersChange(layers) + ); + } + + ngOnDestroy() { + this.layers$$.unsubscribe(); + this.entities$$.map(entities => entities.unsubscribe()); + } + + private onLayersChange(layers: Layer[]) { + const editableLayers = layers.filter((layer: Layer) => + this.layerIsEditable(layer) + ); + const editableLayersIds = editableLayers.map((layer: Layer) => layer.id); + + const workspacesToAdd = editableLayers + .map((layer: VectorLayer) => this.getOrCreateWorkspace(layer)) + .filter((workspace: Workspace | undefined) => workspace !== undefined); + + const workspacesToRemove = this.workspaceStore.all() + .filter((workspace: Workspace) => { + return editableLayersIds.indexOf(workspace.id) < 0; + }); + + if (workspacesToRemove.length > 0) { + workspacesToRemove.forEach((workspace: Workspace) => { + workspace.deactivate(); + }); + this.workspaceStore.state.updateMany(workspacesToRemove, {active: false, selected: false}); + this.workspaceStore.deleteMany(workspacesToRemove); + } + + if (workspacesToAdd.length > 0) { + this.workspaceStore.insertMany(workspacesToAdd); + } + } + + private getOrCreateWorkspace(layer: VectorLayer | ImageLayer): Workspace | undefined { + const workspace = this.workspaceStore.get(layer.id); + if (workspace !== undefined) { + return; + } + if (layer.dataSource instanceof WFSDataSource) { + const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); + return wfsWks; + } else if (layer.dataSource instanceof WMSDataSource) { + return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); + } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { + const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); + return featureWks; + } + + return; + } + + private layerIsEditable(layer: Layer): boolean { + const dataSource = layer.dataSource; + if (dataSource instanceof WFSDataSource) { + return true; + } + if (dataSource instanceof FeatureDataSource) { + return true; + } + if (dataSource instanceof WMSDataSource) { + const dataSourceOptions = (dataSource.options || + {}) as OgcFilterableDataSourceOptions; + return ( + dataSourceOptions.ogcFilters && dataSourceOptions.ogcFilters.enabled + ); + } + + return false; + } +} diff --git a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.module.ts b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.module.ts new file mode 100644 index 0000000000..8999ae77da --- /dev/null +++ b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { WorkspaceUpdatorDirective } from './workspace-updator.directive'; + +/** + * @ignore + */ +@NgModule({ + imports: [ + CommonModule + ], + exports: [ + WorkspaceUpdatorDirective + ], + declarations: [ + WorkspaceUpdatorDirective + ] +}) +export class IgoWorkspaceUpdatorModule {} diff --git a/packages/geo/src/lib/workspace/workspace.module.ts b/packages/geo/src/lib/workspace/workspace.module.ts index 199e9fc7ef..b8d6179541 100644 --- a/packages/geo/src/lib/workspace/workspace.module.ts +++ b/packages/geo/src/lib/workspace/workspace.module.ts @@ -6,16 +6,19 @@ import { provideOgcFilterWidget } from './widgets/widgets'; import { IgoOgcFilterModule } from './widgets/ogc-filter/ogc-filter.module'; import { IgoWorkspaceSelectorModule } from './workspace-selector/workspace-selector.module'; +import { IgoWorkspaceUpdatorModule } from './workspace-updator/workspace-updator.module'; @NgModule({ imports: [ CommonModule, IgoWidgetModule, IgoWorkspaceSelectorModule, + IgoWorkspaceUpdatorModule, IgoOgcFilterModule ], exports: [ IgoWorkspaceSelectorModule, + IgoWorkspaceUpdatorModule, IgoOgcFilterModule ], declarations: [], From 1945537ab7243bdd8110010992ef15d1f9e2c3f5 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 24 Jul 2020 15:22:38 -0400 Subject: [PATCH 25/90] wip review --- .../shared/feature-workspace.service.ts | 34 +++++++++---------- .../workspace/shared/wfs-workspace.service.ts | 34 +++++++++---------- 2 files changed, 32 insertions(+), 36 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index 802eee65a5..15d61c7301 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -73,25 +73,23 @@ export class FeatureWorkspaceService { skipWhile(val => val.length === 0), take(1) ).subscribe(entities => { - if (workspace) { - const columnsFromFeatures = (entities[0] as Feature).ol.getKeys() - .filter( - col => !col.startsWith('_') && - col !== 'geometry' && - col !== (entities[0] as Feature).ol.getGeometryName() && - !col.match(/boundedby/gi)) - .map(key => { - return { - name: `properties.${key}`, - title: key - }; - }); - workspace.meta.tableTemplate = { - selection: true, - sort: true, - columns: columnsFromFeatures + const columnsFromFeatures = (entities[0] as Feature).ol.getKeys() + .filter( + col => !col.startsWith('_') && + col !== 'geometry' && + col !== (entities[0] as Feature).ol.getGeometryName() && + !col.match(/boundedby/gi)) + .map(key => { + return { + name: `properties.${key}`, + title: key }; - } + }); + workspace.meta.tableTemplate = { + selection: true, + sort: true, + columns: columnsFromFeatures + }; }); return; } diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index c962cbfa6c..dc879c5133 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -73,25 +73,23 @@ export class WfsWorkspaceService { skipWhile(val => val.length === 0), take(1) ).subscribe(entities => { - if (workspace) { - const columnsFromFeatures = (entities[0] as Feature).ol.getKeys() - .filter( - col => !col.startsWith('_') && - col !== 'geometry' && - col !== (entities[0] as Feature).ol.getGeometryName() && - !col.match(/boundedby/gi)) - .map(key => { - return { - name: `properties.${key}`, - title: key - }; - }); - workspace.meta.tableTemplate = { - selection: true, - sort: true, - columns: columnsFromFeatures + const columnsFromFeatures = (entities[0] as Feature).ol.getKeys() + .filter( + col => !col.startsWith('_') && + col !== 'geometry' && + col !== (entities[0] as Feature).ol.getGeometryName() && + !col.match(/boundedby/gi)) + .map(key => { + return { + name: `properties.${key}`, + title: key }; - } + }); + workspace.meta.tableTemplate = { + selection: true, + sort: true, + columns: columnsFromFeatures + }; }); return; } From 795d172b463ea99384518b58cd2fa37c8a8070ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Barbeau?= Date: Wed, 5 Aug 2020 12:19:03 -0400 Subject: [PATCH 26/90] travis --- .travis.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 978f76f5b1..ebdde32b5e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,14 @@ language: node_js node_js: -- 11 -- 10 -- 9 -- 8 - + - 14 + - 13 + - 12 + - 11 + - 10 before_script: - npm install -g gulp-cli - npm run build.libs addons: - chrome: stable \ No newline at end of file + chrome: stable From 263a09356653ee137daadf1b7473aa6af4b7fea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Barbeau?= Date: Wed, 5 Aug 2020 14:29:05 -0400 Subject: [PATCH 27/90] feat(libs): upgrade librairies (#696) --- .browserslistrc | 13 + .travis.yml | 4 +- README.md | 15 +- angular.json | 59 +- demo/src/{browserslist => .browserslistrc} | 0 demo/src/app/app.component.spec.ts | 16 +- demo/src/app/app.component.ts | 4 +- demo/src/app/app.module.ts | 19 +- .../auth-form/auth-form-routing.module.ts | 3 +- .../app/auth/auth-form/auth-form.module.ts | 2 +- .../common/action/action-routing.module.ts | 4 +- demo/src/app/common/action/action.module.ts | 3 +- .../dynamic-component-routing.module.ts | 4 +- .../dynamic-component.module.ts | 3 +- .../entity-selector-routing.module.ts | 4 +- .../entity-selector/entity-selector.module.ts | 2 +- .../entity-table-routing.module.ts | 4 +- .../entity-table/entity-table.module.ts | 2 +- .../app/common/form/form-routing.module.ts | 4 +- demo/src/app/common/form/form.module.ts | 3 +- .../app/common/table/table-routing.module.ts | 4 +- demo/src/app/common/table/table.module.ts | 2 +- .../app/common/tool/tool-routing.module.ts | 4 +- demo/src/app/common/tool/tool.module.ts | 4 +- .../common/widget/widget-routing.module.ts | 4 +- demo/src/app/common/widget/widget.module.ts | 3 +- .../context/context/context-routing.module.ts | 4 +- .../src/app/context/context/context.module.ts | 8 +- .../core/activity/activity-routing.module.ts | 3 +- demo/src/app/core/activity/activity.module.ts | 3 +- .../app/core/config/config-routing.module.ts | 4 +- demo/src/app/core/config/config.module.ts | 3 +- demo/src/app/core/home/home-routing.module.ts | 4 +- .../core/language/language-routing.module.ts | 4 +- demo/src/app/core/language/language.module.ts | 3 +- .../app/core/media/media-routing.module.ts | 4 +- demo/src/app/core/media/media.module.ts | 2 +- .../core/message/message-routing.module.ts | 4 +- demo/src/app/core/message/message.module.ts | 3 +- .../core/request/request-routing.module.ts | 4 +- demo/src/app/core/request/request.module.ts | 3 +- .../app/geo/catalog/catalog-routing.module.ts | 4 +- demo/src/app/geo/catalog/catalog.module.ts | 10 +- .../directions/directions-routing.module.ts | 4 +- .../geo/directions/directions.component.ts | 12 +- .../app/geo/directions/directions.module.ts | 3 +- .../app/geo/feature/feature-routing.module.ts | 4 +- demo/src/app/geo/feature/feature.component.ts | 2 +- demo/src/app/geo/feature/feature.module.ts | 8 +- .../geo/geometry/geometry-routing.module.ts | 4 +- demo/src/app/geo/geometry/geometry.module.ts | 3 +- .../import-export-routing.module.ts | 4 +- .../import-export/import-export.component.ts | 8 +- .../geo/import-export/import-export.module.ts | 3 +- .../src/app/geo/layer/layer-routing.module.ts | 4 +- demo/src/app/geo/layer/layer.module.ts | 8 +- .../app/geo/legend/legend-routing.module.ts | 4 +- demo/src/app/geo/legend/legend.module.ts | 8 +- .../app/geo/measure/measure-routing.module.ts | 4 +- demo/src/app/geo/measure/measure.module.ts | 2 +- .../ogc-filter/ogc-filter-routing.module.ts | 4 +- .../app/geo/ogc-filter/ogc-filter.module.ts | 8 +- .../app/geo/overlay/overlay-routing.module.ts | 4 +- demo/src/app/geo/overlay/overlay.module.ts | 3 +- .../src/app/geo/print/print-routing.module.ts | 4 +- demo/src/app/geo/print/print.module.ts | 3 +- .../src/app/geo/query/query-routing.module.ts | 4 +- demo/src/app/geo/query/query.module.ts | 8 +- .../app/geo/search/search-routing.module.ts | 4 +- demo/src/app/geo/search/search.component.html | 4 +- demo/src/app/geo/search/search.component.ts | 2 +- demo/src/app/geo/search/search.module.ts | 10 +- .../simple-map/simple-map-routing.module.ts | 4 +- .../app/geo/simple-map/simple-map.module.ts | 3 +- .../spatial-filter-routing.module.ts | 4 +- .../spatial-filter.component.ts | 140 +- .../spatial-filter/spatial-filter.module.ts | 8 +- .../time-filter/time-filter-routing.module.ts | 4 +- .../app/geo/time-filter/time-filter.module.ts | 8 +- .../geo/workspace/workspace-routing.module.ts | 4 +- .../src/app/geo/workspace/workspace.module.ts | 8 +- demo/src/assets/import-style.json | 11 +- demo/src/polyfills.ts | 4 +- demo/src/tsconfig.app.json | 11 +- demo/src/tsconfig.spec.json | 3 +- e2e/protractor.conf.js | 2 +- e2e/tsconfig.e2e.json | 4 +- gulpfile.js | 114 +- package-lock.json | 18758 ++++++++-------- package.json | 113 +- packages/auth/ng-package.json | 3 +- packages/auth/ng-package.prod.json | 3 +- packages/auth/package.json | 19 +- packages/auth/src/lib/auth.module.ts | 10 +- packages/auth/src/test.ts | 1 - packages/auth/tsconfig.lib.json | 5 +- packages/auth/tsconfig.lib.prod.json | 6 + packages/auth/tsconfig.spec.json | 2 +- packages/common/ng-package.json | 3 +- packages/common/ng-package.prod.json | 3 +- packages/common/package.json | 13 +- .../lib/action/actionbar/actionbar.module.ts | 16 +- packages/common/src/lib/action/index.ts | 1 + .../src/lib/backdrop/backdrop.module.ts | 2 +- .../lib/badge-icon/badge-icon.directive.ts | 26 +- .../src/lib/badge-icon/badge-icon.module.ts | 13 +- .../src/lib/clickout/clickout.module.ts | 2 +- packages/common/src/lib/clone/clone.module.ts | 2 +- .../collapsible/collapsible.component.scss | 2 +- .../collapsible/collapsible.component.spec.ts | 6 +- .../src/lib/collapsible/collapsible.module.ts | 5 +- .../confirm-dialog.component.ts | 2 +- .../confirm-dialog/confirm-dialog.module.ts | 8 +- .../confirm-dialog/confirm-dialog.service.ts | 2 +- .../context-menu.directive.spec.ts | 21 - .../context-menu/context-menu.directive.ts | 7 +- .../lib/context-menu/context-menu.module.ts | 2 +- .../src/lib/custom-html/custom-html.module.ts | 12 +- .../src/lib/drag-drop/drag-drop.module.ts | 2 +- .../dynamic-outlet.component.ts | 2 +- .../common/src/lib/dynamic-component/index.ts | 1 + .../entity-selector/entity-selector.module.ts | 2 +- .../entity-table/entity-table.module.ts | 12 +- .../common/src/lib/entity/shared/state.ts | 4 +- .../src/lib/flexible/flexible.component.ts | 2 +- .../src/lib/flexible/flexible.module.ts | 2 +- .../form-field/form-field-select.component.ts | 6 +- .../form-field/form-field-text.component.ts | 6 +- .../form-field-textarea.component.ts | 6 +- .../lib/form/form-field/form-field.module.ts | 10 +- .../common/src/lib/form/form-field/index.ts | 4 + .../lib/form/form-group/form-group.module.ts | 2 +- packages/common/src/lib/form/form.module.ts | 8 - .../src/lib/form/form/form.component.ts | 2 +- packages/common/src/lib/form/index.ts | 3 +- .../lib/form/shared/form-field-component.ts | 2 +- packages/common/src/lib/image/image.module.ts | 2 +- .../lib/json-dialog/json-dialog.component.ts | 2 +- .../src/lib/json-dialog/json-dialog.module.ts | 6 +- .../lib/json-dialog/json-dialog.service.ts | 2 +- .../src/lib/keyvalue/keyvalue.module.ts | 2 +- .../common/src/lib/list/list.component.scss | 16 +- .../src/lib/list/list.component.spec.ts | 2 +- .../common/src/lib/list/list.component.ts | 25 +- packages/common/src/lib/list/list.module.ts | 5 +- .../common/src/lib/panel/panel.component.scss | 4 +- .../src/lib/sidenav/sidenav-shim.directive.ts | 2 +- .../common/src/lib/sidenav/sidenav.module.ts | 2 +- .../src/lib/spinner/spinner.component.spec.ts | 2 +- .../common/src/lib/spinner/spinner.module.ts | 2 +- .../stop-propagation.module.ts | 2 +- .../common/src/lib/table/table-datasource.ts | 2 +- .../common/src/lib/table/table.component.ts | 4 +- packages/common/src/lib/table/table.module.ts | 18 +- packages/common/src/lib/tool/index.ts | 1 + packages/common/src/lib/tool/tool.module.ts | 2 +- packages/common/src/lib/widget/index.ts | 1 + packages/common/src/lib/workspace/index.ts | 2 + packages/common/src/public_api.ts | 2 +- packages/common/src/test.ts | 1 - packages/common/tsconfig.lib.json | 5 +- packages/common/tsconfig.lib.prod.json | 6 + packages/common/tsconfig.spec.json | 2 +- packages/context/ng-package.json | 21 +- packages/context/ng-package.prod.json | 21 +- packages/context/ngcc.config.js | 3 + packages/context/package.json | 17 +- .../context-import-export.module.ts | 26 +- .../context-import-export.component.ts | 49 +- .../context-item/context-item.component.scss | 4 +- .../context-list/context-list.component.html | 2 +- .../context-list/context-list.component.ts | 4 +- .../context-manager/context-manager.module.ts | 32 +- .../context-manager/shared/context.service.ts | 48 +- .../shared/layer-context.directive.ts | 2 +- .../shared/map-context.directive.ts | 3 +- .../bookmark-button.component.scss | 2 +- .../bookmark-button.component.ts | 4 +- .../bookmark-dialog.component.ts | 2 +- .../context-map-button.module.ts | 25 +- .../poi-button/poi-button.component.scss | 4 +- .../poi-button/poi-button.component.ts | 4 +- .../poi-button/poi-dialog.component.ts | 2 +- .../user-button/user-button.component.scss | 2 +- .../user-button/user-button.component.ts | 4 +- .../user-button/user-dialog.component.ts | 2 +- packages/context/src/lib/context.module.ts | 10 +- .../src/lib/share-map/share-map.module.ts | 14 +- .../share-map/share-map.component.ts | 2 +- .../lib/share-map/shared/share-map.service.ts | 3 +- .../src/lib/sidenav/sidenav.component.ts | 5 +- .../context/src/lib/sidenav/sidenav.module.ts | 12 +- packages/context/src/test.ts | 1 - packages/context/tsconfig.lib.json | 5 +- packages/context/tsconfig.lib.prod.json | 6 + packages/context/tsconfig.spec.json | 2 +- packages/core/package.json | 19 +- .../core/src/lib/activity/activity.module.ts | 2 +- packages/core/src/lib/config/config.module.ts | 2 +- .../core/src/lib/config/config.service.ts | 2 +- packages/core/src/lib/core.module.ts | 4 +- .../core/src/lib/gesture/gesture.module.ts | 6 +- .../core/src/lib/gesture/gesture.provider.ts | 7 +- .../core/src/lib/language/language.module.ts | 2 +- .../message-center.component.scss | 4 +- .../message-center.component.spec.ts | 14 +- .../core/src/lib/message/message.module.ts | 2 +- .../src/lib/message/shared/message.service.ts | 6 +- packages/core/src/lib/request/error.module.ts | 2 +- .../core/src/lib/request/logging.module.ts | 2 +- packages/core/src/test.ts | 1 - packages/core/tsconfig.lib.json | 5 +- packages/core/tsconfig.lib.prod.json | 6 + packages/core/tsconfig.spec.json | 2 +- packages/geo/ng-package.json | 156 +- packages/geo/ng-package.prod.json | 156 +- packages/geo/ngcc.config.js | 3 + packages/geo/package.json | 21 +- .../catalog-browser-group.component.ts | 3 +- .../catalog-browser-layer.component.scss | 23 +- .../catalog-browser/catalog-browser.module.ts | 12 +- .../catalog-library/catalog-library.module.ts | 8 +- .../geo/src/lib/catalog/catalog.module.ts | 10 +- .../lib/catalog/shared/catalog.interface.ts | 6 +- .../src/lib/datasource/datasource.module.ts | 2 +- .../datasource/shared/capabilities.service.ts | 2 +- .../lib/datasource/shared/options/index.ts | 1 + .../directions-form.component.ts | 243 +- .../directions/directions-sources/index.ts | 1 + .../src/lib/directions/directions.module.ts | 24 +- .../geo/src/lib/download/download.module.ts | 10 +- .../feature-details/feature-details.module.ts | 2 +- .../feature-form/feature-form.component.ts | 5 +- packages/geo/src/lib/feature/index.ts | 2 +- .../src/lib/feature/shared/feature.utils.ts | 159 +- packages/geo/src/lib/feature/shared/index.ts | 1 + .../lib/feature/shared/strategies.utils.ts | 46 + .../feature/shared/strategies/selection.ts | 108 +- packages/geo/src/lib/filter/filter.module.ts | 46 +- .../ogc-filter-form.component.scss | 2 +- .../ogc-filter-form.component.ts | 39 +- .../spatial-filter-item.component.ts | 26 +- .../time-filter-form.component.scss | 4 +- .../time-filter-form.component.ts | 3 +- packages/geo/src/lib/geo.module.ts | 2 +- .../geometry-form-field-input.component.ts | 3 +- .../geometry-form-field.component.ts | 6 +- .../geometry-form-field.module.ts | 12 +- .../geo/src/lib/geometry/geometry.module.ts | 6 +- packages/geo/src/lib/geometry/index.ts | 2 + .../src/lib/geometry/shared/controls/draw.ts | 63 +- .../lib/geometry/shared/controls/modify.ts | 157 +- .../geometry/shared/geometry.interfaces.ts | 2 +- .../lib/import-export/import-export.module.ts | 25 +- .../import-export/import-export.component.ts | 2 +- packages/geo/src/lib/import-export/index.ts | 1 + .../lib/import-export/shared/import.utils.ts | 156 +- .../src/lib/import-export/style-list/index.ts | 2 + .../style-list/style-list.module.ts | 2 +- .../style-list/style-list.service.ts | 2 +- .../layer-item/layer-item.component.scss | 2 +- .../layer-legend-item.component.scss | 30 +- .../src/lib/layer/layer-legend-list/index.ts | 1 + .../layer-legend-list.component.scss | 1 + .../layer-legend/layer-legend.component.ts | 3 +- .../layer-list-tool.component.ts | 18 +- .../layer/layer-list/layer-list.component.ts | 177 +- packages/geo/src/lib/layer/layer.module.ts | 30 +- .../geo/src/lib/layer/shared/layer.service.ts | 4 +- .../lib/layer/shared/layers/vector-layer.ts | 5 +- .../geo/src/lib/layer/shared/style.service.ts | 2 +- .../baselayers-switcher.component.scss | 2 +- .../geolocate-button.component.scss | 2 +- .../map-browser/map-browser.component.scss | 20 +- .../map/map-browser/map-browser.component.ts | 8 +- packages/geo/src/lib/map/map.module.ts | 8 +- .../offline-button.component.scss | 2 +- .../rotation-button.component.scss | 2 +- .../map-pointer-position-by-key.directive.ts | 68 +- .../lib/map/shared/mapOffline.directive.ts | 178 +- .../zoom-button/zoom-button.component.scss | 2 +- .../measure/measurer/measure-format.pipe.ts | 4 +- .../measurer/measurer-dialog.component.ts | 2 +- .../measure/measurer/measurer.component.ts | 9 +- .../lib/measure/measurer/measurer.module.ts | 21 +- .../geo/src/lib/metadata/metadata.module.ts | 10 +- .../geo/src/lib/overlay/overlay.module.ts | 2 +- packages/geo/src/lib/overlay/shared/index.ts | 1 + .../shared/overlay-marker-style.utils.ts | 118 + .../geo/src/lib/overlay/shared/overlay.ts | 7 +- .../src/lib/overlay/shared/overlay.utils.ts | 126 +- packages/geo/src/lib/print/print.module.ts | 16 +- .../geo/src/lib/print/shared/print.service.ts | 22 +- packages/geo/src/lib/query/query.module.ts | 2 +- .../geo/src/lib/query/shared/query.service.ts | 2 +- packages/geo/src/lib/search/index.ts | 10 + .../search/search-bar/search-bar.component.ts | 5 +- .../search/search-bar/search-bar.module.ts | 16 +- .../search-results-add-button.component.scss | 2 +- .../search-results.component.ts | 4 +- .../search-results/search-results.module.ts | 12 +- .../search-selector/search-selector.module.ts | 16 +- .../search-settings.component.spec.ts | 22 +- .../search-settings.component.ts | 24 +- .../search-settings/search-settings.module.ts | 18 +- packages/geo/src/lib/search/search.module.ts | 2 +- packages/geo/src/lib/search/shared/index.ts | 1 + .../src/lib/search/shared/sources/icherche.ts | 86 +- packages/geo/src/lib/toast/toast.module.ts | 5 +- packages/geo/src/lib/wkt/wkt.module.ts | 2 +- packages/geo/src/lib/workspace/index.ts | 3 + .../geo/src/lib/workspace/widgets/index.ts | 2 + .../widgets/ogc-filter/ogc-filter.module.ts | 5 +- packages/geo/src/locale/en.geo.json | 3 +- packages/geo/src/locale/fr.geo.json | 3 +- packages/geo/src/public_api.ts | 18 +- packages/geo/src/test.ts | 1 - packages/geo/tsconfig.lib.json | 5 +- packages/geo/tsconfig.lib.prod.json | 6 + packages/geo/tsconfig.spec.json | 2 +- packages/integration/ng-package.json | 14 +- packages/integration/ng-package.prod.json | 14 +- packages/integration/ngcc.config.js | 3 + packages/integration/package.json | 11 +- .../integration/src/lib/about/about.module.ts | 3 +- packages/integration/src/lib/about/index.ts | 1 - .../integration/src/lib/analytics/index.ts | 1 - .../catalog-browser-tool.module.ts | 1 - .../catalog-library-tool.module.ts | 1 - packages/integration/src/lib/catalog/index.ts | 2 + .../src/lib/context/context.module.ts | 6 - packages/integration/src/lib/context/index.ts | 1 - .../src/lib/directions/directions.module.ts | 3 +- .../integration/src/lib/directions/index.ts | 1 - .../src/lib/filter/filter.module.ts | 9 +- packages/integration/src/lib/filter/index.ts | 1 - .../spatial-filter-tool.component.ts | 7 +- .../lib/import-export/import-export.module.ts | 9 +- .../src/lib/import-export/index.ts | 1 - packages/integration/src/lib/map/index.ts | 1 - .../lib/map/map-tools/map-tools.component.ts | 4 +- .../integration/src/lib/map/map.module.ts | 7 +- packages/integration/src/lib/measure/index.ts | 1 + .../measurer-tool/measurer-tool.module.ts | 1 - packages/integration/src/lib/print/index.ts | 1 - .../integration/src/lib/print/print.module.ts | 3 +- packages/integration/src/lib/search/index.ts | 5 +- .../search-results-tool.module.ts | 4 +- packages/integration/src/lib/tool/index.ts | 1 - packages/integration/src/public_api.ts | 8 - packages/integration/tsconfig.lib.json | 5 +- packages/integration/tsconfig.lib.prod.json | 6 + packages/utils/package.json | 9 +- packages/utils/src/test.ts | 1 - packages/utils/tsconfig.lib.json | 5 +- packages/utils/tsconfig.lib.prod.json | 6 + packages/utils/tsconfig.spec.json | 2 +- tsconfig.base.json | 21 + tsconfig.json | 71 +- tslint.json | 68 +- 360 files changed, 12385 insertions(+), 11112 deletions(-) create mode 100644 .browserslistrc rename demo/src/{browserslist => .browserslistrc} (100%) create mode 100644 packages/auth/tsconfig.lib.prod.json delete mode 100644 packages/common/src/lib/context-menu/context-menu.directive.spec.ts create mode 100644 packages/common/src/lib/form/form-field/index.ts create mode 100644 packages/common/tsconfig.lib.prod.json create mode 100644 packages/context/ngcc.config.js create mode 100644 packages/context/tsconfig.lib.prod.json create mode 100644 packages/core/tsconfig.lib.prod.json create mode 100644 packages/geo/ngcc.config.js create mode 100644 packages/geo/src/lib/feature/shared/strategies.utils.ts create mode 100644 packages/geo/src/lib/overlay/shared/overlay-marker-style.utils.ts create mode 100644 packages/geo/tsconfig.lib.prod.json create mode 100644 packages/integration/ngcc.config.js create mode 100644 packages/integration/tsconfig.lib.prod.json create mode 100644 packages/utils/tsconfig.lib.prod.json create mode 100644 tsconfig.base.json diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000000..5446eb3854 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,13 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +> 0.5% +last 2 versions +Firefox ESR +not dead +not IE 9-10 +IE 11 diff --git a/.travis.yml b/.travis.yml index ebdde32b5e..d5e23ca476 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,12 +3,14 @@ node_js: - 14 - 13 - 12 - - 11 - 10 before_script: - npm install -g gulp-cli + +script: - npm run build.libs + - npm run test addons: chrome: stable diff --git a/README.md b/README.md index 482268cd09..ef87d86f7a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ [![devDependencies Status](https://david-dm.org/infra-geo-ouverte/igo2-lib/dev-status.svg)](https://david-dm.org/infra-geo-ouverte/igo2-lib?type=dev) [![Known Vulnerabilities](https://snyk.io/test/github/infra-geo-ouverte/igo2-lib/badge.svg)](https://snyk.io/test/github/infra-geo-ouverte/igo2-lib) - # IGO2 Library This repository is home to the IGO2 Library on which IGO2 is built. IGO2 and this library are open source projects using Angular, Angular Material and OpenLayers. While IGO2 is mapping oriented, this library can easily serve other purposes as it contains many components and services that may benefit any web application. @@ -47,12 +46,13 @@ Example: ### Developer Installation -Require: +Require: -| IGO2 version | Node version | Git | -|--------------|----------------------|----------| -| 1.x.x | >= 8.17.0, <= 11.15.0 | Yes | -| 0.x.x | >= 6.5.0, <= 10.18.1 | Yes | +| IGO2 version | Node version | +| ------------ | ------------ | +| > 1.5.x | >= 12, <= 14 | +| < 1.5.x | >= 8, <= 11 | +| 0.x.x | >= 6, <= 10 | If you want to develop in IGO2 Library, it can be installed by: @@ -65,7 +65,8 @@ If you want to develop in IGO2 Library, it can be installed by: ### Development server Run `npm start` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the demo's source files. -If you modify files from the lib (../packages/*) you must run: +If you modify files from the lib (../packages/\*) you must run: + 1. npm run build.libs to rebuild all the libs 2. OR 3. npm run build.geo if you have only modifyed the geo package or whatever part of the lib... diff --git a/angular.json b/angular.json index f789f64409..e03fb521f0 100644 --- a/angular.json +++ b/angular.json @@ -11,13 +11,14 @@ "schematics": { "@schematics/angular:component": { "inlineTemplate": false, - "styleext": "scss" + "style": "scss" } }, "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { + "aot": true, "outputPath": "dist/demo", "index": "demo/src/index.html", "main": "demo/src/main.ts", @@ -41,7 +42,20 @@ ], "styles": ["demo/src/styles.scss"], "scripts": [], - "es5BrowserSupport": true + "allowedCommonJsDependencies": [ + "hammerjs", + "typy", + "jspdf", + "file-saver", + "jwt-decode", + "@turf/helpers", + "@turf/line-segment", + "@turf/meta", + "@turf/invariant", + "@turf/line-intersect", + "pbf", + "geojson-rbush" + ] }, "configurations": { "production": { @@ -53,18 +67,22 @@ ], "optimization": true, "outputHashing": "all", - "sourceMap": false, + "sourceMap": true, "extractCss": true, "namedChunks": false, "aot": true, "extractLicenses": true, - "vendorChunk": false, + "vendorChunk": true, "buildOptimizer": true, "budgets": [ { "type": "initial", "maximumWarning": "5mb", "maximumError": "6mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "6kb" } ] } @@ -139,7 +157,7 @@ "schematics": { "@schematics/angular:component": { "inlineTemplate": false, - "styleext": "scss" + "style": "scss" } }, "architect": { @@ -151,7 +169,8 @@ }, "configurations": { "production": { - "project": "packages/auth/ng-package.prod.json" + "project": "packages/auth/ng-package.prod.json", + "tsConfig": "packages/auth/tsconfig.lib.prod.json" } } }, @@ -183,7 +202,7 @@ "schematics": { "@schematics/angular:component": { "inlineTemplate": false, - "styleext": "scss" + "style": "scss" } }, "architect": { @@ -195,7 +214,8 @@ }, "configurations": { "production": { - "project": "packages/common/ng-package.prod.json" + "project": "packages/common/ng-package.prod.json", + "tsConfig": "packages/common/tsconfig.lib.prod.json" } } }, @@ -227,7 +247,7 @@ "schematics": { "@schematics/angular:component": { "inlineTemplate": false, - "styleext": "scss" + "style": "scss" } }, "architect": { @@ -239,7 +259,8 @@ }, "configurations": { "production": { - "project": "packages/core/ng-package.prod.json" + "project": "packages/core/ng-package.prod.json", + "tsConfig": "packages/core/tsconfig.lib.prod.json" } } }, @@ -271,7 +292,7 @@ "schematics": { "@schematics/angular:component": { "inlineTemplate": false, - "styleext": "scss" + "style": "scss" } }, "architect": { @@ -283,7 +304,8 @@ }, "configurations": { "production": { - "project": "packages/geo/ng-package.prod.json" + "project": "packages/geo/ng-package.prod.json", + "tsConfig": "packages/geo/tsconfig.lib.prod.json" } } }, @@ -321,7 +343,8 @@ }, "configurations": { "production": { - "project": "packages/utils/ng-package.prod.json" + "project": "packages/utils/ng-package.prod.json", + "tsConfig": "packages/utils/tsconfig.lib.prod.json" } } }, @@ -345,7 +368,7 @@ "schematics": { "@schematics/angular:component": { "inlineTemplate": false, - "styleext": "scss" + "style": "scss" } }, "architect": { @@ -357,7 +380,8 @@ }, "configurations": { "production": { - "project": "packages/context/ng-package.prod.json" + "project": "packages/context/ng-package.prod.json", + "tsConfig": "packages/context/tsconfig.lib.prod.json" } } }, @@ -389,7 +413,7 @@ "schematics": { "@schematics/angular:component": { "inlineTemplate": false, - "styleext": "scss" + "style": "scss" } }, "architect": { @@ -401,7 +425,8 @@ }, "configurations": { "production": { - "project": "packages/integration/ng-package.prod.json" + "project": "packages/integration/ng-package.prod.json", + "tsConfig": "packages/integration/tsconfig.lib.prod.json" } } }, diff --git a/demo/src/browserslist b/demo/src/.browserslistrc similarity index 100% rename from demo/src/browserslist rename to demo/src/.browserslistrc diff --git a/demo/src/app/app.component.spec.ts b/demo/src/app/app.component.spec.ts index f100e2148d..bebf5a37c2 100644 --- a/demo/src/app/app.component.spec.ts +++ b/demo/src/app/app.component.spec.ts @@ -2,14 +2,13 @@ import { TestBed, async } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { - MatCardModule, - MatButtonModule, - MatIconModule, - MatToolbarModule, - MatSidenavModule, - MatListModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; +import { MatListModule } from '@angular/material/list'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatToolbarModule } from '@angular/material/toolbar'; +import { MatIconTestingModule } from '@angular/material/icon/testing'; import { IgoAuthModule } from '@igo2/auth'; @@ -27,6 +26,7 @@ describe('AppComponent', () => { MatToolbarModule, MatSidenavModule, MatListModule, + MatIconTestingModule, IgoAuthModule ], declarations: [AppComponent] diff --git a/demo/src/app/app.component.ts b/demo/src/app/app.component.ts index 25669f9657..58c7f54cee 100644 --- a/demo/src/app/app.component.ts +++ b/demo/src/app/app.component.ts @@ -29,7 +29,7 @@ export class AppComponent implements OnDestroy { ) { this.mobileQuery = media.matchMedia('(max-width: 600px)'); this._mobileQueryListener = () => changeDetectorRef.detectChanges(); - this.mobileQuery.addListener(this._mobileQueryListener); + this.mobileQuery.addEventListener('change', this._mobileQueryListener); this.renderer.addClass(document.body, this.themeClass); @@ -37,7 +37,7 @@ export class AppComponent implements OnDestroy { } ngOnDestroy(): void { - this.mobileQuery.removeListener(this._mobileQueryListener); + this.mobileQuery.removeEventListener('change', this._mobileQueryListener); } private detectOldBrowser() { diff --git a/demo/src/app/app.module.ts b/demo/src/app/app.module.ts index c61f504357..d394cac7f4 100644 --- a/demo/src/app/app.module.ts +++ b/demo/src/app/app.module.ts @@ -1,15 +1,12 @@ import { BrowserModule, DomSanitizer } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { NgModule } from '@angular/core'; -import {} from '@angular/platform-browser'; -import { - MatIconRegistry, - MatSidenavModule, - MatToolbarModule, - MatButtonModule, - MatIconModule, - MatListModule -} from '@angular/material'; +import { HammerModule } from '@angular/platform-browser'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconRegistry, MatIconModule } from '@angular/material/icon'; +import { MatListModule } from '@angular/material/list'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatToolbarModule } from '@angular/material/toolbar'; import { AppHomeModule } from './core/home/home.module'; import { AppActivityModule } from './core/activity/activity.module'; import { AppConfigModule } from './core/config/config.module'; @@ -102,7 +99,9 @@ import { AppComponent } from './app.component'; AppContextModule, - AppRoutingModule + AppRoutingModule, + + HammerModule ], bootstrap: [AppComponent] }) diff --git a/demo/src/app/auth/auth-form/auth-form-routing.module.ts b/demo/src/app/auth/auth-form/auth-form-routing.module.ts index d6b7439a50..e9c307011c 100644 --- a/demo/src/app/auth/auth-form/auth-form-routing.module.ts +++ b/demo/src/app/auth/auth-form/auth-form-routing.module.ts @@ -1,5 +1,4 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; import { AppAuthFormComponent } from './auth-form.component'; @@ -10,6 +9,6 @@ const routes: Routes = [ } ]; -export const AppAuthFormRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppAuthFormRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/auth/auth-form/auth-form.module.ts b/demo/src/app/auth/auth-form/auth-form.module.ts index 18ed3d7033..e71da00ec5 100644 --- a/demo/src/app/auth/auth-form/auth-form.module.ts +++ b/demo/src/app/auth/auth-form/auth-form.module.ts @@ -1,5 +1,5 @@ import { NgModule } from '@angular/core'; -import { MatCardModule } from '@angular/material'; +import { MatCardModule } from '@angular/material/card'; import { IgoAuthModule } from '@igo2/auth'; diff --git a/demo/src/app/common/action/action-routing.module.ts b/demo/src/app/common/action/action-routing.module.ts index 882e3d8626..d5b22519d4 100644 --- a/demo/src/app/common/action/action-routing.module.ts +++ b/demo/src/app/common/action/action-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppActionComponent } from './action.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppActionRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppActionRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/common/action/action.module.ts b/demo/src/app/common/action/action.module.ts index d9dea28299..7482343d30 100644 --- a/demo/src/app/common/action/action.module.ts +++ b/demo/src/app/common/action/action.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; -import { MatButtonModule, MatCardModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoActionModule, IgoContextMenuModule } from '@igo2/common'; diff --git a/demo/src/app/common/dynamic-component/dynamic-component-routing.module.ts b/demo/src/app/common/dynamic-component/dynamic-component-routing.module.ts index 6d6432be20..37ab032999 100644 --- a/demo/src/app/common/dynamic-component/dynamic-component-routing.module.ts +++ b/demo/src/app/common/dynamic-component/dynamic-component-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppDynamicComponentComponent } from './dynamic-component.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppDynamicComponentRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppDynamicComponentRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/common/dynamic-component/dynamic-component.module.ts b/demo/src/app/common/dynamic-component/dynamic-component.module.ts index baaed3d5f4..2a4ebd4626 100644 --- a/demo/src/app/common/dynamic-component/dynamic-component.module.ts +++ b/demo/src/app/common/dynamic-component/dynamic-component.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; -import { MatButtonModule, MatCardModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoDynamicComponentModule } from '@igo2/common'; diff --git a/demo/src/app/common/entity-selector/entity-selector-routing.module.ts b/demo/src/app/common/entity-selector/entity-selector-routing.module.ts index d5c9d662f3..385135715c 100644 --- a/demo/src/app/common/entity-selector/entity-selector-routing.module.ts +++ b/demo/src/app/common/entity-selector/entity-selector-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppEntitySelectorComponent } from './entity-selector.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppEntitySelectorRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppEntitySelectorRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/common/entity-selector/entity-selector.module.ts b/demo/src/app/common/entity-selector/entity-selector.module.ts index affffc3b27..eb1d571e85 100644 --- a/demo/src/app/common/entity-selector/entity-selector.module.ts +++ b/demo/src/app/common/entity-selector/entity-selector.module.ts @@ -1,6 +1,6 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MatCardModule } from '@angular/material'; +import { MatCardModule } from '@angular/material/card'; import { IgoEntitySelectorModule } from '@igo2/common'; diff --git a/demo/src/app/common/entity-table/entity-table-routing.module.ts b/demo/src/app/common/entity-table/entity-table-routing.module.ts index c7016bbccd..38f6af9c54 100644 --- a/demo/src/app/common/entity-table/entity-table-routing.module.ts +++ b/demo/src/app/common/entity-table/entity-table-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppEntityTableComponent } from './entity-table.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppEntityTableRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppEntityTableRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/common/entity-table/entity-table.module.ts b/demo/src/app/common/entity-table/entity-table.module.ts index f98e8f18d1..66408d8a0b 100644 --- a/demo/src/app/common/entity-table/entity-table.module.ts +++ b/demo/src/app/common/entity-table/entity-table.module.ts @@ -1,5 +1,5 @@ import { NgModule } from '@angular/core'; -import { MatCardModule } from '@angular/material'; +import { MatCardModule } from '@angular/material/card'; import { IgoEntityTableModule } from '@igo2/common'; diff --git a/demo/src/app/common/form/form-routing.module.ts b/demo/src/app/common/form/form-routing.module.ts index 1f75319748..1544e665cf 100644 --- a/demo/src/app/common/form/form-routing.module.ts +++ b/demo/src/app/common/form/form-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppFormComponent } from './form.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppFormRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppFormRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/common/form/form.module.ts b/demo/src/app/common/form/form.module.ts index 87279635ce..5baef7f645 100644 --- a/demo/src/app/common/form/form.module.ts +++ b/demo/src/app/common/form/form.module.ts @@ -1,6 +1,7 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MatButtonModule, MatCardModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoFormModule } from '@igo2/common'; diff --git a/demo/src/app/common/table/table-routing.module.ts b/demo/src/app/common/table/table-routing.module.ts index ae17a6b5df..6f049d577a 100644 --- a/demo/src/app/common/table/table-routing.module.ts +++ b/demo/src/app/common/table/table-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppTableComponent } from './table.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppTableRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppTableRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/common/table/table.module.ts b/demo/src/app/common/table/table.module.ts index a90a4041e1..b4de85a834 100644 --- a/demo/src/app/common/table/table.module.ts +++ b/demo/src/app/common/table/table.module.ts @@ -1,5 +1,5 @@ import { NgModule } from '@angular/core'; -import { MatCardModule } from '@angular/material'; +import { MatCardModule } from '@angular/material/card'; import { IgoTableModule } from '@igo2/common'; diff --git a/demo/src/app/common/tool/tool-routing.module.ts b/demo/src/app/common/tool/tool-routing.module.ts index 5e4d586359..0e27a01e9f 100644 --- a/demo/src/app/common/tool/tool-routing.module.ts +++ b/demo/src/app/common/tool/tool-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppToolComponent } from './tool.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppToolRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppToolRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/common/tool/tool.module.ts b/demo/src/app/common/tool/tool.module.ts index d96e72531f..d39f538e09 100644 --- a/demo/src/app/common/tool/tool.module.ts +++ b/demo/src/app/common/tool/tool.module.ts @@ -1,6 +1,8 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MatButtonModule, MatIconModule, MatCardModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; import { IgoLanguageModule } from '@igo2/core'; import { IgoPanelModule, IgoToolModule } from '@igo2/common'; diff --git a/demo/src/app/common/widget/widget-routing.module.ts b/demo/src/app/common/widget/widget-routing.module.ts index a59ecffa89..a790a00304 100644 --- a/demo/src/app/common/widget/widget-routing.module.ts +++ b/demo/src/app/common/widget/widget-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppWidgetComponent } from './widget.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppWidgetRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppWidgetRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/common/widget/widget.module.ts b/demo/src/app/common/widget/widget.module.ts index 8dccdebe51..348b1a2b55 100644 --- a/demo/src/app/common/widget/widget.module.ts +++ b/demo/src/app/common/widget/widget.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; -import { MatButtonModule, MatCardModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoWidgetModule } from '@igo2/common'; diff --git a/demo/src/app/context/context/context-routing.module.ts b/demo/src/app/context/context/context-routing.module.ts index 6dd51df7fb..9d5d822c71 100644 --- a/demo/src/app/context/context/context-routing.module.ts +++ b/demo/src/app/context/context/context-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppContextComponent } from './context.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppContextRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppContextRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/context/context/context.module.ts b/demo/src/app/context/context/context.module.ts index 3a3ea960c6..504e1b1e19 100644 --- a/demo/src/app/context/context/context.module.ts +++ b/demo/src/app/context/context/context.module.ts @@ -1,9 +1,7 @@ import { NgModule } from '@angular/core'; -import { - MatCardModule, - MatButtonModule, - MatIconModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; import { HttpClientJsonpModule } from '@angular/common/http'; import { IgoPanelModule } from '@igo2/common'; import { diff --git a/demo/src/app/core/activity/activity-routing.module.ts b/demo/src/app/core/activity/activity-routing.module.ts index 59d96f6c5f..ea9da99983 100644 --- a/demo/src/app/core/activity/activity-routing.module.ts +++ b/demo/src/app/core/activity/activity-routing.module.ts @@ -1,5 +1,4 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; import { AppActivityComponent } from './activity.component'; @@ -10,6 +9,6 @@ const routes: Routes = [ } ]; -export const AppActivityRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppActivityRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/core/activity/activity.module.ts b/demo/src/app/core/activity/activity.module.ts index 365637207d..2ecb9f89ff 100644 --- a/demo/src/app/core/activity/activity.module.ts +++ b/demo/src/app/core/activity/activity.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; -import { MatCardModule, MatButtonModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoActivityModule } from '@igo2/core'; import { IgoSpinnerModule } from '@igo2/common'; diff --git a/demo/src/app/core/config/config-routing.module.ts b/demo/src/app/core/config/config-routing.module.ts index f661b87234..eb4a0d9d21 100644 --- a/demo/src/app/core/config/config-routing.module.ts +++ b/demo/src/app/core/config/config-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppConfigComponent } from './config.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppConfigRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppConfigRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/core/config/config.module.ts b/demo/src/app/core/config/config.module.ts index 14a442181b..33d151fb20 100644 --- a/demo/src/app/core/config/config.module.ts +++ b/demo/src/app/core/config/config.module.ts @@ -1,6 +1,7 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MatCardModule, MatButtonModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoConfigModule, provideConfigOptions } from '@igo2/core'; diff --git a/demo/src/app/core/home/home-routing.module.ts b/demo/src/app/core/home/home-routing.module.ts index a3c5ce2733..45dc1794ee 100644 --- a/demo/src/app/core/home/home-routing.module.ts +++ b/demo/src/app/core/home/home-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppHomeComponent } from './home.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppHomeRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppHomeRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/core/language/language-routing.module.ts b/demo/src/app/core/language/language-routing.module.ts index 06e531ec8a..c493259dec 100644 --- a/demo/src/app/core/language/language-routing.module.ts +++ b/demo/src/app/core/language/language-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppLanguageComponent } from './language.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppLanguageRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppLanguageRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/core/language/language.module.ts b/demo/src/app/core/language/language.module.ts index 5289517df6..5e63525187 100644 --- a/demo/src/app/core/language/language.module.ts +++ b/demo/src/app/core/language/language.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; -import { MatCardModule, MatButtonModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoLanguageModule } from '@igo2/core'; diff --git a/demo/src/app/core/media/media-routing.module.ts b/demo/src/app/core/media/media-routing.module.ts index e1d241f7e6..95a39dea6c 100644 --- a/demo/src/app/core/media/media-routing.module.ts +++ b/demo/src/app/core/media/media-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppMediaComponent } from './media.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppMediaRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppMediaRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/core/media/media.module.ts b/demo/src/app/core/media/media.module.ts index 72822a6a2d..708e58ecb1 100644 --- a/demo/src/app/core/media/media.module.ts +++ b/demo/src/app/core/media/media.module.ts @@ -1,5 +1,5 @@ import { NgModule } from '@angular/core'; -import { MatCardModule } from '@angular/material'; +import { MatCardModule } from '@angular/material/card'; import { AppMediaComponent } from './media.component'; import { AppMediaRoutingModule } from './media-routing.module'; diff --git a/demo/src/app/core/message/message-routing.module.ts b/demo/src/app/core/message/message-routing.module.ts index 6191eb82cb..aa01db7e29 100644 --- a/demo/src/app/core/message/message-routing.module.ts +++ b/demo/src/app/core/message/message-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppMessageComponent } from './message.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppMessageRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppMessageRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/core/message/message.module.ts b/demo/src/app/core/message/message.module.ts index dc2e119390..5c6c5c760e 100644 --- a/demo/src/app/core/message/message.module.ts +++ b/demo/src/app/core/message/message.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; -import { MatCardModule, MatButtonModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoMessageModule } from '@igo2/core'; diff --git a/demo/src/app/core/request/request-routing.module.ts b/demo/src/app/core/request/request-routing.module.ts index 7b1dd55b0d..8ea3f418e9 100644 --- a/demo/src/app/core/request/request-routing.module.ts +++ b/demo/src/app/core/request/request-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppRequestComponent } from './request.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppRequestRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppRequestRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/core/request/request.module.ts b/demo/src/app/core/request/request.module.ts index 2c1bc049d4..fac609e341 100644 --- a/demo/src/app/core/request/request.module.ts +++ b/demo/src/app/core/request/request.module.ts @@ -1,6 +1,7 @@ import { NgModule } from '@angular/core'; import { HttpClientModule } from '@angular/common/http'; -import { MatCardModule, MatButtonModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoErrorModule, IgoLanguageModule } from '@igo2/core'; diff --git a/demo/src/app/geo/catalog/catalog-routing.module.ts b/demo/src/app/geo/catalog/catalog-routing.module.ts index 7daa7fca66..38e78a92fd 100644 --- a/demo/src/app/geo/catalog/catalog-routing.module.ts +++ b/demo/src/app/geo/catalog/catalog-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppCatalogComponent } from './catalog.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppCatalogRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppCatalogRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/catalog/catalog.module.ts b/demo/src/app/geo/catalog/catalog.module.ts index 0f5cf86ca1..9c43d3db05 100644 --- a/demo/src/app/geo/catalog/catalog.module.ts +++ b/demo/src/app/geo/catalog/catalog.module.ts @@ -1,11 +1,9 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { - MatCardModule, - MatButtonModule, - MatIconModule, - MatTooltipModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { IgoConfigModule, provideConfigOptions } from '@igo2/core'; import { IgoPanelModule } from '@igo2/common'; diff --git a/demo/src/app/geo/directions/directions-routing.module.ts b/demo/src/app/geo/directions/directions-routing.module.ts index ca951ee17a..736060af3a 100644 --- a/demo/src/app/geo/directions/directions-routing.module.ts +++ b/demo/src/app/geo/directions/directions-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppDirectionsComponent } from './directions.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppDirectionsRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppDirectionsRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/directions/directions.component.ts b/demo/src/app/geo/directions/directions.component.ts index b7c69f6b51..81642617a3 100644 --- a/demo/src/app/geo/directions/directions.component.ts +++ b/demo/src/app/geo/directions/directions.component.ts @@ -30,8 +30,8 @@ export class AppDirectionsComponent { geolocate: true }; - public stopsStore = new FeatureStore([], {map: this.map}); - public routeStore = new FeatureStore([], {map: this.map}); + public stopsStore = new FeatureStore([], { map: this.map }); + public routeStore = new FeatureStore([], { map: this.map }); constructor( private projectionService: ProjectionService, @@ -42,13 +42,9 @@ export class AppDirectionsComponent { this.mapService.setMap(this.map); this.layerService .createAsyncLayer({ - title: 'Quebec Base Map', + title: 'OSM', sourceOptions: { - type: 'wmts', - url: 'https://geoegl.msp.gouv.qc.ca/carto/wmts/1.0.0/wmts', - layer: 'carte_gouv_qc_ro', - matrixSet: 'EPSG_3857', - version: '1.3.0' + type: 'osm' } }) .subscribe(l => this.map.addLayer(l)); diff --git a/demo/src/app/geo/directions/directions.module.ts b/demo/src/app/geo/directions/directions.module.ts index 20d8043357..0f54f0b5d5 100644 --- a/demo/src/app/geo/directions/directions.module.ts +++ b/demo/src/app/geo/directions/directions.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; -import { MatCardModule, MatButtonModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoMessageModule } from '@igo2/core'; import { diff --git a/demo/src/app/geo/feature/feature-routing.module.ts b/demo/src/app/geo/feature/feature-routing.module.ts index 431a48ff9d..ae63ce2acb 100644 --- a/demo/src/app/geo/feature/feature-routing.module.ts +++ b/demo/src/app/geo/feature/feature-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppFeatureComponent } from './feature.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppFeatureRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppFeatureRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/feature/feature.component.ts b/demo/src/app/geo/feature/feature.component.ts index b98b8896f5..2793f7039e 100644 --- a/demo/src/app/geo/feature/feature.component.ts +++ b/demo/src/app/geo/feature/feature.component.ts @@ -128,7 +128,7 @@ export class AppFeatureComponent implements OnInit, OnDestroy { url: 'assets/mapboxStyleExample-vectortile.json', source: 'ahocevar' } - }) + } as any) .subscribe(l => this.map.addLayer(l)); this.dataSourceService diff --git a/demo/src/app/geo/feature/feature.module.ts b/demo/src/app/geo/feature/feature.module.ts index 63357442bc..18e9c540f3 100644 --- a/demo/src/app/geo/feature/feature.module.ts +++ b/demo/src/app/geo/feature/feature.module.ts @@ -1,10 +1,8 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { - MatCardModule, - MatButtonModule, - MatIconModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; import { IgoPanelModule, IgoEntityTableModule } from '@igo2/common'; import { IgoMapModule, IgoFeatureModule } from '@igo2/geo'; diff --git a/demo/src/app/geo/geometry/geometry-routing.module.ts b/demo/src/app/geo/geometry/geometry-routing.module.ts index bd8408c9fd..692743f176 100644 --- a/demo/src/app/geo/geometry/geometry-routing.module.ts +++ b/demo/src/app/geo/geometry/geometry-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppGeometryComponent } from './geometry.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppGeometryRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppGeometryRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/geometry/geometry.module.ts b/demo/src/app/geo/geometry/geometry.module.ts index 7ba4f833d3..75ac0253a4 100644 --- a/demo/src/app/geo/geometry/geometry.module.ts +++ b/demo/src/app/geo/geometry/geometry.module.ts @@ -1,6 +1,7 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MatButtonModule, MatCardModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoFormModule } from '@igo2/common'; import { IgoGeometryModule, IgoMapModule } from '@igo2/geo'; diff --git a/demo/src/app/geo/import-export/import-export-routing.module.ts b/demo/src/app/geo/import-export/import-export-routing.module.ts index f1a8040768..e3275ad4ba 100644 --- a/demo/src/app/geo/import-export/import-export-routing.module.ts +++ b/demo/src/app/geo/import-export/import-export-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppImportExportComponent } from './import-export.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppImportExportRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppImportExportRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/import-export/import-export.component.ts b/demo/src/app/geo/import-export/import-export.component.ts index 2f7ed139ab..d0cc61f2bb 100644 --- a/demo/src/app/geo/import-export/import-export.component.ts +++ b/demo/src/app/geo/import-export/import-export.component.ts @@ -28,13 +28,9 @@ export class AppImportExportComponent { ) { this.layerService .createAsyncLayer({ - title: 'Quebec Base Map', + title: 'OSM', sourceOptions: { - type: 'wmts', - url: 'https://geoegl.msp.gouv.qc.ca/carto/wmts/1.0.0/wmts', - layer: 'carte_gouv_qc_ro', - matrixSet: 'EPSG_3857', - version: '1.3.0' + type: 'osm' } }) .subscribe(l => this.map.addLayer(l)); diff --git a/demo/src/app/geo/import-export/import-export.module.ts b/demo/src/app/geo/import-export/import-export.module.ts index d5ec700e98..40b8f0b13f 100644 --- a/demo/src/app/geo/import-export/import-export.module.ts +++ b/demo/src/app/geo/import-export/import-export.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; -import { MatCardModule, MatButtonModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoMessageModule } from '@igo2/core'; import { diff --git a/demo/src/app/geo/layer/layer-routing.module.ts b/demo/src/app/geo/layer/layer-routing.module.ts index 9726343608..9da985f869 100644 --- a/demo/src/app/geo/layer/layer-routing.module.ts +++ b/demo/src/app/geo/layer/layer-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppLayerComponent } from './layer.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppLayerRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppLayerRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/layer/layer.module.ts b/demo/src/app/geo/layer/layer.module.ts index 67ca3b7872..9b4bcf8ccd 100644 --- a/demo/src/app/geo/layer/layer.module.ts +++ b/demo/src/app/geo/layer/layer.module.ts @@ -1,9 +1,7 @@ import { NgModule } from '@angular/core'; -import { - MatCardModule, - MatButtonModule, - MatIconModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; import { IgoPanelModule } from '@igo2/common'; import { diff --git a/demo/src/app/geo/legend/legend-routing.module.ts b/demo/src/app/geo/legend/legend-routing.module.ts index e1540a9f50..6326400efb 100644 --- a/demo/src/app/geo/legend/legend-routing.module.ts +++ b/demo/src/app/geo/legend/legend-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppLegendComponent } from './legend.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppLegendRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppLegendRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/legend/legend.module.ts b/demo/src/app/geo/legend/legend.module.ts index 30b2f6ef1c..a978321dd7 100644 --- a/demo/src/app/geo/legend/legend.module.ts +++ b/demo/src/app/geo/legend/legend.module.ts @@ -1,9 +1,7 @@ import { NgModule } from '@angular/core'; -import { - MatCardModule, - MatButtonModule, - MatIconModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; import { IgoPanelModule } from '@igo2/common'; import { diff --git a/demo/src/app/geo/measure/measure-routing.module.ts b/demo/src/app/geo/measure/measure-routing.module.ts index edf7a5efd5..cb6ed35940 100644 --- a/demo/src/app/geo/measure/measure-routing.module.ts +++ b/demo/src/app/geo/measure/measure-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppMeasureComponent } from './measure.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppMeasureRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppMeasureRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/measure/measure.module.ts b/demo/src/app/geo/measure/measure.module.ts index 4145c4d3a5..77700bc713 100644 --- a/demo/src/app/geo/measure/measure.module.ts +++ b/demo/src/app/geo/measure/measure.module.ts @@ -1,5 +1,5 @@ import { NgModule } from '@angular/core'; -import { MatCardModule } from '@angular/material'; +import { MatCardModule } from '@angular/material/card'; import { IgoMapModule, IgoMeasureModule } from '@igo2/geo'; diff --git a/demo/src/app/geo/ogc-filter/ogc-filter-routing.module.ts b/demo/src/app/geo/ogc-filter/ogc-filter-routing.module.ts index f010e1db11..d7f4aece81 100644 --- a/demo/src/app/geo/ogc-filter/ogc-filter-routing.module.ts +++ b/demo/src/app/geo/ogc-filter/ogc-filter-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppOgcFilterComponent } from './ogc-filter.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppOgcFilterRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppOgcFilterRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/ogc-filter/ogc-filter.module.ts b/demo/src/app/geo/ogc-filter/ogc-filter.module.ts index 3b8a2a71e0..65df0cb582 100644 --- a/demo/src/app/geo/ogc-filter/ogc-filter.module.ts +++ b/demo/src/app/geo/ogc-filter/ogc-filter.module.ts @@ -1,9 +1,7 @@ import { NgModule } from '@angular/core'; -import { - MatCardModule, - MatButtonModule, - MatIconModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; import { IgoPanelModule } from '@igo2/common'; import { IgoMapModule, IgoFilterModule } from '@igo2/geo'; diff --git a/demo/src/app/geo/overlay/overlay-routing.module.ts b/demo/src/app/geo/overlay/overlay-routing.module.ts index 263f0d96ec..1ffb7f76b1 100644 --- a/demo/src/app/geo/overlay/overlay-routing.module.ts +++ b/demo/src/app/geo/overlay/overlay-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppOverlayComponent } from './overlay.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppOverlayRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppOverlayRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/overlay/overlay.module.ts b/demo/src/app/geo/overlay/overlay.module.ts index 8c71aaa4e7..d9d72624d4 100644 --- a/demo/src/app/geo/overlay/overlay.module.ts +++ b/demo/src/app/geo/overlay/overlay.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; -import { MatCardModule, MatButtonModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoMapModule, IgoOverlayModule } from '@igo2/geo'; diff --git a/demo/src/app/geo/print/print-routing.module.ts b/demo/src/app/geo/print/print-routing.module.ts index fc5d7fc20f..258761710c 100644 --- a/demo/src/app/geo/print/print-routing.module.ts +++ b/demo/src/app/geo/print/print-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppPrintComponent } from './print.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppPrintRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppPrintRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/print/print.module.ts b/demo/src/app/geo/print/print.module.ts index d13bffca27..1335fe055c 100644 --- a/demo/src/app/geo/print/print.module.ts +++ b/demo/src/app/geo/print/print.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; -import { MatCardModule, MatButtonModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoMessageModule } from '@igo2/core'; import { IgoMapModule, IgoPrintModule } from '@igo2/geo'; diff --git a/demo/src/app/geo/query/query-routing.module.ts b/demo/src/app/geo/query/query-routing.module.ts index a9ec537770..e697275852 100644 --- a/demo/src/app/geo/query/query-routing.module.ts +++ b/demo/src/app/geo/query/query-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppQueryComponent } from './query.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppQueryRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppQueryRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/query/query.module.ts b/demo/src/app/geo/query/query.module.ts index 6043731420..44fadd6e2d 100644 --- a/demo/src/app/geo/query/query.module.ts +++ b/demo/src/app/geo/query/query.module.ts @@ -1,10 +1,8 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { - MatCardModule, - MatButtonModule, - MatIconModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; import { IgoPanelModule } from '@igo2/common'; import { diff --git a/demo/src/app/geo/search/search-routing.module.ts b/demo/src/app/geo/search/search-routing.module.ts index 5ea970376a..f276911096 100644 --- a/demo/src/app/geo/search/search-routing.module.ts +++ b/demo/src/app/geo/search/search-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppSearchComponent } from './search.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppSearchRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppSearchRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/search/search.component.html b/demo/src/app/geo/search/search.component.html index c1f06e64f3..f402de1cbd 100644 --- a/demo/src/app/geo/search/search.component.html +++ b/demo/src/app/geo/search/search.component.html @@ -14,7 +14,7 @@ forget to focus on map before.

- F2 activate/desactivate the pointer location. + F2 activate/desactivate the pointer location. @@ -25,7 +25,7 @@ [igoSearchPointerSummaryEnabled]="igoSearchPointerSummaryEnabled" (menuPosition)="onContextMenuOpen($event)" igoPointerPositionByKey [pointerPositionByKeyDelay]="500" - [pointerPositionByKeyCode]="17" (pointerPositionByKeyCoord)="onPointerSearch($event)"> + pointerPositionByKey="Shift" (pointerPositionByKeyCoord)="onPointerSearch($event)"> diff --git a/demo/src/app/geo/search/search.component.ts b/demo/src/app/geo/search/search.component.ts index 4c2b585cff..1ef7e53cc5 100644 --- a/demo/src/app/geo/search/search.component.ts +++ b/demo/src/app/geo/search/search.component.ts @@ -53,7 +53,7 @@ export class AppSearchComponent implements OnInit, OnDestroy { public osmLayer: Layer; - @ViewChild('mapBrowser', { read: ElementRef }) mapBrowser: ElementRef; + @ViewChild('mapBrowser', { read: ElementRef, static: true }) mapBrowser: ElementRef; public lonlat; public mapProjection: string; diff --git a/demo/src/app/geo/search/search.module.ts b/demo/src/app/geo/search/search.module.ts index e2121cb826..4f7f2947dc 100644 --- a/demo/src/app/geo/search/search.module.ts +++ b/demo/src/app/geo/search/search.module.ts @@ -1,12 +1,10 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { - MatCardModule, - MatButtonModule, - MatIconModule, - MatTooltipModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { IgoMessageModule } from '@igo2/core'; diff --git a/demo/src/app/geo/simple-map/simple-map-routing.module.ts b/demo/src/app/geo/simple-map/simple-map-routing.module.ts index f66f907173..729abdf5e6 100644 --- a/demo/src/app/geo/simple-map/simple-map-routing.module.ts +++ b/demo/src/app/geo/simple-map/simple-map-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppSimpleMapComponent } from './simple-map.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppSimpleMapRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppSimpleMapRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/simple-map/simple-map.module.ts b/demo/src/app/geo/simple-map/simple-map.module.ts index 48f9154d9a..aab4a092e2 100644 --- a/demo/src/app/geo/simple-map/simple-map.module.ts +++ b/demo/src/app/geo/simple-map/simple-map.module.ts @@ -1,5 +1,6 @@ import { NgModule } from '@angular/core'; -import { MatCardModule, MatButtonModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; import { IgoMapModule } from '@igo2/geo'; diff --git a/demo/src/app/geo/spatial-filter/spatial-filter-routing.module.ts b/demo/src/app/geo/spatial-filter/spatial-filter-routing.module.ts index 3f4b5a9f13..2e6dbe07e6 100644 --- a/demo/src/app/geo/spatial-filter/spatial-filter-routing.module.ts +++ b/demo/src/app/geo/spatial-filter/spatial-filter-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppSpatialFilterComponent } from './spatial-filter.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppSpatialFilterRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppSpatialFilterRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/spatial-filter/spatial-filter.component.ts b/demo/src/app/geo/spatial-filter/spatial-filter.component.ts index cda7ae8290..d857b2e30d 100644 --- a/demo/src/app/geo/spatial-filter/spatial-filter.component.ts +++ b/demo/src/app/geo/spatial-filter/spatial-filter.component.ts @@ -53,7 +53,9 @@ export class AppSpatialFilterComponent { public zone: Feature; public radius: number; - public selectedFeature$: BehaviorSubject = new BehaviorSubject(undefined); + public selectedFeature$: BehaviorSubject = new BehaviorSubject( + undefined + ); private format = new olFormatGeoJSON(); @@ -84,7 +86,7 @@ export class AppSpatialFilterComponent { }) ); }); - } + } getOutputType(event: SpatialFilterType) { this.type = event; @@ -100,11 +102,16 @@ export class AppSpatialFilterComponent { } private loadFilterList() { - this.spatialFilterService.loadFilterList(this.queryType) + this.spatialFilterService + .loadFilterList(this.queryType) .subscribe((features: Feature[]) => { features.sort((a, b) => { - if (a.properties.nom < b.properties.nom) { return -1; } - if (a.properties.nom > b.properties.nom) { return 1; } + if (a.properties.nom < b.properties.nom) { + return -1; + } + if (a.properties.nom > b.properties.nom) { + return 1; + } return 0; }); this.spatialListStore.clear(); @@ -134,7 +141,14 @@ export class AppSpatialFilterComponent { this.radius = undefined; } this.thematics.forEach(thematic => { - this.spatialFilterService.loadFilterItem(this.zone, this.itemType, this.queryType, thematic, this.radius) + this.spatialFilterService + .loadFilterItem( + this.zone, + this.itemType, + this.queryType, + thematic, + this.radius + ) .subscribe((features: Feature[]) => { this.store.insertMany(features); const featuresPoint: Feature[] = []; @@ -154,12 +168,26 @@ export class AppSpatialFilterComponent { this.tryAddLayerToMap(featuresLinePoly, idLinePoly); this.loading = false; if (features.length >= 10000) { - this.messageService.alert(this.languageService.translate.instant('igo.geo.spatialFilter.maxSizeAlert'), - this.languageService.translate.instant('igo.geo.spatialFilter.warning'), {timeOut: 10000}); + this.messageService.alert( + this.languageService.translate.instant( + 'igo.geo.spatialFilter.maxSizeAlert' + ), + this.languageService.translate.instant( + 'igo.geo.spatialFilter.warning' + ), + { timeOut: 10000 } + ); } if (!features.length) { - this.messageService.alert(this.languageService.translate.instant('igo.geo.spatialFilter.zeroResults'), - this.languageService.translate.instant('igo.geo.spatialFilter.warning'), {timeOut: 10000}); + this.messageService.alert( + this.languageService.translate.instant( + 'igo.geo.spatialFilter.zeroResults' + ), + this.languageService.translate.instant( + 'igo.geo.spatialFilter.warning' + ), + { timeOut: 10000 } + ); } }); }); @@ -181,27 +209,31 @@ export class AppSpatialFilterComponent { for (const feature of features) { if (this.type === SpatialFilterType.Predefined) { for (const layer of this.map.layers) { - if (layer.options._internal.code === feature.properties.code) { + console.log(layer); + if ( + layer.options._internal && + layer.options._internal.code === feature.properties.code + ) { return; } - if (layer.title.startsWith('Zone')) { + if (layer.title.startsWith('Zone')) { this.map.removeLayer(layer); } } } for (const layer of this.map.layers) { - if (layer.title.startsWith('Zone')) { + if (layer.title.startsWith('Zone')) { i++; } } this.dataSourceService - .createAsyncDataSource({ - type: 'vector', - queryable: true - } as QueryableDataSourceOptions ) + .createAsyncDataSource({ + type: 'vector', + queryable: true + } as QueryableDataSourceOptions) .subscribe((dataSource: DataSource) => { const olLayer = this.layerService.createLayer({ - title: 'Zone ' + i as string, + title: ('Zone ' + i) as string, _internal: { code: this.type === SpatialFilterType.Predefined @@ -214,14 +246,18 @@ export class AppSpatialFilterComponent { const coordinates = (features[0] as any).coordinates; return new olstyle.Style({ image: new olstyle.Circle({ - radius: coordinates ? this.radius / (Math.cos((Math.PI / 180) * coordinates[1])) / resolution : undefined, - fill: new olstyle.Fill({ - color: 'rgba(200, 200, 20, 0.2)' - }), - stroke: new olstyle.Stroke({ - width: 1, - color: 'orange' - }) + radius: coordinates + ? this.radius / + Math.cos((Math.PI / 180) * coordinates[1]) / + resolution + : undefined, + fill: new olstyle.Fill({ + color: 'rgba(200, 200, 20, 0.2)' + }), + stroke: new olstyle.Stroke({ + width: 1, + color: 'orange' + }) }), stroke: new olstyle.Stroke({ width: 1, @@ -254,35 +290,39 @@ export class AppSpatialFilterComponent { return; } for (const layer of this.map.layers) { - if (layer.title.startsWith(features[0].meta.title)) { + if (layer.title.startsWith(features[0].meta.title)) { i++; } } this.dataSourceService - .createAsyncDataSource({ - type: 'cluster', - id, - queryable: true, - distance: 120, - meta: { - title: 'Cluster' - } - } as QueryableDataSourceOptions ) + .createAsyncDataSource({ + type: 'cluster', + id, + queryable: true, + distance: 120, + meta: { + title: 'Cluster' + } + } as QueryableDataSourceOptions) .subscribe((dataSource: ClusterDataSource) => { const olLayer = this.layerService.createLayer({ - title: features[0].meta.title + ' ' + i as string, + title: (features[0].meta.title + ' ' + i) as string, source: dataSource, visible: true, - clusterParam: {clusterRange: [1, 5]} + clusterParam: { + clusterRanges: [{ minRadius: 1, maxRadius: 5, style: {} }] + } }); const featuresOl = features.map(feature => { return featureToOl(feature, this.map.projection); }); dataSource.ol.source.addFeatures(featuresOl); if (this.map.layers.find(layer => layer.id === olLayer.id)) { - this.map.removeLayer(this.map.layers.find(layer => layer.id === olLayer.id)); + this.map.removeLayer( + this.map.layers.find(layer => layer.id === olLayer.id) + ); i = i - 1; - olLayer.title = features[0].meta.title + ' ' + i as string; + olLayer.title = (features[0].meta.title + ' ' + i) as string; olLayer.options.title = olLayer.title; } this.map.addLayer(olLayer); @@ -301,19 +341,19 @@ export class AppSpatialFilterComponent { return; } for (const layer of this.map.layers) { - if (layer.title.startsWith(features[0].meta.title)) { + if (layer.title.startsWith(features[0].meta.title)) { i++; } } this.dataSourceService - .createAsyncDataSource({ - type: 'vector', - id, - queryable: true - } as QueryableDataSourceOptions ) + .createAsyncDataSource({ + type: 'vector', + id, + queryable: true + } as QueryableDataSourceOptions) .subscribe((dataSource: DataSource) => { const olLayer = this.layerService.createLayer({ - title: features[0].meta.title + ' ' + i as string, + title: (features[0].meta.title + ' ' + i) as string, source: dataSource, visible: true }); @@ -322,9 +362,11 @@ export class AppSpatialFilterComponent { }); dataSource.ol.addFeatures(featuresOl); if (this.map.layers.find(layer => layer.id === olLayer.id)) { - this.map.removeLayer(this.map.layers.find(layer => layer.id === olLayer.id)); + this.map.removeLayer( + this.map.layers.find(layer => layer.id === olLayer.id) + ); i = i - 1; - olLayer.title = features[0].meta.title + ' ' + i as string; + olLayer.title = (features[0].meta.title + ' ' + i) as string; olLayer.options.title = olLayer.title; } this.map.addLayer(olLayer); diff --git a/demo/src/app/geo/spatial-filter/spatial-filter.module.ts b/demo/src/app/geo/spatial-filter/spatial-filter.module.ts index f92e734d8e..952d347a44 100644 --- a/demo/src/app/geo/spatial-filter/spatial-filter.module.ts +++ b/demo/src/app/geo/spatial-filter/spatial-filter.module.ts @@ -1,10 +1,8 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { - MatCardModule, - MatButtonModule, - MatIconModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; import { IgoPanelModule, IgoFormModule } from '@igo2/common'; import { IgoMapModule, IgoFilterModule, IgoQueryModule, IgoFeatureModule, IgoFeatureDetailsModule } from '@igo2/geo'; diff --git a/demo/src/app/geo/time-filter/time-filter-routing.module.ts b/demo/src/app/geo/time-filter/time-filter-routing.module.ts index 329f9874d0..a415ec7476 100644 --- a/demo/src/app/geo/time-filter/time-filter-routing.module.ts +++ b/demo/src/app/geo/time-filter/time-filter-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppTimeFilterComponent } from './time-filter.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppTimeFilterRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppTimeFilterRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/time-filter/time-filter.module.ts b/demo/src/app/geo/time-filter/time-filter.module.ts index 588a0d76d0..6a25a60605 100644 --- a/demo/src/app/geo/time-filter/time-filter.module.ts +++ b/demo/src/app/geo/time-filter/time-filter.module.ts @@ -1,9 +1,7 @@ import { NgModule } from '@angular/core'; -import { - MatCardModule, - MatButtonModule, - MatIconModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; import { IgoPanelModule } from '@igo2/common'; import { IgoMapModule, IgoFilterModule } from '@igo2/geo'; diff --git a/demo/src/app/geo/workspace/workspace-routing.module.ts b/demo/src/app/geo/workspace/workspace-routing.module.ts index 8c946c1848..8d0f10617f 100644 --- a/demo/src/app/geo/workspace/workspace-routing.module.ts +++ b/demo/src/app/geo/workspace/workspace-routing.module.ts @@ -1,5 +1,5 @@ import { Routes, RouterModule } from '@angular/router'; -import { ModuleWithProviders } from '@angular/core'; + import { AppWorkspaceComponent } from './workspace.component'; @@ -10,6 +10,6 @@ const routes: Routes = [ } ]; -export const AppWorkspaceRoutingModule: ModuleWithProviders = RouterModule.forChild( +export const AppWorkspaceRoutingModule = RouterModule.forChild( routes ); diff --git a/demo/src/app/geo/workspace/workspace.module.ts b/demo/src/app/geo/workspace/workspace.module.ts index eb3eadde2c..ba857825d0 100644 --- a/demo/src/app/geo/workspace/workspace.module.ts +++ b/demo/src/app/geo/workspace/workspace.module.ts @@ -1,10 +1,8 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { - MatCardModule, - MatButtonModule, - MatIconModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatIconModule } from '@angular/material/icon'; import { IgoActionModule, diff --git a/demo/src/assets/import-style.json b/demo/src/assets/import-style.json index aa4ee17f40..62c6ff9ccb 100644 --- a/demo/src/assets/import-style.json +++ b/demo/src/assets/import-style.json @@ -2,10 +2,19 @@ "default": { "style": { "fill": { - "color": "green" + "color": "rgba(0,255,0,0.3)" }, "stroke": { "color": "black" + }, + "circle": { + "fill": { + "color": "rgba(0,255,0,0.3)" + }, + "stroke": { + "color": "black" + }, + "radius": 5 } } }, diff --git a/demo/src/polyfills.ts b/demo/src/polyfills.ts index 92c48eb547..f1e696dc4f 100644 --- a/demo/src/polyfills.ts +++ b/demo/src/polyfills.ts @@ -27,8 +27,8 @@ import 'classlist.js'; // Run `npm install --save classlist.js`. import 'unorm/lib/unorm.js'; /** IE10 and IE11 requires the following for some object management */ -import 'core-js/es7/object'; -import 'core-js/es7/string'; +import 'core-js/es/object'; +import 'core-js/es/string'; /** * Web Animations `@angular/platform-browser/animations` * Only required if AnimationBuilder is used within the application and diff --git a/demo/src/tsconfig.app.json b/demo/src/tsconfig.app.json index faa51b83e8..b47db6130c 100644 --- a/demo/src/tsconfig.app.json +++ b/demo/src/tsconfig.app.json @@ -1,9 +1,14 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "../../out-tsc/app", - "module": "es2015", "types": [] }, - "exclude": ["demo/src/test.ts", "**/*.spec.ts"] + "files": [ + "main.ts", + "polyfills.ts" + ], + "include": [ + "demo/src/**/*.d.ts" + ] } diff --git a/demo/src/tsconfig.spec.json b/demo/src/tsconfig.spec.json index 7c721ca333..e97d1b036a 100644 --- a/demo/src/tsconfig.spec.json +++ b/demo/src/tsconfig.spec.json @@ -1,8 +1,7 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "../../out-tsc/spec", - "module": "commonjs", "types": ["jasmine", "node"] }, "files": ["test.ts", "polyfills.ts"], diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js index b225fb2b23..c3488b2eba 100644 --- a/e2e/protractor.conf.js +++ b/e2e/protractor.conf.js @@ -23,6 +23,6 @@ exports.config = { }); jasmine .getEnv() - .addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); + .addReporter(new SpecReporter({ spec: { displayStacktrace: 'pretty' } })); } }; diff --git a/e2e/tsconfig.e2e.json b/e2e/tsconfig.e2e.json index a6dd622028..0353f0450f 100644 --- a/e2e/tsconfig.e2e.json +++ b/e2e/tsconfig.e2e.json @@ -1,5 +1,5 @@ { - "extends": "../tsconfig.json", + "extends": "../tsconfig.base.json", "compilerOptions": { "outDir": "../out-tsc/app", "module": "commonjs", @@ -10,4 +10,4 @@ "node" ] } -} \ No newline at end of file +} diff --git a/gulpfile.js b/gulpfile.js index ea9b61634e..cbac864a61 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -82,6 +82,36 @@ gulp.task('geo:copyAssets', done => { done(); }); +gulp.task('geo:copyNGCC', done => { + gulp + .src('./packages/geo/ngcc.config.js', { + base: './packages/geo/' + }) + .pipe(gulp.dest('./dist/geo')); + + done(); +}); + +gulp.task('context:copyNGCC', done => { + gulp + .src('./packages/context/ngcc.config.js', { + base: './packages/context/' + }) + .pipe(gulp.dest('./dist/context')); + + done(); +}); + +gulp.task('integration:copyNGCC', done => { + gulp + .src('./packages/integration/ngcc.config.js', { + base: './packages/integration/' + }) + .pipe(gulp.dest('./dist/integration')); + + done(); +}); + // ========================================================== gulp.task('core:copyStyles', done => { @@ -120,17 +150,17 @@ gulp.task('core:bundleStyles', done => { .src('.') .pipe( exec( - 'node ./node_modules/scss-bundle/dist/bundle-cli.js -e ./packages/core/src/style/core.theming.scss -d ./dist/core/style/core.theming.scss' + 'node ./node_modules/scss-bundle/dist/cli/main.js -p ./ -e ./packages/core/src/style/core.theming.scss -o ./dist/core/style/core.theming.scss' ) ) .pipe( exec( - 'node ./node_modules/scss-bundle/dist/bundle-cli.js -e ./packages/core/src/style/theming.scss -d ./dist/core/style/theming.scss' + 'node ./node_modules/scss-bundle/dist/cli/main.js -p ./ -e ./packages/core/src/style/theming.scss -o ./dist/core/style/theming.scss' ) ) .pipe( exec( - 'node ./node_modules/scss-bundle/dist/bundle-cli.js -e ./packages/core/src/style/all.theming.scss -d ./dist/core/style/all.theming.scss' + 'node ./node_modules/scss-bundle/dist/cli/main.js -p ./ -e ./packages/core/src/style/all.theming.scss -o ./dist/core/style/all.theming.scss' ) ) .pipe(exec.reporter()); @@ -141,7 +171,7 @@ gulp.task('common:bundleStyles', done => { .src('.') .pipe( exec( - 'node ./node_modules/scss-bundle/dist/bundle-cli.js -e ./packages/common/src/style/common.theming.scss -d ./dist/common/style/common.theming.scss' + 'node ./node_modules/scss-bundle/dist/cli/main.js -p ./ -e ./packages/common/src/style/common.theming.scss -o ./dist/common/style/common.theming.scss' ) ) .pipe(exec.reporter()); @@ -152,7 +182,7 @@ gulp.task('geo:bundleStyles', done => { .src('.') .pipe( exec( - 'node ./node_modules/scss-bundle/dist/bundle-cli.js -e ./packages/geo/src/style/geo.theming.scss -d ./dist/geo/style/geo.theming.scss' + 'node ./node_modules/scss-bundle/dist/cli/main.js -p ./ -e ./packages/geo/src/style/geo.theming.scss -o ./dist/geo/style/geo.theming.scss' ) ) .pipe(exec.reporter()); @@ -228,9 +258,25 @@ gulp.task('core:bundleLocale.en', done => { done(); }); +gulp.task('core:copyBundleLocale', done => { + gulp + .src('./dist/core/locale/*') + .pipe(gulp.dest('./dist/core/__ivy_ngcc__/locale')); + + done(); +}); + +gulp.task('sleep', done => { + setTimeout(() => done(), 1000); +}); + gulp.task( 'core:bundleLocale', - gulp.parallel(['core:bundleLocale.fr', 'core:bundleLocale.en']) + gulp.series( + gulp.parallel(['core:bundleLocale.fr', 'core:bundleLocale.en']), + 'sleep', + 'core:copyBundleLocale' + ) ); // ========================================================== @@ -373,38 +419,40 @@ gulp.task( // ========================================================== -gulp.task('geo:fixOL', done => { +// https://github.com/stylus/stylus/pull/2538 +gulp.task('libs:fixStylus', done => { gulp - .src(['./node_modules/ol/package.json']) + .src(['./node_modules/stylus/lib/nodes/index.js']) .pipe( - jeditor({ - sideEffects: true - }) + replace( + `/** + * Constructors + */`, + `exports.lineno = null; +exports.column = null; +exports.filename = null;` + ) ) - .pipe(gulp.dest('./node_modules/ol/')); + .pipe(gulp.dest('./node_modules/stylus/lib/nodes/')); done(); }); -gulp.task('geo:fixMapbox', done => { +gulp.task('libs:fixOL', done => { gulp - .src( - [ - './node_modules/@mapbox/mapbox-gl-style-spec/deref.js', - './node_modules/ol-mapbox-style/stylefunction.js' - ], - { base: './' } - ) + .src(['./node_modules/ol/package.json']) .pipe( - babel({ - presets: ['@babel/env'] + jeditor({ + sideEffects: true }) ) - .pipe(gulp.dest('.')); + .pipe(gulp.dest('./node_modules/ol/')); done(); }); +gulp.task('fixLibs', gulp.parallel(['libs:fixStylus', 'libs:fixOL'])); + // ========================================================== gulp.task( @@ -444,17 +492,31 @@ gulp.task( 'geo', gulp.series( 'geo:clean', - gulp.parallel(['geo:copyAssets', 'geo:copyStyles', 'geo:copyLocale']), + gulp.parallel([ + 'geo:copyAssets', + 'geo:copyStyles', + 'geo:copyLocale', + 'geo:copyNGCC' + ]), gulp.parallel(['geo:bundleStyles']), 'core:bundleLocale' ) ); -gulp.task('context', gulp.series('context:copyLocale', 'core:bundleLocale')); +gulp.task( + 'context', + gulp.series( + gulp.parallel(['context:copyLocale', 'context:copyNGCC']), + 'core:bundleLocale' + ) +); gulp.task( 'integration', - gulp.series('integration:copyLocale', 'core:bundleLocale') + gulp.series( + gulp.parallel(['integration:copyLocale', 'integration:copyNGCC']), + 'core:bundleLocale' + ) ); gulp.task( diff --git a/package-lock.json b/package-lock.json index b3c8fd5438..6144602456 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,637 +5,676 @@ "requires": true, "dependencies": { "@angular-devkit/architect": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.9.tgz", - "integrity": "sha512-EAFtCs9dsGhpMRC45PoYsrkiExpWz9Ax15qXfzwdDRacz5DmdOVt+QpkLW1beUOwiyj/bhFyj23eaONK2RTn/w==", + "version": "0.1000.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1000.2.tgz", + "integrity": "sha512-n1e/ZdE70C6hDauTWLAiofKDI6m88nhb91Ddqum0eeUh3HL3Ppv/sT9O+UYsab3gIdIOFJwHBpZ96SM/2Ja5NA==", "dev": true, "requires": { - "@angular-devkit/core": "7.3.9", - "rxjs": "6.3.3" + "@angular-devkit/core": "10.0.2", + "rxjs": "6.5.5" }, "dependencies": { "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true } } }, "@angular-devkit/build-angular": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.13.9.tgz", - "integrity": "sha512-onh07LhdxotDFjja0KKsDWNCwgpM/ymuRr5h0e+vT4AgklP2Uioz1CpzVOgxPIKkdVdGR9QgDinVsWAmY90J8g==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.13.9", - "@angular-devkit/build-optimizer": "0.13.9", - "@angular-devkit/build-webpack": "0.13.9", - "@angular-devkit/core": "7.3.9", - "@ngtools/webpack": "7.3.9", - "ajv": "6.9.1", - "autoprefixer": "9.4.6", - "circular-dependency-plugin": "5.0.2", - "clean-css": "4.2.1", - "copy-webpack-plugin": "4.6.0", - "file-loader": "3.0.1", - "glob": "7.1.3", - "istanbul-instrumenter-loader": "3.0.1", - "karma-source-map-support": "1.3.0", - "less": "3.9.0", - "less-loader": "4.1.0", - "license-webpack-plugin": "2.1.0", - "loader-utils": "1.2.3", - "mini-css-extract-plugin": "0.5.0", + "version": "0.1000.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1000.2.tgz", + "integrity": "sha512-Cl7JaXkE1OMpagMwPPNGq7IGy50p2F3R0iZFi38imq661YqH/FFv0SdbMqmpAHaIvvr6E1HJt5ltoLNERQWFjg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1000.2", + "@angular-devkit/build-optimizer": "0.1000.2", + "@angular-devkit/build-webpack": "0.1000.2", + "@angular-devkit/core": "10.0.2", + "@babel/core": "7.9.6", + "@babel/generator": "7.9.6", + "@babel/plugin-transform-runtime": "7.9.6", + "@babel/preset-env": "7.9.6", + "@babel/runtime": "7.9.6", + "@babel/template": "7.8.6", + "@jsdevtools/coverage-istanbul-loader": "3.0.3", + "@ngtools/webpack": "10.0.2", + "ajv": "6.12.2", + "autoprefixer": "9.8.0", + "babel-loader": "8.1.0", + "browserslist": "^4.9.1", + "cacache": "15.0.3", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.0", + "copy-webpack-plugin": "6.0.3", + "core-js": "3.6.4", + "css-loader": "3.5.3", + "cssnano": "4.1.10", + "file-loader": "6.0.0", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "jest-worker": "26.0.0", + "karma-source-map-support": "1.4.0", + "less-loader": "6.1.0", + "license-webpack-plugin": "2.2.0", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "0.9.0", "minimatch": "3.0.4", - "node-sass": "4.12.0", - "open": "6.0.0", + "open": "7.0.4", "parse5": "4.0.0", - "postcss": "7.0.14", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.31", "postcss-import": "12.0.1", "postcss-loader": "3.0.0", - "raw-loader": "1.0.0", - "rxjs": "6.3.3", - "sass-loader": "7.1.0", - "semver": "5.6.0", - "source-map-loader": "0.2.4", - "source-map-support": "0.5.10", - "speed-measure-webpack-plugin": "1.3.1", - "stats-webpack-plugin": "0.7.0", - "style-loader": "0.23.1", - "stylus": "0.54.5", + "raw-loader": "4.0.1", + "regenerator-runtime": "0.13.5", + "resolve-url-loader": "3.1.1", + "rimraf": "3.0.2", + "rollup": "2.10.9", + "rxjs": "6.5.5", + "sass": "1.26.5", + "sass-loader": "8.0.2", + "semver": "7.3.2", + "source-map": "0.7.3", + "source-map-loader": "1.0.0", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "1.2.1", + "stylus": "0.54.7", "stylus-loader": "3.0.2", - "terser-webpack-plugin": "1.2.2", - "tree-kill": "1.2.1", - "webpack": "4.29.0", - "webpack-dev-middleware": "3.5.1", - "webpack-dev-server": "3.1.14", - "webpack-merge": "4.2.1", - "webpack-sources": "1.3.0", - "webpack-subresource-integrity": "1.1.0-rc.6" + "terser": "4.7.0", + "terser-webpack-plugin": "3.0.1", + "tree-kill": "1.2.2", + "webpack": "4.43.0", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.0", + "webpack-merge": "4.2.2", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.4.1", + "worker-plugin": "4.0.3" }, "dependencies": { - "@webassemblyjs/ast": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", - "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", - "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", - "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", - "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", - "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", - "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", - "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", - "dev": true - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", - "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", - "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", - "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", - "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/utf8": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", - "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", - "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/helper-wasm-section": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-opt": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", - "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", - "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", + "@angular-devkit/architect": { + "version": "0.1000.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1000.2.tgz", + "integrity": "sha512-n1e/ZdE70C6hDauTWLAiofKDI6m88nhb91Ddqum0eeUh3HL3Ppv/sT9O+UYsab3gIdIOFJwHBpZ96SM/2Ja5NA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11" + "@angular-devkit/core": "10.0.2", + "rxjs": "6.5.5" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", - "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", + "@angular-devkit/core": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.2.tgz", + "integrity": "sha512-gD8iUP28GscsHqGKKu+NtX97bt7aXDZmIYqWTv4SThrcsPYY2A4tBw+NBbNAwjHkNfn4jflpqTmcN9gBAoLoSg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" + "ajv": "6.12.2", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.5", + "source-map": "0.7.3" } }, - "@webassemblyjs/wast-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", - "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/floating-point-hex-parser": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-code-frame": "1.7.11", - "@webassemblyjs/helper-fsm": "1.7.11", - "@xtuc/long": "4.2.1" + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } } }, - "@webassemblyjs/wast-printer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", - "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11", - "@xtuc/long": "4.2.1" + "@babel/preset-env": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz", + "integrity": "sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.9.6", + "@babel/helper-compilation-targets": "^7.9.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.9.6", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.9.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.9.5", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.9.5", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.9.0", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.9.6", + "@babel/plugin-transform-modules-commonjs": "^7.9.6", + "@babel/plugin-transform-modules-systemjs": "^7.9.6", + "@babel/plugin-transform-modules-umd": "^7.9.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.9.5", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.9.6", + "browserslist": "^4.11.1", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", - "dev": true - }, - "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", - "dev": true - }, "ajv": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", - "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "cacache": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", - "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.3.tgz", + "integrity": "sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==", "dev": true, "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", "glob": "^7.1.4", - "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.4", "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "move-file": "^2.0.0", + "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" } }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "ms": "^2.1.1" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { - "yallist": "^3.0.2" + "minimist": "^1.2.5" } }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "p-locate": "^4.1.0" } }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "p-try": "^2.0.0" + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, "parse5": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", "dev": true }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { - "find-up": "^3.0.0" + "find-up": "^4.0.0" } }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "glob": "^7.1.3" } }, "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" } }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1" + "minipass": "^3.1.1" } }, "terser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", - "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz", + "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==", "dev": true, "requires": { - "commander": "^2.19.0", + "commander": "^2.20.0", "source-map": "~0.6.1", - "source-map-support": "~0.5.10" + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "terser-webpack-plugin": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz", - "integrity": "sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.0.1.tgz", + "integrity": "sha512-eFDtq8qPUEa9hXcUzTwKXTnugIVtlqc1Z/ZVhG8LmRT3lgRY13+pQTnFLY2N7ATB6TKCHuW/IGjoAnZz9wOIqw==", "dev": true, "requires": { - "cacache": "^11.0.2", - "find-cache-dir": "^2.0.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.4.0", + "cacache": "^15.0.3", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.0.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^3.0.0", "source-map": "^0.6.1", - "terser": "^3.16.1", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" + "terser": "^4.6.13", + "webpack-sources": "^1.4.3" }, "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "webpack": { - "version": "4.29.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.0.tgz", - "integrity": "sha512-pxdGG0keDBtamE1mNvT5zyBdx+7wkh6mh7uzMOo/uRQ/fhsdj5FXkh/j5mapzs060forql1oXqXN9HJGju+y7w==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/wasm-edit": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "acorn": "^6.0.5", - "acorn-dynamic-import": "^4.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "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", - "schema-utils": "^0.4.4", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true } } }, "@angular-devkit/build-ng-packagr": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-ng-packagr/-/build-ng-packagr-0.13.9.tgz", - "integrity": "sha512-hWneqiiKJred4r3wKHsHBMIKh/tjbHKy2zNTyvEKl5jcgGGDUlp51YjnUtkFeRWM8E6WUOyIHcoCNdFvwFSRDQ==", + "version": "0.1000.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-ng-packagr/-/build-ng-packagr-0.1000.2.tgz", + "integrity": "sha512-OHK7hwAJ6G+cHkhnBKaxudVJYDyJdN7Z23ffhfgyWoyDFYBfz46LpIFBPE6fYpCgs0S4WVokJw7z0gAqVfATtA==", "dev": true, "requires": { - "@angular-devkit/architect": "0.13.9", - "@angular-devkit/core": "7.3.9", - "rxjs": "6.3.3", - "semver": "5.6.0" + "@angular-devkit/architect": "0.1000.2", + "rxjs": "6.5.5" }, "dependencies": { "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true } } }, "@angular-devkit/build-optimizer": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.13.9.tgz", - "integrity": "sha512-GQtCntthQHSBv5l1ZY5p00JOECb/WcE1qUBo5kFjp84z0fszDkhOy52M1kcWCX4PFzJaY4DKk58hbUE/2UN0jw==", + "version": "0.1000.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1000.2.tgz", + "integrity": "sha512-wbrgJQw92+A7kFaG7U0F9MMzhVI32tcIdr26+SFXWGAeBaWIkBfMs/jfGLlEYESLqQQF5oMn7LJBwXu+nkPHvw==", "dev": true, "requires": { - "loader-utils": "1.2.3", - "source-map": "0.5.6", - "typescript": "3.2.4", - "webpack-sources": "1.3.0" + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.0.0", + "webpack-sources": "1.4.3" }, "dependencies": { + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true } } }, "@angular-devkit/build-webpack": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.13.9.tgz", - "integrity": "sha512-6ypu6pzNmQxzATF4rTWEhGSl5hyGQ8a/3aCZF/ux+XGc3d4hi2HW+NWlDm1UEna6ZjNtgEPlgfP4q8BKrjRmfA==", + "version": "0.1000.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1000.2.tgz", + "integrity": "sha512-x1fHnZFTwvAE3lB6XnlJmf0KNiiAsZKGdUuTXqzgsgh34A/aFOWtu0EB6cw6lvifMj1ioDT8Zjp8N89Lh5AtEA==", "dev": true, "requires": { - "@angular-devkit/architect": "0.13.9", - "@angular-devkit/core": "7.3.9", - "rxjs": "6.3.3" + "@angular-devkit/architect": "0.1000.2", + "@angular-devkit/core": "10.0.2", + "rxjs": "6.5.5" }, "dependencies": { + "@angular-devkit/architect": { + "version": "0.1000.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1000.2.tgz", + "integrity": "sha512-n1e/ZdE70C6hDauTWLAiofKDI6m88nhb91Ddqum0eeUh3HL3Ppv/sT9O+UYsab3gIdIOFJwHBpZ96SM/2Ja5NA==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.0.2", + "rxjs": "6.5.5" + } + }, + "@angular-devkit/core": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.2.tgz", + "integrity": "sha512-gD8iUP28GscsHqGKKu+NtX97bt7aXDZmIYqWTv4SThrcsPYY2A4tBw+NBbNAwjHkNfn4jflpqTmcN9gBAoLoSg==", + "dev": true, + "requires": { + "ajv": "6.12.2", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.5", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true } } }, "@angular-devkit/core": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz", - "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.2.tgz", + "integrity": "sha512-gD8iUP28GscsHqGKKu+NtX97bt7aXDZmIYqWTv4SThrcsPYY2A4tBw+NBbNAwjHkNfn4jflpqTmcN9gBAoLoSg==", "dev": true, "requires": { - "ajv": "6.9.1", - "chokidar": "2.0.4", - "fast-json-stable-stringify": "2.0.0", - "rxjs": "6.3.3", + "ajv": "6.12.2", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.5", "source-map": "0.7.3" }, "dependencies": { "ajv": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", - "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -646,395 +685,498 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true } } }, "@angular-devkit/schematics": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.3.9.tgz", - "integrity": "sha512-xzROGCYp7aQbeJ3V6YC0MND7wKEAdWqmm/GaCufEk0dDS8ZGe0sQhcM2oBRa2nQqGQNeThFIH51kx+FayrJP0w==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.0.2.tgz", + "integrity": "sha512-BUUWAreHoxk4Z91Xhr+wtFUhK6+7AOczsIxlZmJnQwSUhN2ZdiDjOXeO3NFkDdL8CtNOz5khGu2iNBqn08FpUw==", "dev": true, "requires": { - "@angular-devkit/core": "7.3.9", - "rxjs": "6.3.3" + "@angular-devkit/core": "10.0.2", + "ora": "4.0.4", + "rxjs": "6.5.5" }, "dependencies": { + "@angular-devkit/core": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.2.tgz", + "integrity": "sha512-gD8iUP28GscsHqGKKu+NtX97bt7aXDZmIYqWTv4SThrcsPYY2A4tBw+NBbNAwjHkNfn4jflpqTmcN9gBAoLoSg==", + "dev": true, + "requires": { + "ajv": "6.12.2", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.5", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true } } }, "@angular/animations": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.15.tgz", - "integrity": "sha512-8oBt3HLgd2+kyJHUgsd7OzKCCss67t2sch15XNoIWlOLfxclqU+EfFE6t/vCzpT8/+lpZS6LU9ZrTnb+UBj5jg==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-10.0.3.tgz", + "integrity": "sha512-s7hob0TmSRqsgEWdB0EYsKY8eF8iD6Sj44XntecAhEc/IxVQGIIZiNwGvW43Lb8iEdbvdF+GJfgxu5I8ZWMX3Q==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" } }, "@angular/cdk": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-7.3.7.tgz", - "integrity": "sha512-xbXxhHHKGkVuW6K7pzPmvpJXIwpl0ykBnvA2g+/7Sgy5Pd35wCC+UtHD9RYczDM/mkygNxMQtagyCErwFnDtQA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-10.0.1.tgz", + "integrity": "sha512-tEgaTDQplptbOf4cHHdVScH0h5QNvkWDhabAWpWaT4/dVXEsp+p2E9Pzkemesi/gNmUIetVjGaicX5VqsijZSQ==", "requires": { "parse5": "^5.0.0", - "tslib": "^1.7.1" + "tslib": "^2.0.0" } }, "@angular/cli": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.3.9.tgz", - "integrity": "sha512-7oJj7CKDlFUbQav1x1CV4xKKcbt0pnxY4unKcm7Q1tVXhu8bU2bc3cDA0aJnbofcYb6TJcd/C2qHgCt78q7edA==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.0.2.tgz", + "integrity": "sha512-L/uLUrZNIwbYzIeU9R3SC2hblDgtxP57msmRjoOQBpSzwlOME+z0wlCXPv+h9NOzNPvVVbEtLtjBgZxUw0IHzg==", "dev": true, "requires": { - "@angular-devkit/architect": "0.13.9", - "@angular-devkit/core": "7.3.9", - "@angular-devkit/schematics": "7.3.9", - "@schematics/angular": "7.3.9", - "@schematics/update": "0.13.9", + "@angular-devkit/architect": "0.1000.2", + "@angular-devkit/core": "10.0.2", + "@angular-devkit/schematics": "10.0.2", + "@schematics/angular": "10.0.2", + "@schematics/update": "0.1000.2", "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.1.1", "ini": "1.3.5", - "inquirer": "6.2.1", - "npm-package-arg": "6.1.0", - "open": "6.0.0", - "pacote": "9.4.0", - "semver": "5.6.0", - "symbol-observable": "1.2.0" - } - }, - "@angular/common": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.2.15.tgz", - "integrity": "sha512-2b5JY2HWVHCf3D1GZjmde7jdAXSTXkYtmjLtA9tQkjOOTr80eHpNSujQqnzb97dk9VT9OjfjqTQd7K3pxZz8jw==", - "requires": { - "tslib": "^1.9.0" - } - }, - "@angular/compiler": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.15.tgz", - "integrity": "sha512-5yb4NcLk8GuXkYf7Dcor4XkGueYp4dgihzDmMjYDUrV0NPhubKlr+SwGtLOtzgRBWJ1I2bO0S3zwa0q0OgIPOw==", - "requires": { - "tslib": "^1.9.0" - } - }, - "@angular/compiler-cli": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.15.tgz", - "integrity": "sha512-+AsfyKawmj/sa+m4Pz8VSRFbCfx/3IOjAuuEjhopbyr154YpPDSu8NTbcwzq3yfbVcPwK4/4exmbQzpsndaCTg==", - "dev": true, - "requires": { - "canonical-path": "1.0.0", - "chokidar": "^2.1.1", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.7.2", - "magic-string": "^0.25.0", - "minimist": "^1.2.0", - "reflect-metadata": "^0.1.2", - "shelljs": "^0.8.1", - "source-map": "^0.6.1", - "tslib": "^1.9.0", - "yargs": "9.0.1" + "inquirer": "7.1.0", + "npm-package-arg": "8.0.1", + "npm-pick-manifest": "6.1.0", + "open": "7.0.4", + "pacote": "9.5.12", + "read-package-tree": "5.3.1", + "rimraf": "3.0.2", + "semver": "7.3.2", + "symbol-observable": "1.2.0", + "universal-analytics": "0.4.20", + "uuid": "8.1.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "@angular-devkit/architect": { + "version": "0.1000.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1000.2.tgz", + "integrity": "sha512-n1e/ZdE70C6hDauTWLAiofKDI6m88nhb91Ddqum0eeUh3HL3Ppv/sT9O+UYsab3gIdIOFJwHBpZ96SM/2Ja5NA==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.0.2", + "rxjs": "6.5.5" + } }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "@angular-devkit/core": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.2.tgz", + "integrity": "sha512-gD8iUP28GscsHqGKKu+NtX97bt7aXDZmIYqWTv4SThrcsPYY2A4tBw+NBbNAwjHkNfn4jflpqTmcN9gBAoLoSg==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "ajv": "6.12.2", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.5", + "source-map": "0.7.3" } }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "ms": "^2.1.1" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "glob": "^7.1.3" } }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "tslib": "^1.9.0" } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "uuid": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz", + "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==", + "dev": true + } + } + }, + "@angular/common": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-10.0.3.tgz", + "integrity": "sha512-R2q/Vt07PHgcmvZBVGcYjf6K2xERCHWUYQYN1HsgjVQUu5ypvE7Kqs+6s0BfIoBKc+ejKmjMHHumnm+89O+gXg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-10.0.3.tgz", + "integrity": "sha512-SmzMYxBprs8bVS9WctiCDj6KVp3jZFEaxGTbC/FwtdvesMIdOktpHggUeJW+OzUTwTnYVmKrm6d8rdg3QSaXFQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler-cli": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-10.0.3.tgz", + "integrity": "sha512-XK2xQX0RLr7QMkEseDhcdqZ2hMM5n1Q6LFvOJfxQXXBpa7DBC9mB6HLsn0vrLgwaAfz+SEQ7pLDgXQSy2tmJUg==", + "dev": true, + "requires": { + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "15.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { - "pify": "^2.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "color-name": "~1.1.4" } }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "p-locate": "^4.1.0" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "p-limit": "^2.2.0" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } }, "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz", + "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==", "dev": true, "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" + "y18n": "^4.0.0", + "yargs-parser": "^18.1.0" } }, "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, "@angular/core": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.2.15.tgz", - "integrity": "sha512-XsuYm0jEU/mOqwDOk2utThv8J9kESkAerfuCHClE9rB2TtHUOGCfekF7lJWqjjypu6/J9ygoPFo7hdAE058ZGg==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-10.0.3.tgz", + "integrity": "sha512-EfWAz5StlPYo2ZtvVzeoNlGrFAXRncwGd/CExbLFOZx4HcDXVkATw5d4vnKHmmKacDqnbuvMD2M0Tl0EJi5q4g==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" } }, "@angular/forms": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.2.15.tgz", - "integrity": "sha512-p0kcIQLtBBC1qeTA6M3nOuXf/k91E80FKquVM9zEsO2kDjI0oZJVfFYL2UMov5samlJOPN+t6lRHEIUa7ApPsw==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.0.3.tgz", + "integrity": "sha512-08XlERBGVnzea4sVY7J1JsU6zX/ENGZGB9V4K1jpX6gNjlAk2AbskC76+ngdsgdzv0neNEqPoLdMAZerNECnUg==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" } }, "@angular/material": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-7.3.7.tgz", - "integrity": "sha512-Eq+7frkeNGkLOfEtmkmJgR+AgoWajOipXZWWfCSamNfpCcPof82DwvGOpAmgGni9FuN2XFQdqP5MoaffQzIvUA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-10.0.1.tgz", + "integrity": "sha512-4xGIupOiPbyYG/tTbVhgjATRZSRf+Xj2FGkX3csSlIOvhrFtN1B9gTlcbOjzWHPpWTFChZALzMXA/841KA9QqA==", "requires": { - "tslib": "^1.7.1" + "tslib": "^2.0.0" } }, "@angular/platform-browser": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.15.tgz", - "integrity": "sha512-aYgmPsbC9Tvp9vmKWD8voeAp4crwCay7/D6lM3ClEe2EeK934LuEXq3/uczMrFVbnIX7BBIo8fh03Tl7wbiGPw==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.0.3.tgz", + "integrity": "sha512-f6JsFMunJNn7fPtwwWbZsXZ/JFA5RlwbyHKKkLAPMLLJwabOcSh/bUpPWKoRMHpUxr53PGEX4XY6QNPJXrUaag==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" } }, "@angular/platform-browser-dynamic": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.15.tgz", - "integrity": "sha512-UL2PqhzXMD769NQ6Lh6pxlBDKvN9Qol3XLRFil80lwJ1GRW16ITeYbCamcafIH2GOyd88IhmYcbMfUQ/6q4MMQ==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.0.3.tgz", + "integrity": "sha512-ASZWymDVCgmDe0XE1djGKrfJnUR65PdfoZ51CQ7xSVJTnXp6kCAXzFeG2IyqU+O7IXvQRgvb4GOA4Y6GScNVKw==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" } }, "@angular/router": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.2.15.tgz", - "integrity": "sha512-qAubRJRQanguUqJQ76J9GSZ4JFtoyhJKRmX5P23ANZJXpB6YLzF2fJmOGi+E6cV8F0tKBMEq1pjxFTisx0MXwQ==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-10.0.3.tgz", + "integrity": "sha512-WMNJ4yS3xvgOPa73hKQNHoTCT2l+bvompxdqZSqN7dh92QtPJBXCm+qBC2jRDj4wgP7Eq5dgymh7a/dZqseFEQ==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" } }, "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.4.tgz", + "integrity": "sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" } }, "@babel/core": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", - "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.4.tgz", + "integrity": "sha512-3A0tS0HWpy4XujGc7QtOIHTeNwUgWaZc/WuS5YQrfhU67jnVmsD6OGPc1AKHH0LJHQICGncy3+YUjIhVlfDdcA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "json5": "^2.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", @@ -1042,89 +1184,26 @@ }, "dependencies": { "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", + "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", "dev": true, "requires": { - "@babel/types": "^7.7.4", + "@babel/types": "^7.10.4", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" } }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "debug": { @@ -1136,33 +1215,15 @@ "ms": "^2.1.1" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1174,33 +1235,21 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true } } }, "@babel/generator": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.2.tgz", - "integrity": "sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", "dev": true, "requires": { - "@babel/types": "^7.7.2", + "@babel/types": "^7.9.6", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" }, "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -1210,1992 +1259,1010 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", - "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/types": "^7.10.4" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz", - "integrity": "sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" } }, - "@babel/helper-call-delegate": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz", - "integrity": "sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA==", + "@babel/helper-compilation-targets": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", + "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/compat-data": "^7.10.4", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.4.tgz", + "integrity": "sha512-9raUiOsXPxzzLjCXeosApJItoMnX3uyT4QdM2UldffuGApNrF8e938MwNpDCK9CPoyxrEoCgT+hObJc3mZa6lQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz", - "integrity": "sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", "dev": true, "requires": { - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" - } - }, - "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", - "dev": true - }, - "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - } + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" } }, "@babel/helper-define-map": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz", - "integrity": "sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz", + "integrity": "sha512-nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.4", "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } } }, "@babel/helper-explode-assignable-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz", - "integrity": "sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", "dev": true, "requires": { - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true } } }, - "@babel/helper-function-name": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", - "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0" - } - }, "@babel/helper-get-function-arity": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", - "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-hoist-variables": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz", - "integrity": "sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz", - "integrity": "sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz", + "integrity": "sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/types": "^7.10.4" } }, "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/types": "^7.10.4" } }, "@babel/helper-module-transforms": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz", - "integrity": "sha512-ehGBu4mXrhs0FxAqN8tWkzF8GSIGAiEumu4ONZ/hD9M88uHcD+Yu2ttKfOCgwzoesJOJrtQh7trI5YPbRtMmnA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz", + "integrity": "sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-simple-access": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4", "lodash": "^4.17.13" }, "dependencies": { - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true } } }, "@babel/helper-optimise-call-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz", - "integrity": "sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-regex": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", - "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.4.tgz", + "integrity": "sha512-inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ==", "dev": true, "requires": { "lodash": "^4.17.13" } }, "@babel/helper-remap-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz", - "integrity": "sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-wrap-function": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true } } }, "@babel/helper-replace-supers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz", - "integrity": "sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-simple-access": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz", - "integrity": "sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true } } }, "@babel/helper-split-export-declaration": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", - "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" } }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, "@babel/helper-wrap-function": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz", - "integrity": "sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true } } }, "@babel/helpers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", - "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { - "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "ms": "^2.1.1" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true } } }, "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" - }, - "dependencies": { - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - } } }, "@babel/parser": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.3.tgz", - "integrity": "sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", + "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz", - "integrity": "sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.4.tgz", + "integrity": "sha512-MJbxGSmejEFVOANAezdO39SObkURO5o/8b6fSH6D1pi9RZQt+ldppKPXfqgUWpSQ9asM6xaSaSJIaeWMDRP0Zg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4", - "@babel/plugin-syntax-async-generators": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz", - "integrity": "sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz", - "integrity": "sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", + "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", + "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", + "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz", + "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", + "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz", - "integrity": "sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-async-generators": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz", - "integrity": "sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz", - "integrity": "sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz", - "integrity": "sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz", - "integrity": "sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz", - "integrity": "sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz", - "integrity": "sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4" + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz", - "integrity": "sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz", - "integrity": "sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.4.tgz", + "integrity": "sha512-J3b5CluMg3hPUii2onJDRiaVbPtKFPLEaV5dOPY5OeAbDi1iU/UbbFFTgwb7WnanaDy7bjU35kc26W3eM5Qa0A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-plugin-utils": "^7.10.4", "lodash": "^4.17.13" } }, "@babel/plugin-transform-classes": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz", - "integrity": "sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-define-map": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", "globals": "^11.1.0" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } } }, "@babel/plugin-transform-computed-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz", - "integrity": "sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-destructuring": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz", - "integrity": "sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz", - "integrity": "sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz", - "integrity": "sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz", - "integrity": "sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-for-of": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz", - "integrity": "sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz", - "integrity": "sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz", - "integrity": "sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz", - "integrity": "sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz", - "integrity": "sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.4.tgz", + "integrity": "sha512-3Fw+H3WLUrTlzi3zMiZWp3AR4xadAEMv6XRCYnd5jAlLM61Rn+CRJaZMaNvIpcJpQ3vs1kyifYvEVPFfoSkKOA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz", - "integrity": "sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.7.4", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz", - "integrity": "sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.4.tgz", + "integrity": "sha512-Tb28LlfxrTiOTGtZFsvkjpyjCl9IoaRI52AEU/VIwOwvDQWtbNJsAqTXzh+5R7i74e/OZHH2c2w2fsOqAfnQYQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz", - "integrity": "sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz", - "integrity": "sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4" + "@babel/helper-create-regexp-features-plugin": "^7.10.4" } }, "@babel/plugin-transform-new-target": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz", - "integrity": "sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-object-super": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz", - "integrity": "sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" } }, "@babel/plugin-transform-parameters": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz", - "integrity": "sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz", + "integrity": "sha512-RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.7.4", - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" - }, - "dependencies": { - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-property-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz", - "integrity": "sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-regenerator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz", - "integrity": "sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", "dev": true, "requires": { - "regenerator-transform": "^0.14.0" + "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz", - "integrity": "sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.6.tgz", + "integrity": "sha512-qcmiECD0mYOjOIt8YHNsAP1SxPooC/rDmfmiSK9BNY72EitdSc7l44WTEklaWuFtbOEBjNhWWyph/kOImbNJ4w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "resolve": "^1.8.1", + "semver": "^5.5.1" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz", - "integrity": "sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz", - "integrity": "sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", + "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz", - "integrity": "sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" } }, "@babel/plugin-transform-template-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz", - "integrity": "sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.4.tgz", + "integrity": "sha512-4NErciJkAYe+xI5cqfS8pV/0ntlY5N5Ske/4ImxAVX7mk9Rxt2bwDTGv1Msc2BRJvWQcmYEC+yoMLdX22aE4VQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz", - "integrity": "sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", + "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz", - "integrity": "sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/preset-env": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.4.tgz", - "integrity": "sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz", + "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.4", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.10.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.10.4", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.10.4", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.10.4", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.7.4", - "@babel/plugin-proposal-dynamic-import": "^7.7.4", - "@babel/plugin-proposal-json-strings": "^7.7.4", - "@babel/plugin-proposal-object-rest-spread": "^7.7.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.7.4", - "@babel/plugin-syntax-async-generators": "^7.7.4", - "@babel/plugin-syntax-dynamic-import": "^7.7.4", - "@babel/plugin-syntax-json-strings": "^7.7.4", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4", - "@babel/plugin-syntax-top-level-await": "^7.7.4", - "@babel/plugin-transform-arrow-functions": "^7.7.4", - "@babel/plugin-transform-async-to-generator": "^7.7.4", - "@babel/plugin-transform-block-scoped-functions": "^7.7.4", - "@babel/plugin-transform-block-scoping": "^7.7.4", - "@babel/plugin-transform-classes": "^7.7.4", - "@babel/plugin-transform-computed-properties": "^7.7.4", - "@babel/plugin-transform-destructuring": "^7.7.4", - "@babel/plugin-transform-dotall-regex": "^7.7.4", - "@babel/plugin-transform-duplicate-keys": "^7.7.4", - "@babel/plugin-transform-exponentiation-operator": "^7.7.4", - "@babel/plugin-transform-for-of": "^7.7.4", - "@babel/plugin-transform-function-name": "^7.7.4", - "@babel/plugin-transform-literals": "^7.7.4", - "@babel/plugin-transform-member-expression-literals": "^7.7.4", - "@babel/plugin-transform-modules-amd": "^7.7.4", - "@babel/plugin-transform-modules-commonjs": "^7.7.4", - "@babel/plugin-transform-modules-systemjs": "^7.7.4", - "@babel/plugin-transform-modules-umd": "^7.7.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", - "@babel/plugin-transform-new-target": "^7.7.4", - "@babel/plugin-transform-object-super": "^7.7.4", - "@babel/plugin-transform-parameters": "^7.7.4", - "@babel/plugin-transform-property-literals": "^7.7.4", - "@babel/plugin-transform-regenerator": "^7.7.4", - "@babel/plugin-transform-reserved-words": "^7.7.4", - "@babel/plugin-transform-shorthand-properties": "^7.7.4", - "@babel/plugin-transform-spread": "^7.7.4", - "@babel/plugin-transform-sticky-regex": "^7.7.4", - "@babel/plugin-transform-template-literals": "^7.7.4", - "@babel/plugin-transform-typeof-symbol": "^7.7.4", - "@babel/plugin-transform-unicode-regex": "^7.7.4", - "@babel/types": "^7.7.4", - "browserslist": "^4.6.0", - "core-js-compat": "^3.1.1", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.5.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" } }, "@babel/runtime": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.2.tgz", - "integrity": "sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.2" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", - "dev": true - } + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.4.tgz", + "integrity": "sha512-BFlgP2SoLO9HJX9WBwN67gHWMBhDX/eDz64Jajd6mR/UAUzqrNMm99d4qHnVaKscAElZoFiPv+JpR/Siud5lXw==", + "dev": true, + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.2.tgz", - "integrity": "sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz", + "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.2", - "@babel/helper-function-name": "^7.7.0", - "@babel/helper-split-export-declaration": "^7.7.0", - "@babel/parser": "^7.7.2", - "@babel/types": "^7.7.2", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { + "@babel/generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", + "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -3205,37 +2272,29 @@ "ms": "^2.1.1" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true } } }, "@babel/types": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.2.tgz", - "integrity": "sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", + "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } } }, "@compodoc/compodoc": { @@ -3277,172 +2336,58 @@ "uuid": "^3.3.3" }, "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", "dev": true }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" + "minimist": "^1.2.5" } }, - "commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + } + } + }, + "@compodoc/ngd-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.0.0.tgz", + "integrity": "sha512-6HpYvXRZBdIYFojWxW5EVNkhYPmblytCve62CNoYBSWfy++vTGH7Ypg2Bhjg2CsqeV8JOVxrPO7JM9M3MgWKEA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "fancy-log": "^1.3.2", + "typescript": "^2.4.2" + }, + "dependencies": { + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", - "dev": true, - "optional": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", - "dev": true, - "requires": { - "picomatch": "^2.0.4" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "@compodoc/ngd-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.0.0.tgz", - "integrity": "sha512-6HpYvXRZBdIYFojWxW5EVNkhYPmblytCve62CNoYBSWfy++vTGH7Ypg2Bhjg2CsqeV8JOVxrPO7JM9M3MgWKEA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "fancy-log": "^1.3.2", - "typescript": "^2.4.2" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" + "ansi-wrap": "^0.1.0" } }, "typescript": { @@ -3463,19 +2408,6 @@ "dot": "^1.1.1", "fs-extra": "^4.0.1", "viz.js": "^1.8.0" - }, - "dependencies": { - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } } }, "@dsherret/to-absolute-glob": { @@ -3489,106 +2421,148 @@ } }, "@hapi/address": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.2.tgz", - "integrity": "sha512-O4QDrx+JoGKZc6aN64L04vqa7e41tIiLU+OvKdcYaEMP97UttL0f9GIi9/0A4WAMx0uBd6SidDIhktZhgOcN8Q==", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", + "@hapi/formula": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==", "dev": true }, "@hapi/hoek": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.0.tgz", - "integrity": "sha512-7XYT10CZfPsH7j9F1Jmg1+d0ezOux2oM2GfArAzLwWe4mE2Dr3hVjsAL6+TFY49RRJlCdJDMw3nJsLFroTc8Kw==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", + "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==", "dev": true }, "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", - "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", "dev": true, "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" + "@hapi/address": "^4.0.1", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" } }, + "@hapi/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==", + "dev": true + }, "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", "dev": true, "requires": { - "@hapi/hoek": "^8.3.0" + "@hapi/hoek": "^9.0.0" } }, "@ionic-native/core": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.16.0.tgz", - "integrity": "sha512-eSneljn24ZCeDssoAusvEP7y7CjIw9pfH1ahtL7Q+gyMZzmFsU6R2RJ6QLmRqjxNO/6EqfjxsSEJ7JZO3qxvSQ==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.27.0.tgz", + "integrity": "sha512-qJcZJtXaXUpwKTMzLc6tGitHJVYQCcSlx2XNQUiKyck47g98Xxo8D0zgHoRiCQvApOqw1iEKzh6xs5PLkmcXqw==", "requires": { "@types/cordova": "^0.0.34" } }, "@ionic-native/file": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@ionic-native/file/-/file-5.26.0.tgz", - "integrity": "sha512-sJONMhwEpZtONU59m0Rs6PmzD+C3lcaZkc7TryAXgF+9F6XUjhZu6efis3qzgxWHTMXNr7vBdrzfLAQB5bCGMA==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@ionic-native/file/-/file-5.27.0.tgz", + "integrity": "sha512-ukgXVUXLQS9T3+P+iTxhzF5s5iJPHnnPiPja5TJLDWX8eAc7eUuqEoKAISIU/VjgGz/2ACOGhvhNn7sqpVX5Rg==", "requires": { "@types/cordova": "^0.0.34" - }, - "dependencies": { - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - } } }, "@ionic-native/file-opener": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@ionic-native/file-opener/-/file-opener-5.26.0.tgz", - "integrity": "sha512-X9pnrLg7NiiKSvz4d6U06EnGWONnmLljvYdc3rHTf2Kt3kD/ONQANshDlngX3HNA04Ziecbkx9bY00rtIB9UjA==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@ionic-native/file-opener/-/file-opener-5.27.0.tgz", + "integrity": "sha512-HEjfSx6kPdK+fXB82JbTuwrYK4uJRG1qq9A+r4SMyHvw5hNnxk+5vqNer6zY1w4M4aU4GIwn7NzeOVRSut0Xdw==", "requires": { "@types/cordova": "^0.0.34" - }, - "dependencies": { - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - } } }, "@ionic-native/network": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@ionic-native/network/-/network-5.16.0.tgz", - "integrity": "sha512-R4Zgrtv9+pI9hqQt3x+4lv8/EtwPUkAnPLhhL/SguQGM3MNtkymfP9PmJk6quA1yz3equHzFZ1ha7QxpqkQfpA==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@ionic-native/network/-/network-5.27.0.tgz", + "integrity": "sha512-aS3noiqL/2GjWsgCS44OyZq6qmIt2fDk8mwJ+uyrz8ES4Fdk0zWxdxFpDB5LVxaY1IiXiGcj7bOW3aG6WzPeHg==", "requires": { "@types/cordova": "^0.0.34" } }, "@ionic/angular": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-4.11.4.tgz", - "integrity": "sha512-NVyWFhMTQODh7CTNirDH7cHWD6xqabFSGoSF1LLEWB7VOO8ZriQujNbtfpp7EfT9Av6fa1Up9pSGq73vf6CW4Q==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-5.2.3.tgz", + "integrity": "sha512-s1qCmaOSBOXUe+2YyUKd7ynoSzAA9C35KyWa4X5JRhbLraVHHvOXMSyo5ckKm3ZSEkOvSDorg3wIbdVC/R3oRw==", "requires": { - "@ionic/core": "4.11.4", + "@ionic/core": "5.2.3", "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } } }, "@ionic/core": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-4.11.4.tgz", - "integrity": "sha512-g3UbS52eW5/bVvxk8Rj0TCvo8reJV54rw2FoxwVpKA+COTeNW3sAytdy+fJyAXmj/w3/5XipkvWXRxHdcvFnWw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.2.3.tgz", + "integrity": "sha512-EUGicoQfWZV9//sstNkssFxvSaM7zXIG2EbOZVKX+2l7sWkUC39lO9CBZoMyafSppEZT1hMsY1R3coVkGQefEg==", "requires": { - "ionicons": "^4.6.3", + "ionicons": "^5.1.2", "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.3.tgz", + "integrity": "sha512-TAdNkeGB5Fe4Og+ZkAr1Kvn9by2sfL44IAHFtxlh1BA1XJ5cLpO9iSNki5opWESv3l3vSHsZ9BNKuqFKbEbFaA==", + "dev": true, + "requires": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.1", + "loader-utils": "^1.4.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.6.4" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } } }, "@mapbox/jsonlint-lines-primitives": { @@ -3597,36 +2571,39 @@ "integrity": "sha1-zlblOfg1UrWNENZy6k1vya3HsjQ=" }, "@mapbox/mapbox-gl-style-spec": { - "version": "13.9.1", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-style-spec/-/mapbox-gl-style-spec-13.9.1.tgz", - "integrity": "sha512-7sOXtrliGz3LAErjJc0q1MtYGcmgwwE1G/PzoTrhvSQTcexSVz+v88QKZ4lAzvhF36ItxzI/UdFilsssAw6hYQ==", + "version": "13.16.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-style-spec/-/mapbox-gl-style-spec-13.16.0.tgz", + "integrity": "sha512-HtQCLg8NLgnYI0uOSbMNtTcwiCJc9WR5uZekhFaXbyjUWwZVNMW7ElKrDLYkaZ4lvUvbqjotyvZC2Holn/yhpg==", "requires": { "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/point-geometry": "^0.1.0", "@mapbox/unitbezier": "^0.0.0", "csscolorparser": "~1.0.2", "json-stringify-pretty-compact": "^2.0.0", - "minimist": "0.0.8", + "minimist": "^1.2.5", "rw": "^1.3.3", "sort-object": "^0.3.2" } }, + "@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI=" + }, "@mapbox/unitbezier": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", "integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4=" }, "@mat-datetimepicker/core": { - "version": "3.0.0-beta.0", - "resolved": "https://registry.npmjs.org/@mat-datetimepicker/core/-/core-3.0.0-beta.0.tgz", - "integrity": "sha512-bsEziG0qmzVmg5PoBYqdaoUm58M1m6Qf0JIS0xHMFkvuRtLKJsA4G1LJ9Up5ZruKMW1rmtE3wuBeZmyln4vsQQ==", - "requires": { - "tslib": "^1.9.0" - } + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@mat-datetimepicker/core/-/core-4.1.0.tgz", + "integrity": "sha512-Eqy2vuhgTY+BeqjOiXBBmbGPRC4HTa4nBSo9NcyZ8Z0MoaKo9YCbqC4CNCEPYqRbJeDUeBwfejnHR94eVMB2cw==" }, "@mdi/angular-material": { - "version": "4.7.95", - "resolved": "https://registry.npmjs.org/@mdi/angular-material/-/angular-material-4.7.95.tgz", - "integrity": "sha512-k+1dd0wXTUY95IrNpXgiY7HCx7zIeUrpTw3sLg0j61H5t+xVPC+Z/X8lFlDpaJm7CVULEW49wq9pq/MMWl6Ygw==" + "version": "5.3.45", + "resolved": "https://registry.npmjs.org/@mdi/angular-material/-/angular-material-5.3.45.tgz", + "integrity": "sha512-B19JnIu/dblXuq97EgvgItp1PjvUHZfg1yJoVAkNGlQv3Id+v5PR19awz9PCmcCGpc5AhMlRY0ERVnQJt5UjIw==" }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", @@ -3638,126 +2615,370 @@ "glob-to-regexp": "^0.3.0" } }, - "@ngtools/json-schema": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.1.0.tgz", - "integrity": "sha1-w6DFRNYjkqzCgTpCyKDcb1j4aSI=", - "dev": true - }, "@ngtools/webpack": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.3.9.tgz", - "integrity": "sha512-+ROpqfCXLdQwfP+UNDLk4p959ZrocpStkdd2Iy9CeOJ8yDkityqpstTwQC3oHzzu/95BiyZ0hrHbM6AsPPIvJg==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-10.0.2.tgz", + "integrity": "sha512-Py8jkc6UIHtp5TKKAMkNiKhx0goL+d7RkQEBWIvO+9e5fBGIt0Npy3dBoJ9gRldaGIjLZWlHhGsgeaYbq5dlvA==", "dev": true, "requires": { - "@angular-devkit/core": "7.3.9", - "enhanced-resolve": "4.1.0", - "rxjs": "6.3.3", - "tree-kill": "1.2.1", - "webpack-sources": "1.3.0" + "@angular-devkit/core": "10.0.2", + "enhanced-resolve": "4.1.1", + "rxjs": "6.5.5", + "webpack-sources": "1.4.3" }, "dependencies": { + "@angular-devkit/core": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.2.tgz", + "integrity": "sha512-gD8iUP28GscsHqGKKu+NtX97bt7aXDZmIYqWTv4SThrcsPYY2A4tBw+NBbNAwjHkNfn4jflpqTmcN9gBAoLoSg==", + "dev": true, + "requires": { + "ajv": "6.12.2", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.5", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "enhanced-resolve": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", + "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + } + }, + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true } } }, "@ngx-translate/core": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-10.0.2.tgz", - "integrity": "sha512-7nM3DrJaqKswwtJlbu2kuKNl+hE8Isr18sKsKvGGpSxQk+G0gO0reDlx2PhUNus7TJTkA1C59vU/JoN8hIvZ4g==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-13.0.0.tgz", + "integrity": "sha512-+tzEp8wlqEnw0Gc7jtVRAJ6RteUjXw6JJR4O65KlnxOmJrCGPI0xjV/lKRnQeU0w4i96PQs/jtpL921Wrb7PWg==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" } }, "@ngx-translate/http-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-4.0.0.tgz", - "integrity": "sha512-x8LumqydWD7eX9yQTAVeoCM9gFUIGVTUjZqbxdAUavAA3qVnk9wCQux7iHLPXpydl8vyQmLoPQR+fFU+DUDOMA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-6.0.0.tgz", + "integrity": "sha512-LCekn6qCbeXWlhESCxU1rAbZz33WzDG0lI7Ig0pYC1o5YxJWrkU9y3Y4tNi+jakQ7R6YhTR2D3ox6APxDtA0wA==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", "dev": true }, - "@schematics/angular": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.3.9.tgz", - "integrity": "sha512-B3lytFtFeYNLfWdlrIzvy3ulFRccD2/zkoL0734J+DAGfUz7vbysJ50RwYL46sQUcKdZdvb48ktfu1S8yooP6Q==", + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", "dev": true, "requires": { - "@angular-devkit/core": "7.3.9", - "@angular-devkit/schematics": "7.3.9", - "typescript": "3.2.4" + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" } }, - "@schematics/update": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.13.9.tgz", - "integrity": "sha512-4MQcaKFxhMzZyE//+DknDh3h3duy3avg2oxSHxdwXlCZ8Q92+4lpegjJcSRiqlEwO4qeJ5XnrjrvzfIiaIZOmA==", + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", "dev": true, "requires": { - "@angular-devkit/core": "7.3.9", - "@angular-devkit/schematics": "7.3.9", - "@yarnpkg/lockfile": "1.1.0", - "ini": "1.3.5", - "pacote": "9.4.0", - "rxjs": "6.3.3", - "semver": "5.6.0", - "semver-intersect": "1.4.0" + "mkdirp": "^1.0.4" }, "dependencies": { - "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true } } }, - "@turf/bbox": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.0.1.tgz", - "integrity": "sha512-EGgaRLettBG25Iyx7VyUINsPpVj1x3nFQFiGS3ER8KCI1MximzNLsam3eXRabqQDjyAKyAE1bJ4EZEpGvspQxw==", + "@rollup/plugin-commonjs": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-13.0.0.tgz", + "integrity": "sha512-Anxc3qgkAi7peAyesTqGYidG5GRim9jtg8xhmykNaZkImtvjA7Wsqep08D2mYsqw1IF7rA3lYfciLgzUSgRoqw==", + "dev": true, "requires": { - "@turf/helpers": "6.x", - "@turf/meta": "6.x" + "@rollup/pluginutils": "^3.0.8", + "commondir": "^1.0.1", + "estree-walker": "^1.0.1", + "glob": "^7.1.2", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0" } }, - "@turf/boolean-point-in-polygon": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-5.1.5.tgz", - "integrity": "sha1-8BzBlNHgMKVIv9qYHLpDz9YpQbc=", + "@rollup/plugin-json": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", + "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", + "dev": true, "requires": { - "@turf/helpers": "^5.1.5", - "@turf/invariant": "^5.1.5" + "@rollup/pluginutils": "^3.0.8" + } + }, + "@rollup/plugin-node-resolve": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.1.0.tgz", + "integrity": "sha512-ovq7ZM3JJYUUmEjjO+H8tnUdmQmdQudJB7xruX8LFZ1W2q8jXdPUS6SsIYip8ByOApu4RR7729Am9WhCeCMiHA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "deep-freeze": "^0.0.1", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "@schematics/angular": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.0.2.tgz", + "integrity": "sha512-viSf1HQH2vxZAonkfdAjJ/0Z8VgKptsi4UYtJDwabKRbbyp2EQ/vhEPI/ddV4QgrQqR8mkOl7nu8JqL2M0+v6A==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.0.2", + "@angular-devkit/schematics": "10.0.2" }, "dependencies": { - "@turf/helpers": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", - "integrity": "sha1-FTQFInq5M9AEpbuWQantmZ/L4M8=" + "@angular-devkit/core": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.2.tgz", + "integrity": "sha512-gD8iUP28GscsHqGKKu+NtX97bt7aXDZmIYqWTv4SThrcsPYY2A4tBw+NBbNAwjHkNfn4jflpqTmcN9gBAoLoSg==", + "dev": true, + "requires": { + "ajv": "6.12.2", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.5", + "source-map": "0.7.3" + } }, - "@turf/invariant": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-5.2.0.tgz", - "integrity": "sha1-8BUP9ykLOFd7c9CIt5MsHuCqkKc=", + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, "requires": { - "@turf/helpers": "^5.1.5" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + } + } + }, + "@schematics/update": { + "version": "0.1000.2", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1000.2.tgz", + "integrity": "sha512-6PSJ+WexBqY0ESo0Kp6fa9wPWAXKE9oyLNjISJ1S9QKCVowoHa8FV+7BalVOUYwUhnUzwPCF6n7PqcJiZR632g==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.0.2", + "@angular-devkit/schematics": "10.0.2", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "npm-package-arg": "^8.0.0", + "pacote": "9.5.12", + "rxjs": "6.5.5", + "semver": "7.3.2", + "semver-intersect": "1.4.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.2.tgz", + "integrity": "sha512-gD8iUP28GscsHqGKKu+NtX97bt7aXDZmIYqWTv4SThrcsPYY2A4tBw+NBbNAwjHkNfn4jflpqTmcN9gBAoLoSg==", + "dev": true, + "requires": { + "ajv": "6.12.2", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.5", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + } + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@turf/bbox": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.0.1.tgz", + "integrity": "sha512-EGgaRLettBG25Iyx7VyUINsPpVj1x3nFQFiGS3ER8KCI1MximzNLsam3eXRabqQDjyAKyAE1bJ4EZEpGvspQxw==", + "requires": { + "@turf/helpers": "6.x", + "@turf/meta": "6.x" + } + }, + "@turf/boolean-point-in-polygon": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-5.1.5.tgz", + "integrity": "sha1-8BzBlNHgMKVIv9qYHLpDz9YpQbc=", + "requires": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + }, + "dependencies": { + "@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha1-FTQFInq5M9AEpbuWQantmZ/L4M8=" + }, + "@turf/invariant": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-5.2.0.tgz", + "integrity": "sha1-8BUP9ykLOFd7c9CIt5MsHuCqkKc=", + "requires": { + "@turf/helpers": "^5.1.5" } } } @@ -3946,32 +3167,39 @@ } } }, - "@types/chokidar": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@types/chokidar/-/chokidar-1.7.5.tgz", - "integrity": "sha512-PDkSRY7KltW3M60hSBlerxI8SFPXsO3AL/aRVsO4Kh9IHRW74Ih75gUuTd/aE4LSSFqypb10UIX3QzOJwBQMGQ==", - "dev": true, - "requires": { - "@types/events": "*", - "@types/node": "*" - } + "@types/archy": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/@types/archy/-/archy-0.0.31.tgz", + "integrity": "sha512-v+dxizsFVyXgD3EpFuqT9YjdEjbJmPxNf1QIX9ohZOhxh1ZF2yhqv3vYaeum9lg3VghhxS5S0a6yldN9J9lPEQ==" + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, "@types/cordova": { "version": "0.0.34", "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" }, + "@types/debug": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", + "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" + }, "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true + "@types/fs-extra": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.1.tgz", + "integrity": "sha512-TcUlBem321DFQzBNuz8p0CLLKp0VvF/XH9E4KHNmgwyp4E3AfgI5cjiIVZWlbfThBop2qxFIh4+LeY6hVWWZ2w==", + "requires": { + "@types/node": "*" + } }, "@types/geojson": { "version": "7946.0.7", @@ -3979,6 +3207,15 @@ "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==", "dev": true }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/hammerjs": { "version": "2.0.36", "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.36.tgz", @@ -3986,18 +3223,18 @@ "dev": true }, "@types/html2canvas": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/html2canvas/-/html2canvas-0.0.33.tgz", - "integrity": "sha512-R+jM0VWcMRxj3PmDaggqnhtTJHedhhSUz/frcneKN60RCBIHuU8DTcphpHg7K3Gi7LA01SMRKQGAChioKA4Ggw==", + "version": "0.0.35", + "resolved": "https://registry.npmjs.org/@types/html2canvas/-/html2canvas-0.0.35.tgz", + "integrity": "sha512-28p0/yNwXnvGWQK3rEIBj7NHNQoBXuX0ymcCNjSYR/i0Vk9z+xrKCQZPvsrEmurx9vs4B/eHGbOaJY/a9CXdSg==", "dev": true, "requires": { "@types/jquery": "*" } }, "@types/jasmine": { - "version": "2.8.16", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.16.tgz", - "integrity": "sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g==", + "version": "3.5.11", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.11.tgz", + "integrity": "sha512-fg1rOd/DehQTIJTifGqGVY6q92lDgnLfs7C6t1ccSwQrMyoTGSoH6wWzhJDZb6ezhsdwAX4EIBLe8w5fXWmEng==", "dev": true }, "@types/jasminewd2": { @@ -4010,39 +3247,59 @@ } }, "@types/jquery": { - "version": "3.3.31", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.31.tgz", - "integrity": "sha512-Lz4BAJihoFw5nRzKvg4nawXPzutkv7wmfQ5121avptaSIXlDNJCUuxZxX/G+9EVidZGuO0UBlk+YjKbwRKJigg==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.0.tgz", + "integrity": "sha512-C7qQUjpMWDUNYQRTXsP5nbYYwCwwgy84yPgoTT7fPN69NH92wLeCtFaMsWeolJD1AF/6uQw3pYt62rzv83sMmw==", "dev": true, "requires": { "@types/sizzle": "*" } }, - "@types/lodash": { - "version": "4.14.146", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.146.tgz", - "integrity": "sha512-JzJcmQ/ikHSv7pbvrVNKJU5j9jL9VLf3/gqs048CEnBVVVEv4kve3vLxoPHGvclutS+Il4SBIuQQ087m1eHffw==", + "@types/json-schema": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", + "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", "dev": true }, + "@types/lodash": { + "version": "4.14.157", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.157.tgz", + "integrity": "sha512-Ft5BNFmv2pHDgxV5JDsndOWTRJ+56zte0ZpYLowp03tW+K+t8u8YMOzAnpuqPgzX6WO1XpDIUm7u04M8vdDiVQ==" + }, "@types/lodash.debounce": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz", "integrity": "sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==", - "dev": true, "requires": { "@types/lodash": "*" } }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, + "@types/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=", + "dev": true + }, "@types/node": { - "version": "8.9.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", - "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", + "version": "14.0.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.22.tgz", + "integrity": "sha512-emeGcJvdiZ4Z3ohbmw93E/64jRzUHAItSHt8nF7M4TGgQTiWqFVGB8KNpLGFmUHmHLvjvBgFwVlqNcq+VuGv9g==" + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, "@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", "dev": true }, "@types/resolve": { @@ -4054,10 +3311,18 @@ "@types/node": "*" } }, + "@types/sass": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.16.0.tgz", + "integrity": "sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==", + "requires": { + "@types/node": "*" + } + }, "@types/selenium-webdriver": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz", - "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", "dev": true }, "@types/sizzle": { @@ -4073,9 +3338,9 @@ "dev": true }, "@types/webpack-sources": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.5.tgz", - "integrity": "sha512-zfvjpp7jiafSmrzJ2/i3LqOyTYTuJ7u1KOXlKgDlvsj9Rr0x7ZiYu5lZbXwobL7lmsRNtPXlBfmaUD8eU2Hu8w==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", "dev": true, "requires": { "@types/node": "*", @@ -4084,160 +3349,159 @@ } }, "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" }, "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" }, "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" }, "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", "requires": { - "@webassemblyjs/wast-printer": "1.8.5" + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" }, "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" + "@webassemblyjs/ast": "1.9.0" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" }, "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" }, "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", "@xtuc/long": "4.2.2" } }, @@ -4293,12 +3557,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=" }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", - "dev": true - }, "acorn-globals": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", @@ -4319,17 +3577,17 @@ }, "dependencies": { "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", "dev": true } } }, "acorn-walk": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz", - "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, "add-stream": { @@ -4338,10 +3596,72 @@ "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", "dev": true }, + "adjust-sourcemap-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz", + "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==", + "dev": true, + "requires": { + "assert": "1.4.1", + "camelcase": "5.0.0", + "loader-utils": "1.2.3", + "object-path": "0.11.4", + "regex-parser": "2.2.10" + }, + "dependencies": { + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, "adm-zip": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz", - "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==", + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", "dev": true }, "after": { @@ -4368,12 +3688,22 @@ "humanize-ms": "^1.2.1" } }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -4385,104 +3715,65 @@ "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" }, "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==" + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", + "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==" + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true }, "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true + "dev": true, + "optional": true }, "angular-cli-ghpages": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/angular-cli-ghpages/-/angular-cli-ghpages-0.5.3.tgz", - "integrity": "sha512-6ttpK5gghBXaWVnfXV9Ol0LRFwbmLwKPykjGn3HsHHyAENhJ5aGUSO89TlgOJWHaVW0x57SH3HHZr6wgSnw4/g==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/angular-cli-ghpages/-/angular-cli-ghpages-0.6.2.tgz", + "integrity": "sha512-T4O8VMcj9M7MlFWvg1emeNzLnylKuDkEcBkdymDZNRwVGaYEHkte1UQwbph5QhIHPFOjyT9DHOj9fx1Cp3fCQA==", "dev": true, "requires": { - "commander": "2.9.0", - "denodeify": "1.2.1", - "fs-extra": "3.0.1", - "gh-pages": "0.12.0" + "commander": "^3.0.0-0", + "fs-extra": "^8.1.0", + "gh-pages": "^2.1.0" }, "dependencies": { "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "dev": true, - "requires": { - "graceful-readlink": ">= 1.0.0" - } + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true }, "fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^3.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", "universalify": "^0.1.0" } - }, - "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } } } }, "angular2-notifications": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/angular2-notifications/-/angular2-notifications-2.0.0.tgz", - "integrity": "sha512-QfMpewj2M1FKKOcZdDTOBo8/TX5K0Ev5p1BdbKPVpzHY9WAKtQa496/FarpoApBN8uPw8og5cEV20IgLbK+b5Q==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/angular2-notifications/-/angular2-notifications-9.0.0.tgz", + "integrity": "sha512-FkJbW54/QS/Ukths7BNU2zIsB+1OB8N9kB20N7Aoh+nLYOm6fn7bLZTtdJ7UfwzEuui4aIsGwYUalazawDYZnw==" }, "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "dev": true, "requires": { - "string-width": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^3.0.0" } }, "ansi-colors": { @@ -4491,21 +3782,15 @@ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { - "ansi-wrap": "0.1.0" + "type-fest": "^0.11.0" } }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, "ansi-gray": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", @@ -4521,15 +3806,6 @@ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", "dev": true }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -4552,33 +3828,33 @@ "dev": true }, "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, "apache-crypt": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.1.tgz", - "integrity": "sha1-1vxyqm0n2ZyVqU/RiNcx7v/6Zjw=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.4.tgz", + "integrity": "sha512-Icze5ny5W5uv3xgMgl8U+iGmRCC0iIDrb2PVPuRBtL3Zy1Y5TMewXP1Vtc4r5X9eNNBEk7KYPu0Qby9m/PmcHg==", "dev": true, "requires": { - "unix-crypt-td-js": "^1.0.0" + "unix-crypt-td-js": "^1.1.4" } }, "apache-md5": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.2.tgz", - "integrity": "sha1-7klza2ObTxCLbp5ibG2pkwa0FpI=", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.5.tgz", + "integrity": "sha512-sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==", "dev": true }, "app-root-path": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz", - "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", "dev": true }, "append-buffer": { @@ -4598,15 +3874,6 @@ } } }, - "append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", - "dev": true, - "requires": { - "default-require-extensions": "^2.0.0" - } - }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -4615,23 +3882,12 @@ "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" }, "arg": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.1.tgz", - "integrity": "sha512-SlmP3fEA88MBv0PypnXZ8ZfJhwmDeIE3SP71j37AiXQBXYosPV0x6uISAaHYSlSVhmHOVkomen0tbGk6Anlebw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "argparse": { @@ -4643,6 +3899,22 @@ "sprintf-js": "~1.0.2" } }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -4778,13 +4050,10 @@ } }, "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true }, "array-uniq": { "version": "1.0.3", @@ -4831,6 +4100,13 @@ "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "assert": { @@ -4926,6 +4202,12 @@ "integrity": "sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=", "dev": true }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, "async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", @@ -4952,12 +4234,6 @@ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -4978,23 +4254,30 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "9.4.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.6.tgz", - "integrity": "sha512-Yp51mevbOEdxDUy5WjiKtpQaecqYq9OqZSL04rSoCiry7Tc5I9FEyo3bfxiTJc1DfHeKwSFCUYbBAiOQ2VGfiw==", + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.0.tgz", + "integrity": "sha512-D96ZiIHXbDmU02dBaemyAg53ez+6F5yZmapmgKcjm35yEe1uVDYI8hGW3VYoGRaG290ZFf91YxHrR518vC0u/A==", "dev": true, "requires": { - "browserslist": "^4.4.1", - "caniuse-lite": "^1.0.30000929", + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001061", + "chalk": "^2.4.2", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.13", - "postcss-value-parser": "^3.3.1" + "postcss": "^7.0.30", + "postcss-value-parser": "^4.1.0" } }, "aws-sign2": { @@ -5003,85 +4286,78 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "follow-redirects": "1.5.10" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ms": "2.0.0" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + } } } }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "ast-types-flow": "0.0.7" } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } } }, "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, "requires": { "object.assign": "^4.1.0" @@ -5095,56 +4371,22 @@ "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } } }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, "bach": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", @@ -5234,9 +4476,9 @@ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true }, "basic-auth": { @@ -5291,14 +4533,14 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" }, "binaryextensions": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.2.tgz", - "integrity": "sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz", + "integrity": "sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==", "dev": true }, "bl": { @@ -5342,15 +4584,6 @@ "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", "dev": true }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, "blocking-proxy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", @@ -5358,25 +4591,17 @@ "dev": true, "requires": { "minimist": "^1.2.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==" + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" }, "body-parser": { "version": "1.19.0", @@ -5431,61 +4656,119 @@ "dev": true }, "bowser": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.9.0.tgz", - "integrity": "sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA==" + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.10.0.tgz", + "integrity": "sha512-OCsqTQboTEWWsUjcp5jLSw2ZHsBiv2C105iFs61bOT0Hnwi9p7/uuXdd7mu8RYcarREfdjNN+8LitmEHATsLYg==" }, "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" }, "dependencies": { "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "has-flag": "^4.0.0" } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true } } }, @@ -5620,20 +4903,41 @@ "requires": { "bn.js": "^4.1.0", "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", + "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "browserify-zlib": { @@ -5645,20 +4949,21 @@ } }, "browserslist": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.2.tgz", - "integrity": "sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", + "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001004", - "electron-to-chromium": "^1.3.295", - "node-releases": "^1.1.38" + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "browserstack": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz", - "integrity": "sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.0.tgz", + "integrity": "sha512-HJDJ0TSlmkwnt9RZ+v5gFpa1XZTBYTj0ywvLwJ3241J7vMw2jAsGNVhKHtmCOyg+VxeLZyaibO9UL71AsUeDIw==", "dev": true, "requires": { "https-proxy-agent": "^2.2.1" @@ -5674,34 +4979,12 @@ "isarray": "^1.0.0" } }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, "buffer-equal": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", "dev": true }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -5742,23 +5025,24 @@ "dev": true }, "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "dev": true, + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", + "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", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", "y18n": "^4.0.0" } }, @@ -5778,21 +5062,65 @@ "unset-value": "^1.0.0" } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dev": true, "requires": { - "callsites": "^2.0.0" - } - }, + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, "caller-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", @@ -5815,25 +5143,38 @@ "dev": true }, "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" } }, "caniuse-lite": { - "version": "1.0.30001008", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz", - "integrity": "sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw==", + "version": "1.0.30001096", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001096.tgz", + "integrity": "sha512-PFTw9UyVfbkcMEFs82q8XVlRayj7HKvnhu5BLcmjGpv+SNyiWasCcWXPGJuO0rK0dhLRDJmtZcJ+LHUfypbw1w==", "dev": true }, "canonical-path": { @@ -5860,12 +5201,6 @@ } } }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", - "dev": true - }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -5880,17 +5215,6 @@ "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "chardet": { @@ -5913,6 +5237,50 @@ "parse5": "^3.0.1" }, "dependencies": { + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, "parse5": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", @@ -5925,29 +5293,55 @@ } }, "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", + "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } } }, "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "chrome-trace-event": { "version": "1.0.2", @@ -5955,12 +5349,19 @@ "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "requires": { "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } } }, "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "cipher-base": { @@ -5973,9 +5374,9 @@ } }, "circular-dependency-plugin": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz", - "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", "dev": true }, "class-utils": { @@ -6004,45 +5405,65 @@ "resolved": "https://registry.npmjs.org/classlist.js/-/classlist.js-1.1.20150312.tgz", "integrity": "sha1-HXCEL3Ai8I2awIbOaeWyUPLFd4k=" }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true }, "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", "dev": true }, "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "^3.1.0" } }, + "cli-spinners": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz", + "integrity": "sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w==", + "dev": true + }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "clone": { @@ -6058,15 +5479,23 @@ "dev": true }, "clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { - "for-own": "^1.0.0", "is-plain-object": "^2.0.4", - "kind-of": "^6.0.0", - "shallow-clone": "^1.0.0" + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" } }, "clone-stats": { @@ -6086,11 +5515,16 @@ "readable-stream": "^2.3.5" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } }, "code-block-writer": { "version": "7.3.1", @@ -6105,19 +5539,39 @@ "dev": true }, "codelyzer": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz", - "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.0.tgz", + "integrity": "sha512-edJIQCIcxD9DhVSyBEdJ38AbLikm515Wl91t5RDGNT88uA6uQdTm4phTWfn9JhzAI8kXNUcfYyAE90lJElpGtA==", "dev": true, "requires": { - "app-root-path": "^2.1.0", - "css-selector-tokenizer": "^0.7.0", + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", "semver-dsl": "^1.0.1", "source-map": "^0.5.7", - "sprintf-js": "^1.1.1" + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" }, "dependencies": { + "@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true + }, + "@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -6129,6 +5583,12 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", "dev": true + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true } } }, @@ -6152,13 +5612,14 @@ "object-visit": "^1.0.0" } }, - "collections": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/collections/-/collections-0.2.2.tgz", - "integrity": "sha1-HyMCay7zb5J+7MkB6ZxfDUj6M04=", + "color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", + "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", "dev": true, "requires": { - "weak-map": "1.0.0" + "color-convert": "^1.9.1", + "color-string": "^1.5.2" } }, "color-convert": { @@ -6176,6 +5637,16 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", @@ -6207,21 +5678,32 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "compare-func": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz", + "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==", "dev": true, "requires": { "array-ify": "^1.0.0", "dot-prop": "^3.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + } } }, - "compare-versions": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.1.tgz", - "integrity": "sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg==", - "dev": true - }, "component-bind": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", @@ -6239,13 +5721,22 @@ "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", "dev": true }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "requires": { + "arity-n": "^1.0.4" + } + }, "compressible": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", - "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "requires": { - "mime-db": ">= 1.40.0 < 2" + "mime-db": ">= 1.43.0 < 2" } }, "compression": { @@ -6272,9 +5763,9 @@ } }, "compute-scroll-into-view": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.11.tgz", - "integrity": "sha512-uUnglJowSe0IPmWOdDtrlHXof5CTIJitfJEyITHBW6zDVOGu9Pjk5puaLM73SLcwak0L4hEjO7Td88/a6P5i7A==" + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz", + "integrity": "sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==" }, "concat-map": { "version": "0.0.1", @@ -6303,27 +5794,33 @@ } }, "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, "requires": { - "dot-prop": "^4.1.0", + "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" }, "dependencies": { - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "semver": "^6.0.0" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, @@ -6350,12 +5847,6 @@ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -6385,583 +5876,212 @@ "dev": true }, "conventional-changelog": { - "version": "3.1.14", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.14.tgz", - "integrity": "sha512-utfeyIrLKBjIhxFW64W425tVjnu/rqpVrI4/ylje2figIEfGHQ1YoMkkT8ZwX65MxzTtqQR1SCl7CX1y0/0JrA==", + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.21.tgz", + "integrity": "sha512-ZGecVZPEo3aC75VVE4nu85589dDhpMyqfqgUM5Myq6wfKWiNqhDJLSDMsc8qKXshZoY7dqs1hR0H/15kI/G2jQ==", "dev": true, "requires": { - "conventional-changelog-angular": "^5.0.6", - "conventional-changelog-atom": "^2.0.3", - "conventional-changelog-codemirror": "^2.0.3", - "conventional-changelog-conventionalcommits": "^4.2.3", - "conventional-changelog-core": "^4.1.0", - "conventional-changelog-ember": "^2.0.4", - "conventional-changelog-eslint": "^3.0.4", - "conventional-changelog-express": "^2.0.1", - "conventional-changelog-jquery": "^3.0.6", - "conventional-changelog-jshint": "^2.0.3", - "conventional-changelog-preset-loader": "^2.3.0" + "conventional-changelog-angular": "^5.0.10", + "conventional-changelog-atom": "^2.0.7", + "conventional-changelog-codemirror": "^2.0.7", + "conventional-changelog-conventionalcommits": "^4.3.0", + "conventional-changelog-core": "^4.1.7", + "conventional-changelog-ember": "^2.0.8", + "conventional-changelog-eslint": "^3.0.8", + "conventional-changelog-express": "^2.0.5", + "conventional-changelog-jquery": "^3.0.10", + "conventional-changelog-jshint": "^2.0.7", + "conventional-changelog-preset-loader": "^2.3.4" } }, "conventional-changelog-angular": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz", - "integrity": "sha512-QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.10.tgz", + "integrity": "sha512-k7RPPRs0vp8+BtPsM9uDxRl6KcgqtCJmzRD1wRtgqmhQ96g8ifBGo9O/TZBG23jqlXS/rg8BKRDELxfnQQGiaA==", "dev": true, "requires": { "compare-func": "^1.3.1", "q": "^1.5.1" - }, - "dependencies": { - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - } } }, "conventional-changelog-atom": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.3.tgz", - "integrity": "sha512-szZe2ut97qNO6vCCMkm1I/tWu6ol4Rr8a9Lx0y/VlpDnpY0PNp+oGpFgU55lplhx+I3Lro9Iv4/gRj0knfgjzg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.7.tgz", + "integrity": "sha512-7dOREZwzB+tCEMjRTDfen0OHwd7vPUdmU0llTy1eloZgtOP4iSLVzYIQqfmdRZEty+3w5Jz+AbhfTJKoKw1JeQ==", "dev": true, "requires": { "q": "^1.5.1" - }, - "dependencies": { - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - } } }, "conventional-changelog-cli": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.0.27.tgz", - "integrity": "sha512-SK71zMVyAlfYua44WFCLRZqWO76He57NLsp9wfTAsHkCgbrWtWGbXA/UuGq49H5lAlWMcaqYR6OYcssqmFw6aQ==", + "version": "2.0.34", + "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.0.34.tgz", + "integrity": "sha512-HDDIhhpsMKiiAfH/mbj7wApgN7uA33Nk4hISY3/7ijlfqXc/bmP3v4o3Yialoxz0iTBibc94xi6kfTH7XIvwDw==", "dev": true, "requires": { "add-stream": "^1.0.0", - "conventional-changelog": "^3.1.14", + "conventional-changelog": "^3.1.21", "lodash": "^4.17.15", - "meow": "^4.0.0", + "meow": "^7.0.0", "tempfile": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - } } }, "conventional-changelog-codemirror": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.3.tgz", - "integrity": "sha512-t2afackdgFV2yBdHhWPqrKbpaQeVnz2hSJKdWqjasPo5EpIB6TBL0er3cOP1mnGQmuzk9JSvimNSuqjWGDtU5Q==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.7.tgz", + "integrity": "sha512-Oralk1kiagn3Gb5cR5BffenWjVu59t/viE6UMD/mQa1hISMPkMYhJIqX+CMeA1zXgVBO+YHQhhokEj99GP5xcg==", "dev": true, "requires": { "q": "^1.5.1" - }, - "dependencies": { - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - } } }, "conventional-changelog-conventionalcommits": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.3.tgz", - "integrity": "sha512-atGa+R4vvEhb8N/8v3IoW59gCBJeeFiX6uIbPu876ENAmkMwsenyn0R21kdDHJFLQdy6zW4J6b4xN8KI3b9oww==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.3.0.tgz", + "integrity": "sha512-oYHydvZKU+bS8LnGqTMlNrrd7769EsuEHKy4fh1oMdvvDi7fem8U+nvfresJ1IDB8K00Mn4LpiA/lR+7Gs6rgg==", "dev": true, "requires": { "compare-func": "^1.3.1", "lodash": "^4.17.15", "q": "^1.5.1" - }, - "dependencies": { - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - } } }, "conventional-changelog-core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.1.0.tgz", - "integrity": "sha512-2m2udIRAPbQL5It0ABNjsQZKJQJPNuf3anxLhcOLkEW+M4z3C343BMDUyJy9Y7tKAweqK458xxW81bG8FYrBwA==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.1.7.tgz", + "integrity": "sha512-UBvSrQR2RdKbSQKh7RhueiiY4ZAIOW3+CSWdtKOwRv+KxIMNFKm1rOcGBFx0eA8AKhGkkmmacoTWJTqyz7Q0VA==", "dev": true, "requires": { - "conventional-changelog-writer": "^4.0.10", - "conventional-commits-parser": "^3.0.7", + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^4.0.16", + "conventional-commits-parser": "^3.1.0", "dateformat": "^3.0.0", "get-pkg-repo": "^1.0.0", "git-raw-commits": "2.0.0", "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^3.0.0", + "git-semver-tags": "^4.0.0", "lodash": "^4.17.15", "normalize-package-data": "^2.3.5", "q": "^1.5.1", "read-pkg": "^3.0.0", "read-pkg-up": "^3.0.0", + "shelljs": "^0.8.3", "through2": "^3.0.0" }, "dependencies": { - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "dev": true, "requires": { + "inherits": "^2.0.4", "readable-stream": "2 || 3" } } } }, "conventional-changelog-ember": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.4.tgz", - "integrity": "sha512-q1u73sO9uCnxN4TSw8xu6MRU8Y1h9kpwtcdJuNRwu/LSKI1IE/iuNSH5eQ6aLlQ3HTyrIpTfUuVybW4W0F17rA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.8.tgz", + "integrity": "sha512-JEMEcUAMg4Q9yxD341OgWlESQ4gLqMWMXIWWUqoQU8yvTJlKnrvcui3wk9JvnZQyONwM2g1MKRZuAjKxr8hAXA==", "dev": true, "requires": { "q": "^1.5.1" - }, - "dependencies": { - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - } } }, "conventional-changelog-eslint": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.4.tgz", - "integrity": "sha512-CPwTUENzhLGl3auunrJxiIEWncAGaby7gOFCdj2gslIuOFJ0KPJVOUhRz4Da/I53sdo/7UncUJkiLg94jEsjxg==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.8.tgz", + "integrity": "sha512-5rTRltgWG7TpU1PqgKHMA/2ivjhrB+E+S7OCTvj0zM/QGg4vmnVH67Vq/EzvSNYtejhWC+OwzvDrLk3tqPry8A==", "dev": true, "requires": { "q": "^1.5.1" - }, - "dependencies": { - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - } } }, "conventional-changelog-express": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.1.tgz", - "integrity": "sha512-G6uCuCaQhLxdb4eEfAIHpcfcJ2+ao3hJkbLrw/jSK/eROeNfnxCJasaWdDAfFkxsbpzvQT4W01iSynU3OoPLIw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.5.tgz", + "integrity": "sha512-pW2hsjKG+xNx/Qjof8wYlAX/P61hT5gQ/2rZ2NsTpG+PgV7Rc8RCfITvC/zN9K8fj0QmV6dWmUefCteD9baEAw==", "dev": true, "requires": { "q": "^1.5.1" - }, - "dependencies": { - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - } } }, "conventional-changelog-jquery": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.6.tgz", - "integrity": "sha512-gHAABCXUNA/HjnZEm+vxAfFPJkgtrZvCDIlCKfdPVXtCIo/Q0lN5VKpx8aR5p8KdVRQFF3OuTlvv5kv6iPuRqA==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.10.tgz", + "integrity": "sha512-QCW6wF8QgPkq2ruPaxc83jZxoWQxLkt/pNxIDn/oYjMiVgrtqNdd7lWe3vsl0hw5ENHNf/ejXuzDHk6suKsRpg==", "dev": true, "requires": { "q": "^1.5.1" - }, - "dependencies": { - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - } } }, "conventional-changelog-jshint": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.3.tgz", - "integrity": "sha512-Pc2PnMPcez634ckzr4EOWviwRSpZcURaK7bjyD9oK6N5fsC/a+3G7LW5m/JpcHPhA9ZxsfIbm7uqZ3ZDGsQ/sw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.7.tgz", + "integrity": "sha512-qHA8rmwUnLiIxANJbz650+NVzqDIwNtc0TcpIa0+uekbmKHttidvQ1dGximU3vEDdoJVKFgR3TXFqYuZmYy9ZQ==", "dev": true, "requires": { "compare-func": "^1.3.1", "q": "^1.5.1" - }, - "dependencies": { - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - } } }, "conventional-changelog-preset-loader": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.0.tgz", - "integrity": "sha512-/rHb32J2EJnEXeK4NpDgMaAVTFZS3o1ExmjKMtYVgIC4MQn0vkNSbYpdGRotkfGGRWiqk3Ri3FBkiZGbAfIfOQ==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", "dev": true }, "conventional-changelog-writer": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.10.tgz", - "integrity": "sha512-vtO9vBAVh7XnSpGLTB1BOGgsGTz1MdvFjzbSXLrtapWCHWwuVOZFgwdLhlS0MaXwlF1dksWdEb6tnr42Ie2INw==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.16.tgz", + "integrity": "sha512-jmU1sDJDZpm/dkuFxBeRXvyNcJQeKhGtVcFFkwTphUAzyYWcwz2j36Wcv+Mv2hU3tpvLMkysOPXJTLO55AUrYQ==", "dev": true, "requires": { "compare-func": "^1.3.1", - "conventional-commits-filter": "^2.0.2", + "conventional-commits-filter": "^2.0.6", "dateformat": "^3.0.0", - "handlebars": "^4.4.0", + "handlebars": "^4.7.6", "json-stringify-safe": "^5.0.1", "lodash": "^4.17.15", - "meow": "^4.0.0", + "meow": "^7.0.0", "semver": "^6.0.0", "split": "^1.0.0", "through2": "^3.0.0" }, "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "through": "2" } }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "inherits": "^2.0.4", + "readable-stream": "2 || 3" } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "dev": true, - "requires": { - "readable-stream": "2 || 3" - } - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true } } }, "conventional-commits-filter": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz", - "integrity": "sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz", + "integrity": "sha512-4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw==", "dev": true, "requires": { "lodash.ismatch": "^4.4.0", @@ -6969,151 +6089,29 @@ } }, "conventional-commits-parser": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.7.tgz", - "integrity": "sha512-4mx/FRC92z0yIiXGyRVYQFhn0jWDwvxnj2UuLaUi3hJSG4Thall6GXA8YOPHQK2qvotciJandJIVmuSvLgDLbQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz", + "integrity": "sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA==", "dev": true, "requires": { "JSONStream": "^1.0.4", "is-text-path": "^1.0.1", "lodash": "^4.17.15", - "meow": "^4.0.0", + "meow": "^7.0.0", "split2": "^2.0.0", "through2": "^3.0.0", "trim-off-newlines": "^1.0.0" }, "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "dev": true, "requires": { + "inherits": "^2.0.4", "readable-stream": "2 || 3" } - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true } } }, @@ -7175,115 +6173,280 @@ } }, "copy-webpack-plugin": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", - "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", - "dev": true, - "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "globby": "^7.1.1", - "is-glob": "^4.0.0", - "loader-utils": "^1.1.0", - "minimatch": "^3.0.4", - "p-limit": "^1.0.0", - "serialize-javascript": "^1.4.0" - } - }, - "core-js": { - "version": "2.6.10", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz", - "integrity": "sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==" - }, - "core-js-compat": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.3.tgz", - "integrity": "sha512-HgW7pxjAdq6EMxT5uOhbTfjgZo8fvWn0D6QXVlWs3z1Eerux7tRrJ4gcgnZNn6S0OMPHlClJuIEPp0hnow44Sg==", - "dev": true, - "requires": { - "browserslist": "^4.7.3", - "semver": "^6.3.0" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", + "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", + "dev": true, + "requires": { + "cacache": "^15.0.4", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" }, "dependencies": { - "browserslist": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.3.tgz", - "integrity": "sha512-jWvmhqYpx+9EZm/FxcZSbUZyDEvDTLDi3nSAKbzEkyWvtI0mNSmUosey+5awDW1RUlrgXbQb5A6qY1xQH9U6MQ==", + "cacache": { + "version": "15.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.4.tgz", + "integrity": "sha512-YlnKQqTbD/6iyoJvEY3KJftjrdBYroCbxxYXzhOzsFLWlp6KX4BOlEf4mTx0cMUfVaTS3ENL2QtDWeRYoGLkkw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001010", - "electron-to-chromium": "^1.3.306", - "node-releases": "^1.1.40" + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" } }, - "caniuse-lite": { - "version": "1.0.30001012", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001012.tgz", - "integrity": "sha512-7RR4Uh04t9K1uYRWzOJmzplgEOAXbfK72oVNokCdMzA67trrhPzy93ahKk1AWHiA0c58tD2P+NHqxrA8FZ+Trg==", + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, - "node-releases": { - "version": "1.1.41", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.41.tgz", - "integrity": "sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg==", + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "requires": { - "semver": "^6.3.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } - } - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "p-limit": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.1.tgz", + "integrity": "sha512-mw/p92EyOzl2MhauKodw54Rx5ZK4624rNfgNaBguFZkHzyUG9WsDzFF5/yQVEJinbJDdP4jEfMN+uBquiGnaLg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + } } }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + }, + "core-js-compat": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-js-pure": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", + "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "dev": true, "requires": { - "capture-stack-trace": "^1.0.0" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "create-hash": { @@ -7312,12 +6475,15 @@ } }, "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "lru-cache": "^4.0.1", + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", "which": "^1.2.9" } }, @@ -7340,58 +6506,152 @@ } }, "crypto-js": { - "version": "3.1.9-1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.9-1.tgz", - "integrity": "sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg=", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", + "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==", "dev": true }, "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", "dev": true }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, "css-line-break": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz", - "integrity": "sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.1.1.tgz", + "integrity": "sha512-1feNVaM4Fyzdj4mKPIQNL2n70MmuYzAXZ1aytlROFX1JsOo070OsugwGjj7nl6jnDJWHDM8zRZswkmeYVWZJQA==", + "requires": { + "base64-arraybuffer": "^0.2.0" + }, + "dependencies": { + "base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==" + } + } + }, + "css-loader": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.5.3.tgz", + "integrity": "sha512-UEr9NH5Lmi7+dguAm+/JSPovNjYbm2k3TK58EiwQHzOHH5Jfq1Y+XoP2bQO6TMn7PptMd0opxxedAWcaSTRKHw==", + "dev": true, "requires": { - "base64-arraybuffer": "^0.1.5" + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.27", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.0.3", + "schema-utils": "^2.6.6", + "semver": "^6.3.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "css-parse": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", - "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "requires": { + "css": "^2.0.0" + } }, "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", "dev": true, "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" } }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz", + "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2", + "regexpu-core": "^4.6.0" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", "dev": true, "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" + "mdn-data": "2.0.4", + "source-map": "^0.6.1" } }, "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", + "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==", "dev": true }, "cssauron": { @@ -7409,11 +6669,115 @@ "integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs=" }, "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", "dev": true }, + "csso": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", + "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.39" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", + "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", + "dev": true, + "requires": { + "mdn-data": "2.0.6", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", + "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==", + "dev": true + } + } + }, "cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", @@ -7463,6 +6827,12 @@ "type": "^1.0.1" } }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, "dargs": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", @@ -7472,6 +6842,12 @@ "number-is-nan": "^1.0.0" } }, + "dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -7480,30 +6856,81 @@ "assert-plus": "^1.0.0" } }, - "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "dependencies": { + "abab": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", + "dev": true + }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + }, + "whatwg-url": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.1.0.tgz", + "integrity": "sha512-vEIkwNi9Hqt4TV9RdnaBPNt+E2Sgmo3gePebCRgZ1R7g6d23+53zCTnuB0amKI4AXq6VM8jj2DUAa0S1vjJxkw==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^5.0.0" + } + } + } + }, + "date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, "decache": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/decache/-/decache-4.5.1.tgz", - "integrity": "sha512-5J37nATc6FmOTLbcsr9qx7Nm28qQyg1SK4xyEHqM0IBkNhWFp0Sm+vKoWYHD8wq+OUEb9jLyaKFfzzd1A9hcoA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.0.tgz", + "integrity": "sha512-PppOuLiz+DFeaUvFXEYZjLxAkKiMYH/do/b/MxpDe/8AgKBi5GhZxridoVIbBq72GDbL36e4p0Ce2jTGUwwU+w==", "dev": true, "requires": { "callsite": "^1.0.0" @@ -7523,6 +6950,14 @@ "requires": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } } }, "decode-uri-component": { @@ -7530,10 +6965,19 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.0.tgz", - "integrity": "sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "dev": true, "requires": { "is-arguments": "^1.0.4", @@ -7550,6 +6994,12 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, + "deep-freeze": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", + "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -7579,36 +7029,42 @@ } }, "default-gateway": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz", - "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", "dev": true, "requires": { - "execa": "^0.10.0", + "execa": "^1.0.0", "ip-regex": "^2.1.0" } }, - "default-require-extensions": { + "default-resolution": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "strip-bom": "^3.0.0" + "clone": "^1.0.2" }, "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true } } }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, "define-properties": { @@ -7658,38 +7114,59 @@ } }, "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "dev": true, + "requires": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" }, "dependencies": { "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + } + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" } } } @@ -7699,18 +7176,6 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=", - "dev": true - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -7723,16 +7188,10 @@ "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", "dev": true }, - "deprecate": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deprecate/-/deprecate-1.1.1.tgz", - "integrity": "sha512-ZGDXefq1xknT292LnorMY5s8UVU08/WKdzDZCUT6t9JzsiMSP4uzUhgpqugffNVcT5WC6wMBiSQ+LFjlv3v7iQ==", - "dev": true - }, "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "requires": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -7751,13 +7210,10 @@ "dev": true }, "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "dev": true }, "detect-node": { "version": "2.0.4", @@ -7765,6 +7221,16 @@ "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", "dev": true }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, "dfa": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", @@ -7778,9 +7244,9 @@ "dev": true }, "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "diffie-hellman": { @@ -7791,15 +7257,22 @@ "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { - "path-type": "^3.0.0" + "path-type": "^4.0.0" } }, "dns-equal": { @@ -7840,13 +7313,21 @@ } }, "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dev": true, "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", + "dev": true + } } }, "domain-browser": { @@ -7870,9 +7351,9 @@ } }, "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { "dom-serializer": "0", @@ -7880,18 +7361,18 @@ } }, "dot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/dot/-/dot-1.1.2.tgz", - "integrity": "sha1-xzdwGfxOVQeYkosrmv62ar+h8vk=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dot/-/dot-1.1.3.tgz", + "integrity": "sha512-/nt74Rm+PcfnirXGEdhZleTwGC2LMnuKTeeTIlI82xb5loBBoXNYzr2ezCroPSMtilK8EZIfcNZwOcHN+ib1Lg==", "dev": true }, "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "^2.0.0" } }, "duplexer": { @@ -7967,6 +7448,24 @@ "lru-cache": "^4.1.5", "semver": "^5.6.0", "sigmund": "^1.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } } }, "ee-first": { @@ -7976,15 +7475,15 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.306", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.306.tgz", - "integrity": "sha512-frDqXvrIROoYvikSKTIKbHbzO6M3/qC6kCIt/1FOa9kALe++c4VAJnwjSFvf1tYLEUsP2n9XZ4XSCyqc3l7A/A==", + "version": "1.3.494", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.494.tgz", + "integrity": "sha512-EOZuaDT3L1sCIMAVN5J0nGuGWVq5dThrdl0d8XeDYf4MOzbXqZ19OLKesN8TZj0RxtpYjqHpiw/fR6BKWdMwYA==", "dev": true }, "elliptic": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", - "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -7993,8 +7492,26 @@ "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, + "elm-pep": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/elm-pep/-/elm-pep-1.0.6.tgz", + "integrity": "sha512-1DJ6ReFk8+GtgoqRiEhBo28K69Rxe9Bfc7h16+1VMQT2KlCuPBYj5W33OYa2AZpqkuqCBLhcNzO10zxJVakapA==" + }, + "email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "dev": true + }, "emitter-component": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz", @@ -8007,9 +7524,9 @@ "dev": true }, "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" }, "encodeurl": { "version": "1.0.2", @@ -8018,12 +7535,23 @@ "dev": true }, "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "requires": { - "iconv-lite": "~0.4.13" + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } } }, "end-of-stream": { @@ -8035,17 +7563,17 @@ } }, "engine.io": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", - "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", + "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", "dev": true, "requires": { "accepts": "~1.3.4", - "base64id": "1.0.0", + "base64id": "2.0.0", "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" }, "dependencies": { "cookie": { @@ -8055,56 +7583,77 @@ "dev": true }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "ws": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", + "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", + "dev": true } } }, "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", + "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==", "dev": true, "requires": { - "component-emitter": "1.2.1", + "component-emitter": "~1.3.0", "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "~3.3.1", + "ws": "~6.1.0", "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" }, "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", "dev": true, "requires": { - "ms": "2.0.0" + "async-limiter": "~1.0.0" } } } }, "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", + "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", "dev": true, "requires": { "after": "0.8.2", @@ -8115,13 +7664,24 @@ } }, "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz", + "integrity": "sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ==", "requires": { "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", + "memory-fs": "^0.5.0", "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } } }, "ent": { @@ -8131,9 +7691,9 @@ "dev": true }, "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", "dev": true }, "err-code": { @@ -8160,29 +7720,22 @@ } }, "es-abstract": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", - "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { - "es-to-primitive": "^1.2.0", + "es-to-primitive": "^1.2.1", "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-inspect": "^1.6.0", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" - }, - "dependencies": { - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - } + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { @@ -8197,13 +7750,13 @@ } }, "es5-ext": { - "version": "0.10.52", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.52.tgz", - "integrity": "sha512-bWCbE9fbpYQY4CU6hJbJ1vSz70EClMlDgJ7BmwI+zEJhxrwjesZRPglGJlsZhu0334U3hI+gaspwksH9IGD6ag==", + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", "dev": true, "requires": { "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.2", + "es6-symbol": "~3.1.3", "next-tick": "~1.0.0" } }, @@ -8294,6 +7847,18 @@ "es6-symbol": "^3.1.1" } }, + "escalade": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz", + "integrity": "sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA==", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -8307,11 +7872,11 @@ "dev": true }, "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "requires": { - "esprima": "^3.1.3", + "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", @@ -8328,9 +7893,9 @@ } }, "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esrecurse": { "version": "4.2.1", @@ -8352,9 +7917,9 @@ "dev": true }, "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", "dev": true }, "esutils": { @@ -8394,15 +7959,15 @@ } }, "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", "dev": true }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==" }, "eventsource": { "version": "1.0.7", @@ -8423,33 +7988,18 @@ } }, "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", + "get-stream": "^4.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } } }, "exit": { @@ -8558,9 +8108,9 @@ } }, "ext": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.2.0.tgz", - "integrity": "sha512-0ccUQK/9e3NreLFg6K6np8aPyRgwycx+oFGtfx1dSp7Wj00Ozw9r05FgBRlzjf2XBM7LAzwgLyDscRrtSU91hA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", "dev": true, "requires": { "type": "^2.0.0" @@ -8673,32 +8223,6 @@ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, - "falafel": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", - "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=", - "dev": true, - "requires": { - "acorn": "^5.0.0", - "foreach": "^2.0.5", - "isarray": "0.0.1", - "object-keys": "^1.0.6" - }, - "dependencies": { - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, "fancy-log": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", @@ -8712,28 +8236,73 @@ } }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", "dev": true, "requires": { - "@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" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", @@ -8746,6 +8315,15 @@ "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true }, + "fastq": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", + "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "faye-websocket": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", @@ -8756,42 +8334,92 @@ } }, "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" }, "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "file-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", - "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", "dev": true, "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } } }, "file-saver": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.8.tgz", - "integrity": "sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz", + "integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw==" }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "filename-reserved-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", + "dev": true + }, + "filenamify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", + "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", "dev": true, "requires": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" + "filename-reserved-regex": "^1.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, + "filenamify-url": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", + "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", + "dev": true, + "requires": { + "filenamify": "^1.0.0", + "humanize-url": "^1.0.0" } }, "fill-range": { @@ -8831,14 +8459,13 @@ } }, "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "requires": { "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" } }, "find-parent-dir": { @@ -8848,12 +8475,11 @@ "dev": true }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "findit2": { @@ -8861,833 +8487,236 @@ "resolved": "https://registry.npmjs.org/findit2/-/findit2-2.2.3.tgz", "integrity": "sha1-WKRmaX34piBc39vzlVNri9d3pfY=", "dev": true - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true - }, - "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz", - "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==", - "dev": true, - "requires": { - "debug": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "fontkit": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-1.8.0.tgz", - "integrity": "sha512-EFDRCca7khfQWYu1iFhsqeABpi87f03MBdkT93ZE6YhqCdMzb5Eojb6c4dlJikGv5liuhByyzA7ikpIPTSBWbQ==", - "dev": true, - "requires": { - "babel-runtime": "^6.11.6", - "brfs": "^1.4.0", - "brotli": "^1.2.0", - "browserify-optional": "^1.0.0", - "clone": "^1.0.1", - "deep-equal": "^1.0.0", - "dfa": "^1.0.0", - "restructure": "^0.5.3", - "tiny-inflate": "^1.0.2", - "unicode-properties": "^1.0.0", - "unicode-trie": "^0.3.0" - }, - "dependencies": { - "brfs": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", - "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", - "dev": true, - "requires": { - "quote-stream": "^1.0.1", - "resolve": "^1.1.5", - "static-module": "^2.2.0", - "through2": "^2.0.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "escodegen": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", - "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", - "dev": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "magic-string": { - "version": "0.22.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", - "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", - "dev": true, - "requires": { - "vlq": "^0.2.2" - } - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true - }, - "static-module": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", - "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", - "dev": true, - "requires": { - "concat-stream": "~1.6.0", - "convert-source-map": "^1.5.1", - "duplexer2": "~0.1.4", - "escodegen": "~1.9.0", - "falafel": "^2.1.0", - "has": "^1.0.1", - "magic-string": "^0.22.4", - "merge-source-map": "1.0.4", - "object-inspect": "~1.4.0", - "quote-stream": "~1.0.2", - "readable-stream": "~2.3.3", - "shallow-copy": "~0.0.1", - "static-eval": "^2.0.0", - "through2": "~2.0.3" - } - }, - "unicode-trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", - "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", - "dev": true, - "requires": { - "pako": "^0.2.5", - "tiny-inflate": "^1.0.0" - } - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", - "dev": true, - "requires": { - "null-check": "^1.0.0" - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } + }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz", + "integrity": "sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==", + "dev": true + }, + "fontkit": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-1.8.1.tgz", + "integrity": "sha512-BsNCjDoYRxmNWFdAuK1y9bQt+igIxGtTC9u/jSFjR9MKhmI00rP1fwSvERt+5ddE82544l0XH5mzXozQVUy2Tw==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "brfs": "^2.0.0", + "brotli": "^1.2.0", + "browserify-optional": "^1.0.1", + "clone": "^1.0.4", + "deep-equal": "^1.0.0", + "dfa": "^1.2.0", + "restructure": "^0.5.3", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.2.2", + "unicode-trie": "^0.3.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, + "unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", + "dev": true, "requires": { - "string-width": "^1.0.2 || 2" + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "optional": true } } }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" + "for-in": "^1.0.1" } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", "dev": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", "dev": true, "requires": { - "globule": "^1.0.0" + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "genfun": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", "dev": true }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, "geojson-rbush": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.1.2.tgz", @@ -9706,9 +8735,9 @@ "dev": true }, "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-pkg-repo": { @@ -9722,6 +8751,145 @@ "normalize-package-data": "^2.3.0", "parse-github-repo-url": "^1.3.0", "through2": "^2.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + } } }, "get-stdin": { @@ -9731,10 +8899,13 @@ "dev": true }, "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } }, "get-value": { "version": "2.0.6", @@ -9750,36 +8921,37 @@ } }, "gh-pages": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-0.12.0.tgz", - "integrity": "sha1-2VHj7Zi4VpnUsEGOsaFbGgSYjcE=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.2.0.tgz", + "integrity": "sha512-c+yPkNOPMFGNisYg9r4qvsMIjVYikJv7ImFOhPIVPt0+AcRUamZ7zkGRLHz7FKB0xrlZ+ddSOJsZv9XAFVXLmA==", "dev": true, "requires": { - "async": "2.1.2", - "commander": "2.9.0", - "globby": "^6.1.0", - "graceful-fs": "4.1.10", - "q": "1.4.1", - "q-io": "1.13.2", - "rimraf": "^2.5.4" + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify-url": "^1.0.0", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" }, "dependencies": { - "async": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.1.2.tgz", - "integrity": "sha1-YSpKtF70KnDN6Aa62G7m2wR+g4U=", + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "lodash": "^4.14.0" + "array-uniq": "^1.0.1" } }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "graceful-readlink": ">= 1.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "globby": { @@ -9795,12 +8967,6 @@ "pinkie-promise": "^2.0.0" } }, - "graceful-fs": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.10.tgz", - "integrity": "sha1-8tcgwiCS90Mih3XHXjYSYyUB8TE=", - "dev": true - }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -9858,171 +9024,6 @@ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", "dev": true }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - } - } - }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", - "dev": true, - "requires": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "git-semver-tags": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-3.0.0.tgz", - "integrity": "sha512-T4C/gJ9k2Bnxz+PubtcyiMtUUKrC+Nh9Q4zaECcnmVMwJgPhrNyP/Rf+YpdRqsJbCV/+kYrCH24Xg+IeAmbOPg==", - "dev": true, - "requires": { - "meow": "^4.0.0", - "semver": "^6.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, "map-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", @@ -10046,65 +9047,32 @@ "trim-newlines": "^2.0.0" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", "dev": true }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, "strip-indent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", @@ -10119,6 +9087,42 @@ } } }, + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "dev": true, + "requires": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "git-semver-tags": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.0.0.tgz", + "integrity": "sha512-LajaAWLYVBff+1NVircURJFL8TQ3EMIcLAfHisWYX/nPoMwnTYfWAznQDmMujlLqoD12VtLmoSrF1sQ5MhimEQ==", + "dev": true, + "requires": { + "meow": "^7.0.0", + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "gitconfiglocal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", @@ -10138,9 +9142,9 @@ } }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10151,22 +9155,11 @@ } }, "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } + "is-glob": "^4.0.1" } }, "glob-stream": { @@ -10185,6 +9178,27 @@ "remove-trailing-separator": "^1.0.1", "to-absolute-glob": "^2.0.0", "unique-stream": "^2.0.2" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "glob-to-regexp": { @@ -10205,15 +9219,121 @@ "is-negated-glob": "^1.0.0", "just-debounce": "^1.0.0", "object.defaults": "^1.1.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } } }, "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "^1.3.5" } }, "global-modules": { @@ -10241,45 +9361,33 @@ } }, "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", "dev": true, "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" } }, "globs": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globs/-/globs-0.1.4.tgz", "integrity": "sha512-D23dWbOq48vlOraoSigbcQV4tWrnhwk+E/Um2cMuDS3/5dwGmdFeA7L/vAvDhLFlQOTDqHcXh35m/71g2A2WzQ==", - "dev": true, "requires": { "glob": "^7.1.1" } }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } - }, "glogg": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", @@ -10290,34 +9398,28 @@ } }, "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "dev": true, "requires": { - "create-error-class": "^3.0.0", + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" } }, "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "gulp": { "version": "4.0.2", @@ -10337,33 +9439,192 @@ "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, "requires": { - "ansi-wrap": "^0.1.0" + "ansi-wrap": "^0.1.0" + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, - "gulp-cli": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", - "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.1.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.0.1", - "yargs": "^7.1.0" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", + "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "5.0.0-security.0" + } + }, + "yargs-parser": { + "version": "5.0.0-security.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", + "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" } } } @@ -10378,42 +9639,30 @@ "replace-ext": "^1.0.0", "through2": "^2.0.0", "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulp-exec": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-exec/-/gulp-exec-5.0.0.tgz", + "integrity": "sha512-XFW5GJr5gpdRc7nAS6fNK2cqtLDjNnIKLbcVGIA6XAWCx7E4aVn/pzEJm6NvjtIU9VMsl4igkkSAo8Le8L1Lww==", + "dev": true, + "requires": { + "plugin-error": "^1.0.1", + "through2": "^3.0.1" }, "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "dev": true, "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" + "inherits": "^2.0.4", + "readable-stream": "2 || 3" } } } }, - "gulp-exec": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gulp-exec/-/gulp-exec-3.0.2.tgz", - "integrity": "sha512-74sde0n+pQo/Jbe5qsk0sPC4afjnB7VHDUZd4BrRTLt6lsNU451N+kSvCOoSn6q0iqS9ztT1uy8ZE/FRqmXKeQ==", - "dev": true, - "requires": { - "lodash.template": "^4.4.0", - "plugin-error": "^0.1.2", - "through2": "^2.0.3" - } - }, "gulp-json-editor": { "version": "2.5.4", "resolved": "https://registry.npmjs.org/gulp-json-editor/-/gulp-json-editor-2.5.4.tgz", @@ -10427,77 +9676,38 @@ "through2": "^3.0.1" }, "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", - "dev": true - }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - } - }, "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "dev": true, "requires": { + "inherits": "^2.0.4", "readable-stream": "2 || 3" } } } }, "gulp-merge-json": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/gulp-merge-json/-/gulp-merge-json-1.3.1.tgz", - "integrity": "sha512-J1N//k3Kfa0RgtzuJdn1pz+ROQF2AH2gOHGhebSc7NvATIKgeRTThPlBaOK+jvYfhNVpviWILAFo8QvUgNV4ig==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/gulp-merge-json/-/gulp-merge-json-2.1.1.tgz", + "integrity": "sha512-VhvAlcf+dcCb94j/2yDPWxJ3X7x4P/Xwcrv1dhjYuRgvADwFJmaQwl4zbuq+GDZvzMacbVncWtEdsETpUSkhYw==", "dev": true, "requires": { - "deprecate": "^1.0.0", - "json5": "^1.0.1", + "json5": "^2.1.3", "lodash.mergewith": "^4.6.1", "plugin-error": "^1.0.1", "through": "^2.3.8", "vinyl": "^2.1.0" }, "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" + "minimist": "^1.2.5" } } } @@ -10537,21 +9747,22 @@ "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" }, "handle-thing": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", - "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, "handlebars": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.1.tgz", - "integrity": "sha512-C29UoFzHe9yM61lOsIlCE5/mQVGrnIOrOq7maQl76L7tYPCgC1og0Ajt6uWnX4ZTxBPnjw+CUvawphwCfJgUnA==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", "dev": true, "requires": { + "minimist": "^1.2.5", "neo-async": "^2.6.0", - "optimist": "^0.6.1", "source-map": "^0.6.1", - "uglify-js": "^3.1.4" + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" } }, "har-schema": { @@ -10568,6 +9779,12 @@ "har-schema": "^2.0.0" } }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -10616,15 +9833,9 @@ "dev": true }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "has-value": { @@ -10656,13 +9867,32 @@ } } }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "hash.js": { @@ -10674,6 +9904,12 @@ "minimalistic-assert": "^1.0.1" } }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -10694,10 +9930,13 @@ } }, "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", - "dev": true + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", + "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", + "dev": true, + "requires": { + "lru-cache": "^5.1.1" + } }, "hpack.js": { "version": "2.1.6", @@ -10711,18 +9950,42 @@ "wbuf": "^1.1.0" } }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "html2canvas": { - "version": "1.0.0-alpha.12", - "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz", - "integrity": "sha1-OxmS48mz9WBjw1/WIElPN+uohRM=", + "version": "1.0.0-rc.5", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-rc.5.tgz", + "integrity": "sha512-DtNqPxJNXPoTajs+lVQzGS1SULRI4GQaROeU5R41xH8acffHukxRh/NBVcTBsfCkJSkLq91rih5TpbEwUP9yWA==", "requires": { - "css-line-break": "1.0.1" + "css-line-break": "1.1.1" } }, "htmlparser2": { @@ -10739,10 +10002,16 @@ "readable-stream": "^3.1.1" }, "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -10797,16 +10066,10 @@ } } }, - "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", - "dev": true - }, "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", - "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { "eventemitter3": "^4.0.0", @@ -10836,15 +10099,15 @@ } }, "http-proxy-middleware": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", - "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", "dev": true, "requires": { - "http-proxy": "^1.16.2", + "http-proxy": "^1.17.0", "is-glob": "^4.0.0", - "lodash": "^4.17.5", - "micromatch": "^3.1.9" + "lodash": "^4.17.11", + "micromatch": "^3.1.10" } }, "http-signature": { @@ -10898,6 +10161,30 @@ "ms": "^2.0.0" } }, + "humanize-url": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", + "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", + "dev": true, + "requires": { + "normalize-url": "^1.0.0", + "strip-url-auth": "^1.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + } + } + }, "hyperquest": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hyperquest/-/hyperquest-1.2.0.tgz", @@ -10984,6 +10271,15 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", @@ -10995,9 +10291,9 @@ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" }, "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true }, "ignore-walk": { @@ -11063,60 +10359,6 @@ "requires": { "pkg-dir": "^3.0.0", "resolve-cwd": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - } } }, "imurmurhash": { @@ -11124,20 +10366,17 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true }, "indexof": { "version": "0.0.1", @@ -11171,80 +10410,129 @@ "dev": true }, "injection-js": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.2.2.tgz", - "integrity": "sha512-9K4fW2NNPG3JCvORx5G/T6q/PZYIr43RFgxBvtk3OV4omh5iqvpK4cChuBfhgPnRbXSgZRfuROh0XG5KNA8Xlg==", - "dev": true + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.3.1.tgz", + "integrity": "sha512-t+kpDAOL/DUZ68JncAhsb8C91qhJ6dXRMcOuvJfNA7sp63etdiQe6KQoxE/nZ5b2eTi0TQX6OothOCm89cLAJQ==", + "dev": true, + "requires": { + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + } + } }, "inquirer": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz", - "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.17.10", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } @@ -11256,19 +10544,19 @@ "dev": true }, "internal-ip": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz", - "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", "dev": true, "requires": { - "default-gateway": "^2.6.0", - "ipaddr.js": "^1.5.2" + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" } }, "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, "invariant": { @@ -11287,9 +10575,9 @@ "dev": true }, "ionicons": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-4.6.3.tgz", - "integrity": "sha512-cgP+VIr2cTJpMfFyVHTerq6n2jeoiGboVoe3GlaAo5zoSBDAEXORwUZhv6m+lCyxlsHCS3nqPUE+MKyZU71t8Q==" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.1.2.tgz", + "integrity": "sha512-zO7ZgbBbXhpA7cXO2rDzTNdcCqErjg1Sprq/ossTvaiV0MriOjRE7JO3EGvYjDTPzF9YALGpvLXqCgsRT0tprA==" }, "ip": { "version": "1.1.5", @@ -11304,9 +10592,9 @@ "dev": true }, "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true }, "is-absolute": { @@ -11319,6 +10607,12 @@ "is-windows": "^1.0.1" } }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -11350,11 +10644,11 @@ "dev": true }, "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "^2.0.0" } }, "is-buffer": { @@ -11363,18 +10657,32 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", "dev": true, "requires": { - "ci-info": "^1.5.0" + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" } }, "is-data-descriptor": { @@ -11396,9 +10704,9 @@ } }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, "is-descriptor": { @@ -11424,6 +10732,12 @@ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", "dev": true }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", + "dev": true + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -11435,22 +10749,16 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-glob": { "version": "4.0.1", @@ -11461,15 +10769,29 @@ } }, "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "dependencies": { + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true + } } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -11483,9 +10805,9 @@ "dev": true }, "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", "dev": true }, "is-number": { @@ -11507,33 +10829,33 @@ } }, "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true }, "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true }, "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "^2.1.0" } }, "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "^1.0.2" } }, "is-plain-obj": { @@ -11550,25 +10872,22 @@ "isobject": "^3.0.1" } }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", "dev": true, "requires": { - "has": "^1.0.1" + "has-symbols": "^1.0.1" } }, "is-relative": { @@ -11580,10 +10899,10 @@ "is-unc-path": "^1.0.0" } }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, "is-stream": { @@ -11592,13 +10911,22 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "^1.0.1" } }, "is-text-path": { @@ -11652,19 +10980,22 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", - "dev": true, - "requires": { - "buffer-alloc": "^1.2.0" - } + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true }, "isexe": { "version": "2.0.0", @@ -11682,72 +11013,24 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, - "istanbul-api": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.6.tgz", - "integrity": "sha512-x0Eicp6KsShG1k1rMgBAi/1GgY7kFGEBwQpw3PXGEmu+rBcBNhqU8g2DgY9mlepAsLPzrzrbqSgCGANnki4POA==", + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "requires": { - "async": "^2.6.2", - "compare-versions": "^3.4.0", - "fileset": "^2.0.3", - "istanbul-lib-coverage": "^2.0.5", - "istanbul-lib-hook": "^2.0.7", - "istanbul-lib-instrument": "^3.3.0", - "istanbul-lib-report": "^2.0.8", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^2.2.4", - "js-yaml": "^3.13.1", - "make-dir": "^2.1.0", - "minimatch": "^3.0.4", - "once": "^1.4.0" + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" }, "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "dev": true, - "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -11756,115 +11039,46 @@ } } }, - "istanbul-instrumenter-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", - "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { - "convert-source-map": "^1.5.0", - "istanbul-lib-instrument": "^1.7.3", - "loader-utils": "^1.1.0", - "schema-utils": "^0.3.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "ajv": "^5.0.0" + "semver": "^6.0.0" } - } - } - }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", - "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", - "dev": true, - "requires": { - "append-transform": "^1.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", - "dev": true, - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "has-flag": "^4.0.0" } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true } } }, @@ -11896,37 +11110,22 @@ "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", "dev": true }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true } } }, "istanbul-reports": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", - "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", "dev": true, "requires": { - "handlebars": "^4.1.2" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, "istextorbinary": { @@ -11960,26 +11159,18 @@ } }, "jasmine-core": { - "version": "2.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", - "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.5.0.tgz", + "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==", "dev": true }, "jasmine-spec-reporter": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", - "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", + "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", "dev": true, "requires": { - "colors": "1.1.2" - }, - "dependencies": { - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - } + "colors": "1.4.0" } }, "jasminewd2": { @@ -11988,65 +11179,68 @@ "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", "dev": true }, - "js-base64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", - "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", - "dev": true + "jest-worker": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.0.0.tgz", + "integrity": "sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } }, "js-beautify": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.2.tgz", - "integrity": "sha512-ZtBYyNUYJIsBWERnQP0rPN9KjkrDfJcMjuVGcvXOUJrD1zmOGwhRwQ4msG+HJ+Ni/FA7+sRQEMYVzdTQDvnzvQ==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz", + "integrity": "sha512-a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A==", "dev": true, "requires": { "config-chain": "^1.1.12", "editorconfig": "^0.15.3", "glob": "^7.1.3", - "mkdirp": "~0.5.1", - "nopt": "~4.0.1" + "mkdirp": "~1.0.3", + "nopt": "^4.0.3" }, "dependencies": { - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true } } }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true - }, "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - } } }, "jsbn": { @@ -12086,9 +11280,15 @@ } }, "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, "json-parse-better-errors": { @@ -12134,20 +11334,12 @@ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { "minimist": "^1.2.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } } }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -12171,9 +11363,25 @@ "stackblur-canvas": "2.2.0" }, "dependencies": { + "css-line-break": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz", + "integrity": "sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo=", + "requires": { + "base64-arraybuffer": "^0.1.5" + } + }, "file-saver": { "version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e", "from": "github:eligrey/FileSaver.js#1.3.8" + }, + "html2canvas": { + "version": "1.0.0-alpha.12", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz", + "integrity": "sha1-OxmS48mz9WBjw1/WIElPN+uohRM=", + "requires": { + "css-line-break": "1.0.1" + } } } }, @@ -12189,9 +11397,9 @@ } }, "jszip": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", - "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", "requires": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -12211,55 +11419,53 @@ "integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk=" }, "karma": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-4.4.1.tgz", - "integrity": "sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.1.0.tgz", + "integrity": "sha512-I3aPbkuIbwuBo6wSog97P5WnnhCgUTsWTu/bEw1vZVQFbXmKO3PK+cfFhZioOgVtJAuQxoyauGNjnwXNHMCxbw==", "dev": true, "requires": { - "bluebird": "^3.3.0", - "body-parser": "^1.16.1", + "body-parser": "^1.19.0", "braces": "^3.0.2", "chokidar": "^3.0.0", - "colors": "^1.1.0", - "connect": "^3.6.0", + "colors": "^1.4.0", + "connect": "^3.7.0", "di": "^0.0.1", - "dom-serialize": "^2.2.0", - "flatted": "^2.0.0", - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "http-proxy": "^1.13.0", - "isbinaryfile": "^3.0.0", - "lodash": "^4.17.14", - "log4js": "^4.0.0", - "mime": "^2.3.1", - "minimatch": "^3.0.2", - "optimist": "^0.6.1", - "qjobs": "^1.1.4", - "range-parser": "^1.2.0", - "rimraf": "^2.6.0", - "safe-buffer": "^5.0.1", - "socket.io": "2.1.1", + "dom-serialize": "^2.2.1", + "flatted": "^2.0.2", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.15", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^2.3.0", "source-map": "^0.6.1", - "tmp": "0.0.33", - "useragent": "2.3.0" + "tmp": "0.2.1", + "ua-parser-js": "0.7.21", + "yargs": "^15.3.1" }, "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "dev": true - }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -12269,81 +11475,144 @@ "fill-range": "^7.0.1" } }, - "chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "color-name": "~1.1.4" } }, - "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "decamelize": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-3.2.0.tgz", + "integrity": "sha512-4TgkVUsmmu7oCSyGBm5FvfMoACuoh9EOidm7V5/J2X2djAwwt57qb3F2KMP2ITqODTCSwb+YRV+0Zqrv18k/hw==", "dev": true, - "optional": true + "requires": { + "xregexp": "^4.2.4" + } }, - "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "to-regex-range": "^5.0.1" } }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "binary-extensions": "^2.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", "dev": true }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "requires": { - "picomatch": "^2.0.4" + "rimraf": "^3.0.0" } }, "to-regex-range": { @@ -12354,53 +11623,112 @@ "requires": { "is-number": "^7.0.0" } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.0.tgz", + "integrity": "sha512-D3fRFnZwLWp8jVAAhPZBsmeIHY8tTsb8ItV9KaAaopmC6wde2u6Yw29JBIZHXw14kgkRnYmDgmQU4FVMDlIsWw==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^3.2.0", + "find-up": "^4.1.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": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + } + } } } }, "karma-chrome-launcher": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", - "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", "dev": true, "requires": { - "fs-access": "^1.0.0", "which": "^1.2.1" } }, "karma-coverage-istanbul-reporter": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.6.tgz", - "integrity": "sha512-WFh77RI8bMIKdOvI/1/IBmgnM+Q7NOLhnwG91QJrM8lW+CIXCjTzhhUsT/svLvAkLmR10uWY4RyYbHMLkTglvg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", "dev": true, "requires": { - "istanbul-api": "^2.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", "minimatch": "^3.0.4" } }, "karma-jasmine": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", - "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", - "dev": true - }, - "karma-jasmine-html-reporter": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", - "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-3.3.1.tgz", + "integrity": "sha512-Nxh7eX9mOQMyK0VSsMxdod+bcqrR/ikrmEiWj5M6fwuQ7oI+YEF1FckaDsWfs6TIpULm9f0fTKMjF7XcrvWyqQ==", "dev": true, "requires": { - "karma-jasmine": "^1.0.2" + "jasmine-core": "^3.5.0" } }, + "karma-jasmine-html-reporter": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "dev": true + }, "karma-source-map-support": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", - "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, "requires": { "source-map-support": "^0.5.5" } }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -12408,9 +11736,9 @@ "dev": true }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, "last-run": { "version": "1.1.1", @@ -12423,12 +11751,12 @@ } }, "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "dev": true, "requires": { - "package-json": "^4.0.0" + "package-json": "^6.3.0" } }, "lazystream": { @@ -12459,60 +11787,91 @@ } }, "less": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz", - "integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==", + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/less/-/less-3.11.3.tgz", + "integrity": "sha512-VkZiTDdtNEzXA3LgjQiC3D7/ejleBPFVvq+aRI9mIj+Zhmif5TvFPM244bT4rzkvOCvJ9q4zAztok1M7Nygagw==", "dev": true, "requires": { "clone": "^2.1.2", "errno": "^0.1.1", "graceful-fs": "^4.1.2", "image-size": "~0.5.0", + "make-dir": "^2.1.0", "mime": "^1.4.1", - "mkdirp": "^0.5.0", "promise": "^7.1.1", "request": "^2.83.0", - "source-map": "~0.6.0" + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + } } }, "less-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", - "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^3.0.0" - } - }, - "less-plugin-npm-import": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/less-plugin-npm-import/-/less-plugin-npm-import-2.1.0.tgz", - "integrity": "sha1-gj5phskzGKmBccqFiEi2vq1Vvz4=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-6.1.0.tgz", + "integrity": "sha512-/jLzOwLyqJ7Kt3xg5sHHkXtOyShWwFj410K9Si9WO+/h8rmYxxkSR0A3/hFEntWudE20zZnWMtpMYnLzqTVdUA==", "dev": true, "requires": { - "promise": "~7.0.1", - "resolve": "~1.1.6" + "clone": "^2.1.2", + "less": "^3.11.1", + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" }, "dependencies": { - "promise": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.0.4.tgz", - "integrity": "sha1-Nj6EpMNsg1a4kP7WLJHOhdAu1Tk=", + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { - "asap": "~2.0.3" + "minimist": "^1.2.5" } }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } } } }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -12523,9 +11882,9 @@ } }, "license-webpack-plugin": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.0.tgz", - "integrity": "sha512-vDiBeMWxjE9n6TabQ9J4FH8urFdsRK0Nvxn1cit9biCiR9aq1zBR0X2BlAkEiIG6qPamLeU0GzvIgLkrFc398A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.2.0.tgz", + "integrity": "sha512-XPsdL/0brSHf+7dXIlRqotnCQ58RX2au6otkOg4U3dm8uH+Ka/fW4iukEs95uXm+qKe/SBs+s1Ll/aQddKG+tg==", "dev": true, "requires": { "@types/webpack-sources": "^0.1.5", @@ -12575,6 +11934,12 @@ } } }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, "live-server": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.1.tgz", @@ -12596,22 +11961,59 @@ "serve-index": "^1.9.1" }, "dependencies": { - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { - "object-assign": "^4", - "vary": "^1" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, "faye-websocket": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", @@ -12621,6 +12023,46 @@ "websocket-driver": ">=0.5.1" } }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -12642,11 +12084,16 @@ "is-wsl": "^1.1.0" } }, - "proxy-middleware": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", - "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", - "dev": true + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } }, "send": { "version": "0.17.1", @@ -12684,6 +12131,15 @@ "strip-bom": "^2.0.0" }, "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -12698,29 +12154,28 @@ "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" }, "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "requires": { "big.js": "^5.2.2", - "emojis-list": "^2.0.0", + "emojis-list": "^3.0.0", "json5": "^1.0.1" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", "dev": true }, "lodash._reinterpolate": { @@ -12746,16 +12201,22 @@ "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.mergewith": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", "dev": true }, - "lodash.tail": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", - "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, "lodash.template": { @@ -12777,17 +12238,32 @@ "lodash._reinterpolate": "^3.0.0" } }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, "log4js": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz", - "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", "dev": true, "requires": { - "date-format": "^2.0.0", + "date-format": "^3.0.0", "debug": "^4.1.1", - "flatted": "^2.0.0", + "flatted": "^2.0.1", "rfdc": "^1.1.4", - "streamroller": "^1.0.6" + "streamroller": "^2.2.4" }, "dependencies": { "debug": { @@ -12808,16 +12284,14 @@ } }, "loglevel": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.6.tgz", - "integrity": "sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==", - "dev": true + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", + "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==" }, "loglevel-plugin-prefix": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", - "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", - "dev": true + "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==" }, "loose-envify": { "version": "1.4.0", @@ -12845,13 +12319,11 @@ "dev": true }, "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "yallist": "^3.0.2" } }, "lunr": { @@ -12861,142 +12333,52 @@ "dev": true }, "macos-release": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", - "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.0.tgz", + "integrity": "sha512-ko6deozZYiAkqa/0gmcsz+p4jSy3gY7/ZsCEokPaYd8k+6/aXGkiTgr61+Owup7Sf+xjqW8u2ElhoM9SEcEfuA==", "dev": true }, "magic-string": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.4.tgz", - "integrity": "sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw==", + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "dev": true, "requires": { "sourcemap-codec": "^1.4.4" } }, "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "requires": { - "pify": "^3.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" } }, "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "make-fetch-happen": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz", - "integrity": "sha512-YMJrAjHSb/BordlsDEcVcPyTbiJKkzqMf48N8dAJZT9Zjctrkb6Yg4TY9Sq2AwSIQJFn5qBBKVTYt3vP5FMIHA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", "dev": true, "requires": { "agentkeepalive": "^3.4.1", - "cacache": "^11.3.3", + "cacache": "^12.0.0", "http-cache-semantics": "^3.8.1", "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", + "https-proxy-agent": "^2.2.3", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "node-fetch-npm": "^2.0.2", "promise-retry": "^1.1.1", "socks-proxy-agent": "^4.0.0", "ssri": "^6.0.0" - }, - "dependencies": { - "cacache": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", - "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "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.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } } }, "make-iterator": { @@ -13008,29 +12390,15 @@ "kind-of": "^6.0.2" } }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==" - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", + "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", "dev": true }, "map-stream": { @@ -13103,23 +12471,18 @@ "safe-buffer": "^5.1.2" } }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -13136,28 +12499,146 @@ "dev": true }, "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-7.0.1.tgz", + "integrity": "sha512-tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "arrify": "^2.0.1", + "camelcase": "^6.0.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "camelcase": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz", + "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "dev": true + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } } } }, @@ -13168,26 +12649,24 @@ "dev": true }, "merge-source-map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "requires": { - "source-map": "^0.5.6" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "source-map": "^0.6.1" } }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, "methods": { @@ -13228,6 +12707,13 @@ "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "mime": { @@ -13237,39 +12723,60 @@ "dev": true }, "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "requires": { - "mime-db": "1.40.0" + "mime-db": "1.44.0" } }, - "mimeparse": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/mimeparse/-/mimeparse-0.1.4.tgz", - "integrity": "sha1-2vsCdSNw/SJgk64xUsJxrwGsJUo=", - "dev": true - }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, "mini-css-extract-plugin": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz", - "integrity": "sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==", "dev": true, "requires": { "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", "schema-utils": "^1.0.0", "webpack-sources": "^1.1.0" + }, + "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + } } }, "minimalistic-assert": { @@ -13291,52 +12798,87 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, "requires": { "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" } }, "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "yallist": "^4.0.0" }, "dependencies": { "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz", + "integrity": "sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", + "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", "dev": true, "requires": { - "minipass": "^2.9.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "requires": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -13344,7 +12886,7 @@ "flush-write-stream": "^1.0.0", "from2": "^2.1.0", "parallel-transform": "^1.1.0", - "pump": "^2.0.1", + "pump": "^3.0.0", "pumpify": "^1.3.3", "stream-each": "^1.1.0", "through2": "^2.0.0" @@ -13369,30 +12911,12 @@ } } }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "dev": true, - "requires": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", - "dev": true - } - } - }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" } }, "modify-values": { @@ -13402,21 +12926,29 @@ "dev": true }, "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", + "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==" }, "morgan": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", - "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", "dev": true, "requires": { - "basic-auth": "~2.0.0", + "basic-auth": "~2.0.1", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "~2.0.0", "on-finished": "~2.3.0", - "on-headers": "~1.0.1" + "on-headers": "~1.0.2" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + } } }, "move-concurrently": { @@ -13432,6 +12964,23 @@ "run-queue": "^1.0.3" } }, + "move-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==", + "dev": true, + "requires": { + "path-exists": "^4.0.0" + }, + "dependencies": { + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -13463,6 +13012,17 @@ "array-union": "^1.0.1", "arrify": "^1.0.0", "minimatch": "^3.0.0" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + } } }, "mute-stdout": { @@ -13472,15 +13032,16 @@ "dev": true }, "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "optional": true }, "nanomatch": { "version": "1.2.13", @@ -13518,150 +13079,178 @@ "dev": true }, "ng-packagr": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-4.7.1.tgz", - "integrity": "sha512-MIPKxyrnV22fS3wSfst2XjwWOonFKujVVEnIehYJhiu8GOg37bCdbbr9plsE1jRDmDAUz6M1MvdKibUrJyRp6Q==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-10.0.1.tgz", + "integrity": "sha512-jTG79Dg/FuSuDIcCzbd/MOyJDrb+DUBXNT2NZbHxQ7y5Tm0tlqJs/9ffr0q0879A8TYuV8GH3+4uP3Oup6LBFw==", "dev": true, "requires": { - "@ngtools/json-schema": "^1.1.0", - "autoprefixer": "^9.0.0", - "browserslist": "^4.0.0", - "chalk": "^2.3.1", - "chokidar": "^2.0.3", - "clean-css": "^4.1.11", - "commander": "^2.12.0", - "fs-extra": "^7.0.0", + "@rollup/plugin-commonjs": "^13.0.0", + "@rollup/plugin-json": "^4.0.0", + "@rollup/plugin-node-resolve": "^8.0.0", + "ajv": "^6.10.2", + "autoprefixer": "^9.6.5", + "browserslist": "^4.7.0", + "chalk": "^4.0.0", + "chokidar": "^3.2.1", + "commander": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "fs-extra": "^9.0.0", "glob": "^7.1.2", "injection-js": "^2.2.1", - "less": "^3.8.0", - "less-plugin-npm-import": "^2.1.0", - "node-sass": "^4.9.3", + "less": "^3.10.3", "node-sass-tilde-importer": "^1.0.0", - "opencollective-postinstall": "^2.0.1", - "postcss": "^7.0.0", + "postcss": "^7.0.29", "postcss-url": "^8.0.0", - "read-pkg-up": "^4.0.0", - "rimraf": "^2.6.1", - "rollup": "^0.67.0", - "rollup-plugin-commonjs": "^9.1.3", - "rollup-plugin-json": "^3.1.0", - "rollup-plugin-node-resolve": "^4.0.0", - "rollup-plugin-sourcemaps": "^0.4.2", - "rxjs": "^6.0.0", - "stylus": "^0.54.5", - "uglify-js": "^3.0.7", - "update-notifier": "^2.3.0" + "read-pkg-up": "^5.0.0", + "rimraf": "^3.0.0", + "rollup": "^2.8.0", + "rollup-plugin-sourcemaps": "^0.6.0", + "rxjs": "^6.5.0", + "sass": "^1.23.0", + "stylus": "^0.54.7", + "terser": "^4.3.8", + "update-notifier": "^4.0.0" }, "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "color-name": "~1.1.4" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "dev": true, "requires": { + "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" } }, "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" } }, "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz", + "integrity": "sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==", "dev": true, "requires": { "find-up": "^3.0.0", - "read-pkg": "^3.0.0" + "read-pkg": "^5.0.0" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true } } }, "ngx-cacheable": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ngx-cacheable/-/ngx-cacheable-1.3.0.tgz", - "integrity": "sha512-g17+yg4rnSVycLXtNTJzuwa0LEb/S3zqWgQcpEOpRiCdnsMUtWQr+Mmt5vUk7tZwwfZ+18ODXmtyyxVXZzlgyQ==" + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/ngx-cacheable/-/ngx-cacheable-1.4.2.tgz", + "integrity": "sha512-W/YK3doaSbed7mxTIrhV1iyjpzM8uNCNka3cTgY+yH4stKwi3eO+kxRUMoI0sld2CLjkF61wU/BW+Gh6X3gtIw==" }, "nice-try": { "version": "1.0.5", @@ -13670,9 +13259,9 @@ "dev": true }, "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", "dev": true, "requires": { "encoding": "^0.1.11", @@ -13686,34 +13275,6 @@ "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", "dev": true }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } - } - }, "node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", @@ -13751,75 +13312,12 @@ } } }, - "node-releases": { - "version": "1.1.39", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.39.tgz", - "integrity": "sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "node-sass": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", - "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", - "dev": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.11", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, + "node-releases": { + "version": "1.1.59", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", + "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", + "dev": true + }, "node-sass-tilde-importer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz", @@ -13830,12 +13328,13 @@ } }, "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", "dev": true, "requires": { - "abbrev": "1" + "abbrev": "1", + "osenv": "^0.1.4" } }, "normalize-package-data": { @@ -13848,15 +13347,20 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + } } }, "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-range": { "version": "0.1.2", @@ -13864,6 +13368,12 @@ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, "now-and-later": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", @@ -13874,72 +13384,118 @@ } }, "npm-bundled": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", - "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "requires": { + "semver": "^7.1.1" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true }, "npm-package-arg": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz", + "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==", "dev": true, "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", + "hosted-git-info": "^3.0.2", + "semver": "^7.0.0", "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } } }, "npm-packlist": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz", - "integrity": "sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", "dev": true, "requires": { "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" } }, "npm-pick-manifest": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", - "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1", - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } } }, "npm-registry-fetch": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz", - "integrity": "sha512-VQCEZlydXw4AwLROAXWUR7QDfe2Y8Id/vpAgp6TI1/H78a4SiQ1kQrKZALm5/zxM5n4HIi+aYb+idUAV/RuY0Q==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.5.tgz", + "integrity": "sha512-yQ0/U4fYpCCqmueB2g8sc+89ckQ3eXpmU4+Yi2j5o/r0WkKvE2+Y0tK3DEILAtn2UaQTkjTHxIXe2/CSdit+/Q==", "dev": true, "requires": { "JSONStream": "^1.3.4", "bluebird": "^3.5.1", "figgy-pudding": "^3.4.1", "lru-cache": "^5.1.1", - "make-fetch-happen": "^4.0.2", - "npm-package-arg": "^6.1.0" + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" }, "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", "dev": true, "requires": { - "yallist": "^3.0.2" + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true } } }, @@ -13958,60 +13514,6 @@ "read-pkg": "^3.0.0", "shell-quote": "^1.6.1", "string.prototype.padend": "^3.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } } }, "npm-run-path": { @@ -14023,18 +13525,6 @@ "path-key": "^2.0.0" } }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, "nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", @@ -14044,12 +13534,6 @@ "boolbase": "~1.0.0" } }, - "null-check": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", - "dev": true - }, "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", @@ -14112,16 +13596,20 @@ } }, "object-inspect": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", - "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true }, "object-is": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", - "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", + "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } }, "object-keys": { "version": "1.1.1", @@ -14129,6 +13617,12 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, + "object-path": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", + "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=", + "dev": true + }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -14162,13 +13656,13 @@ } }, "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "object.map": { @@ -14199,6 +13693,18 @@ "make-iterator": "^1.0.0" } }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, "obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", @@ -14206,22 +13712,38 @@ "dev": true }, "ol": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/ol/-/ol-5.3.3.tgz", - "integrity": "sha512-7eU4x8YMduNcED1D5wI+AMWDRe7/1HmGfsbV+kFFROI9RNABU/6n4osj6Q3trZbxxKnK2DSRIjIRGwRHT/Z+Ww==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/ol/-/ol-6.3.1.tgz", + "integrity": "sha512-cSSYizzUJQ7AhFSrLPAKopjDXPCHtJsXSmjf3xutPG+iyBeD9IOepQGSgpOSZavPI1gsYh9wowiH+NZwVJ/NYQ==", "requires": { - "pbf": "3.1.0", + "elm-pep": "^1.0.4", + "pbf": "3.2.1", "pixelworks": "1.1.0", - "rbush": "2.0.2" + "rbush": "^3.0.1" + }, + "dependencies": { + "quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, + "rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "requires": { + "quickselect": "^2.0.0" + } + } } }, "ol-mapbox-style": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-4.3.1.tgz", - "integrity": "sha512-b3p4lvmEAxyoid3WklQJVH0wfQgz8QU6E0c15Avbybt/3oL0LtZ76+TdHxq29GomFXWK3ywn+4PscPm4o+edRw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-6.1.2.tgz", + "integrity": "sha512-0n+6K1dhMH7/AMA1eAEb1Pt4ZRFWr1fiJWSgwHfDFQpK4yuhJgtLcn9dtxprB1NOpTHeJ5XbTKOrgTY/DR0oxQ==", "requires": { - "@mapbox/mapbox-gl-style-spec": "^13.6.0", - "mapbox-to-css-font": "^2.3.0", + "@mapbox/mapbox-gl-style-spec": "^13.14.0", + "mapbox-to-css-font": "^2.4.0", "webfont-matcher": "^1.1.0" } }, @@ -14254,35 +13776,39 @@ } }, "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", "dev": true, "requires": { - "mimic-fn": "^1.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - } + "mimic-fn": "^2.1.0" } }, "open": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.0.0.tgz", - "integrity": "sha512-/yb5mVZBz7mHLySMiSj2DcLtMBbFPJk5JBKEkHVZFxZAPzeg3L026O0T+lbdz1B2nyDnkClRSwRQJdeVUIF7zw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/open/-/open-7.0.4.tgz", + "integrity": "sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==", "dev": true, "requires": { - "is-wsl": "^1.1.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + } } }, "opencollective-postinstall": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", - "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", "dev": true }, "opn": { @@ -14294,16 +13820,6 @@ "is-wsl": "^1.1.0" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -14317,6 +13833,89 @@ "word-wrap": "~1.2.3" } }, + "ora": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz", + "integrity": "sha512-77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "ordered-read-streams": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", @@ -14381,10 +13980,10 @@ "os-tmpdir": "^1.0.0" } }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, "p-finally": { @@ -14393,76 +13992,90 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "pacote": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.4.0.tgz", - "integrity": "sha512-WQ1KL/phGMkedYEQx9ODsjj7xvwLSpdFJJdEXrLyw5SILMxcTNt5DTxT2Z93fXuLFYJBlZJdnwdalrQdB/rX5w==", + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", + "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", "dev": true, "requires": { "bluebird": "^3.5.3", - "cacache": "^11.3.2", + "cacache": "^12.0.2", + "chownr": "^1.1.2", "figgy-pudding": "^3.5.1", "get-stream": "^4.1.0", "glob": "^7.1.3", + "infer-owner": "^1.0.4", "lru-cache": "^5.1.1", - "make-fetch-happen": "^4.0.1", + "make-fetch-happen": "^5.0.0", "minimatch": "^3.0.4", "minipass": "^2.3.5", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", "npm-package-arg": "^6.1.0", "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^2.2.3", - "npm-registry-fetch": "^3.8.0", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", "osenv": "^0.1.5", "promise-inflight": "^1.0.1", "promise-retry": "^1.1.1", @@ -14471,102 +14084,66 @@ "safe-buffer": "^5.1.2", "semver": "^5.6.0", "ssri": "^6.0.1", - "tar": "^4.4.8", + "tar": "^4.4.10", "unique-filename": "^1.1.1", "which": "^1.3.1" }, - "dependencies": { - "cacache": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", - "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "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.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "dev": true, "requires": { - "pump": "^3.0.0" + "minipass": "^2.6.0" } }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "dev": true, "requires": { - "yallist": "^3.0.2" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", "dev": true, "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "minipass": "^2.9.0" } }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" } }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1" + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" } }, "tar": { @@ -14583,19 +14160,13 @@ "safe-buffer": "^5.1.2", "yallist": "^3.0.3" } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true } } }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "parallel-transform": { "version": "1.2.0", @@ -14638,12 +14209,13 @@ "dev": true }, "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "parse-node-version": { @@ -14737,378 +14309,795 @@ "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", "dev": true, "requires": { - "path-root-regex": "^0.1.0" + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "~2.3" + } + }, + "pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "requires": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + } + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pdfkit": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.11.0.tgz", + "integrity": "sha512-1s9gaumXkYxcVF1iRtSmLiISF2r4nHtsTgpwXiK8Swe+xwk/1pm8FJjYqN7L3x13NsWnGyUFntWcO8vfqq+wwA==", + "dev": true, + "requires": { + "crypto-js": "^3.1.9-1", + "fontkit": "^1.8.0", + "linebreak": "^1.0.2", + "png-js": "^1.0.0" + } + }, + "pdfmake": { + "version": "0.1.66", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.1.66.tgz", + "integrity": "sha512-NFR1hn5d4NDPOGFY2/jCt6eRLO2x2BFtr/vdl321DjlPYX9DxGwDAgCnNfTfh96lhewHDuAD8YU4X2l0kjnB2Q==", + "dev": true, + "requires": { + "iconv-lite": "^0.6.0", + "linebreak": "^1.0.2", + "pdfkit": "^0.11.0", + "svg-to-pdfkit": "^0.1.8" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pixelworks": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pixelworks/-/pixelworks-1.1.0.tgz", + "integrity": "sha1-Hwla1I3Ki/ihyCWOAJIDGkTyLKU=" + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true + }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "dependencies": { + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + } + } + }, + "png-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", + "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==", + "dev": true + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.26", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz", + "integrity": "sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "7.0.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.31.tgz", + "integrity": "sha512-a937VDHE1ftkjk+8/7nj/mrjtmkn69xxzJgRETXdAUU+IgOYPQNJF17haGWbeDxSyk++HA14UA98FurvPyBJOA==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", + "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" } }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", + "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } }, - "path-type": { + "postcss-loader": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", "dev": true, "requires": { - "pify": "^3.0.0" + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" } }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", "dev": true, "requires": { - "through": "~2.3" + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } } }, - "pbf": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.1.0.tgz", - "integrity": "sha512-/hYJmIsTmh7fMkHAWWXJ5b8IKLWdjdlAFb3IHkRBn1XUhIYBChVGfVwmHEAV3UfXTxsP/AKfYTXTS/dCPxJd5w==", + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, "requires": { - "ieee754": "^1.1.6", - "resolve-protobuf-schema": "^2.0.0" + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } } }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } } }, - "pdfkit": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.10.0.tgz", - "integrity": "sha512-mRJ6iuDzpIQ4ftKp5GvijLXNVRK86xjnyIPBraYSPrUPubNqWM5/oYmc7FZKUWz3wusRTj3PLR9HJ1X5ooqfsg==", + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", "dev": true, "requires": { - "crypto-js": "^3.1.9-1", - "fontkit": "^1.0.0", - "linebreak": "^0.3.0", - "png-js": ">=0.1.0" + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { - "base64-js": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", - "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true - }, - "brfs": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", - "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", - "dev": true, - "requires": { - "quote-stream": "^1.0.1", - "resolve": "^1.1.5", - "static-module": "^2.2.0", - "through2": "^2.0.0" - } - }, - "escodegen": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", - "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", - "dev": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "linebreak": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz", - "integrity": "sha1-BSZICmLAW9Z58+nZmDDgnGp9DtY=", - "dev": true, - "requires": { - "base64-js": "0.0.8", - "brfs": "^1.3.0", - "unicode-trie": "^0.3.0" - } - }, - "magic-string": { - "version": "0.22.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", - "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", - "dev": true, - "requires": { - "vlq": "^0.2.2" - } - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true - }, - "static-module": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", - "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", - "dev": true, - "requires": { - "concat-stream": "~1.6.0", - "convert-source-map": "^1.5.1", - "duplexer2": "~0.1.4", - "escodegen": "~1.9.0", - "falafel": "^2.1.0", - "has": "^1.0.1", - "magic-string": "^0.22.4", - "merge-source-map": "1.0.4", - "object-inspect": "~1.4.0", - "quote-stream": "~1.0.2", - "readable-stream": "~2.3.3", - "shallow-copy": "~0.0.1", - "static-eval": "^2.0.0", - "through2": "~2.0.3" - } - }, - "unicode-trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", - "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", - "dev": true, - "requires": { - "pako": "^0.2.5", - "tiny-inflate": "^1.0.0" - } } } }, - "pdfmake": { - "version": "0.1.62", - "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.1.62.tgz", - "integrity": "sha512-2QIzijdkwFBChTFu5nVmMe+fLBQTAYTPTxi4jGbUTyGxZBq7YR1I17FBk1Cs+3nrYufNKNukT6OR1RNxbovsTA==", + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", "dev": true, "requires": { - "iconv-lite": "^0.5.0", - "linebreak": "^1.0.2", - "pdfkit": "^0.10.0", - "svg-to-pdfkit": "^0.1.7" + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" }, "dependencies": { - "iconv-lite": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz", - "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==", + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } } } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } }, - "picomatch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.1.tgz", - "integrity": "sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==", - "dev": true + "postcss-modules-local-by-default": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", + "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.16", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.0" + } }, - "pidtree": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", - "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==", - "dev": true + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } }, - "pify": { + "postcss-modules-values": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", "dev": true, "requires": { - "pinkie": "^2.0.0" + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } } }, - "pixelworks": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pixelworks/-/pixelworks-1.1.0.tgz", - "integrity": "sha1-Hwla1I3Ki/ihyCWOAJIDGkTyLKU=" + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", "dev": true, "requires": { - "find-up": "^2.1.0" + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } } }, - "pkginfo": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", - "dev": true + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", "dev": true, "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, - "png-js": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/png-js/-/png-js-0.1.1.tgz", - "integrity": "sha1-HMfCEjA6yr50Jj7DrHgAlYAkLZM=", - "dev": true - }, - "portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", - "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", "dev": true, "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.1" + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } }, - "postcss": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", - "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } } }, - "postcss-import": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", - "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", "dev": true, "requires": { - "postcss": "^7.0.1", - "postcss-value-parser": "^3.2.3", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, - "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", - "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", "dev": true, "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } } }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", "dev": true, "requires": { - "loader-utils": "^1.1.0", + "alphanum-sort": "^1.0.0", "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" + "uniqs": "^2.0.0" } }, "postcss-url": { @@ -15125,17 +15114,17 @@ }, "dependencies": { "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", "dev": true } } }, "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", "dev": true }, "prelude-ls": { @@ -15157,6 +15146,139 @@ "requires": { "get-stdin": "^4.0.1", "meow": "^3.1.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + } } }, "pretty-hrtime": { @@ -15165,12 +15287,6 @@ "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -15243,12 +15359,12 @@ } }, "proj4": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.5.0.tgz", - "integrity": "sha512-XZTRT7OPdLzgvtTqL8DG2cEj8lYdovztOwiwpwRSYayOty5Ipf3H68dh/fiL+HKDEyetmQSMhkkMGiJoyziz3w==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.6.2.tgz", + "integrity": "sha512-Pn0+HZtXb4JzuN8RR0VM7yyseegiYHbXkF+2FOdGpzRojcZ1BTjWxOh7qfp2vH0EyLu8pvcrhLxidwzgyUy/Gw==", "requires": { "mgrs": "1.0.0", - "wkt-parser": "^1.2.0" + "wkt-parser": "^1.2.4" } }, "promise": { @@ -15279,6 +15395,14 @@ "requires": { "err-code": "^1.0.0", "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } } }, "proto-list": { @@ -15288,9 +15412,9 @@ "dev": true }, "protocol-buffers-schema": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz", - "integrity": "sha512-Xdayp8sB/mU+sUV4G7ws8xtYMGdQnxbeIfLjyO9TZZRJdztBGhlmbI5x1qcY4TG5hBkIKGnc28i7nXxaugu88w==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz", + "integrity": "sha512-G/2kcamPF2S49W5yaMGdIpkG6+5wZF0fzBteLKgEHjbNzqjZQ85aAs1iJGto31EJaSTkNvHs5IXuHSaTLWBAiA==" }, "protoduck": { "version": "5.0.1", @@ -15302,9 +15426,9 @@ } }, "protractor": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz", - "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", "dev": true, "requires": { "@types/q": "^0.0.32", @@ -15315,15 +15439,27 @@ "glob": "^7.0.3", "jasmine": "2.8.0", "jasminewd2": "^2.1.0", - "optimist": "~0.6.0", "q": "1.4.1", "saucelabs": "^1.5.0", "selenium-webdriver": "3.6.0", "source-map-support": "~0.4.0", "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.0.6" + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" }, "dependencies": { + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", @@ -15343,6 +15479,104 @@ "supports-color": "^2.0.0" } }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "decamelize": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-3.2.0.tgz", + "integrity": "sha512-4TgkVUsmmu7oCSyGBm5FvfMoACuoh9EOidm7V5/J2X2djAwwt57qb3F2KMP2ITqODTCSwb+YRV+0Zqrv18k/hw==", + "dev": true, + "requires": { + "xregexp": "^4.2.4" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -15358,24 +15592,121 @@ "source-map": "^0.5.6" } }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs": { + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.0.tgz", + "integrity": "sha512-D3fRFnZwLWp8jVAAhPZBsmeIHY8tTsb8ItV9KaAaopmC6wde2u6Yw29JBIZHXw14kgkRnYmDgmQU4FVMDlIsWw==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^3.2.0", + "find-up": "^4.1.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": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + } + } } } }, "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", "dev": true, "requires": { "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" + "ipaddr.js": "1.9.1" } }, + "proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", + "dev": true + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -15388,9 +15719,9 @@ "dev": true }, "psl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", - "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "public-encrypt": { "version": "4.0.3", @@ -15403,6 +15734,13 @@ "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "publish-release": { @@ -15497,12 +15835,6 @@ } } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -15512,9 +15844,9 @@ } }, "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -15528,6 +15860,17 @@ "duplexify": "^3.6.0", "inherits": "^2.0.3", "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } } }, "punycode": { @@ -15535,34 +15878,21 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, - "q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "dev": true - }, - "q-io": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/q-io/-/q-io-1.13.2.tgz", - "integrity": "sha1-7qEw1IHdteGqG8WmaFX3OR0G8AM=", + "pupa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", + "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", "dev": true, "requires": { - "collections": "^0.2.0", - "mime": "^1.2.11", - "mimeparse": "^0.1.4", - "q": "^1.0.1", - "qs": "^1.2.1", - "url2": "^0.0.0" - }, - "dependencies": { - "qs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz", - "integrity": "sha1-GbV/8k3CqZzh+L32r82ln472H4g=", - "dev": true - } + "escape-goat": "^2.0.0" } }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, "qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", @@ -15574,6 +15904,16 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -15591,9 +15931,9 @@ "dev": true }, "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true }, "quickselect": { @@ -15610,14 +15950,6 @@ "buffer-equal": "0.0.1", "minimist": "^1.1.3", "through2": "^2.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "randombytes": { @@ -15664,13 +15996,46 @@ } }, "raw-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-1.0.0.tgz", - "integrity": "sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz", + "integrity": "sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } } }, "rbush": { @@ -15691,14 +16056,6 @@ "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "read": { @@ -15727,71 +16084,135 @@ } } }, + "read-package-json": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz", + "integrity": "sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^1.0.0", + "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "path-type": "^3.0.0" }, "dependencies": { - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" } }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true } } }, "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" }, "dependencies": { "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "locate-path": "^2.0.0" } }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true } } }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15809,14 +16230,24 @@ } } }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "picomatch": "^2.2.1" } }, "readline2": { @@ -15862,13 +16293,13 @@ } }, "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" } }, "reflect-metadata": { @@ -15878,33 +16309,33 @@ "dev": true }, "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", "dev": true }, "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", "dev": true, "requires": { "regenerate": "^1.4.0" } }, "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", "dev": true }, "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", "dev": true, "requires": { - "private": "^0.1.6" + "@babel/runtime": "^7.8.4" } }, "regex-not": { @@ -15916,55 +16347,64 @@ "safe-regex": "^1.1.0" } }, + "regex-parser": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz", + "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==", + "dev": true + }, "regexp.prototype.flags": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", - "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", "dev": true, "requires": { - "define-properties": "^1.1.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", "dev": true, "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" } }, "registry-auth-token": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "^1.2.8" } }, "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", "dev": true, "requires": { - "rc": "^1.0.1" + "rc": "^1.2.8" } }, "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", "dev": true }, "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -16024,9 +16464,9 @@ } }, "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true }, "replace-homedir": { @@ -16052,9 +16492,9 @@ } }, "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -16063,7 +16503,7 @@ "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", - "har-validator": "~5.1.0", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -16073,25 +16513,9 @@ "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - } } }, "require-directory": { @@ -16101,9 +16525,9 @@ "dev": true }, "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "requires-port": { @@ -16113,9 +16537,9 @@ "dev": true }, "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -16168,13 +16592,79 @@ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, + "resolve-url-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz", + "integrity": "sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "2.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, @@ -16193,9 +16683,39 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", "dev": true }, "rfdc": { @@ -16204,6 +16724,18 @@ "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", "dev": true }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, "rgbcolor": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", @@ -16227,75 +16759,47 @@ } }, "rollup": { - "version": "0.67.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.67.4.tgz", - "integrity": "sha512-AVuP73mkb4BBMUmksQ3Jw0jTrBTU1i7rLiUYjFxLZGb3xiFmtVEg40oByphkZAsiL0bJC3hRAJUQos/e5EBd+w==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "@types/node": "*" - } - }, - "rollup-plugin-commonjs": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.3.4.tgz", - "integrity": "sha512-DTZOvRoiVIHHLFBCL4pFxOaJt8pagxsVldEXBOn6wl3/V21wVaj17HFfyzTsQUuou3sZL3lEJZVWKPFblJfI6w==", - "dev": true, - "requires": { - "estree-walker": "^0.6.0", - "magic-string": "^0.25.2", - "resolve": "^1.10.0", - "rollup-pluginutils": "^2.6.0" - } - }, - "rollup-plugin-json": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-json/-/rollup-plugin-json-3.1.0.tgz", - "integrity": "sha512-BlYk5VspvGpjz7lAwArVzBXR60JK+4EKtPkCHouAWg39obk9S61hZYJDBfMK+oitPdoe11i69TlxKlMQNFC/Uw==", - "dev": true, - "requires": { - "rollup-pluginutils": "^2.3.1" - } - }, - "rollup-plugin-node-resolve": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-4.2.4.tgz", - "integrity": "sha512-t/64I6l7fZ9BxqD3XlX4ZeO6+5RLKyfpwE2CiPNUKa+GocPlQhf/C208ou8y3AwtNsc6bjSk/8/6y/YAyxCIvw==", + "version": "2.10.9", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.10.9.tgz", + "integrity": "sha512-dY/EbjiWC17ZCUSyk14hkxATAMAShkMsD43XmZGWjLrgFj15M3Dw2kEkA9ns64BiLFm9PKN6vTQw8neHwK74eg==", "dev": true, "requires": { - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.10.0" + "fsevents": "~2.1.2" } }, "rollup-plugin-sourcemaps": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.4.2.tgz", - "integrity": "sha1-YhJaqUCHqt97g+9N+vYptHMTXoc=", - "dev": true, - "requires": { - "rollup-pluginutils": "^2.0.1", - "source-map-resolve": "^0.5.0" - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.2.tgz", + "integrity": "sha512-9AwTKg3yRykwzemfLt71ySe0LvrAci+bpsOL1LaTYFk5BX4HF6X7DQfpHa74ANfSja3hyjiQkXCR8goSOnW//Q==", "dev": true, "requires": { - "estree-walker": "^0.6.1" + "@rollup/pluginutils": "^3.0.9", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "dev": true }, "run-queue": { "version": "1.0.3", @@ -16317,17 +16821,24 @@ "dev": true }, "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", + "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==", "requires": { "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } } }, "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safe-regex": { "version": "1.1.0", @@ -16342,30 +16853,44 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "dev": true, + "sass": { + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.5.tgz", + "integrity": "sha512-FG2swzaZUiX53YzZSjSakzvGtlds0lcbF+URuU9mxOv7WBh7NhXEVDa4kPKN4hN6fC2TkOTOKqiqp6d53N9X5Q==", "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" + "chokidar": ">=2.0.0 <4.0.0" } }, "sass-loader": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", - "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", + "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", "dev": true, "requires": { - "clone-deep": "^2.0.1", - "loader-utils": "^1.0.1", - "lodash.tail": "^4.1.1", - "neo-async": "^2.5.0", - "pify": "^3.0.0", - "semver": "^5.5.0" + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", + "semver": "^6.3.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "saucelabs": { @@ -16393,12 +16918,13 @@ } }, "scope-analyzer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.0.5.tgz", - "integrity": "sha512-+U5H0417mnTEstCD5VwOYO7V4vYuSqwqjFap40ythe67bhMFL5C3UgPwyBv7KDJsqUBIKafOD57xMlh1rN7eaw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.1.tgz", + "integrity": "sha512-azEAihtQ9mEyZGhfgTJy3IbOWEzeOrYbg7NcYEshPKnKd+LZmC3TNd5dmDxbLBsTG/JVWmCp+vDJ03vJjeXMHg==", "dev": true, "requires": { "array-from": "^2.1.1", + "dash-ast": "^1.0.0", "es6-map": "^0.1.5", "es6-set": "^0.1.5", "es6-symbol": "^3.1.1", @@ -16407,227 +16933,106 @@ } }, "scroll-into-view-if-needed": { - "version": "2.2.20", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.20.tgz", - "integrity": "sha512-P9kYMrhi9f6dvWwTGpO5I3HgjSU/8Mts7xL3lkoH5xlewK7O9Obdc5WmMCzppln7bCVGNmf3qfoZXrpCeyNJXw==", + "version": "2.2.25", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.25.tgz", + "integrity": "sha512-C8RKJPq9lK7eubwGpLbUkw3lklcG3Ndjmea2PyauzrA0i4DPlzAmVMGxaZrBFqCrVLfvJmP80IyHnv4jxvg1OQ==", "requires": { - "compute-scroll-into-view": "1.0.11" + "compute-scroll-into-view": "^1.0.14" } }, "scss-bundle": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/scss-bundle/-/scss-bundle-2.5.1.tgz", - "integrity": "sha512-n5gUfBqbPDuP7LYxG7Oi51jeyErzqhLOtofQl9ctYi8DRwGYpnCJIOl+9L3/o5O5srfM80ADLF/wYg11NUnh3Q==", - "dev": true, - "requires": { - "@types/chokidar": "^1.7.5", - "@types/lodash.debounce": "^4.0.4", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/scss-bundle/-/scss-bundle-3.1.2.tgz", + "integrity": "sha512-lvxTwCKDLgzmRWhGwJ834ggtnEhs0G9FxSJRWte+NwlshVvBcQ/kOHHkpAGDpCxIMNGz/Utl0yd/MWyQAOBhqg==", + "requires": { + "@types/archy": "^0.0.31", + "@types/debug": "^4.1.5", + "@types/fs-extra": "^8.0.1", + "@types/glob": "^7.1.1", + "@types/lodash.debounce": "^4.0.6", + "@types/sass": "^1.16.0", "archy": "^1.0.0", - "chokidar": "^2.0.4", - "fs-extra": "^5.0.0", - "globs": "^0.1.3", + "chalk": "^3.0.0", + "chokidar": "^3.3.1", + "commander": "^4.0.1", + "fs-extra": "^8.1.0", + "globs": "^0.1.4", "lodash.debounce": "^4.0.8", - "node-sass": "^4.10.0", - "pretty-bytes": "^4.0.2", - "promise": "^8.0.1", - "yargs": "^13.1.0" + "loglevel": "^1.6.6", + "loglevel-plugin-prefix": "^0.8.4", + "pretty-bytes": "^5.3.0", + "sass": "^1.23.7", + "tslib": "^1.10.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", - "dev": true, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "requires": { - "p-try": "^2.0.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, - "p-locate": { + "chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pretty-bytes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", - "dev": true - }, - "promise": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.3.tgz", - "integrity": "sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw==", - "dev": true, - "requires": { - "asap": "~2.0.6" - } - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "ansi-regex": "^4.1.0" + "color-name": "~1.1.4" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", - "dev": true, - "requires": { - "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" - } + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", - "dev": true, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } - } - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "pretty-bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "requires": { - "amdefine": ">=0.0.4" + "has-flag": "^4.0.0" } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" } } }, @@ -16670,17 +17075,25 @@ } }, "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, "requires": { - "semver": "^5.0.3" + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "semver-dsl": { @@ -16740,9 +17153,12 @@ } }, "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "requires": { + "randombytes": "^2.1.0" + } }, "serve-index": { "version": "1.9.1", @@ -16850,22 +17266,12 @@ } }, "shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "kind-of": "^6.0.2" } }, "shallow-copy": { @@ -16896,9 +17302,9 @@ "dev": true }, "shelljs": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", - "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", "dev": true, "requires": { "glob": "^7.0.0", @@ -16913,11 +17319,28 @@ "dev": true }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, "single-line-log": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-0.4.1.tgz", @@ -16925,9 +17348,9 @@ "dev": true }, "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "smart-buffer": { @@ -17039,55 +17462,61 @@ } }, "socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", - "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", "dev": true, "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", + "debug": "~4.1.0", + "engine.io": "~3.4.0", "has-binary2": "~1.0.2", "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, "socket.io-adapter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", "dev": true }, "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", "dev": true, "requires": { "backo2": "1.0.2", "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", + "socket.io-parser": "~3.3.0", "to-array": "0.1.4" }, "dependencies": { @@ -17098,24 +17527,64 @@ "dev": true }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "socket.io-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } } } }, "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", "dev": true, "requires": { "component-emitter": "1.2.1", - "debug": "~3.1.0", + "debug": "~4.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -17126,12 +17595,12 @@ "dev": true }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "isarray": { @@ -17139,23 +17608,30 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", "dev": true, "requires": { "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" } }, "sockjs-client": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", - "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", "dev": true, "requires": { "debug": "^3.2.5", @@ -17233,6 +17709,15 @@ "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz", "integrity": "sha1-GYuMDN6wlcRjNBhh45JdTuNZqe4=" }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, "sort-object": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz", @@ -17253,21 +17738,66 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-loader": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", - "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.0.0.tgz", + "integrity": "sha512-ZayyQCSCrQazN50aCvuS84lJT4xc1ZAcykH5blHaBdVveSwjiFK8UGMPvao0ho54DTb0Jf7m57uRRG/YYUZ2Fg==", "dev": true, "requires": { - "async": "^2.5.0", - "loader-utils": "^1.1.0" + "data-urls": "^2.0.0", + "iconv-lite": "^0.5.1", + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6", + "source-map": "^0.6.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", + "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } } }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -17275,10 +17805,9 @@ } }, "source-map-support": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", - "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", - "dev": true, + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -17290,9 +17819,9 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "sourcemap-codec": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz", - "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, "sparkles": { @@ -17302,9 +17831,9 @@ "dev": true }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -17312,15 +17841,15 @@ } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -17334,9 +17863,9 @@ "dev": true }, "spdy": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", - "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "requires": { "debug": "^4.1.0", @@ -17393,9 +17922,9 @@ "dev": true }, "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -17406,9 +17935,9 @@ } }, "speed-measure-webpack-plugin": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz", - "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", "dev": true, "requires": { "chalk": "^2.0.1" @@ -17469,14 +17998,19 @@ } }, "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "dev": true, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "requires": { - "safe-buffer": "^5.1.1" + "figgy-pudding": "^3.5.1" } }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -17489,12 +18023,12 @@ "integrity": "sha512-5Gf8dtlf8k6NbLzuly2NkGrkS/Ahh+I5VUjO7TnFizdJtgpfpLLEdQlLe9umbcnZlitU84kfYjXE67xlSXfhfQ==" }, "static-eval": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", "dev": true, "requires": { - "escodegen": "^1.8.1" + "escodegen": "^1.11.1" } }, "static-extend": { @@ -17517,75 +18051,59 @@ } }, "static-module": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.3.tgz", - "integrity": "sha512-RDaMYaI5o/ym0GkCqL/PlD1Pn216omp8fY81okxZ6f6JQxWW5tptOw9reXoZX85yt/scYvbWIt6uoszeyf+/MQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.4.tgz", + "integrity": "sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw==", "dev": true, "requires": { "acorn-node": "^1.3.0", "concat-stream": "~1.6.0", "convert-source-map": "^1.5.1", "duplexer2": "~0.1.4", - "escodegen": "~1.9.0", + "escodegen": "^1.11.1", "has": "^1.0.1", - "magic-string": "^0.22.4", + "magic-string": "0.25.1", "merge-source-map": "1.0.4", - "object-inspect": "~1.4.0", + "object-inspect": "^1.6.0", "readable-stream": "~2.3.3", "scope-analyzer": "^2.0.1", "shallow-copy": "~0.0.1", - "static-eval": "^2.0.2", + "static-eval": "^2.0.5", "through2": "~2.0.3" }, "dependencies": { - "escodegen": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", - "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "magic-string": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", + "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", "dev": true, "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "sourcemap-codec": "^1.4.1" } }, - "magic-string": { - "version": "0.22.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", - "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", "dev": true, "requires": { - "vlq": "^0.2.2" + "source-map": "^0.5.6" } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true } } }, - "stats-webpack-plugin": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.7.0.tgz", - "integrity": "sha512-NT0YGhwuQ0EOX+uPhhUcI6/+1Sq/pMzNuSCBVT4GbFl/ac6I/JZefBcjlECNfAb1t3GOx5dEj1Z7x0cAxeeVLQ==", - "dev": true, - "requires": { - "lodash": "^4.17.4" - } - }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, "stream": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", @@ -17640,39 +18158,43 @@ } }, "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, "streamroller": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz", - "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", "dev": true, "requires": { - "async": "^2.6.2", - "date-format": "^2.0.0", - "debug": "^3.2.6", - "fs-extra": "^7.0.1", - "lodash": "^4.17.14" + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" }, "dependencies": { + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } @@ -17685,55 +18207,77 @@ } } }, - "string-editor": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/string-editor/-/string-editor-0.1.2.tgz", - "integrity": "sha1-9f8bWsSu16xsL7jeI20VUbIPYdA=", - "dev": true, - "requires": { - "editor": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-editor": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/string-editor/-/string-editor-0.1.2.tgz", + "integrity": "sha1-9f8bWsSu16xsL7jeI20VUbIPYdA=", + "dev": true, + "requires": { + "editor": "^1.0.0" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "string.prototype.padend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", - "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz", + "integrity": "sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, - "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", "dev": true, "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5" } }, - "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", "dev": true, "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5" } }, "string_decoder": { @@ -17776,12 +18320,12 @@ "dev": true }, "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "requires": { - "get-stdin": "^4.0.1" + "min-indent": "^1.0.0" } }, "strip-json-comments": { @@ -17790,58 +18334,124 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "strip-url-auth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", + "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=", + "dev": true + }, "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", + "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" + }, + "dependencies": { + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } } }, "stylus": { - "version": "0.54.5", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", - "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "version": "0.54.7", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.7.tgz", + "integrity": "sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug==", "dev": true, "requires": { - "css-parse": "1.7.x", - "debug": "*", - "glob": "7.0.x", - "mkdirp": "0.5.x", - "sax": "0.5.x", - "source-map": "0.1.x" + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.3", + "mkdirp": "~0.5.x", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.0.0", + "source-map": "^0.7.3" }, "dependencies": { - "glob": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", - "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "ms": "2.0.0" } }, - "sax": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", - "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true } } }, @@ -17857,9 +18467,9 @@ } }, "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -17876,14 +18486,35 @@ } }, "svg-to-pdfkit": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/svg-to-pdfkit/-/svg-to-pdfkit-0.1.7.tgz", - "integrity": "sha1-fbbUfkeziI3OGAYHUajeJBf4V3U=", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/svg-to-pdfkit/-/svg-to-pdfkit-0.1.8.tgz", + "integrity": "sha512-QItiGZBy5TstGy+q8mjQTMGRlDDOARXLxH+sgVm1n/LYeo0zFcQlcCh8m4zi8QxctrxB9Kue/lStc/RD5iLadQ==", "dev": true, "requires": { "pdfkit": ">=0.8.1" } }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, "symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", @@ -17901,269 +18532,87 @@ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" }, "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true - }, - "tempfile": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-3.0.0.tgz", - "integrity": "sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw==", - "dev": true, - "requires": { - "temp-dir": "^2.0.0", - "uuid": "^3.3.2" - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", + "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", "dev": true, "requires": { - "execa": "^0.7.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - } - } - }, - "terser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.0.tgz", - "integrity": "sha512-oDG16n2WKm27JO8h4y/w3iqBGAOSCtq7k8dRmrn4Wf9NouL0b2WpMHGChFGZq4nFAQy1FsNJrVQHfurXOSTmOA==", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", - "requires": { - "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": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "dependencies": { - "cacache": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", - "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", - "requires": { - "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", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "requires": { - "figgy-pudding": "^3.5.1" - } + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true + }, + "tempfile": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-3.0.0.tgz", + "integrity": "sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw==", + "dev": true, + "requires": { + "temp-dir": "^2.0.0", + "uuid": "^3.3.2" + } + }, + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "dev": true + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, "text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -18171,9 +18620,9 @@ "dev": true }, "textextensions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.5.0.tgz", - "integrity": "sha512-1IkVr355eHcomgK7fgj1Xsokturx6L5S2JRT5WcRdA6v5shk9sxWuO/w/VbpQexwkXJMQIa/j1dBi3oo7+HhcA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", + "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==", "dev": true }, "through": { @@ -18202,9 +18651,9 @@ } }, "thunks": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/thunks/-/thunks-4.9.5.tgz", - "integrity": "sha512-L0s0QzX1x0fcsP52TQs42t3CGX/z6lw0Ktz0ciex47OUhog5K3AsfH3mQ4JTLBYbnsNBhaIUcVMrY8sR+0Lo6w==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/thunks/-/thunks-4.9.6.tgz", + "integrity": "sha512-ulXG17ZokTO8j0rTx/23YHsBuz6KAK1xdBPLH4zB1FRDUkttCQeli3DxGhhYtrrsRwzacSG+ZIebjSgLseluMw==", "dev": true }, "thunky": { @@ -18219,12 +18668,6 @@ "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", "dev": true }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, "timers-browserify": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", @@ -18233,10 +18676,16 @@ "setimmediate": "^1.0.4" } }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, "tiny-inflate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.2.tgz", - "integrity": "sha1-k9nez/yIBb1X6uQxDwt0Xptvs6c=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", "dev": true }, "tmp": { @@ -18270,9 +18719,9 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" }, "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-object-path": { @@ -18293,6 +18742,12 @@ } } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -18349,15 +18804,15 @@ "dev": true }, "tree-kill": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", - "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", + "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", "dev": true }, "trim-off-newlines": { @@ -18366,19 +18821,13 @@ "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", "dev": true }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", "dev": true, "requires": { - "glob": "^7.1.2" + "escape-string-regexp": "^1.0.2" } }, "ts-md5": { @@ -18387,18 +18836,24 @@ "integrity": "sha512-emODogvKGWi1KO1l9c6YxLMBn6CEH3VrH5mVPIyOtxBG52BvV4jP3GWz6bOZCz61nLgBc3ffQYE4+EHfCD+V7w==" }, "ts-node": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.0.3.tgz", - "integrity": "sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA==", + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", + "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", "dev": true, "requires": { "arg": "^4.1.0", - "diff": "^3.1.0", + "diff": "^4.0.1", "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.0" + "source-map-support": "^0.5.17", + "yn": "3.1.1" } }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, "ts-simple-ast": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/ts-simple-ast/-/ts-simple-ast-12.4.0.tgz", @@ -18417,6 +18872,21 @@ "typescript": "2.9.1" }, "dependencies": { + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, "dir-glob": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", @@ -18427,6 +18897,31 @@ "path-type": "^3.0.0" } }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, "fs-extra": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", @@ -18438,6 +18933,16 @@ "universalify": "^0.1.0" } }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, "globby": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", @@ -18453,6 +18958,48 @@ "slash": "^1.0.0" } }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + }, "typescript": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.1.tgz", @@ -18461,40 +19008,15 @@ } } }, - "tsickle": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.34.2.tgz", - "integrity": "sha512-dQnEfBdVb9AUFr/27zC2C1fs1FVPUek+GoCvTS34ZbgEwV/RwS8dGZPiGx6bV+nlDlpIgTwLJHuHhj7kPdbDsg==", - "dev": true, - "requires": { - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "source-map": "^0.7.3" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", + "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==" }, "tslint": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.2.tgz", + "integrity": "sha512-UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -18505,10 +19027,10 @@ "glob": "^7.1.1", "js-yaml": "^3.13.1", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", + "mkdirp": "^0.5.3", "resolve": "^1.3.2", "semver": "^5.3.0", - "tslib": "^1.8.0", + "tslib": "^1.10.0", "tsutils": "^2.29.0" }, "dependencies": { @@ -18519,9 +19041,15 @@ "dev": true }, "diff": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", - "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true } } @@ -18533,6 +19061,14 @@ "dev": true, "requires": { "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + } } }, "tty-browserify": { @@ -18567,6 +19103,12 @@ "prelude-ls": "~1.1.2" } }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -18582,32 +19124,38 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "typescript": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", - "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.6.tgz", + "integrity": "sha512-Pspx3oKAPJtjNwE92YS05HQoY7z2SFyOpHo9MqJor3BXAGNaPUs83CuVp9VISFkSjyRfiTpmKuAYGJB7S7hOxw==", "dev": true }, "typy": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/typy/-/typy-2.0.1.tgz", - "integrity": "sha512-XmaoLLk90L1Hq9yoWuh9oIzohATamlIIHm15Uz+8oL8IxyGLczCaGZgVISmaYvUs0UNGt/SVXp5IuojoI2a3cw==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/typy/-/typy-3.3.0.tgz", + "integrity": "sha512-Du53deMF9X9pSM3gVXDjLBq14BUfZWSGKfmmR1kTlg953RaIZehfc8fQuoAiW+SRO6bJsP+59mv1tsH8vwKghg==" + }, + "ua-parser-js": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", + "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", + "dev": true }, "uglify-js": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.8.tgz", - "integrity": "sha512-XhHJ3S3ZyMwP8kY1Gkugqx3CJh2C3O0y8NPiSxtm1tyD/pktLAkFZsFGpuNfTZddKDQ/bbDBLAd2YyA1pbi8HQ==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz", + "integrity": "sha512-Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA==", "dev": true, - "requires": { - "commander": "~2.20.3", - "source-map": "~0.6.1" - } - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true + "optional": true }, "unc-path-regex": { "version": "0.1.2", @@ -18655,25 +19203,43 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", "dev": true }, "unicode-properties": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.2.2.tgz", - "integrity": "sha512-+WhsOj19c93rPymvnPnFisbgFzrI4LjTV8ejMcCCfwS0XhdllZB4NsMFiYb4xUmpn3+aj3PM40h+wlzoG7PCnQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.3.1.tgz", + "integrity": "sha512-nIV3Tf3LcUEZttY/2g4ZJtGXhWwSkuLL+rCu0DIAMbjyVPj+8j5gNVz4T/sVbnQybIsd5SFGkPKg/756OY6jlA==", "dev": true, "requires": { "base64-js": "^1.3.0", - "unicode-trie": "^1.0.0" + "unicode-trie": "^2.0.0" + }, + "dependencies": { + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "dev": true, + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + } } }, "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", "dev": true }, "unicode-trie": { @@ -18705,6 +19271,18 @@ "set-value": "^2.0.1" } }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -18732,19 +19310,46 @@ } }, "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universal-analytics": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.20.tgz", + "integrity": "sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw==", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "debug": "^3.0.0", + "request": "^2.88.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, "unix-crypt-td-js": { "version": "1.1.4", @@ -18763,6 +19368,12 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -18799,33 +19410,82 @@ } } }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, "upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" }, "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", + "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", "dev": true, "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "uri-js": { @@ -18868,35 +19528,27 @@ } }, "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "^2.0.0" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + } } }, - "url2": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/url2/-/url2-0.0.0.tgz", - "integrity": "sha1-Tqq9HVw6yQ1iq0SFyZhCKGWgSxo=", - "dev": true - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, - "useragent": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", - "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", - "dev": true, - "requires": { - "lru-cache": "4.1.x", - "tmp": "0.0.x" - } - }, "util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -18917,16 +19569,27 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", "dev": true, "requires": { - "define-properties": "^1.1.2", "object.getownpropertydescriptors": "^2.0.3" } }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -18934,14 +19597,14 @@ "dev": true }, "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "v8flags": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", - "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", "dev": true, "requires": { "homedir-polyfill": "^1.0.1" @@ -18978,6 +19641,12 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -19040,6 +19709,17 @@ "now-and-later": "^2.0.0", "remove-bom-buffer": "^3.0.0", "vinyl": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, "vinyl-sourcemaps-apply": { @@ -19065,12 +19745,6 @@ "integrity": "sha512-W+1+N/hdzLpQZEcvz79n2IgUE9pfx6JLdHh3Kh8RGvLL8P1LdJVQmi2OsDcLdY4QVID4OUy+FPelyerX0nJxIQ==", "dev": true }, - "vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", - "dev": true - }, "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -19083,40 +19757,135 @@ "dev": true }, "wait-on": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-3.3.0.tgz", - "integrity": "sha512-97dEuUapx4+Y12aknWZn7D25kkjMk16PbWoYzpSdA8bYpVfS6hpl2a2pOWZ3c+Tyt3/i4/pglyZctG3J4V1hWQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-5.1.0.tgz", + "integrity": "sha512-JM0kgaE+V0nCDvSl72iM05W8NDt2E2M56WC5mzR7M+T+k6xjt2yYpyom+xA8RasSunFGzbxIpAXbVzXqtweAnA==", "dev": true, "requires": { - "@hapi/joi": "^15.0.3", - "core-js": "^2.6.5", - "minimist": "^1.2.0", - "request": "^2.88.0", - "rx": "^4.1.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", - "dev": true - } + "@hapi/joi": "^17.1.1", + "axios": "^0.19.2", + "lodash": "^4.17.19", + "minimist": "^1.2.5", + "rxjs": "^6.5.5" } }, "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", + "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", "requires": { - "chokidar": "^2.0.2", + "chokidar": "^3.4.0", "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } } }, "wbuf": { @@ -19128,11 +19897,14 @@ "minimalistic-assert": "^1.0.0" } }, - "weak-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.0.tgz", - "integrity": "sha1-tm5Wqd8L0lp2u/G1FNsSkIBhSjc=", - "dev": true + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } }, "web-animations-js": { "version": "2.3.2", @@ -19174,6 +19946,15 @@ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -19216,12 +19997,30 @@ "pinkie-promise": "^2.0.0" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", "dev": true }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -19247,15 +20046,15 @@ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", - "requires": { - "@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.1", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", + "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", @@ -19266,378 +20065,268 @@ "loader-utils": "^1.2.3", "memory-fs": "^0.4.1", "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", + "mkdirp": "^0.5.3", "neo-async": "^2.6.1", "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", - "watchpack": "^1.6.0", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.1", "webpack-sources": "^1.4.1" }, "dependencies": { "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==" - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "webpack-core": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", - "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", - "dev": true, - "requires": { - "source-list-map": "~0.1.7", - "source-map": "~0.4.1" - }, - "dependencies": { - "source-list-map": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", - "dev": true - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" } } }, "webpack-dev-middleware": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.5.1.tgz", - "integrity": "sha512-4dwCh/AyMOYAybggUr8fiCkRnjVDp+Cqlr9c+aaNB3GJYgRGYQWJ1YX/WAKUNA9dPNHZ6QSN2lYDKqjKSI8Vqw==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", "dev": true, "requires": { - "memory-fs": "~0.4.1", - "mime": "^2.3.1", - "range-parser": "^1.0.3", + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", "webpack-log": "^2.0.0" }, "dependencies": { "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", "dev": true } } }, "webpack-dev-server": { - "version": "3.1.14", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz", - "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", "dev": true, "requires": { "ansi-html": "0.0.7", "bonjour": "^3.5.0", - "chokidar": "^2.0.0", - "compression": "^1.5.2", - "connect-history-api-fallback": "^1.3.0", - "debug": "^3.1.0", - "del": "^3.0.0", - "express": "^4.16.2", - "html-entities": "^1.2.0", - "http-proxy-middleware": "~0.18.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", "import-local": "^2.0.0", - "internal-ip": "^3.0.1", + "internal-ip": "^4.3.0", "ip": "^1.1.5", - "killable": "^1.0.0", - "loglevel": "^1.4.1", - "opn": "^5.1.0", - "portfinder": "^1.0.9", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", "schema-utils": "^1.0.0", - "selfsigned": "^1.9.1", - "semver": "^5.6.0", - "serve-index": "^1.7.2", - "sockjs": "0.3.19", - "sockjs-client": "1.3.0", - "spdy": "^4.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^5.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "3.4.0", - "webpack-log": "^2.0.0", - "yargs": "12.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "lcid": { + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "anymatch": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "array-uniq": "^1.0.1" } }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "p-try": "^2.0.0" + "ms": "^2.1.1" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, + "optional": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "nan": "^2.12.1" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "is-extglob": "^2.1.0" } } } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, - "webpack-dev-middleware": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", - "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "memory-fs": "~0.4.1", - "mime": "^2.3.1", - "range-parser": "^1.0.3", - "webpack-log": "^2.0.0" + "binary-extensions": "^1.0.0" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "yargs": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", - "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^2.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^10.1.0" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "has-flag": "^3.0.0" } } } @@ -19653,48 +20342,51 @@ } }, "webpack-merge": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz", - "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", "dev": true, "requires": { - "lodash": "^4.17.5" + "lodash": "^4.17.15" } }, "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", - "dev": true, + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" } }, "webpack-subresource-integrity": { - "version": "1.1.0-rc.6", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz", - "integrity": "sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.1.tgz", + "integrity": "sha512-XMLFInbGbB1HV7K4vHWANzc1CN0t/c4bBvnlvGxGwV45yE/S/feAXIm8dJsCkzqWtSKnmaEgTp/meyeThxG4Iw==", "dev": true, "requires": { - "webpack-core": "^0.6.8" + "webpack-sources": "^1.3.0" } }, "websocket-driver": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", - "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", "dev": true, "requires": { - "http-parser-js": ">=0.4.0 <0.4.11", - "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", "dev": true }, "whatwg-url": { @@ -19722,124 +20414,73 @@ } }, "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "^4.0.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.0" } } } }, "windows-release": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", - "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.1.tgz", + "integrity": "sha512-Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A==", "dev": true, "requires": { "execa": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } } }, "wkt-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.2.3.tgz", - "integrity": "sha512-s7zrOedGuHbbzMaQOuf8HacuCYp3LmmrHjkkN//7UEAzsYz7xJ6J+j/84ZWZkQcrRqi3xXyuc4odPHj7PEB0bw==" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.2.4.tgz", + "integrity": "sha512-ZzKnc7ml/91fOPh5bANBL4vUlWPIYYv11waCtWTkl2TRN+LEmBg60Q1MA8gqV4hEp4MGfSj9JiHz91zw/gTDXg==" }, "word-wrap": { "version": "1.2.3", @@ -19847,9 +20488,9 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, "worker-farm": { @@ -19860,14 +20501,41 @@ "errno": "~0.1.7" } }, + "worker-plugin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-4.0.3.tgz", + "integrity": "sha512-7hFDYWiKcE3yHZvemsoM9lZis/PzurHAEX1ej8PLCu818Rt6QqUAiDdxHPCKZctzmhqzPpcFSgvMCiPbtooqAg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "wrappy": { @@ -19876,39 +20544,30 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", "dev": true, "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "async-limiter": "~1.0.0" } }, "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, "xml-name-validator": { @@ -19917,13 +20576,12 @@ "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=" }, "xml2js": { - "version": "0.4.22", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz", - "integrity": "sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==", + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "dev": true, "requires": { "sax": ">=0.6.0", - "util.promisify": "~1.0.0", "xmlbuilder": "~11.0.0" } }, @@ -19934,9 +20592,9 @@ "dev": true }, "xmldom": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", - "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", + "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" }, "xmlhttprequest-ssl": { "version": "1.5.5", @@ -19945,10 +20603,13 @@ "dev": true }, "xregexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", - "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", - "dev": true + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", + "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==", + "dev": true, + "requires": { + "@babel/runtime-corejs3": "^7.8.3" + } }, "xtend": { "version": "4.0.2", @@ -19970,61 +20631,36 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - } + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "yeast": { @@ -20040,9 +20676,9 @@ "dev": true }, "zone.js": { - "version": "0.8.29", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.29.tgz", - "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ==" + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" } } } diff --git a/package.json b/package.json index 836bfeb910..a0ffe3c73e 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "build": "ng build", "lint": "ng lint", "e2e": "ng e2e", - "postinstall": "gulp geo:fixOL && gulp geo:fixMapbox", + "postinstall": "gulp fixLibs && ngcc", "build.all": "npm run build.libs && npm run build.demo", "build.libs": "npm run build.utils && npm run build.core && npm run build.common && npm run build.auth && npm run build.geo && npm run build.context && npm run build.integration && gulp core:bundleLocale", "build.utils": "ng build utils --prod", @@ -67,96 +67,95 @@ }, "private": true, "dependencies": { - "@angular/animations": "^7.2.6", - "@angular/cdk": "^7.3.3", - "@angular/common": "^7.2.6", - "@angular/compiler": "^7.2.6", - "@angular/core": "^7.2.6", - "@angular/forms": "^7.2.6", - "@angular/material": "^7.3.3", - "@angular/platform-browser": "^7.2.6", - "@angular/platform-browser-dynamic": "^7.2.6", - "@angular/router": "^7.2.6", + "@angular/animations": "^10.0.3", + "@angular/cdk": "^10.0.1", + "@angular/common": "^10.0.3", + "@angular/compiler": "^10.0.3", + "@angular/core": "^10.0.3", + "@angular/forms": "^10.0.3", + "@angular/material": "^10.0.1", + "@angular/platform-browser": "^10.0.3", + "@angular/platform-browser-dynamic": "^10.0.3", + "@angular/router": "^10.0.3", "@ionic-native/core": "^5.10.0", - "@ionic-native/network": "^5.12.0", - "@ionic/angular": "^4.6.2", "@ionic-native/file": "^5.6.0", "@ionic-native/file-opener": "^5.6.0", - "@mat-datetimepicker/core": "^3.0.0-beta.0", - "@mdi/angular-material": "^4.7.95", - "@ngx-translate/core": "^10.0.1", + "@ionic-native/network": "^5.12.0", + "@ionic/angular": "^5.2.3", + "@mat-datetimepicker/core": "^4.1.0", + "@mdi/angular-material": "^5.3.45", + "@ngx-translate/core": "^13.0.0", "@turf/helpers": "^6.1.4", "@turf/line-intersect": "^6.0.2", "@turf/point-on-feature": "^5.1.5", - "angular2-notifications": "^2.0.0", - "bowser": "^2.9.0", + "angular2-notifications": "^9.0.0", + "bowser": "^2.10.0", "classlist.js": "^1.1.20150312", - "core-js": "^2.6.5", - "file-saver": "^1.3.8", + "core-js": "^3.6.5", + "file-saver": "^2.0.2", "hammerjs": "^2.0.8", - "html2canvas": "1.0.0-alpha.12", + "html2canvas": "^1.0.0-rc.5", "jspdf": "^1.5.3", "jszip": "^3.1.5", "jwt-decode": "^2.2.0", "moment": "^2.22.2", "ngx-cacheable": "^1.0.9", - "ol": "^5.3.0", - "ol-mapbox-style": "^4.3.0", - "proj4": "^2.5.0", - "rxjs": "^6.4.0", + "ol": "^6.3.1", + "ol-mapbox-style": "^6.1.2", + "proj4": "^2.6.2", + "rxjs": "^6.6.0", "scroll-into-view-if-needed": "^2.2.20", + "scss-bundle": "^3.1.2", "stream": "^0.0.2", "ts-md5": "^1.2.4", - "tslib": "^1.9.3", - "typy": "^2.0.1", + "tslib": "^2.0.0", + "typy": "^3.3.0", "unorm": "^1.4.1", - "web-animations-js": "^2.3.1", + "web-animations-js": "^2.3.2", "webpack": "^4.41.2", - "zone.js": "^0.8.29" + "zone.js": "~0.10.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^0.13.2", - "@angular-devkit/build-ng-packagr": "^0.13.2", - "@angular/cli": "^7.3.3", - "@angular/compiler-cli": "^7.2.6", + "@angular-devkit/build-angular": "^0.1000.2", + "@angular-devkit/build-ng-packagr": "^0.1000.2", + "@angular/cli": "^10.0.2", + "@angular/compiler-cli": "^10.0.3", "@babel/core": "^7.7.4", "@babel/preset-env": "^7.7.4", "@compodoc/compodoc": "^1.1.9", - "@ngx-translate/http-loader": "^4.0.0", + "@ngx-translate/http-loader": "^6.0.0", "@types/geojson": "^7946.0.6", "@types/hammerjs": "^2.0.36", - "@types/html2canvas": "0.0.33", - "@types/jasmine": "~2.8.6", + "@types/html2canvas": "0.0.35", + "@types/jasmine": "^3.5.11", "@types/jasminewd2": "~2.0.3", - "@types/node": "~8.9.4", - "angular-cli-ghpages": "^0.5.3", - "codelyzer": "~4.5.0", + "@types/node": "^14.0.22", + "angular-cli-ghpages": "^0.6.2", + "codelyzer": "^6.0.0", "conventional-changelog-cli": "^2.0.12", - "del": "^3.0.0", + "del": "^5.1.0", "gulp": "^4.0.0", "gulp-babel": "^8.0.0", - "gulp-exec": "^3.0.2", + "gulp-exec": "^5.0.0", "gulp-json-editor": "^2.4.2", - "gulp-merge-json": "^1.3.1", + "gulp-merge-json": "^2.1.1", "gulp-replace": "^1.0.0", "gulp-sequence": "^1.0.0", - "jasmine-core": "~2.99.1", - "jasmine-spec-reporter": "~4.2.1", - "karma": "^4.0.1", - "karma-chrome-launcher": "~2.2.0", - "karma-coverage-istanbul-reporter": "~2.0.1", - "karma-jasmine": "~1.1.2", - "karma-jasmine-html-reporter": "^0.2.2", - "ng-packagr": "^4.7.1", + "jasmine-core": "~3.5.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "^5.1.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~3.3.0", + "karma-jasmine-html-reporter": "^1.5.0", + "ng-packagr": "^10.0.0", "npm-run-all": "^4.1.5", - "protractor": "~5.4.2", + "protractor": "~7.0.0", "publish-release": "^1.6.0", - "scss-bundle": "^2.5.0", - "ts-node": "~8.0.2", - "tsickle": "0.34.2", - "tslint": "^5.12.1", - "typescript": "~3.2.4", - "wait-on": "^3.2.0", + "ts-node": "^8.10.2", + "tslint": "~6.1.0", + "typescript": "~3.9.6", + "wait-on": "^5.1.0", "webdriver-manager": "^12.1.6" } } diff --git a/packages/auth/ng-package.json b/packages/auth/ng-package.json index 860cd28ef3..6e8106cd91 100644 --- a/packages/auth/ng-package.json +++ b/packages/auth/ng-package.json @@ -9,7 +9,8 @@ "@igo2/utils" : "utils", "jwt-decode" : "jwt", "ngx-cacheable" : "ngxCacheable", - "ts-md5" : "tsMd5" + "ts-md5" : "tsMd5", + "@ngx-translate/core" : "ngxt-core" } }, "whitelistedNonPeerDependencies": ["jwt-decode", "ngx-cacheable", "ts-md5"] diff --git a/packages/auth/ng-package.prod.json b/packages/auth/ng-package.prod.json index 49ce598a7f..3a203b0d69 100644 --- a/packages/auth/ng-package.prod.json +++ b/packages/auth/ng-package.prod.json @@ -8,7 +8,8 @@ "@igo2/utils" : "utils", "jwt-decode" : "jwt", "ngx-cacheable" : "ngxCacheable", - "ts-md5" : "tsMd5" + "ts-md5" : "tsMd5", + "@ngx-translate/core" : "ngxt-core" } }, "whitelistedNonPeerDependencies": ["jwt-decode", "ngx-cacheable", "ts-md5"] diff --git a/packages/auth/package.json b/packages/auth/package.json index 0bc74af8dc..11e441be17 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -16,16 +16,17 @@ "dependencies": { "jwt-decode": "^2.2.0", "ngx-cacheable": "^1.0.9", - "ts-md5": "^1.2.0" - }, + "ts-md5": "^1.2.4", + "tslib": "^2.0.0" +}, "peerDependencies": { - "@angular/cdk": "^7.3.3", - "@angular/common": "^7.2.6", - "@angular/core": "^7.2.6", - "@angular/forms": "^7.2.6", - "@angular/material": "^7.3.3", + "@angular/cdk": "^10.0.1", + "@angular/common": "^10.0.3", + "@angular/core": "^10.0.3", + "@angular/forms": "^10.0.3", + "@angular/material": "^10.0.1", "@igo2/core": "^1.4.2", "@igo2/utils": "^1.4.2", - "rxjs": "^6.4.0" + "rxjs": "^6.6.0" } -} \ No newline at end of file +} diff --git a/packages/auth/src/lib/auth.module.ts b/packages/auth/src/lib/auth.module.ts index ab76cbf466..ec2946acda 100644 --- a/packages/auth/src/lib/auth.module.ts +++ b/packages/auth/src/lib/auth.module.ts @@ -2,11 +2,9 @@ import { NgModule, ModuleWithProviders } from '@angular/core'; import { CommonModule } from '@angular/common'; import { HTTP_INTERCEPTORS } from '@angular/common/http'; import { ReactiveFormsModule } from '@angular/forms'; -import { - MatFormFieldModule, - MatInputModule, - MatButtonModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; import { IgoLanguageModule, StorageService } from '@igo2/core'; @@ -38,7 +36,7 @@ import { AuthFacebookComponent } from './auth-form/auth-facebook.component'; exports: [AuthFormComponent, ProtectedDirective] }) export class IgoAuthModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoAuthModule, providers: [ diff --git a/packages/auth/src/test.ts b/packages/auth/src/test.ts index 97627ea6c2..c4fc23a565 100644 --- a/packages/auth/src/test.ts +++ b/packages/auth/src/test.ts @@ -1,7 +1,6 @@ // This file is required by karma.conf.js and loads recursively all the .spec // and framework files -import 'core-js/es7/reflect'; import 'zone.js/dist/zone'; import 'zone.js/dist/zone-testing'; import { getTestBed } from '@angular/core/testing'; diff --git a/packages/auth/tsconfig.lib.json b/packages/auth/tsconfig.lib.json index 8be8cbcd3c..2a3044d59e 100644 --- a/packages/auth/tsconfig.lib.json +++ b/packages/auth/tsconfig.lib.json @@ -1,9 +1,9 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "../../out-tsc/lib", "target": "es2015", - "module": "es2015", + "module": "es2020", "moduleResolution": "node", "declaration": true, "sourceMap": true, @@ -15,7 +15,6 @@ "lib": ["dom", "es2015"] }, "angularCompilerOptions": { - "annotateForClosureCompiler": true, "skipTemplateCodegen": true, "strictMetadataEmit": true, "fullTemplateTypeCheck": true, diff --git a/packages/auth/tsconfig.lib.prod.json b/packages/auth/tsconfig.lib.prod.json new file mode 100644 index 0000000000..f8edd63243 --- /dev/null +++ b/packages/auth/tsconfig.lib.prod.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.lib.json", + "angularCompilerOptions": { + "enableIvy": true + } +} diff --git a/packages/auth/tsconfig.spec.json b/packages/auth/tsconfig.spec.json index 16da33db07..a9ea5ea114 100644 --- a/packages/auth/tsconfig.spec.json +++ b/packages/auth/tsconfig.spec.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "../../out-tsc/spec", "types": [ diff --git a/packages/common/ng-package.json b/packages/common/ng-package.json index 16a9849e1b..bfb52ac0b3 100644 --- a/packages/common/ng-package.json +++ b/packages/common/ng-package.json @@ -8,7 +8,8 @@ "@igo2/core" : "core", "@igo2/utils" : "utils", "scroll-into-view-if-needed" : "scrollIntoView", - "typy" : "typy" + "typy" : "typy", + "@ngx-translate/core" : "ngxt-core" } } } diff --git a/packages/common/ng-package.prod.json b/packages/common/ng-package.prod.json index d0877b6879..8d0f10283b 100644 --- a/packages/common/ng-package.prod.json +++ b/packages/common/ng-package.prod.json @@ -7,7 +7,8 @@ "@igo2/core" : "core", "@igo2/utils" : "utils", "scroll-into-view-if-needed" : "scrollIntoView", - "typy" : "typy" + "typy" : "typy", + "@ngx-translate/core" : "ngxt-core" } } } diff --git a/packages/common/package.json b/packages/common/package.json index c675c2508b..5e4a236ace 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -14,12 +14,15 @@ "url": "https://github.com/infra-geo-ouverte/igo2-lib/issues" }, "peerDependencies": { - "@angular/common": "^7.2.6", - "@angular/core": "^7.2.6", - "@angular/material": "^7.3.3", + "@angular/common": "^10.0.3", + "@angular/core": "^10.0.3", + "@angular/material": "^10.0.1", "@igo2/core": "^1.4.2", "@igo2/utils": "^1.4.2", "scroll-into-view-if-needed": "^2.2.20", - "typy": "^2.0.1" + "typy": "^3.3.0" + }, + "dependencies": { + "tslib": "^2.0.0" } -} \ No newline at end of file +} diff --git a/packages/common/src/lib/action/actionbar/actionbar.module.ts b/packages/common/src/lib/action/actionbar/actionbar.module.ts index 16261ecdfa..8c888f0933 100644 --- a/packages/common/src/lib/action/actionbar/actionbar.module.ts +++ b/packages/common/src/lib/action/actionbar/actionbar.module.ts @@ -1,15 +1,13 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { - MatButtonModule, - MatIconModule, - MatTooltipModule, - MatListModule, - MatMenuModule, - MatCardModule, - MatCheckboxModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatIconModule } from '@angular/material/icon'; +import { MatListModule } from '@angular/material/list'; +import { MatMenuModule } from '@angular/material/menu'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { IgoLanguageModule } from '@igo2/core'; diff --git a/packages/common/src/lib/action/index.ts b/packages/common/src/lib/action/index.ts index c3da79f741..e86db7b0b5 100644 --- a/packages/common/src/lib/action/index.ts +++ b/packages/common/src/lib/action/index.ts @@ -1 +1,2 @@ export * from './shared'; +export * from './actionbar/actionbar.component'; diff --git a/packages/common/src/lib/backdrop/backdrop.module.ts b/packages/common/src/lib/backdrop/backdrop.module.ts index 22cec02d8c..f56ff93d22 100644 --- a/packages/common/src/lib/backdrop/backdrop.module.ts +++ b/packages/common/src/lib/backdrop/backdrop.module.ts @@ -9,7 +9,7 @@ import { BackdropComponent } from './backdrop.component'; exports: [BackdropComponent] }) export class IgoBackdropModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoBackdropModule, providers: [] diff --git a/packages/common/src/lib/badge-icon/badge-icon.directive.ts b/packages/common/src/lib/badge-icon/badge-icon.directive.ts index 3b0c5df29f..06efbcb318 100644 --- a/packages/common/src/lib/badge-icon/badge-icon.directive.ts +++ b/packages/common/src/lib/badge-icon/badge-icon.directive.ts @@ -1,5 +1,5 @@ import { Directive, Input, ElementRef, OnInit } from '@angular/core'; -import { MatIconRegistry } from '@angular/material'; +import { MatIconRegistry } from '@angular/material/icon'; @Directive({ selector: '[igoMatBadgeIcon]' @@ -7,20 +7,24 @@ import { MatIconRegistry } from '@angular/material'; export class MatBadgeIconDirective implements OnInit { @Input() set igoMatBadgeIcon(value: string) { - this.matIconRegistry - .getNamedSvgIcon(value) - .subscribe(svgObj => { + this.matIconRegistry.getNamedSvgIcon(value).subscribe(svgObj => { + this.svg = svgObj; + if (this.badge) { this.badge.innerHTML = ''; - this.badge.appendChild(svgObj); - }); + this.badge.appendChild(this.svg); + } + }); } + private svg: SVGElement; @Input() set matBadgeHidden(value: boolean) { - this.badge.style.display = value - ? 'none' - : 'flex'; + this.hidden = value; + if (this.badge) { + this.badge.style.display = this.hidden ? 'none' : 'flex'; + } } + private hidden = false; get badge() { return this.el.nativeElement.querySelector('.mat-badge-content'); @@ -35,5 +39,9 @@ export class MatBadgeIconDirective implements OnInit { this.badge.style.alignItems = 'center'; this.badge.style.justifyContent = 'center'; this.badge.style.background = 'none'; + + this.badge.style.display = this.hidden ? 'none' : 'flex'; + this.badge.innerHTML = ''; + this.badge.appendChild(this.svg); } } diff --git a/packages/common/src/lib/badge-icon/badge-icon.module.ts b/packages/common/src/lib/badge-icon/badge-icon.module.ts index dbdefcd972..a80a79dd3e 100644 --- a/packages/common/src/lib/badge-icon/badge-icon.module.ts +++ b/packages/common/src/lib/badge-icon/badge-icon.module.ts @@ -1,6 +1,7 @@ -import { NgModule } from '@angular/core'; +import { NgModule, ModuleWithProviders } from '@angular/core'; import { MatBadgeIconDirective } from './badge-icon.directive'; -import { MatBadgeModule, MatIconModule } from '@angular/material'; +import { MatBadgeModule } from '@angular/material/badge'; +import { MatIconModule } from '@angular/material/icon'; @NgModule({ imports: [MatBadgeModule, MatIconModule], @@ -8,10 +9,10 @@ import { MatBadgeModule, MatIconModule } from '@angular/material'; exports: [MatBadgeIconDirective] }) export class IgoMatBadgeIconModule { - static forRoot() { + static forRoot(): ModuleWithProviders { return { - ngModule: IgoMatBadgeIconModule, - providers: [] + ngModule: IgoMatBadgeIconModule, + providers: [] }; - } +} } diff --git a/packages/common/src/lib/clickout/clickout.module.ts b/packages/common/src/lib/clickout/clickout.module.ts index 6eef454878..8ec7d4b9bf 100644 --- a/packages/common/src/lib/clickout/clickout.module.ts +++ b/packages/common/src/lib/clickout/clickout.module.ts @@ -7,7 +7,7 @@ import { ClickoutDirective } from './clickout.directive'; exports: [ClickoutDirective] }) export class IgoClickoutModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoClickoutModule, providers: [] diff --git a/packages/common/src/lib/clone/clone.module.ts b/packages/common/src/lib/clone/clone.module.ts index d040594da7..bfb11b8a77 100644 --- a/packages/common/src/lib/clone/clone.module.ts +++ b/packages/common/src/lib/clone/clone.module.ts @@ -7,7 +7,7 @@ import { ClonePipe } from './clone.pipe'; exports: [ClonePipe] }) export class IgoCloneModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoCloneModule, providers: [] diff --git a/packages/common/src/lib/collapsible/collapsible.component.scss b/packages/common/src/lib/collapsible/collapsible.component.scss index b33d94fd4a..4bb97b8942 100644 --- a/packages/common/src/lib/collapsible/collapsible.component.scss +++ b/packages/common/src/lib/collapsible/collapsible.component.scss @@ -1,4 +1,4 @@ -:host >>> .mat-list .mat-list-item.mat-list-avatar { +:host ::ng-deep .mat-list .mat-list-item.mat-list-avatar { height: auto; width: auto; padding: 0; diff --git a/packages/common/src/lib/collapsible/collapsible.component.spec.ts b/packages/common/src/lib/collapsible/collapsible.component.spec.ts index 3b58c0f80d..ab5b407c24 100644 --- a/packages/common/src/lib/collapsible/collapsible.component.spec.ts +++ b/packages/common/src/lib/collapsible/collapsible.component.spec.ts @@ -1,6 +1,8 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatListModule, MatIconModule } from '@angular/material'; +import { MatIconModule } from '@angular/material/icon'; +import { MatListModule } from '@angular/material/list'; +import { MatIconTestingModule } from '@angular/material/icon/testing'; import { CollapsibleComponent } from './collapsible.component'; import { CollapseDirective } from './collapse.directive'; @@ -12,7 +14,7 @@ describe('CollapsibleComponent', () => { beforeEach( async(() => { TestBed.configureTestingModule({ - imports: [MatListModule, MatIconModule], + imports: [MatListModule, MatIconModule, MatIconTestingModule], declarations: [CollapsibleComponent, CollapseDirective] }).compileComponents(); }) diff --git a/packages/common/src/lib/collapsible/collapsible.module.ts b/packages/common/src/lib/collapsible/collapsible.module.ts index 93b1e9e71d..d695185722 100644 --- a/packages/common/src/lib/collapsible/collapsible.module.ts +++ b/packages/common/src/lib/collapsible/collapsible.module.ts @@ -1,5 +1,6 @@ import { NgModule, ModuleWithProviders } from '@angular/core'; -import { MatIconModule, MatListModule } from '@angular/material'; +import { MatIconModule } from '@angular/material/icon'; +import { MatListModule } from '@angular/material/list'; import { CollapseDirective } from './collapse.directive'; import { CollapsibleComponent } from './collapsible.component'; @@ -10,7 +11,7 @@ import { CollapsibleComponent } from './collapsible.component'; exports: [CollapsibleComponent, CollapseDirective] }) export class IgoCollapsibleModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoCollapsibleModule, providers: [] diff --git a/packages/common/src/lib/confirm-dialog/confirm-dialog.component.ts b/packages/common/src/lib/confirm-dialog/confirm-dialog.component.ts index a08b49653b..4b5321aaae 100644 --- a/packages/common/src/lib/confirm-dialog/confirm-dialog.component.ts +++ b/packages/common/src/lib/confirm-dialog/confirm-dialog.component.ts @@ -1,5 +1,5 @@ import { Component } from '@angular/core'; -import { MatDialogRef } from '@angular/material'; +import { MatDialogRef } from '@angular/material/dialog'; @Component({ selector: 'igo-confirm-dialog', diff --git a/packages/common/src/lib/confirm-dialog/confirm-dialog.module.ts b/packages/common/src/lib/confirm-dialog/confirm-dialog.module.ts index 312813657a..3b0897d479 100644 --- a/packages/common/src/lib/confirm-dialog/confirm-dialog.module.ts +++ b/packages/common/src/lib/confirm-dialog/confirm-dialog.module.ts @@ -1,5 +1,6 @@ import { NgModule, ModuleWithProviders } from '@angular/core'; -import { MatButtonModule, MatDialogModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule } from '@angular/material/dialog'; import { IgoLanguageModule } from '@igo2/core'; @@ -10,11 +11,10 @@ import { ConfirmDialogService } from './confirm-dialog.service'; imports: [MatButtonModule, MatDialogModule, IgoLanguageModule], declarations: [ConfirmDialogComponent], exports: [ConfirmDialogComponent], - providers: [ConfirmDialogService], - entryComponents: [ConfirmDialogComponent] + providers: [ConfirmDialogService] }) export class IgoConfirmDialogModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoConfirmDialogModule, providers: [] diff --git a/packages/common/src/lib/confirm-dialog/confirm-dialog.service.ts b/packages/common/src/lib/confirm-dialog/confirm-dialog.service.ts index 3f2785817f..93c4333b79 100644 --- a/packages/common/src/lib/confirm-dialog/confirm-dialog.service.ts +++ b/packages/common/src/lib/confirm-dialog/confirm-dialog.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { Observable } from 'rxjs'; diff --git a/packages/common/src/lib/context-menu/context-menu.directive.spec.ts b/packages/common/src/lib/context-menu/context-menu.directive.spec.ts deleted file mode 100644 index 316097b561..0000000000 --- a/packages/common/src/lib/context-menu/context-menu.directive.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ContextMenuDirective } from './context-menu.directive'; -import { Overlay } from '@angular/cdk/overlay'; -import { ViewContainerRef } from '@angular/core'; -import { inject } from '@angular/core/testing'; -import { MockElementRef } from '../clickout/clickout.directive.spec'; - -describe('ContextMenuDirective', () => { - it('should create an instance', () => { - inject( - [Overlay, ViewContainerRef], - (overlay: Overlay, viewContainerRef: ViewContainerRef) => { - const directive = new ContextMenuDirective( - overlay, - viewContainerRef, - new MockElementRef({}) - ); - expect(directive).toBeTruthy(); - } - ); - }); -}); diff --git a/packages/common/src/lib/context-menu/context-menu.directive.ts b/packages/common/src/lib/context-menu/context-menu.directive.ts index 7ece74a00b..eda44704d1 100644 --- a/packages/common/src/lib/context-menu/context-menu.directive.ts +++ b/packages/common/src/lib/context-menu/context-menu.directive.ts @@ -5,9 +5,9 @@ import { HostListener, Input, Output, - TemplateRef, ViewContainerRef } from '@angular/core'; +import type { TemplateRef } from '@angular/core'; import { TemplatePortal } from '@angular/cdk/portal'; import { fromEvent, Subscription } from 'rxjs'; @@ -31,9 +31,10 @@ export class ContextMenuDirective { ) {} @HostListener('contextmenu', ['$event']) - public onContextMenu({ x, y }: MouseEvent): void { + public onContextMenu(e: MouseEvent): void { + const {x, y} = e; this.close(); - event.preventDefault(); + e.preventDefault(); this.menuPosition.emit({ x, y }); this.overlayRef = null; const positionStrategy = this.overlay diff --git a/packages/common/src/lib/context-menu/context-menu.module.ts b/packages/common/src/lib/context-menu/context-menu.module.ts index a762987a8e..ee84a6a152 100644 --- a/packages/common/src/lib/context-menu/context-menu.module.ts +++ b/packages/common/src/lib/context-menu/context-menu.module.ts @@ -7,7 +7,7 @@ import { ContextMenuDirective } from './context-menu.directive'; exports: [ContextMenuDirective] }) export class IgoContextMenuModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoContextMenuModule, providers: [] diff --git a/packages/common/src/lib/custom-html/custom-html.module.ts b/packages/common/src/lib/custom-html/custom-html.module.ts index 88bd1c0543..bae17f3447 100644 --- a/packages/common/src/lib/custom-html/custom-html.module.ts +++ b/packages/common/src/lib/custom-html/custom-html.module.ts @@ -1,11 +1,9 @@ import { NgModule, ModuleWithProviders } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { - MatIconModule, - MatTooltipModule, - MatInputModule, - MatButtonModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { IgoLanguageModule } from '@igo2/core'; @@ -25,7 +23,7 @@ import { SanitizeHtmlPipe } from './custom-html.pipe'; declarations: [SanitizeHtmlPipe, CustomHtmlComponent] }) export class IgoCustomHtmlModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoCustomHtmlModule }; diff --git a/packages/common/src/lib/drag-drop/drag-drop.module.ts b/packages/common/src/lib/drag-drop/drag-drop.module.ts index 48b426925c..e540300993 100644 --- a/packages/common/src/lib/drag-drop/drag-drop.module.ts +++ b/packages/common/src/lib/drag-drop/drag-drop.module.ts @@ -7,7 +7,7 @@ import { DragAndDropDirective } from './drag-drop.directive'; exports: [DragAndDropDirective] }) export class IgoDrapDropModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoDrapDropModule, providers: [] diff --git a/packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.ts b/packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.ts index ae1a280cfd..900ea7d2db 100644 --- a/packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.ts +++ b/packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.ts @@ -46,7 +46,7 @@ export class DynamicOutletComponent implements OnChanges, OnDestroy { * The view element to render the component to * @ignore */ - @ViewChild('target', { read: ViewContainerRef }) + @ViewChild('target', { read: ViewContainerRef, static: true }) private target: ViewContainerRef; constructor( diff --git a/packages/common/src/lib/dynamic-component/index.ts b/packages/common/src/lib/dynamic-component/index.ts index c3da79f741..58d6694dcb 100644 --- a/packages/common/src/lib/dynamic-component/index.ts +++ b/packages/common/src/lib/dynamic-component/index.ts @@ -1 +1,2 @@ export * from './shared'; +export * from './dynamic-outlet/dynamic-outlet.component'; diff --git a/packages/common/src/lib/entity/entity-selector/entity-selector.module.ts b/packages/common/src/lib/entity/entity-selector/entity-selector.module.ts index fc8e8c7fea..f08b5995c1 100644 --- a/packages/common/src/lib/entity/entity-selector/entity-selector.module.ts +++ b/packages/common/src/lib/entity/entity-selector/entity-selector.module.ts @@ -2,7 +2,7 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; -import { MatSelectModule } from '@angular/material'; +import { MatSelectModule } from '@angular/material/select'; import { EntitySelectorComponent } from './entity-selector.component'; diff --git a/packages/common/src/lib/entity/entity-table/entity-table.module.ts b/packages/common/src/lib/entity/entity-table/entity-table.module.ts index 7852eb8de3..7962e5eafe 100644 --- a/packages/common/src/lib/entity/entity-table/entity-table.module.ts +++ b/packages/common/src/lib/entity/entity-table/entity-table.module.ts @@ -1,12 +1,10 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { - MatTableModule, - MatSortModule, - MatIconModule, - MatButtonModule, - MatCheckboxModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSortModule } from '@angular/material/sort'; +import { MatTableModule } from '@angular/material/table'; import { IgoStopPropagationModule } from '../../stop-propagation/stop-propagation.module'; import { IgoCustomHtmlModule } from '../../custom-html/custom-html.module'; diff --git a/packages/common/src/lib/entity/shared/state.ts b/packages/common/src/lib/entity/shared/state.ts index 355afc3052..906de94055 100644 --- a/packages/common/src/lib/entity/shared/state.ts +++ b/packages/common/src/lib/entity/shared/state.ts @@ -132,7 +132,7 @@ export class EntityStateManager { acc[key] = currentState[key] || false; return acc; - }, {}); + }, {}) as Partial; const reversedChanges = this.reverseChanges(changes); const state = Object.assign({}, currentState, reversedChanges); this.index.set(this.getKey(entity), state); @@ -197,7 +197,7 @@ export class EntityStateManager, bunch: [string, any]) => { const [changeKey, value] = bunch; if (typeof value === typeof true) { - reverseChanges[changeKey] = !value; + (reverseChanges as object)[changeKey] = !value; } return reverseChanges; }, {}); diff --git a/packages/common/src/lib/flexible/flexible.component.ts b/packages/common/src/lib/flexible/flexible.component.ts index ab81baee93..4a6fad2b1d 100644 --- a/packages/common/src/lib/flexible/flexible.component.ts +++ b/packages/common/src/lib/flexible/flexible.component.ts @@ -12,7 +12,7 @@ import { FlexibleState, FlexibleDirection } from './flexible.type'; export class FlexibleComponent implements OnInit { static transitionTime = 250; - @ViewChild('flexibleMain') main; + @ViewChild('flexibleMain', { static: true }) main; @Input() get initial(): string { diff --git a/packages/common/src/lib/flexible/flexible.module.ts b/packages/common/src/lib/flexible/flexible.module.ts index 169aab0fb2..075d164885 100644 --- a/packages/common/src/lib/flexible/flexible.module.ts +++ b/packages/common/src/lib/flexible/flexible.module.ts @@ -7,7 +7,7 @@ import { FlexibleComponent } from './flexible.component'; exports: [FlexibleComponent] }) export class IgoFlexibleModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoFlexibleModule, providers: [] diff --git a/packages/common/src/lib/form/form-field/form-field-select.component.ts b/packages/common/src/lib/form/form-field/form-field-select.component.ts index 7c5960bda0..664a9ea41d 100644 --- a/packages/common/src/lib/form/form-field/form-field-select.component.ts +++ b/packages/common/src/lib/form/form-field/form-field-select.component.ts @@ -4,18 +4,18 @@ import { ChangeDetectionStrategy, OnInit } from '@angular/core'; -import { FormControl } from '@angular/forms'; +import type { FormControl } from '@angular/forms'; import { BehaviorSubject, } from 'rxjs'; import { formControlIsRequired, getControlErrorMessage } from '../shared/form.utils'; import { FormFieldSelectChoice } from '../shared/form.interfaces'; -import { FormFieldComponent } from '../shared/form-field-component'; +import { IgoFormFieldComponent } from '../shared/form-field-component'; /** * This component renders a select field */ -@FormFieldComponent('select') +@IgoFormFieldComponent('select') @Component({ selector: 'igo-form-field-select', templateUrl: './form-field-select.component.html', diff --git a/packages/common/src/lib/form/form-field/form-field-text.component.ts b/packages/common/src/lib/form/form-field/form-field-text.component.ts index 3dbb7517ca..233029be56 100644 --- a/packages/common/src/lib/form/form-field/form-field-text.component.ts +++ b/packages/common/src/lib/form/form-field/form-field-text.component.ts @@ -4,7 +4,7 @@ import { ChangeDetectionStrategy, OnInit } from '@angular/core'; -import { FormControl } from '@angular/forms'; +import type { FormControl } from '@angular/forms'; import { BehaviorSubject } from 'rxjs'; @@ -12,12 +12,12 @@ import { formControlIsRequired, getControlErrorMessage } from '../shared/form.utils'; -import { FormFieldComponent } from '../shared/form-field-component'; +import { IgoFormFieldComponent } from '../shared/form-field-component'; /** * This component renders a text field */ -@FormFieldComponent('text') +@IgoFormFieldComponent('text') @Component({ selector: 'igo-form-field-text', templateUrl: './form-field-text.component.html', diff --git a/packages/common/src/lib/form/form-field/form-field-textarea.component.ts b/packages/common/src/lib/form/form-field/form-field-textarea.component.ts index 76586fe27a..134b5b94a3 100644 --- a/packages/common/src/lib/form/form-field/form-field-textarea.component.ts +++ b/packages/common/src/lib/form/form-field/form-field-textarea.component.ts @@ -4,17 +4,17 @@ import { ChangeDetectionStrategy, OnInit } from '@angular/core'; -import { FormControl } from '@angular/forms'; +import type { FormControl } from '@angular/forms'; import { BehaviorSubject } from 'rxjs'; import { formControlIsRequired, getControlErrorMessage } from '../shared/form.utils'; -import { FormFieldComponent } from '../shared/form-field-component'; +import { IgoFormFieldComponent } from '../shared/form-field-component'; /** * This component renders a textarea field */ -@FormFieldComponent('textarea') +@IgoFormFieldComponent('textarea') @Component({ selector: 'igo-form-field-textarea', templateUrl: './form-field-textarea.component.html', diff --git a/packages/common/src/lib/form/form-field/form-field.module.ts b/packages/common/src/lib/form/form-field/form-field.module.ts index 873eae78ed..e32d56718d 100644 --- a/packages/common/src/lib/form/form-field/form-field.module.ts +++ b/packages/common/src/lib/form/form-field/form-field.module.ts @@ -1,12 +1,10 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { - MatIconModule, - MatFormFieldModule, - MatInputModule, - MatSelectModule -} from '@angular/material'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatSelectModule } from '@angular/material/select'; import { IgoLanguageModule } from '@igo2/core'; import { IgoDynamicOutletModule } from '../../dynamic-component/dynamic-outlet/dynamic-outlet.module'; diff --git a/packages/common/src/lib/form/form-field/index.ts b/packages/common/src/lib/form/form-field/index.ts new file mode 100644 index 0000000000..44f0dfefd4 --- /dev/null +++ b/packages/common/src/lib/form/form-field/index.ts @@ -0,0 +1,4 @@ +export * from './form-field.component'; +export * from './form-field-text.component'; +export * from './form-field-select.component'; +export * from './form-field-textarea.component'; diff --git a/packages/common/src/lib/form/form-group/form-group.module.ts b/packages/common/src/lib/form/form-group/form-group.module.ts index 526351316e..9aa8f1345a 100644 --- a/packages/common/src/lib/form/form-group/form-group.module.ts +++ b/packages/common/src/lib/form/form-group/form-group.module.ts @@ -1,6 +1,6 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MatFormFieldModule } from '@angular/material'; +import { MatFormFieldModule } from '@angular/material/form-field'; import { IgoLanguageModule } from '@igo2/core'; diff --git a/packages/common/src/lib/form/form.module.ts b/packages/common/src/lib/form/form.module.ts index 321034cbe3..aed4ead65b 100644 --- a/packages/common/src/lib/form/form.module.ts +++ b/packages/common/src/lib/form/form.module.ts @@ -4,9 +4,6 @@ import { CommonModule } from '@angular/common'; import { IgoFormFormModule } from './form/form.module'; import { IgoFormGroupModule } from './form-group/form-group.module'; import { IgoFormFieldModule } from './form-field/form-field.module'; -import { FormFieldSelectComponent } from './form-field/form-field-select.component'; -import { FormFieldTextComponent } from './form-field/form-field-text.component'; -import { FormFieldTextareaComponent } from './form-field/form-field-textarea.component'; import { FormService } from './shared/form.service'; import { FormFieldService } from './shared/form-field.service'; @@ -28,11 +25,6 @@ import { FormFieldService } from './shared/form-field.service'; providers: [ FormService, FormFieldService - ], - entryComponents: [ - FormFieldSelectComponent, - FormFieldTextComponent, - FormFieldTextareaComponent ] }) export class IgoFormModule {} diff --git a/packages/common/src/lib/form/form/form.component.ts b/packages/common/src/lib/form/form/form.component.ts index 3e0f3b5626..8433b3ed6b 100644 --- a/packages/common/src/lib/form/form/form.component.ts +++ b/packages/common/src/lib/form/form/form.component.ts @@ -46,7 +46,7 @@ export class FormComponent implements OnChanges { */ @Output() submitForm = new EventEmitter<{[key: string]: any}>(); - @ViewChild('buttons') buttons: ElementRef; + @ViewChild('buttons', { static: true }) buttons: ElementRef; get hasButtons(): boolean { return this.buttons.nativeElement.children.length !== 0; diff --git a/packages/common/src/lib/form/index.ts b/packages/common/src/lib/form/index.ts index e57de36127..1af27c3c14 100644 --- a/packages/common/src/lib/form/index.ts +++ b/packages/common/src/lib/form/index.ts @@ -1,3 +1,4 @@ export * from './shared'; - +export * from './form-group/form-group.component'; +export * from './form-field'; export * from './form/form.component'; diff --git a/packages/common/src/lib/form/shared/form-field-component.ts b/packages/common/src/lib/form/shared/form-field-component.ts index 0c231dc581..bda0d6be30 100644 --- a/packages/common/src/lib/form/shared/form-field-component.ts +++ b/packages/common/src/lib/form/shared/form-field-component.ts @@ -1,6 +1,6 @@ import { FormFieldService } from './form-field.service'; -export function FormFieldComponent(type: string): (cls: any) => any { +export function IgoFormFieldComponent(type: string): (cls: any) => any { return (compType: any) => { FormFieldService.register(type, compType); }; diff --git a/packages/common/src/lib/image/image.module.ts b/packages/common/src/lib/image/image.module.ts index 59b5aa7260..c6136f8121 100644 --- a/packages/common/src/lib/image/image.module.ts +++ b/packages/common/src/lib/image/image.module.ts @@ -7,7 +7,7 @@ import { SecureImagePipe } from './secure-image.pipe'; exports: [SecureImagePipe] }) export class IgoImageModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoImageModule, providers: [] diff --git a/packages/common/src/lib/json-dialog/json-dialog.component.ts b/packages/common/src/lib/json-dialog/json-dialog.component.ts index 50c45a9b80..bcddd7feb0 100644 --- a/packages/common/src/lib/json-dialog/json-dialog.component.ts +++ b/packages/common/src/lib/json-dialog/json-dialog.component.ts @@ -1,5 +1,5 @@ import { Component } from '@angular/core'; -import { MatDialogRef } from '@angular/material'; +import { MatDialogRef } from '@angular/material/dialog'; @Component({ selector: 'igo-json-dialog', diff --git a/packages/common/src/lib/json-dialog/json-dialog.module.ts b/packages/common/src/lib/json-dialog/json-dialog.module.ts index 189b21c934..81104c0bb0 100644 --- a/packages/common/src/lib/json-dialog/json-dialog.module.ts +++ b/packages/common/src/lib/json-dialog/json-dialog.module.ts @@ -1,6 +1,7 @@ import { NgModule, ModuleWithProviders } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MatButtonModule, MatDialogModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule } from '@angular/material/dialog'; import { IgoKeyValueModule } from '../keyvalue/keyvalue.module'; @@ -11,11 +12,10 @@ import { JsonDialogService } from './json-dialog.service'; imports: [CommonModule, MatButtonModule, MatDialogModule, IgoKeyValueModule], exports: [JsonDialogComponent], declarations: [JsonDialogComponent], - entryComponents: [JsonDialogComponent], providers: [JsonDialogService] }) export class IgoJsonDialogModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoJsonDialogModule }; diff --git a/packages/common/src/lib/json-dialog/json-dialog.service.ts b/packages/common/src/lib/json-dialog/json-dialog.service.ts index 83f6912115..9186042d0e 100644 --- a/packages/common/src/lib/json-dialog/json-dialog.service.ts +++ b/packages/common/src/lib/json-dialog/json-dialog.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { Observable } from 'rxjs'; diff --git a/packages/common/src/lib/keyvalue/keyvalue.module.ts b/packages/common/src/lib/keyvalue/keyvalue.module.ts index 619ca7eb7d..5b199b0e6e 100644 --- a/packages/common/src/lib/keyvalue/keyvalue.module.ts +++ b/packages/common/src/lib/keyvalue/keyvalue.module.ts @@ -7,7 +7,7 @@ import { KeyValuePipe } from './keyvalue.pipe'; exports: [KeyValuePipe] }) export class IgoKeyValueModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoKeyValueModule, providers: [] diff --git a/packages/common/src/lib/list/list.component.scss b/packages/common/src/lib/list/list.component.scss index e59c7a4845..10980f8823 100644 --- a/packages/common/src/lib/list/list.component.scss +++ b/packages/common/src/lib/list/list.component.scss @@ -19,7 +19,7 @@ mat-list { position: static; } -:host >>> .mat-list .mat-list-item .mat-list-text > * { +:host ::ng-deep .mat-list .mat-list-item .mat-list-text > * { white-space: normal; overflow: hidden; text-overflow: ellipsis; @@ -30,38 +30,38 @@ mat-list { -webkit-line-clamp: 2; } -:host >>> .mat-list .mat-list-item.mat-list-item-avatar .mat-list-item-content { +:host ::ng-deep .mat-list .mat-list-item.mat-list-item-avatar .mat-list-item-content { display: -webkit-flex; height: $igo-list-item-height; padding: $igo-list-item-padding; } -:host >>> .mat-list .mat-list-item.mat-list-item-avatar { +:host ::ng-deep .mat-list .mat-list-item.mat-list-item-avatar { height: $igo-list-item-height; } -:host >>> .mat-list ::ng-deep igo-collapsible > .mat-list-item > .mat-list-item-content > .mat-list-text > .mat-line { +:host ::ng-deep .mat-list ::ng-deep igo-collapsible > .mat-list-item > .mat-list-item-content > .mat-list-text > .mat-line { font-weight: bold; opacity: 0.9; } :host - >>> .mat-list + ::ng-deep .mat-list .mat-list-item.mat-list-item-avatar .mat-list-item-content > mat-icon { padding: $igo-list-item-icon-padding; } -:host >>> [igolistitem] mat-list-item [mat-list-avatar] { +:host ::ng-deep [igolistitem] mat-list-item [mat-list-avatar] { height: auto; width: 40px; } -:host mat-list.selectable >>> [igolistitem]:not(.igo-list-item-disabled) mat-list-item:hover { +:host mat-list.selectable ::ng-deep [igolistitem]:not(.igo-list-item-disabled) mat-list-item:hover { cursor: pointer; } -:host >>> [igolistitem]:focus { +:host ::ng-deep [igolistitem]:focus { outline: none; } diff --git a/packages/common/src/lib/list/list.component.spec.ts b/packages/common/src/lib/list/list.component.spec.ts index eefc0c9182..83d747e907 100644 --- a/packages/common/src/lib/list/list.component.spec.ts +++ b/packages/common/src/lib/list/list.component.spec.ts @@ -1,6 +1,6 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatListModule } from '@angular/material'; +import { MatListModule } from '@angular/material/list'; import { ListComponent } from './list.component'; diff --git a/packages/common/src/lib/list/list.component.ts b/packages/common/src/lib/list/list.component.ts index 0f8a3d8012..d93db6014b 100644 --- a/packages/common/src/lib/list/list.component.ts +++ b/packages/common/src/lib/list/list.component.ts @@ -3,12 +3,13 @@ import { AfterViewInit, OnInit, OnDestroy, - QueryList, Input, ContentChildren, HostListener, ElementRef } from '@angular/core'; +import type { QueryList } from '@angular/core'; + import { Subscription } from 'rxjs'; import { ListItemDirective } from './list-item.directive'; @@ -68,10 +69,10 @@ export class ListComponent implements AfterViewInit, OnInit, OnDestroy { // completely but until ES7 this won't be possible because // document events are not observables if (this.navigationEnabled) { - if (event.keyCode === 38 || event.keyCode === 40) { + if (event.key === 'ArrowUp' || event.key === 'ArrowDown') { event.preventDefault(); - this.navigate(event.keyCode); - } else if (event.keyCode === 13) { + this.navigate(event.key); + } else if (event.key === 'Enter') { this.select(this.focusedItem); } } @@ -145,7 +146,10 @@ export class ListComponent implements AfterViewInit, OnInit, OnDestroy { } if (item !== undefined && !this.isScrolledIntoView(item.el.nativeElement)) { - igoList.scrollTop = item.el.nativeElement.offsetTop + item.el.nativeElement.children[0].offsetHeight - igoList.clientHeight; + igoList.scrollTop = + item.el.nativeElement.offsetTop + + item.el.nativeElement.children[0].offsetHeight - + igoList.clientHeight; } } @@ -214,12 +218,13 @@ export class ListComponent implements AfterViewInit, OnInit, OnDestroy { } isScrolledIntoView(elem) { - const docViewTop = this.el.nativeElement.scrollTop + this.el.nativeElement.offsetTop; + const docViewTop = + this.el.nativeElement.scrollTop + this.el.nativeElement.offsetTop; const docViewBottom = docViewTop + this.el.nativeElement.clientHeight; const elemTop = elem.offsetTop; const elemBottom = elemTop + elem.children[0].offsetHeight; - return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); + return elemBottom <= docViewBottom && elemTop >= docViewTop; } private init() { @@ -300,12 +305,12 @@ export class ListComponent implements AfterViewInit, OnInit, OnDestroy { .findIndex(item => item === this.focusedItem); } - private navigate(key: number) { + private navigate(key: string) { switch (key) { - case 38: + case 'ArrowUp': this.focusPrevious(); break; - case 40: + case 'ArrowDown': this.focusNext(); break; default: diff --git a/packages/common/src/lib/list/list.module.ts b/packages/common/src/lib/list/list.module.ts index f30ff05ce1..15ee6dd1c2 100644 --- a/packages/common/src/lib/list/list.module.ts +++ b/packages/common/src/lib/list/list.module.ts @@ -1,6 +1,7 @@ import { NgModule, ModuleWithProviders } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MatIconModule, MatListModule } from '@angular/material'; +import { MatIconModule } from '@angular/material/icon'; +import { MatListModule } from '@angular/material/list'; import { IgoClickoutModule } from '../clickout/clickout.module'; @@ -13,7 +14,7 @@ import { ListComponent } from './list.component'; exports: [ListItemDirective, ListComponent] }) export class IgoListModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoListModule, providers: [] diff --git a/packages/common/src/lib/panel/panel.component.scss b/packages/common/src/lib/panel/panel.component.scss index b399479b37..1a8bc6de1e 100644 --- a/packages/common/src/lib/panel/panel.component.scss +++ b/packages/common/src/lib/panel/panel.component.scss @@ -16,12 +16,12 @@ height: $igo-icon-size; } -.igo-panel-header >>> [panelleftbutton] { +.igo-panel-header ::ng-deep [panelleftbutton] { float: left; margin-right: -40px; } -.igo-panel-header >>> [panelrightbutton] { +.igo-panel-header ::ng-deep [panelrightbutton] { float: right; } diff --git a/packages/common/src/lib/sidenav/sidenav-shim.directive.ts b/packages/common/src/lib/sidenav/sidenav-shim.directive.ts index 7979c5d0f6..013ab858e3 100644 --- a/packages/common/src/lib/sidenav/sidenav-shim.directive.ts +++ b/packages/common/src/lib/sidenav/sidenav-shim.directive.ts @@ -1,5 +1,5 @@ import { Directive, Self, HostListener, Renderer2 } from '@angular/core'; -import { MatSidenav } from '@angular/material'; +import { MatSidenav } from '@angular/material/sidenav'; /** * directive. diff --git a/packages/common/src/lib/sidenav/sidenav.module.ts b/packages/common/src/lib/sidenav/sidenav.module.ts index edb75302ef..42edb1c42c 100644 --- a/packages/common/src/lib/sidenav/sidenav.module.ts +++ b/packages/common/src/lib/sidenav/sidenav.module.ts @@ -7,7 +7,7 @@ import { SidenavShimDirective } from './sidenav-shim.directive'; exports: [SidenavShimDirective] }) export class IgoSidenavModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoSidenavModule, providers: [] diff --git a/packages/common/src/lib/spinner/spinner.component.spec.ts b/packages/common/src/lib/spinner/spinner.component.spec.ts index 7ada2e08aa..666af24b09 100644 --- a/packages/common/src/lib/spinner/spinner.component.spec.ts +++ b/packages/common/src/lib/spinner/spinner.component.spec.ts @@ -1,6 +1,6 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatProgressSpinner } from '@angular/material'; +import { MatProgressSpinner } from '@angular/material/progress-spinner'; import { SpinnerComponent } from './spinner.component'; diff --git a/packages/common/src/lib/spinner/spinner.module.ts b/packages/common/src/lib/spinner/spinner.module.ts index feea2ff1c7..738053481b 100644 --- a/packages/common/src/lib/spinner/spinner.module.ts +++ b/packages/common/src/lib/spinner/spinner.module.ts @@ -1,6 +1,6 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MatProgressSpinnerModule } from '@angular/material'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { SpinnerActivityDirective } from './spinner-activity.directive'; import { SpinnerComponent } from './spinner.component'; diff --git a/packages/common/src/lib/stop-propagation/stop-propagation.module.ts b/packages/common/src/lib/stop-propagation/stop-propagation.module.ts index c5f77d09e3..301ae56e85 100644 --- a/packages/common/src/lib/stop-propagation/stop-propagation.module.ts +++ b/packages/common/src/lib/stop-propagation/stop-propagation.module.ts @@ -8,7 +8,7 @@ import { StopPropagationDirective } from './stop-propagation.directive'; exports: [StopDropPropagationDirective, StopPropagationDirective] }) export class IgoStopPropagationModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoStopPropagationModule, providers: [] diff --git a/packages/common/src/lib/table/table-datasource.ts b/packages/common/src/lib/table/table-datasource.ts index 11f68b78ab..fb671bc18a 100644 --- a/packages/common/src/lib/table/table-datasource.ts +++ b/packages/common/src/lib/table/table-datasource.ts @@ -1,5 +1,5 @@ import { DataSource } from '@angular/cdk/table'; -import { MatSort } from '@angular/material'; +import { MatSort } from '@angular/material/sort'; import { Observable, BehaviorSubject, merge } from 'rxjs'; import { map } from 'rxjs/operators'; diff --git a/packages/common/src/lib/table/table.component.ts b/packages/common/src/lib/table/table.component.ts index caa5fc1e09..7b3e2f66b4 100644 --- a/packages/common/src/lib/table/table.component.ts +++ b/packages/common/src/lib/table/table.component.ts @@ -9,7 +9,7 @@ import { AfterViewInit, EventEmitter } from '@angular/core'; -import { MatSort } from '@angular/material'; +import { MatSort } from '@angular/material/sort'; import { SelectionModel } from '@angular/cdk/collections'; import { debounceTime, distinctUntilChanged } from 'rxjs/operators'; @@ -67,7 +67,7 @@ export class TableComponent implements OnChanges, OnInit, AfterViewInit { }>(); @ViewChild('filter') filter: ElementRef; - @ViewChild(MatSort) sort: MatSort; + @ViewChild(MatSort, { static: true }) sort: MatSort; ngOnInit() { this.dataSource = new TableDataSource(this.database, this.model, this.sort); diff --git a/packages/common/src/lib/table/table.module.ts b/packages/common/src/lib/table/table.module.ts index 5c403f6c2c..03f2a3081b 100644 --- a/packages/common/src/lib/table/table.module.ts +++ b/packages/common/src/lib/table/table.module.ts @@ -2,15 +2,13 @@ import { NgModule, ModuleWithProviders } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; import { CdkTableModule } from '@angular/cdk/table'; -import { - MatIconModule, - MatButtonModule, - MatTableModule, - MatFormFieldModule, - MatInputModule, - MatSortModule, - MatCheckboxModule -} from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatSortModule } from '@angular/material/sort'; +import { MatTableModule } from '@angular/material/table'; import { IgoLanguageModule } from '@igo2/core'; @@ -34,7 +32,7 @@ import { TableComponent } from './table.component'; exports: [TableComponent] }) export class IgoTableModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoTableModule, providers: [] diff --git a/packages/common/src/lib/tool/index.ts b/packages/common/src/lib/tool/index.ts index c3da79f741..30935b8746 100644 --- a/packages/common/src/lib/tool/index.ts +++ b/packages/common/src/lib/tool/index.ts @@ -1 +1,2 @@ export * from './shared'; +export * from './toolbox/toolbox.component'; diff --git a/packages/common/src/lib/tool/tool.module.ts b/packages/common/src/lib/tool/tool.module.ts index d795ebb5a2..5a05857266 100644 --- a/packages/common/src/lib/tool/tool.module.ts +++ b/packages/common/src/lib/tool/tool.module.ts @@ -14,7 +14,7 @@ import { IgoToolboxModule } from './toolbox/toolbox.module'; declarations: [] }) export class IgoToolModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoToolModule, providers: [ diff --git a/packages/common/src/lib/widget/index.ts b/packages/common/src/lib/widget/index.ts index c3da79f741..d0f8169015 100644 --- a/packages/common/src/lib/widget/index.ts +++ b/packages/common/src/lib/widget/index.ts @@ -1 +1,2 @@ export * from './shared'; +export * from './widget-outlet/widget-outlet.component'; diff --git a/packages/common/src/lib/workspace/index.ts b/packages/common/src/lib/workspace/index.ts index c3da79f741..084f3d097e 100644 --- a/packages/common/src/lib/workspace/index.ts +++ b/packages/common/src/lib/workspace/index.ts @@ -1 +1,3 @@ export * from './shared'; +export * from './workspace-selector/workspace-selector.component'; +export * from './workspace-widget-outlet/workspace-widget-outlet.component'; diff --git a/packages/common/src/public_api.ts b/packages/common/src/public_api.ts index cb6bd8d0bc..a84ac7e25c 100644 --- a/packages/common/src/public_api.ts +++ b/packages/common/src/public_api.ts @@ -42,6 +42,7 @@ export * from './lib/workspace/workspace-widget-outlet/workspace-widget-outlet.m export * from './lib/action'; export * from './lib/backdrop'; +export * from './lib/badge-icon'; export * from './lib/clickout'; export * from './lib/clone'; export * from './lib/collapsible'; @@ -65,4 +66,3 @@ export * from './lib/table'; export * from './lib/tool'; export * from './lib/widget'; export * from './lib/workspace'; -export * from './lib/workspace/workspace-selector/workspace-selector.component'; diff --git a/packages/common/src/test.ts b/packages/common/src/test.ts index 97627ea6c2..c4fc23a565 100644 --- a/packages/common/src/test.ts +++ b/packages/common/src/test.ts @@ -1,7 +1,6 @@ // This file is required by karma.conf.js and loads recursively all the .spec // and framework files -import 'core-js/es7/reflect'; import 'zone.js/dist/zone'; import 'zone.js/dist/zone-testing'; import { getTestBed } from '@angular/core/testing'; diff --git a/packages/common/tsconfig.lib.json b/packages/common/tsconfig.lib.json index c9cd05c883..7befe45fb4 100644 --- a/packages/common/tsconfig.lib.json +++ b/packages/common/tsconfig.lib.json @@ -1,9 +1,9 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "../../out-tsc/lib", "target": "es2015", - "module": "es2015", + "module": "es2020", "moduleResolution": "node", "declaration": true, "sourceMap": true, @@ -19,7 +19,6 @@ ] }, "angularCompilerOptions": { - "annotateForClosureCompiler": true, "skipTemplateCodegen": true, "strictMetadataEmit": true, "fullTemplateTypeCheck": true, diff --git a/packages/common/tsconfig.lib.prod.json b/packages/common/tsconfig.lib.prod.json new file mode 100644 index 0000000000..f8edd63243 --- /dev/null +++ b/packages/common/tsconfig.lib.prod.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.lib.json", + "angularCompilerOptions": { + "enableIvy": true + } +} diff --git a/packages/common/tsconfig.spec.json b/packages/common/tsconfig.spec.json index 16da33db07..a9ea5ea114 100644 --- a/packages/common/tsconfig.spec.json +++ b/packages/common/tsconfig.spec.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "../../out-tsc/spec", "types": [ diff --git a/packages/context/ng-package.json b/packages/context/ng-package.json index 543d9c0cc5..4ec2aee9aa 100644 --- a/packages/context/ng-package.json +++ b/packages/context/ng-package.json @@ -5,15 +5,18 @@ "lib": { "entryFile": "src/public_api.ts", "umdModuleIds": { - "ol/proj" : "olproj", - "ol/easing" : "oleasing", - "ol/geom/Point" : "olPoint", - "@igo2/utils" : "utils", - "@igo2/auth" : "auth", - "@igo2/core" : "core", - "@igo2/common" : "common", - "@igo2/geo" : "geo", - "ol/format/GeoJSON" : "olFormatGeoJSON" + "ol/proj": "olproj", + "ol/easing": "oleasing", + "ol/geom/Point": "olPoint", + "ol/style": "olStlyle", + "ol/source/Cluster": "cluster", + "@igo2/utils": "utils", + "@igo2/auth": "auth", + "@igo2/core": "core", + "@igo2/common": "common", + "@igo2/geo": "geo", + "ol/format/GeoJSON": "olFormatGeoJSON", + "@ngx-translate/core": "ngxt-core" } } } diff --git a/packages/context/ng-package.prod.json b/packages/context/ng-package.prod.json index 41cb284f61..29d8185e2c 100644 --- a/packages/context/ng-package.prod.json +++ b/packages/context/ng-package.prod.json @@ -4,15 +4,18 @@ "lib": { "entryFile": "src/public_api.ts", "umdModuleIds": { - "ol/proj" : "olproj", - "ol/easing" : "oleasing", - "ol/geom/Point" : "olPoint", - "@igo2/utils" : "utils", - "@igo2/auth" : "auth", - "@igo2/core" : "core", - "@igo2/common" : "common", - "@igo2/geo" : "geo", - "ol/format/GeoJSON" : "olFormatGeoJSON" + "ol/proj": "olproj", + "ol/easing": "oleasing", + "ol/geom/Point": "olPoint", + "ol/style": "olStlyle", + "ol/source/Cluster": "cluster", + "@igo2/utils": "utils", + "@igo2/auth": "auth", + "@igo2/core": "core", + "@igo2/common": "common", + "@igo2/geo": "geo", + "ol/format/GeoJSON": "olFormatGeoJSON", + "@ngx-translate/core": "ngxt-core" } }, "whitelistedNonPeerDependencies": ["ts-md5"] diff --git a/packages/context/ngcc.config.js b/packages/context/ngcc.config.js new file mode 100644 index 0000000000..c26aaf1efb --- /dev/null +++ b/packages/context/ngcc.config.js @@ -0,0 +1,3 @@ +module.exports = { + ignorableDeepImportMatchers: [/ol\//] +}; diff --git a/packages/context/package.json b/packages/context/package.json index e1a23f08cc..f3f9f33604 100644 --- a/packages/context/package.json +++ b/packages/context/package.json @@ -14,17 +14,20 @@ "url": "https://github.com/infra-geo-ouverte/igo2-lib/issues" }, "peerDependencies": { - "@angular/animations": "^7.2.6", - "@angular/common": "^7.2.6", - "@angular/core": "^7.2.6", - "@angular/forms": "^7.2.6", - "@angular/material": "^7.3.3", + "@angular/animations": "^10.0.3", + "@angular/common": "^10.0.3", + "@angular/core": "^10.0.3", + "@angular/forms": "^10.0.3", + "@angular/material": "^10.0.1", "@igo2/auth": "^1.4.2", "@igo2/common": "^1.4.2", "@igo2/core": "^1.4.2", "@igo2/utils": "^1.4.2", "@igo2/geo": "^1.4.2", "ol": "^5.3.0", - "rxjs": "^6.4.0" + "rxjs": "^6.6.0" + }, + "dependencies": { + "tslib": "^2.0.0" } -} \ No newline at end of file +} diff --git a/packages/context/src/lib/context-import-export/context-import-export.module.ts b/packages/context/src/lib/context-import-export/context-import-export.module.ts index f55f041696..09d8742c9e 100644 --- a/packages/context/src/lib/context-import-export/context-import-export.module.ts +++ b/packages/context/src/lib/context-import-export/context-import-export.module.ts @@ -1,17 +1,17 @@ import { NgModule, ModuleWithProviders } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { - MatButtonModule, - MatFormFieldModule, - MatInputModule, - MatDividerModule, - MatTabsModule, - MatSelectModule, - MatOptionModule, - MatTooltipModule, - MatCheckboxModule, - MatButtonToggleModule, -} from '@angular/material'; + +import { MatButtonModule } from '@angular/material/button'; +import { MatButtonToggleModule } from '@angular/material/button-toggle'; +import { MatOptionModule } from '@angular/material/core'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatDividerModule } from '@angular/material/divider'; +import { MatInputModule } from '@angular/material/input'; +import { MatSelectModule } from '@angular/material/select'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatTabsModule } from '@angular/material/tabs'; +import { MatTooltipModule } from '@angular/material/tooltip'; + import { IgoLanguageModule } from '@igo2/core'; import { ContextImportExportComponent } from './context-import-export/context-import-export.component'; import { IgoSpinnerModule } from '@igo2/common'; @@ -43,7 +43,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms'; ] }) export class IgoContextImportExportModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: IgoContextImportExportModule }; diff --git a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts index 3282f4a2a9..87671becfc 100644 --- a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts +++ b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts @@ -3,7 +3,8 @@ import { FormGroup, FormBuilder, Validators } from '@angular/forms'; import { BehaviorSubject } from 'rxjs'; import { MessageService, LanguageService, ConfigService } from '@igo2/core'; -import { IgoMap, Layer, VectorLayer } from '@igo2/geo'; +import { Layer, VectorLayer } from '@igo2/geo'; +import type { IgoMap } from '@igo2/geo'; import { handleFileExportError } from '../shared/context-export.utils'; import { @@ -72,34 +73,36 @@ export class ContextImportExportComponent implements OnInit { handleExportFormSubmit(contextOptions) { this.loading$.next(true); - this.res = this.contextService.getContextFromLayers(this.map, contextOptions.layers, contextOptions.name); + this.res = this.contextService.getContextFromLayers( + this.map, + contextOptions.layers, + contextOptions.name + ); this.res.imported = true; - this.contextExportService - .export(this.res) - .subscribe( - () => {}, - (error: Error) => this.onFileExportError(error), - () => { - this.onFileExportSuccess(); - this.loading$.next(false); - } - ); -} + this.contextExportService.export(this.res).subscribe( + () => {}, + (error: Error) => this.onFileExportError(error), + () => { + this.onFileExportSuccess(); + this.loading$.next(false); + } + ); + } private buildForm() { this.form = this.formBuilder.group({ - layers: ['', [Validators.required]], - name: ['', [Validators.required]] + layers: ['', [Validators.required]], + name: ['', [Validators.required]] }); } private onFileImportSuccess(file: File, context: DetailedContext) { handleFileImportSuccess( - file, - context, - this.messageService, - this.languageService, - this.contextService + file, + context, + this.messageService, + this.languageService, + this.contextService ); } @@ -125,11 +128,11 @@ export class ContextImportExportComponent implements OnInit { selectAll(e) { if (e._selected) { - this.form.controls.layers.setValue(this.layerList); - e._selected = true; + this.form.controls.layers.setValue(this.layerList); + e._selected = true; } if (e._selected === false) { - this.form.controls.layers.setValue([]); + this.form.controls.layers.setValue([]); } } diff --git a/packages/context/src/lib/context-manager/context-item/context-item.component.scss b/packages/context/src/lib/context-manager/context-item/context-item.component.scss index 4238c8d355..a13b2e4689 100644 --- a/packages/context/src/lib/context-manager/context-item/context-item.component.scss +++ b/packages/context/src/lib/context-manager/context-item/context-item.component.scss @@ -10,7 +10,7 @@ display: inline-flex; } -mat-list-item >>> .mat-list-item-content .mat-list-text { +mat-list-item ::ng-deep .mat-list-item-content .mat-list-text { padding: 0; } @@ -19,6 +19,6 @@ mat-icon.disabled { color: rgba(0, 0, 0, 0.38); } -mat-list-item.mat-list-item-light >>> .mat-list-item-content { +mat-list-item.mat-list-item-light ::ng-deep .mat-list-item-content { color: rgba(150, 150, 150, 1); } diff --git a/packages/context/src/lib/context-manager/context-list/context-list.component.html b/packages/context/src/lib/context-manager/context-list/context-list.component.html index 8da3328684..b1a0ae4c22 100644 --- a/packages/context/src/lib/context-manager/context-list/context-list.component.html +++ b/packages/context/src/lib/context-manager/context-list/context-list.component.html @@ -24,7 +24,7 @@ [matTooltip]="'igo.context.contextManager.sortAlphabetically' | translate" matTooltipShowDelay="500" (click)="toggleSort(true)"> - + @@ -47,4 +47,4 @@ - \ No newline at end of file + From 4f092fe750ccf078c31bdf1f1828314768a9621e Mon Sep 17 00:00:00 2001 From: josee666 Date: Wed, 12 Aug 2020 10:03:42 -0400 Subject: [PATCH 31/90] feat(interactiveTour + welcomeWindows): add new component and service (#701) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * tour * lint * feat add noBackButton on step Co-authored-by: Marc-André Barbeau Co-authored-by: Josée Martel --- angular.json | 1 + demo/src/app/core/home/home.component.html | 16 +- demo/src/app/core/home/home.component.ts | 9 +- demo/src/app/core/home/home.module.ts | 12 +- demo/src/config/interactiveTour.json | 50 +++ demo/src/environments/environment.prod.ts | 3 + demo/src/environments/environment.ts | 27 +- demo/src/locale/en.json | 10 +- demo/src/locale/fr.json | 10 +- package-lock.json | 32 +- package.json | 1 + .../lib/auth-form/auth-form.component.html | 6 +- .../src/lib/auth-form/auth-form.component.ts | 11 +- packages/auth/src/lib/auth.module.ts | 2 +- packages/auth/src/lib/shared/auth.service.ts | 11 +- .../common/src/lib/interactive-tour/index.ts | 4 + .../interactive-tour.component.html | 10 + .../interactive-tour.component.scss | 8 + .../interactive-tour.component.ts | 101 ++++++ .../interactive-tour.interface.ts | 37 +++ .../interactive-tour.loader.ts | 44 +++ .../interactive-tour.module.ts | 24 ++ .../interactive-tour.service.ts | 292 ++++++++++++++++++ .../interactive-tour.theming.scss | 40 +++ .../common/src/lib/panel/panel.component.html | 2 +- .../common/src/lib/panel/panel.component.ts | 3 - packages/common/src/lib/panel/panel.module.ts | 12 +- .../src/lib/tool/shared/tool.service.ts | 12 +- packages/common/src/locale/en.common.json | 7 + packages/common/src/locale/fr.common.json | 7 + packages/common/src/public_api.ts | 2 + packages/common/src/style/common.theming.scss | 4 + .../about-tool/about-tool.component.html | 10 +- .../about-tool/about-tool.component.scss | 3 + .../about/about-tool/about-tool.component.ts | 3 +- .../integration/src/lib/about/about.module.ts | 14 +- .../context-editor-tool.component.html | 5 +- .../search/search-bar/search-bar.module.ts | 6 +- .../integration/src/lib/tool/tool.state.ts | 11 +- 39 files changed, 800 insertions(+), 62 deletions(-) create mode 100644 demo/src/config/interactiveTour.json create mode 100644 packages/common/src/lib/interactive-tour/index.ts create mode 100644 packages/common/src/lib/interactive-tour/interactive-tour.component.html create mode 100644 packages/common/src/lib/interactive-tour/interactive-tour.component.scss create mode 100644 packages/common/src/lib/interactive-tour/interactive-tour.component.ts create mode 100644 packages/common/src/lib/interactive-tour/interactive-tour.interface.ts create mode 100644 packages/common/src/lib/interactive-tour/interactive-tour.loader.ts create mode 100644 packages/common/src/lib/interactive-tour/interactive-tour.module.ts create mode 100644 packages/common/src/lib/interactive-tour/interactive-tour.service.ts create mode 100644 packages/common/src/lib/interactive-tour/interactive-tour.theming.scss create mode 100644 packages/integration/src/lib/about/about-tool/about-tool.component.scss diff --git a/angular.json b/angular.json index e03fb521f0..711ef1c400 100644 --- a/angular.json +++ b/angular.json @@ -27,6 +27,7 @@ "assets": [ "demo/src/favicon.ico", "demo/src/assets", + "demo/src/config", "demo/src/contexts", "demo/src/locale", { diff --git a/demo/src/app/core/home/home.component.html b/demo/src/app/core/home/home.component.html index 58c64db0d9..9817c23dd8 100644 --- a/demo/src/app/core/home/home.component.html +++ b/demo/src/app/core/home/home.component.html @@ -1,13 +1,21 @@
-

+

Welcome to IGO

- +

-IGO2 library contains many components and services that may benefit any web application.
-IGO2 library is open source project using Angular, Angular Material and OpenLayers. + + +

+ +

+ IGO2 library contains many components and services that may benefit any web application.
+ IGO2 library is open source project using Angular, Angular Material and OpenLayers.

IGO2 library is divided into several elements:

diff --git a/demo/src/app/core/home/home.component.ts b/demo/src/app/core/home/home.component.ts index 67e48ff2d0..9dd4f69e28 100644 --- a/demo/src/app/core/home/home.component.ts +++ b/demo/src/app/core/home/home.component.ts @@ -1,8 +1,15 @@ import { Component } from '@angular/core'; +import { InteractiveTourService } from '@igo2/common'; @Component({ selector: 'app-home', templateUrl: './home.component.html', styleUrls: ['./home.component.scss'] }) -export class AppHomeComponent {} +export class AppHomeComponent { + constructor(private interactiveTourService: InteractiveTourService) {} + + startTour() { + this.interactiveTourService.startTour('global'); + } +} diff --git a/demo/src/app/core/home/home.module.ts b/demo/src/app/core/home/home.module.ts index 25102bc6d0..efcdc9ba84 100644 --- a/demo/src/app/core/home/home.module.ts +++ b/demo/src/app/core/home/home.module.ts @@ -1,11 +1,21 @@ import { NgModule } from '@angular/core'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; import { AppHomeComponent } from './home.component'; import { AppHomeRoutingModule } from './home-routing.module'; +import { IgoInteractiveTourModule } from '@igo2/common'; @NgModule({ declarations: [AppHomeComponent], - imports: [AppHomeRoutingModule], + imports: [ + AppHomeRoutingModule, + IgoInteractiveTourModule, + MatTooltipModule, + MatIconModule, + MatButtonModule + ], exports: [AppHomeComponent] }) export class AppHomeModule {} diff --git a/demo/src/config/interactiveTour.json b/demo/src/config/interactiveTour.json new file mode 100644 index 0000000000..afd4065f40 --- /dev/null +++ b/demo/src/config/interactiveTour.json @@ -0,0 +1,50 @@ +{ + "global": { + "title": "interactiveTour.title", + "highlightClass": "mat-form-field", + "class": "mat-form-field", + "steps": [ + { + "element": "img.igo-logo", + "text": "interactiveTour.selectByClass" + }, + { + "element": "#igo-title", + "text": "interactiveTour.selectById", + "noBackButton": true, + "beforeShow": { + "element": "a.mat-list-item[routerlink=\\.]", + "action": "click" + } + }, + { + "element": "a.mat-list-item[routerlink=context]", + "text": "interactiveTour.changeTool", + "onShow": { + "action": "click" + } + }, + { + "element": "igo-context-item:nth-of-type(3)", + "text": "interactiveTour.context3" + }, + { + "element": "igo-context-item:nth-of-type(3)", + "text": "Action 'onShow'", + "onShow": { + "action": "click" + } + }, + { + "element": "igo-layer-item:nth-of-type(2) button", + "text": "Action 'onHide'", + "onHide": { + "action": "click" + } + }, + { + "text": "interactiveTour.end" + } + ] + } +} diff --git a/demo/src/environments/environment.prod.ts b/demo/src/environments/environment.prod.ts index ed85631c26..aed19e1cb0 100644 --- a/demo/src/environments/environment.prod.ts +++ b/demo/src/environments/environment.prod.ts @@ -21,6 +21,9 @@ export const environment: Environment = { }, allowAnonymous: true }, + interactiveTour: { + tourInMobile: true + }, importExport: { url: 'https://geoegl.msp.gouv.qc.ca/apis/ogre' }, diff --git a/demo/src/environments/environment.ts b/demo/src/environments/environment.ts index 62524f2d65..c331eb8c84 100644 --- a/demo/src/environments/environment.ts +++ b/demo/src/environments/environment.ts @@ -33,6 +33,9 @@ export const environment: Environment = { language: { prefix: './locale/' }, + interactiveTour: { + tourInMobile: true + }, importExport: { url: '/apis/ogre', gpxAggregateInComment: true @@ -80,7 +83,8 @@ export const environment: Environment = { }, { id: 'rn_wmts', - url: 'https://servicesmatriciels.mern.gouv.qc.ca/erdas-iws/ogc/wmts/Cartes_Images', + url: + 'https://servicesmatriciels.mern.gouv.qc.ca/erdas-iws/ogc/wmts/Cartes_Images', type: 'wmts', crossOrigin: true, matrixSet: 'EPSG_3857', @@ -90,34 +94,39 @@ export const environment: Environment = { }, { id: 'group_impose', - title: '(composite catalog) group imposed and unique layer title for same source', + title: + '(composite catalog) group imposed and unique layer title for same source', composite: [ { id: 'tq_swtq', url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/swtq', regFilters: ['zpegt'], - groupImpose: {id: 'zpegt', title: 'zpegt'} + groupImpose: { id: 'zpegt', title: 'zpegt' } }, { id: 'Gououvert', url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/igo_gouvouvert.fcgi', regFilters: ['zpegt'], - groupImpose: {id: 'zpegt', title: 'zpegt'} + groupImpose: { id: 'zpegt', title: 'zpegt' } }, { id: 'Gououvert', url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/igo_gouvouvert.fcgi', regFilters: ['zpegt'], - groupImpose: {id: 'zpegt', title: 'zpegt'} + groupImpose: { id: 'zpegt', title: 'zpegt' } }, { id: 'rn_wmts', - url: 'https://servicesmatriciels.mern.gouv.qc.ca/erdas-iws/ogc/wmts/Cartes_Images', + url: + 'https://servicesmatriciels.mern.gouv.qc.ca/erdas-iws/ogc/wmts/Cartes_Images', type: 'wmts', crossOrigin: true, matrixSet: 'EPSG_3857', version: '1.0.0', - groupImpose: {id: 'cartetopo', title: 'Carte topo échelle 1/20 000'} + groupImpose: { + id: 'cartetopo', + title: 'Carte topo échelle 1/20 000' + } } ] }, @@ -129,13 +138,13 @@ export const environment: Environment = { id: 'tq_swtq', url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/swtq', regFilters: ['limtn_charg'], - groupImpose: {id: 'mix_swtq_gouv', title: 'mix same name layer'} + groupImpose: { id: 'mix_swtq_gouv', title: 'mix same name layer' } }, { id: 'Gououvert', url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/igo_gouvouvert.fcgi', regFilters: ['limtn_charg'], - groupImpose: {id: 'mix_swtq_gouv', title: 'mix same name layer'} + groupImpose: { id: 'mix_swtq_gouv', title: 'mix same name layer' } } ] } diff --git a/demo/src/locale/en.json b/demo/src/locale/en.json index 7924656796..66e07a5b22 100644 --- a/demo/src/locale/en.json +++ b/demo/src/locale/en.json @@ -10,5 +10,13 @@ "Delete Tooltip": "Delete Tooltip", "Add": "Add", "Edit": "Edit", - "Delete": "Delete" + "Delete": "Delete", + "interactiveTour": { + "title": "Interactive Tour", + "selectByClass": "Sselect by class", + "selectById": "Select by id", + "changeTool": "Change tool", + "context3": "Selection of the 3rd context of the list with nth-of-type", + "end": "End of tour" + } } diff --git a/demo/src/locale/fr.json b/demo/src/locale/fr.json index 4c2a6a4b5d..b0d8cd9396 100644 --- a/demo/src/locale/fr.json +++ b/demo/src/locale/fr.json @@ -10,5 +10,13 @@ "Delete Tooltip": "Supprimer Tooltip", "Add": "Ajouter", "Edit": "Éditer", - "Delete": "Supprimer" + "Delete": "Supprimer", + "interactiveTour": { + "title": "Tour interactif", + "selectByClass": "Sélection par classe", + "selectById": "Sélection par id", + "changeTool": "Changement d'outil", + "context3": "Sélection du 3e contexte de la liste avec nth-of-type", + "end": "Fin du tour" + } } diff --git a/package-lock.json b/package-lock.json index 6144602456..103a5a5476 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2756,6 +2756,11 @@ } } }, + "@popperjs/core": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.4.4.tgz", + "integrity": "sha512-1oO6+dN5kdIA3sKPZhRGJTfGVP4SWV6KqlMOwry4J3HfyD68sl/3KmG7DeYUzvN+RbhXDnv/D8vNNB8168tAMg==" + }, "@rollup/plugin-commonjs": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-13.0.0.tgz", @@ -3762,6 +3767,15 @@ } } }, + "angular-shepherd": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/angular-shepherd/-/angular-shepherd-0.7.0.tgz", + "integrity": "sha512-pM9ibVJumxQ9tIzkhnr1KpbJJKLaXpofotxn5H/3tVkO5RtijSQ3Y3fZDF864R4SXUnW/wND1pmnRaS5KUpTdQ==", + "requires": { + "shepherd.js": "^8.0.1", + "tslib": "^2.0.0" + } + }, "angular2-notifications": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/angular2-notifications/-/angular2-notifications-9.0.0.tgz", @@ -7008,8 +7022,7 @@ "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" }, "default-compare": { "version": "1.0.0", @@ -17312,6 +17325,16 @@ "rechoir": "^0.6.2" } }, + "shepherd.js": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/shepherd.js/-/shepherd.js-8.0.2.tgz", + "integrity": "sha512-qFt5vrnVoshg6fS5gKGQznYGyIaEclyKKSl1Siw6gO7GyKnCEJ2aBDrp8pxKusMfZo5J5dtgeKJtsRav5cimjA==", + "requires": { + "@popperjs/core": "^2.4.4", + "deepmerge": "^4.2.2", + "smoothscroll-polyfill": "^0.4.4" + } + }, "sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", @@ -17359,6 +17382,11 @@ "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", "dev": true }, + "smoothscroll-polyfill": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz", + "integrity": "sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg==" + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", diff --git a/package.json b/package.json index a0ffe3c73e..0735ddb08d 100644 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ "@turf/helpers": "^6.1.4", "@turf/line-intersect": "^6.0.2", "@turf/point-on-feature": "^5.1.5", + "angular-shepherd": "^0.7.0", "angular2-notifications": "^9.0.0", "bowser": "^2.10.0", "classlist.js": "^1.1.20150312", diff --git a/packages/auth/src/lib/auth-form/auth-form.component.html b/packages/auth/src/lib/auth-form/auth-form.component.html index 520a77d410..978cb2e08e 100644 --- a/packages/auth/src/lib/auth-form/auth-form.component.html +++ b/packages/auth/src/lib/auth-form/auth-form.component.html @@ -6,16 +6,16 @@

{{'igo.auth.connection' | translate}}

+ (login)="onLogin()"> + (login)="onLogin()"> + (login)="onLogin()"> diff --git a/packages/auth/src/lib/auth-form/auth-form.component.ts b/packages/auth/src/lib/auth-form/auth-form.component.ts index c8f051d453..b6951643eb 100644 --- a/packages/auth/src/lib/auth-form/auth-form.component.ts +++ b/packages/auth/src/lib/auth-form/auth-form.component.ts @@ -3,7 +3,9 @@ import { ChangeDetectionStrategy, OnInit, Input, - Optional + Optional, + Output, + EventEmitter } from '@angular/core'; import { Router, NavigationStart } from '@angular/router'; import { filter } from 'rxjs/operators'; @@ -79,6 +81,8 @@ export class AuthFormComponent implements OnInit { } } + @Output() login: EventEmitter = new EventEmitter(); + public options: AuthOptions; public user; @@ -101,9 +105,10 @@ export class AuthFormComponent implements OnInit { this.getName(); } - public login() { + public onLogin() { this.auth.goToRedirectUrl(); this.getName(); + this.login.emit(true); } public logout() { @@ -140,7 +145,7 @@ export class AuthFormComponent implements OnInit { } this.router.events - .pipe(filter(event => event instanceof NavigationStart)) + .pipe(filter((event) => event instanceof NavigationStart)) .subscribe((changeEvent: any) => { if (changeEvent.url) { const currentRoute = changeEvent.url; diff --git a/packages/auth/src/lib/auth.module.ts b/packages/auth/src/lib/auth.module.ts index ec2946acda..07763bfe12 100644 --- a/packages/auth/src/lib/auth.module.ts +++ b/packages/auth/src/lib/auth.module.ts @@ -6,7 +6,7 @@ import { MatButtonModule } from '@angular/material/button'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; -import { IgoLanguageModule, StorageService } from '@igo2/core'; +import { StorageService, IgoLanguageModule } from '@igo2/core'; import { AuthStorageService } from './shared/storage.service'; import { ProtectedDirective } from './shared/protected.directive'; diff --git a/packages/auth/src/lib/shared/auth.service.ts b/packages/auth/src/lib/shared/auth.service.ts index 2872954832..bada453a84 100644 --- a/packages/auth/src/lib/shared/auth.service.ts +++ b/packages/auth/src/lib/shared/auth.service.ts @@ -17,6 +17,7 @@ import { TokenService } from './token.service'; }) export class AuthService { public authenticate$ = new BehaviorSubject(undefined); + public logged$ = new BehaviorSubject(undefined); public redirectUrl: string; private anonymous = false; @@ -29,7 +30,8 @@ export class AuthService { @Optional() private router: Router ) { this.authenticate$.next(this.authenticated); - this.authenticate$.subscribe(() => { + this.authenticate$.subscribe((authenticated) => { + this.logged$.next(authenticated); globalCacheBusterNotifier.next(); }); } @@ -60,6 +62,7 @@ export class AuthService { loginAnonymous(): Observable { this.anonymous = true; + this.logged$.next(true); return of(true); } @@ -69,7 +72,7 @@ export class AuthService { tap((data: any) => { this.tokenService.set(data.token); }), - catchError(err => { + catchError((err) => { err.error.caught = true; throw err; }) @@ -166,14 +169,14 @@ export class AuthService { if (tokenDecoded.user.isExpired) { this.languageService.translate .get('igo.auth.error.Password expired') - .subscribe(expiredAlert => + .subscribe((expiredAlert) => this.messageService.alert(expiredAlert) ); } } this.authenticate$.next(true); }), - catchError(err => { + catchError((err) => { err.error.caught = true; throw err; }) diff --git a/packages/common/src/lib/interactive-tour/index.ts b/packages/common/src/lib/interactive-tour/index.ts new file mode 100644 index 0000000000..f9d40dbbe1 --- /dev/null +++ b/packages/common/src/lib/interactive-tour/index.ts @@ -0,0 +1,4 @@ +export * from './interactive-tour.service'; +export * from './interactive-tour.component'; +export * from './interactive-tour.loader'; +export * from './interactive-tour.interface'; diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.component.html b/packages/common/src/lib/interactive-tour/interactive-tour.component.html new file mode 100644 index 0000000000..314a8f6f76 --- /dev/null +++ b/packages/common/src/lib/interactive-tour/interactive-tour.component.html @@ -0,0 +1,10 @@ + diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.component.scss b/packages/common/src/lib/interactive-tour/interactive-tour.component.scss new file mode 100644 index 0000000000..7e0436c993 --- /dev/null +++ b/packages/common/src/lib/interactive-tour/interactive-tour.component.scss @@ -0,0 +1,8 @@ +.shepherd-has-title .shepherd-content .shepherd-header { + padding: 0.5em 0.75em; +} + +.shepherd-progress { + margin-right: 15px; + color: hsla(0, 0%, 45%, 1); +} diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.component.ts b/packages/common/src/lib/interactive-tour/interactive-tour.component.ts new file mode 100644 index 0000000000..13ccbb7842 --- /dev/null +++ b/packages/common/src/lib/interactive-tour/interactive-tour.component.ts @@ -0,0 +1,101 @@ +import { Component, ViewEncapsulation, Input } from '@angular/core'; +import { InteractiveTourService } from './interactive-tour.service'; +import { ToolService } from '../tool/shared/tool.service'; + +@Component({ + selector: 'igo-interactive-tour', + templateUrl: './interactive-tour.component.html', + styleUrls: ['./interactive-tour.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class InteractiveTourComponent { + /** + * Toolbox that holds main tools + */ + @Input() tourToStart: string = ''; + @Input() styleButton: string; + + getClass() { + return { + 'tour-button-tool-icon': this.styleButton === 'icon', + 'tour-button-tool': this.styleButton === 'raised' + }; + } + + get toolbox() { + return this.toolService.toolbox; + } + + getTourToStart() { + if (this.tourToStart) { + return this.tourToStart; + } else { + return this.activeToolName; + } + } + + get activeToolName() { + if (this.toolbox) { + if (this.isActiveTool) { + return this.toolbox.activeTool$.getValue().name; + } else { + return 'global'; + } + } else { + return undefined; + } + } + + get isActiveTool(): boolean { + if (this.toolbox) { + return this.toolbox.activeTool$.getValue() !== undefined; + } else { + return undefined; + } + } + + get isToolHaveTour(): boolean { + if (this.activeToolName === 'about' && !this.tourToStart) { + return false; + } + return this.interactiveTourService.isToolHaveTourConfig( + this.getTourToStart() + ); + } + + get showTourButton(): boolean { + // 2 conditions to show: have Tour on tool in Config file and if we are in mobile displayInMobile= true + let haveTour: boolean; + haveTour = this.isToolHaveTour; + if (haveTour === false) { + return false; + } + + let inMobileAndShow: boolean; + if (this.interactiveTourService.isMobile()) { + inMobileAndShow = this.isTourDisplayInMobile; + if (inMobileAndShow === false) { + return false; + } + } + return true; + } + + get isTourDisplayInMobile(): boolean { + return this.interactiveTourService.isTourDisplayInMobile(); + } + + constructor( + private interactiveTourService: InteractiveTourService, + private toolService: ToolService + ) {} + + startInteractiveTour() { + const tour = this.getTourToStart(); + if (tour) { + this.interactiveTourService.startTour(tour); + } else { + return; + } + } +} diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.interface.ts b/packages/common/src/lib/interactive-tour/interactive-tour.interface.ts new file mode 100644 index 0000000000..0e80e898a1 --- /dev/null +++ b/packages/common/src/lib/interactive-tour/interactive-tour.interface.ts @@ -0,0 +1,37 @@ +export interface InteractiveTourStep { + element?: string; + position?: string; + title?: string; + text: string; + beforeShow?: InteractiveTourAction; + beforeChange?: InteractiveTourAction; + onShow?: InteractiveTourAction; + onHide?: InteractiveTourAction; + class?: string; + highlightClass?: string; + scrollToElement?: boolean; + disableInteraction?: boolean; + noBackButton?: boolean; +} + +export interface InteractiveTourAction { + element?: string; + action: 'click'; + condition?: string; + waitFor?: string; + maxWait?: number; // in millisecond +} + +export interface InteractiveTourOptions { + steps: InteractiveTourStep[]; + position?: string; + title?: string; + /* CSS class that is added to the hightlight element */ + highlightClass?: string; + /* CSS class that is added to the modal container */ + class?: string; + /* Scroll to highlighted element? */ + scrollToElement?: boolean; + /* Disable an interaction with element? */ + disableInteraction?: boolean; +} diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.loader.ts b/packages/common/src/lib/interactive-tour/interactive-tour.loader.ts new file mode 100644 index 0000000000..421c025bb6 --- /dev/null +++ b/packages/common/src/lib/interactive-tour/interactive-tour.loader.ts @@ -0,0 +1,44 @@ +import { catchError } from 'rxjs/operators'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { Injectable } from '@angular/core'; +import { InteractiveTourOptions } from './interactive-tour.interface'; +import { ConfigService } from '@igo2/core'; + +@Injectable() +export class InteractiveTourLoader { + private jsonURL: string; + private allToursOptions; + + constructor(private http: HttpClient, private configService: ConfigService) { + this.jsonURL = this.getPathToConfigFile(); + this.allToursOptions = this.getJSON().subscribe((data) => { + this.allToursOptions = data; + }); + } + + public getPathToConfigFile(): string { + return ( + this.configService.getConfig('interactiveTour.pathToConfigFile') || + './config/interactiveTour.json' + ); + } + + public getJSON(): Observable { + return this.http.get(this.jsonURL).pipe( + catchError((e) => { + e.error.caught = true; + throw e; + }) + ); + } + + public getTourOptionData(toolName): InteractiveTourOptions { + if (this.allToursOptions === undefined) { + return undefined; + } + let nameInConfigFile = toolName; + nameInConfigFile = nameInConfigFile.replace(/\s/g, ''); + return this.allToursOptions[nameInConfigFile]; + } +} diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.module.ts b/packages/common/src/lib/interactive-tour/interactive-tour.module.ts new file mode 100644 index 0000000000..6581f917ae --- /dev/null +++ b/packages/common/src/lib/interactive-tour/interactive-tour.module.ts @@ -0,0 +1,24 @@ +import { NgModule } from '@angular/core'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { CommonModule } from '@angular/common'; + +import { IgoLanguageModule } from '@igo2/core'; +import { InteractiveTourService } from './interactive-tour.service'; +import { InteractiveTourComponent } from './interactive-tour.component'; +import { InteractiveTourLoader } from './interactive-tour.loader'; + +@NgModule({ + declarations: [InteractiveTourComponent], + imports: [ + CommonModule, + MatIconModule, + MatButtonModule, + MatTooltipModule, + IgoLanguageModule + ], + providers: [InteractiveTourService, InteractiveTourLoader], + exports: [InteractiveTourComponent] +}) +export class IgoInteractiveTourModule {} diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.service.ts b/packages/common/src/lib/interactive-tour/interactive-tour.service.ts new file mode 100644 index 0000000000..7cfc1e6656 --- /dev/null +++ b/packages/common/src/lib/interactive-tour/interactive-tour.service.ts @@ -0,0 +1,292 @@ +import { Injectable } from '@angular/core'; +import { ShepherdService } from 'angular-shepherd'; + +import { ConfigService, MediaService, LanguageService } from '@igo2/core'; +import { InteractiveTourLoader } from './interactive-tour.loader'; +import { + InteractiveTourOptions, + InteractiveTourStep, + InteractiveTourAction +} from './interactive-tour.interface'; + +@Injectable({ + providedIn: 'root' +}) +export class InteractiveTourService { + private previousStep: InteractiveTourStep; + + constructor( + private configService: ConfigService, + private mediaService: MediaService, + private languageService: LanguageService, + private interactiveTourLoader: InteractiveTourLoader, + private shepherdService: ShepherdService + ) {} + + public isToolHaveTourConfig(toolName: string): boolean { + const checkTourActiveOptions = this.interactiveTourLoader.getTourOptionData( + toolName + ); + if (checkTourActiveOptions === undefined) { + return false; + } else { + return true; + } + } + + public isMobile(): boolean { + const media = this.mediaService.getMedia(); + if (media === 'mobile') { + return true; + } else { + return false; + } + } + + public isTourDisplayInMobile(): boolean { + const showInMobile = this.configService.getConfig( + 'interactiveTour.tourInMobile' + ); + if (showInMobile === undefined) { + return true; + } + return this.configService.getConfig('interactiveTour.tourInMobile'); + } + + private getButtons(buttonKind?: 'first' | 'last' | 'noBackButton') { + if (buttonKind === 'noBackButton') { + return [ + { + classes: 'shepherd-button-primary', + text: this.languageService.translate.instant( + 'igo.common.interactiveTour.nextButton' + ), + type: 'next' + } + ]; + } + if (buttonKind === 'first') { + return [ + { + classes: 'shepherd-button-secondary', + text: this.languageService.translate.instant( + 'igo.common.interactiveTour.exitButton' + ), + type: 'cancel' + }, + { + classes: 'shepherd-button-primary', + text: this.languageService.translate.instant( + 'igo.common.interactiveTour.nextButton' + ), + type: 'next' + } + ]; + } + + if (buttonKind === 'last') { + return [ + { + classes: 'shepherd-button-secondary', + text: this.languageService.translate.instant( + 'igo.common.interactiveTour.backButton' + ), + type: 'back' + }, + { + classes: 'shepherd-button-primary', + text: this.languageService.translate.instant( + 'igo.common.interactiveTour.exitButton' + ), + type: 'cancel' + } + ]; + } + + return [ + { + classes: 'shepherd-button-secondary', + text: this.languageService.translate.instant( + 'igo.common.interactiveTour.backButton' + ), + type: 'back' + }, + { + classes: 'shepherd-button-primary', + text: this.languageService.translate.instant( + 'igo.common.interactiveTour.nextButton' + ), + type: 'next' + } + ]; + } + + private getAction(actionName: string) { + const action = { + click: 'click' + }; + return action[actionName.toLowerCase()]; + } + + private addProgress() { + const self = this as any; + let nbTry = 0; + const maxTry = 21; + const checkExist = setInterval(() => { + if (self.getCurrentStep()) { + const currentStepElement = self.getCurrentStep().getElement(); + const header = currentStepElement + ? currentStepElement.querySelector('.shepherd-header') + : undefined; + + nbTry++; + if (header || nbTry > maxTry) { + clearInterval(checkExist); + } + + if (header) { + const stepsArray = self.steps; + const progress = document.createElement('span'); + progress.className = 'shepherd-progress'; + progress.innerText = `${ + stepsArray.indexOf(self.getCurrentStep()) + 1 + }/${stepsArray.length}`; + header.insertBefore( + progress, + currentStepElement.querySelector('.shepherd-cancel-icon') + ); + } + } + }, 100); + } + + private executeAction( + step: InteractiveTourStep, + actionConfig: InteractiveTourAction + ) { + if (!actionConfig) { + return; + } + + if ( + actionConfig.condition && + ((actionConfig.condition.charAt(0) === '!' && + document.querySelector(actionConfig.condition.slice(1))) || + (actionConfig.condition.charAt(0) !== '!' && + !document.querySelector(actionConfig.condition))) + ) { + return; + } + + const element: HTMLElement = document.querySelector( + actionConfig.element || step.element + ) as HTMLElement; + const action = this.getAction(actionConfig.action); + if (element && action) { + element[action](); + } + } + + private executeActionPromise( + step: InteractiveTourStep, + actionConfig: InteractiveTourAction + ) { + return new Promise((resolve) => { + this.executeAction(step, actionConfig); + if (!actionConfig || !actionConfig.waitFor) { + resolve(); + return; + } + let nbTry = 0; + const maxTry = actionConfig.maxWait ? actionConfig.maxWait / 100 : 20; + const checkExist = setInterval(() => { + nbTry++; + if (nbTry > maxTry || document.querySelector(actionConfig.waitFor)) { + clearInterval(checkExist); + resolve(); + } + }, 100); + }); + } + + private getShepherdSteps(stepConfig: InteractiveTourOptions) { + const shepherdSteps = []; + + let i = 0; + for (const step of stepConfig.steps) { + shepherdSteps.push({ + attachTo: { + element: step.element, + on: step.position || stepConfig.position + }, + beforeShowPromise: () => { + return Promise.all([ + this.executeActionPromise( + this.previousStep, + this.previousStep ? this.previousStep.beforeChange : undefined + ), + this.executeActionPromise(step, step.beforeShow) + ]); + }, + buttons: this.getButtons( + i === 0 + ? 'first' + : i + 1 === stepConfig.steps.length + ? 'last' + : stepConfig.steps[i].noBackButton + ? 'noBackButton' + : undefined + ), + classes: step.class, + highlightClass: step.highlightClass, + scrollTo: step.scrollToElement || stepConfig.scrollToElement || true, + canClickTarget: step.disableInteraction + ? !step.disableInteraction + : undefined, + title: this.languageService.translate.instant( + step.title || stepConfig.title + ), + text: [this.languageService.translate.instant(step.text)], + when: { + show: () => { + this.executeAction(step, step.onShow); + }, + hide: () => { + this.previousStep = step; + this.executeAction(step, step.onHide); + } + } + }); + i++; + } + + return shepherdSteps; + } + + public startTour(toolName: string) { + const stepConfig: InteractiveTourOptions = this.interactiveTourLoader.getTourOptionData( + toolName + ); + + this.shepherdService.defaultStepOptions = { + classes: stepConfig.class, + highlightClass: stepConfig.highlightClass, + canClickTarget: stepConfig.disableInteraction + ? !stepConfig.disableInteraction + : true, + cancelIcon: { + enabled: true + } + }; + + const shepherdSteps = this.getShepherdSteps(stepConfig); + + this.shepherdService.modal = true; + this.shepherdService.confirmCancel = false; + this.shepherdService.addSteps(shepherdSteps); + + this.shepherdService.tourObject.on('show', this.addProgress); + + this.shepherdService.start(); + } +} diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.theming.scss b/packages/common/src/lib/interactive-tour/interactive-tour.theming.scss new file mode 100644 index 0000000000..94b6202093 --- /dev/null +++ b/packages/common/src/lib/interactive-tour/interactive-tour.theming.scss @@ -0,0 +1,40 @@ +@mixin igo-tour-theming($theme) { + $primary: map-get($theme, primary); + $accent: map-get($theme, accent); + $warn: map-get($theme, warn); + + igo-interactive-tour > button.mat-raised-button.tour-button-tool-icon { + box-shadow: none; + } + + igo-interactive-tour > button.tour-button-tool-icon { + background-color: mat-color($primary); + color: mat-color($primary, default-contrast); + + box-shadow: none; + border:none; + border-radius: 50%; + padding: 0; + min-width: 0; + width: 40px; + height: 40px; + flex-shrink: 0; + line-height: 40px; + } + + igo-interactive-tour > button.tour-button-tool-icon span.interactive-tour-button-title { + display: none; + } + + igo-interactive-tour > button.tour-button-tool { + background-color: mat-color($primary); + color: mat-color($primary, default-contrast); + border: none; + } + + igo-interactive-tour > button.tour-button-tool-icon:hover { + background-color: mat-color($primary, default-contrast); + color: mat-color($primary); + cursor: pointer; + } +} diff --git a/packages/common/src/lib/panel/panel.component.html b/packages/common/src/lib/panel/panel.component.html index 8aa7b477b5..b242aabf5f 100644 --- a/packages/common/src/lib/panel/panel.component.html +++ b/packages/common/src/lib/panel/panel.component.html @@ -2,7 +2,7 @@

- {{title}} + {{ title }}
diff --git a/packages/common/src/lib/panel/panel.component.ts b/packages/common/src/lib/panel/panel.component.ts index 956850e67b..a3cf7f7042 100644 --- a/packages/common/src/lib/panel/panel.component.ts +++ b/packages/common/src/lib/panel/panel.component.ts @@ -12,7 +12,6 @@ import { changeDetection: ChangeDetectionStrategy.OnPush }) export class PanelComponent { - @Input() get title() { return this._title; @@ -31,6 +30,4 @@ export class PanelComponent { this._withHeader = value; } private _withHeader = true; - - constructor() {} } diff --git a/packages/common/src/lib/panel/panel.module.ts b/packages/common/src/lib/panel/panel.module.ts index f1ce32fde9..5c920cea73 100644 --- a/packages/common/src/lib/panel/panel.module.ts +++ b/packages/common/src/lib/panel/panel.module.ts @@ -3,14 +3,8 @@ import { CommonModule } from '@angular/common'; import { PanelComponent } from './panel.component'; @NgModule({ - imports: [ - CommonModule - ], - exports: [ - PanelComponent - ], - declarations: [ - PanelComponent - ] + imports: [CommonModule], + exports: [PanelComponent], + declarations: [PanelComponent] }) export class IgoPanelModule {} diff --git a/packages/common/src/lib/tool/shared/tool.service.ts b/packages/common/src/lib/tool/shared/tool.service.ts index 0bf008c917..083b61536e 100644 --- a/packages/common/src/lib/tool/shared/tool.service.ts +++ b/packages/common/src/lib/tool/shared/tool.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@angular/core'; import { Tool } from './tool.interface'; +import { Toolbox } from './toolbox'; /** * Service where runtime tool configurations are registered @@ -9,14 +10,20 @@ import { Tool } from './tool.interface'; providedIn: 'root' }) export class ToolService { + static tools: { [key: string]: Tool } = {}; - static tools: {[key: string]: Tool} = {}; + /** + * Toolbox that holds main tools + */ + public toolbox: Toolbox = new Toolbox(); static register(tool: Tool) { ToolService.tools[tool.name] = tool; } - constructor() {} + constructor() { + this.toolbox.setTools(this.getTools()); + } /** * Return a tool @@ -34,5 +41,4 @@ export class ToolService { getTools(): Tool[] { return Object.values(ToolService.tools); } - } diff --git a/packages/common/src/locale/en.common.json b/packages/common/src/locale/en.common.json index 9cfc045e54..d87f0d4364 100644 --- a/packages/common/src/locale/en.common.json +++ b/packages/common/src/locale/en.common.json @@ -17,6 +17,13 @@ "actionbar": { "scrollUp": "Scroll up", "scrollDown": "Scroll down" + }, + "interactiveTour": { + "tooltipTourToolButton": "Interactive tour of the application", + "buttonTitle": "Discover", + "exitButton": "Exit", + "backButton": "Back", + "nextButton": "Next" } } } diff --git a/packages/common/src/locale/fr.common.json b/packages/common/src/locale/fr.common.json index bf8ec03138..006af584ae 100644 --- a/packages/common/src/locale/fr.common.json +++ b/packages/common/src/locale/fr.common.json @@ -17,6 +17,13 @@ "actionbar": { "scrollUp": "Défiler vers le haut", "scrollDown": "Défiler vers le bas" + }, + "interactiveTour": { + "tooltipTourToolButton": "Aide interactive sur l'outil", + "buttonTitle": "Découvrir", + "exitButton": "Quitter", + "backButton": "Précédent", + "nextButton": "Suivant" } } } diff --git a/packages/common/src/public_api.ts b/packages/common/src/public_api.ts index a84ac7e25c..e1a97dfd4e 100644 --- a/packages/common/src/public_api.ts +++ b/packages/common/src/public_api.ts @@ -24,6 +24,7 @@ export * from './lib/entity/entity.module'; export * from './lib/entity/entity-selector/entity-selector.module'; export * from './lib/entity/entity-table/entity-table.module'; export * from './lib/image/image.module'; +export * from './lib/interactive-tour/interactive-tour.module'; export * from './lib/json-dialog/json-dialog.module'; export * from './lib/keyvalue/keyvalue.module'; export * from './lib/list/list.module'; @@ -55,6 +56,7 @@ export * from './lib/form'; export * from './lib/entity'; export * from './lib/flexible'; export * from './lib/image'; +export * from './lib/interactive-tour'; export * from './lib/json-dialog'; export * from './lib/keyvalue'; export * from './lib/list'; diff --git a/packages/common/src/style/common.theming.scss b/packages/common/src/style/common.theming.scss index 261bdcc334..c96fd5cc16 100644 --- a/packages/common/src/style/common.theming.scss +++ b/packages/common/src/style/common.theming.scss @@ -1,8 +1,11 @@ +@import '~shepherd.js/dist/css/shepherd'; + @import '../lib/action/action.theming'; @import '../lib/collapsible/collapsible.theming'; @import '../lib/entity/entity.theming'; @import '../lib/list/list.theming'; @import '../lib/panel/panel.theming'; +@import '../lib/interactive-tour/interactive-tour.theming'; @import '../lib/tool/tool.theming'; @mixin igo-common-theming($theme, $typography) { @@ -12,4 +15,5 @@ @include igo-list-theming($theme); @include igo-panel-theming($theme); @include igo-tool-theming($theme); + @include igo-tour-theming($theme); } diff --git a/packages/integration/src/lib/about/about-tool/about-tool.component.html b/packages/integration/src/lib/about/about-tool/about-tool.component.html index 0b11055561..def3f5eaf8 100644 --- a/packages/integration/src/lib/about/about-tool/about-tool.component.html +++ b/packages/integration/src/lib/about/about-tool/about-tool.component.html @@ -1,3 +1,11 @@ +

+ + + + [html]="html |  translate: {version: version}"> diff --git a/packages/integration/src/lib/about/about-tool/about-tool.component.scss b/packages/integration/src/lib/about/about-tool/about-tool.component.scss new file mode 100644 index 0000000000..38f55dcc1b --- /dev/null +++ b/packages/integration/src/lib/about/about-tool/about-tool.component.scss @@ -0,0 +1,3 @@ +igo-interactive-tour { + margin-left: 20px; +} diff --git a/packages/integration/src/lib/about/about-tool/about-tool.component.ts b/packages/integration/src/lib/about/about-tool/about-tool.component.ts index 1f49d6b29e..c683aa4402 100644 --- a/packages/integration/src/lib/about/about-tool/about-tool.component.ts +++ b/packages/integration/src/lib/about/about-tool/about-tool.component.ts @@ -10,7 +10,8 @@ import { ConfigService, Version } from '@igo2/core'; }) @Component({ selector: 'igo-about-tool', - templateUrl: './about-tool.component.html' + templateUrl: './about-tool.component.html', + styleUrls: ['./about-tool.component.scss'] }) export class AboutToolComponent { @Input() diff --git a/packages/integration/src/lib/about/about.module.ts b/packages/integration/src/lib/about/about.module.ts index e945886919..e56dc1e275 100644 --- a/packages/integration/src/lib/about/about.module.ts +++ b/packages/integration/src/lib/about/about.module.ts @@ -3,14 +3,24 @@ import { ModuleWithProviders, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; import { IgoLanguageModule } from '@igo2/core'; -import { IgoCustomHtmlModule } from '@igo2/common'; +import { IgoCustomHtmlModule, IgoInteractiveTourModule } from '@igo2/common'; import { AboutToolComponent } from './about-tool/about-tool.component'; @NgModule({ - imports: [IgoLanguageModule, IgoCustomHtmlModule], + imports: [ + IgoLanguageModule, + IgoCustomHtmlModule, + MatButtonModule, + MatTooltipModule, + MatIconModule, + IgoInteractiveTourModule + ], declarations: [AboutToolComponent], exports: [AboutToolComponent], schemas: [CUSTOM_ELEMENTS_SCHEMA] diff --git a/packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.html b/packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.html index 8c5f05f78e..8127980877 100644 --- a/packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.html +++ b/packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.html @@ -1 +1,4 @@ - + diff --git a/packages/integration/src/lib/search/search-bar/search-bar.module.ts b/packages/integration/src/lib/search/search-bar/search-bar.module.ts index e82fd2c619..0374cbcb84 100644 --- a/packages/integration/src/lib/search/search-bar/search-bar.module.ts +++ b/packages/integration/src/lib/search/search-bar/search-bar.module.ts @@ -8,10 +8,8 @@ import { SearchBarBindingDirective } from './search-bar-binding.directive'; * @ignore */ @NgModule({ - imports: [ - IgoSearchModule - ], + imports: [IgoSearchModule], declarations: [SearchBarBindingDirective], - exports: [SearchBarBindingDirective] + exports: [SearchBarBindingDirective], }) export class IgoAppSearchBarModule {} diff --git a/packages/integration/src/lib/tool/tool.state.ts b/packages/integration/src/lib/tool/tool.state.ts index 8543aca406..1fd2ceb346 100644 --- a/packages/integration/src/lib/tool/tool.state.ts +++ b/packages/integration/src/lib/tool/tool.state.ts @@ -9,12 +9,9 @@ import { Toolbox, ToolService } from '@igo2/common'; providedIn: 'root' }) export class ToolState { - /** - * Toolbox that holds main tools - */ - toolbox: Toolbox = new Toolbox(); - - constructor(private toolService: ToolService) { - this.toolbox.setTools(this.toolService.getTools()); + get toolbox(): Toolbox { + return this.toolService.toolbox; } + + constructor(private toolService: ToolService) {} } From 06253c14c28afde74f875f06bb9cd53b01195788 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 12 Aug 2020 14:55:20 -0400 Subject: [PATCH 32/90] wip --- packages/geo/src/lib/workspace/index.ts | 2 ++ .../lib/workspace/shared/feature-actions.service.ts | 2 +- .../src/lib/workspace/shared/wfs-actions.service.ts | 2 +- .../workspace-selector/workspace-selector.directive.ts | 3 +-- .../workspace-updator/workspace-updator.directive.ts | 7 +++---- packages/geo/src/public_api.ts | 10 ++++++---- packages/integration/src/lib/workspace/index.ts | 1 + .../workspace-button/workspace-button.component.ts | 3 ++- .../integration/src/lib/workspace/workspace.module.ts | 4 +++- 9 files changed, 20 insertions(+), 14 deletions(-) diff --git a/packages/geo/src/lib/workspace/index.ts b/packages/geo/src/lib/workspace/index.ts index 5d12517e4f..a2897d2d53 100644 --- a/packages/geo/src/lib/workspace/index.ts +++ b/packages/geo/src/lib/workspace/index.ts @@ -1,4 +1,6 @@ export * from './shared'; export * from './workspace-selector/workspace-selector.directive'; export * from './workspace-selector/workspace-selector.module'; +export * from './workspace-updator/workspace-updator.directive'; +export * from './workspace-updator/workspace-updator.module'; export * from './widgets/index'; diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index 1c9d897461..dc0eb5e8d1 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -45,7 +45,7 @@ export class FeatureActionsService { const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); ws.toolToActivate$.next({ toolbox: 'importExport', - options: { layer: ws.layer.id, featureInMapExtent: filterStrategy.active } as ExportOptions + options: { layer: [ws.layer.id], featureInMapExtent: filterStrategy.active } as ExportOptions }); }, args: [workspace] diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index aa149b1c64..6c2ec81356 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -59,7 +59,7 @@ export class WfsActionsService { const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); ws.toolToActivate$.next({ toolbox: 'importExport', - options: { layer: ws.layer.id, featureInMapExtent: filterStrategy.active } as ExportOptions + options: { layer: [ws.layer.id], featureInMapExtent: filterStrategy.active } as ExportOptions }); }, args: [workspace] diff --git a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts index 4765c457aa..8309e6d640 100644 --- a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts @@ -1,7 +1,7 @@ import { Directive, Input, OnInit, OnDestroy } from '@angular/core'; import { Subscription } from 'rxjs'; -import { debounceTime, skipWhile, first } from 'rxjs/operators'; +import { debounceTime } from 'rxjs/operators'; import { Workspace, WorkspaceStore, WorkspaceSelectorComponent } from '@igo2/common'; @@ -13,7 +13,6 @@ import { OgcFilterableDataSourceOptions } from '../../filter'; import { WfsWorkspaceService } from '../shared/wfs-workspace.service'; import { WmsWorkspaceService } from '../shared/wms-workspace.service'; import { FeatureWorkspaceService } from '../shared/feature-workspace.service'; -import { Feature } from '../../feature/shared/feature.interfaces'; @Directive({ selector: '[igoWorkspaceSelector]' diff --git a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts index f7e718fb6d..017755d65d 100644 --- a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts @@ -1,10 +1,10 @@ import { Directive, Input, OnInit, OnDestroy } from '@angular/core'; import { Subscription } from 'rxjs'; -import { debounceTime, skipWhile, first } from 'rxjs/operators'; - -import { Workspace, WorkspaceStore, WorkspaceSelectorComponent } from '@igo2/common'; +import { debounceTime } from 'rxjs/operators'; +import { Workspace } from '@igo2/common'; +import type { WorkspaceStore } from '@igo2/common'; import { Layer, ImageLayer, VectorLayer } from '../../layer'; import { IgoMap } from '../../map'; import { WFSDataSource, WMSDataSource, FeatureDataSource } from '../../datasource'; @@ -13,7 +13,6 @@ import { OgcFilterableDataSourceOptions } from '../../filter'; import { WfsWorkspaceService } from '../shared/wfs-workspace.service'; import { WmsWorkspaceService } from '../shared/wms-workspace.service'; import { FeatureWorkspaceService } from '../shared/feature-workspace.service'; -import { Feature } from '../../feature/shared/feature.interfaces'; @Directive({ selector: '[igoWorkspaceUpdator]' diff --git a/packages/geo/src/public_api.ts b/packages/geo/src/public_api.ts index 282a343249..ba1f7391d1 100644 --- a/packages/geo/src/public_api.ts +++ b/packages/geo/src/public_api.ts @@ -10,10 +10,12 @@ export * from './lib/datasource/datasource.module'; export * from './lib/directions/directions.module'; export * from './lib/download/download.module'; export * from './lib/workspace/workspace.module'; -export * from './lib/workspace/shared/wfs-workspace'; -export * from './lib/workspace/shared/feature-workspace'; -export * from './lib/workspace/workspace-selector/workspace-selector.module'; -export * from './lib/workspace/widgets/ogc-filter/ogc-filter.module'; +// TODO CLEAN UP +// export * from './lib/workspace/shared/wfs-workspace'; +// export * from './lib/workspace/shared/feature-workspace'; +// export * from './lib/workspace/workspace-selector/workspace-selector.module'; +// export * from './lib/workspace/workspace-updator/workspace-updator.module'; +// export * from './lib/workspace/widgets/ogc-filter/ogc-filter.module'; export * from './lib/feature/feature.module'; export * from './lib/feature/feature-form/feature-form.module'; export * from './lib/feature/feature-details/feature-details.module'; diff --git a/packages/integration/src/lib/workspace/index.ts b/packages/integration/src/lib/workspace/index.ts index f112c37bf4..ad9452e1a7 100644 --- a/packages/integration/src/lib/workspace/index.ts +++ b/packages/integration/src/lib/workspace/index.ts @@ -1 +1,2 @@ +export * from './workspace-button'; export * from './workspace.state'; diff --git a/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts b/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts index fd9fd0a4e9..a5d5665a1f 100644 --- a/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts +++ b/packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts @@ -1,5 +1,6 @@ import { Component, Input, ChangeDetectionStrategy, OnInit, OnDestroy } from '@angular/core'; -import { Layer, VectorLayer } from '@igo2/geo'; +import { VectorLayer } from '@igo2/geo'; +import type { Layer } from '@igo2/geo'; import { WorkspaceState } from '../workspace.state'; import { BehaviorSubject, Subscription } from 'rxjs'; diff --git a/packages/integration/src/lib/workspace/workspace.module.ts b/packages/integration/src/lib/workspace/workspace.module.ts index c4b8b6dbec..d10bcd737e 100644 --- a/packages/integration/src/lib/workspace/workspace.module.ts +++ b/packages/integration/src/lib/workspace/workspace.module.ts @@ -1,6 +1,8 @@ import { NgModule } from '@angular/core'; import { WorkspaceButtonComponent } from './workspace-button/workspace-button.component'; -import { MatIconModule, MatButtonModule, MatTooltipModule } from '@angular/material'; +import { MatButtonModule } from '@angular/material/button'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { MatIconModule } from '@angular/material/icon'; import { IgoLanguageModule } from '@igo2/core'; import { CommonModule } from '@angular/common'; From e8ad3d4e63f12b5e4e71e1635a919dc3596d0446 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 12 Aug 2020 15:05:27 -0400 Subject: [PATCH 33/90] wip --- packages/geo/src/public_api.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/geo/src/public_api.ts b/packages/geo/src/public_api.ts index ba1f7391d1..0dd9eddfa7 100644 --- a/packages/geo/src/public_api.ts +++ b/packages/geo/src/public_api.ts @@ -10,7 +10,7 @@ export * from './lib/datasource/datasource.module'; export * from './lib/directions/directions.module'; export * from './lib/download/download.module'; export * from './lib/workspace/workspace.module'; -// TODO CLEAN UP +// TODO CLEAN UP // export * from './lib/workspace/shared/wfs-workspace'; // export * from './lib/workspace/shared/feature-workspace'; // export * from './lib/workspace/workspace-selector/workspace-selector.module'; From 3f0d16a360d60039098dd5e33e21c5e0141459a3 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 13 Aug 2020 10:06:49 -0400 Subject: [PATCH 34/90] wip handling zoom auto on row selection in table --- .../shared/feature-actions.service.ts | 26 ++++++++++++++++--- .../shared/feature-workspace.service.ts | 15 ++++++++--- .../workspace/shared/wfs-actions.service.ts | 26 ++++++++++++++++--- .../workspace/shared/wfs-workspace.service.ts | 16 +++++++++--- .../lib/workspace/shared/workspace.utils.ts | 13 ++++++++++ packages/geo/src/locale/en.geo.json | 4 ++- packages/geo/src/locale/fr.geo.json | 4 ++- 7 files changed, 90 insertions(+), 14 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index dc0eb5e8d1..e8e4ad88f2 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -3,15 +3,22 @@ import { Injectable } from '@angular/core'; import { Action, EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; import { FeatureWorkspace } from './feature-workspace'; -import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip } from './workspace.utils'; +import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip } from './workspace.utils'; import { ExportOptions } from '../../import-export/shared/export.interface'; +import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; +import { FeatureMotion } from '../../feature'; +import { StorageService } from '@igo2/core'; @Injectable({ providedIn: 'root' }) export class FeatureActionsService { - constructor() {} + get zoomAutoTable(): boolean { + return this.storageService.get('zoomAutoTable') as boolean; + } + + constructor(private storageService: StorageService) {} loadActions(workspace: FeatureWorkspace) { const actions = this.buildActions(workspace); @@ -49,7 +56,20 @@ export class FeatureActionsService { }); }, args: [workspace] - } + }, + { + id: 'zoomAuto', + checkbox: true, + title: 'igo.geo.workspace.zoomAuto.title', + tooltip: FeatureMotionStrategyActiveToolTip(workspace), + checkCondition: this.zoomAutoTable, + handler: () => { + const zoomStrategy = workspace.entityStore + .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; + this.storageService.set('zoomAutoTable', !this.storageService.get('zoomAutoTable') as boolean); + zoomStrategy.setMotion(this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None); + } + }, ]; } } diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index 15d61c7301..9f6eb06afe 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -13,7 +13,8 @@ import { FeatureStoreLoadingLayerStrategy, FeatureStoreSelectionStrategy, FeatureStoreInMapExtentStrategy, - Feature + Feature, + FeatureMotion } from '../../feature'; import { VectorLayer } from '../../layer'; import { IgoMap } from '../../map'; @@ -22,13 +23,20 @@ import { SourceFieldsOptionsParams } from '../../datasource'; import { FeatureWorkspace } from './feature-workspace'; import { FeatureActionsService } from './feature-actions.service'; import { skipWhile, take } from 'rxjs/operators'; +import { StorageService } from '@igo2/core'; @Injectable({ providedIn: 'root' }) export class FeatureWorkspaceService { - constructor(private featureActionsService: FeatureActionsService) {} + get zoomAutoTable(): boolean { + return this.storageService.get('zoomAutoTable') as boolean; + } + + constructor( + private featureActionsService: FeatureActionsService, + private storageService: StorageService) {} createWorkspace(layer: VectorLayer, map: IgoMap): FeatureWorkspace { const wks = new FeatureWorkspace({ @@ -56,7 +64,8 @@ export class FeatureWorkspaceService { const inMapExtentStrategy = new FeatureStoreInMapExtentStrategy({}); const selectionStrategy = new FeatureStoreSelectionStrategy({ map, - hitTolerance: 15 + hitTolerance: 15, + motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None }); store.addStrategy(loadingStrategy, true); store.addStrategy(inMapExtentStrategy, true); diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index 6c2ec81356..489ac3833f 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -4,15 +4,22 @@ import { Action, Widget, EntityStoreFilterCustomFuncStrategy } from '@igo2/commo import { OgcFilterWidget } from '../widgets/widgets'; import { WfsWorkspace } from './wfs-workspace'; -import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip } from './workspace.utils'; +import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip } from './workspace.utils'; import { ExportOptions } from '../../import-export/shared/export.interface'; +import { StorageService } from '@igo2/core'; +import { FeatureMotion } from '../../feature'; +import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; @Injectable({ providedIn: 'root' }) export class WfsActionsService { - constructor(@Inject(OgcFilterWidget) private ogcFilterWidget: Widget) {} + get zoomAutoTable(): boolean { + return this.storageService.get('zoomAutoTable') as boolean; + } + + constructor(@Inject(OgcFilterWidget) private ogcFilterWidget: Widget, private storageService: StorageService) {} loadActions(workspace: WfsWorkspace) { const actions = this.buildActions(workspace); @@ -63,7 +70,20 @@ export class WfsActionsService { }); }, args: [workspace] - } + }, + { + id: 'zoomAuto', + checkbox: true, + title: 'igo.geo.workspace.zoomAuto.title', + tooltip: FeatureMotionStrategyActiveToolTip(workspace), + checkCondition: this.zoomAutoTable, + handler: () => { + const zoomStrategy = workspace.entityStore + .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; + this.storageService.set('zoomAutoTable', !this.storageService.get('zoomAutoTable') as boolean); + zoomStrategy.setMotion(this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None); + } + }, ]; } } diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index dc879c5133..73c4f3b42a 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -13,7 +13,8 @@ import { FeatureStoreLoadingLayerStrategy, FeatureStoreSelectionStrategy, FeatureStoreInMapExtentStrategy, - Feature + Feature, + FeatureMotion } from '../../feature'; import { VectorLayer } from '../../layer'; import { IgoMap } from '../../map'; @@ -22,13 +23,21 @@ import { SourceFieldsOptionsParams } from '../../datasource'; import { WfsWorkspace } from './wfs-workspace'; import { WfsActionsService } from './wfs-actions.service'; import { skipWhile, take } from 'rxjs/operators'; +import { StorageService } from '@igo2/core'; @Injectable({ providedIn: 'root' }) export class WfsWorkspaceService { - constructor(private wfsActionsService: WfsActionsService) {} + get zoomAutoTable(): boolean { + return this.storageService.get('zoomAutoTable') as boolean; + } + + constructor( + private wfsActionsService: WfsActionsService, + private storageService: StorageService + ) {} createWorkspace(layer: VectorLayer, map: IgoMap): WfsWorkspace { const wks = new WfsWorkspace({ @@ -56,7 +65,8 @@ export class WfsWorkspaceService { const inMapExtentStrategy = new FeatureStoreInMapExtentStrategy({}); const selectionStrategy = new FeatureStoreSelectionStrategy({ map, - hitTolerance: 15 + hitTolerance: 15, + motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None }); store.addStrategy(loadingStrategy, true); store.addStrategy(inMapExtentStrategy, true); diff --git a/packages/geo/src/lib/workspace/shared/workspace.utils.ts b/packages/geo/src/lib/workspace/shared/workspace.utils.ts index 382ef9199f..f23725a1a8 100644 --- a/packages/geo/src/lib/workspace/shared/workspace.utils.ts +++ b/packages/geo/src/lib/workspace/shared/workspace.utils.ts @@ -3,6 +3,7 @@ import { FeatureWorkspace } from './feature-workspace'; import { Observable } from 'rxjs'; import { EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; import { map } from 'rxjs/operators'; +import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; export function mapExtentStrategyActiveIcon(ws: WfsWorkspace | FeatureWorkspace): Observable { return ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy).active$.pipe( @@ -14,3 +15,15 @@ export function mapExtentStrategyActiveToolTip(ws: WfsWorkspace | FeatureWorkspa map((active: boolean) => active ? 'igo.geo.workspace.inMapExtent.active.tooltip' : 'igo.geo.workspace.inMapExtent.inactive.tooltip') ); } + +export function FeatureMotionStrategyActiveToolTip(ws: WfsWorkspace | FeatureWorkspace): Observable { + return ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy).active$.pipe( + map((active: boolean) => active ? 'igo.geo.workspace.zoomAuto.tooltip' : 'igo.geo.workspace.zoomAuto.tooltip') + ); +} + +export function FeatureMotionStrategyActiveIcon(ws: WfsWorkspace | FeatureWorkspace): Observable { + return ws.entityStore.getStrategyOfType(FeatureStoreSelectionStrategy).active$.pipe( + map((active: boolean) => active ? 'checkbox-marked' : 'checkbox-blank-outline') + ); +} diff --git a/packages/geo/src/locale/en.geo.json b/packages/geo/src/locale/en.geo.json index dc0bb78288..dd6fefcc11 100644 --- a/packages/geo/src/locale/en.geo.json +++ b/packages/geo/src/locale/en.geo.json @@ -525,7 +525,9 @@ "wfsDownload.tooltip": "Download", "inMapExtent.title": "Show records in map extent only", "inMapExtent.active.tooltip": "Show records in map extent only", - "inMapExtent.inactive.tooltip": "Show all records" + "inMapExtent.inactive.tooltip": "Show all records", + "zoomAuto.title": "Zoom auto", + "zoomAuto.tooltip": "Zoom auto" }, "network": { "online": { diff --git a/packages/geo/src/locale/fr.geo.json b/packages/geo/src/locale/fr.geo.json index f76b9a32d8..03b47eb83d 100644 --- a/packages/geo/src/locale/fr.geo.json +++ b/packages/geo/src/locale/fr.geo.json @@ -526,7 +526,9 @@ "wfsDownload.tooltip": "Télécharger les données associées", "inMapExtent.title": "Ne montrer que les enregistrements contenus dans la carte", "inMapExtent.active.tooltip": "Ne montrer que les enregistrements contenus dans la carte", - "inMapExtent.inactive.tooltip": "Montrer tous les enregistrements" + "inMapExtent.inactive.tooltip": "Montrer tous les enregistrements", + "zoomAuto.title": "Zoom auto", + "zoomAuto.tooltip": "Zoom auto" }, "network": { "online": { From cbe705afa4c8635c7e9a441ea631389806d9617f Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 13 Aug 2020 14:41:33 -0400 Subject: [PATCH 35/90] wip review on tool to activate by workspace --- packages/common/src/lib/workspace/shared/workspace.ts | 2 -- .../src/lib/workspace/shared/feature-actions.service.ts | 7 +++++-- .../src/lib/workspace/shared/feature-workspace.service.ts | 6 ++++++ .../geo/src/lib/workspace/shared/wfs-actions.service.ts | 7 +++++-- .../geo/src/lib/workspace/shared/wfs-workspace.service.ts | 6 ++++++ .../workspace-selector/workspace-selector.directive.ts | 8 +++++++- .../workspace-updator/workspace-updator.directive.ts | 8 +++++++- 7 files changed, 36 insertions(+), 8 deletions(-) diff --git a/packages/common/src/lib/workspace/shared/workspace.ts b/packages/common/src/lib/workspace/shared/workspace.ts index 64c883ebd5..531fea9845 100644 --- a/packages/common/src/lib/workspace/shared/workspace.ts +++ b/packages/common/src/lib/workspace/shared/workspace.ts @@ -87,8 +87,6 @@ export class Workspace { get active(): boolean { return this.active$.value; } readonly active$: BehaviorSubject = new BehaviorSubject(false); - toolToActivate$: BehaviorSubject<{ toolbox: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); - /** * Activate the workspace. By doing that, the workspace will observe * the selected entity (from the store) and update the actions availability. diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index e8e4ad88f2..043bf2a6b9 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -8,12 +8,15 @@ import { ExportOptions } from '../../import-export/shared/export.interface'; import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; import { FeatureMotion } from '../../feature'; import { StorageService } from '@igo2/core'; +import { BehaviorSubject } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class FeatureActionsService { + toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); + get zoomAutoTable(): boolean { return this.storageService.get('zoomAutoTable') as boolean; } @@ -50,8 +53,8 @@ export class FeatureActionsService { tooltip: 'igo.geo.workspace.wfsDownload.tooltip', handler: (ws: FeatureWorkspace) => { const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); - ws.toolToActivate$.next({ - toolbox: 'importExport', + this.toolToActivate$.next({ + tool: 'importExport', options: { layer: [ws.layer.id], featureInMapExtent: filterStrategy.active } as ExportOptions }); }, diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index 9f6eb06afe..24f22a183d 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -24,12 +24,15 @@ import { FeatureWorkspace } from './feature-workspace'; import { FeatureActionsService } from './feature-actions.service'; import { skipWhile, take } from 'rxjs/operators'; import { StorageService } from '@igo2/core'; +import { BehaviorSubject } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class FeatureWorkspaceService { + toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); + get zoomAutoTable(): boolean { return this.storageService.get('zoomAutoTable') as boolean; } @@ -52,6 +55,9 @@ export class FeatureWorkspaceService { }); this.createTableTemplate(wks, layer); this.featureActionsService.loadActions(wks); + this.featureActionsService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate$.next(toolToActivate) + ); return wks; } diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index 489ac3833f..37c8b53d34 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -9,12 +9,15 @@ import { ExportOptions } from '../../import-export/shared/export.interface'; import { StorageService } from '@igo2/core'; import { FeatureMotion } from '../../feature'; import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; +import { BehaviorSubject } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class WfsActionsService { + toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); + get zoomAutoTable(): boolean { return this.storageService.get('zoomAutoTable') as boolean; } @@ -64,8 +67,8 @@ export class WfsActionsService { tooltip: 'igo.geo.workspace.wfsDownload.tooltip', handler: (ws: WfsWorkspace) => { const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); - ws.toolToActivate$.next({ - toolbox: 'importExport', + this.toolToActivate$.next({ + tool: 'importExport', options: { layer: [ws.layer.id], featureInMapExtent: filterStrategy.active } as ExportOptions }); }, diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index 73c4f3b42a..f77a7aed30 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -24,12 +24,15 @@ import { WfsWorkspace } from './wfs-workspace'; import { WfsActionsService } from './wfs-actions.service'; import { skipWhile, take } from 'rxjs/operators'; import { StorageService } from '@igo2/core'; +import { BehaviorSubject } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class WfsWorkspaceService { + toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); + get zoomAutoTable(): boolean { return this.storageService.get('zoomAutoTable') as boolean; } @@ -53,6 +56,9 @@ export class WfsWorkspaceService { }); this.createTableTemplate(wks, layer); this.wfsActionsService.loadActions(wks); + this.wfsActionsService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate$.next(toolToActivate) + ); return wks; } diff --git a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts index 8309e6d640..ad1e94ed86 100644 --- a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts @@ -1,4 +1,4 @@ -import { Directive, Input, OnInit, OnDestroy } from '@angular/core'; +import { Directive, Input, OnInit, OnDestroy, Output, EventEmitter } from '@angular/core'; import { Subscription } from 'rxjs'; import { debounceTime } from 'rxjs/operators'; @@ -24,6 +24,8 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { @Input() map: IgoMap; + @Output() toolToActivate = new EventEmitter<{ tool: string; options: {[key: string]: any} }>(); + get workspaceStore(): WorkspaceStore { return this.component.store; } @@ -83,11 +85,15 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { } if (layer.dataSource instanceof WFSDataSource) { const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); + this.wfsWorkspaceService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate.emit(toolToActivate)); return wfsWks; } else if (layer.dataSource instanceof WMSDataSource) { return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); + this.featureWorkspaceService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate.emit(toolToActivate)); return featureWks; } diff --git a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts index 017755d65d..889513cc3b 100644 --- a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts @@ -1,4 +1,4 @@ -import { Directive, Input, OnInit, OnDestroy } from '@angular/core'; +import { Directive, Input, OnInit, OnDestroy, Output, EventEmitter } from '@angular/core'; import { Subscription } from 'rxjs'; import { debounceTime } from 'rxjs/operators'; @@ -26,6 +26,8 @@ export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { @Input() workspaceStore: WorkspaceStore; + @Output() toolToActivate = new EventEmitter<{ tool: string; options: {[key: string]: any} }>(); + constructor( private wfsWorkspaceService: WfsWorkspaceService, private wmsWorkspaceService: WmsWorkspaceService, @@ -80,11 +82,15 @@ export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { } if (layer.dataSource instanceof WFSDataSource) { const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); + this.wfsWorkspaceService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate.emit(toolToActivate)); return wfsWks; } else if (layer.dataSource instanceof WMSDataSource) { return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); + this.featureWorkspaceService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate.emit(toolToActivate)); return featureWks; } From d67019e4c893f3f3997dbd5af2257daa592d4550 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 13 Aug 2020 15:08:37 -0400 Subject: [PATCH 36/90] wip --- .../lib/workspace/shared/feature-actions.service.ts | 12 ++++++++---- .../src/lib/workspace/shared/wfs-actions.service.ts | 13 +++++++++---- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index 043bf2a6b9..0910f85f02 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -21,6 +21,10 @@ export class FeatureActionsService { return this.storageService.get('zoomAutoTable') as boolean; } + get rowsInMapExtent(): boolean { + return this.storageService.get('rowsInMapExtent') as boolean; + } + constructor(private storageService: StorageService) {} loadActions(workspace: FeatureWorkspace) { @@ -32,18 +36,18 @@ export class FeatureActionsService { return [ { id: 'filterInMapExtent', - icon: mapExtentStrategyActiveIcon(workspace), title: 'igo.geo.workspace.inMapExtent.title', tooltip: mapExtentStrategyActiveToolTip(workspace), - args: [workspace], - handler: (ws: FeatureWorkspace) => { - const filterStrategy = ws.entityStore + checkCondition: this.rowsInMapExtent, + handler: () => { + const filterStrategy = workspace.entityStore .getStrategyOfType(EntityStoreFilterCustomFuncStrategy); if (filterStrategy.active) { filterStrategy.deactivate(); } else { filterStrategy.activate(); } + this.storageService.set('rowsInMapExtent', !this.storageService.get('rowsInMapExtent') as boolean); } }, { diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index 37c8b53d34..ad30a6ce69 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -22,6 +22,10 @@ export class WfsActionsService { return this.storageService.get('zoomAutoTable') as boolean; } + get rowsInMapExtent(): boolean { + return this.storageService.get('rowsInMapExtent') as boolean; + } + constructor(@Inject(OgcFilterWidget) private ogcFilterWidget: Widget, private storageService: StorageService) {} loadActions(workspace: WfsWorkspace) { @@ -33,18 +37,19 @@ export class WfsActionsService { return [ { id: 'filterInMapExtent', - icon: mapExtentStrategyActiveIcon(workspace), + checkbox: true, title: 'igo.geo.workspace.inMapExtent.title', tooltip: mapExtentStrategyActiveToolTip(workspace), - args: [workspace], - handler: (ws: WfsWorkspace) => { - const filterStrategy = ws.entityStore + checkCondition: this.rowsInMapExtent, + handler: () => { + const filterStrategy = workspace.entityStore .getStrategyOfType(EntityStoreFilterCustomFuncStrategy); if (filterStrategy.active) { filterStrategy.deactivate(); } else { filterStrategy.activate(); } + this.storageService.set('rowsInMapExtent', !this.storageService.get('rowsInMapExtent') as boolean); } }, { From 920514016bcaf290da8e0a9a65d193dd50a5066e Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 13 Aug 2020 15:22:34 -0400 Subject: [PATCH 37/90] wip --- packages/geo/src/lib/workspace/shared/feature-actions.service.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index 0910f85f02..e2954a79a4 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -36,6 +36,7 @@ export class FeatureActionsService { return [ { id: 'filterInMapExtent', + checkbox: true, title: 'igo.geo.workspace.inMapExtent.title', tooltip: mapExtentStrategyActiveToolTip(workspace), checkCondition: this.rowsInMapExtent, From 4387e2ab24734a2f91ea8abd7d1a9c1ce939833f Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 14 Aug 2020 08:48:52 -0400 Subject: [PATCH 38/90] wip --- .../shared/strategies/in-map-extent.ts | 6 +++++ .../shared/feature-actions.service.ts | 4 ++-- .../shared/feature-workspace.service.ts | 20 ++++++++++++----- .../workspace/shared/wfs-actions.service.ts | 6 ++--- .../workspace/shared/wfs-workspace.service.ts | 22 +++++++++++++------ .../lib/workspace/shared/workspace.utils.ts | 11 ---------- .../workspace-selector.directive.ts | 10 +++++---- .../workspace-updator.directive.ts | 10 +++++---- 8 files changed, 52 insertions(+), 37 deletions(-) diff --git a/packages/geo/src/lib/feature/shared/strategies/in-map-extent.ts b/packages/geo/src/lib/feature/shared/strategies/in-map-extent.ts index 5197336f2a..08348e1c9e 100644 --- a/packages/geo/src/lib/feature/shared/strategies/in-map-extent.ts +++ b/packages/geo/src/lib/feature/shared/strategies/in-map-extent.ts @@ -6,6 +6,7 @@ import { EntityStoreStrategy } from '@igo2/common'; import { FeatureStore } from '../store'; import { FeatureStoreInMapExtentStrategyOptions, Feature } from '../feature.interfaces'; import { Subscription } from 'rxjs'; +import { skipWhile } from 'rxjs/operators'; /** * This strategy maintain the store features updated while the map is moved. @@ -18,6 +19,7 @@ export class FeatureStoreInMapExtentStrategy extends EntityStoreStrategy { */ private stores$$ = new Map(); private states$$: Subscription[] = []; + private empty$$: Subscription; constructor(protected options: FeatureStoreInMapExtentStrategyOptions) { super(options); @@ -32,6 +34,9 @@ export class FeatureStoreInMapExtentStrategy extends EntityStoreStrategy { if (this.active === true) { this.watchStore(store); } + this.empty$$ = store.empty$ + .pipe(skipWhile((empty) => !empty)) + .subscribe(() => this.updateEntitiesInExtent(store)); } /** @@ -107,5 +112,6 @@ export class FeatureStoreInMapExtentStrategy extends EntityStoreStrategy { }); this.stores$$.clear(); this.states$$.map(state => state.unsubscribe()); + if (this.empty$$) { this.empty$$.unsubscribe(); } } } diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index e2954a79a4..e3c6710eaf 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -7,7 +7,7 @@ import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip, FeatureMot import { ExportOptions } from '../../import-export/shared/export.interface'; import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; import { FeatureMotion } from '../../feature'; -import { StorageService } from '@igo2/core'; +import { StorageService, StorageScope } from '@igo2/core'; import { BehaviorSubject } from 'rxjs'; @Injectable({ @@ -48,7 +48,7 @@ export class FeatureActionsService { } else { filterStrategy.activate(); } - this.storageService.set('rowsInMapExtent', !this.storageService.get('rowsInMapExtent') as boolean); + this.storageService.set('rowsInMapExtent', !this.storageService.get('rowsInMapExtent') as boolean, StorageScope.SESSION); } }, { diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index 24f22a183d..3dab087229 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import { Injectable, OnDestroy } from '@angular/core'; import { ActionStore, @@ -23,15 +23,16 @@ import { SourceFieldsOptionsParams } from '../../datasource'; import { FeatureWorkspace } from './feature-workspace'; import { FeatureActionsService } from './feature-actions.service'; import { skipWhile, take } from 'rxjs/operators'; -import { StorageService } from '@igo2/core'; -import { BehaviorSubject } from 'rxjs'; +import { StorageService, StorageScope } from '@igo2/core'; +import { BehaviorSubject, Subscription } from 'rxjs'; @Injectable({ providedIn: 'root' }) -export class FeatureWorkspaceService { +export class FeatureWorkspaceService implements OnDestroy { toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); + toolToActivate$$: Subscription; get zoomAutoTable(): boolean { return this.storageService.get('zoomAutoTable') as boolean; @@ -41,6 +42,12 @@ export class FeatureWorkspaceService { private featureActionsService: FeatureActionsService, private storageService: StorageService) {} + ngOnDestroy() { + if (this.toolToActivate$$) { + this.toolToActivate$$.unsubscribe(); + } + } + createWorkspace(layer: VectorLayer, map: IgoMap): FeatureWorkspace { const wks = new FeatureWorkspace({ id: layer.id, @@ -55,7 +62,7 @@ export class FeatureWorkspaceService { }); this.createTableTemplate(wks, layer); this.featureActionsService.loadActions(wks); - this.featureActionsService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate$$ = this.featureActionsService.toolToActivate$.subscribe((toolToActivate) => this.toolToActivate$.next(toolToActivate) ); return wks; @@ -73,10 +80,11 @@ export class FeatureWorkspaceService { hitTolerance: 15, motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None }); + this.storageService.set('rowsInMapExtent', true, StorageScope.SESSION); store.addStrategy(loadingStrategy, true); store.addStrategy(inMapExtentStrategy, true); store.addStrategy(selectionStrategy, true); - store.addStrategy(this.createFilterInMapExtentStrategy(), false); + store.addStrategy(this.createFilterInMapExtentStrategy(), true); return store; } diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index ad30a6ce69..ab90fbfb73 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -4,9 +4,9 @@ import { Action, Widget, EntityStoreFilterCustomFuncStrategy } from '@igo2/commo import { OgcFilterWidget } from '../widgets/widgets'; import { WfsWorkspace } from './wfs-workspace'; -import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip } from './workspace.utils'; +import { mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip } from './workspace.utils'; import { ExportOptions } from '../../import-export/shared/export.interface'; -import { StorageService } from '@igo2/core'; +import { StorageService, StorageScope } from '@igo2/core'; import { FeatureMotion } from '../../feature'; import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; import { BehaviorSubject } from 'rxjs'; @@ -49,7 +49,7 @@ export class WfsActionsService { } else { filterStrategy.activate(); } - this.storageService.set('rowsInMapExtent', !this.storageService.get('rowsInMapExtent') as boolean); + this.storageService.set('rowsInMapExtent', !this.storageService.get('rowsInMapExtent') as boolean, StorageScope.SESSION); } }, { diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index f77a7aed30..a0506a39ff 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import { Injectable, OnDestroy } from '@angular/core'; import { ActionStore, @@ -23,15 +23,16 @@ import { SourceFieldsOptionsParams } from '../../datasource'; import { WfsWorkspace } from './wfs-workspace'; import { WfsActionsService } from './wfs-actions.service'; import { skipWhile, take } from 'rxjs/operators'; -import { StorageService } from '@igo2/core'; -import { BehaviorSubject } from 'rxjs'; +import { StorageService, StorageScope } from '@igo2/core'; +import { BehaviorSubject, Subscription } from 'rxjs'; @Injectable({ providedIn: 'root' }) -export class WfsWorkspaceService { +export class WfsWorkspaceService implements OnDestroy { toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); + toolToActivate$$: Subscription; get zoomAutoTable(): boolean { return this.storageService.get('zoomAutoTable') as boolean; @@ -42,7 +43,13 @@ export class WfsWorkspaceService { private storageService: StorageService ) {} - createWorkspace(layer: VectorLayer, map: IgoMap): WfsWorkspace { + ngOnDestroy() { + if (this.toolToActivate$$) { + this.toolToActivate$$.unsubscribe(); + } + } + + createWorkspace(layer: VectorLayer, map: IgoMap): WfsWorkspace { const wks = new WfsWorkspace({ id: layer.id, title: layer.title, @@ -56,7 +63,7 @@ export class WfsWorkspaceService { }); this.createTableTemplate(wks, layer); this.wfsActionsService.loadActions(wks); - this.wfsActionsService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate$$ = this.wfsActionsService.toolToActivate$.subscribe((toolToActivate) => this.toolToActivate$.next(toolToActivate) ); return wks; @@ -74,10 +81,11 @@ export class WfsWorkspaceService { hitTolerance: 15, motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None }); + this.storageService.set('rowsInMapExtent', true, StorageScope.SESSION); store.addStrategy(loadingStrategy, true); store.addStrategy(inMapExtentStrategy, true); store.addStrategy(selectionStrategy, true); - store.addStrategy(this.createFilterInMapExtentStrategy(), false); + store.addStrategy(this.createFilterInMapExtentStrategy(), true); return store; } diff --git a/packages/geo/src/lib/workspace/shared/workspace.utils.ts b/packages/geo/src/lib/workspace/shared/workspace.utils.ts index f23725a1a8..a9d7c19810 100644 --- a/packages/geo/src/lib/workspace/shared/workspace.utils.ts +++ b/packages/geo/src/lib/workspace/shared/workspace.utils.ts @@ -3,13 +3,7 @@ import { FeatureWorkspace } from './feature-workspace'; import { Observable } from 'rxjs'; import { EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; import { map } from 'rxjs/operators'; -import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; -export function mapExtentStrategyActiveIcon(ws: WfsWorkspace | FeatureWorkspace): Observable { - return ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy).active$.pipe( - map((active: boolean) => active ? 'table-eye' : 'table') - ); - } export function mapExtentStrategyActiveToolTip(ws: WfsWorkspace | FeatureWorkspace): Observable { return ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy).active$.pipe( map((active: boolean) => active ? 'igo.geo.workspace.inMapExtent.active.tooltip' : 'igo.geo.workspace.inMapExtent.inactive.tooltip') @@ -22,8 +16,3 @@ export function FeatureMotionStrategyActiveToolTip(ws: WfsWorkspace | FeatureWor ); } -export function FeatureMotionStrategyActiveIcon(ws: WfsWorkspace | FeatureWorkspace): Observable { - return ws.entityStore.getStrategyOfType(FeatureStoreSelectionStrategy).active$.pipe( - map((active: boolean) => active ? 'checkbox-marked' : 'checkbox-blank-outline') - ); -} diff --git a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts index ad1e94ed86..839dc354d7 100644 --- a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts @@ -21,6 +21,7 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { private layers$$: Subscription; private entities$$: Subscription[] = []; + private toolToActivate$$: Subscription[] = []; @Input() map: IgoMap; @@ -48,6 +49,7 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { ngOnDestroy() { this.layers$$.unsubscribe(); this.entities$$.map(entities => entities.unsubscribe()); + this.toolToActivate$$.map(toolToActivate => toolToActivate.unsubscribe()); } private onLayersChange(layers: Layer[]) { @@ -85,15 +87,15 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { } if (layer.dataSource instanceof WFSDataSource) { const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.wfsWorkspaceService.toolToActivate$.subscribe((toolToActivate) => - this.toolToActivate.emit(toolToActivate)); + this.toolToActivate$$.push(this.wfsWorkspaceService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate.emit(toolToActivate))); return wfsWks; } else if (layer.dataSource instanceof WMSDataSource) { return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.featureWorkspaceService.toolToActivate$.subscribe((toolToActivate) => - this.toolToActivate.emit(toolToActivate)); + this.toolToActivate$$.push(this.featureWorkspaceService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate.emit(toolToActivate))); return featureWks; } diff --git a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts index 889513cc3b..3bdc810963 100644 --- a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts @@ -21,6 +21,7 @@ export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { private layers$$: Subscription; private entities$$: Subscription[] = []; + private toolToActivate$$: Subscription[] = []; @Input() map: IgoMap; @@ -45,6 +46,7 @@ export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { ngOnDestroy() { this.layers$$.unsubscribe(); this.entities$$.map(entities => entities.unsubscribe()); + this.toolToActivate$$.map(toolToActivate => toolToActivate.unsubscribe()); } private onLayersChange(layers: Layer[]) { @@ -82,15 +84,15 @@ export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { } if (layer.dataSource instanceof WFSDataSource) { const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.wfsWorkspaceService.toolToActivate$.subscribe((toolToActivate) => - this.toolToActivate.emit(toolToActivate)); + this.toolToActivate$$.push(this.wfsWorkspaceService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate.emit(toolToActivate))); return wfsWks; } else if (layer.dataSource instanceof WMSDataSource) { return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.featureWorkspaceService.toolToActivate$.subscribe((toolToActivate) => - this.toolToActivate.emit(toolToActivate)); + this.toolToActivate$$.push(this.featureWorkspaceService.toolToActivate$.subscribe((toolToActivate) => + this.toolToActivate.emit(toolToActivate))); return featureWks; } From 415eab090aa3a7994090028a0b81236e30c6876c Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 14 Aug 2020 16:16:32 -0400 Subject: [PATCH 39/90] wip --- .../geo/src/lib/workspace/shared/feature-actions.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index e3c6710eaf..8c890b09f7 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -3,7 +3,7 @@ import { Injectable } from '@angular/core'; import { Action, EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; import { FeatureWorkspace } from './feature-workspace'; -import { mapExtentStrategyActiveIcon, mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip } from './workspace.utils'; +import { mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip } from './workspace.utils'; import { ExportOptions } from '../../import-export/shared/export.interface'; import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; import { FeatureMotion } from '../../feature'; From 59fd497f33e48b8028a67f56c292ce3ce2af0c54 Mon Sep 17 00:00:00 2001 From: josee666 Date: Mon, 17 Aug 2020 10:54:44 -0400 Subject: [PATCH 40/90] fix(layer-legend.component) Fix param legendOptions.display: false (#703) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * travis * feat(libs): upgrade librairies (#696) * chore(utils): bowser version * fix(spatial-filter): fix spatial filter 1.4 (#697) * fix bug legend param display:false * fix exemple legend param * rebase Co-authored-by: Marc-André Barbeau Co-authored-by: Philippe Lafrenière <53181414+PhilippeLafreniere18@users.noreply.github.com> Co-authored-by: Josée Martel --- demo/src/app/geo/legend/legend.component.ts | 81 ++++++++++++++----- .../layer-legend/layer-legend.component.ts | 6 +- 2 files changed, 68 insertions(+), 19 deletions(-) diff --git a/demo/src/app/geo/legend/legend.component.ts b/demo/src/app/geo/legend/legend.component.ts index 051d5759f4..a1b5e8758c 100644 --- a/demo/src/app/geo/legend/legend.component.ts +++ b/demo/src/app/geo/legend/legend.component.ts @@ -77,6 +77,66 @@ export class AppLegendComponent { } }; + this.layerService + .createAsyncLayer({ + title: 'legend with display:false', + visible: true, + legendOptions: { + display: false, + html: "test html" + }, + sourceOptions: { + type: 'wms', + url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/mffpecofor.fcgi', + optionsFromCapabilities: true, + params: { + LAYERS: 'sh_dis_eco', + VERSION: '1.3.0' + } + } + }) + .subscribe(l => this.map.addLayer(l)); + + this.layerService + .createAsyncLayer({ + title: 'legend in html', + visible: true, + legendOptions: { + display: true, + html: '

HTML légende

' + }, + sourceOptions: { + type: 'wms', + url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/mffpecofor.fcgi', + optionsFromCapabilities: true, + params: { + LAYERS: 'sh_sreg_eco', + VERSION: '1.3.0' + } + } + }) + .subscribe(l => this.map.addLayer(l)); + + this.layerService + .createAsyncLayer({ + title: 'legend with url param', + visible: true, + legendOptions: { + url: 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxASEhUQEBISFRUVFRAQFRUQFRUVFRAPFRUWFhUVFRUYHSggGBolGxUVITEiJSkrLi4uFx8zODMsNygtLisBCgoKDg0OGhAQGy0dHyUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLf/AABEIAKgBLAMBIgACEQEDEQH/xAAbAAABBQEBAAAAAAAAAAAAAAACAQMEBQYAB//EADwQAAIBAwEGAwYFAgUEAwAAAAECAAMEESEFEjFBUWETInEGFDKBkaFCscHR8FJyFSNTYoIzQ5LxFqLh/8QAGQEAAwEBAQAAAAAAAAAAAAAAAAECAwQF/8QAJREBAQACAgEFAAEFAAAAAAAAAAECERIhAwQTMUFRYRQiI3Gh/9oADAMBAAIRAxEAPwB0QhAEMTFQhCEEQhACEIQRFEYEIQgiEIAU6IIsAWLEnQAp0KmBqSdFBY+g5D1OBGD4nxYBHQafQzLPzTDLVbYeHLObh2LARwwyD+4PQiFNJZZuMrLLqlnRJ0ZFiTp0A6KEOM4OITuF8q4L8ydVp9sc2+0atrlw/hVGLBw2MnO66gsMdBpjHeYZeoxmXGOjH0+Vx5UsSLEm7ndEM6IYAhgmEYJgCGCYRgmIBMEwjAJgAmAYRgkwAGjTxxjGniBipGo5UjcAthCEAGEIwMQhAEIGAHFEERcxgYiiBmEDADzFgAxcwA50HMXMANh5H/tA+rrJhXy8JDXJDAcSpx6jB/SE18u6uuhGnqeU4vPP8m7+PR9N34tT9V20FZD4ifMcmHSSra5V1DKdD9Qeh7yLd1d4HAOJm7W9q27NlWKE55cOozzleLLTPz4b7bPM7MrbXbC1AFRQGb4d84OemP17Rk7YYsUREJUn8XxhfjI7gzp5xyXGrjMj3l5uYVfjYeX/AGrzb15D5mRau0N0Bt3e3uAVhoO56ympms1Z6lTtgaaDHAdgBiZZ+Tc1G3i8fe60FsN0AZ1iLUzXpDTRifqpHGVh2ioGMP8AIQtm3G9WUdmbX+04nNw3Y7+Wsb/peRJ0Qz0HkOMQzokQcTBM4xCYBxgGKTBJgCEwTFJgEwBCYBMUmCTABaMvHGMacxGZeNw3jUCWwMIGNAwgYwdBhAxoGEDAHAYQMbBigwBzMIGNAwgYA4DFzGwYWYwPMXMbzCBgD1PjxxylRUuEpv4J0PDXPx9BLNDrI17bMtd2PmVgrNngHwNdZzeeTqur02dm4RquAWK4A111yOxme2tXZicaAcuZGf3/ADl7UrFtRwA68x69jM/eVGffZcBkyxA0bdAGZHjna/Jl0pKdJmuFUN8A3ufyA+UGz3jVABIOWBOez5z05fWSrxs0qV2g1DbrY/pJAx35H6yMoxWDjhq2Ou8Dp/5GdDmBYsy7yF87rnGpx/NZfWd4yrg65JGeJHM6SjpjcthUK+apUI7glifyMnUKhV9zPH4vpjT7yMpteF0tL6qwAK6j0zr6x72YY1HLlQNwNnHMnQfrIyVAujHThx0lt7MhQKqjj5W/46iRjO42zyvG6XGYhMSJmdLjdmITOJgkwBSYJMQmITAOJgkziYJMA4mATOJgEwDiYBM4mATAOYxpzCJjTGIG3MbzFcwMwCzBhAxpQekPdPSPVLcOAwgYzgxd6GjPAwsxkNFDQB7MUNGhnpDCGPVLcOAxQY3unpFzA9nQYoMaBhAxBO2bS3qijvk+g1kXbFVqlY0qWAB56jHn0EnbPfw1ZzngeExu3L2qRu0iVNVtWGclQPyyZz+T+7LTfx9Y7XdfaNvRQh2ydFAXBJY6AADhrjjMlW2jRSqCyVFLb2vlO8uobKjQj9oT2lMUmpHILbp8TGSHU6b2OIzIVwtVt1moFmUEK9IhlI7a9esMJB5Ll9L1dnqLUCk29TJJ05KSfuAT9BK/w/PpodBwGdOGny9NInsrfstSpQq+UMDuqdd0jj+hkg4Fbf5Zzj7Qm5bKq9yWHLq1QUEeqd1UffAxx5LpzPDSU9G/pl2dKTnd0YlgCfly4R72huHqV6dKjhgi4wdBvEfY6SOthUGfFZKYbG8KZLVHA5Y5SsZNdoz3vpate0agXdyuQG3X4gH85P8AZ2p4dfdfmCgP+08P0lNcW3jDK090IMIc6jHAd47sWuxanv8AEFR8wZOuul7beoMEiBmFVyTnrGjmdHbmKTBJiZnYgCExCYpWAYg4mAWiEwC0AItAJiFoBaAKTAJiFoJMA5jGnMJjG2gDTmDmKwMHBhomsFsI4trLJLaP07aepxjjtqmNn2jbWA6TRi1gNbCK4Y0TLJnvch0hrZdpc+COkcShJ4YnyyVVOzjwtO0tVoiOCkJWoXalNnANl2l74U4UIaxPtRe59oq2faXvgTnTAJ0+gkZSKm2M9pK2F8NSQeOnT9pQJbFqbVq9ZRpujGm4O2ect/amoynLZ3dfh00PUzMW9AK2uMH4S3mHbAPOeLbvderJrUO+IHXcRqjqOBekx9QGUg4+RjKW1VGyhK9cAjP/ABM0lihGFqPT64Ua/wD1kza9gXVGViMHOFpv59eBMmZ96O4xjaNBxVNTdw7ndXPEA8TIj3JBPE68wdZtKeyvGTB31ZSSrqGTB5EZOT85namyqu97rk+Lx8TAx4e98Weu7p1zNMcti46VtrSZnFRR5hkH04D6ayStlU1YAknJydSPU/WaB9jigoCbxYnLMys28Txzidsy2KKcsxzyKFQO2WzFzK4M8XXIR9/e0KsWA83TdXQQrOo6VlBXy7+8OfHiJZ7QsS2rboA1UhRnI4a6SHswO9dd4g6jkVOnYiPG7icpp6LTtwVB7RDajpBt78DRvvH/AH1ZvPPYxvilR/dlne7iSPGUwHdYf1U/C9j+TDWwgGzzHGrATkuR1mmPqML8xN8GU+Ki1LDtGv8ADzLujWUyQKAM6Zhhe3PblOmaNlBNjNT7oOkZqW4j9vEuVZr3CC1oJoDbxipZw4Q+VULUBGzb9polsIZsBF7cHJmPdD0ie5zTe4RPcu0qeKJudaJbacaMaW9ne9TH3m3tnRTMUWxMKjWllQIMfvUe3FctnFNsZdLTE40BF7lPhFL7tE92ls9CR3oGL3aOEREoR8W8NaZEdEPdo4REa2kPaFLdQky33pA2yM0mHaTl5bqqmE2yF8ErJgg4xxI4ntnjMc9N0yppgINTUYjyjkWc8PQYlvR2luVGSrndUgZ6k8FH3k7aNrTqqoqaLxWmuSSepxr+vpPPn8uxmLFwrb9Niyg6u5O4D0A+Jzrw9Jq7C/p1BuFjjucHeHHOD3GnLnrpMnteg4ICEBVyCyjSmnMKvXlnnnAwDqxb3wUhcYxhDg5wF1K/fB6lm7StS9lu/bf+5Mo8gU548vrxMpG2NW8fxd8cMbpXQjP1kKx2zcAZVsjjg8DrJr+0tXnTXPDOsXU+D+Vi1uxH+YFUDnnOR+kp9pbVpou4nDUZ46+n8/SQ7zaNWpjeY45gcBKa+vV1GBk/U6/nz/8AcJjunbqHql+w1NUlTwHEHtrofQiFb3qrh38nJQOHqU5fKV1FN3LvjH9J4N0P84QqVJqzg/g7jgOhmmmdu2pvr1t1cZ1Gc/hP04SGu2WQ7rR2nWVk3AVwowN7OCZn9s13yKemBqMYixm+itaVdtA8DJ9ttANznm4uWXnLSy2lgZzDLx/gmbZ3lbTIMrqN6d7GZWU9rqeJkb3vLgrFMP1VybaxdidJorJmHGUGwwzAEiX7XAAwY/H5ssPhOfjmS0R1Mbq0hK1nIGQY5bXe8NTOvH1Eyc98OkoUYnu8RLgR9amZtM2dxAtvOahJIEBjK5xPFEqUwJBeprJt3UAEzdzdeY6zPLzaOePbcps9e0L/AA4dJW09o1BxWSKe1+oM5OUdXE89liAodYX+KrOF6hj5wcTyXhHGODaYkZipgG3Uw5jinC/U84a3APOVhsl6wDa9GMXKjiuBVWGMGUPgVOTSXRFQcY5kNLTwRIm0LfyH0MEXbDiI1dbSBUiPotMNtawR8OOKZO7nAL/zny5a6jF3l/cU3L587ZHDRKY00HLJ4dh3mr2lvhjVpkFMtvr1A79ZE8ajcDBAD8xzHQZ+k5rdNpNswdsOiDxBlm1HLGuhx24/MSDUuVxvU9NBkdcgZ/naX+1dj7zDGCNEHYAfw/OUd7sKoDoDz4fQSsbiLMg0L9eRZTofLwJ5nEsVvSQMEHn007zPvs6qOXI4wOcdt7e4A3TqOGvDMu4xPKrK8r1GGE0zrK0lE1Ygtr9ZEqUq+8QoYZ5dPST9mbHz56p0HIx6khbtqRs62asByAz5Tkj+cZZ3VZKaGjTxvt9usgXF+f8Ap0RjGBnkO8C2UJlmbLccnv0zJ190966iws3VFwQGxqe31lZcMu8TjGekds7nVmYZz5cc4l5bEciM8MjEufKag3FvkZWQDvLLClX3TumSXtlaVtOlNTZidJodhW53gWjFCgqydZVSGzIzvS8Me29s75KaY5yBd7Wzw+0qQ5PGMuxBnJa6pjFqu1anDlJFLaeBrKRq2kAVsysUZRa0/aDdfBOk0uydso/AzynajkHIh7P2g9MhgSJ1Y7nbmuq9sN0McZWXe1FHEiZq22m1ZNG+kS22O1U5ZjD3h7azvdrKRoZlbi5JYnM1dD2YTmWPzjh2BRGm4PpJ7vdPUnw0NGgx+IYhtbCW7UpFqWy88iGhtULa68ZKS1XtHfcFJyHM6tZNyePUG3NZ9DGXsao+FozVsq/4XEVLW6/1F+kWv4Dmo3A6GMV2uRwUH5yZv3K8d0wm2qy/HSPy1ho0K2vao+ND8pY09rrzBHqIFLbFBtOB7x2rbpUGVIilB9b6mw4iQ7w02U4xwMYr7PbGglXWsXXJ1Eq5CRQ1qLGk3hnO4xGP9szW6lQgklH+IngSM66GW3+IFC6qMgtu4P4uWgme2xc+bygZGpI7Hh9dJGrs9xOb3mm3HfGOXEAc+8JNsgndIKnkCMcOEpBt5kwTjQa4568B9oR21Tc+dRoQo7aZOvpF7d+4rnPqr1LpSQB3PXGRgfpGGZs4ABGn01IP86SppIh1QkajTPLOknWTMjEE59f6c4+uknjpUy2kJqx0Hy5aZlZtO6GoB04a8AeklOzZYKJQ3jK2jNjtLwxRlkb97J8qDA4EnnOe4Pwrr8v3nF6IGCfl1hU95x/lKFX+o8Zqz2KgAmrnXiB0mh9/NWhlk0XTMzFeg40G8x68pK2O1Viafhs2RoADmFn2UokUE4IkqpSKiC9AqcEFSDqDxEnOuV1itVIrLepvHEuLeljUyBQoYOZNNWZZ1rhE4NOqtI9N51SpMuDbloDVI2z44Rlt5jhQT/aM/lJFLZF2w0oVPmMfnNJGWWSDdJvSFd6LiXjez17/AKLfMr+8hXexrofFRf5YP5TWVjew+z+0igmq2f7UAYXHGU+xvZhviqndHTnLC62Va6qr+YDkRmZZZY29LmOWu24ttpBlGCIFVWJ4mZT2c2dVQ5Z/T0mqLGLnvo+Om4DwWAPKMLCDTfbLTmtUPLEaOzRyJj2/6wg8Ogrq+yHPwuZCqbGuR8NQ/OX+8YYc9fyhqBl22Rd/6sae0vV/Eh9QZqKtZxwUn+3EHxcjJRvprFYcrJVEqf8AdoBu6a/Yxmnof8moyH+ipn9ZsPBzqAV9RKu+2dVbiiOv0Mjirki2ntCVIS4XHLe5H5y2uHpumQRqJm721qoMeE7pzUgkj+085SJfvRPlLGm3JshkPTBi3Z8nqX4RtpWtKmlR6jYPiNu4x5RMlV2Z4qnwgxUebI54zgA8M/vNPV2OtxVFWuc0qYyFzoWJzrJVrWp1AapA8FDu00XgzD8Rx3hy0VxYil7NVCm8FJAIAAGdSAePPlIdXZaqPMCOJJweWh/Oenrf1ar+HTUIAN9ieRI8oA689eEZuEWoDSuAjZ47vlA7b2fN8oTy/o4fjzZaCqcjTHCPVr8annqPUHj+8l7Z2HUouSgLodQVGcfIcJR1mA0PPryM11Kjek6zqkNkNnXnKe8phqrdznEstnWdWq2KSlsfTHrNLsj2URH8W4IJ4hAeJ7mFymI1az+yNg75B0A5F8y7q0UoEK64HBWOCra6AGLta7u97IUIg0AQ4wO3IwrfaAqLuVNQ2hBBAJ7f0kdpF3e1TU6NeDSqkKh3W6/hbtkcD2jaq1u281XXBwFVgQegbGD9Yxf7JqU8VKJ38fhPxYGvz/PSS6hS5okjRlBOD8SkcQecc/4VDWvKdUZyS3VskyOwPIymt3K1N09cazTWNMtooLHoNZVx0UyRKNJzyku12RVqHyAn0ms2T7Lu2GqkAdBrNTQtqNEYAGn84CRdLlrIbO9i3YDxHx2XUy+tfY61p6shc/7tf/yWr7RxooP/AIn8sSK+0UY+YVVPZTg/XSLo7s74NOmMU6aL6LGffQ3lzg+kYN1RByXYf8WB9eOPtHqN5bVPxjPDJGDJCsudpVkbcYadeokG6vqg83FTx04TV07ZOJdHXln9JL8OnjAVT2wBCSj4YY12chcZzoMSds72NtUqeNVyznXU6D5cJqVorn/poMcMYMSuBzXP7R446K3Y1taOBhRpwkKvbrn4BCNUE+Rs9uYjqk8xH0O04Oen3hmQaVxHQ8pKauOs7HeRd4wlJ6wCSSP/AFBL9MxsRcmAPo/Uzt8dzGgIYWMONbtAas3yhPpIdZzHsaSTV7/eMXNJXGHVWHRgD+cbWqOAEcCdY52FTfbCouhRVZAcE+G3T1z9pSXexqlNadOnh0Vt473kxrkZHMCbMiRquDpJuMPahegtOmFGMsxZyPxdsyjvL2lTfKrvMRrnXHp0mpvLEOMA4lDtL2WqMd5GGnUcfpMbhdtJlNKOl7TVN4gBR2lXdWdC8rA1PIx0O7oGMXbOzqlFt90I5EjUGVlglZ6quadUIuSCqnX7TTDH7ic7GztLBLVXRMKgAJJ1Zmmd2rdMy75JGuF5GOUPfXfd3SygkgucEjlkTrzYl61QOyAqOQPOTwvLsTKadTu2NMipwA4HnGNneEy7yjUHjnOnTEtP/itzVQhmCZ+ZxFs/YitSXcVxgnU45RzHorlNoV9cimA3MlcfvHqQtCQ7O9NyDnChlIP9XD85p7T2ctwAKi75HNjmHfez1vU0A3ca+XT6yuPSeW2HX2cUtvU7iiykg+clGHyOn3m02PbW9BQDUTqSGBLH5cpW3fskRqnm7DQ/aV52Qy6MHHqTC205I2F17UUlG7SBbvwEz9z7Q12/Hx5KMYjVts4D8DH6mFb7IqbxCocciREfR+32rWHmZyf1k239oXPHQyPU2DXOuAOgzGDs9wQCsCae020rDDYj1SiG1plfRgCJkLi2qLjcU9TLjZVZ9CYocy0sjQdf+zSz/tHGLb+Lzor8s/vJi3MJLnJ0jvRy7O0Cw/CAPU/vHDUx3iUzn4sQXccBHpBqqik7w0PUfr1jxRzqpGO/WNEQPFxwMVitomHzHkqHrEnQkI5TrmOi4nTpRDW5jouDOnRmIV2jq3ESdFQJ68YJJnToASkLqZFr7S1wonTobBErMRrG3M6dEAKxkynV0nTowi3Qpt8QBi0FpcAonToEbr2VPO9gQhTUjAnTpROWniGyTp0ZK+uwBgb/AEE6dIqofpEwy4X4hn1nToqccbxQMhRH7a7zyAnToYlXVq0ZVA3ETp0mnB1LVcaxilQXOAIk6HxSSjSAEra+8moiTppZuJnRy3vAeJklWXOQZ06R8KO+IesBlnTo7Q//2Q==' + + }, + sourceOptions: { + type: 'wms', + url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/mffpecofor.fcgi', + optionsFromCapabilities: true, + params: { + LAYERS: 'sh_reg_eco', + VERSION: '1.3.0' + } + } + }) + .subscribe(l => this.map.addLayer(l)); + this.dataSourceService .createAsyncDataSource(wfsDatasource) .subscribe(dataSource => { @@ -135,24 +195,8 @@ export class AppLegendComponent { this.layerService .createAsyncLayer({ - title: 'sh_dis_eco', - visible: false, - sourceOptions: { - type: 'wms', - url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/mffpecofor.fcgi', - optionsFromCapabilities: true, - params: { - LAYERS: 'sh_dis_eco', - VERSION: '1.3.0' - } - } - }) - .subscribe(l => this.map.addLayer(l)); - - this.layerService - .createAsyncLayer({ - title: 'nurc:Arc_Sample_Parent', - visible: false, + title: '2 styles nurc:Arc_Sample_Parent', + visible: true, legendOptions: { // collapsed: false, display: true, @@ -208,6 +252,7 @@ export class AppLegendComponent { .subscribe(dataSource => { const layer: LayerOptionsWithMetadata = { title: 'Embâcle', + visible: true, source: dataSource, metadata: { url: diff --git a/packages/geo/src/lib/layer/layer-legend/layer-legend.component.ts b/packages/geo/src/lib/layer/layer-legend/layer-legend.component.ts index 41de5d5537..1090d69c48 100644 --- a/packages/geo/src/lib/layer/layer-legend/layer-legend.component.ts +++ b/packages/geo/src/lib/layer/layer-legend/layer-legend.component.ts @@ -84,8 +84,12 @@ export class LayerLegendComponent implements OnInit, OnDestroy { } else if (this.styles && this.styles.length > 1) { this.currentStyle = lastlLegend[0].currentStyle; } + if ( typeof this.layer.options.legendOptions !== 'undefined' && this.layer.options.legendOptions.display === false) { + lastlLegend = []; + } else { + lastlLegend = this.layer.dataSource.getLegend(this.currentStyle, this.scale); + } - lastlLegend = this.layer.dataSource.getLegend(this.currentStyle, this.scale); if (this.updateLegendOnResolutionChange === true) { const resolution$ = this.layer.map.viewController.resolution$; this.resolution$$ = resolution$.subscribe((resolution: number) => this.onResolutionChange(resolution)); From 89bb35a984ba3871554b28614fcc6eb5b07167f0 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Mon, 17 Aug 2020 15:45:51 -0400 Subject: [PATCH 41/90] feature(geo) Moving two common vector styling function into geo/utils for shared usage between components --- .../geo/src/lib/utils/commonVectorStyle.ts | 72 +++++++++++++++++++ packages/geo/src/lib/utils/index.ts | 1 + 2 files changed, 73 insertions(+) create mode 100644 packages/geo/src/lib/utils/commonVectorStyle.ts diff --git a/packages/geo/src/lib/utils/commonVectorStyle.ts b/packages/geo/src/lib/utils/commonVectorStyle.ts new file mode 100644 index 0000000000..44a03da6e3 --- /dev/null +++ b/packages/geo/src/lib/utils/commonVectorStyle.ts @@ -0,0 +1,72 @@ +import * as olstyle from 'ol/style'; +import olFeature from 'ol/Feature'; + +import { Feature } from '../feature/shared/feature.interfaces'; +import { createOverlayMarkerStyle } from '../overlay/shared/overlay-marker-style.utils'; +import { createOverlayDefaultStyle } from '../overlay/shared/overlay.utils'; + + +/** + * Generate a style for selected features + * @param feature The feature to generate the style + * @returns A olStyle + */ +export function getSelectedMarkerStyle(feature: Feature | olFeature): olstyle.Style { + + const baseColor = [0, 255, 255]; + const strokeWidth = 4; + + const isOlFeature = feature instanceof olFeature; + const geometry = isOlFeature ? feature.getGeometry() : feature.geometry; + const geometryType = isOlFeature ? geometry.getType() : geometry.type; + + if (!geometry || geometryType === 'Point') { + return createOverlayMarkerStyle({ + text: isOlFeature ? undefined : feature.meta.mapTitle, + outlineColor: baseColor + }); + } else { + return createOverlayDefaultStyle({ + text: isOlFeature ? undefined : feature.meta.mapTitle, + strokeWidth, + strokeColor: baseColor + }); + } +} + +/** + * Generate a basic style for features + * @param feature The feature to generate the style + * @returns A olStyle + */ +export function getMarkerStyle(feature: Feature | olFeature): olstyle.Style { + + const baseColor = [0, 255, 255]; + + const isOlFeature = feature instanceof olFeature; + const geometry = isOlFeature ? feature.getGeometry() : feature.geometry; + const geometryType = isOlFeature ? geometry.getType() : geometry.type; + + if (!geometry || geometryType === 'Point') { + return createOverlayMarkerStyle({ + text: isOlFeature ? undefined : feature.meta.mapTitle, + opacity: 0.5, + outlineColor: baseColor + }); + } else if ( + geometryType === 'LineString' || + geometryType === 'MultiLineString' + ) { + return createOverlayDefaultStyle({ + text: isOlFeature ? undefined : feature.meta.mapTitle, + strokeOpacity: 0.5, + strokeColor: baseColor + }); + } else { + return createOverlayDefaultStyle({ + text: isOlFeature ? undefined : feature.meta.mapTitle, + fillOpacity: 0.15, + strokeColor: baseColor + }); + } +} diff --git a/packages/geo/src/lib/utils/index.ts b/packages/geo/src/lib/utils/index.ts index 0b355a8e9a..a87e84b75e 100644 --- a/packages/geo/src/lib/utils/index.ts +++ b/packages/geo/src/lib/utils/index.ts @@ -1,3 +1,4 @@ export * from './googleLinks'; export * from './id-generator'; +export * from './commonVectorStyle'; export * from './osmLinks'; From 52099c7da8f84816a3086c7817dc372066454a0f Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 18 Aug 2020 13:53:09 -0400 Subject: [PATCH 42/90] feat(workspace) applying vector style to selected entities --- .../lib/workspace/shared/feature-workspace.service.ts | 11 ++++++++++- .../src/lib/workspace/shared/wfs-workspace.service.ts | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index 3dab087229..da9e334f40 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -18,13 +18,14 @@ import { } from '../../feature'; import { VectorLayer } from '../../layer'; import { IgoMap } from '../../map'; -import { SourceFieldsOptionsParams } from '../../datasource'; +import { SourceFieldsOptionsParams, FeatureDataSource } from '../../datasource'; import { FeatureWorkspace } from './feature-workspace'; import { FeatureActionsService } from './feature-actions.service'; import { skipWhile, take } from 'rxjs/operators'; import { StorageService, StorageScope } from '@igo2/core'; import { BehaviorSubject, Subscription } from 'rxjs'; +import { getMarkerStyle } from '../../utils/commonVectorStyle'; @Injectable({ providedIn: 'root' @@ -76,6 +77,14 @@ export class FeatureWorkspaceService implements OnDestroy { const loadingStrategy = new FeatureStoreLoadingLayerStrategy({}); const inMapExtentStrategy = new FeatureStoreInMapExtentStrategy({}); const selectionStrategy = new FeatureStoreSelectionStrategy({ + layer: new VectorLayer({ + zIndex: 300, + source: new FeatureDataSource(), + style: getMarkerStyle, + showInLayerList: false, + exportable: false, + browsable: false + }), map, hitTolerance: 15, motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index a0506a39ff..0d6a9bc9c1 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -18,13 +18,14 @@ import { } from '../../feature'; import { VectorLayer } from '../../layer'; import { IgoMap } from '../../map'; -import { SourceFieldsOptionsParams } from '../../datasource'; +import { SourceFieldsOptionsParams, FeatureDataSource } from '../../datasource'; import { WfsWorkspace } from './wfs-workspace'; import { WfsActionsService } from './wfs-actions.service'; import { skipWhile, take } from 'rxjs/operators'; import { StorageService, StorageScope } from '@igo2/core'; import { BehaviorSubject, Subscription } from 'rxjs'; +import { getMarkerStyle } from '../../utils/commonVectorStyle'; @Injectable({ providedIn: 'root' @@ -77,6 +78,14 @@ export class WfsWorkspaceService implements OnDestroy { const loadingStrategy = new FeatureStoreLoadingLayerStrategy({}); const inMapExtentStrategy = new FeatureStoreInMapExtentStrategy({}); const selectionStrategy = new FeatureStoreSelectionStrategy({ + layer: new VectorLayer({ + zIndex: 300, + source: new FeatureDataSource(), + style: getMarkerStyle, + showInLayerList: false, + exportable: false, + browsable: false + }), map, hitTolerance: 15, motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None From a717af9b47d59fadc463b38890ceabed69349e3c Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 18 Aug 2020 13:55:26 -0400 Subject: [PATCH 43/90] feat((workspace) clear selection button --- .../shared/feature-actions.service.ts | 13 ++++++++++++- .../workspace/shared/wfs-actions.service.ts | 13 ++++++++++++- .../lib/workspace/shared/workspace.utils.ts | 19 ++++++++++++++----- packages/geo/src/locale/en.geo.json | 5 ++++- packages/geo/src/locale/fr.geo.json | 4 +++- 5 files changed, 45 insertions(+), 9 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index 8c890b09f7..04a6120bf9 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -3,7 +3,7 @@ import { Injectable } from '@angular/core'; import { Action, EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; import { FeatureWorkspace } from './feature-workspace'; -import { mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip } from './workspace.utils'; +import { mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip, noElementSelected } from './workspace.utils'; import { ExportOptions } from '../../import-export/shared/export.interface'; import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; import { FeatureMotion } from '../../feature'; @@ -78,6 +78,17 @@ export class FeatureActionsService { zoomStrategy.setMotion(this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None); } }, + { + id: 'clearselection', + icon: 'select-off', + title: 'igo.geo.workspace.clearSelection.title', + tooltip: 'igo.geo.workspace.clearSelection.tooltip', + handler: (ws: FeatureWorkspace) => { + ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false }); + }, + args: [workspace], + availability: (ws: FeatureWorkspace) => noElementSelected(ws) + }, ]; } } diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index ab90fbfb73..d1ef7d74f4 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -4,7 +4,7 @@ import { Action, Widget, EntityStoreFilterCustomFuncStrategy } from '@igo2/commo import { OgcFilterWidget } from '../widgets/widgets'; import { WfsWorkspace } from './wfs-workspace'; -import { mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip } from './workspace.utils'; +import { mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip, noElementSelected } from './workspace.utils'; import { ExportOptions } from '../../import-export/shared/export.interface'; import { StorageService, StorageScope } from '@igo2/core'; import { FeatureMotion } from '../../feature'; @@ -92,6 +92,17 @@ export class WfsActionsService { zoomStrategy.setMotion(this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None); } }, + { + id: 'clearselection', + icon: 'select-off', + title: 'igo.geo.workspace.clearSelection.title', + tooltip: 'igo.geo.workspace.clearSelection.tooltip', + handler: (ws: WfsWorkspace) => { + ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false }); + }, + args: [workspace], + availability: (ws: WfsWorkspace) => noElementSelected(ws) + }, ]; } } diff --git a/packages/geo/src/lib/workspace/shared/workspace.utils.ts b/packages/geo/src/lib/workspace/shared/workspace.utils.ts index a9d7c19810..a0c00ce51a 100644 --- a/packages/geo/src/lib/workspace/shared/workspace.utils.ts +++ b/packages/geo/src/lib/workspace/shared/workspace.utils.ts @@ -1,14 +1,15 @@ import { WfsWorkspace } from './wfs-workspace'; import { FeatureWorkspace } from './feature-workspace'; import { Observable } from 'rxjs'; -import { EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; +import { EntityStoreFilterCustomFuncStrategy, EntityRecord } from '@igo2/common'; import { map } from 'rxjs/operators'; +import { Feature } from '../../feature/shared/feature.interfaces'; export function mapExtentStrategyActiveToolTip(ws: WfsWorkspace | FeatureWorkspace): Observable { - return ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy).active$.pipe( - map((active: boolean) => active ? 'igo.geo.workspace.inMapExtent.active.tooltip' : 'igo.geo.workspace.inMapExtent.inactive.tooltip') - ); - } + return ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy).active$.pipe( + map((active: boolean) => active ? 'igo.geo.workspace.inMapExtent.active.tooltip' : 'igo.geo.workspace.inMapExtent.inactive.tooltip') + ); +} export function FeatureMotionStrategyActiveToolTip(ws: WfsWorkspace | FeatureWorkspace): Observable { return ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy).active$.pipe( @@ -16,3 +17,11 @@ export function FeatureMotionStrategyActiveToolTip(ws: WfsWorkspace | FeatureWor ); } +export function noElementSelected(ws: WfsWorkspace | FeatureWorkspace): Observable { + return ws.entityStore.stateView.manyBy$((record: EntityRecord) => { + return record.state.selected === true; + }).pipe( + map((entities: EntityRecord[]) => entities.length >= 1) + ); +} + diff --git a/packages/geo/src/locale/en.geo.json b/packages/geo/src/locale/en.geo.json index dd6fefcc11..15c72ebaac 100644 --- a/packages/geo/src/locale/en.geo.json +++ b/packages/geo/src/locale/en.geo.json @@ -527,7 +527,10 @@ "inMapExtent.active.tooltip": "Show records in map extent only", "inMapExtent.inactive.tooltip": "Show all records", "zoomAuto.title": "Zoom auto", - "zoomAuto.tooltip": "Zoom auto" + "zoomAuto.tooltip": "Zoom auto", + "clearSelection.title": "Deselect all", + "clearSelection.tooltip": "Deselect all records" + }, "network": { "online": { diff --git a/packages/geo/src/locale/fr.geo.json b/packages/geo/src/locale/fr.geo.json index 03b47eb83d..780f629749 100644 --- a/packages/geo/src/locale/fr.geo.json +++ b/packages/geo/src/locale/fr.geo.json @@ -528,7 +528,9 @@ "inMapExtent.active.tooltip": "Ne montrer que les enregistrements contenus dans la carte", "inMapExtent.inactive.tooltip": "Montrer tous les enregistrements", "zoomAuto.title": "Zoom auto", - "zoomAuto.tooltip": "Zoom auto" + "zoomAuto.tooltip": "Zoom auto", + "clearSelection.title": "Tout désélectionner", + "clearSelection.tooltip": "Désélectionner les enregistrements sélectionnés" }, "network": { "online": { From bb064456be95bb4e38a2810550a85bc5ce814ecf Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 18 Aug 2020 13:55:50 -0400 Subject: [PATCH 44/90] feat(workspace) allow multiple selection by dragbox --- .../geo/src/lib/workspace/shared/feature-workspace.service.ts | 4 +++- .../geo/src/lib/workspace/shared/wfs-workspace.service.ts | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index da9e334f40..888bf1fb53 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -87,7 +87,9 @@ export class FeatureWorkspaceService implements OnDestroy { }), map, hitTolerance: 15, - motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None + motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None, + many: true, + dragBox: true }); this.storageService.set('rowsInMapExtent', true, StorageScope.SESSION); store.addStrategy(loadingStrategy, true); diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index 0d6a9bc9c1..cce0cef162 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -88,7 +88,9 @@ export class WfsWorkspaceService implements OnDestroy { }), map, hitTolerance: 15, - motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None + motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None, + many: true, + dragBox: true }); this.storageService.set('rowsInMapExtent', true, StorageScope.SESSION); store.addStrategy(loadingStrategy, true); From 25dfe3388de49cf87c947bee0d30e629e1a1c579 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 19 Aug 2020 08:08:06 -0400 Subject: [PATCH 45/90] feat(workspace) action to show only selected record --- .../shared/feature-actions.service.ts | 18 +++++++++++++++++- .../shared/feature-workspace.service.ts | 5 ++++- .../workspace/shared/wfs-actions.service.ts | 18 +++++++++++++++++- .../workspace/shared/wfs-workspace.service.ts | 5 ++++- packages/geo/src/locale/en.geo.json | 2 ++ packages/geo/src/locale/fr.geo.json | 2 ++ 6 files changed, 46 insertions(+), 4 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index 04a6120bf9..bc46bfcb62 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; -import { Action, EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; +import { Action, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy } from '@igo2/common'; import { FeatureWorkspace } from './feature-workspace'; import { mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip, noElementSelected } from './workspace.utils'; @@ -78,6 +78,22 @@ export class FeatureActionsService { zoomStrategy.setMotion(this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None); } }, + { + id: 'selectedOnly', + checkbox: true, + title: 'igo.geo.workspace.selected.title', + tooltip: 'selectedOnly', + checkCondition: false, + handler: () => { + const filterStrategy = workspace.entityStore + .getStrategyOfType(EntityStoreFilterSelectionStrategy); + if (filterStrategy.active) { + filterStrategy.deactivate(); + } else { + filterStrategy.activate(); + } + } + }, { id: 'clearselection', icon: 'select-off', diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index 888bf1fb53..187422bfd4 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -5,7 +5,8 @@ import { EntityTableTemplate, EntityStoreFilterCustomFuncStrategy, EntityRecord, - EntityStoreStrategyFuncOptions + EntityStoreStrategyFuncOptions, + EntityStoreFilterSelectionStrategy } from '@igo2/common'; import { @@ -76,6 +77,7 @@ export class FeatureWorkspaceService implements OnDestroy { const loadingStrategy = new FeatureStoreLoadingLayerStrategy({}); const inMapExtentStrategy = new FeatureStoreInMapExtentStrategy({}); + const selectedRecordStrategy = new EntityStoreFilterSelectionStrategy({}); const selectionStrategy = new FeatureStoreSelectionStrategy({ layer: new VectorLayer({ zIndex: 300, @@ -95,6 +97,7 @@ export class FeatureWorkspaceService implements OnDestroy { store.addStrategy(loadingStrategy, true); store.addStrategy(inMapExtentStrategy, true); store.addStrategy(selectionStrategy, true); + store.addStrategy(selectedRecordStrategy, false); store.addStrategy(this.createFilterInMapExtentStrategy(), true); return store; } diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index d1ef7d74f4..b805d28bef 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -1,6 +1,6 @@ import { Inject, Injectable } from '@angular/core'; -import { Action, Widget, EntityStoreFilterCustomFuncStrategy } from '@igo2/common'; +import { Action, Widget, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy } from '@igo2/common'; import { OgcFilterWidget } from '../widgets/widgets'; import { WfsWorkspace } from './wfs-workspace'; @@ -92,6 +92,22 @@ export class WfsActionsService { zoomStrategy.setMotion(this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None); } }, + { + id: 'selectedOnly', + checkbox: true, + title: 'igo.geo.workspace.selected.title', + tooltip: 'selectedOnly', + checkCondition: false, + handler: () => { + const filterStrategy = workspace.entityStore + .getStrategyOfType(EntityStoreFilterSelectionStrategy); + if (filterStrategy.active) { + filterStrategy.deactivate(); + } else { + filterStrategy.activate(); + } + } + }, { id: 'clearselection', icon: 'select-off', diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index cce0cef162..952f6d7ed4 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -5,7 +5,8 @@ import { EntityTableTemplate, EntityStoreFilterCustomFuncStrategy, EntityRecord, - EntityStoreStrategyFuncOptions + EntityStoreStrategyFuncOptions, + EntityStoreFilterSelectionStrategy } from '@igo2/common'; import { @@ -77,6 +78,7 @@ export class WfsWorkspaceService implements OnDestroy { const loadingStrategy = new FeatureStoreLoadingLayerStrategy({}); const inMapExtentStrategy = new FeatureStoreInMapExtentStrategy({}); + const selectedRecordStrategy = new EntityStoreFilterSelectionStrategy({}); const selectionStrategy = new FeatureStoreSelectionStrategy({ layer: new VectorLayer({ zIndex: 300, @@ -96,6 +98,7 @@ export class WfsWorkspaceService implements OnDestroy { store.addStrategy(loadingStrategy, true); store.addStrategy(inMapExtentStrategy, true); store.addStrategy(selectionStrategy, true); + store.addStrategy(selectedRecordStrategy, false); store.addStrategy(this.createFilterInMapExtentStrategy(), true); return store; } diff --git a/packages/geo/src/locale/en.geo.json b/packages/geo/src/locale/en.geo.json index 15c72ebaac..ef9afb65bb 100644 --- a/packages/geo/src/locale/en.geo.json +++ b/packages/geo/src/locale/en.geo.json @@ -528,6 +528,8 @@ "inMapExtent.inactive.tooltip": "Show all records", "zoomAuto.title": "Zoom auto", "zoomAuto.tooltip": "Zoom auto", + "selected.title": "Show selected records only", + "selected.tooltip": "Show selected records only", "clearSelection.title": "Deselect all", "clearSelection.tooltip": "Deselect all records" diff --git a/packages/geo/src/locale/fr.geo.json b/packages/geo/src/locale/fr.geo.json index 780f629749..c0291fe0fe 100644 --- a/packages/geo/src/locale/fr.geo.json +++ b/packages/geo/src/locale/fr.geo.json @@ -529,6 +529,8 @@ "inMapExtent.inactive.tooltip": "Montrer tous les enregistrements", "zoomAuto.title": "Zoom auto", "zoomAuto.tooltip": "Zoom auto", + "selected.title": "Ne montrer que les enregistrements sélectionnés", + "selected.tooltip": "Ne montrer que les enregistrements sélectionnés", "clearSelection.title": "Tout désélectionner", "clearSelection.tooltip": "Désélectionner les enregistrements sélectionnés" }, From 3764f73219d2586e3b8cd7982ed9ccbc11902ebc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-=C3=89tienne=20Lord?= <7397743+pelord@users.noreply.github.com> Date: Thu, 20 Aug 2020 12:22:26 -0400 Subject: [PATCH 46/90] feat(entity-table): add pagination (#707) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(entity-table) Pagination * lint * wip * chore(build): build warn ng-packagr No name was provided for external module * wip * refactor(entity-table-paginator) refector individual input as options * Update workspace.component.ts * wip * Update entity-table-paginator.component.html * Update entity-table-paginator.component.ts * fix(context-service) refer to issue #702 - message stored in base.json * refactor(entity-table) translation and paginationOptions processing * fix(entity-table) deprecation warnint on event * fix(entity-table) wrong last record used when clicking on a row (outside checkbox) Co-authored-by: Marc-André Barbeau --- .../entity-table/entity-table.component.html | 5 +- .../entity-table/entity-table.component.ts | 28 +++- .../entity-table/entity-table.module.ts | 5 +- demo/src/app/geo/legend/legend.component.ts | 2 +- .../geo/workspace/workspace.component.html | 17 ++- .../app/geo/workspace/workspace.component.ts | 40 ++++- packages/common/ng-package.json | 3 +- packages/common/ng-package.prod.json | 3 +- .../entity-table-paginator.component.html | 10 ++ .../entity-table-paginator.component.scss | 0 .../entity-table-paginator.component.ts | 139 ++++++++++++++++++ .../entity-table-paginator.interface.ts | 8 + .../entity-table-paginator.module.ts | 19 +++ .../entity/entity-table-paginator/index.ts | 2 + .../entity-table/entity-table.component.html | 9 +- .../entity-table/entity-table.component.ts | 65 +++++++- .../entity-table/entity-table.module.ts | 6 +- .../common/src/lib/entity/entity.module.ts | 4 +- packages/common/src/lib/entity/index.ts | 2 + packages/common/src/locale/en.common.json | 8 + packages/common/src/locale/fr.common.json | 8 + packages/common/src/public_api.ts | 1 + .../context-manager/shared/context.service.ts | 1 + 23 files changed, 357 insertions(+), 28 deletions(-) create mode 100644 packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.html create mode 100644 packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.scss create mode 100644 packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts create mode 100644 packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.interface.ts create mode 100644 packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.module.ts create mode 100644 packages/common/src/lib/entity/entity-table-paginator/index.ts diff --git a/demo/src/app/common/entity-table/entity-table.component.html b/demo/src/app/common/entity-table/entity-table.component.html index 5eff48ac3d..3f42cc3c8d 100644 --- a/demo/src/app/common/entity-table/entity-table.component.html +++ b/demo/src/app/common/entity-table/entity-table.component.html @@ -6,6 +6,9 @@ + [withPaginator]="true" + [paginatorOptions]="paginatorOptions" + [template]="template" + (entitySortChange)="entitySortChange()"> diff --git a/demo/src/app/common/entity-table/entity-table.component.ts b/demo/src/app/common/entity-table/entity-table.component.ts index 200e342214..675d0931b3 100644 --- a/demo/src/app/common/entity-table/entity-table.component.ts +++ b/demo/src/app/common/entity-table/entity-table.component.ts @@ -5,8 +5,11 @@ import { EntityStore, EntityTableButton, getEntityProperty, - EntityTableColumnRenderer + EntityTableColumnRenderer, + EntityTablePaginatorOptions } from '@igo2/common'; +import { MatPaginator } from '@angular/material/paginator'; +import { BehaviorSubject } from 'rxjs'; @Component({ selector: 'app-entity-table', @@ -15,6 +18,10 @@ import { }) export class AppEntityTableComponent implements OnInit, OnDestroy { public store = new EntityStore([]); + public paginator: MatPaginator; + entitySortChange$: BehaviorSubject = new BehaviorSubject(false); + + public paginatorOptions: EntityTablePaginatorOptions = {pageSize: 10}; public template = { selection: true, @@ -66,11 +73,20 @@ export class AppEntityTableComponent implements OnInit, OnDestroy { constructor(private languageService: LanguageService) {} ngOnInit() { - this.store.load([ - { id: '2', name: 'Name 2', description: 'Description 2' }, - { id: '1', name: 'Name 1', description: 'Description 1' }, - { id: '3', name: 'Name 3', description: 'Description 3' } - ]); + const ids = [2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; + + const entities = ids.map(id => { + return { id , name: `Name ${id}`, description: `Description ${id}`}; + }); + this.store.load(entities); + } + + entitySortChange() { + this.entitySortChange$.next(true); + } + + paginatorChange(event: MatPaginator) { + this.paginator = event; } ngOnDestroy() { diff --git a/demo/src/app/common/entity-table/entity-table.module.ts b/demo/src/app/common/entity-table/entity-table.module.ts index 66408d8a0b..ec23a73e16 100644 --- a/demo/src/app/common/entity-table/entity-table.module.ts +++ b/demo/src/app/common/entity-table/entity-table.module.ts @@ -1,7 +1,7 @@ import { NgModule } from '@angular/core'; import { MatCardModule } from '@angular/material/card'; -import { IgoEntityTableModule } from '@igo2/common'; +import { IgoEntityTableModule, IgoEntityTablePaginatorModule } from '@igo2/common'; import { AppEntityTableComponent } from './entity-table.component'; import { AppEntityTableRoutingModule } from './entity-table-routing.module'; @@ -11,7 +11,8 @@ import { AppEntityTableRoutingModule } from './entity-table-routing.module'; imports: [ AppEntityTableRoutingModule, MatCardModule, - IgoEntityTableModule + IgoEntityTableModule, + IgoEntityTablePaginatorModule ], exports: [AppEntityTableComponent] }) diff --git a/demo/src/app/geo/legend/legend.component.ts b/demo/src/app/geo/legend/legend.component.ts index a1b5e8758c..6094a3af03 100644 --- a/demo/src/app/geo/legend/legend.component.ts +++ b/demo/src/app/geo/legend/legend.component.ts @@ -83,7 +83,7 @@ export class AppLegendComponent { visible: true, legendOptions: { display: false, - html: "test html" + html: 'test html' }, sourceOptions: { type: 'wms', diff --git a/demo/src/app/geo/workspace/workspace.component.html b/demo/src/app/geo/workspace/workspace.component.html index 84ad205cc3..bb80d1856f 100644 --- a/demo/src/app/geo/workspace/workspace.component.html +++ b/demo/src/app/geo/workspace/workspace.component.html @@ -14,25 +14,36 @@ [store]="workspaceStore" [map]="map"> + + + + - - + + + diff --git a/demo/src/app/geo/workspace/workspace.component.ts b/demo/src/app/geo/workspace/workspace.component.ts index 2576b3643d..2068cbd923 100644 --- a/demo/src/app/geo/workspace/workspace.component.ts +++ b/demo/src/app/geo/workspace/workspace.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; -import { Observable } from 'rxjs'; +import { Observable, BehaviorSubject } from 'rxjs'; import { map } from 'rxjs/operators'; import { LanguageService } from '@igo2/core'; @@ -9,7 +9,8 @@ import { EntityRecord, EntityTableScrollBehavior, Workspace, - WorkspaceStore + WorkspaceStore, + EntityTablePaginatorOptions } from '@igo2/common'; import { IgoMap, @@ -17,7 +18,7 @@ import { LayerService, WFSDataSourceOptions } from '@igo2/geo'; -import { OgcFilterableDataSourceOptions } from 'packages/geo/src/public_api'; +import { MatPaginator } from '@angular/material/paginator'; @Component({ selector: 'app-workspace', @@ -25,6 +26,18 @@ import { OgcFilterableDataSourceOptions } from 'packages/geo/src/public_api'; styleUrls: ['./workspace.component.scss'] }) export class AppWorkspaceComponent implements OnInit { + + public workspacePaginator: MatPaginator; + entitySortChange$: BehaviorSubject = new BehaviorSubject(false); + public paginatorOptions: EntityTablePaginatorOptions = { + disabled: false, // Whether the component is disabled. + pageIndex: 3, // The zero-based page index of the displayed list of items. + hidePageSize: false, // Whether to hide the page size selection UI from the user. + pageSize: 5, // Number of items to display on a page. + pageSizeOptions: [1, 5, 10, 15, 30, 50, 100], // The set of provided page size options to display to the user. + showFirstLastButtons: true // Whether to show the first/last buttons UI to the user. + }; + public map = new IgoMap({ controls: { attribution: { @@ -42,7 +55,7 @@ export class AppWorkspaceComponent implements OnInit { public selectedWorkspace$: Observable; - public actionbarMode = ActionbarMode.Dock; + public actionbarMode = ActionbarMode.Overlay; public scrollBehavior = EntityTableScrollBehavior.Instant; @@ -59,7 +72,20 @@ export class AppWorkspaceComponent implements OnInit { ) .pipe( map((record: EntityRecord) => { - return record === undefined ? undefined : record.entity; + const entity = record === undefined ? undefined : record.entity; + if (entity) { + // In fact, the download action is not fully functionnal into the igo2-lib demo + // The reason why it's has been remove is that this button trigger a tool (importExport) + // and this tool is not available in the igo2-lib demo. + // This is why it's has been removed frome the actions's list. + // Refer to the igo2 demo at https://infra-geo-ouverte.github.io/igo2/ + entity.actionStore.view.filter((action) => { + console.log('action', action); + return action.id !== 'wfsDownload'; + }); + } + return entity; + }) ); @@ -143,4 +169,8 @@ export class AppWorkspaceComponent implements OnInit { this.map.addLayer(this.layerService.createLayer(layer)); }); } + + paginatorChange(event: MatPaginator) { + this.workspacePaginator = event; + } } diff --git a/packages/common/ng-package.json b/packages/common/ng-package.json index bfb52ac0b3..04cc9b71ab 100644 --- a/packages/common/ng-package.json +++ b/packages/common/ng-package.json @@ -9,7 +9,8 @@ "@igo2/utils" : "utils", "scroll-into-view-if-needed" : "scrollIntoView", "typy" : "typy", - "@ngx-translate/core" : "ngxt-core" + "@ngx-translate/core" : "ngxt-core", + "angular-shepherd": "angularShepherd" } } } diff --git a/packages/common/ng-package.prod.json b/packages/common/ng-package.prod.json index 8d0f10283b..aa4f3d95d3 100644 --- a/packages/common/ng-package.prod.json +++ b/packages/common/ng-package.prod.json @@ -8,7 +8,8 @@ "@igo2/utils" : "utils", "scroll-into-view-if-needed" : "scrollIntoView", "typy" : "typy", - "@ngx-translate/core" : "ngxt-core" + "@ngx-translate/core" : "ngxt-core", + "angular-shepherd": "angularShepherd" } } } diff --git a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.html b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.html new file mode 100644 index 0000000000..af35e2aa9e --- /dev/null +++ b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.html @@ -0,0 +1,10 @@ + + diff --git a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.scss b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts new file mode 100644 index 0000000000..72387a8c6a --- /dev/null +++ b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts @@ -0,0 +1,139 @@ +import { + Component, + Input, + ChangeDetectionStrategy, + OnInit, + ViewChild, + Output, + EventEmitter, + OnDestroy +} from '@angular/core'; + +import { + EntityStore +} from '../shared'; +import { MatPaginator, PageEvent } from '@angular/material/paginator'; +import { BehaviorSubject, Subscription } from 'rxjs'; +import { LanguageService } from '@igo2/core'; +import { EntityTablePaginatorOptions } from './entity-table-paginator.interface'; + +@Component({ + selector: 'igo-entity-table-paginator', + templateUrl: './entity-table-paginator.component.html', + styleUrls: ['./entity-table-paginator.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class EntityTablePaginatorComponent implements OnInit, OnDestroy { + + public disabled: boolean = false; + public hidePageSize: boolean = false; + public pageIndex: number = 0; + public pageSize: number = 50; + public pageSizeOptions: number[] = [5, 10, 20, 50, 100, 200]; + public showFirstLastButtons: boolean = true; + private entitySortChange$$: Subscription; + private paginationLabelTranslation$$: Subscription[] = []; + + @Input() entitySortChange$: BehaviorSubject = new BehaviorSubject(false); + /** + * Entity store + */ + @Input() store: EntityStore; + + /** + * Paginator options + */ + @Input() + paginatorOptions: EntityTablePaginatorOptions; + + /** + * Event emitted when the paginator changes the page size or page index. + */ + @Output() page: EventEmitter; + + public length: number = 0; + + /** + * Paginator emitted. + */ + @Output() paginatorChange: EventEmitter = new EventEmitter(); + + constructor(private languageService: LanguageService) { } + + @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; + + ngOnInit() { + this.store.stateView.count$.subscribe((count) => { + this.length = count; + this.emitPaginator(); + }); + this.entitySortChange$$ = this.entitySortChange$.subscribe(() => { + if (this.paginator) { + this.paginator.firstPage(); + } + }); + this.initPaginatorOptions(); + this.translateLabels(); + } + + initPaginatorOptions() { + this.disabled = this.paginatorOptions?.disabled || this.disabled; + this.hidePageSize = this.paginatorOptions?.hidePageSize || this.hidePageSize; + this.pageIndex = this.paginatorOptions?.pageIndex || this.pageIndex; + this.pageSize = this.paginatorOptions?.pageSize || this.pageSize; + this.pageSizeOptions = this.paginatorOptions?.pageSizeOptions || this.pageSizeOptions; + this.showFirstLastButtons = this.paginatorOptions?.showFirstLastButtons || this.showFirstLastButtons; + } + + translateLabels() { + + this.paginationLabelTranslation$$.push( + this.languageService.translate.get('igo.common.paginator.firstPageLabel').subscribe((label: string) => { + this.paginator._intl.firstPageLabel = label; + })); + + this.paginator._intl.getRangeLabel = this.rangeLabel; + + this.paginationLabelTranslation$$.push( + this.languageService.translate.get('igo.common.paginator.itemsPerPageLabel').subscribe((label: string) => { + this.paginator._intl.itemsPerPageLabel = label; + })); + this.paginationLabelTranslation$$.push( + this.languageService.translate.get('igo.common.paginator.lastPageLabel').subscribe((label: string) => { + this.paginator._intl.lastPageLabel = label; + })); + this.paginationLabelTranslation$$.push( + this.languageService.translate.get('igo.common.paginator.nextPageLabel').subscribe((label: string) => { + this.paginator._intl.nextPageLabel = label; + })); + this.paginationLabelTranslation$$.push( + this.languageService.translate.get('igo.common.paginator.previousPageLabel').subscribe((label: string) => { + this.paginator._intl.previousPageLabel = label; + })); + } + + rangeLabel = (page: number, pageSize: number, length: number) => { + const of: BehaviorSubject = new BehaviorSubject(''); + + this.paginationLabelTranslation$$.push( + this.languageService.translate.get('igo.common.paginator.of').subscribe((label: string) => { + of.next(label); + })); + if (length === 0 || pageSize === 0) { return `0 ${of.value} ${length}`; } + length = Math.max(length, 0); + const startIndex = page * pageSize; + const endIndex = startIndex < length ? + Math.min(startIndex + pageSize, length) : + startIndex + pageSize; + return `${startIndex + 1} - ${endIndex} ${of.value} ${length}`; + } + + ngOnDestroy(): void { + this.entitySortChange$$.unsubscribe(); + this.paginationLabelTranslation$$.map(sub => sub.unsubscribe()); + } + + emitPaginator() { + this.paginatorChange.emit(this.paginator); + } +} diff --git a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.interface.ts b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.interface.ts new file mode 100644 index 0000000000..67d5183e3c --- /dev/null +++ b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.interface.ts @@ -0,0 +1,8 @@ +export interface EntityTablePaginatorOptions { + disabled?: boolean; // Whether the component is disabled. + hidePageSize?: boolean; // Whether to hide the page size selection UI from the user. + pageIndex?: number; // The zero-based page index of the displayed list of items. + pageSize?: number; // Number of items to display on a page. + pageSizeOptions?: number[]; // The set of provided page size options to display to the user. + showFirstLastButtons?: boolean; // Whether to show the first/last buttons UI to the user. +} diff --git a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.module.ts b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.module.ts new file mode 100644 index 0000000000..58b4ef4e33 --- /dev/null +++ b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { EntityTablePaginatorComponent } from './entity-table-paginator.component'; +import { MatPaginatorModule } from '@angular/material/paginator'; + +/** + * @ignore + */ +@NgModule({ + imports: [ + MatPaginatorModule, + ], + exports: [ + EntityTablePaginatorComponent + ], + declarations: [ + EntityTablePaginatorComponent, + ] +}) +export class IgoEntityTablePaginatorModule {} diff --git a/packages/common/src/lib/entity/entity-table-paginator/index.ts b/packages/common/src/lib/entity/entity-table-paginator/index.ts new file mode 100644 index 0000000000..25df1f591d --- /dev/null +++ b/packages/common/src/lib/entity/entity-table-paginator/index.ts @@ -0,0 +1,2 @@ +export * from './entity-table-paginator.component'; +export * from './entity-table-paginator.interface'; diff --git a/packages/common/src/lib/entity/entity-table/entity-table.component.html b/packages/common/src/lib/entity/entity-table/entity-table.component.html index 6c8a668795..677821809a 100644 --- a/packages/common/src/lib/entity/entity-table/entity-table.component.html +++ b/packages/common/src/lib/entity/entity-table/entity-table.component.html @@ -20,7 +20,7 @@ @@ -105,6 +105,11 @@ (select)="onRowSelect(record)" (click)="onRowClick(record)"> - + + diff --git a/packages/common/src/lib/entity/entity-table/entity-table.component.ts b/packages/common/src/lib/entity/entity-table/entity-table.component.ts index 452d993d5a..6da679f27a 100644 --- a/packages/common/src/lib/entity/entity-table/entity-table.component.ts +++ b/packages/common/src/lib/entity/entity-table/entity-table.component.ts @@ -6,7 +6,8 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, OnInit, - OnDestroy + OnDestroy, + AfterViewInit } from '@angular/core'; import { BehaviorSubject, Subscription } from 'rxjs'; @@ -22,6 +23,9 @@ import { EntityTableSelectionState, EntityTableScrollBehavior } from '../shared'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatTableDataSource } from '@angular/material/table'; +import { EntityTablePaginatorOptions } from '../entity-table-paginator/entity-table-paginator.interface'; @Component({ selector: 'igo-entity-table', @@ -29,7 +33,9 @@ import { styleUrls: ['./entity-table.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) -export class EntityTableComponent implements OnInit, OnDestroy { +export class EntityTableComponent implements OnInit, OnDestroy, AfterViewInit { + + entitySortChange$: BehaviorSubject = new BehaviorSubject(false); /** * Reference to the column renderer types @@ -54,6 +60,11 @@ export class EntityTableComponent implements OnInit, OnDestroy { */ private selection$$: Subscription; + /** + * Subscription to the dataSource + */ + private dataSource$$: Subscription; + /** * The last record checked. Useful for selecting * multiple records by holding the shift key and checking @@ -66,6 +77,19 @@ export class EntityTableComponent implements OnInit, OnDestroy { */ @Input() store: EntityStore; + /** + * Table paginator store + */ + @Input() set paginator(value: MatPaginator) { + this._paginator = value; + this.dataSource.paginator = value; + } + + get paginator(): MatPaginator { + return this._paginator; + } + private _paginator: MatPaginator; + /** * Table template */ @@ -83,6 +107,18 @@ export class EntityTableComponent implements OnInit, OnDestroy { @Input() sortNullsFirst: boolean = false; + /** + * Show the table paginator or not. False by default. + */ + @Input() + withPaginator: boolean = false; + + /** + * Paginator options + */ + @Input() + paginatorOptions: EntityTablePaginatorOptions; + /** * Event emitted when an entity (row) is clicked */ @@ -95,6 +131,11 @@ export class EntityTableComponent implements OnInit, OnDestroy { added: object[]; }>(); + /** + * Event emitted when an entity (row) is selected + */ + @Output() entitySortChange: EventEmitter<{column: EntityTableColumn, direction: string}> = new EventEmitter(undefined); + /** * Table headers * @internal @@ -115,7 +156,7 @@ export class EntityTableComponent implements OnInit, OnDestroy { * Data source consumable by the underlying material table * @internal */ - get dataSource(): BehaviorSubject[]> { return this.store.stateView.all$(); } + dataSource = new MatTableDataSource(); /** * Whether selection is supported @@ -153,6 +194,14 @@ export class EntityTableComponent implements OnInit, OnDestroy { .subscribe((records: EntityRecord[]) => { this.selectionState$.next(this.computeSelectionState(records)); }); + + this.dataSource$$ = this.store.stateView.all$().subscribe((all) => { + this.dataSource.data = all; + }); + } + + ngAfterViewInit() { + this.dataSource.paginator = this.paginator; } /** @@ -161,6 +210,7 @@ export class EntityTableComponent implements OnInit, OnDestroy { */ ngOnDestroy() { this.selection$$.unsubscribe(); + this.dataSource$$.unsubscribe(); } /** @@ -185,6 +235,10 @@ export class EntityTableComponent implements OnInit, OnDestroy { this.cdRef.detectChanges(); } + paginatorChange(event: MatPaginator) { + this.paginator = event; + } + /** * On sort, sort the store * @param event Sort event @@ -201,6 +255,8 @@ export class EntityTableComponent implements OnInit, OnDestroy { direction, nullsFirst: this.sortNullsFirst }); + this.entitySortChange.emit({column, direction}); + this.entitySortChange$.next(true); } else { this.store.stateView.sort(undefined); } @@ -212,6 +268,7 @@ export class EntityTableComponent implements OnInit, OnDestroy { * @internal */ onRowClick(record: EntityRecord) { + this.lastRecordCheckedKey = this.store.stateView.getKey(record); this.entityClick.emit(record.entity); } @@ -273,7 +330,7 @@ export class EntityTableComponent implements OnInit, OnDestroy { * @param record Record * @internal */ - onShiftToggleRow(toggle: boolean, record: EntityRecord) { + onShiftToggleRow(toggle: boolean, record: EntityRecord, event: MouseEvent) { if (this.selection === false) { return; } if (this.selectMany === false || this.lastRecordCheckedKey === undefined) { diff --git a/packages/common/src/lib/entity/entity-table/entity-table.module.ts b/packages/common/src/lib/entity/entity-table/entity-table.module.ts index 7962e5eafe..d709af24be 100644 --- a/packages/common/src/lib/entity/entity-table/entity-table.module.ts +++ b/packages/common/src/lib/entity/entity-table/entity-table.module.ts @@ -10,6 +10,8 @@ import { IgoStopPropagationModule } from '../../stop-propagation/stop-propagatio import { IgoCustomHtmlModule } from '../../custom-html/custom-html.module'; import { EntityTableRowDirective } from './entity-table-row.directive'; import { EntityTableComponent } from './entity-table.component'; +import { MatPaginatorModule } from '@angular/material/paginator'; +import { IgoEntityTablePaginatorModule } from '../entity-table-paginator/entity-table-paginator.module'; /** * @ignore @@ -22,8 +24,10 @@ import { EntityTableComponent } from './entity-table.component'; MatIconModule, MatButtonModule, MatCheckboxModule, + MatPaginatorModule, IgoStopPropagationModule, - IgoCustomHtmlModule + IgoCustomHtmlModule, + IgoEntityTablePaginatorModule ], exports: [ EntityTableComponent diff --git a/packages/common/src/lib/entity/entity.module.ts b/packages/common/src/lib/entity/entity.module.ts index 1deefe80c4..40643e1510 100644 --- a/packages/common/src/lib/entity/entity.module.ts +++ b/packages/common/src/lib/entity/entity.module.ts @@ -3,6 +3,7 @@ import { CommonModule } from '@angular/common'; import { IgoEntitySelectorModule } from './entity-selector/entity-selector.module'; import { IgoEntityTableModule } from './entity-table/entity-table.module'; +import { IgoEntityTablePaginatorModule } from './entity-table-paginator/entity-table-paginator.module'; @NgModule({ imports: [ @@ -10,7 +11,8 @@ import { IgoEntityTableModule } from './entity-table/entity-table.module'; ], exports: [ IgoEntitySelectorModule, - IgoEntityTableModule + IgoEntityTableModule, + IgoEntityTablePaginatorModule ], declarations: [] }) diff --git a/packages/common/src/lib/entity/index.ts b/packages/common/src/lib/entity/index.ts index 671bbfccae..e8c8a0e01d 100644 --- a/packages/common/src/lib/entity/index.ts +++ b/packages/common/src/lib/entity/index.ts @@ -1,3 +1,5 @@ export * from './shared'; export * from './entity-selector/entity-selector.component'; export * from './entity-table/entity-table.component'; +export * from './entity-table-paginator/entity-table-paginator.component'; +export * from './entity-table-paginator/entity-table-paginator.interface'; diff --git a/packages/common/src/locale/en.common.json b/packages/common/src/locale/en.common.json index d87f0d4364..4614dcef22 100644 --- a/packages/common/src/locale/en.common.json +++ b/packages/common/src/locale/en.common.json @@ -24,6 +24,14 @@ "exitButton": "Exit", "backButton": "Back", "nextButton": "Next" + }, + "paginator": { + "firstPageLabel": "First page", + "itemsPerPageLabel": "Items per page:", + "lastPageLabel": "Last page", + "nextPageLabel": "Next page", + "previousPageLabel": "Previous page", + "of": "of" } } } diff --git a/packages/common/src/locale/fr.common.json b/packages/common/src/locale/fr.common.json index 006af584ae..194a6c3dac 100644 --- a/packages/common/src/locale/fr.common.json +++ b/packages/common/src/locale/fr.common.json @@ -24,6 +24,14 @@ "exitButton": "Quitter", "backButton": "Précédent", "nextButton": "Suivant" + }, + "paginator": { + "firstPageLabel": "Première page", + "itemsPerPageLabel": "Items par page:", + "lastPageLabel": "Dernière page", + "nextPageLabel": "Page suivante", + "previousPageLabel": "Page précédente", + "of": "de" } } } diff --git a/packages/common/src/public_api.ts b/packages/common/src/public_api.ts index e1a97dfd4e..1b2669180d 100644 --- a/packages/common/src/public_api.ts +++ b/packages/common/src/public_api.ts @@ -23,6 +23,7 @@ export * from './lib/form/form-group/form-group.module'; export * from './lib/entity/entity.module'; export * from './lib/entity/entity-selector/entity-selector.module'; export * from './lib/entity/entity-table/entity-table.module'; +export * from './lib/entity/entity-table-paginator/entity-table-paginator.module'; export * from './lib/image/image.module'; export * from './lib/interactive-tour/interactive-tour.module'; export * from './lib/json-dialog/json-dialog.module'; diff --git a/packages/context/src/lib/context-manager/shared/context.service.ts b/packages/context/src/lib/context-manager/shared/context.service.ts index 7e0c62de28..925b64b4e7 100644 --- a/packages/context/src/lib/context-manager/shared/context.service.ts +++ b/packages/context/src/lib/context-manager/shared/context.service.ts @@ -292,6 +292,7 @@ export class ContextService { ) .reverse(); resMerge.toolbar = res.toolbar || resBase.toolbar; + resMerge.message = res.message || resBase.message; resMerge.tools = (res.tools || []) .concat(resBase.tools || []) .filter( From b6e4bbb00972b01da2ef6a84036d7ec0cab1fe00 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 20 Aug 2020 12:31:01 -0400 Subject: [PATCH 47/90] wip --- demo/src/app/geo/workspace/workspace.component.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/demo/src/app/geo/workspace/workspace.component.ts b/demo/src/app/geo/workspace/workspace.component.ts index 2068cbd923..8a7a9a95b6 100644 --- a/demo/src/app/geo/workspace/workspace.component.ts +++ b/demo/src/app/geo/workspace/workspace.component.ts @@ -80,7 +80,6 @@ export class AppWorkspaceComponent implements OnInit { // This is why it's has been removed frome the actions's list. // Refer to the igo2 demo at https://infra-geo-ouverte.github.io/igo2/ entity.actionStore.view.filter((action) => { - console.log('action', action); return action.id !== 'wfsDownload'; }); } From 210cc3c2de9487b7c1dafc593556a848f2a2811e Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 25 Aug 2020 10:14:13 -0400 Subject: [PATCH 48/90] fix(entity-table-paginator) missing subscription & lifecycle hook oninit instead of afterviewinit... --- .../entity-table-paginator.component.ts | 4 +++- .../lib/entity/entity-table/entity-table.component.ts | 10 +++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts index 72387a8c6a..0e2c39014f 100644 --- a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts +++ b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts @@ -31,6 +31,7 @@ export class EntityTablePaginatorComponent implements OnInit, OnDestroy { public pageSize: number = 50; public pageSizeOptions: number[] = [5, 10, 20, 50, 100, 200]; public showFirstLastButtons: boolean = true; + private count$$: Subscription; private entitySortChange$$: Subscription; private paginationLabelTranslation$$: Subscription[] = []; @@ -63,7 +64,7 @@ export class EntityTablePaginatorComponent implements OnInit, OnDestroy { @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; ngOnInit() { - this.store.stateView.count$.subscribe((count) => { + this.count$$ = this.store.stateView.count$.subscribe((count) => { this.length = count; this.emitPaginator(); }); @@ -131,6 +132,7 @@ export class EntityTablePaginatorComponent implements OnInit, OnDestroy { ngOnDestroy(): void { this.entitySortChange$$.unsubscribe(); this.paginationLabelTranslation$$.map(sub => sub.unsubscribe()); + this.count$$.unsubscribe(); } emitPaginator() { diff --git a/packages/common/src/lib/entity/entity-table/entity-table.component.ts b/packages/common/src/lib/entity/entity-table/entity-table.component.ts index 6da679f27a..58130cceed 100644 --- a/packages/common/src/lib/entity/entity-table/entity-table.component.ts +++ b/packages/common/src/lib/entity/entity-table/entity-table.component.ts @@ -6,8 +6,7 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, OnInit, - OnDestroy, - AfterViewInit + OnDestroy } from '@angular/core'; import { BehaviorSubject, Subscription } from 'rxjs'; @@ -33,7 +32,7 @@ import { EntityTablePaginatorOptions } from '../entity-table-paginator/entity-ta styleUrls: ['./entity-table.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) -export class EntityTableComponent implements OnInit, OnDestroy, AfterViewInit { +export class EntityTableComponent implements OnInit, OnDestroy { entitySortChange$: BehaviorSubject = new BehaviorSubject(false); @@ -78,7 +77,7 @@ export class EntityTableComponent implements OnInit, OnDestroy, AfterViewInit { @Input() store: EntityStore; /** - * Table paginator store + * Table paginator */ @Input() set paginator(value: MatPaginator) { this._paginator = value; @@ -198,9 +197,6 @@ export class EntityTableComponent implements OnInit, OnDestroy, AfterViewInit { this.dataSource$$ = this.store.stateView.all$().subscribe((all) => { this.dataSource.data = all; }); - } - - ngAfterViewInit() { this.dataSource.paginator = this.paginator; } From c0d1945140c7b2ff971f488c59bcebe2822d01e2 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 25 Aug 2020 13:01:24 -0400 Subject: [PATCH 49/90] refactor(exportOptions) Renaming from layer to layers --- packages/geo/src/lib/import-export/shared/export.interface.ts | 2 +- .../geo/src/lib/workspace/shared/feature-actions.service.ts | 2 +- packages/geo/src/lib/workspace/shared/wfs-actions.service.ts | 2 +- .../filter/spatial-filter-tool/spatial-filter-tool.component.ts | 2 +- .../src/lib/map/map-details-tool/map-details-tool.component.ts | 2 +- packages/integration/src/lib/map/map-tool/map-tool.component.ts | 2 +- .../integration/src/lib/map/map-tools/map-tools.component.ts | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/geo/src/lib/import-export/shared/export.interface.ts b/packages/geo/src/lib/import-export/shared/export.interface.ts index 0ce81e2465..4376cc5ca3 100644 --- a/packages/geo/src/lib/import-export/shared/export.interface.ts +++ b/packages/geo/src/lib/import-export/shared/export.interface.ts @@ -2,7 +2,7 @@ import { ExportFormat } from './export.type'; export interface ExportOptions { format?: ExportFormat; - layer: string[]; + layers: string[]; name?: string; featureInMapExtent?: boolean; } diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index bc46bfcb62..ffd08b9a63 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -60,7 +60,7 @@ export class FeatureActionsService { const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); this.toolToActivate$.next({ tool: 'importExport', - options: { layer: [ws.layer.id], featureInMapExtent: filterStrategy.active } as ExportOptions + options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active } as ExportOptions }); }, args: [workspace] diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index b805d28bef..36eb77e0a8 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -74,7 +74,7 @@ export class WfsActionsService { const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); this.toolToActivate$.next({ tool: 'importExport', - options: { layer: [ws.layer.id], featureInMapExtent: filterStrategy.active } as ExportOptions + options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active } as ExportOptions }); }, args: [workspace] diff --git a/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts b/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts index a80a2ab3c3..86af0770dd 100644 --- a/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts +++ b/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts @@ -108,7 +108,7 @@ export class SpatialFilterToolComponent { ids.push(layer.id); } this.importExportState.setMode('export'); - this.importExportState.setsExportOptions({ layer: ids } as ExportOptions); + this.importExportState.setsExportOptions({ layers: ids } as ExportOptions); this.toolState.toolbox.activateTool('importExport'); } diff --git a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts index 21b5ef89d0..ad9a22e623 100644 --- a/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts +++ b/packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts @@ -134,7 +134,7 @@ export class MapDetailsToolComponent implements OnInit { } activateExport(id: string) { - this.importExportState.setsExportOptions({ layer: [id] } as ExportOptions); + this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions); this.importExportState.setMode('export'); this.toolState.toolbox.activateTool('importExport'); } diff --git a/packages/integration/src/lib/map/map-tool/map-tool.component.ts b/packages/integration/src/lib/map/map-tool/map-tool.component.ts index 2d21679d24..c3d1102586 100644 --- a/packages/integration/src/lib/map/map-tool/map-tool.component.ts +++ b/packages/integration/src/lib/map/map-tool/map-tool.component.ts @@ -76,7 +76,7 @@ export class MapToolComponent { ) {} activateExport(id: string) { - this.importExportState.setsExportOptions({ layer: [id] } as ExportOptions); + this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions); this.importExportState.setMode('export'); this.toolState.toolbox.activateTool('importExport'); } diff --git a/packages/integration/src/lib/map/map-tools/map-tools.component.ts b/packages/integration/src/lib/map/map-tools/map-tools.component.ts index 68a25230ed..cf2a248b64 100644 --- a/packages/integration/src/lib/map/map-tools/map-tools.component.ts +++ b/packages/integration/src/lib/map/map-tools/map-tools.component.ts @@ -255,7 +255,7 @@ export class MapToolsComponent implements OnInit, OnDestroy { } activateExport(id: string) { - this.importExportState.setsExportOptions({ layer: [id] } as ExportOptions); + this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions); this.importExportState.setMode('export'); this.toolState.toolbox.activateTool('importExport'); } From d1388faff621c4c09f8eec642a62b3346541b5c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Lafreni=C3=A8re?= <53181414+PhilippeLafreniere18@users.noreply.github.com> Date: Thu, 27 Aug 2020 08:56:51 -0400 Subject: [PATCH 50/90] feat(catalog): arcgis rest data catalog (#709) * WIP * WIP * WIP * WIP * feat(catalog): Allow arcGISRest data catalog * unnecessary changes --- .../spatial-filter.component.ts | 1 - .../lib/catalog/shared/catalog.abstract.ts | 14 +++++ .../src/lib/catalog/shared/catalog.enum.ts | 2 +- .../src/lib/catalog/shared/catalog.service.ts | 57 ++++++++++++++++++- .../datasource/shared/capabilities.service.ts | 30 +++++++--- 5 files changed, 92 insertions(+), 12 deletions(-) diff --git a/demo/src/app/geo/spatial-filter/spatial-filter.component.ts b/demo/src/app/geo/spatial-filter/spatial-filter.component.ts index d857b2e30d..d556d8227b 100644 --- a/demo/src/app/geo/spatial-filter/spatial-filter.component.ts +++ b/demo/src/app/geo/spatial-filter/spatial-filter.component.ts @@ -209,7 +209,6 @@ export class AppSpatialFilterComponent { for (const feature of features) { if (this.type === SpatialFilterType.Predefined) { for (const layer of this.map.layers) { - console.log(layer); if ( layer.options._internal && layer.options._internal.code === feature.properties.code diff --git a/packages/geo/src/lib/catalog/shared/catalog.abstract.ts b/packages/geo/src/lib/catalog/shared/catalog.abstract.ts index eff26dd1fa..9475bbc000 100644 --- a/packages/geo/src/lib/catalog/shared/catalog.abstract.ts +++ b/packages/geo/src/lib/catalog/shared/catalog.abstract.ts @@ -79,6 +79,18 @@ class BaselayersCatalog extends Catalog { } } +class ArcGISRestCatalog extends Catalog { + constructor(options: Catalog, service: CatalogService) { + super(options, service); + const sType: string = TypeCatalog[TypeCatalog.arcgisrest]; + this.type = TypeCatalog[sType]; + } + + public collectCatalogItems() { + return this.catalogService.loadCatalogArcGISRestItems(this); + } +} + export class CompositeCatalog extends Catalog implements ICompositeCatalog { composite: ICatalog[]; @@ -103,6 +115,8 @@ export class CatalogFactory { catalog = new CompositeCatalog(options, service); } else if (options.type === TypeCatalog[TypeCatalog.baselayers]) { catalog = new BaselayersCatalog(options, service); + } else if (options.type === TypeCatalog[TypeCatalog.arcgisrest]) { + catalog = new ArcGISRestCatalog(options, service); } else if (options.type === TypeCatalog[TypeCatalog.wmts]) { catalog = new WMTSCatalog(options, service); } else { diff --git a/packages/geo/src/lib/catalog/shared/catalog.enum.ts b/packages/geo/src/lib/catalog/shared/catalog.enum.ts index c31517feb6..cda367920a 100644 --- a/packages/geo/src/lib/catalog/shared/catalog.enum.ts +++ b/packages/geo/src/lib/catalog/shared/catalog.enum.ts @@ -4,7 +4,7 @@ export enum CatalogItemType { } export enum TypeCatalog { - wms, wmts, baselayers, composite + wms, wmts, baselayers, arcgisrest, composite } export type TypeCatalogStrings = keyof typeof TypeCatalog; diff --git a/packages/geo/src/lib/catalog/shared/catalog.service.ts b/packages/geo/src/lib/catalog/shared/catalog.service.ts index e2420d5a8f..9de894e981 100644 --- a/packages/geo/src/lib/catalog/shared/catalog.service.ts +++ b/packages/geo/src/lib/catalog/shared/catalog.service.ts @@ -10,7 +10,8 @@ import { TypeCapabilities, WMSDataSourceOptions, WMSDataSourceOptionsParams, - WMTSDataSourceOptions + WMTSDataSourceOptions, + ArcGISRestDataSourceOptions } from '../../datasource'; import { LayerOptions, ImageLayerOptions } from '../../layer'; import { getResolutionFromScale } from '../../map'; @@ -23,7 +24,7 @@ import { import { Catalog, CatalogFactory, CompositeCatalog } from './catalog.abstract'; import { CatalogItemType, TypeCatalog } from './catalog.enum'; import { QueryFormat } from '../../query'; -import { generateIdFromSourceOptions } from '../../utils'; +import { generateIdFromSourceOptions, generateId } from '../../utils'; @Injectable({ providedIn: 'root' @@ -148,6 +149,14 @@ export class CatalogService { ); } + loadCatalogArcGISRestItems(catalog: Catalog): Observable { + return this.getCatalogCapabilities(catalog).pipe( + map((capabilities: any) => { + return this.getArcGISRESTItems(catalog, capabilities) + }) + ); + } + loadCatalogCompositeLayerItems(catalog: Catalog): Observable { const compositeCatalog = (catalog as CompositeCatalog).composite; @@ -508,6 +517,50 @@ export class CatalogService { .filter((item: CatalogItemLayer | undefined) => item !== undefined); } + private getArcGISRESTItems( + catalog: Catalog, + capabilities + ): CatalogItemLayer[] { + const layers = capabilities.layers; + const regexes = (catalog.regFilters || []).map( + (pattern: string) => new RegExp(pattern) + ); + + return layers + .map((layer: any) => { + if (this.testLayerRegexes(layer.id, regexes) === false) { + return undefined; + } + const baseSourceOptions = { + type: 'arcgisrest', + url: catalog.url, + crossOrigin: catalog.setCrossOriginAnonymous + ? 'anonymous' + : undefined, + layer: layer.id as string, + matrixSet: catalog.matrixSet, + optionsFromCapabilities: true, + style: 'default' + } as ArcGISRestDataSourceOptions; + const sourceOptions = Object.assign( + {}, + baseSourceOptions, + catalog.sourceOptions + ) as ArcGISRestDataSourceOptions; + + return ObjectUtils.removeUndefined({ + id: generateIdFromSourceOptions(sourceOptions), + type: CatalogItemType.Layer, + title: layer.name, + address: catalog.id, + options: { + sourceOptions + } + }); + }) + .filter((item: CatalogItemLayer | undefined) => item !== undefined); + } + private testLayerRegexes(layerName: string, regexes: RegExp[]): boolean { if (regexes.length === 0) { return true; diff --git a/packages/geo/src/lib/datasource/shared/capabilities.service.ts b/packages/geo/src/lib/datasource/shared/capabilities.service.ts index 68fd55382b..5c19d8ea32 100644 --- a/packages/geo/src/lib/datasource/shared/capabilities.service.ts +++ b/packages/geo/src/lib/datasource/shared/capabilities.service.ts @@ -4,7 +4,7 @@ import { Observable, forkJoin, of } from 'rxjs'; import { map, catchError } from 'rxjs/operators'; import { Cacheable } from 'ngx-cacheable'; -import { WMSCapabilities, WMTSCapabilities } from 'ol/format'; +import { WMSCapabilities, WMTSCapabilities, EsriJSON } from 'ol/format'; import { optionsFromCapabilities } from 'ol/source/WMTS.js'; import olAttribution from 'ol/control/Attribution'; @@ -34,7 +34,8 @@ import { export enum TypeCapabilities { wms = 'wms', - wmts = 'wmts' + wmts = 'wmts', + arcgisrest = 'esriJSON' } export type TypeCapabilitiesStrings = keyof typeof TypeCapabilities; @@ -45,7 +46,8 @@ export type TypeCapabilitiesStrings = keyof typeof TypeCapabilities; export class CapabilitiesService { private parsers = { wms: new WMSCapabilities(), - wmts: new WMTSCapabilities() + wmts: new WMTSCapabilities(), + esriJSON: new EsriJSON() }; constructor(private http: HttpClient) {} @@ -154,14 +156,22 @@ export class CapabilitiesService { } }); - const request = this.http.get(baseUrl, { - params, - responseType: 'text' - }); + let request; + if ((service as any) === 'esriJSON') { + request = this.http.get(baseUrl + '?f=json'); + } else { + request = this.http.get(baseUrl, { + params, + responseType: 'text' + }); + } return request.pipe( map(res => { try { + if ((service as any) === 'esriJSON') { + return res; + } return this.parsers[service].read(res); } catch (e) { return undefined; @@ -293,6 +303,7 @@ export class CapabilitiesService { arcgisOptions: any, legend?: any ): ArcGISRestDataSourceOptions { + const title = arcgisOptions.name; const legendInfo = legend.layers ? legend : undefined; const styleGenerator = new EsriStyleGenerator(); const units = arcgisOptions.units === 'esriMeters' ? 'm' : 'degrees'; @@ -328,7 +339,10 @@ export class CapabilitiesService { } ); const options = ObjectUtils.removeUndefined({ - params + params, + _layerOptionsFromSource: { + title + } }); return ObjectUtils.mergeDeep(options, baseOptions); } From bfe910729650e44eebd2d2524f6e7979cffaee21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Lafreni=C3=A8re?= <53181414+PhilippeLafreniere18@users.noreply.github.com> Date: Thu, 27 Aug 2020 08:57:23 -0400 Subject: [PATCH 51/90] fix(interactive-tour): css fix for interactive tour (#708) --- .../src/lib/interactive-tour/interactive-tour.component.scss | 4 ++++ .../src/lib/interactive-tour/interactive-tour.service.ts | 2 ++ 2 files changed, 6 insertions(+) diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.component.scss b/packages/common/src/lib/interactive-tour/interactive-tour.component.scss index 7e0436c993..329098a718 100644 --- a/packages/common/src/lib/interactive-tour/interactive-tour.component.scss +++ b/packages/common/src/lib/interactive-tour/interactive-tour.component.scss @@ -2,6 +2,10 @@ padding: 0.5em 0.75em; } +.shepherd-title { + margin: 0px !important; +} + .shepherd-progress { margin-right: 15px; color: hsla(0, 0%, 45%, 1); diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.service.ts b/packages/common/src/lib/interactive-tour/interactive-tour.service.ts index 7cfc1e6656..e4c654fde6 100644 --- a/packages/common/src/lib/interactive-tour/interactive-tour.service.ts +++ b/packages/common/src/lib/interactive-tour/interactive-tour.service.ts @@ -145,6 +145,8 @@ export class InteractiveTourService { } if (header) { + currentStepElement.querySelector('.shepherd-content').classList.add('mat-typography'); + currentStepElement.querySelector('.shepherd-text').classList.add('mat-typography'); const stepsArray = self.steps; const progress = document.createElement('span'); progress.className = 'shepherd-progress'; From a38d6fae0164c62c7da1b68b0527c40076873948 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 28 Aug 2020 14:50:10 -0400 Subject: [PATCH 52/90] feat(import-export) vector - allow export selected features only IF workspace available. --- .../import-export.component.html | 22 +++- .../import-export.component.scss | 5 + .../import-export/import-export.component.ts | 123 +++++++++++++++--- .../import-export/shared/export.interface.ts | 1 + .../shared/feature-actions.service.ts | 8 +- .../workspace/shared/wfs-actions.service.ts | 8 +- packages/geo/src/locale/en.geo.json | 5 +- packages/geo/src/locale/fr.geo.json | 5 +- .../import-export-tool.component.html | 1 + .../import-export-tool.component.ts | 9 +- 10 files changed, 152 insertions(+), 35 deletions(-) diff --git a/packages/geo/src/lib/import-export/import-export/import-export.component.html b/packages/geo/src/lib/import-export/import-export/import-export.component.html index 6529ebd4ce..6343c5530b 100644 --- a/packages/geo/src/lib/import-export/import-export/import-export.component.html +++ b/packages/geo/src/lib/import-export/import-export/import-export.component.html @@ -53,10 +53,24 @@

{{'igo.geo.importExportForm.exportNoLayersExportable' | translate}}

{{'igo.geo.importExportForm.exportLayerPlaceholder' | translate}} - - - {{layer.title}} + + +

{{layer.title}}

+

+ + {{'igo.geo.importExportForm.exportSelectedFeature' | translate}} + +

diff --git a/packages/geo/src/lib/import-export/import-export/import-export.component.scss b/packages/geo/src/lib/import-export/import-export/import-export.component.scss index b2bdaca7cb..50696bbc76 100644 --- a/packages/geo/src/lib/import-export/import-export/import-export.component.scss +++ b/packages/geo/src/lib/import-export/import-export/import-export.component.scss @@ -1,5 +1,10 @@ $slide-toggle-width: 60px; +mat-option.igo-export-layer-mat-option { + height: 5em; + line-height: 1em; +} + .import-export-toggle { padding: 10px; text-align: center; diff --git a/packages/geo/src/lib/import-export/import-export/import-export.component.ts b/packages/geo/src/lib/import-export/import-export/import-export.component.ts index 91d1527455..eda6e22ae5 100644 --- a/packages/geo/src/lib/import-export/import-export/import-export.component.ts +++ b/packages/geo/src/lib/import-export/import-export/import-export.component.ts @@ -34,8 +34,13 @@ import { } from '../shared/import.utils'; import { StyleService } from '../../layer/shared/style.service'; import { StyleListService } from '../style-list/style-list.service'; -import { MatTabChangeEvent } from '@angular/material/tabs'; import { skipWhile } from 'rxjs/operators'; +import { EntityRecord, Workspace } from '@igo2/common'; +import type { WorkspaceStore } from '@igo2/common'; +import { WfsWorkspace } from '../../workspace/shared/wfs-workspace'; +import { FeatureWorkspace } from '../../workspace/shared/feature-workspace'; +import { MatSlideToggleChange } from '@angular/material/slide-toggle'; +import { MatSelectChange } from '@angular/material/select'; @Component({ selector: 'igo-import-export', @@ -73,6 +78,11 @@ export class ImportExportComponent implements OnDestroy, OnInit { @Input() map: IgoMap; + /** + * Store that holds the available workspaces. + */ + @Input() store: WorkspaceStore; + @Input() selectedMode = 'import'; @Output() selectMode = new EventEmitter(); @@ -83,6 +93,13 @@ export class ImportExportComponent implements OnDestroy, OnInit { @Output() exportOptionsChange = new EventEmitter(); + get layers() { + return this.form.get('layers').value; + } + set layers(value) { + this.form.patchValue({ layers: value }); + } + constructor( private importService: ImportService, private exportService: ExportService, @@ -120,18 +137,18 @@ export class ImportExportComponent implements OnDestroy, OnInit { .pipe(skipWhile((exportOptions) => !exportOptions)) .subscribe((exportOptions) => { this.form.patchValue(exportOptions, { emitEvent: true }); - if (exportOptions.layer) { + if (exportOptions.layers) { this.computeFormats( - exportOptions.layer.map((l) => this.map.getLayerById(l)) + exportOptions.layers.map((l) => this.map.getLayerById(l)) ); } }); this.formLayer$$ = this.form - .get('layer') - .valueChanges.subscribe((layerId) => { + .get('layers') + .valueChanges.subscribe((layersId) => { this.handlePreviousLayerSpecs(); - const layers = layerId.map((l) => this.map.getLayerById(l)); + const layers = layersId.map((l) => this.map.getLayerById(l)); this.computeFormats(layers); if ( @@ -182,11 +199,52 @@ export class ImportExportComponent implements OnDestroy, OnInit { .pipe(skipWhile((layers) => !layers)) .subscribe((layers) => { if (layers.length === 1) { - this.form.patchValue({ layer: layers[0].id }); + this.form.patchValue({ layers: layers[0].id }); } }); } + private getWorkspaceByLayerId(id: string): Workspace { + const wksFromLayerId = this.store + .all() + .find(workspace => (workspace as WfsWorkspace | FeatureWorkspace).layer.id === id); + if (wksFromLayerId) { + return wksFromLayerId; + } + return; + } + + layerHasSelectedFeatures(layer: Layer): boolean { + const wksFromLayer = this.getWorkspaceByLayerId(layer.id); + if (wksFromLayer) { + const recs = wksFromLayer.entityStore.stateView + .firstBy((record: EntityRecord) => { + return record.state.selected === true; + }); + return recs ? true : false; + } + } + + public onlySelected(event: MatSlideToggleChange, id: string) { + let layersWithSelection = this.form.value.layersWithSelection; + if (event.checked) { + layersWithSelection.push(id); + } else { + layersWithSelection = layersWithSelection.filter(layerId => layerId !== id); + } + this.form.patchValue({ layersWithSelection }); + } + + public onlySelectedClick(event, id: string) { + if (this.form.value.layers.find(layerId => layerId === id)) { + event.stopPropagation(); + } + } + + public inLayersIdToExportSelectionOnly(layer: Layer): boolean { + return this.form.value.layersWithSelection.find(layerId => layerId === layer.id) ? true : false; + } + ngOnDestroy() { this.layers$$.unsubscribe(); this.exportableLayers$$.unsubscribe(); @@ -231,8 +289,9 @@ export class ImportExportComponent implements OnDestroy, OnInit { } handleExportFormSubmit(data: ExportOptions) { + console.log('data', data, this.form); this.loading$.next(true); - data.layer.forEach((layer) => { + data.layers.forEach((layer) => { const lay = this.map.getLayerById(layer); let filename = lay.title; if (data.name !== undefined) { @@ -252,18 +311,40 @@ export class ImportExportComponent implements OnDestroy, OnInit { return; } + const wks = this.getWorkspaceByLayerId(layer); let olFeatures; - if (data.featureInMapExtent) { - olFeatures = lay.dataSource.ol.getFeaturesInExtent( - lay.map.viewController.getExtent() - ); - } else { - olFeatures = lay.dataSource.ol.getFeatures(); + if (wks && wks.entityStore && wks.entityStore.stateView.all().length ) { + + if (data.layersWithSelection.indexOf(layer) !== -1 && data.featureInMapExtent) { + // Only export selected feature && into map extent + olFeatures = wks.entityStore.stateView.all() + .filter((e: EntityRecord) => e.state.inMapExtent && e.state.selected).map(e => (e.entity as Feature).ol); + } else if (data.layersWithSelection.indexOf(layer) !== -1 && !data.featureInMapExtent ) { + // Only export selected feature && (into map extent OR not) + olFeatures = wks.entityStore.stateView.all() + .filter((e: EntityRecord) => e.state.selected).map(e => (e.entity as Feature).ol); + } else if (data.featureInMapExtent) { + // Only into map extent + olFeatures = wks.entityStore.stateView.all() + .filter((e: EntityRecord) => e.state.inMapExtent).map(e => (e.entity as Feature).ol); + } else { + // All features + olFeatures = wks.entityStore.stateView.all().map(e => (e.entity as Feature).ol); + } } - if (lay.dataSource instanceof ClusterDataSource) { - olFeatures = olFeatures.flatMap((cluster: any) => - cluster.get('features') - ); + else { + if (data.featureInMapExtent) { + olFeatures = lay.dataSource.ol.getFeaturesInExtent( + lay.map.viewController.getExtent() + ); + } else { + olFeatures = lay.dataSource.ol.getFeatures(); + } + if (lay.dataSource instanceof ClusterDataSource) { + olFeatures = olFeatures.flatMap((cluster: any) => + cluster.get('features') + ); + } } this.exportService @@ -283,14 +364,16 @@ export class ImportExportComponent implements OnDestroy, OnInit { if (this.forceNaming) { this.form = this.formBuilder.group({ format: ['', [Validators.required]], - layer: ['', [Validators.required]], + layers: [[], [Validators.required]], + layersWithSelection: [[]], featureInMapExtent: [false, [Validators.required]], name: ['', [Validators.required]] }); } else { this.form = this.formBuilder.group({ format: ['', [Validators.required]], - layer: ['', [Validators.required]], + layers: [[], [Validators.required]], + layersWithSelection: [[]], featureInMapExtent: [false, [Validators.required]] }); } diff --git a/packages/geo/src/lib/import-export/shared/export.interface.ts b/packages/geo/src/lib/import-export/shared/export.interface.ts index 4376cc5ca3..4ef59815f2 100644 --- a/packages/geo/src/lib/import-export/shared/export.interface.ts +++ b/packages/geo/src/lib/import-export/shared/export.interface.ts @@ -3,6 +3,7 @@ import { ExportFormat } from './export.type'; export interface ExportOptions { format?: ExportFormat; layers: string[]; + layersWithSelection?: string[]; name?: string; featureInMapExtent?: boolean; } diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts index ffd08b9a63..4a1dd6b1e0 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-actions.service.ts @@ -54,13 +54,15 @@ export class FeatureActionsService { { id: 'featureDownload', icon: 'download', - title: 'igo.geo.workspace.wfsDownload.title', - tooltip: 'igo.geo.workspace.wfsDownload.tooltip', + title: 'igo.geo.workspace.download.title', + tooltip: 'igo.geo.workspace.download.tooltip', handler: (ws: FeatureWorkspace) => { const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); + const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy); + const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : []; this.toolToActivate$.next({ tool: 'importExport', - options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active } as ExportOptions + options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions }); }, args: [workspace] diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts index 36eb77e0a8..a716525e0c 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts @@ -68,13 +68,15 @@ export class WfsActionsService { { id: 'wfsDownload', icon: 'download', - title: 'igo.geo.workspace.wfsDownload.title', - tooltip: 'igo.geo.workspace.wfsDownload.tooltip', + title: 'igo.geo.workspace.download.title', + tooltip: 'igo.geo.workspace.download.tooltip', handler: (ws: WfsWorkspace) => { const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); + const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy); + const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : []; this.toolToActivate$.next({ tool: 'importExport', - options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active } as ExportOptions + options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions }); }, args: [workspace] diff --git a/packages/geo/src/locale/en.geo.json b/packages/geo/src/locale/en.geo.json index ef9afb65bb..bde3f243c8 100644 --- a/packages/geo/src/locale/en.geo.json +++ b/packages/geo/src/locale/en.geo.json @@ -84,6 +84,7 @@ "exportTabTitle": "Export", "exportFeatureInExtent": "Export only features in map extent", "exportNoLayersExportable": "There is no exportable layer in your map", + "exportSelectedFeature": "Export only selected features", "importButton": "Import", "importProjPlaceholder": "Coordinate system", "importTabTitle": "Import", @@ -521,8 +522,8 @@ "ogcFilter.close": "Close", "ogcFilter.title": "Filters", "ogcFilter.tooltip": "Apply filters", - "wfsDownload.title": "Download", - "wfsDownload.tooltip": "Download", + "download.title": "Download", + "download.tooltip": "Download", "inMapExtent.title": "Show records in map extent only", "inMapExtent.active.tooltip": "Show records in map extent only", "inMapExtent.inactive.tooltip": "Show all records", diff --git a/packages/geo/src/locale/fr.geo.json b/packages/geo/src/locale/fr.geo.json index c0291fe0fe..2d56ba759a 100644 --- a/packages/geo/src/locale/fr.geo.json +++ b/packages/geo/src/locale/fr.geo.json @@ -84,6 +84,7 @@ "exportTabTitle": "Exporter", "exportFeatureInExtent": "Seulement les entités contenues dans la carte", "exportNoLayersExportable": "Aucune couche exportable dans la carte courante", + "exportSelectedFeature": "Seulement les entités sélectionnées", "importButton": "Importer", "importProjPlaceholder": "Système de coordonnées", "importTabTitle": "Importer", @@ -522,8 +523,8 @@ "ogcFilter.close": "Fermer", "ogcFilter.title": "Filtres", "ogcFilter.tooltip": "Appliquer des filtres sur la couche", - "wfsDownload.title": "Télécharger les données associées", - "wfsDownload.tooltip": "Télécharger les données associées", + "download.title": "Télécharger les données associées", + "download.tooltip": "Télécharger les données associées", "inMapExtent.title": "Ne montrer que les enregistrements contenus dans la carte", "inMapExtent.active.tooltip": "Ne montrer que les enregistrements contenus dans la carte", "inMapExtent.inactive.tooltip": "Montrer tous les enregistrements", diff --git a/packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.html b/packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.html index d6d1cf6ace..fa6ba2b734 100644 --- a/packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.html +++ b/packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.html @@ -1,6 +1,7 @@ Date: Fri, 28 Aug 2020 14:51:11 -0400 Subject: [PATCH 53/90] feat(import-export) export - shorten selected layers in ui --- .../import-export/import-export.component.html | 6 ++++++ .../import-export/import-export/import-export.component.ts | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/packages/geo/src/lib/import-export/import-export/import-export.component.html b/packages/geo/src/lib/import-export/import-export/import-export.component.html index 6343c5530b..d4d640bb24 100644 --- a/packages/geo/src/lib/import-export/import-export/import-export.component.html +++ b/packages/geo/src/lib/import-export/import-export/import-export.component.html @@ -55,6 +55,12 @@

{{'igo.geo.importExportForm.exportNoLayersExportable' | translate}}

{{'igo.geo.importExportForm.exportLayerPlaceholder' | translate}} + + {{layers.length ? getLayerTitleById(layers[0]) : ''}} + + (+{{layers.length - 1}} {{layers?.length === 2 ? 'other' : 'others'}}) + + Date: Fri, 28 Aug 2020 15:47:48 -0400 Subject: [PATCH 54/90] fix(import-export) export - locale for select layers + style --- .../import-export/import-export/import-export.component.html | 4 ++-- .../import-export/import-export/import-export.component.scss | 5 +++++ packages/geo/src/locale/en.geo.json | 4 +++- packages/geo/src/locale/fr.geo.json | 4 +++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/geo/src/lib/import-export/import-export/import-export.component.html b/packages/geo/src/lib/import-export/import-export/import-export.component.html index d4d640bb24..2a2899d006 100644 --- a/packages/geo/src/lib/import-export/import-export/import-export.component.html +++ b/packages/geo/src/lib/import-export/import-export/import-export.component.html @@ -57,8 +57,8 @@

{{'igo.geo.importExportForm.exportNoLayersExportable' | translate}}

[(value)]="layers" multiple> {{layers.length ? getLayerTitleById(layers[0]) : ''}} - - (+{{layers.length - 1}} {{layers?.length === 2 ? 'other' : 'others'}}) + + (+{{layers.length - 1}} {{(layers?.length === 2 ? 'igo.geo.importExportForm.other' : 'igo.geo.importExportForm.others') | translate }}) Date: Mon, 31 Aug 2020 08:07:05 -0400 Subject: [PATCH 55/90] (entity-table-paginator) button display in mobile --- .../entity-table-paginator.component.scss | 12 ++++++++++++ .../entity-table-paginator.component.ts | 13 +++++++++---- packages/core/src/lib/media/media.service.ts | 9 +++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.scss b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.scss index e69de29bb2..eec324121f 100644 --- a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.scss +++ b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.scss @@ -0,0 +1,12 @@ +@import '../../../../../core/src/style/partial/media'; + +:host{ + z-index:-999; + margin-top: -10px; + padding-right: 15px; + + @include mobile { + margin-top: 0px; + padding-right: 5px; + } +} diff --git a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts index 72387a8c6a..175970ffb0 100644 --- a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts +++ b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts @@ -14,7 +14,7 @@ import { } from '../shared'; import { MatPaginator, PageEvent } from '@angular/material/paginator'; import { BehaviorSubject, Subscription } from 'rxjs'; -import { LanguageService } from '@igo2/core'; +import { LanguageService, MediaService } from '@igo2/core'; import { EntityTablePaginatorOptions } from './entity-table-paginator.interface'; @Component({ @@ -58,7 +58,7 @@ export class EntityTablePaginatorComponent implements OnInit, OnDestroy { */ @Output() paginatorChange: EventEmitter = new EventEmitter(); - constructor(private languageService: LanguageService) { } + constructor(private languageService: LanguageService, private mediaService: MediaService) { } @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; @@ -78,11 +78,16 @@ export class EntityTablePaginatorComponent implements OnInit, OnDestroy { initPaginatorOptions() { this.disabled = this.paginatorOptions?.disabled || this.disabled; - this.hidePageSize = this.paginatorOptions?.hidePageSize || this.hidePageSize; this.pageIndex = this.paginatorOptions?.pageIndex || this.pageIndex; this.pageSize = this.paginatorOptions?.pageSize || this.pageSize; this.pageSizeOptions = this.paginatorOptions?.pageSizeOptions || this.pageSizeOptions; - this.showFirstLastButtons = this.paginatorOptions?.showFirstLastButtons || this.showFirstLastButtons; + if (this.mediaService.isMobile()) { + this.showFirstLastButtons = false; + this.hidePageSize = true; + } else { + this.showFirstLastButtons = this.paginatorOptions?.showFirstLastButtons || this.showFirstLastButtons; + this.hidePageSize = this.paginatorOptions?.hidePageSize || this.hidePageSize; + } } translateLabels() { diff --git a/packages/core/src/lib/media/media.service.ts b/packages/core/src/lib/media/media.service.ts index 46632ac3cc..0c3b5d01bf 100644 --- a/packages/core/src/lib/media/media.service.ts +++ b/packages/core/src/lib/media/media.service.ts @@ -69,4 +69,13 @@ export class MediaService { isTouchScreen(): boolean { return 'ontouchstart' in document.documentElement ? true : false; } + + isMobile(): boolean { + const media = this.getMedia(); + if (media === 'mobile') { + return true; + } else { + return false; + } + } } From 68a92e915203be6cc78e64783f13ab8808edddfa Mon Sep 17 00:00:00 2001 From: PE Lord Date: Mon, 31 Aug 2020 14:03:49 -0400 Subject: [PATCH 56/90] feat(igoQuery) Allow drag box selection with ctrl down --- .../feature/shared/strategies/selection.ts | 2 +- .../src/lib/query/shared/query.directive.ts | 85 ++++++++++++++++++- 2 files changed, 82 insertions(+), 5 deletions(-) diff --git a/packages/geo/src/lib/feature/shared/strategies/selection.ts b/packages/geo/src/lib/feature/shared/strategies/selection.ts index 3680382256..7e3303b715 100644 --- a/packages/geo/src/lib/feature/shared/strategies/selection.ts +++ b/packages/geo/src/lib/feature/shared/strategies/selection.ts @@ -22,7 +22,7 @@ import { import { FeatureStore } from '../store'; import { FeatureMotion } from '../feature.enums'; -class OlDragSelectInteraction extends OlDragBoxInteraction { +export class OlDragSelectInteraction extends OlDragBoxInteraction { constructor(options) { super(options); } diff --git a/packages/geo/src/lib/query/shared/query.directive.ts b/packages/geo/src/lib/query/shared/query.directive.ts index 908c56612e..c431fa8c55 100644 --- a/packages/geo/src/lib/query/shared/query.directive.ts +++ b/packages/geo/src/lib/query/shared/query.directive.ts @@ -1,4 +1,4 @@ -import { getEntityTitle } from '@igo2/common'; + import { Directive, Input, @@ -10,12 +10,13 @@ import { } from '@angular/core'; import { Subscription, Observable, of, zip } from 'rxjs'; +import { unByKey } from 'ol/Observable'; import OlFeature from 'ol/Feature'; import OlRenderFeature from 'ol/render/Feature'; import OlLayer from 'ol/layer/Layer'; -import OlDragBoxInteraction from 'ol/interaction/DragBox'; +import { DragBoxEvent as OlDragBoxEvent } from 'ol/interaction/DragBox'; import { MapBrowserPointerEvent as OlMapBrowserPointerEvent } from 'ol/MapBrowserEvent'; import { ListenerFunction } from 'ol/events'; @@ -27,6 +28,9 @@ import { featureFromOl } from '../../feature/shared/feature.utils'; import { QueryService } from './query.service'; import { layerIsQueryable, olLayerIsQueryable } from './query.utils'; import { AnyLayer } from '../../layer/shared/layers/any-layer'; +import { ctrlKeyDown } from '../../map/shared/map.utils'; +import { OlDragSelectInteraction } from '../../feature/shared/strategies/selection'; +import { VectorLayer } from '../../layer/shared/layers/vector-layer'; /** * This directive makes a map queryable with a click of with a drag box. @@ -50,12 +54,12 @@ export class QueryDirective implements AfterViewInit, OnDestroy { /** * OL drag box interaction */ - private olDragBoxInteraction: OlDragBoxInteraction; + private olDragSelectInteraction: OlDragSelectInteraction; /** * Ol drag box "end" event key */ - private olDragBoxInteractionEndKey: string; + private olDragSelectInteractionEndKey: string; /** * Whter to query features or not @@ -104,6 +108,7 @@ export class QueryDirective implements AfterViewInit, OnDestroy { */ ngAfterViewInit() { this.listenToMapClick(); + this.addDragBoxInteraction(); } /** @@ -113,6 +118,7 @@ export class QueryDirective implements AfterViewInit, OnDestroy { ngOnDestroy() { this.cancelOngoingQueries(); this.unlistenToMapClick(); + this.removeDragBoxInteraction(); } /** @@ -251,4 +257,75 @@ export class QueryDirective implements AfterViewInit, OnDestroy { this.queries$$.forEach((sub: Subscription) => sub.unsubscribe()); this.queries$$ = []; } + + /** + * Add a drag box interaction and, on drag box end, select features + */ + private addDragBoxInteraction() { + let olDragSelectInteractionOnQuery; + const olInteractions = this.map.ol.getInteractions().getArray(); + + // There can only be one dragbox interaction, so find the current one, if any + // Don't keep a reference to the current dragbox because we don't want + // to remove it when this startegy is deactivated + for (const olInteraction of olInteractions) { + if (olInteraction instanceof OlDragSelectInteraction) { + olDragSelectInteractionOnQuery = olInteraction; + break; + } + } + // If no drag box interaction is found, create a new one and add it to the map + if (olDragSelectInteractionOnQuery === undefined) { + olDragSelectInteractionOnQuery = new OlDragSelectInteraction({ + condition: ctrlKeyDown + }); + this.map.ol.addInteraction(olDragSelectInteractionOnQuery); + this.olDragSelectInteraction = olDragSelectInteractionOnQuery; + } + + this.olDragSelectInteractionEndKey = olDragSelectInteractionOnQuery.on( + 'boxend', + (event: OlMapBrowserPointerEvent) => this.onDragBoxEnd(event) + ); + } + + /** + * Remove drag box interaction + */ + private removeDragBoxInteraction() { + if (this.olDragSelectInteractionEndKey !== undefined) { + unByKey(this.olDragSelectInteractionEndKey); + } + if (this.olDragSelectInteraction !== undefined) { + this.map.ol.removeInteraction(this.olDragSelectInteraction); + } + this.olDragSelectInteraction = undefined; + } + + /** + * On dragbox end, select features in drag box + * @param event OL MapBrowserPointerEvent + */ + private onDragBoxEnd(event: OlDragBoxEvent) { + const dragExtent = event.target.getGeometry().getExtent(); + const clickedFeatures = []; + const queryableLayers = this.map.layers + .filter(layerIsQueryable) + .filter(layer => layer instanceof VectorLayer && layer.visible); + queryableLayers.map(layer => { + const featuresOL = layer.dataSource.ol; + featuresOL.forEachFeatureIntersectingExtent(dragExtent, (olFeature: OlFeature) => { + const newFeature: Feature = featureFromOl(olFeature, this.map.projection, layer.ol); + newFeature.meta = { + id: olFeature.id_, + icon: olFeature.values_._icon, + sourceTitle: layer.title, + alias: this.queryService.getAllowedFieldsAndAlias(layer), + title: this.queryService.getQueryTitle(newFeature, layer), + }; + clickedFeatures.push(newFeature); + }); + }); + this.query.emit({ features: clickedFeatures, event }); + } } From a67e9ed645a4a7ecb7795340a912e6866563e4f9 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Mon, 31 Aug 2020 21:05:44 -0400 Subject: [PATCH 57/90] feat(query) allow dragbox event to select vector --- .../src/lib/catalog/shared/catalog.service.ts | 2 +- .../src/lib/query/shared/query.directive.ts | 122 ++++++++---------- .../shared/feature-workspace.service.ts | 2 +- .../workspace/shared/wfs-workspace.service.ts | 2 +- 4 files changed, 60 insertions(+), 68 deletions(-) diff --git a/packages/geo/src/lib/catalog/shared/catalog.service.ts b/packages/geo/src/lib/catalog/shared/catalog.service.ts index 9de894e981..94ca2023ad 100644 --- a/packages/geo/src/lib/catalog/shared/catalog.service.ts +++ b/packages/geo/src/lib/catalog/shared/catalog.service.ts @@ -152,7 +152,7 @@ export class CatalogService { loadCatalogArcGISRestItems(catalog: Catalog): Observable { return this.getCatalogCapabilities(catalog).pipe( map((capabilities: any) => { - return this.getArcGISRESTItems(catalog, capabilities) + return this.getArcGISRESTItems(catalog, capabilities); }) ); } diff --git a/packages/geo/src/lib/query/shared/query.directive.ts b/packages/geo/src/lib/query/shared/query.directive.ts index c431fa8c55..6359c5d393 100644 --- a/packages/geo/src/lib/query/shared/query.directive.ts +++ b/packages/geo/src/lib/query/shared/query.directive.ts @@ -193,46 +193,65 @@ export class QueryDirective implements AfterViewInit, OnDestroy { ): Observable { const clickedFeatures = []; - this.map.ol.forEachFeatureAtPixel( - event.pixel, - (featureOL: OlFeature, layerOL: OlLayer) => { - if (featureOL) { - if (featureOL.get('features')) { - for (const feature of featureOL.get('features')) { - const newFeature = featureFromOl(feature, this.map.projection); - newFeature.meta = { - title: feature.values_.nom, - id: feature.id_, - icon: feature.values_._icon, - sourceTitle: layerOL.values_.title - }; - clickedFeatures.push(newFeature); + if (event.type === 'singleclick') { + this.map.ol.forEachFeatureAtPixel( + event.pixel, + (featureOL: OlFeature, layerOL: OlLayer) => { + if (featureOL) { + if (featureOL.get('features')) { + for (const feature of featureOL.get('features')) { + const newFeature = featureFromOl(feature, this.map.projection); + newFeature.meta = { + title: feature.values_.nom, + id: feature.id_, + icon: feature.values_._icon, + sourceTitle: layerOL.values_.title + }; + clickedFeatures.push(newFeature); + } + } else if (featureOL instanceof OlRenderFeature) { + const featureFromRender: OlFeature = featureOL; + const feature = renderFeatureFromOl( + featureOL, + this.map.projection, + layerOL + ); + clickedFeatures.push(feature); + } else { + const feature = featureFromOl( + featureOL, + this.map.projection, + layerOL + ); + clickedFeatures.push(feature); } - } else if (featureOL instanceof OlRenderFeature) { - const featureFromRender: OlFeature = featureOL; - const feature = renderFeatureFromOl( - featureOL, - this.map.projection, - layerOL - ); - clickedFeatures.push(feature); - } else { - const feature = featureFromOl( - featureOL, - this.map.projection, - layerOL - ); - clickedFeatures.push(feature); } + }, + { + hitTolerance: this.queryFeaturesHitTolerance || 0, + layerFilter: this.queryFeaturesCondition + ? this.queryFeaturesCondition + : olLayerIsQueryable } - }, - { - hitTolerance: this.queryFeaturesHitTolerance || 0, - layerFilter: this.queryFeaturesCondition - ? this.queryFeaturesCondition - : olLayerIsQueryable - } - ); + ); + } else if (event.type === 'boxend') { + const dragExtent = event.target.getGeometry().getExtent(); + this.map.layers + .filter(layerIsQueryable) + .filter(layer => layer instanceof VectorLayer && layer.visible) + .map(layer => { + const featuresOL = layer.dataSource.ol; + featuresOL.forEachFeatureIntersectingExtent(dragExtent, (olFeature: OlFeature) => { + const newFeature: Feature = featureFromOl(olFeature, this.map.projection, layer.ol); + newFeature.meta = { + id: layer.id + '.' + olFeature.id_, + icon: olFeature.values_._icon, + sourceTitle: layer.title, + }; + clickedFeatures.push(newFeature); + }); + }); + } const queryableLayers = this.map.layers.filter(layerIsQueryable); clickedFeatures.forEach((feature: Feature) => { @@ -285,7 +304,7 @@ export class QueryDirective implements AfterViewInit, OnDestroy { this.olDragSelectInteractionEndKey = olDragSelectInteractionOnQuery.on( 'boxend', - (event: OlMapBrowserPointerEvent) => this.onDragBoxEnd(event) + (event: OlMapBrowserPointerEvent) => this.onMapEvent(event) ); } @@ -301,31 +320,4 @@ export class QueryDirective implements AfterViewInit, OnDestroy { } this.olDragSelectInteraction = undefined; } - - /** - * On dragbox end, select features in drag box - * @param event OL MapBrowserPointerEvent - */ - private onDragBoxEnd(event: OlDragBoxEvent) { - const dragExtent = event.target.getGeometry().getExtent(); - const clickedFeatures = []; - const queryableLayers = this.map.layers - .filter(layerIsQueryable) - .filter(layer => layer instanceof VectorLayer && layer.visible); - queryableLayers.map(layer => { - const featuresOL = layer.dataSource.ol; - featuresOL.forEachFeatureIntersectingExtent(dragExtent, (olFeature: OlFeature) => { - const newFeature: Feature = featureFromOl(olFeature, this.map.projection, layer.ol); - newFeature.meta = { - id: olFeature.id_, - icon: olFeature.values_._icon, - sourceTitle: layer.title, - alias: this.queryService.getAllowedFieldsAndAlias(layer), - title: this.queryService.getQueryTitle(newFeature, layer), - }; - clickedFeatures.push(newFeature); - }); - }); - this.query.emit({ features: clickedFeatures, event }); - } } diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index 187422bfd4..964b3e9f6c 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -82,7 +82,7 @@ export class FeatureWorkspaceService implements OnDestroy { layer: new VectorLayer({ zIndex: 300, source: new FeatureDataSource(), - style: getMarkerStyle, + style: undefined, showInLayerList: false, exportable: false, browsable: false diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index 952f6d7ed4..8c495bcc87 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -83,7 +83,7 @@ export class WfsWorkspaceService implements OnDestroy { layer: new VectorLayer({ zIndex: 300, source: new FeatureDataSource(), - style: getMarkerStyle, + style: undefined, showInLayerList: false, exportable: false, browsable: false From 1edbc9b29061f79b28ce919e218902cf2791a443 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Mon, 31 Aug 2020 21:36:15 -0400 Subject: [PATCH 58/90] fix(query) handling results from layers built from same feature --- .../src/lib/query/shared/query.directive.ts | 62 ++++++++++--------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/packages/geo/src/lib/query/shared/query.directive.ts b/packages/geo/src/lib/query/shared/query.directive.ts index 6359c5d393..07b2607f92 100644 --- a/packages/geo/src/lib/query/shared/query.directive.ts +++ b/packages/geo/src/lib/query/shared/query.directive.ts @@ -197,33 +197,47 @@ export class QueryDirective implements AfterViewInit, OnDestroy { this.map.ol.forEachFeatureAtPixel( event.pixel, (featureOL: OlFeature, layerOL: OlLayer) => { + const layer = this.map.getLayerById(layerOL.values_._layer.id); if (featureOL) { if (featureOL.get('features')) { for (const feature of featureOL.get('features')) { const newFeature = featureFromOl(feature, this.map.projection); newFeature.meta = { title: feature.values_.nom, - id: feature.id_, + id: layerOL.values_._layer.id + '.' + feature.id_, icon: feature.values_._icon, - sourceTitle: layerOL.values_.title + sourceTitle: layerOL.values_.title, + alias: this.queryService.getAllowedFieldsAndAlias(layer), + // title: this.queryService.getQueryTitle(newFeature, layer) || newFeature.meta.title }; clickedFeatures.push(newFeature); } } else if (featureOL instanceof OlRenderFeature) { - const featureFromRender: OlFeature = featureOL; - const feature = renderFeatureFromOl( + const newFeature = renderFeatureFromOl( featureOL, this.map.projection, layerOL ); - clickedFeatures.push(feature); + newFeature.meta = { + id: layerOL.values_._layer.id + '.' + newFeature.meta.id, + sourceTitle: layerOL.values_.title, + alias: this.queryService.getAllowedFieldsAndAlias(layer), + title: this.queryService.getQueryTitle(newFeature, layer) || newFeature.meta.title + }; + clickedFeatures.push(newFeature); } else { - const feature = featureFromOl( + const newFeature = featureFromOl( featureOL, this.map.projection, layerOL ); - clickedFeatures.push(feature); + newFeature.meta = { + id: layerOL.values_._layer.id + '.' + newFeature.meta.id, + sourceTitle: layerOL.values_.title, + alias: this.queryService.getAllowedFieldsAndAlias(layer), + title: this.queryService.getQueryTitle(newFeature, layer) || newFeature.meta.title + }; + clickedFeatures.push(newFeature); } } }, @@ -240,31 +254,21 @@ export class QueryDirective implements AfterViewInit, OnDestroy { .filter(layerIsQueryable) .filter(layer => layer instanceof VectorLayer && layer.visible) .map(layer => { - const featuresOL = layer.dataSource.ol; - featuresOL.forEachFeatureIntersectingExtent(dragExtent, (olFeature: OlFeature) => { - const newFeature: Feature = featureFromOl(olFeature, this.map.projection, layer.ol); - newFeature.meta = { - id: layer.id + '.' + olFeature.id_, - icon: olFeature.values_._icon, - sourceTitle: layer.title, - }; - clickedFeatures.push(newFeature); + const featuresOL = layer.dataSource.ol; + featuresOL.forEachFeatureIntersectingExtent(dragExtent, (olFeature: OlFeature) => { + const newFeature: Feature = featureFromOl(olFeature, this.map.projection, layer.ol); + newFeature.meta = { + id: layer.id + '.' + olFeature.id_, + icon: olFeature.values_._icon, + sourceTitle: layer.title, + alias: this.queryService.getAllowedFieldsAndAlias(layer), + title: this.queryService.getQueryTitle(newFeature, layer) || newFeature.meta.title + }; + clickedFeatures.push(newFeature); + }); }); - }); } - const queryableLayers = this.map.layers.filter(layerIsQueryable); - clickedFeatures.forEach((feature: Feature) => { - queryableLayers.forEach((layer: AnyLayer) => { - if (typeof layer.ol.getSource().hasFeature !== 'undefined') { - if (layer.ol.getSource().hasFeature(feature.ol)) { - feature.meta.alias = this.queryService.getAllowedFieldsAndAlias(layer); - feature.meta.title = feature.meta.title || this.queryService.getQueryTitle(feature, layer); - feature.meta.sourceTitle = layer.title; - } - } - }); - }); return of(clickedFeatures); } From 0248a71266e19649fa077e46397297e6fd4584d3 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 1 Sep 2020 12:07:48 -0400 Subject: [PATCH 59/90] feat(storage) observable on key change/addition/deletion --- .../core/src/lib/storage/storage.interface.ts | 15 +++++++++++++++ .../core/src/lib/storage/storage.service.ts | 18 +++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/packages/core/src/lib/storage/storage.interface.ts b/packages/core/src/lib/storage/storage.interface.ts index 242d4ba6c8..64b0cee6e8 100644 --- a/packages/core/src/lib/storage/storage.interface.ts +++ b/packages/core/src/lib/storage/storage.interface.ts @@ -6,3 +6,18 @@ export enum StorageScope { export interface StorageOptions { key: string; } + +export interface StorageServiceEvent { + key: string; + scope: StorageScope; + event: StorageServiceEventEnum; + previousValue?: any; + currentValue?: any; +} + +export enum StorageServiceEventEnum { + ADDED = 'Added', + MODIFIED = 'Modified', + REMOVED = 'Removed' +} + diff --git a/packages/core/src/lib/storage/storage.service.ts b/packages/core/src/lib/storage/storage.service.ts index bf9d03f6ca..f128aab706 100644 --- a/packages/core/src/lib/storage/storage.service.ts +++ b/packages/core/src/lib/storage/storage.service.ts @@ -1,7 +1,8 @@ import { Injectable } from '@angular/core'; import { ConfigService } from '../config/config.service'; -import { StorageScope, StorageOptions } from './storage.interface'; +import { StorageScope, StorageOptions, StorageServiceEvent, StorageServiceEventEnum } from './storage.interface'; +import { BehaviorSubject } from 'rxjs'; @Injectable({ providedIn: 'root' @@ -9,6 +10,8 @@ import { StorageScope, StorageOptions } from './storage.interface'; export class StorageService { protected options: StorageOptions; + public storageChange$: BehaviorSubject = new BehaviorSubject(undefined); + constructor(private config: ConfigService) { this.options = this.config.getConfig('storage') || { key: 'igo' }; } @@ -42,6 +45,7 @@ export class StorageService { value: string | object | boolean | number, scope: StorageScope = StorageScope.LOCAL ) { + const previousValue = this.get(key, scope); if (scope === StorageScope.SESSION) { sessionStorage.setItem( `${this.options.key}.${key}`, @@ -50,13 +54,25 @@ export class StorageService { } else { localStorage.setItem(`${this.options.key}.${key}`, JSON.stringify(value)); } + const currentValue = this.get(key, scope); + + if (currentValue !== previousValue) { + this.storageChange$.next({ + key, scope, + event: previousValue ? StorageServiceEventEnum.MODIFIED : StorageServiceEventEnum.ADDED, + previousValue, + currentValue + }); + } } remove(key: string, scope: StorageScope = StorageScope.LOCAL) { + const previousValue = this.get(key, scope); if (scope === StorageScope.SESSION) { sessionStorage.removeItem(`${this.options.key}.${key}`); } else { localStorage.removeItem(`${this.options.key}.${key}`); } + this.storageChange$.next({key, scope, event: StorageServiceEventEnum.REMOVED, previousValue }); } } From df3dec08729804d0519335c8987b01d26749cf1d Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 1 Sep 2020 13:46:01 -0400 Subject: [PATCH 60/90] feat(action) checkCondition is now an observable --- .../actionbar/actionbar-item.component.html | 2 +- .../actionbar/actionbar-item.component.ts | 20 +++++++++++++++++++ .../lib/action/shared/action.interfaces.ts | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/common/src/lib/action/actionbar/actionbar-item.component.html b/packages/common/src/lib/action/actionbar/actionbar-item.component.html index 25f286d6f0..d2d711c419 100644 --- a/packages/common/src/lib/action/actionbar/actionbar-item.component.html +++ b/packages/common/src/lib/action/actionbar/actionbar-item.component.html @@ -21,7 +21,7 @@

{{title | translate}}

[ngClass]="ngClass$ | async"> + [checked]="checkCondition$ | async"> {{title | translate}} diff --git a/packages/common/src/lib/action/actionbar/actionbar-item.component.ts b/packages/common/src/lib/action/actionbar/actionbar-item.component.ts index f135bc2c09..1d578416b3 100644 --- a/packages/common/src/lib/action/actionbar/actionbar-item.component.ts +++ b/packages/common/src/lib/action/actionbar/actionbar-item.component.ts @@ -25,6 +25,8 @@ export class ActionbarItemComponent implements OnInit, OnDestroy { readonly disabled$: BehaviorSubject = new BehaviorSubject(false); + readonly checkCondition$: BehaviorSubject = new BehaviorSubject(undefined); + readonly icon$: BehaviorSubject = new BehaviorSubject(undefined); readonly tooltip$: BehaviorSubject = new BehaviorSubject(undefined); @@ -41,6 +43,8 @@ export class ActionbarItemComponent implements OnInit, OnDestroy { private icon$$: Subscription; + private checkCondition$$: Subscription; + private tooltip$$: Subscription; private noDisplay$$: Subscription; @@ -113,6 +117,13 @@ export class ActionbarItemComponent implements OnInit, OnDestroy { this.updateIcon(this.action.icon); } + if (isObservable(this.action.checkCondition)) { + this.checkCondition$$ = this.action.checkCondition + .subscribe((checkCondition: boolean) => this.updateCheckCondition(checkCondition)); + } else { + this.updateCheckCondition(this.action.checkCondition); + } + if (isObservable(this.action.tooltip)) { this.tooltip$$ = this.action.tooltip .subscribe((tooltip: string) => this.updateTooltip(tooltip)); @@ -153,6 +164,11 @@ export class ActionbarItemComponent implements OnInit, OnDestroy { this.display$$ = undefined; } + if (this.checkCondition$$ !== undefined) { + this.checkCondition$$.unsubscribe(); + this.checkCondition$$ = undefined; + } + if (this.icon$$ !== undefined) { this.icon$$.unsubscribe(); this.icon$$ = undefined; @@ -187,6 +203,10 @@ export class ActionbarItemComponent implements OnInit, OnDestroy { this.tooltip$.next(tooltip); } + private updateCheckCondition(checkCondition: boolean) { + this.checkCondition$.next(checkCondition); + } + private updateIcon(icon: string) { this.icon$.next(icon); } diff --git a/packages/common/src/lib/action/shared/action.interfaces.ts b/packages/common/src/lib/action/shared/action.interfaces.ts index c79d5d704a..8ffb2e0407 100644 --- a/packages/common/src/lib/action/shared/action.interfaces.ts +++ b/packages/common/src/lib/action/shared/action.interfaces.ts @@ -8,7 +8,7 @@ export interface Action { tooltip?: string | Observable; args?: any[]; checkbox?: boolean; - checkCondition?: boolean; + checkCondition?: boolean | Observable; display?: (...args: any[]) => Observable; availability?: (...args: any[]) => Observable; ngClass?: (...args: any[]) => Observable<{[key: string]: boolean}>; From 895b7bb86c6f92189064dc86c7d4484724fc377d Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 1 Sep 2020 14:53:03 -0400 Subject: [PATCH 61/90] refactor(workspace) moving workspace action into integration --- .../app/geo/workspace/workspace.component.ts | 8 +++- .../shared/feature-workspace.service.ts | 19 ++++----- .../geo/src/lib/workspace/shared/index.ts | 2 - .../workspace/shared/wfs-workspace.service.ts | 16 ++++---- .../integration/src/lib/workspace/index.ts | 1 + .../shared/feature-actions.service.ts | 39 ++++++++++++------- .../src/lib/workspace/shared/index.ts | 3 ++ .../workspace/shared/wfs-actions.service.ts | 36 ++++++++++------- .../src/lib/workspace/workspace.state.ts | 21 +++++++++- 9 files changed, 93 insertions(+), 52 deletions(-) rename packages/{geo => integration}/src/lib/workspace/shared/feature-actions.service.ts (78%) create mode 100644 packages/integration/src/lib/workspace/shared/index.ts rename packages/{geo => integration}/src/lib/workspace/shared/wfs-actions.service.ts (82%) diff --git a/demo/src/app/geo/workspace/workspace.component.ts b/demo/src/app/geo/workspace/workspace.component.ts index 8a7a9a95b6..5da6aa3c37 100644 --- a/demo/src/app/geo/workspace/workspace.component.ts +++ b/demo/src/app/geo/workspace/workspace.component.ts @@ -19,6 +19,7 @@ import { WFSDataSourceOptions } from '@igo2/geo'; import { MatPaginator } from '@angular/material/paginator'; +import { WorkspaceState } from '@igo2/integration'; @Component({ selector: 'app-workspace', @@ -51,7 +52,9 @@ export class AppWorkspaceComponent implements OnInit { zoom: 5 }; - public workspaceStore = new WorkspaceStore([]); + get workspaceStore(): WorkspaceStore { + return this.workspaceState.store; + } public selectedWorkspace$: Observable; @@ -62,7 +65,8 @@ export class AppWorkspaceComponent implements OnInit { constructor( private languageService: LanguageService, private dataSourceService: DataSourceService, - private layerService: LayerService + private layerService: LayerService, + public workspaceState: WorkspaceState, ) {} ngOnInit() { diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index 964b3e9f6c..2290d57594 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -22,7 +22,6 @@ import { IgoMap } from '../../map'; import { SourceFieldsOptionsParams, FeatureDataSource } from '../../datasource'; import { FeatureWorkspace } from './feature-workspace'; -import { FeatureActionsService } from './feature-actions.service'; import { skipWhile, take } from 'rxjs/operators'; import { StorageService, StorageScope } from '@igo2/core'; import { BehaviorSubject, Subscription } from 'rxjs'; @@ -36,13 +35,11 @@ export class FeatureWorkspaceService implements OnDestroy { toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); toolToActivate$$: Subscription; - get zoomAutoTable(): boolean { - return this.storageService.get('zoomAutoTable') as boolean; + get zoomAuto(): boolean { + return this.storageService.get('zoomAuto') as boolean; } - constructor( - private featureActionsService: FeatureActionsService, - private storageService: StorageService) {} + constructor(private storageService: StorageService) {} ngOnDestroy() { if (this.toolToActivate$$) { @@ -63,10 +60,10 @@ export class FeatureWorkspaceService implements OnDestroy { } }); this.createTableTemplate(wks, layer); - this.featureActionsService.loadActions(wks); - this.toolToActivate$$ = this.featureActionsService.toolToActivate$.subscribe((toolToActivate) => - this.toolToActivate$.next(toolToActivate) - ); + // this.featureActionsService.loadActions(wks); + // this.toolToActivate$$ = this.featureActionsService.toolToActivate$.subscribe((toolToActivate) => + // this.toolToActivate$.next(toolToActivate) + // ); return wks; } @@ -89,7 +86,7 @@ export class FeatureWorkspaceService implements OnDestroy { }), map, hitTolerance: 15, - motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None, + motion: this.zoomAuto ? FeatureMotion.Default : FeatureMotion.None, many: true, dragBox: true }); diff --git a/packages/geo/src/lib/workspace/shared/index.ts b/packages/geo/src/lib/workspace/shared/index.ts index cbe9c3e76b..b6d089d46c 100644 --- a/packages/geo/src/lib/workspace/shared/index.ts +++ b/packages/geo/src/lib/workspace/shared/index.ts @@ -1,7 +1,5 @@ export * from './wfs-workspace'; -export * from './wfs-actions.service'; export * from './wfs-workspace.service'; export * from './feature-workspace'; -export * from './feature-actions.service'; export * from './feature-workspace.service'; export * from './workspace.utils'; diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index 8c495bcc87..2bac6a5a59 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -22,7 +22,6 @@ import { IgoMap } from '../../map'; import { SourceFieldsOptionsParams, FeatureDataSource } from '../../datasource'; import { WfsWorkspace } from './wfs-workspace'; -import { WfsActionsService } from './wfs-actions.service'; import { skipWhile, take } from 'rxjs/operators'; import { StorageService, StorageScope } from '@igo2/core'; import { BehaviorSubject, Subscription } from 'rxjs'; @@ -36,12 +35,11 @@ export class WfsWorkspaceService implements OnDestroy { toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); toolToActivate$$: Subscription; - get zoomAutoTable(): boolean { - return this.storageService.get('zoomAutoTable') as boolean; + get zoomAuto(): boolean { + return this.storageService.get('zoomAuto') as boolean; } constructor( - private wfsActionsService: WfsActionsService, private storageService: StorageService ) {} @@ -64,10 +62,10 @@ export class WfsWorkspaceService implements OnDestroy { } }); this.createTableTemplate(wks, layer); - this.wfsActionsService.loadActions(wks); - this.toolToActivate$$ = this.wfsActionsService.toolToActivate$.subscribe((toolToActivate) => - this.toolToActivate$.next(toolToActivate) - ); + // this.wfsActionsService.loadActions(wks); + // this.toolToActivate$$ = this.wfsActionsService.toolToActivate$.subscribe((toolToActivate) => + // this.toolToActivate$.next(toolToActivate) + // ); return wks; } @@ -90,7 +88,7 @@ export class WfsWorkspaceService implements OnDestroy { }), map, hitTolerance: 15, - motion: this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None, + motion: this.zoomAuto ? FeatureMotion.Default : FeatureMotion.None, many: true, dragBox: true }); diff --git a/packages/integration/src/lib/workspace/index.ts b/packages/integration/src/lib/workspace/index.ts index ad9452e1a7..8a3144b688 100644 --- a/packages/integration/src/lib/workspace/index.ts +++ b/packages/integration/src/lib/workspace/index.ts @@ -1,2 +1,3 @@ +export * from './shared'; export * from './workspace-button'; export * from './workspace.state'; diff --git a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts similarity index 78% rename from packages/geo/src/lib/workspace/shared/feature-actions.service.ts rename to packages/integration/src/lib/workspace/shared/feature-actions.service.ts index 4a1dd6b1e0..aead14eed4 100644 --- a/packages/geo/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts @@ -2,13 +2,18 @@ import { Injectable } from '@angular/core'; import { Action, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy } from '@igo2/common'; -import { FeatureWorkspace } from './feature-workspace'; -import { mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip, noElementSelected } from './workspace.utils'; -import { ExportOptions } from '../../import-export/shared/export.interface'; -import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; -import { FeatureMotion } from '../../feature'; -import { StorageService, StorageScope } from '@igo2/core'; import { BehaviorSubject } from 'rxjs'; +import { + FeatureWorkspace, + mapExtentStrategyActiveToolTip, + FeatureMotionStrategyActiveToolTip, + FeatureStoreSelectionStrategy, + FeatureMotion, + noElementSelected, + ExportOptions +} from '@igo2/geo'; +import { StorageService, StorageScope } from '@igo2/core'; +import { StorageState } from '../../app/storage/storage.state'; @Injectable({ providedIn: 'root' @@ -17,15 +22,19 @@ export class FeatureActionsService { toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); - get zoomAutoTable(): boolean { - return this.storageService.get('zoomAutoTable') as boolean; + get storageService(): StorageService { + return this.storageState.storageService; + } + + get zoomAuto(): boolean { + return this.storageService.get('zoomAuto') as boolean; } get rowsInMapExtent(): boolean { return this.storageService.get('rowsInMapExtent') as boolean; } - constructor(private storageService: StorageService) {} + constructor(private storageState: StorageState) {} loadActions(workspace: FeatureWorkspace) { const actions = this.buildActions(workspace); @@ -48,7 +57,11 @@ export class FeatureActionsService { } else { filterStrategy.activate(); } - this.storageService.set('rowsInMapExtent', !this.storageService.get('rowsInMapExtent') as boolean, StorageScope.SESSION); + this.storageService + .set( + 'rowsInMapExtent', + !this.storageService.get('rowsInMapExtent') as boolean, + StorageScope.SESSION); } }, { @@ -72,12 +85,12 @@ export class FeatureActionsService { checkbox: true, title: 'igo.geo.workspace.zoomAuto.title', tooltip: FeatureMotionStrategyActiveToolTip(workspace), - checkCondition: this.zoomAutoTable, + checkCondition: this.zoomAuto, handler: () => { const zoomStrategy = workspace.entityStore .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; - this.storageService.set('zoomAutoTable', !this.storageService.get('zoomAutoTable') as boolean); - zoomStrategy.setMotion(this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None); + this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean); + zoomStrategy.setMotion(this.zoomAuto ? FeatureMotion.Default : FeatureMotion.None); } }, { diff --git a/packages/integration/src/lib/workspace/shared/index.ts b/packages/integration/src/lib/workspace/shared/index.ts new file mode 100644 index 0000000000..6f98086f9c --- /dev/null +++ b/packages/integration/src/lib/workspace/shared/index.ts @@ -0,0 +1,3 @@ + +export * from './wfs-actions.service'; +export * from './feature-actions.service'; diff --git a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts similarity index 82% rename from packages/geo/src/lib/workspace/shared/wfs-actions.service.ts rename to packages/integration/src/lib/workspace/shared/wfs-actions.service.ts index a716525e0c..5e84bc801a 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts @@ -1,15 +1,19 @@ import { Inject, Injectable } from '@angular/core'; import { Action, Widget, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy } from '@igo2/common'; - -import { OgcFilterWidget } from '../widgets/widgets'; -import { WfsWorkspace } from './wfs-workspace'; -import { mapExtentStrategyActiveToolTip, FeatureMotionStrategyActiveToolTip, noElementSelected } from './workspace.utils'; -import { ExportOptions } from '../../import-export/shared/export.interface'; -import { StorageService, StorageScope } from '@igo2/core'; -import { FeatureMotion } from '../../feature'; -import { FeatureStoreSelectionStrategy } from '../../feature/shared/strategies/selection'; import { BehaviorSubject } from 'rxjs'; +import { + WfsWorkspace, + mapExtentStrategyActiveToolTip, + FeatureMotionStrategyActiveToolTip, + FeatureStoreSelectionStrategy, + FeatureMotion, + noElementSelected, + ExportOptions, + OgcFilterWidget +} from '@igo2/geo'; +import { StorageService, StorageScope } from '@igo2/core'; +import { StorageState } from '../../app/storage/storage.state'; @Injectable({ providedIn: 'root' @@ -18,15 +22,19 @@ export class WfsActionsService { toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); - get zoomAutoTable(): boolean { - return this.storageService.get('zoomAutoTable') as boolean; + get storageService(): StorageService { + return this.storageState.storageService; + } + + get zoomAuto(): boolean { + return this.storageService.get('zoomAuto') as boolean; } get rowsInMapExtent(): boolean { return this.storageService.get('rowsInMapExtent') as boolean; } - constructor(@Inject(OgcFilterWidget) private ogcFilterWidget: Widget, private storageService: StorageService) {} + constructor(@Inject(OgcFilterWidget) private ogcFilterWidget: Widget, private storageState: StorageState) {} loadActions(workspace: WfsWorkspace) { const actions = this.buildActions(workspace); @@ -86,12 +94,12 @@ export class WfsActionsService { checkbox: true, title: 'igo.geo.workspace.zoomAuto.title', tooltip: FeatureMotionStrategyActiveToolTip(workspace), - checkCondition: this.zoomAutoTable, + checkCondition: this.zoomAuto, handler: () => { const zoomStrategy = workspace.entityStore .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; - this.storageService.set('zoomAutoTable', !this.storageService.get('zoomAutoTable') as boolean); - zoomStrategy.setMotion(this.zoomAutoTable ? FeatureMotion.Default : FeatureMotion.None); + this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean); + zoomStrategy.setMotion(this.zoomAuto ? FeatureMotion.Default : FeatureMotion.None); } }, { diff --git a/packages/integration/src/lib/workspace/workspace.state.ts b/packages/integration/src/lib/workspace/workspace.state.ts index b6d5e65f8d..7fbfd1af2b 100644 --- a/packages/integration/src/lib/workspace/workspace.state.ts +++ b/packages/integration/src/lib/workspace/workspace.state.ts @@ -4,6 +4,8 @@ import { BehaviorSubject, Subscription } from 'rxjs'; import { EntityRecord, Workspace, WorkspaceStore, Widget } from '@igo2/common'; import { WfsWorkspace, FeatureWorkspace } from '@igo2/geo'; +import { FeatureActionsService } from './shared/feature-actions.service'; +import { WfsActionsService } from './shared/wfs-actions.service'; /** * Service that holds the state of the workspace module @@ -37,7 +39,10 @@ export class WorkspaceState implements OnDestroy { get store(): WorkspaceStore { return this._store; } private _store: WorkspaceStore; - constructor() { + constructor( + private featureActionsService: FeatureActionsService, + private wfsActionsService: WfsActionsService, + ) { this.initWorkspaces(); } @@ -55,6 +60,20 @@ export class WorkspaceState implements OnDestroy { this.workspace$.next(workspace); }); + this._store.stateView.all$() + .subscribe((workspaces: EntityRecord[]) => { + workspaces.map((wks: EntityRecord) => { + if (wks.entity.actionStore.empty) { + if (wks.entity instanceof WfsWorkspace) { + this.wfsActionsService.loadActions(wks.entity); + } else if (wks.entity instanceof FeatureWorkspace) { + this.featureActionsService.loadActions(wks.entity); + } + } + + }); + }); + this.activeWorkspace$$ = this.workspace$ .subscribe((workspace: Workspace) => { if (this.activeWorkspaceWidget$$ !== undefined) { From e4135ed0834d82d89d7ae824a6d8dceea05c149d Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 1 Sep 2020 16:18:54 -0400 Subject: [PATCH 62/90] feat(integration) new state for storage --- .../integration/src/lib/integration.module.ts | 2 ++ packages/integration/src/lib/storage/index.ts | 1 + .../src/lib/storage/storage.module.ts | 8 ++++++++ .../src/lib/storage/storage.state.ts | 17 +++++++++++++++++ packages/integration/src/public_api.ts | 2 ++ 5 files changed, 30 insertions(+) create mode 100644 packages/integration/src/lib/storage/index.ts create mode 100644 packages/integration/src/lib/storage/storage.module.ts create mode 100644 packages/integration/src/lib/storage/storage.state.ts diff --git a/packages/integration/src/lib/integration.module.ts b/packages/integration/src/lib/integration.module.ts index 52f51753f8..355f63ec2f 100644 --- a/packages/integration/src/lib/integration.module.ts +++ b/packages/integration/src/lib/integration.module.ts @@ -12,11 +12,13 @@ import { IgoAppPrintModule } from './print/print.module'; import { IgoAppSearchModule } from './search/search.module'; import { IgoAppFilterModule } from './filter/filter.module'; import { IgoAppAboutModule } from './about/about.module'; +import { IgoAppStorageModule } from './storage/storage.module'; @NgModule({ imports: [], declarations: [], exports: [ + IgoAppStorageModule, IgoAppAnalyticsModule, IgoAppContextModule, IgoAppCatalogModule, diff --git a/packages/integration/src/lib/storage/index.ts b/packages/integration/src/lib/storage/index.ts new file mode 100644 index 0000000000..eeba16f1f6 --- /dev/null +++ b/packages/integration/src/lib/storage/index.ts @@ -0,0 +1 @@ +export * from './storage.state'; diff --git a/packages/integration/src/lib/storage/storage.module.ts b/packages/integration/src/lib/storage/storage.module.ts new file mode 100644 index 0000000000..38d4bcb7d0 --- /dev/null +++ b/packages/integration/src/lib/storage/storage.module.ts @@ -0,0 +1,8 @@ +import { NgModule } from '@angular/core'; + +@NgModule({ + imports: [], + declarations: [], + exports: [] +}) +export class IgoAppStorageModule {} diff --git a/packages/integration/src/lib/storage/storage.state.ts b/packages/integration/src/lib/storage/storage.state.ts new file mode 100644 index 0000000000..f6012b2475 --- /dev/null +++ b/packages/integration/src/lib/storage/storage.state.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; + +import { StorageService } from '@igo2/core'; + +/** + * Service that holds the state of storage service + */ +@Injectable({ + providedIn: 'root' +}) +export class StorageState { + get storageService(): StorageService { + return this.igoStorageService; + } + + constructor(private igoStorageService: StorageService) {} +} diff --git a/packages/integration/src/public_api.ts b/packages/integration/src/public_api.ts index f0f105ed62..1b9cbe3aad 100644 --- a/packages/integration/src/public_api.ts +++ b/packages/integration/src/public_api.ts @@ -5,6 +5,7 @@ export * from './lib/integration.module'; export * from './lib/about/about.module'; export * from './lib/analytics/analytics.module'; +export * from './lib/storage/storage.module'; export * from './lib/context/context.module'; export * from './lib/catalog/catalog.module'; @@ -31,3 +32,4 @@ export * from './lib/measure'; export * from './lib/print'; export * from './lib/search'; export * from './lib/tool'; +export * from './lib/storage'; From 4dd320784cb80f66f04436f6665f99b2bd743f29 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 1 Sep 2020 16:37:27 -0400 Subject: [PATCH 63/90] wip --- package.json | 17 +++---- .../shared/feature-actions.service.ts | 46 +++++++++++++------ .../workspace/shared/wfs-actions.service.ts | 36 +++++++++++---- 3 files changed, 67 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 0735ddb08d..6ebfbf9b2c 100644 --- a/package.json +++ b/package.json @@ -21,16 +21,17 @@ "e2e": "ng e2e", "postinstall": "gulp fixLibs && ngcc", "build.all": "npm run build.libs && npm run build.demo", - "build.libs": "npm run build.utils && npm run build.core && npm run build.common && npm run build.auth && npm run build.geo && npm run build.context && npm run build.integration && gulp core:bundleLocale", - "build.utils": "ng build utils --prod", - "build.core": "ng build core --prod && gulp core", - "build.common": "ng build common --prod && gulp common", - "build.auth": "ng build auth --prod && gulp auth", - "build.geo": "ng build geo --prod && gulp geo", - "build.context": "ng build context --prod && gulp context", - "build.integration": "ng build integration --prod && gulp integration", + "build.libs": "npm run build.utils && npm run build.core && npm run build.common && npm run build.auth && npm run build.geo && npm run build.context && npm run build.integration && gulp core:bundleLocale && npm run copy.libs", + "build.utils": "ng build utils --prod && npm run copy.libs", + "build.core": "ng build core --prod && gulp core && npm run copy.libs", + "build.common": "ng build common --prod && gulp common && npm run copy.libs", + "build.auth": "ng build auth --prod && gulp auth && npm run copy.libs", + "build.geo": "ng build geo --prod && gulp geo && npm run copy.libs", + "build.context": "ng build context --prod && gulp context && npm run copy.libs", + "build.integration": "ng build integration --prod && gulp integration && npm run copy.libs", "build.demo": "ng build demo --prod", "build.doc": "compodoc -p tsconfig.json --disablePrivate --disableProtected --disableInternal --disableLifeCycleHooks --theme material", + "copy.libs": "copy-newer --cwd dist ** \"..\\igo2\\node_modules\\@igo2", "doc": "npm run build.doc && compodoc -s --port 4220", "pretest": "ng lint", "test": "ng test --watch=false --browsers=ChromeHeadless", diff --git a/packages/integration/src/lib/workspace/shared/feature-actions.service.ts b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts index aead14eed4..ec94ff77d2 100644 --- a/packages/integration/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts @@ -1,8 +1,8 @@ -import { Injectable } from '@angular/core'; +import { Injectable, OnDestroy } from '@angular/core'; import { Action, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy } from '@igo2/common'; -import { BehaviorSubject } from 'rxjs'; +import { BehaviorSubject, Subscription } from 'rxjs'; import { FeatureWorkspace, mapExtentStrategyActiveToolTip, @@ -12,15 +12,19 @@ import { noElementSelected, ExportOptions } from '@igo2/geo'; -import { StorageService, StorageScope } from '@igo2/core'; -import { StorageState } from '../../app/storage/storage.state'; +import { StorageService, StorageScope, StorageServiceEvent } from '@igo2/core'; +import { StorageState } from '../../storage/storage.state'; +import { skipWhile } from 'rxjs/operators'; @Injectable({ providedIn: 'root' }) -export class FeatureActionsService { +export class FeatureActionsService implements OnDestroy { + + toolToActivate$: BehaviorSubject<{ tool: string; options: { [key: string]: any } }> = new BehaviorSubject(undefined); + zoomAuto$: BehaviorSubject = new BehaviorSubject(false); + private storageChange$$: Subscription; - toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); get storageService(): StorageService { return this.storageState.storageService; @@ -36,12 +40,26 @@ export class FeatureActionsService { constructor(private storageState: StorageState) {} + ngOnDestroy(): void { + if (this.storageChange$$) { + this.storageChange$$.unsubscribe(); + } + } + loadActions(workspace: FeatureWorkspace) { const actions = this.buildActions(workspace); workspace.actionStore.load(actions); } buildActions(workspace: FeatureWorkspace): Action[] { + this.zoomAuto$.next(this.zoomAuto); + this.storageChange$$ = this.storageService.storageChange$ + .pipe(skipWhile((storageChange: StorageServiceEvent) => storageChange.key !== 'zoomAuto')) + .subscribe(() => { + this.zoomAuto$.next(this.zoomAuto); + } + ); + return [ { id: 'filterInMapExtent', @@ -51,17 +69,17 @@ export class FeatureActionsService { checkCondition: this.rowsInMapExtent, handler: () => { const filterStrategy = workspace.entityStore - .getStrategyOfType(EntityStoreFilterCustomFuncStrategy); + .getStrategyOfType(EntityStoreFilterCustomFuncStrategy); if (filterStrategy.active) { filterStrategy.deactivate(); } else { filterStrategy.activate(); } this.storageService - .set( - 'rowsInMapExtent', - !this.storageService.get('rowsInMapExtent') as boolean, - StorageScope.SESSION); + .set( + 'rowsInMapExtent', + !this.storageService.get('rowsInMapExtent') as boolean, + StorageScope.SESSION); } }, { @@ -85,10 +103,10 @@ export class FeatureActionsService { checkbox: true, title: 'igo.geo.workspace.zoomAuto.title', tooltip: FeatureMotionStrategyActiveToolTip(workspace), - checkCondition: this.zoomAuto, + checkCondition: this.zoomAuto$, handler: () => { const zoomStrategy = workspace.entityStore - .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; + .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean); zoomStrategy.setMotion(this.zoomAuto ? FeatureMotion.Default : FeatureMotion.None); } @@ -101,7 +119,7 @@ export class FeatureActionsService { checkCondition: false, handler: () => { const filterStrategy = workspace.entityStore - .getStrategyOfType(EntityStoreFilterSelectionStrategy); + .getStrategyOfType(EntityStoreFilterSelectionStrategy); if (filterStrategy.active) { filterStrategy.deactivate(); } else { diff --git a/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts index 5e84bc801a..393f7d6639 100644 --- a/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts @@ -1,7 +1,7 @@ -import { Inject, Injectable } from '@angular/core'; +import { Inject, Injectable, OnDestroy } from '@angular/core'; import { Action, Widget, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy } from '@igo2/common'; -import { BehaviorSubject } from 'rxjs'; +import { BehaviorSubject, Subscription } from 'rxjs'; import { WfsWorkspace, mapExtentStrategyActiveToolTip, @@ -12,15 +12,18 @@ import { ExportOptions, OgcFilterWidget } from '@igo2/geo'; -import { StorageService, StorageScope } from '@igo2/core'; -import { StorageState } from '../../app/storage/storage.state'; +import { StorageService, StorageScope, StorageServiceEvent } from '@igo2/core'; +import { StorageState } from '../../storage/storage.state'; +import { skipWhile } from 'rxjs/operators'; @Injectable({ providedIn: 'root' }) -export class WfsActionsService { +export class WfsActionsService implements OnDestroy { - toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); + toolToActivate$: BehaviorSubject<{ tool: string; options: { [key: string]: any } }> = new BehaviorSubject(undefined); + zoomAuto$: BehaviorSubject = new BehaviorSubject(false); + private storageChange$$: Subscription; get storageService(): StorageService { return this.storageState.storageService; @@ -36,12 +39,25 @@ export class WfsActionsService { constructor(@Inject(OgcFilterWidget) private ogcFilterWidget: Widget, private storageState: StorageState) {} + ngOnDestroy(): void { + if (this.storageChange$$) { + this.storageChange$$.unsubscribe(); + } + } + loadActions(workspace: WfsWorkspace) { const actions = this.buildActions(workspace); workspace.actionStore.load(actions); } buildActions(workspace: WfsWorkspace): Action[] { + this.zoomAuto$.next(this.zoomAuto); + this.storageService.storageChange$ + .pipe(skipWhile((storageChange: StorageServiceEvent) => storageChange.key !== 'zoomAuto')) + .subscribe(() => { + this.zoomAuto$.next(this.zoomAuto); + } + ); return [ { id: 'filterInMapExtent', @@ -51,7 +67,7 @@ export class WfsActionsService { checkCondition: this.rowsInMapExtent, handler: () => { const filterStrategy = workspace.entityStore - .getStrategyOfType(EntityStoreFilterCustomFuncStrategy); + .getStrategyOfType(EntityStoreFilterCustomFuncStrategy); if (filterStrategy.active) { filterStrategy.deactivate(); } else { @@ -94,10 +110,10 @@ export class WfsActionsService { checkbox: true, title: 'igo.geo.workspace.zoomAuto.title', tooltip: FeatureMotionStrategyActiveToolTip(workspace), - checkCondition: this.zoomAuto, + checkCondition: this.zoomAuto$, handler: () => { const zoomStrategy = workspace.entityStore - .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; + .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean); zoomStrategy.setMotion(this.zoomAuto ? FeatureMotion.Default : FeatureMotion.None); } @@ -110,7 +126,7 @@ export class WfsActionsService { checkCondition: false, handler: () => { const filterStrategy = workspace.entityStore - .getStrategyOfType(EntityStoreFilterSelectionStrategy); + .getStrategyOfType(EntityStoreFilterSelectionStrategy); if (filterStrategy.active) { filterStrategy.deactivate(); } else { From 7109cb466fc60caabba24ebed0b9082dd923bc01 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 1 Sep 2020 16:58:07 -0400 Subject: [PATCH 64/90] wip --- packages/core/src/lib/storage/storage.service.ts | 2 +- .../lib/workspace/shared/feature-actions.service.ts | 11 ++++++++--- .../src/lib/workspace/shared/wfs-actions.service.ts | 11 ++++++++--- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packages/core/src/lib/storage/storage.service.ts b/packages/core/src/lib/storage/storage.service.ts index f128aab706..78aeff6374 100644 --- a/packages/core/src/lib/storage/storage.service.ts +++ b/packages/core/src/lib/storage/storage.service.ts @@ -59,7 +59,7 @@ export class StorageService { if (currentValue !== previousValue) { this.storageChange$.next({ key, scope, - event: previousValue ? StorageServiceEventEnum.MODIFIED : StorageServiceEventEnum.ADDED, + event: previousValue !== undefined ? StorageServiceEventEnum.MODIFIED : StorageServiceEventEnum.ADDED, previousValue, currentValue }); diff --git a/packages/integration/src/lib/workspace/shared/feature-actions.service.ts b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts index ec94ff77d2..eeb7d1c34a 100644 --- a/packages/integration/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts @@ -57,6 +57,7 @@ export class FeatureActionsService implements OnDestroy { .pipe(skipWhile((storageChange: StorageServiceEvent) => storageChange.key !== 'zoomAuto')) .subscribe(() => { this.zoomAuto$.next(this.zoomAuto); + this.handleZoomAuto(workspace); } ); @@ -105,10 +106,8 @@ export class FeatureActionsService implements OnDestroy { tooltip: FeatureMotionStrategyActiveToolTip(workspace), checkCondition: this.zoomAuto$, handler: () => { - const zoomStrategy = workspace.entityStore - .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; + this.handleZoomAuto(workspace); this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean); - zoomStrategy.setMotion(this.zoomAuto ? FeatureMotion.Default : FeatureMotion.None); } }, { @@ -140,4 +139,10 @@ export class FeatureActionsService implements OnDestroy { }, ]; } + + private handleZoomAuto(workspace: FeatureWorkspace) { + const zoomStrategy = workspace.entityStore + .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; + zoomStrategy.setMotion(this.zoomAuto ? FeatureMotion.Default : FeatureMotion.None); + } } diff --git a/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts index 393f7d6639..e382f278ca 100644 --- a/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts @@ -56,6 +56,7 @@ export class WfsActionsService implements OnDestroy { .pipe(skipWhile((storageChange: StorageServiceEvent) => storageChange.key !== 'zoomAuto')) .subscribe(() => { this.zoomAuto$.next(this.zoomAuto); + this.handleZoomAuto(workspace); } ); return [ @@ -112,10 +113,8 @@ export class WfsActionsService implements OnDestroy { tooltip: FeatureMotionStrategyActiveToolTip(workspace), checkCondition: this.zoomAuto$, handler: () => { - const zoomStrategy = workspace.entityStore - .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; + this.handleZoomAuto(workspace); this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean); - zoomStrategy.setMotion(this.zoomAuto ? FeatureMotion.Default : FeatureMotion.None); } }, { @@ -147,4 +146,10 @@ export class WfsActionsService implements OnDestroy { }, ]; } + + private handleZoomAuto(workspace: WfsWorkspace) { + const zoomStrategy = workspace.entityStore + .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy; + zoomStrategy.setMotion(this.zoomAuto ? FeatureMotion.Default : FeatureMotion.None); + } } From 0cf25866dee52bb7dd8f4e02a60e28e3218e9b70 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 1 Sep 2020 17:32:19 -0400 Subject: [PATCH 65/90] refactor(workspace) tooltoactivate from geo package to toolstate (integration) --- .../shared/feature-workspace.service.ts | 18 ++---------------- .../workspace/shared/wfs-workspace.service.ts | 19 ++----------------- .../workspace-selector.directive.ts | 8 -------- .../workspace-updator.directive.ts | 8 -------- .../shared/feature-actions.service.ts | 8 +++++--- .../workspace/shared/wfs-actions.service.ts | 9 ++++++--- 6 files changed, 15 insertions(+), 55 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts index 2290d57594..b869af28a8 100644 --- a/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/feature-workspace.service.ts @@ -1,4 +1,4 @@ -import { Injectable, OnDestroy } from '@angular/core'; +import { Injectable } from '@angular/core'; import { ActionStore, @@ -24,16 +24,12 @@ import { SourceFieldsOptionsParams, FeatureDataSource } from '../../datasource'; import { FeatureWorkspace } from './feature-workspace'; import { skipWhile, take } from 'rxjs/operators'; import { StorageService, StorageScope } from '@igo2/core'; -import { BehaviorSubject, Subscription } from 'rxjs'; -import { getMarkerStyle } from '../../utils/commonVectorStyle'; @Injectable({ providedIn: 'root' }) -export class FeatureWorkspaceService implements OnDestroy { +export class FeatureWorkspaceService { - toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); - toolToActivate$$: Subscription; get zoomAuto(): boolean { return this.storageService.get('zoomAuto') as boolean; @@ -41,12 +37,6 @@ export class FeatureWorkspaceService implements OnDestroy { constructor(private storageService: StorageService) {} - ngOnDestroy() { - if (this.toolToActivate$$) { - this.toolToActivate$$.unsubscribe(); - } - } - createWorkspace(layer: VectorLayer, map: IgoMap): FeatureWorkspace { const wks = new FeatureWorkspace({ id: layer.id, @@ -60,10 +50,6 @@ export class FeatureWorkspaceService implements OnDestroy { } }); this.createTableTemplate(wks, layer); - // this.featureActionsService.loadActions(wks); - // this.toolToActivate$$ = this.featureActionsService.toolToActivate$.subscribe((toolToActivate) => - // this.toolToActivate$.next(toolToActivate) - // ); return wks; } diff --git a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts index 2bac6a5a59..2970a3b6a1 100644 --- a/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts +++ b/packages/geo/src/lib/workspace/shared/wfs-workspace.service.ts @@ -1,4 +1,4 @@ -import { Injectable, OnDestroy } from '@angular/core'; +import { Injectable } from '@angular/core'; import { ActionStore, @@ -24,16 +24,11 @@ import { SourceFieldsOptionsParams, FeatureDataSource } from '../../datasource'; import { WfsWorkspace } from './wfs-workspace'; import { skipWhile, take } from 'rxjs/operators'; import { StorageService, StorageScope } from '@igo2/core'; -import { BehaviorSubject, Subscription } from 'rxjs'; -import { getMarkerStyle } from '../../utils/commonVectorStyle'; @Injectable({ providedIn: 'root' }) -export class WfsWorkspaceService implements OnDestroy { - - toolToActivate$: BehaviorSubject<{ tool: string; options: {[key: string]: any} }> = new BehaviorSubject(undefined); - toolToActivate$$: Subscription; +export class WfsWorkspaceService { get zoomAuto(): boolean { return this.storageService.get('zoomAuto') as boolean; @@ -43,12 +38,6 @@ export class WfsWorkspaceService implements OnDestroy { private storageService: StorageService ) {} - ngOnDestroy() { - if (this.toolToActivate$$) { - this.toolToActivate$$.unsubscribe(); - } - } - createWorkspace(layer: VectorLayer, map: IgoMap): WfsWorkspace { const wks = new WfsWorkspace({ id: layer.id, @@ -62,10 +51,6 @@ export class WfsWorkspaceService implements OnDestroy { } }); this.createTableTemplate(wks, layer); - // this.wfsActionsService.loadActions(wks); - // this.toolToActivate$$ = this.wfsActionsService.toolToActivate$.subscribe((toolToActivate) => - // this.toolToActivate$.next(toolToActivate) - // ); return wks; } diff --git a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts index 839dc354d7..ae8e93a845 100644 --- a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts @@ -21,12 +21,9 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { private layers$$: Subscription; private entities$$: Subscription[] = []; - private toolToActivate$$: Subscription[] = []; @Input() map: IgoMap; - @Output() toolToActivate = new EventEmitter<{ tool: string; options: {[key: string]: any} }>(); - get workspaceStore(): WorkspaceStore { return this.component.store; } @@ -49,7 +46,6 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { ngOnDestroy() { this.layers$$.unsubscribe(); this.entities$$.map(entities => entities.unsubscribe()); - this.toolToActivate$$.map(toolToActivate => toolToActivate.unsubscribe()); } private onLayersChange(layers: Layer[]) { @@ -87,15 +83,11 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { } if (layer.dataSource instanceof WFSDataSource) { const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.toolToActivate$$.push(this.wfsWorkspaceService.toolToActivate$.subscribe((toolToActivate) => - this.toolToActivate.emit(toolToActivate))); return wfsWks; } else if (layer.dataSource instanceof WMSDataSource) { return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.toolToActivate$$.push(this.featureWorkspaceService.toolToActivate$.subscribe((toolToActivate) => - this.toolToActivate.emit(toolToActivate))); return featureWks; } diff --git a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts index 3bdc810963..288ac08a33 100644 --- a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts @@ -21,14 +21,11 @@ export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { private layers$$: Subscription; private entities$$: Subscription[] = []; - private toolToActivate$$: Subscription[] = []; @Input() map: IgoMap; @Input() workspaceStore: WorkspaceStore; - @Output() toolToActivate = new EventEmitter<{ tool: string; options: {[key: string]: any} }>(); - constructor( private wfsWorkspaceService: WfsWorkspaceService, private wmsWorkspaceService: WmsWorkspaceService, @@ -46,7 +43,6 @@ export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { ngOnDestroy() { this.layers$$.unsubscribe(); this.entities$$.map(entities => entities.unsubscribe()); - this.toolToActivate$$.map(toolToActivate => toolToActivate.unsubscribe()); } private onLayersChange(layers: Layer[]) { @@ -84,15 +80,11 @@ export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { } if (layer.dataSource instanceof WFSDataSource) { const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.toolToActivate$$.push(this.wfsWorkspaceService.toolToActivate$.subscribe((toolToActivate) => - this.toolToActivate.emit(toolToActivate))); return wfsWks; } else if (layer.dataSource instanceof WMSDataSource) { return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); - this.toolToActivate$$.push(this.featureWorkspaceService.toolToActivate$.subscribe((toolToActivate) => - this.toolToActivate.emit(toolToActivate))); return featureWks; } diff --git a/packages/integration/src/lib/workspace/shared/feature-actions.service.ts b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts index eeb7d1c34a..aad12a1c06 100644 --- a/packages/integration/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts @@ -15,13 +15,13 @@ import { import { StorageService, StorageScope, StorageServiceEvent } from '@igo2/core'; import { StorageState } from '../../storage/storage.state'; import { skipWhile } from 'rxjs/operators'; +import { ToolState } from '../../tool/tool.state'; @Injectable({ providedIn: 'root' }) export class FeatureActionsService implements OnDestroy { - toolToActivate$: BehaviorSubject<{ tool: string; options: { [key: string]: any } }> = new BehaviorSubject(undefined); zoomAuto$: BehaviorSubject = new BehaviorSubject(false); private storageChange$$: Subscription; @@ -38,7 +38,9 @@ export class FeatureActionsService implements OnDestroy { return this.storageService.get('rowsInMapExtent') as boolean; } - constructor(private storageState: StorageState) {} + constructor( + private storageState: StorageState, + private toolState: ToolState) {} ngOnDestroy(): void { if (this.storageChange$$) { @@ -92,7 +94,7 @@ export class FeatureActionsService implements OnDestroy { const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy); const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : []; - this.toolToActivate$.next({ + this.toolState.toolToActivateFromOptions({ tool: 'importExport', options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions }); diff --git a/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts index e382f278ca..fce3feab9c 100644 --- a/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts @@ -15,13 +15,13 @@ import { import { StorageService, StorageScope, StorageServiceEvent } from '@igo2/core'; import { StorageState } from '../../storage/storage.state'; import { skipWhile } from 'rxjs/operators'; +import { ToolState } from '../../tool/tool.state'; @Injectable({ providedIn: 'root' }) export class WfsActionsService implements OnDestroy { - toolToActivate$: BehaviorSubject<{ tool: string; options: { [key: string]: any } }> = new BehaviorSubject(undefined); zoomAuto$: BehaviorSubject = new BehaviorSubject(false); private storageChange$$: Subscription; @@ -37,7 +37,10 @@ export class WfsActionsService implements OnDestroy { return this.storageService.get('rowsInMapExtent') as boolean; } - constructor(@Inject(OgcFilterWidget) private ogcFilterWidget: Widget, private storageState: StorageState) {} + constructor( + @Inject(OgcFilterWidget) private ogcFilterWidget: Widget, + private storageState: StorageState, + private toolState: ToolState) {} ngOnDestroy(): void { if (this.storageChange$$) { @@ -99,7 +102,7 @@ export class WfsActionsService implements OnDestroy { const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy); const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : []; - this.toolToActivate$.next({ + this.toolState.toolToActivateFromOptions({ tool: 'importExport', options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions }); From 4c6a07d92ec0123ecab3449089bcab0a2e358f99 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Tue, 1 Sep 2020 17:33:01 -0400 Subject: [PATCH 66/90] feat(tool-state) method to activate tool and options and opensidenav (if needed) --- .../integration/src/lib/tool/tool.state.ts | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/packages/integration/src/lib/tool/tool.state.ts b/packages/integration/src/lib/tool/tool.state.ts index 1fd2ceb346..87e2ec8e5e 100644 --- a/packages/integration/src/lib/tool/tool.state.ts +++ b/packages/integration/src/lib/tool/tool.state.ts @@ -2,6 +2,10 @@ import { Injectable } from '@angular/core'; import { Toolbox, ToolService } from '@igo2/common'; +import { ExportOptions } from '@igo2/geo'; +import { BehaviorSubject } from 'rxjs'; +import { ImportExportState } from '../import-export/import-export.state'; + /** * Service that holds the state of the search module */ @@ -13,5 +17,33 @@ export class ToolState { return this.toolService.toolbox; } - constructor(private toolService: ToolService) {} + public openSidenav$: BehaviorSubject = new BehaviorSubject(undefined); + + constructor( + private toolService: ToolService, + private importExportState: ImportExportState + ) {} + + toolToActivateFromOptions(toolToActivate: { tool: string; options: {[key: string]: any} }) { + if (!toolToActivate) { return; } + if (toolToActivate.tool === 'importExport') { + let exportOptions: ExportOptions = this.importExportState.exportOptions$.value; + if (!exportOptions) { + exportOptions = { + layers: toolToActivate.options.layers, + featureInMapExtent: toolToActivate.options.featureInMapExtent + }; + } else { + exportOptions.layers = toolToActivate.options.layers; + exportOptions.featureInMapExtent = toolToActivate.options.featureInMapExtent; + } + this.importExportState.setsExportOptions(exportOptions); + this.importExportState.setMode('export'); + } + + if (this.toolbox.getTool(toolToActivate.tool)) { + this.toolbox.activateTool(toolToActivate.tool); + this.openSidenav$.next(true); + } + } } From 23369b8a74b55e440329b0aa1923044481880fec Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 2 Sep 2020 08:24:35 -0400 Subject: [PATCH 67/90] wip --- package.json | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 6ebfbf9b2c..0735ddb08d 100644 --- a/package.json +++ b/package.json @@ -21,17 +21,16 @@ "e2e": "ng e2e", "postinstall": "gulp fixLibs && ngcc", "build.all": "npm run build.libs && npm run build.demo", - "build.libs": "npm run build.utils && npm run build.core && npm run build.common && npm run build.auth && npm run build.geo && npm run build.context && npm run build.integration && gulp core:bundleLocale && npm run copy.libs", - "build.utils": "ng build utils --prod && npm run copy.libs", - "build.core": "ng build core --prod && gulp core && npm run copy.libs", - "build.common": "ng build common --prod && gulp common && npm run copy.libs", - "build.auth": "ng build auth --prod && gulp auth && npm run copy.libs", - "build.geo": "ng build geo --prod && gulp geo && npm run copy.libs", - "build.context": "ng build context --prod && gulp context && npm run copy.libs", - "build.integration": "ng build integration --prod && gulp integration && npm run copy.libs", + "build.libs": "npm run build.utils && npm run build.core && npm run build.common && npm run build.auth && npm run build.geo && npm run build.context && npm run build.integration && gulp core:bundleLocale", + "build.utils": "ng build utils --prod", + "build.core": "ng build core --prod && gulp core", + "build.common": "ng build common --prod && gulp common", + "build.auth": "ng build auth --prod && gulp auth", + "build.geo": "ng build geo --prod && gulp geo", + "build.context": "ng build context --prod && gulp context", + "build.integration": "ng build integration --prod && gulp integration", "build.demo": "ng build demo --prod", "build.doc": "compodoc -p tsconfig.json --disablePrivate --disableProtected --disableInternal --disableLifeCycleHooks --theme material", - "copy.libs": "copy-newer --cwd dist ** \"..\\igo2\\node_modules\\@igo2", "doc": "npm run build.doc && compodoc -s --port 4220", "pretest": "ng lint", "test": "ng test --watch=false --browsers=ChromeHeadless", From 16187137b9add37b8460eabefc00a1742ba197be Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 9 Sep 2020 15:18:15 -0400 Subject: [PATCH 68/90] fix(workspace) remove wms workspace creation --- .../workspace-selector/workspace-selector.directive.ts | 8 ++++---- .../workspace-updator/workspace-updator.directive.ts | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts index ae8e93a845..d02fe6fa1c 100644 --- a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts @@ -11,7 +11,7 @@ import { WFSDataSource, WMSDataSource, FeatureDataSource } from '../../datasourc import { OgcFilterableDataSourceOptions } from '../../filter'; import { WfsWorkspaceService } from '../shared/wfs-workspace.service'; -import { WmsWorkspaceService } from '../shared/wms-workspace.service'; +// import { WmsWorkspaceService } from '../shared/wms-workspace.service'; import { FeatureWorkspaceService } from '../shared/feature-workspace.service'; @Directive({ @@ -31,7 +31,7 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { constructor( private component: WorkspaceSelectorComponent, private wfsWorkspaceService: WfsWorkspaceService, - private wmsWorkspaceService: WmsWorkspaceService, + // private wmsWorkspaceService: WmsWorkspaceService, private featureWorkspaceService: FeatureWorkspaceService ) {} @@ -84,8 +84,8 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { if (layer.dataSource instanceof WFSDataSource) { const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); return wfsWks; - } else if (layer.dataSource instanceof WMSDataSource) { - return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); + /* } else if (layer.dataSource instanceof WMSDataSource) { + return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map);*/ } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); return featureWks; diff --git a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts index 288ac08a33..4a5bd3ba7f 100644 --- a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts @@ -11,7 +11,7 @@ import { WFSDataSource, WMSDataSource, FeatureDataSource } from '../../datasourc import { OgcFilterableDataSourceOptions } from '../../filter'; import { WfsWorkspaceService } from '../shared/wfs-workspace.service'; -import { WmsWorkspaceService } from '../shared/wms-workspace.service'; +// import { WmsWorkspaceService } from '../shared/wms-workspace.service'; import { FeatureWorkspaceService } from '../shared/feature-workspace.service'; @Directive({ @@ -28,7 +28,7 @@ export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { constructor( private wfsWorkspaceService: WfsWorkspaceService, - private wmsWorkspaceService: WmsWorkspaceService, + // private wmsWorkspaceService: WmsWorkspaceService, private featureWorkspaceService: FeatureWorkspaceService ) {} @@ -81,8 +81,8 @@ export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { if (layer.dataSource instanceof WFSDataSource) { const wfsWks = this.wfsWorkspaceService.createWorkspace(layer as VectorLayer, this.map); return wfsWks; - } else if (layer.dataSource instanceof WMSDataSource) { - return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map); + /*} else if (layer.dataSource instanceof WMSDataSource) { + return this.wmsWorkspaceService.createWorkspace(layer as ImageLayer, this.map);*/ } else if (layer.dataSource instanceof FeatureDataSource && (layer as VectorLayer).exportable === true) { const featureWks = this.featureWorkspaceService.createWorkspace(layer as VectorLayer, this.map); return featureWks; From 9158e5e596f528c4cb71105a348d34e94193501c Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 9 Sep 2020 15:18:33 -0400 Subject: [PATCH 69/90] fix(tool.state) All 'constructor' signatures should be adjacent --- packages/integration/src/lib/tool/tool.state.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/integration/src/lib/tool/tool.state.ts b/packages/integration/src/lib/tool/tool.state.ts index 907d3824dd..87e2ec8e5e 100644 --- a/packages/integration/src/lib/tool/tool.state.ts +++ b/packages/integration/src/lib/tool/tool.state.ts @@ -46,6 +46,4 @@ export class ToolState { this.openSidenav$.next(true); } } - - constructor(private toolService: ToolService) {} } From 6ef8a44bc1e5c809a20259d92f91a4d92b0752ab Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 9 Sep 2020 15:39:17 -0400 Subject: [PATCH 70/90] wip - merge conflict resolution --- .../src/lib/entity/entity-table/entity-table.component.ts | 7 ++----- .../feature/feature-details/feature-details.component.ts | 5 ++--- .../geo/src/lib/search/search-bar/search-bar.component.ts | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/packages/common/src/lib/entity/entity-table/entity-table.component.ts b/packages/common/src/lib/entity/entity-table/entity-table.component.ts index 33d954ddd5..58130cceed 100644 --- a/packages/common/src/lib/entity/entity-table/entity-table.component.ts +++ b/packages/common/src/lib/entity/entity-table/entity-table.component.ts @@ -6,8 +6,7 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, OnInit, - OnDestroy, - AfterViewInit + OnDestroy } from '@angular/core'; import { BehaviorSubject, Subscription } from 'rxjs'; @@ -33,9 +32,7 @@ import { EntityTablePaginatorOptions } from '../entity-table-paginator/entity-ta styleUrls: ['./entity-table.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) -export class EntityTableComponent implements OnInit, OnDestroy, AfterViewInit { - - entitySortChange$: BehaviorSubject = new BehaviorSubject(false); +export class EntityTableComponent implements OnInit, OnDestroy { entitySortChange$: BehaviorSubject = new BehaviorSubject(false); diff --git a/packages/geo/src/lib/feature/feature-details/feature-details.component.ts b/packages/geo/src/lib/feature/feature-details/feature-details.component.ts index e50481a2f0..7637e4119d 100644 --- a/packages/geo/src/lib/feature/feature-details/feature-details.component.ts +++ b/packages/geo/src/lib/feature/feature-details/feature-details.component.ts @@ -9,14 +9,13 @@ import { import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; import { NetworkService, ConnectionState } from '@igo2/core'; -import { getEntityTitle, getEntityIcon, Toolbox } from '@igo2/common'; +import { getEntityTitle, getEntityIcon } from '@igo2/common'; +import type { Toolbox } from '@igo2/common'; import { Feature } from '../shared'; import { SearchSource } from '../../search/shared/sources/source'; import { IgoMap } from '../../map/shared/map'; -import olGeolocation from 'ol/Geolocation'; - @Component({ selector: 'igo-feature-details', templateUrl: './feature-details.component.html', diff --git a/packages/geo/src/lib/search/search-bar/search-bar.component.ts b/packages/geo/src/lib/search/search-bar/search-bar.component.ts index e35c3418e3..c51edf922a 100644 --- a/packages/geo/src/lib/search/search-bar/search-bar.component.ts +++ b/packages/geo/src/lib/search/search-bar/search-bar.component.ts @@ -9,7 +9,7 @@ import { ViewChild, ElementRef } from '@angular/core'; -import { FloatLabelType } from '@angular/material/form-field'; +import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field'; import { BehaviorSubject, Subscription, EMPTY, timer } from 'rxjs'; import { debounce, distinctUntilChanged } from 'rxjs/operators'; From e84fec3b6a7d30e99f2bd7e2114ecd1c4e6b45fb Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 11 Sep 2020 10:47:40 -0400 Subject: [PATCH 71/90] fix(entity-table-paginator) fix the paginaor on input change --- .../entity-table-paginator.component.ts | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts index 929b9c407c..66f3fd480d 100644 --- a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts +++ b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts @@ -2,7 +2,7 @@ import { Component, Input, ChangeDetectionStrategy, - OnInit, + OnChanges, ViewChild, Output, EventEmitter, @@ -23,7 +23,7 @@ import { EntityTablePaginatorOptions } from './entity-table-paginator.interface' styleUrls: ['./entity-table-paginator.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) -export class EntityTablePaginatorComponent implements OnInit, OnDestroy { +export class EntityTablePaginatorComponent implements OnChanges, OnDestroy { public disabled: boolean = false; public hidePageSize: boolean = false; @@ -59,11 +59,12 @@ export class EntityTablePaginatorComponent implements OnInit, OnDestroy { */ @Output() paginatorChange: EventEmitter = new EventEmitter(); - constructor(private languageService: LanguageService, private mediaService: MediaService) {} + constructor(private languageService: LanguageService) {} @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; - ngOnInit() { + ngOnChanges() { + this.unsubscribeAll(); this.count$$ = this.store.stateView.count$.subscribe((count) => { this.length = count; this.emitPaginator(); @@ -82,13 +83,13 @@ export class EntityTablePaginatorComponent implements OnInit, OnDestroy { this.pageIndex = this.paginatorOptions?.pageIndex || this.pageIndex; this.pageSize = this.paginatorOptions?.pageSize || this.pageSize; this.pageSizeOptions = this.paginatorOptions?.pageSizeOptions || this.pageSizeOptions; - if (this.mediaService.isMobile()) { + /*if (this.mediaService.isMobile()) { this.showFirstLastButtons = false; this.hidePageSize = true; - } else { - this.showFirstLastButtons = this.paginatorOptions?.showFirstLastButtons || this.showFirstLastButtons; - this.hidePageSize = this.paginatorOptions?.hidePageSize || this.hidePageSize; - } + } else {*/ + this.showFirstLastButtons = this.paginatorOptions?.showFirstLastButtons || this.showFirstLastButtons; + this.hidePageSize = this.paginatorOptions?.hidePageSize || this.hidePageSize; + // } } translateLabels() { @@ -134,10 +135,14 @@ export class EntityTablePaginatorComponent implements OnInit, OnDestroy { return `${startIndex + 1} - ${endIndex} ${of.value} ${length}`; } - ngOnDestroy(): void { - this.entitySortChange$$.unsubscribe(); + private unsubscribeAll() { this.paginationLabelTranslation$$.map(sub => sub.unsubscribe()); - this.count$$.unsubscribe(); + if (this.count$$) { this.count$$.unsubscribe(); } + if (this.entitySortChange$$) { this.entitySortChange$$.unsubscribe(); } + } + + ngOnDestroy(): void { + this.unsubscribeAll(); } emitPaginator() { From 7848c4294a0ed04fc246420fc1d7f074d877fa3a Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 11 Sep 2020 10:52:19 -0400 Subject: [PATCH 72/90] refactor(*) usign mediaservice.ismobile method instead of media value. --- packages/common/src/lib/flexible/flexible.component.ts | 3 +-- .../src/lib/interactive-tour/interactive-tour.service.ts | 7 +------ packages/core/src/lib/media/media.service.ts | 6 +----- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/packages/common/src/lib/flexible/flexible.component.ts b/packages/common/src/lib/flexible/flexible.component.ts index 4a6fad2b1d..8e1e2ea966 100644 --- a/packages/common/src/lib/flexible/flexible.component.ts +++ b/packages/common/src/lib/flexible/flexible.component.ts @@ -88,8 +88,7 @@ export class FlexibleComponent implements OnInit { expanded: this.expanded }; - const media = this.mediaService.media$.value; - if (media === 'mobile') { + if (this.mediaService.isMobile()) { Object.assign(sizes, { initial: this.initialMobile, collapsed: this.collapsedMobile, diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.service.ts b/packages/common/src/lib/interactive-tour/interactive-tour.service.ts index e4c654fde6..18db133be8 100644 --- a/packages/common/src/lib/interactive-tour/interactive-tour.service.ts +++ b/packages/common/src/lib/interactive-tour/interactive-tour.service.ts @@ -35,12 +35,7 @@ export class InteractiveTourService { } public isMobile(): boolean { - const media = this.mediaService.getMedia(); - if (media === 'mobile') { - return true; - } else { - return false; - } + return this.mediaService.isMobile(); } public isTourDisplayInMobile(): boolean { diff --git a/packages/core/src/lib/media/media.service.ts b/packages/core/src/lib/media/media.service.ts index 0c3b5d01bf..895d971ee2 100644 --- a/packages/core/src/lib/media/media.service.ts +++ b/packages/core/src/lib/media/media.service.ts @@ -72,10 +72,6 @@ export class MediaService { isMobile(): boolean { const media = this.getMedia(); - if (media === 'mobile') { - return true; - } else { - return false; - } + return media === 'mobile'; } } From d96ffc6f9e8d26985be9fa7fea2f0be71232226b Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 11 Sep 2020 10:52:57 -0400 Subject: [PATCH 73/90] refactor(workspace) function name in lowercase --- packages/geo/src/lib/workspace/shared/workspace.utils.ts | 2 +- .../src/lib/workspace/shared/feature-actions.service.ts | 4 ++-- .../src/lib/workspace/shared/wfs-actions.service.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/geo/src/lib/workspace/shared/workspace.utils.ts b/packages/geo/src/lib/workspace/shared/workspace.utils.ts index a0c00ce51a..91284adb28 100644 --- a/packages/geo/src/lib/workspace/shared/workspace.utils.ts +++ b/packages/geo/src/lib/workspace/shared/workspace.utils.ts @@ -11,7 +11,7 @@ export function mapExtentStrategyActiveToolTip(ws: WfsWorkspace | FeatureWorkspa ); } -export function FeatureMotionStrategyActiveToolTip(ws: WfsWorkspace | FeatureWorkspace): Observable { +export function featureMotionStrategyActiveToolTip(ws: WfsWorkspace | FeatureWorkspace): Observable { return ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy).active$.pipe( map((active: boolean) => active ? 'igo.geo.workspace.zoomAuto.tooltip' : 'igo.geo.workspace.zoomAuto.tooltip') ); diff --git a/packages/integration/src/lib/workspace/shared/feature-actions.service.ts b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts index aad12a1c06..0c4b754152 100644 --- a/packages/integration/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts @@ -6,7 +6,7 @@ import { BehaviorSubject, Subscription } from 'rxjs'; import { FeatureWorkspace, mapExtentStrategyActiveToolTip, - FeatureMotionStrategyActiveToolTip, + featureMotionStrategyActiveToolTip, FeatureStoreSelectionStrategy, FeatureMotion, noElementSelected, @@ -105,7 +105,7 @@ export class FeatureActionsService implements OnDestroy { id: 'zoomAuto', checkbox: true, title: 'igo.geo.workspace.zoomAuto.title', - tooltip: FeatureMotionStrategyActiveToolTip(workspace), + tooltip: featureMotionStrategyActiveToolTip(workspace), checkCondition: this.zoomAuto$, handler: () => { this.handleZoomAuto(workspace); diff --git a/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts index fce3feab9c..4f6d56d59e 100644 --- a/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts @@ -5,7 +5,7 @@ import { BehaviorSubject, Subscription } from 'rxjs'; import { WfsWorkspace, mapExtentStrategyActiveToolTip, - FeatureMotionStrategyActiveToolTip, + featureMotionStrategyActiveToolTip, FeatureStoreSelectionStrategy, FeatureMotion, noElementSelected, @@ -113,7 +113,7 @@ export class WfsActionsService implements OnDestroy { id: 'zoomAuto', checkbox: true, title: 'igo.geo.workspace.zoomAuto.title', - tooltip: FeatureMotionStrategyActiveToolTip(workspace), + tooltip: featureMotionStrategyActiveToolTip(workspace), checkCondition: this.zoomAuto$, handler: () => { this.handleZoomAuto(workspace); From d6f919e6709ccc0f762505bfa5621a7c256fdce8 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Fri, 11 Sep 2020 10:53:22 -0400 Subject: [PATCH 74/90] typo --- .../lib/import-export/import-export/import-export.component.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/geo/src/lib/import-export/import-export/import-export.component.ts b/packages/geo/src/lib/import-export/import-export/import-export.component.ts index 6b7bbb21c8..57c6d72afe 100644 --- a/packages/geo/src/lib/import-export/import-export/import-export.component.ts +++ b/packages/geo/src/lib/import-export/import-export/import-export.component.ts @@ -317,7 +317,6 @@ export class ImportExportComponent implements OnDestroy, OnInit { } handleExportFormSubmit(data: ExportOptions) { - console.log('data', data, this.form); this.loading$.next(true); data.layers.forEach((layer) => { const lay = this.map.getLayerById(layer); From 886c1142daf56c1da3b2ea52af594d1081b30e75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Barbeau?= Date: Fri, 11 Sep 2020 14:36:11 -0400 Subject: [PATCH 75/90] Update entity-table-paginator.component.scss remove z-index --- .../entity-table-paginator/entity-table-paginator.component.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.scss b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.scss index eec324121f..5f7aa78779 100644 --- a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.scss +++ b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.scss @@ -1,7 +1,6 @@ @import '../../../../../core/src/style/partial/media'; :host{ - z-index:-999; margin-top: -10px; padding-right: 15px; From 9a88f47dc5e51b4cc2a3f3f17ab412ee460b2b5f Mon Sep 17 00:00:00 2001 From: PE Lord Date: Mon, 14 Sep 2020 10:23:22 -0400 Subject: [PATCH 76/90] fix(entity-table) table datasource was not refeshed on store change. --- .../entity-table/entity-table.component.ts | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/packages/common/src/lib/entity/entity-table/entity-table.component.ts b/packages/common/src/lib/entity/entity-table/entity-table.component.ts index 58130cceed..e150fae38e 100644 --- a/packages/common/src/lib/entity/entity-table/entity-table.component.ts +++ b/packages/common/src/lib/entity/entity-table/entity-table.component.ts @@ -6,7 +6,9 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, OnInit, - OnDestroy + OnDestroy, + OnChanges, + SimpleChanges } from '@angular/core'; import { BehaviorSubject, Subscription } from 'rxjs'; @@ -32,7 +34,7 @@ import { EntityTablePaginatorOptions } from '../entity-table-paginator/entity-ta styleUrls: ['./entity-table.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) -export class EntityTableComponent implements OnInit, OnDestroy { +export class EntityTableComponent implements OnInit, OnChanges, OnDestroy { entitySortChange$: BehaviorSubject = new BehaviorSubject(false); @@ -200,13 +202,32 @@ export class EntityTableComponent implements OnInit, OnDestroy { this.dataSource.paginator = this.paginator; } + /** + * @internal + */ + ngOnChanges(changes: SimpleChanges) { + const store = changes.store; + if (store && store.currentValue !== store.previousValue) { + this.unsubscribeDatasource(); + this.dataSource$$ = this.store.stateView.all$().subscribe((all) => { + this.dataSource.data = all; + }); + } + } + /** * Unbind the store watcher * @internal */ ngOnDestroy() { this.selection$$.unsubscribe(); - this.dataSource$$.unsubscribe(); + this.unsubscribeDatasource(); + } + + private unsubscribeDatasource() { + if (this.dataSource$$) { + this.dataSource$$.unsubscribe(); + } } /** From 23ab0c8b12726705dce3a4604e4b317f62f31859 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Mon, 14 Sep 2020 11:56:00 -0400 Subject: [PATCH 77/90] fix(entity-table) on store change subscription and management --- .../entity-table/entity-table.component.ts | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/packages/common/src/lib/entity/entity-table/entity-table.component.ts b/packages/common/src/lib/entity/entity-table/entity-table.component.ts index e150fae38e..68cddb6721 100644 --- a/packages/common/src/lib/entity/entity-table/entity-table.component.ts +++ b/packages/common/src/lib/entity/entity-table/entity-table.component.ts @@ -133,7 +133,7 @@ export class EntityTableComponent implements OnInit, OnChanges, OnDestroy { }>(); /** - * Event emitted when an entity (row) is selected + * Event emitted when the table sort is changed. */ @Output() entitySortChange: EventEmitter<{column: EntityTableColumn, direction: string}> = new EventEmitter(undefined); @@ -190,15 +190,7 @@ export class EntityTableComponent implements OnInit, OnChanges, OnDestroy { * @internal */ ngOnInit() { - this.selection$$ = this.store.stateView - .manyBy$((record: EntityRecord) => record.state.selected === true) - .subscribe((records: EntityRecord[]) => { - this.selectionState$.next(this.computeSelectionState(records)); - }); - - this.dataSource$$ = this.store.stateView.all$().subscribe((all) => { - this.dataSource.data = all; - }); + this.handleDatasource(); this.dataSource.paginator = this.paginator; } @@ -208,23 +200,35 @@ export class EntityTableComponent implements OnInit, OnChanges, OnDestroy { ngOnChanges(changes: SimpleChanges) { const store = changes.store; if (store && store.currentValue !== store.previousValue) { - this.unsubscribeDatasource(); - this.dataSource$$ = this.store.stateView.all$().subscribe((all) => { - this.dataSource.data = all; - }); + this.handleDatasource(); } } + private handleDatasource() { + this.unsubscribeStore(); + this.selection$$ = this.store.stateView + .manyBy$((record: EntityRecord) => record.state.selected === true) + .subscribe((records: EntityRecord[]) => { + this.selectionState$.next(this.computeSelectionState(records)); + }); + this.dataSource$$ = this.store.stateView.all$().subscribe((all) => { + this.dataSource.data = all; + }); + + } + /** * Unbind the store watcher * @internal */ ngOnDestroy() { - this.selection$$.unsubscribe(); - this.unsubscribeDatasource(); + this.unsubscribeStore(); } - private unsubscribeDatasource() { + private unsubscribeStore() { + if (this.selection$$) { + this.selection$$.unsubscribe(); + } if (this.dataSource$$) { this.dataSource$$.unsubscribe(); } From 0831f370303a5af81c41536187469b78310ccaf4 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Mon, 14 Sep 2020 11:56:47 -0400 Subject: [PATCH 78/90] feat(entity-table) change the pageIndex if the selected entity is not in the current page. --- .../entity/entity-table/entity-table.component.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/common/src/lib/entity/entity-table/entity-table.component.ts b/packages/common/src/lib/entity/entity-table/entity-table.component.ts index 68cddb6721..7dd3dcec27 100644 --- a/packages/common/src/lib/entity/entity-table/entity-table.component.ts +++ b/packages/common/src/lib/entity/entity-table/entity-table.component.ts @@ -209,6 +209,18 @@ export class EntityTableComponent implements OnInit, OnChanges, OnDestroy { this.selection$$ = this.store.stateView .manyBy$((record: EntityRecord) => record.state.selected === true) .subscribe((records: EntityRecord[]) => { + const firstSelected = records[0]; + const firstSelectedStateviewPosition = this.store.stateView.all().indexOf(firstSelected); + const pageMax = this.paginator.pageSize * (this.paginator.pageIndex + 1); + const pageMin = pageMax - this.paginator.pageSize; + + if ( + this.paginator && + firstSelectedStateviewPosition < pageMin || + firstSelectedStateviewPosition >= pageMax) { + const pageToReach = Math.floor(firstSelectedStateviewPosition / this.paginator.pageSize); + this.dataSource.paginator.pageIndex = pageToReach; + } this.selectionState$.next(this.computeSelectionState(records)); }); this.dataSource$$ = this.store.stateView.all$().subscribe((all) => { From 9042faf5767c56318032d5930df0f1a954b73040 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Mon, 14 Sep 2020 13:54:14 -0400 Subject: [PATCH 79/90] wip lint --- packages/geo/src/lib/layer/shared/layers/vector-layer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/geo/src/lib/layer/shared/layers/vector-layer.ts b/packages/geo/src/lib/layer/shared/layers/vector-layer.ts index 8fb0dee325..914c282565 100644 --- a/packages/geo/src/lib/layer/shared/layers/vector-layer.ts +++ b/packages/geo/src/lib/layer/shared/layers/vector-layer.ts @@ -225,7 +225,7 @@ export class VectorLayer extends Layer { * @param interceptor the interceptor of the data * @param extent the extent of the requested data * @param resolution the current resolution - * @param projection the projection to retrieve the data + * @param projection the projection to retrieve the data */ private customLoader(vectorSource, url, interceptor, extent, resolution, projection) { const xhr = new XMLHttpRequest(); From ae606ce2ea1fbb754166a3616508bee1aef6310c Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 16 Sep 2020 16:49:22 -0400 Subject: [PATCH 80/90] refactor(workspace) reorder the action list --- package.json | 1 + .../shared/feature-actions.service.ts | 55 ++++++------- .../workspace/shared/wfs-actions.service.ts | 80 +++++++++---------- 3 files changed, 69 insertions(+), 67 deletions(-) diff --git a/package.json b/package.json index 558171e251..c0775a35d2 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "build.integration": "ng build integration --prod && gulp integration", "build.demo": "ng build demo --prod", "build.doc": "compodoc -p tsconfig.json --disablePrivate --disableProtected --disableInternal --disableLifeCycleHooks --theme material", + "copy": "copy-newer --cwd dist ** \"..\\igo2\\node_modules\\@igo2", "doc": "npm run build.doc && compodoc -s --port 4220", "pretest": "ng lint", "test": "ng test --watch=false --browsers=ChromeHeadless", diff --git a/packages/integration/src/lib/workspace/shared/feature-actions.service.ts b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts index 0c4b754152..5f584850a6 100644 --- a/packages/integration/src/lib/workspace/shared/feature-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/feature-actions.service.ts @@ -64,6 +64,17 @@ export class FeatureActionsService implements OnDestroy { ); return [ + { + id: 'zoomAuto', + checkbox: true, + title: 'igo.geo.workspace.zoomAuto.title', + tooltip: featureMotionStrategyActiveToolTip(workspace), + checkCondition: this.zoomAuto$, + handler: () => { + this.handleZoomAuto(workspace); + this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean); + } + }, { id: 'filterInMapExtent', checkbox: true, @@ -85,33 +96,6 @@ export class FeatureActionsService implements OnDestroy { StorageScope.SESSION); } }, - { - id: 'featureDownload', - icon: 'download', - title: 'igo.geo.workspace.download.title', - tooltip: 'igo.geo.workspace.download.tooltip', - handler: (ws: FeatureWorkspace) => { - const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); - const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy); - const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : []; - this.toolState.toolToActivateFromOptions({ - tool: 'importExport', - options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions - }); - }, - args: [workspace] - }, - { - id: 'zoomAuto', - checkbox: true, - title: 'igo.geo.workspace.zoomAuto.title', - tooltip: featureMotionStrategyActiveToolTip(workspace), - checkCondition: this.zoomAuto$, - handler: () => { - this.handleZoomAuto(workspace); - this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean); - } - }, { id: 'selectedOnly', checkbox: true, @@ -139,6 +123,23 @@ export class FeatureActionsService implements OnDestroy { args: [workspace], availability: (ws: FeatureWorkspace) => noElementSelected(ws) }, + { + id: 'featureDownload', + icon: 'download', + title: 'igo.geo.workspace.download.title', + tooltip: 'igo.geo.workspace.download.tooltip', + handler: (ws: FeatureWorkspace) => { + const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); + const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy); + const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : []; + this.toolState.toolToActivateFromOptions({ + tool: 'importExport', + options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions + }); + }, + args: [workspace] + } + ]; } diff --git a/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts index 4f6d56d59e..00c87fdaad 100644 --- a/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts +++ b/packages/integration/src/lib/workspace/shared/wfs-actions.service.ts @@ -63,6 +63,17 @@ export class WfsActionsService implements OnDestroy { } ); return [ + { + id: 'zoomAuto', + checkbox: true, + title: 'igo.geo.workspace.zoomAuto.title', + tooltip: featureMotionStrategyActiveToolTip(workspace), + checkCondition: this.zoomAuto$, + handler: () => { + this.handleZoomAuto(workspace); + this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean); + } + }, { id: 'filterInMapExtent', checkbox: true, @@ -80,46 +91,6 @@ export class WfsActionsService implements OnDestroy { this.storageService.set('rowsInMapExtent', !this.storageService.get('rowsInMapExtent') as boolean, StorageScope.SESSION); } }, - { - id: 'ogcFilter', - icon: 'filter', - title: 'igo.geo.workspace.ogcFilter.title', - tooltip: 'igo.geo.workspace.ogcFilter.tooltip', - handler: (widget: Widget, ws: WfsWorkspace) => { - ws.activateWidget(widget, { - map: ws.map, - layer: ws.layer - }); - }, - args: [this.ogcFilterWidget, workspace] - }, - { - id: 'wfsDownload', - icon: 'download', - title: 'igo.geo.workspace.download.title', - tooltip: 'igo.geo.workspace.download.tooltip', - handler: (ws: WfsWorkspace) => { - const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); - const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy); - const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : []; - this.toolState.toolToActivateFromOptions({ - tool: 'importExport', - options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions - }); - }, - args: [workspace] - }, - { - id: 'zoomAuto', - checkbox: true, - title: 'igo.geo.workspace.zoomAuto.title', - tooltip: featureMotionStrategyActiveToolTip(workspace), - checkCondition: this.zoomAuto$, - handler: () => { - this.handleZoomAuto(workspace); - this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean); - } - }, { id: 'selectedOnly', checkbox: true, @@ -147,6 +118,35 @@ export class WfsActionsService implements OnDestroy { args: [workspace], availability: (ws: WfsWorkspace) => noElementSelected(ws) }, + { + id: 'wfsDownload', + icon: 'download', + title: 'igo.geo.workspace.download.title', + tooltip: 'igo.geo.workspace.download.tooltip', + handler: (ws: WfsWorkspace) => { + const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy); + const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy); + const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : []; + this.toolState.toolToActivateFromOptions({ + tool: 'importExport', + options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions + }); + }, + args: [workspace] + }, + { + id: 'ogcFilter', + icon: 'filter', + title: 'igo.geo.workspace.ogcFilter.title', + tooltip: 'igo.geo.workspace.ogcFilter.tooltip', + handler: (widget: Widget, ws: WfsWorkspace) => { + ws.activateWidget(widget, { + map: ws.map, + layer: ws.layer + }); + }, + args: [this.ogcFilterWidget, workspace] + }, ]; } From 9a072e65ddd8e6db70b3f6520001828bf47f2c6b Mon Sep 17 00:00:00 2001 From: PE Lord Date: Wed, 16 Sep 2020 17:06:27 -0400 Subject: [PATCH 81/90] wip --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index c0775a35d2..558171e251 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,6 @@ "build.integration": "ng build integration --prod && gulp integration", "build.demo": "ng build demo --prod", "build.doc": "compodoc -p tsconfig.json --disablePrivate --disableProtected --disableInternal --disableLifeCycleHooks --theme material", - "copy": "copy-newer --cwd dist ** \"..\\igo2\\node_modules\\@igo2", "doc": "npm run build.doc && compodoc -s --port 4220", "pretest": "ng lint", "test": "ng test --watch=false --browsers=ChromeHeadless", From b815d678a966bdd5cba46a73f77cb32ab715d6b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Barbeau?= Date: Wed, 16 Sep 2020 17:09:24 -0400 Subject: [PATCH 82/90] padding --- .../src/lib/entity/entity-table/entity-table.component.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/common/src/lib/entity/entity-table/entity-table.component.scss b/packages/common/src/lib/entity/entity-table/entity-table.component.scss index 3b71c28fd0..b4fae1ef5a 100644 --- a/packages/common/src/lib/entity/entity-table/entity-table.component.scss +++ b/packages/common/src/lib/entity/entity-table/entity-table.component.scss @@ -28,6 +28,10 @@ word-wrap: break-word; } +th.mat-header-cell, td.mat-cell, td.mat-footer-cell { + padding: 0 3px; +} + entity-table table.igo-entity-table-with-selection tr:hover { -moz-box-shadow: 2px 0px 2px 0px #dddddd; -webkit-box-shadow: 2px 0px 2px 0px #dddddd; From d5c17e0cdfc96bd8c37b88bff56989e61b53ba68 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 17 Sep 2020 12:37:41 -0400 Subject: [PATCH 83/90] feat(spatial-filter) add a table view on results --- .../spatial-filter-item.component.html | 4 ++++ .../spatial-filter-item.component.scss | 5 +++++ .../spatial-filter-item.component.ts | 2 ++ .../spatial-filter-tool.component.html | 4 +++- .../spatial-filter-tool.component.ts | 18 +++++++++++++----- 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.html b/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.html index 9ab0d69ad4..7b2b9ebc51 100644 --- a/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.html +++ b/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.html @@ -129,6 +129,10 @@ {{'igo.geo.spatialFilter.exportLayer' | translate}} + +
diff --git a/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.scss b/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.scss index 05f47402b4..f4925199fd 100644 --- a/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.scss +++ b/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.scss @@ -66,6 +66,11 @@ width: 150px; } +.workspace-button { + left: 10px; + width: 150px; +} + .thematics { max-height: 150px; overflow: auto; diff --git a/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.ts b/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.ts index e81ac9134a..89fa93689d 100644 --- a/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.ts +++ b/packages/geo/src/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.ts @@ -149,6 +149,8 @@ export class SpatialFilterItemComponent implements OnDestroy, OnInit { @Output() export = new EventEmitter(); + @Output() openWorkspace = new EventEmitter(); + public itemType: SpatialFilterItemType[] = [SpatialFilterItemType.Address, SpatialFilterItemType.Thematics]; public selectedItemType: SpatialFilterItemType = SpatialFilterItemType.Address; public selectedSourceAddress; diff --git a/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.html b/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.html index 5472fb9737..8a93594240 100644 --- a/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.html +++ b/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.html @@ -24,7 +24,9 @@ (toggleSearch)="getOutputToggleSearch()" (clearButtonEvent)="layers = $event" (clearSearchEvent)="getOutputClearSearch()" - (export)="activateExportTool()"> + (export)="activateExportTool()" + (openWorkspace)="activateWorkspace()" + > diff --git a/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts b/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts index 86af0770dd..e6fe231d15 100644 --- a/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts +++ b/packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts @@ -31,6 +31,7 @@ import { ImportExportState } from './../../import-export/import-export.state'; import * as olstyle from 'ol/style'; import { MessageService, LanguageService } from '@igo2/core'; import { ToolState } from '../../tool/tool.state'; +import { WorkspaceState } from '../../workspace/workspace.state'; /** * Tool to apply spatial filter @@ -86,7 +87,8 @@ export class SpatialFilterToolComponent { private messageService: MessageService, private languageService: LanguageService, private importExportState: ImportExportState, - private toolState: ToolState + private toolState: ToolState, + private workspaceState: WorkspaceState ) {} getOutputType(event: SpatialFilterType) { @@ -112,6 +114,12 @@ export class SpatialFilterToolComponent { this.toolState.toolbox.activateTool('importExport'); } + activateWorkspace() { + const layerToOpenWks = this.layers.filter(layer => !layer.title?.startsWith('Zone'))[0]; + this.workspaceState.workspacePanelExpanded = true; + this.workspaceState.setActiveWorkspaceByLayerId(layerToOpenWks.id); + } + private loadFilterList() { this.spatialFilterService .loadFilterList(this.queryType) @@ -242,13 +250,13 @@ export class SpatialFilterToolComponent { ) { return; } - if (layer.title.startsWith('Zone')) { + if (layer.title?.startsWith('Zone')) { this.map.removeLayer(layer); } } } for (const layer of this.map.layers) { - if (layer.title.startsWith('Zone')) { + if (layer.title?.startsWith('Zone')) { i++; } } @@ -316,7 +324,7 @@ export class SpatialFilterToolComponent { return; } for (const layer of this.map.layers) { - if (layer.title.startsWith(features[0].meta.title)) { + if (layer.title?.startsWith(features[0].meta.title)) { i++; } } @@ -392,7 +400,7 @@ export class SpatialFilterToolComponent { return; } for (const layer of this.map.layers) { - if (layer.title.startsWith(features[0].meta.title)) { + if (layer.title?.startsWith(features[0].meta.title)) { i++; } } From 532c26722e7891d51c117cfedbef9b6dbbf99686 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 17 Sep 2020 12:38:50 -0400 Subject: [PATCH 84/90] fix(workspace) inMapExtent strategy deletion on layer deletion. --- .../workspace-selector/workspace-selector.directive.ts | 4 +++- .../workspace-updator/workspace-updator.directive.ts | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts index d02fe6fa1c..906ac5f927 100644 --- a/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-selector/workspace-selector.directive.ts @@ -1,4 +1,4 @@ -import { Directive, Input, OnInit, OnDestroy, Output, EventEmitter } from '@angular/core'; +import { Directive, Input, OnInit, OnDestroy } from '@angular/core'; import { Subscription } from 'rxjs'; import { debounceTime } from 'rxjs/operators'; @@ -13,6 +13,7 @@ import { OgcFilterableDataSourceOptions } from '../../filter'; import { WfsWorkspaceService } from '../shared/wfs-workspace.service'; // import { WmsWorkspaceService } from '../shared/wms-workspace.service'; import { FeatureWorkspaceService } from '../shared/feature-workspace.service'; +import { FeatureStoreInMapExtentStrategy } from '../../feature/shared/strategies/in-map-extent'; @Directive({ selector: '[igoWorkspaceSelector]' @@ -65,6 +66,7 @@ export class WorkspaceSelectorDirective implements OnInit, OnDestroy { if (workspacesToRemove.length > 0) { workspacesToRemove.forEach((workspace: Workspace) => { + workspace.entityStore.deactivateStrategyOfType(FeatureStoreInMapExtentStrategy); workspace.deactivate(); }); this.workspaceStore.state.updateMany(workspacesToRemove, {active: false, selected: false}); diff --git a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts index 4a5bd3ba7f..82cfc9064a 100644 --- a/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts +++ b/packages/geo/src/lib/workspace/workspace-updator/workspace-updator.directive.ts @@ -13,6 +13,7 @@ import { OgcFilterableDataSourceOptions } from '../../filter'; import { WfsWorkspaceService } from '../shared/wfs-workspace.service'; // import { WmsWorkspaceService } from '../shared/wms-workspace.service'; import { FeatureWorkspaceService } from '../shared/feature-workspace.service'; +import { FeatureStoreInMapExtentStrategy } from '../../feature/shared/strategies/in-map-extent'; @Directive({ selector: '[igoWorkspaceUpdator]' @@ -62,6 +63,7 @@ export class WorkspaceUpdatorDirective implements OnInit, OnDestroy { if (workspacesToRemove.length > 0) { workspacesToRemove.forEach((workspace: Workspace) => { + workspace.entityStore.deactivateStrategyOfType(FeatureStoreInMapExtentStrategy); workspace.deactivate(); }); this.workspaceStore.state.updateMany(workspacesToRemove, {active: false, selected: false}); From 56fcac4b91164d972b6dc4af7916f7051994db87 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 17 Sep 2020 13:03:39 -0400 Subject: [PATCH 85/90] fix(context-import-export) only show to user the layers shown in layer list. --- .../context-import-export/context-import-export.component.html | 2 +- .../context-import-export/context-import-export.component.ts | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html index 917ad93237..e16bdc0d3c 100644 --- a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html +++ b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html @@ -50,7 +50,7 @@

{{'igo.geo.importExportForm.importClarifications' | translate}}

{{'igo.context.contextImportExport.export.exportSelectAll' | translate}} - {{layer.title}} + {{layer.title}}
diff --git a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts index 87671becfc..de1bf623fd 100644 --- a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts +++ b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts @@ -29,6 +29,7 @@ export class ContextImportExportComponent implements OnInit { public loading$ = new BehaviorSubject(false); public forceNaming = false; public layerList: Layer[]; + public userControledLayerList: Layer[]; public res: DetailedContext; private clientSideFileSizeMax: number; public fileSizeMb: number; @@ -56,6 +57,7 @@ export class ContextImportExportComponent implements OnInit { (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2); this.fileSizeMb = this.clientSideFileSizeMax / Math.pow(1024, 2); this.layerList = this.contextService.getContextLayers(this.map); + this.userControledLayerList = this.layerList.filter(layer => layer.showInLayerList); } importFiles(files: File[]) { From ca33ee32c8c87aa732f04d70a0daed509bdde719 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 17 Sep 2020 13:05:44 -0400 Subject: [PATCH 86/90] typo --- .../context-import-export.component.html | 2 +- .../context-import-export/context-import-export.component.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html index e16bdc0d3c..c61db0c551 100644 --- a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html +++ b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html @@ -50,7 +50,7 @@

{{'igo.geo.importExportForm.importClarifications' | translate}}

{{'igo.context.contextImportExport.export.exportSelectAll' | translate}} - {{layer.title}} + {{layer.title}} diff --git a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts index de1bf623fd..695e3eaf2d 100644 --- a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts +++ b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts @@ -29,7 +29,7 @@ export class ContextImportExportComponent implements OnInit { public loading$ = new BehaviorSubject(false); public forceNaming = false; public layerList: Layer[]; - public userControledLayerList: Layer[]; + public userControlledLayerList: Layer[]; public res: DetailedContext; private clientSideFileSizeMax: number; public fileSizeMb: number; @@ -57,7 +57,7 @@ export class ContextImportExportComponent implements OnInit { (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2); this.fileSizeMb = this.clientSideFileSizeMax / Math.pow(1024, 2); this.layerList = this.contextService.getContextLayers(this.map); - this.userControledLayerList = this.layerList.filter(layer => layer.showInLayerList); + this.userControlledLayerList = this.layerList.filter(layer => layer.showInLayerList); } importFiles(files: File[]) { From 7f638d72e803572afed1b6be58cb732314a6872b Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 17 Sep 2020 13:06:43 -0400 Subject: [PATCH 87/90] wip --- .../context-import-export/context-import-export.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts index 695e3eaf2d..d88e2ca7df 100644 --- a/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts +++ b/packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts @@ -130,7 +130,7 @@ export class ContextImportExportComponent implements OnInit { selectAll(e) { if (e._selected) { - this.form.controls.layers.setValue(this.layerList); + this.form.controls.layers.setValue(this.userControlledLayerList); e._selected = true; } if (e._selected === false) { From 167167ce25d7c6658d2980943b5e6df15c1425fb Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 17 Sep 2020 15:35:47 -0400 Subject: [PATCH 88/90] fix(layer add) preview conflict with layer add (1st attempt to fix) --- .../catalog-browser/catalog-browser-layer.component.ts | 8 +++++++- .../search-results/search-results-add-button.component.ts | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/geo/src/lib/catalog/catalog-browser/catalog-browser-layer.component.ts b/packages/geo/src/lib/catalog/catalog-browser/catalog-browser-layer.component.ts index d47953c2bd..9187d5a012 100644 --- a/packages/geo/src/lib/catalog/catalog-browser/catalog-browser-layer.component.ts +++ b/packages/geo/src/lib/catalog/catalog-browser/catalog-browser-layer.component.ts @@ -33,6 +33,8 @@ export class CatalogBrowserLayerComponent implements OnInit { public layerLegendShown$: BehaviorSubject = new BehaviorSubject(false); public igoLayer$ = new BehaviorSubject(undefined); + private mouseInsideAdd: boolean = false; + @Input() resolution: number; @Input() catalogAllowLegend = false; @@ -100,7 +102,9 @@ export class CatalogBrowserLayerComponent implements OnInit { if (typeof this.lastTimeoutRequest !== 'undefined') { clearTimeout(this.lastTimeoutRequest); } - + if (event.type === 'mouseenter' && this.mouseInsideAdd ) { + return; + } switch (event.type) { case 'click': if (!this.isPreview$.value) { @@ -119,12 +123,14 @@ export class CatalogBrowserLayerComponent implements OnInit { this.isPreview$.next(true); }, 500); } + this.mouseInsideAdd = true; break; case 'mouseleave': if (this.isPreview$.value) { this.remove(); this.isPreview$.next(false); } + this.mouseInsideAdd = false; break; default: break; diff --git a/packages/geo/src/lib/search/search-results/search-results-add-button.component.ts b/packages/geo/src/lib/search/search-results/search-results-add-button.component.ts index 96c016b727..81dff4c140 100644 --- a/packages/geo/src/lib/search/search-results/search-results-add-button.component.ts +++ b/packages/geo/src/lib/search/search-results/search-results-add-button.component.ts @@ -34,6 +34,8 @@ export class SearchResultAddButtonComponent implements OnInit, OnDestroy { private lastTimeoutRequest; + private mouseInsideAdd: boolean = false; + @Input() layer: SearchResult; /** @@ -94,6 +96,9 @@ export class SearchResultAddButtonComponent implements OnInit, OnDestroy { clearTimeout(this.lastTimeoutRequest); } + if (event.type === 'mouseenter' && this.mouseInsideAdd ) { + return; + } switch (event.type) { case 'click': if (!this.isPreview$.value) { @@ -112,12 +117,14 @@ export class SearchResultAddButtonComponent implements OnInit, OnDestroy { this.isPreview$.next(true); }, 500); } + this.mouseInsideAdd = true; break; case 'mouseleave': if (this.isPreview$.value) { this.remove(); this.isPreview$.next(false); } + this.mouseInsideAdd = false; break; default: break; From b2edef5981ade1da0efe4e07dfb83c542ad70052 Mon Sep 17 00:00:00 2001 From: PE Lord Date: Thu, 17 Sep 2020 21:02:18 -0400 Subject: [PATCH 89/90] refactor(entity-table-paginator) removing icons for mobile --- .../entity-table-paginator.component.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts index 66f3fd480d..7ce41c790f 100644 --- a/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts +++ b/packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts @@ -59,7 +59,7 @@ export class EntityTablePaginatorComponent implements OnChanges, OnDestroy { */ @Output() paginatorChange: EventEmitter = new EventEmitter(); - constructor(private languageService: LanguageService) {} + constructor(private languageService: LanguageService, private mediaService: MediaService) {} @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; @@ -83,13 +83,13 @@ export class EntityTablePaginatorComponent implements OnChanges, OnDestroy { this.pageIndex = this.paginatorOptions?.pageIndex || this.pageIndex; this.pageSize = this.paginatorOptions?.pageSize || this.pageSize; this.pageSizeOptions = this.paginatorOptions?.pageSizeOptions || this.pageSizeOptions; - /*if (this.mediaService.isMobile()) { + if (this.mediaService.isMobile()) { this.showFirstLastButtons = false; this.hidePageSize = true; - } else {*/ - this.showFirstLastButtons = this.paginatorOptions?.showFirstLastButtons || this.showFirstLastButtons; - this.hidePageSize = this.paginatorOptions?.hidePageSize || this.hidePageSize; - // } + } else { + this.showFirstLastButtons = this.paginatorOptions?.showFirstLastButtons || this.showFirstLastButtons; + this.hidePageSize = this.paginatorOptions?.hidePageSize || this.hidePageSize; + } } translateLabels() { From 4094e9f28d5a717416799f8ac8f6b7344519f85c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Barbeau?= Date: Mon, 21 Sep 2020 10:28:19 -0400 Subject: [PATCH 90/90] lint --- .../geo/src/lib/layer/layer-legend/layer-legend.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/geo/src/lib/layer/layer-legend/layer-legend.component.ts b/packages/geo/src/lib/layer/layer-legend/layer-legend.component.ts index 4bc20d20f6..d17387e842 100644 --- a/packages/geo/src/lib/layer/layer-legend/layer-legend.component.ts +++ b/packages/geo/src/lib/layer/layer-legend/layer-legend.component.ts @@ -165,7 +165,7 @@ export class LayerLegendComponent implements OnInit, OnDestroy { if (layerOptions && layerOptions.legendOptions) { const translate = this.languageService.translate; const title = translate.instant('igo.geo.layer.legend.default'); - let stylesAvailable = [{ name: '', title } as ItemStyleOptions]; + const stylesAvailable = [{ name: '', title } as ItemStyleOptions]; if (layerOptions.legendOptions.stylesAvailable) { stylesAvailable.concat(layerOptions.legendOptions.stylesAvailable.filter(sA => ( sA.name.normalize('NFD').replace(/[\u0300-\u036f]/gi, '') !== 'default' &&