From 4162b4f664f01f26711823ee76d949c3bf4ec623 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Tue, 11 May 2021 13:08:17 +0200 Subject: [PATCH 01/17] Added a new DocumentModel --- package.json | 25 +- src/editor.ts | 285 --------- src/factory.ts | 68 +- src/index.ts | 14 +- src/model.ts | 105 +++ src/panel.ts | 471 ++++++++++++++ src/widget.ts | 630 +++++++----------- yarn.lock | 1646 +++++++++++++++++++++++++++++------------------- 8 files changed, 1875 insertions(+), 1369 deletions(-) delete mode 100644 src/editor.ts create mode 100644 src/model.ts create mode 100644 src/panel.ts diff --git a/package.json b/package.json index 20cea799..dfd2f8eb 100644 --- a/package.json +++ b/package.json @@ -45,19 +45,26 @@ "watch:src": "tsc -w" }, "dependencies": { - "@jupyterlab/application": "^3.0.6", - "@jupyterlab/apputils": "^3.0.5", - "@jupyterlab/coreutils": "^5.0.3", - "@jupyterlab/docregistry": "^3.0.6", - "@jupyterlab/filebrowser": "^3.0.6", - "@jupyterlab/launcher": "^3.0.5", - "@jupyterlab/mainmenu": "^3.0.5", + "@jupyterlab/application": "^3.1.0-alpha.7", + "@jupyterlab/apputils": "^3.1.0-alpha.7", + "@jupyterlab/coreutils": "^5.1.0-alpha.7", + "@jupyterlab/docregistry": "^3.1.0-alpha.7", + "@jupyterlab/filebrowser": "^3.1.0-alpha.7", + "@jupyterlab/launcher": "^3.1.0-alpha.7", + "@jupyterlab/mainmenu": "^3.1.0-alpha.7", + "@jupyterlab/observables": "^4.1.0-alpha.7", + "@jupyterlab/services": "~6.1.0-alpha.7", + "@jupyterlab/shared-models": "^3.1.0-alpha.7", + "@jupyterlab/ui-components": "^3.1.0-alpha.7", + "@lumino/commands": "^1.12.0", "@lumino/coreutils": "^1.5.3", - "@lumino/widgets": "^1.18.0" + "@lumino/signaling": "^1.4.3", + "@lumino/widgets": "^1.19.0", + "react": "^17.0.1", + "react-dom": "^17.0.1" }, "devDependencies": { "@jupyterlab/builder": "^3.0.5", - "@lumino/messaging": "^1.4.3", "@typescript-eslint/eslint-plugin": "^2.27.0", "@typescript-eslint/parser": "^2.27.0", "eslint": "^7.5.0", diff --git a/src/editor.ts b/src/editor.ts deleted file mode 100644 index 08e33944..00000000 --- a/src/editor.ts +++ /dev/null @@ -1,285 +0,0 @@ -// Copyright 2018 Wolf Vollprecht -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import { DocumentRegistry, DocumentWidget } from '@jupyterlab/docregistry'; - -import { MainMenu, JupyterLabMenu } from '@jupyterlab/mainmenu'; - -import { IChangedArgs, PathExt } from '@jupyterlab/coreutils'; - -import { undoIcon, redoIcon } from '@jupyterlab/ui-components'; - -import { CommandRegistry } from '@lumino/commands'; - -import { Signal } from '@lumino/signaling'; - -import { DrawIOWidget } from './widget'; - -import { DrawIOToolbarButton } from './toolbar'; - -import { - formatPanelIcon, - plusIcon, - zoominIcon, - zoomoutIcon, - deleteIcon, - toFrontIcon, - toBackIcon, - fillColorIcon, - strokeColorIcon, - shadowIcon -} from './icons'; - -const DIRTY_CLASS = 'jp-mod-dirty'; - -export class DrawIODocumentWidget extends DocumentWidget { - constructor(options: DrawIODocumentWidget.IOptions) { - super(options); - // Adding the buttons to the widget toolbar - // Modify containers style: line ~92700 - // modulated.js, line: 84246 - // actions: modulated.js line: ~93000 - // actions: modulated.js line: ~111000 - - this._commands = options.commands; - this._menubar = new MainMenu(this._commands); - - this._menubar.clearMenus(); - this.toolbar.addClass('dio-toolbar'); - - //TODO: - // Add toolbar actions to change the default style of arrows and conections. - this._menuView = new JupyterLabMenu({ commands: this._commands }); - this._menuView.menu.title.caption = 'View (Space+Drag to Scroll)'; - this._menuView.menu.title.icon = formatPanelIcon; - this._menubar.addMenu(this._menuView.menu, { rank: 1 }); - - this._menuZoom = new JupyterLabMenu({ commands: this._commands }); - //TODO: Change label to a view percentage - this._menuZoom.menu.title.label = 'Zoom'; - this._menuZoom.menu.title.caption = 'Zoom (Alt+Mousewheel)'; - this._menubar.addMenu(this._menuZoom.menu, { rank: 2 }); - - this._menuInsert = new JupyterLabMenu({ commands: this._commands }); - this._menuInsert.menu.title.caption = 'Insert'; - this._menuInsert.menu.title.icon = plusIcon; - this._menubar.addMenu(this._menuInsert.menu, { rank: 2 }); - - this.context.ready.then(async value => { - await this.content.ready.promise; - - this._onTitleChanged(); - this._addToolbarItems(); - this.content.setContent(this.context.model.toString()); - this._handleDirtyStateNew(); - - this.context.pathChanged.connect(this._onTitleChanged, this); - //this.context.model.contentChanged.connect(this._onContentChanged, this); - this.context.model.stateChanged.connect( - this._onModelStateChangedNew, - this - ); - this.content.graphChanged.connect(this._saveToContext, this); - }); - } - - /** - * Dispose of the resources held by the widget. - */ - dispose(): void { - Signal.clearData(this); - super.dispose(); - } - - /** - * A promise that resolves when the csv viewer is ready. - */ - get ready(): Promise { - return this.content.ready.promise; - } - - public getSVG(): string { - return ''; //this.mx.mxUtils.getXml(this._editor.editor.graph.getSvg()); - } - - public getAction(action: string): any { - return this.content.getAction(action); - } - - public execute(action: string): void { - this.content.getAction(action).funct(); - } - - public toggleCellStyles(flip: string): void { - this.content.toggleCellStyles(flip); - } - - public alignCells(align: string): void { - this.content.alignCells(align); - } - - public distributeCells(horizontal: boolean): void { - this.content.distributeCells(horizontal); - } - - public layoutFlow(direction: string): void { - this.content.layoutFlow(direction); - } - - public horizontalTree(): void { - this.content.horizontalTree(); - } - - public verticalTree(): void { - this.content.verticalTree(); - } - - public radialTree(): void { - this.content.radialTree(); - } - - public organic(): void { - this.content.organic(); - } - - public circle(): void { - this.content.circle(); - } - - /** - * Handle a change to the title. - */ - private _onTitleChanged(): void { - this.title.label = PathExt.basename(this.context.localPath); - } - - /* private _onContentChanged(): void { - this.content.setContent(this.context.model.toString()); - } */ - - private _saveToContext(emiter: DrawIOWidget, content: string): void { - this.context.model.fromString(content); - } - - private _onModelStateChangedNew( - sender: DocumentRegistry.IModel, - args: IChangedArgs - ): void { - if (args.name === 'dirty') { - this._handleDirtyStateNew(); - } - } - - private _handleDirtyStateNew(): void { - if (this.context.model.dirty) { - this.title.className += ` ${DIRTY_CLASS}`; - } else { - this.title.className = this.title.className.replace(DIRTY_CLASS, ''); - } - } - - private _addToolbarItems(): void { - const actions = this.content.getActions(); - - // Menu view - this._menuView.addGroup([ - { command: 'drawio:command/formatPanel' }, - { command: 'drawio:command/outline' }, - { command: 'drawio:command/layers' } - ]); - - // Menu Zoom - this._menuZoom.addGroup([ - { command: 'drawio:command/resetView' }, - { command: 'drawio:command/fitWindow' }, - { command: 'drawio:command/fitPageWidth' }, - { command: 'drawio:command/fitPage' }, - { command: 'drawio:command/fitTwoPages' }, - { command: 'drawio:command/customZoom' } - ]); - - // Menu insert - this._menuInsert.addGroup([ - { command: 'drawio:command/insertLink' }, - { command: 'drawio:command/insertImage' } - ]); - - this.toolbar.addItem('ViewDropdown', this._menubar); - - actions['zoomIn'].icon = zoominIcon; - actions['zoomIn'].tooltip = 'Zoom In (Ctrl+(Numpad)/Alt+Mousewheel)'; - this.toolbar.addItem('zoomIn', new DrawIOToolbarButton(actions['zoomIn'])); - - actions['zoomOut'].icon = zoomoutIcon; - actions['zoomOut'].tooltip = 'Zoom Out (Ctrl-(Numpad)/Alt+Mousewheel)'; - this.toolbar.addItem( - 'zoomOut', - new DrawIOToolbarButton(actions['zoomOut']) - ); - - actions['undo'].icon = undoIcon; - actions['fillColor'].tooltip = 'Undo (Ctrl+Z)'; - this.toolbar.addItem('undo', new DrawIOToolbarButton(actions['undo'])); - - actions['redo'].icon = redoIcon; - actions['redo'].tooltip = 'Redo (Ctrl+Shift+Z)'; - this.toolbar.addItem('redo', new DrawIOToolbarButton(actions['redo'])); - - actions['delete'].icon = deleteIcon; - actions['delete'].tooltip = 'Delete'; - this.toolbar.addItem('delete', new DrawIOToolbarButton(actions['delete'])); - - actions['toFront'].icon = toFrontIcon; - actions['toFront'].tooltip = 'To Front (Ctrl+Shift+F)'; - this.toolbar.addItem( - 'toFront', - new DrawIOToolbarButton(actions['toFront']) - ); - - actions['toBack'].icon = toBackIcon; - actions['toBack'].tooltip = 'To Back (Ctrl+Shift+B)'; - this.toolbar.addItem('toBack', new DrawIOToolbarButton(actions['toBack'])); - - actions['fillColor'].icon = fillColorIcon; - actions['fillColor'].tooltip = 'Fill Color'; - this.toolbar.addItem( - 'fillColor', - new DrawIOToolbarButton(actions['fillColor']) - ); - - actions['strokeColor'].icon = strokeColorIcon; - actions['strokeColor'].tooltip = 'Fill Stroke Color'; - this.toolbar.addItem( - 'strokeColor', - new DrawIOToolbarButton(actions['strokeColor']) - ); - - actions['shadow'].icon = shadowIcon; - actions['shadow'].tooltip = 'Shadow'; - this.toolbar.addItem('shadow', new DrawIOToolbarButton(actions['shadow'])); - } - - private _commands: CommandRegistry; - private _menubar: MainMenu; - private _menuView: JupyterLabMenu; - private _menuZoom: JupyterLabMenu; - private _menuInsert: JupyterLabMenu; -} - -export namespace DrawIODocumentWidget { - export interface IOptions - extends DocumentWidget.IOptions { - commands: CommandRegistry; - } -} diff --git a/src/factory.ts b/src/factory.ts index 8894d527..60f0c87c 100644 --- a/src/factory.ts +++ b/src/factory.ts @@ -1,28 +1,34 @@ import { ABCWidgetFactory, DocumentRegistry } from '@jupyterlab/docregistry'; +import { IModelDB } from '@jupyterlab/observables'; + +import { Contents } from '@jupyterlab/services'; + import { CommandRegistry } from '@lumino/commands'; -import { DrawIODocumentWidget } from './editor'; +import { DrawIODocumentWidget } from './widget'; + +import { DrawIODocumentModel } from './model'; -import { DrawIOWidget } from './widget'; +import { DrawIOWidget } from './panel'; /** * A widget factory for drawio. */ -export class DrawIOFactory extends ABCWidgetFactory< +export class DrawIOWidgetFactory extends ABCWidgetFactory< DrawIODocumentWidget, - DocumentRegistry.IModel + DrawIODocumentModel > { /** * Create a new widget given a context. */ - constructor(options: DrawIOFactory.IDrawIOFactoryOptions) { + constructor(options: DrawIOWidgetFactory.IDrawIOFactoryOptions) { super(options); this._commands = options.commands; } protected createNewWidget( - context: DocumentRegistry.Context + context: DocumentRegistry.IContext ): DrawIODocumentWidget { return new DrawIODocumentWidget({ context, @@ -34,9 +40,57 @@ export class DrawIOFactory extends ABCWidgetFactory< private _commands: CommandRegistry; } -export namespace DrawIOFactory { +export namespace DrawIOWidgetFactory { export interface IDrawIOFactoryOptions extends DocumentRegistry.IWidgetFactoryOptions { commands: CommandRegistry; } } + +export class DrawIODocumentModelFactory + implements DocumentRegistry.IModelFactory { + + constructor() {} + + /** + * The name of the model. + */ + get name(): string { + return 'dio'; + } + + /** + * The content type of the file. + */ + get contentType(): Contents.ContentType { + return 'file'; + } + + /** + * The format of the file. + */ + get fileFormat(): Contents.FileFormat { + return 'text'; + } + + /** + * Get whether the model factory has been disposed. + */ + get isDisposed(): boolean { + return this._disposed; + } + + dispose(): void { + this._disposed = true; + } + + preferredLanguage(path: string): string { + return ''; + } + + createNew(languagePreference?: string, modelDB?: IModelDB): DrawIODocumentModel { + return new DrawIODocumentModel(languagePreference, modelDB); + } + + private _disposed = false; +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 115f9bdd..90d7ab40 100644 --- a/src/index.ts +++ b/src/index.ts @@ -46,9 +46,9 @@ import { shadowIcon } from './icons'; -import { DrawIODocumentWidget } from './editor'; +import { DrawIODocumentWidget } from './widget'; -import { DrawIOFactory } from './factory'; +import { DrawIOWidgetFactory, DrawIODocumentModelFactory } from './factory'; /** * The name of the factory that creates editor widgets. @@ -93,14 +93,15 @@ function activate( name: widget => widget.context.path }); - const factory = new DrawIOFactory({ + const widgetFactory = new DrawIOWidgetFactory({ name: FACTORY, + modelName: 'dio', fileTypes: ['dio', 'drawio'], defaultFor: ['dio', 'drawio'], commands: app.commands }); - factory.widgetCreated.connect((sender, widget) => { + widgetFactory.widgetCreated.connect((sender, widget) => { widget.title.icon = 'jp-MaterialIcon jp-ImageIcon'; // TODO change // Notify the instance tracker if restore data needs to update. @@ -109,7 +110,10 @@ function activate( }); tracker.add(widget); }); - app.docRegistry.addWidgetFactory(factory); + app.docRegistry.addWidgetFactory(widgetFactory); + + const modelFactory = new DrawIODocumentModelFactory(); + app.docRegistry.addModelFactory(modelFactory); // register the filetype app.docRegistry.addFileType({ diff --git a/src/model.ts b/src/model.ts new file mode 100644 index 00000000..9a0ca34c --- /dev/null +++ b/src/model.ts @@ -0,0 +1,105 @@ +// Copyright 2018 Wolf Vollprecht +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { DocumentRegistry } from '@jupyterlab/docregistry'; + +import { ISharedDocument, YFile } from '@jupyterlab/shared-models'; + +import { IChangedArgs } from '@jupyterlab/coreutils'; + +import { IModelDB, ModelDB } from '@jupyterlab/observables'; + +import { PartialJSONValue, ReadonlyPartialJSONValue } from '@lumino/coreutils'; + +import { ISignal, Signal } from '@lumino/signaling'; + + +export class DrawIODocumentModel implements DocumentRegistry.IModel { + + /** + * Construct a new DrawIODocumentModel. + */ + constructor(languagePreference?: string, modelDB?: IModelDB) { + this.modelDB = modelDB || new ModelDB(); + console.debug(this.modelDB); + } + + get dirty(): boolean { + return this._dirty; + } + set dirty(value: boolean) { + this._dirty = value; + } + + get readOnly(): boolean { + return this._readOnly; + } + set readOnly(value: boolean) { + this._readOnly = value; + } + + get isDisposed(): boolean { + return this._isDisposed; + } + + get contentChanged(): ISignal { + return this._contentChanged; + } + + get stateChanged(): ISignal> { + return this._stateChanged; + } + + readonly defaultKernelName: string; + + readonly defaultKernelLanguage: string; + + readonly modelDB: IModelDB; + + readonly sharedModel: ISharedDocument = YFile.create(); + + dispose(): void { + this._isDisposed = true; + } + + toString(): string { + // TODO: Return content from shared model + console.warn("toString(): Not implemented"); + return ''; + } + + fromString(value: string): void { + // TODO: Add content to shared model + console.warn("fromString(): Not implemented"); + } + + toJSON(): PartialJSONValue { + // TODO: Return content from shared model + console.warn("toJSON(): Not implemented"); + return {}; + } + + fromJSON(value: ReadonlyPartialJSONValue): void { + // TODO: Add content to shared model + console.warn("fromJSON(): Not implemented"); + } + + initialize(): void {} + + private _dirty = false; + private _readOnly = false; + private _isDisposed = false; + private _contentChanged = new Signal(this); + private _stateChanged = new Signal>(this); +} diff --git a/src/panel.ts b/src/panel.ts new file mode 100644 index 00000000..203c14bf --- /dev/null +++ b/src/panel.ts @@ -0,0 +1,471 @@ +import { Widget } from '@lumino/widgets'; + +import { Signal, ISignal } from '@lumino/signaling'; + +import { PromiseDelegate } from '@lumino/coreutils'; + +/* + This is a typing-only import. If you use it directly, the mxgraph content + will be included in the main JupyterLab js bundle. +*/ +// @ts-ignore +import * as MX from './drawio/modulated.js'; + +import './drawio/css/common.css'; + +import './drawio/styles/grapheditor.css'; + +import { grapheditorTxt, defaultXml } from './pack'; + +const w = window as any; +const webPath = + 'https://raw.githubusercontent.com/jgraph/mxgraph/master/javascript/examples/grapheditor/www/'; + +w.RESOURCES_BASE = webPath + 'resources/'; +w.STENCIL_PATH = webPath + 'stencils/'; +w.IMAGE_PATH = webPath + 'images/'; +w.STYLE_PATH = webPath + 'styles/'; +w.CSS_PATH = webPath + 'styles/'; +w.OPEN_FORM = webPath + 'open.html'; + +// w.mxBasePath = "http://localhost:8000/src/mxgraph/javascript/src/"; +//w.imageBasePath = 'http://localhost:8000/src/mxgraph/javascript/'; +w.mxLoadStylesheets = false; // disable loading stylesheets +w.mxLoadResources = false; + +/** + * A DrawIO layout. + */ +export class DrawIOWidget extends Widget { + /** + * Construct a `GridStackLayout`. + * + * @param info - The `DashboardView` metadata. + */ + constructor() { + super(); + void Private.ensureMx().then(mx => this._loadDrawIO(mx)); + //this._loadDrawIO(MX); + } + + /** + * Dispose of the resources held by the widget. + */ + dispose(): void { + Signal.clearData(this); + this._editor.destroy(); + super.dispose(); + } + + /** + * A promise that resolves when the csv viewer is ready. + */ + get ready(): PromiseDelegate { + return this._ready; + } + + get graphChanged(): ISignal { + return this._graphChanged; + } + + get mx(): any { + return this._mx; + } + + get editor(): any { + return this._editor; + } + + get graph(): any { + return this._editor.editor.graph; + } + + getAction(action: string): any { + return this._editor.actions.actions[action]; + } + + getActions(): any { + return this._editor.actions.actions; + } + + setContent(newValue: string): void { + if (this._editor === undefined) { + return; + } + + const oldValue = this._mx.mxUtils.getXml(this._editor.editor.getGraphXml()); + + if (oldValue !== newValue && !this._editor.editor.graph.isEditing()) { + if (newValue.length) { + const xml = this._mx.mxUtils.parseXml(newValue); + this._editor.editor.setGraphXml(xml.documentElement); + } + } + } + + //Direction + public toggleCellStyles(flip: string): void { + let styleFlip = this._editor.mx.mxConstants.STYLE_FLIPH; + switch (flip) { + case 'flipH': + styleFlip = this._editor.mx.mxConstants.STYLE_FLIPH; + break; + case 'flipV': + styleFlip = this._editor.mx.mxConstants.STYLE_FLIPV; + break; + } + this._editor.graph.toggleCellStyles(styleFlip, false); + } + + //Align + public alignCells(align: string): void { + if (this._editor.graph.isEnabled()) { + let pos = this._editor.mx.mxConstants.ALIGN_CENTER; + switch (align) { + case 'alignCellsLeft': + pos = this._editor.mx.mxConstants.ALIGN_LEFT; + break; + case 'alignCellsCenter': + pos = this._editor.mx.mxConstants.ALIGN_CENTER; + break; + case 'alignCellsRight': + pos = this._editor.mx.mxConstants.ALIGN_RIGHT; + break; + case 'alignCellsTop': + pos = this._editor.mx.mxConstants.ALIGN_TOP; + break; + case 'alignCellsMiddle': + pos = this._editor.mx.mxConstants.ALIGN_MIDDLE; + break; + case 'alignCellsBottom': + pos = this._editor.mx.mxConstants.ALIGN_BOTTOM; + break; + } + this._editor.graph.alignCells(pos); + } + } + + //Distribute + //drawio:command/horizontal + //drawio:command/vertical + public distributeCells(horizontal: boolean): void { + this._editor.graph.distributeCells(horizontal); + } + + //Layout + //drawio:command/horizontalFlow + //drawio:command/verticalFlow + public layoutFlow(direction: string): void { + let directionFlow = this._editor.mx.mxConstants.DIRECTION_WEST; + switch (direction) { + case 'horizontalFlow': + directionFlow = this._editor.mx.mxConstants.DIRECTION_WEST; + break; + case 'verticalFlow': + directionFlow = this._editor.mx.mxConstants.DIRECTION_NORTH; + break; + } + + const mxHierarchicalLayout = this._editor.mx.mxHierarchicalLayout; + const layout = new mxHierarchicalLayout(this._editor.graph, directionFlow); + + this._editor.editor.executeLayout(() => { + const selectionCells = this._editor.graph.getSelectionCells(); + layout.execute( + this._editor.graph.getDefaultParent(), + selectionCells.length === 0 ? null : selectionCells + ); + }, true); + } + + public horizontalTree(): void { + let tmp = this._editor.graph.getSelectionCell(); + let roots = null; + + if ( + tmp === null || + this._editor.graph.getModel().getChildCount(tmp) === 0 + ) { + if (this._editor.graph.getModel().getEdgeCount(tmp) === 0) { + roots = this._editor.graph.findTreeRoots( + this._editor.graph.getDefaultParent() + ); + } + } else { + roots = this._editor.graph.findTreeRoots(tmp); + } + + if (roots !== null && roots.length > 0) { + tmp = roots[0]; + } + + if (tmp !== null) { + const mxCompactTreeLayout = this._editor.mx.mxCompactTreeLayout; + const layout = new mxCompactTreeLayout(this._editor.graph, true); + layout.edgeRouting = false; + layout.levelDistance = 30; + + this._promptSpacing( + layout.levelDistance, + this._editor.mx.mxUtils.bind(this, (newValue: any) => { + layout.levelDistance = newValue; + + this._editor.editor.executeLayout(() => { + layout.execute(this._editor.graph.getDefaultParent(), tmp); + }, true); + }) + ); + } + } + + public verticalTree(): void { + let tmp = this._editor.graph.getSelectionCell(); + let roots = null; + + if ( + tmp === null || + this._editor.graph.getModel().getChildCount(tmp) === 0 + ) { + if (this._editor.graph.getModel().getEdgeCount(tmp) === 0) { + roots = this._editor.graph.findTreeRoots( + this._editor.graph.getDefaultParent() + ); + } + } else { + roots = this._editor.graph.findTreeRoots(tmp); + } + + if (roots !== null && roots.length > 0) { + tmp = roots[0]; + } + + if (tmp !== null) { + const mxCompactTreeLayout = this._editor.mx.mxCompactTreeLayout; + const layout = new mxCompactTreeLayout(this._editor.graph, false); + layout.edgeRouting = false; + layout.levelDistance = 30; + + this._promptSpacing( + layout.levelDistance, + this._editor.mx.mxUtils.bind(this, (newValue: any) => { + layout.levelDistance = newValue; + + this._editor.editor.executeLayout(() => { + layout.execute(this._editor.graph.getDefaultParent(), tmp); + }, true); + }) + ); + } + } + + public radialTree(): void { + let tmp = this._editor.graph.getSelectionCell(); + let roots = null; + + if ( + tmp === null || + this._editor.graph.getModel().getChildCount(tmp) === 0 + ) { + if (this._editor.graph.getModel().getEdgeCount(tmp) === 0) { + roots = this._editor.graph.findTreeRoots( + this._editor.graph.getDefaultParent() + ); + } + } else { + roots = this._editor.graph.findTreeRoots(tmp); + } + + if (roots !== null && roots.length > 0) { + tmp = roots[0]; + } + + if (tmp !== null) { + const mxRadialTreeLayout = this._editor.mx.mxRadialTreeLayout; + const layout = new mxRadialTreeLayout(this._editor.graph, false); + layout.levelDistance = 80; + layout.autoRadius = true; + + this._promptSpacing( + layout.levelDistance, + this._editor.mx.mxUtils.bind(this, (newValue: any) => { + layout.levelDistance = newValue; + + this._editor.editor.executeLayout(() => { + layout.execute(this._editor.graph.getDefaultParent(), tmp); + + if (!this._editor.graph.isSelectionEmpty()) { + tmp = this._editor.graph.getModel().getParent(tmp); + + if (this._editor.graph.getModel().isVertex(tmp)) { + this._editor.graph.updateGroupBounds( + [tmp], + this._editor.graph.gridSize * 2, + true + ); + } + } + }, true); + }) + ); + } + } + + public organic(): void { + const mxFastOrganicLayout = this._editor.mx.mxFastOrganicLayout; + const layout = new mxFastOrganicLayout(this._editor.graph); + + this._promptSpacing( + layout.forceConstant, + this._editor.mx.mxUtils.bind(this, (newValue: any) => { + layout.forceConstant = newValue; + + this._editor.editor.executeLayout(() => { + let tmp = this._editor.graph.getSelectionCell(); + + if ( + tmp === null || + this._editor.graph.getModel().getChildCount(tmp) === 0 + ) { + tmp = this._editor.graph.getDefaultParent(); + } + + layout.execute(tmp); + + if (this._editor.graph.getModel().isVertex(tmp)) { + this._editor.graph.updateGroupBounds( + [tmp], + this._editor.graph.gridSize * 2, + true + ); + } + }, true); + }) + ); + } + + public circle(): void { + const mxCircleLayout = this._editor.mx.mxCircleLayout; + const layout = new mxCircleLayout(this._editor.graph); + + this._editor.editor.executeLayout(() => { + let tmp = this._editor.graph.getSelectionCell(); + + if ( + tmp === null || + this._editor.graph.getModel().getChildCount(tmp) === 0 + ) { + tmp = this._editor.graph.getDefaultParent(); + } + + layout.execute(tmp); + + if (this._editor.graph.getModel().isVertex(tmp)) { + this._editor.graph.updateGroupBounds( + [tmp], + this._editor.graph.gridSize * 2, + true + ); + } + }, true); + } + + private _loadDrawIO(mx: Private.MX): void { + this._mx = mx; + + // Adds required resources (disables loading of fallback properties, this can only + // be used if we know that all keys are defined in the language specific file) + this._mx.mxResources.loadDefaultBundle = false; + + // Fixes possible asynchronous requests + this._mx.mxResources.parse(grapheditorTxt); + const oParser = new DOMParser(); + const oDOM = oParser.parseFromString(defaultXml, 'text/xml'); + const themes: any = new Object(null); + themes[(this._mx.Graph as any).prototype.defaultThemeName] = + oDOM.documentElement; + + // Workaround for TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature + const Editor: any = this._mx.Editor; + this._editor = new this._mx.EditorUi(new Editor(false, themes), this.node); + this._editor.refresh(); + + this._editor.editor.graph.model.addListener( + this._mx.mxEvent.NOTIFY, + (sender: any, evt: any) => { + const changes: any[] = evt.properties.changes; + for (let i = 0; i < changes.length; i++) { + if (changes[i].root) { + return; + } + } + + if (this._editor.editor.graph.isEditing()) { + this._editor.editor.graph.stopEditing(); + } + + const graph = this._editor.editor.getGraphXml(); + const xml = this._mx.mxUtils.getXml(graph); + this._graphChanged.emit(xml); + } + ); + + this._promptSpacing = this._mx.mxUtils.bind( + this, + (defaultValue: any, fn: any) => { + const FilenameDialog = this._mx.FilenameDialog; + const dlg = new FilenameDialog( + this._editor.editor, + defaultValue, + this._mx.mxResources.get('apply'), + (newValue: any) => { + fn(parseFloat(newValue)); + }, + this._mx.mxResources.get('spacing') + ); + this._editor.editor.showDialog(dlg.container, 300, 80, true, true); + dlg.init(); + } + ); + + this._ready.resolve(void 0); + } + + private _editor: any; + private _mx: Private.MX; + private _promptSpacing: any; + private _ready = new PromiseDelegate(); + private _graphChanged = new Signal(this); +} + +/** + * A namespace for module-level concerns like loading mxgraph + */ + +namespace Private { + export type MX = typeof MX; + + let _mx: typeof MX; + let _mxLoading: PromiseDelegate; + + /** + * Asynchronously load the mx bundle, or return it if already available + */ + export async function ensureMx(): Promise { + if (_mx) { + return _mx; + } + + if (_mxLoading) { + return await _mxLoading.promise; + } + + _mxLoading = new PromiseDelegate(); + /*eslint-disable */ + // @ts-ignore + _mx = await import('./drawio/modulated.js'); + /*eslint-enable */ + + _mxLoading.resolve(_mx); + return _mx; + } +} diff --git a/src/widget.ts b/src/widget.ts index 203c14bf..82a80465 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -1,51 +1,99 @@ -import { Widget } from '@lumino/widgets'; - -import { Signal, ISignal } from '@lumino/signaling'; - -import { PromiseDelegate } from '@lumino/coreutils'; - -/* - This is a typing-only import. If you use it directly, the mxgraph content - will be included in the main JupyterLab js bundle. -*/ -// @ts-ignore -import * as MX from './drawio/modulated.js'; - -import './drawio/css/common.css'; - -import './drawio/styles/grapheditor.css'; - -import { grapheditorTxt, defaultXml } from './pack'; - -const w = window as any; -const webPath = - 'https://raw.githubusercontent.com/jgraph/mxgraph/master/javascript/examples/grapheditor/www/'; - -w.RESOURCES_BASE = webPath + 'resources/'; -w.STENCIL_PATH = webPath + 'stencils/'; -w.IMAGE_PATH = webPath + 'images/'; -w.STYLE_PATH = webPath + 'styles/'; -w.CSS_PATH = webPath + 'styles/'; -w.OPEN_FORM = webPath + 'open.html'; - -// w.mxBasePath = "http://localhost:8000/src/mxgraph/javascript/src/"; -//w.imageBasePath = 'http://localhost:8000/src/mxgraph/javascript/'; -w.mxLoadStylesheets = false; // disable loading stylesheets -w.mxLoadResources = false; - -/** - * A DrawIO layout. - */ -export class DrawIOWidget extends Widget { - /** - * Construct a `GridStackLayout`. - * - * @param info - The `DashboardView` metadata. - */ - constructor() { - super(); - void Private.ensureMx().then(mx => this._loadDrawIO(mx)); - //this._loadDrawIO(MX); +// Copyright 2018 Wolf Vollprecht +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { DocumentRegistry, DocumentWidget } from '@jupyterlab/docregistry'; + +import { MainMenu, JupyterLabMenu } from '@jupyterlab/mainmenu'; + +import { IChangedArgs, PathExt } from '@jupyterlab/coreutils'; + +import { undoIcon, redoIcon } from '@jupyterlab/ui-components'; + +import { CommandRegistry } from '@lumino/commands'; + +import { Signal } from '@lumino/signaling'; + +import { DrawIODocumentModel } from './model'; + +import { DrawIOWidget } from './panel'; + +import { DrawIOToolbarButton } from './toolbar'; + +import { + formatPanelIcon, + plusIcon, + zoominIcon, + zoomoutIcon, + deleteIcon, + toFrontIcon, + toBackIcon, + fillColorIcon, + strokeColorIcon, + shadowIcon +} from './icons'; + +const DIRTY_CLASS = 'jp-mod-dirty'; + +export class DrawIODocumentWidget extends DocumentWidget { + constructor(options: DrawIODocumentWidget.IOptions) { + super(options); + // Adding the buttons to the widget toolbar + // Modify containers style: line ~92700 + // modulated.js, line: 84246 + // actions: modulated.js line: ~93000 + // actions: modulated.js line: ~111000 + + this._commands = options.commands; + this._menubar = new MainMenu(this._commands); + + this._menubar.clearMenus(); + this.toolbar.addClass('dio-toolbar'); + + //TODO: + // Add toolbar actions to change the default style of arrows and conections. + this._menuView = new JupyterLabMenu({ commands: this._commands }); + this._menuView.menu.title.caption = 'View (Space+Drag to Scroll)'; + this._menuView.menu.title.icon = formatPanelIcon; + this._menubar.addMenu(this._menuView.menu, { rank: 1 }); + + this._menuZoom = new JupyterLabMenu({ commands: this._commands }); + //TODO: Change label to a view percentage + this._menuZoom.menu.title.label = 'Zoom'; + this._menuZoom.menu.title.caption = 'Zoom (Alt+Mousewheel)'; + this._menubar.addMenu(this._menuZoom.menu, { rank: 2 }); + + this._menuInsert = new JupyterLabMenu({ commands: this._commands }); + this._menuInsert.menu.title.caption = 'Insert'; + this._menuInsert.menu.title.icon = plusIcon; + this._menubar.addMenu(this._menuInsert.menu, { rank: 2 }); + + this.context.ready.then(async value => { + await this.content.ready.promise; + + this._onTitleChanged(); + this._addToolbarItems(); + this.content.setContent(this.context.model.toString()); + this._handleDirtyStateNew(); + + this.context.pathChanged.connect(this._onTitleChanged, this); + this.context.model.contentChanged.connect(this._onContentChanged, this); + this.context.model.stateChanged.connect( + this._onModelStateChangedNew, + this + ); + this.content.graphChanged.connect(this._saveToContext, this); + }); } /** @@ -53,419 +101,187 @@ export class DrawIOWidget extends Widget { */ dispose(): void { Signal.clearData(this); - this._editor.destroy(); super.dispose(); } /** * A promise that resolves when the csv viewer is ready. */ - get ready(): PromiseDelegate { - return this._ready; + get ready(): Promise { + return this.content.ready.promise; } - get graphChanged(): ISignal { - return this._graphChanged; + public getSVG(): string { + return ''; //this.mx.mxUtils.getXml(this._editor.editor.graph.getSvg()); } - get mx(): any { - return this._mx; + public getAction(action: string): any { + return this.content.getAction(action); } - get editor(): any { - return this._editor; + public execute(action: string): void { + this.content.getAction(action).funct(); } - get graph(): any { - return this._editor.editor.graph; + public toggleCellStyles(flip: string): void { + this.content.toggleCellStyles(flip); } - getAction(action: string): any { - return this._editor.actions.actions[action]; + public alignCells(align: string): void { + this.content.alignCells(align); } - getActions(): any { - return this._editor.actions.actions; + public distributeCells(horizontal: boolean): void { + this.content.distributeCells(horizontal); } - setContent(newValue: string): void { - if (this._editor === undefined) { - return; - } - - const oldValue = this._mx.mxUtils.getXml(this._editor.editor.getGraphXml()); - - if (oldValue !== newValue && !this._editor.editor.graph.isEditing()) { - if (newValue.length) { - const xml = this._mx.mxUtils.parseXml(newValue); - this._editor.editor.setGraphXml(xml.documentElement); - } - } + public layoutFlow(direction: string): void { + this.content.layoutFlow(direction); } - //Direction - public toggleCellStyles(flip: string): void { - let styleFlip = this._editor.mx.mxConstants.STYLE_FLIPH; - switch (flip) { - case 'flipH': - styleFlip = this._editor.mx.mxConstants.STYLE_FLIPH; - break; - case 'flipV': - styleFlip = this._editor.mx.mxConstants.STYLE_FLIPV; - break; - } - this._editor.graph.toggleCellStyles(styleFlip, false); + public horizontalTree(): void { + this.content.horizontalTree(); } - //Align - public alignCells(align: string): void { - if (this._editor.graph.isEnabled()) { - let pos = this._editor.mx.mxConstants.ALIGN_CENTER; - switch (align) { - case 'alignCellsLeft': - pos = this._editor.mx.mxConstants.ALIGN_LEFT; - break; - case 'alignCellsCenter': - pos = this._editor.mx.mxConstants.ALIGN_CENTER; - break; - case 'alignCellsRight': - pos = this._editor.mx.mxConstants.ALIGN_RIGHT; - break; - case 'alignCellsTop': - pos = this._editor.mx.mxConstants.ALIGN_TOP; - break; - case 'alignCellsMiddle': - pos = this._editor.mx.mxConstants.ALIGN_MIDDLE; - break; - case 'alignCellsBottom': - pos = this._editor.mx.mxConstants.ALIGN_BOTTOM; - break; - } - this._editor.graph.alignCells(pos); - } + public verticalTree(): void { + this.content.verticalTree(); } - //Distribute - //drawio:command/horizontal - //drawio:command/vertical - public distributeCells(horizontal: boolean): void { - this._editor.graph.distributeCells(horizontal); + public radialTree(): void { + this.content.radialTree(); } - //Layout - //drawio:command/horizontalFlow - //drawio:command/verticalFlow - public layoutFlow(direction: string): void { - let directionFlow = this._editor.mx.mxConstants.DIRECTION_WEST; - switch (direction) { - case 'horizontalFlow': - directionFlow = this._editor.mx.mxConstants.DIRECTION_WEST; - break; - case 'verticalFlow': - directionFlow = this._editor.mx.mxConstants.DIRECTION_NORTH; - break; - } + public organic(): void { + this.content.organic(); + } - const mxHierarchicalLayout = this._editor.mx.mxHierarchicalLayout; - const layout = new mxHierarchicalLayout(this._editor.graph, directionFlow); + public circle(): void { + this.content.circle(); + } - this._editor.editor.executeLayout(() => { - const selectionCells = this._editor.graph.getSelectionCells(); - layout.execute( - this._editor.graph.getDefaultParent(), - selectionCells.length === 0 ? null : selectionCells - ); - }, true); + /** + * Handle a change to the title. + */ + private _onTitleChanged(): void { + this.title.label = PathExt.basename(this.context.localPath); } - public horizontalTree(): void { - let tmp = this._editor.graph.getSelectionCell(); - let roots = null; - - if ( - tmp === null || - this._editor.graph.getModel().getChildCount(tmp) === 0 - ) { - if (this._editor.graph.getModel().getEdgeCount(tmp) === 0) { - roots = this._editor.graph.findTreeRoots( - this._editor.graph.getDefaultParent() - ); - } - } else { - roots = this._editor.graph.findTreeRoots(tmp); - } + private _onContentChanged(): void { + this.content.setContent(this.context.model.toString()); + } - if (roots !== null && roots.length > 0) { - tmp = roots[0]; - } + private _saveToContext(emiter: DrawIOWidget, content: string): void { + this.context.model.fromString(content); + } - if (tmp !== null) { - const mxCompactTreeLayout = this._editor.mx.mxCompactTreeLayout; - const layout = new mxCompactTreeLayout(this._editor.graph, true); - layout.edgeRouting = false; - layout.levelDistance = 30; - - this._promptSpacing( - layout.levelDistance, - this._editor.mx.mxUtils.bind(this, (newValue: any) => { - layout.levelDistance = newValue; - - this._editor.editor.executeLayout(() => { - layout.execute(this._editor.graph.getDefaultParent(), tmp); - }, true); - }) - ); + private _onModelStateChangedNew( + sender: DocumentRegistry.IModel, + args: IChangedArgs + ): void { + if (args.name === 'dirty') { + this._handleDirtyStateNew(); } } - public verticalTree(): void { - let tmp = this._editor.graph.getSelectionCell(); - let roots = null; - - if ( - tmp === null || - this._editor.graph.getModel().getChildCount(tmp) === 0 - ) { - if (this._editor.graph.getModel().getEdgeCount(tmp) === 0) { - roots = this._editor.graph.findTreeRoots( - this._editor.graph.getDefaultParent() - ); - } + private _handleDirtyStateNew(): void { + if (this.context.model.dirty) { + this.title.className += ` ${DIRTY_CLASS}`; } else { - roots = this._editor.graph.findTreeRoots(tmp); - } - - if (roots !== null && roots.length > 0) { - tmp = roots[0]; - } - - if (tmp !== null) { - const mxCompactTreeLayout = this._editor.mx.mxCompactTreeLayout; - const layout = new mxCompactTreeLayout(this._editor.graph, false); - layout.edgeRouting = false; - layout.levelDistance = 30; - - this._promptSpacing( - layout.levelDistance, - this._editor.mx.mxUtils.bind(this, (newValue: any) => { - layout.levelDistance = newValue; - - this._editor.editor.executeLayout(() => { - layout.execute(this._editor.graph.getDefaultParent(), tmp); - }, true); - }) - ); + this.title.className = this.title.className.replace(DIRTY_CLASS, ''); } } - public radialTree(): void { - let tmp = this._editor.graph.getSelectionCell(); - let roots = null; - - if ( - tmp === null || - this._editor.graph.getModel().getChildCount(tmp) === 0 - ) { - if (this._editor.graph.getModel().getEdgeCount(tmp) === 0) { - roots = this._editor.graph.findTreeRoots( - this._editor.graph.getDefaultParent() - ); - } - } else { - roots = this._editor.graph.findTreeRoots(tmp); - } + private _addToolbarItems(): void { + const actions = this.content.getActions(); + + // Menu view + this._menuView.addGroup([ + { command: 'drawio:command/formatPanel' }, + { command: 'drawio:command/outline' }, + { command: 'drawio:command/layers' } + ]); + + // Menu Zoom + this._menuZoom.addGroup([ + { command: 'drawio:command/resetView' }, + { command: 'drawio:command/fitWindow' }, + { command: 'drawio:command/fitPageWidth' }, + { command: 'drawio:command/fitPage' }, + { command: 'drawio:command/fitTwoPages' }, + { command: 'drawio:command/customZoom' } + ]); + + // Menu insert + this._menuInsert.addGroup([ + { command: 'drawio:command/insertLink' }, + { command: 'drawio:command/insertImage' } + ]); + + this.toolbar.addItem('ViewDropdown', this._menubar); + + actions['zoomIn'].icon = zoominIcon; + actions['zoomIn'].tooltip = 'Zoom In (Ctrl+(Numpad)/Alt+Mousewheel)'; + this.toolbar.addItem('zoomIn', new DrawIOToolbarButton(actions['zoomIn'])); + + actions['zoomOut'].icon = zoomoutIcon; + actions['zoomOut'].tooltip = 'Zoom Out (Ctrl-(Numpad)/Alt+Mousewheel)'; + this.toolbar.addItem( + 'zoomOut', + new DrawIOToolbarButton(actions['zoomOut']) + ); - if (roots !== null && roots.length > 0) { - tmp = roots[0]; - } + actions['undo'].icon = undoIcon; + actions['fillColor'].tooltip = 'Undo (Ctrl+Z)'; + this.toolbar.addItem('undo', new DrawIOToolbarButton(actions['undo'])); - if (tmp !== null) { - const mxRadialTreeLayout = this._editor.mx.mxRadialTreeLayout; - const layout = new mxRadialTreeLayout(this._editor.graph, false); - layout.levelDistance = 80; - layout.autoRadius = true; - - this._promptSpacing( - layout.levelDistance, - this._editor.mx.mxUtils.bind(this, (newValue: any) => { - layout.levelDistance = newValue; - - this._editor.editor.executeLayout(() => { - layout.execute(this._editor.graph.getDefaultParent(), tmp); - - if (!this._editor.graph.isSelectionEmpty()) { - tmp = this._editor.graph.getModel().getParent(tmp); - - if (this._editor.graph.getModel().isVertex(tmp)) { - this._editor.graph.updateGroupBounds( - [tmp], - this._editor.graph.gridSize * 2, - true - ); - } - } - }, true); - }) - ); - } - } + actions['redo'].icon = redoIcon; + actions['redo'].tooltip = 'Redo (Ctrl+Shift+Z)'; + this.toolbar.addItem('redo', new DrawIOToolbarButton(actions['redo'])); - public organic(): void { - const mxFastOrganicLayout = this._editor.mx.mxFastOrganicLayout; - const layout = new mxFastOrganicLayout(this._editor.graph); - - this._promptSpacing( - layout.forceConstant, - this._editor.mx.mxUtils.bind(this, (newValue: any) => { - layout.forceConstant = newValue; - - this._editor.editor.executeLayout(() => { - let tmp = this._editor.graph.getSelectionCell(); - - if ( - tmp === null || - this._editor.graph.getModel().getChildCount(tmp) === 0 - ) { - tmp = this._editor.graph.getDefaultParent(); - } - - layout.execute(tmp); - - if (this._editor.graph.getModel().isVertex(tmp)) { - this._editor.graph.updateGroupBounds( - [tmp], - this._editor.graph.gridSize * 2, - true - ); - } - }, true); - }) + actions['delete'].icon = deleteIcon; + actions['delete'].tooltip = 'Delete'; + this.toolbar.addItem('delete', new DrawIOToolbarButton(actions['delete'])); + + actions['toFront'].icon = toFrontIcon; + actions['toFront'].tooltip = 'To Front (Ctrl+Shift+F)'; + this.toolbar.addItem( + 'toFront', + new DrawIOToolbarButton(actions['toFront']) ); - } - public circle(): void { - const mxCircleLayout = this._editor.mx.mxCircleLayout; - const layout = new mxCircleLayout(this._editor.graph); - - this._editor.editor.executeLayout(() => { - let tmp = this._editor.graph.getSelectionCell(); - - if ( - tmp === null || - this._editor.graph.getModel().getChildCount(tmp) === 0 - ) { - tmp = this._editor.graph.getDefaultParent(); - } - - layout.execute(tmp); - - if (this._editor.graph.getModel().isVertex(tmp)) { - this._editor.graph.updateGroupBounds( - [tmp], - this._editor.graph.gridSize * 2, - true - ); - } - }, true); - } + actions['toBack'].icon = toBackIcon; + actions['toBack'].tooltip = 'To Back (Ctrl+Shift+B)'; + this.toolbar.addItem('toBack', new DrawIOToolbarButton(actions['toBack'])); - private _loadDrawIO(mx: Private.MX): void { - this._mx = mx; - - // Adds required resources (disables loading of fallback properties, this can only - // be used if we know that all keys are defined in the language specific file) - this._mx.mxResources.loadDefaultBundle = false; - - // Fixes possible asynchronous requests - this._mx.mxResources.parse(grapheditorTxt); - const oParser = new DOMParser(); - const oDOM = oParser.parseFromString(defaultXml, 'text/xml'); - const themes: any = new Object(null); - themes[(this._mx.Graph as any).prototype.defaultThemeName] = - oDOM.documentElement; - - // Workaround for TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature - const Editor: any = this._mx.Editor; - this._editor = new this._mx.EditorUi(new Editor(false, themes), this.node); - this._editor.refresh(); - - this._editor.editor.graph.model.addListener( - this._mx.mxEvent.NOTIFY, - (sender: any, evt: any) => { - const changes: any[] = evt.properties.changes; - for (let i = 0; i < changes.length; i++) { - if (changes[i].root) { - return; - } - } - - if (this._editor.editor.graph.isEditing()) { - this._editor.editor.graph.stopEditing(); - } - - const graph = this._editor.editor.getGraphXml(); - const xml = this._mx.mxUtils.getXml(graph); - this._graphChanged.emit(xml); - } + actions['fillColor'].icon = fillColorIcon; + actions['fillColor'].tooltip = 'Fill Color'; + this.toolbar.addItem( + 'fillColor', + new DrawIOToolbarButton(actions['fillColor']) ); - this._promptSpacing = this._mx.mxUtils.bind( - this, - (defaultValue: any, fn: any) => { - const FilenameDialog = this._mx.FilenameDialog; - const dlg = new FilenameDialog( - this._editor.editor, - defaultValue, - this._mx.mxResources.get('apply'), - (newValue: any) => { - fn(parseFloat(newValue)); - }, - this._mx.mxResources.get('spacing') - ); - this._editor.editor.showDialog(dlg.container, 300, 80, true, true); - dlg.init(); - } + actions['strokeColor'].icon = strokeColorIcon; + actions['strokeColor'].tooltip = 'Fill Stroke Color'; + this.toolbar.addItem( + 'strokeColor', + new DrawIOToolbarButton(actions['strokeColor']) ); - this._ready.resolve(void 0); + actions['shadow'].icon = shadowIcon; + actions['shadow'].tooltip = 'Shadow'; + this.toolbar.addItem('shadow', new DrawIOToolbarButton(actions['shadow'])); } - private _editor: any; - private _mx: Private.MX; - private _promptSpacing: any; - private _ready = new PromiseDelegate(); - private _graphChanged = new Signal(this); + private _commands: CommandRegistry; + private _menubar: MainMenu; + private _menuView: JupyterLabMenu; + private _menuZoom: JupyterLabMenu; + private _menuInsert: JupyterLabMenu; } -/** - * A namespace for module-level concerns like loading mxgraph - */ - -namespace Private { - export type MX = typeof MX; - - let _mx: typeof MX; - let _mxLoading: PromiseDelegate; - - /** - * Asynchronously load the mx bundle, or return it if already available - */ - export async function ensureMx(): Promise { - if (_mx) { - return _mx; - } - - if (_mxLoading) { - return await _mxLoading.promise; - } - - _mxLoading = new PromiseDelegate(); - /*eslint-disable */ - // @ts-ignore - _mx = await import('./drawio/modulated.js'); - /*eslint-enable */ - - _mxLoading.resolve(_mx); - return _mx; +export namespace DrawIODocumentWidget { + export interface IOptions + extends DocumentWidget.IOptions { + commands: CommandRegistry; } } diff --git a/yarn.lock b/yarn.lock index 0d089eaf..907a1b21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,33 +9,33 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== "@babel/highlight@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" - integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.14.0" chalk "^2.0.0" js-tokens "^4.0.0" "@babel/runtime@^7.1.2": - version "7.13.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.7.tgz#d494e39d198ee9ca04f4dcb76d25d9d7a1dc961a" - integrity sha512-h+ilqoX998mRVM5FtB5ijRuHUDVt5l3yfoOi2uh18Z/O3hvyaHQ39NpxVkCIG5yFs+mLq/ewFp8Bss6zmWv6ZA== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== dependencies: regenerator-runtime "^0.13.4" -"@blueprintjs/core@^3.36.0", "@blueprintjs/core@^3.39.0": - version "3.39.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.39.0.tgz#77c13aea4e5285568b9ad76f69004567ea7d75e5" - integrity sha512-Pl92Qvfo0iowvJ81hOxfOXgBUuqHdMgtYao7hCvhF5hvz8wYRfOr1GHChVsiD5NvpNmG2rtUTYqkfft06Tyj5A== +"@blueprintjs/core@^3.36.0", "@blueprintjs/core@^3.44.2": + version "3.44.2" + resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.44.2.tgz#6b6502a7d26128ccf795b79a0c10aa6b9fd863f7" + integrity sha512-rxw0KU0Trdnf5HoILyWrEYpfubC1+VyfpbqcD4pG3iA79oGfo1q5x4S16YTeZpVXRm8VK3TBob4RDRXDd+/4PQ== dependencies: - "@blueprintjs/icons" "^3.24.0" + "@blueprintjs/icons" "^3.26.0" "@types/dom4" "^2.0.1" classnames "^2.2" dom4 "^2.1.5" @@ -47,20 +47,20 @@ resize-observer-polyfill "^1.5.1" tslib "~1.13.0" -"@blueprintjs/icons@^3.24.0": - version "3.24.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.24.0.tgz#aa7e6042e40806d22f85da8d62990ff0296adcf2" - integrity sha512-OvDDI5EUueS1Y3t594iS8LAGoHhLhYjC2GuN/01a85n+ASLSp0jf0/+uix2JeCOj41iTdRRCINbWuRwVQNNGPw== +"@blueprintjs/icons@^3.26.0": + version "3.26.0" + resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.26.0.tgz#d3f0aa0d35a9ebe8648db9651af364dfcc529d9f" + integrity sha512-1+yhYH1Fjj5qGx8drZUL2L1R42MiN0WVHTTKYqGEV9TAzhvFHCSZgALD7WNQa+FEibw/8B4U+79IRgUPJNEjow== dependencies: classnames "^2.2" tslib "~1.13.0" "@blueprintjs/select@^3.15.0": - version "3.15.5" - resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.15.5.tgz#f3448a21ff596a793c8949d8ac5068b1fcd70bbd" - integrity sha512-ZZaW60v7sKY2NIPvqG9PO+BAvbfeFvL/LQ6wNHias+T63Nk34NZrUx0a3MSELkTsJwdpZLZJLzH7c8zQANBOkg== + version "3.16.2" + resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.16.2.tgz#ac09710ebef14381c1c25e393a7d5bce76119558" + integrity sha512-/wcQTVwQNqesmi7ag/BFjBMla64HkwyvPRfYK0INwaIW08itjoATflAvw5QYRqqk6FeZ/OwGUOwoKS8oe5goDg== dependencies: - "@blueprintjs/core" "^3.39.0" + "@blueprintjs/core" "^3.44.2" classnames "^2.2" tslib "~1.13.0" @@ -69,10 +69,10 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== -"@eslint/eslintrc@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318" - integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== +"@eslint/eslintrc@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" + integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -81,14 +81,13 @@ ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" - lodash "^4.17.20" minimatch "^3.0.4" strip-json-comments "^3.1.1" "@fortawesome/fontawesome-free@^5.12.0": - version "5.15.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.2.tgz#218cd7276ab4f9ab57cc3d2efa2697e6a579f25d" - integrity sha512-7l/AX41m609L/EXI9EKH3Vs3v0iA8tKlIOGtw+kgcoanI7p+e4I4GYLqW3UXWiTnjSFymKSmTTPKYrivzbxxqA== + version "5.15.3" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.3.tgz#c36ffa64a2a239bf948541a97b6ae8d729e09a9a" + integrity sha512-rFnSUN/QOtnOAgqFRooTA3H57JLDm0QEG/jPdk+tLQNL/eWd+Aok8g3qCI+Q1xuDPWpGW/i9JySpJVsq8Q0s9w== "@hypnosphi/create-react-context@^0.3.1": version "0.3.1" @@ -98,23 +97,24 @@ gud "^1.0.0" warning "^4.0.3" -"@jupyterlab/application@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.0.6.tgz#9729bd42b24f0191859a34711d7e2f8353d371d1" - integrity sha512-BjFmJGciO984RkxV2ZUtr7z3VEquV+OI+mwzrlM80tUDvxMBjiTn8qUFeOGLnEf1t2MbEnxGXu1cnkpK6nUVNg== +"@jupyterlab/application@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.1.0-alpha.7.tgz#803f79328617b6ee311c94d004c11b7cecbba2ca" + integrity sha512-jdsjm9rds1csr8mogwo2h9wYG5WzJj962I6/Am1+heSR+5ec8ao67xIUeLPLYvJjL7/YlTpCO0FbKmednmFyLA== dependencies: "@fortawesome/fontawesome-free" "^5.12.0" - "@jupyterlab/apputils" "^3.0.5" - "@jupyterlab/coreutils" "^5.0.3" - "@jupyterlab/docregistry" "^3.0.6" - "@jupyterlab/rendermime" "^3.0.6" - "@jupyterlab/rendermime-interfaces" "^3.0.5" - "@jupyterlab/services" "^6.0.5" - "@jupyterlab/statedb" "^3.0.3" - "@jupyterlab/translation" "^3.0.5" - "@jupyterlab/ui-components" "^3.0.4" + "@jupyterlab/apputils" "^3.1.0-alpha.7" + "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/docmanager" "^3.1.0-alpha.7" + "@jupyterlab/docregistry" "^3.1.0-alpha.7" + "@jupyterlab/rendermime" "^3.1.0-alpha.7" + "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.7" + "@jupyterlab/services" "^6.1.0-alpha.7" + "@jupyterlab/statedb" "^3.1.0-alpha.7" + "@jupyterlab/translation" "^3.1.0-alpha.7" + "@jupyterlab/ui-components" "^3.1.0-alpha.7" "@lumino/algorithm" "^1.3.3" - "@lumino/application" "^1.13.1" + "@lumino/application" "^1.16.0" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -122,19 +122,19 @@ "@lumino/polling" "^1.3.3" "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" - "@lumino/widgets" "^1.16.1" - -"@jupyterlab/apputils@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.0.5.tgz#1eb682e20f5da98ea7c1d2b3909ea8c17565f607" - integrity sha512-m09ClizpX/rysqFvlVRVe683xmbG/Lk8d4TDXZDVmApNyWOLhsBHqfk+Im5WSQt2Oe2DiolwiiJXgZdWN57vag== - dependencies: - "@jupyterlab/coreutils" "^5.0.3" - "@jupyterlab/services" "^6.0.5" - "@jupyterlab/settingregistry" "^3.0.3" - "@jupyterlab/statedb" "^3.0.3" - "@jupyterlab/translation" "^3.0.5" - "@jupyterlab/ui-components" "^3.0.4" + "@lumino/widgets" "^1.19.0" + +"@jupyterlab/apputils@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.1.0-alpha.7.tgz#7245ebee743ccc137687e062cbba69107f817ba1" + integrity sha512-zRXw6LDlIFoH6N/Yc0FlmD0tHlKZAZlhQmvPl/5gRMOHu0QXPYJ+UQgDgTyXwCyyqIGNNs7yYMlFjwcQJVpW/w== + dependencies: + "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/services" "^6.1.0-alpha.7" + "@jupyterlab/settingregistry" "^3.1.0-alpha.7" + "@jupyterlab/statedb" "^3.1.0-alpha.7" + "@jupyterlab/translation" "^3.1.0-alpha.7" + "@jupyterlab/ui-components" "^3.1.0-alpha.7" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -144,20 +144,19 @@ "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" "@lumino/virtualdom" "^1.8.0" - "@lumino/widgets" "^1.16.1" + "@lumino/widgets" "^1.19.0" "@types/react" "^17.0.0" - buffer "^5.6.0" react "^17.0.1" react-dom "^17.0.1" - sanitize-html "~1.27.4" + sanitize-html "~2.3.3" url "^0.11.0" "@jupyterlab/builder@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/builder/-/builder-3.0.5.tgz#284a97aa8fc236761df694b9c051d82fe4a92a27" - integrity sha512-UmKPA+KS2ut+l7uMclJDmuHNuL41K3vfIRVFI1YvDJXsQszmotQqtvEyPpw3wKamy/1aXZSAlA/56hpY3qrg+Q== + version "3.0.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/builder/-/builder-3.0.8.tgz#132182cf61959f5b17110f5da035d0625acf318c" + integrity sha512-f5HPbH+oxxZGRt+/hxeuW/217cGyD2jCE2ksy8758WgQGspfQHSNWhshGgGufs/6PfUoKx8vIYY8dmPMn5WdeQ== dependencies: - "@jupyterlab/buildutils" "^3.0.3" + "@jupyterlab/buildutils" "^3.0.6" "@lumino/algorithm" "^1.3.3" "@lumino/application" "^1.13.1" "@lumino/commands" "^1.12.0" @@ -179,6 +178,7 @@ glob "~7.1.6" mini-css-extract-plugin "~1.3.2" path-browserify "^1.0.0" + process "^0.11.10" raw-loader "~4.0.0" style-loader "~2.0.0" supports-color "^7.2.0" @@ -191,10 +191,10 @@ webpack-merge "^5.1.2" worker-loader "^3.0.2" -"@jupyterlab/buildutils@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/buildutils/-/buildutils-3.0.3.tgz#b56a920cec69560e859eba5112e8b75c58e08d6d" - integrity sha512-sAk4BTcbP6ZP7N8WTEuZM4XfN7+KAwaqvvRX2rLwgeKhJeZkeFgidkGacXcGt3TuKQIgySins6UWejs68P8/Aw== +"@jupyterlab/buildutils@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/buildutils/-/buildutils-3.0.6.tgz#b9a0500c07581471266adc7dea03295d32d911fa" + integrity sha512-S6Hnop5A5KjCCHQt1ob3ABy1VQ94ssbRPsYa04R7mUjVQu5NsIS8Kd0O/+yqtuSaWIJOqCKhRZEev3rgG+dHqw== dependencies: "@lumino/coreutils" "^1.5.3" "@yarnpkg/lockfile" "^1.1.0" @@ -211,49 +211,52 @@ sort-package-json "~1.44.0" typescript "~4.1.3" -"@jupyterlab/codeeditor@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.0.5.tgz#20022ef1d76361b5ac0319b9ca23939e8f8c2521" - integrity sha512-O1eWSyP4k/MZgaQ94t5BIgE3YNGQL122BfNZpDEGaceNPZei94tLBaAnG4X0HWqn0/h+U9E2E1RlcX0gDluD1Q== - dependencies: - "@jupyterlab/coreutils" "^5.0.3" - "@jupyterlab/nbformat" "^3.0.3" - "@jupyterlab/observables" "^4.0.3" - "@jupyterlab/translation" "^3.0.5" - "@jupyterlab/ui-components" "^3.0.4" +"@jupyterlab/codeeditor@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.1.0-alpha.7.tgz#4462e67dd76eb031e763bd7a7dc723b94ba15c55" + integrity sha512-R0tYdZjTpK56+j7scLUVMEsUK0yHjSbXLLTxiSj66qiHAyZVMufw+F/yTOB8ZmhpoN6a6QOr9TWj8CAHzHi3jw== + dependencies: + "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/nbformat" "^3.1.0-alpha.7" + "@jupyterlab/observables" "^4.1.0-alpha.7" + "@jupyterlab/shared-models" "^3.1.0-alpha.7" + "@jupyterlab/translation" "^3.1.0-alpha.7" + "@jupyterlab/ui-components" "^3.1.0-alpha.7" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/dragdrop" "^1.7.1" "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" - "@lumino/widgets" "^1.16.1" - -"@jupyterlab/codemirror@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.0.5.tgz#40b23bbee462613828c7eac312a3083d08e0aaa0" - integrity sha512-rSdI6Y5Se2sEtrTZwRzyaD8Ls9OhZrf91KfhaF6uMeBHQXLb3KkN6diO0rB/Uj1oqoz+rTybFIfbbhAzzzj6UA== - dependencies: - "@jupyterlab/apputils" "^3.0.5" - "@jupyterlab/codeeditor" "^3.0.5" - "@jupyterlab/coreutils" "^5.0.3" - "@jupyterlab/nbformat" "^3.0.3" - "@jupyterlab/observables" "^4.0.3" - "@jupyterlab/statusbar" "^3.0.5" - "@jupyterlab/translation" "^3.0.5" + "@lumino/widgets" "^1.19.0" + +"@jupyterlab/codemirror@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.1.0-alpha.7.tgz#fadf55b457292724a4c7a83e1b00826b1aa3ba67" + integrity sha512-ndkibm3lw1JlrO1Tzam015FJimSToNHwF3a2xJo7uRn6aWPtV8R2KJxGxOUjc26gLohSLHgH985wm7cGOhNC7g== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.7" + "@jupyterlab/codeeditor" "^3.1.0-alpha.7" + "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/nbformat" "^3.1.0-alpha.7" + "@jupyterlab/observables" "^4.1.0-alpha.7" + "@jupyterlab/shared-models" "^3.1.0-alpha.7" + "@jupyterlab/statusbar" "^3.1.0-alpha.7" + "@jupyterlab/translation" "^3.1.0-alpha.7" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/polling" "^1.3.3" "@lumino/signaling" "^1.4.3" - "@lumino/widgets" "^1.16.1" - codemirror "~5.57.0" + "@lumino/widgets" "^1.19.0" + codemirror "~5.61.0" react "^17.0.1" + y-codemirror "^2.1.0" -"@jupyterlab/coreutils@^5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.0.3.tgz#fddf9d9c80c5c7bbb2dfa3e55569d6974a15fe34" - integrity sha512-PfdtV95/nSEwYjkaZltCTgumT22BekpSaPXF9oWtrCxC2Gc6zP8BxPhMdbPbx67y6FeO8vltr6dxOat93wZ4KA== +"@jupyterlab/coreutils@^5.1.0-alpha.7": + version "5.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.1.0-alpha.7.tgz#07d09cb61dcbcc3a7b9e0441452de8cbae09b8aa" + integrity sha512-bURndusUf04K6kOhdfP3+RDN3d2Uvl6D2ErIRGawUW5uwB2UD8jNwLCG80+6zovqHwHu+wsCGxezw8SHm5xQgw== dependencies: "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -261,64 +264,77 @@ minimist "~1.2.0" moment "^2.24.0" path-browserify "^1.0.0" - url-parse "~1.4.7" - -"@jupyterlab/docmanager@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.0.6.tgz#3858805d28eade30716603f1960c020d1e542b9c" - integrity sha512-98/4neCQ5pMLwFkiVOdKnaogmNFiHNl4ibLH3+1af235z/PabywbqKa8sf9RIIN9H8V2H8I+V9L0jU4KG14ZTw== - dependencies: - "@jupyterlab/apputils" "^3.0.5" - "@jupyterlab/coreutils" "^5.0.3" - "@jupyterlab/docregistry" "^3.0.6" - "@jupyterlab/services" "^6.0.5" - "@jupyterlab/statusbar" "^3.0.5" - "@jupyterlab/translation" "^3.0.5" + url-parse "~1.5.1" + +"@jupyterlab/docmanager@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.1.0-alpha.7.tgz#da694d5d567e41a4287116ed688a0fec720be0fb" + integrity sha512-eKSWeElpur8Vg5tCUizsyiZQQvXgClJX/ia+0m+/YM+KJIRXWCGquxhDaFMcU4KrdKoKGynaPEGqkkSK/J4jZw== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.7" + "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/docregistry" "^3.1.0-alpha.7" + "@jupyterlab/services" "^6.1.0-alpha.7" + "@jupyterlab/statusbar" "^3.1.0-alpha.7" + "@jupyterlab/translation" "^3.1.0-alpha.7" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/messaging" "^1.4.3" "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" - "@lumino/widgets" "^1.16.1" + "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/docregistry@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.0.6.tgz#07f5480435c1a8510b2397d4bdf9168aea2371fb" - integrity sha512-e4LEXudcgVWJsuzRnz4zg+lAd0gjsvShAQQQomT8ZYWv6wPTC2ci/6LPKQY9MyeVSw+9JEHIj8650BjmRc7oLA== - dependencies: - "@jupyterlab/apputils" "^3.0.5" - "@jupyterlab/codeeditor" "^3.0.5" - "@jupyterlab/codemirror" "^3.0.5" - "@jupyterlab/coreutils" "^5.0.3" - "@jupyterlab/observables" "^4.0.3" - "@jupyterlab/rendermime" "^3.0.6" - "@jupyterlab/rendermime-interfaces" "^3.0.5" - "@jupyterlab/services" "^6.0.5" - "@jupyterlab/translation" "^3.0.5" - "@jupyterlab/ui-components" "^3.0.4" +"@jupyterlab/docprovider@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/docprovider/-/docprovider-3.1.0-alpha.7.tgz#416c81dacd109da8d0bee6f6b89ddc9c3b5a94c5" + integrity sha512-Z8BCY7XAQEbsn5upDBc8eqJwRPCJCxunloc3vpQP8xHHthdPkLZKDNK/cVGSTTXHjWcjuF7l4hcP586eDoHitA== + dependencies: + "@jupyterlab/shared-models" "^3.1.0-alpha.7" + lib0 "^0.2.41" + y-websocket "^1.3.11" + yjs "^13.5.3" + +"@jupyterlab/docregistry@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.1.0-alpha.7.tgz#bb3e52476767d2165e13c40af0c4f5dc4fda30d8" + integrity sha512-olBzMafAd0/cYUZUN4R7JP2fmENTakbeqhPOuuF2nGG+z4DvQaWGy+PoqXEiWH5+/X+Et1AIlTtfRDk56Ojb5w== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.7" + "@jupyterlab/codeeditor" "^3.1.0-alpha.7" + "@jupyterlab/codemirror" "^3.1.0-alpha.7" + "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/docprovider" "^3.1.0-alpha.7" + "@jupyterlab/observables" "^4.1.0-alpha.7" + "@jupyterlab/rendermime" "^3.1.0-alpha.7" + "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.7" + "@jupyterlab/services" "^6.1.0-alpha.7" + "@jupyterlab/shared-models" "^3.1.0-alpha.7" + "@jupyterlab/translation" "^3.1.0-alpha.7" + "@jupyterlab/ui-components" "^3.1.0-alpha.7" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" - "@lumino/widgets" "^1.16.1" - -"@jupyterlab/filebrowser@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.0.6.tgz#66cebfbe97292c9a05842b2efb534c3d4c7e5856" - integrity sha512-26H3XKtnmH8g2tRgAyoIWaL6FISIXkzzjk6rbPxCeKsdgwwv0fS8Eec9V2SjZoFGPjdYj/jnBhAdO57ZeVKWng== - dependencies: - "@jupyterlab/apputils" "^3.0.5" - "@jupyterlab/coreutils" "^5.0.3" - "@jupyterlab/docmanager" "^3.0.6" - "@jupyterlab/docregistry" "^3.0.6" - "@jupyterlab/services" "^6.0.5" - "@jupyterlab/statedb" "^3.0.3" - "@jupyterlab/statusbar" "^3.0.5" - "@jupyterlab/translation" "^3.0.5" - "@jupyterlab/ui-components" "^3.0.4" + "@lumino/widgets" "^1.19.0" + yjs "^13.5.3" + +"@jupyterlab/filebrowser@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.1.0-alpha.7.tgz#ae3ee45b829e363ff49a9185be9d99976f5da57e" + integrity sha512-LthV8cc4ffYYGW8YJfP6AjSuM5d/cvG3zXWTin5vejtVXtpsIqKhU3kI5fdAL3gqq+o9NboUryjtYugo7mklpQ== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.7" + "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/docmanager" "^3.1.0-alpha.7" + "@jupyterlab/docregistry" "^3.1.0-alpha.7" + "@jupyterlab/services" "^6.1.0-alpha.7" + "@jupyterlab/statedb" "^3.1.0-alpha.7" + "@jupyterlab/statusbar" "^3.1.0-alpha.7" + "@jupyterlab/translation" "^3.1.0-alpha.7" + "@jupyterlab/ui-components" "^3.1.0-alpha.7" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -328,50 +344,50 @@ "@lumino/polling" "^1.3.3" "@lumino/signaling" "^1.4.3" "@lumino/virtualdom" "^1.8.0" - "@lumino/widgets" "^1.16.1" + "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/launcher@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/launcher/-/launcher-3.0.5.tgz#3204a9b12c3a0b034c0c9c54fa2cb778e759b76a" - integrity sha512-vFIt0v83K+xA8JFlnopuleeK0VSa+rFeEHQU7AHEX+JKipGM3RyhtRKMVmRJewsuPbMKYiDEN1SkROWY+dy7jA== +"@jupyterlab/launcher@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/launcher/-/launcher-3.1.0-alpha.7.tgz#2f37b2fc6828caebab7a4fcfb059dc622852f6c8" + integrity sha512-cxu2mKQLZYNMGYP8jiIU4HZmfV44j9GSwiJtcVwHLPXLRgC7Cm9bfKzrIM3pcC38/PP8Nj1GKirteC1hNvHk/g== dependencies: - "@jupyterlab/apputils" "^3.0.5" - "@jupyterlab/translation" "^3.0.5" - "@jupyterlab/ui-components" "^3.0.4" + "@jupyterlab/apputils" "^3.1.0-alpha.7" + "@jupyterlab/translation" "^3.1.0-alpha.7" + "@jupyterlab/ui-components" "^3.1.0-alpha.7" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/properties" "^1.2.3" - "@lumino/widgets" "^1.16.1" + "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/mainmenu@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/mainmenu/-/mainmenu-3.0.5.tgz#0376f3202bb61ef83077581ab1155dd2025578cd" - integrity sha512-2rziVmmr3/Sl84PzzGYfcGfvjB1tx9aLQVJF+iMvKLEWtPZAsObCVK0SZLPb1S/f942l6/tC87nNOMinIFujBw== +"@jupyterlab/mainmenu@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/mainmenu/-/mainmenu-3.1.0-alpha.7.tgz#85d13266d787f7a6f2b0b0d49011f12b4265dd1c" + integrity sha512-X6UXDR2eODZlBT/BGWvyNXgc09udFmU2wcp5+w18xI8qRL3vNiBoq7A8c/eMnbRhAiXO2CF6hvVkx9cmhqBvDw== dependencies: - "@jupyterlab/apputils" "^3.0.5" - "@jupyterlab/services" "^6.0.5" - "@jupyterlab/ui-components" "^3.0.4" + "@jupyterlab/apputils" "^3.1.0-alpha.7" + "@jupyterlab/services" "^6.1.0-alpha.7" + "@jupyterlab/ui-components" "^3.1.0-alpha.7" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" - "@lumino/widgets" "^1.16.1" + "@lumino/widgets" "^1.19.0" -"@jupyterlab/nbformat@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.0.3.tgz#da8a6fa3f05059d71bc07cb737ada56da01c7100" - integrity sha512-o7UMbRXQCGjHOoXhclov6JP/xSwFkx2Bv2qZldU5Yey+3RIcSFlnI8OcPHVZWmz+9xzdtXEmEhVnbErESO1fsg== +"@jupyterlab/nbformat@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.1.0-alpha.7.tgz#ce16d9e98fe16738d63f82fb76746cc835619fa4" + integrity sha512-4NoIU7weVjLKvRg+odTaqLMO81aiN8p0wN+jf+Ni7qCWMN+EQHDA8rD0HI3/QKm3NdASCDhrC14/vVS6qeBh3A== dependencies: "@lumino/coreutils" "^1.5.3" -"@jupyterlab/observables@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.0.3.tgz#0fc5672468b32e8f4a98987454d57e0644104877" - integrity sha512-OrAO201PkaFRJ+hWQB5Ozasnp/TkafMC/hOYcThWEQ9SFZEyanmTJIJh0hiHBmWmCorH2ocgTrp0csCzqVXc5w== +"@jupyterlab/observables@^4.1.0-alpha.7": + version "4.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.1.0-alpha.7.tgz#2d8e904aee84358bbebbd3e70439e9814a172623" + integrity sha512-Joc4Rb79/1Gef2EvOBJHV+vM6BW1ikpj+mXaB8RcKoApPFSgJOp59tB/51Lm8u4CXGBKmK5WzAbYUv5LpMFLfQ== dependencies: "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" @@ -379,46 +395,46 @@ "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" -"@jupyterlab/rendermime-interfaces@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.0.5.tgz#86e7abd726c0baf485f555e02dc42af151ca9888" - integrity sha512-LrG7B//izECP5LoouuSLa3WIpUhCBVjBDrqFXd+vMsW3hUF8IGc8Ngooj9dmyBn905/uIt6/JVJGB25qh3ed1w== +"@jupyterlab/rendermime-interfaces@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.1.0-alpha.7.tgz#e862a348e76f73ba36b44adf2ba085e1da7e347e" + integrity sha512-ph8uZUmjesfpamaOLNMgUz/FBfdd2PH8V9KCrswdBRXmfAfdkDTNjgrRqyE5ZvryBpcK6bedyecQCLZo+YZh+Q== dependencies: - "@jupyterlab/translation" "^3.0.5" + "@jupyterlab/translation" "^3.1.0-alpha.7" "@lumino/coreutils" "^1.5.3" - "@lumino/widgets" "^1.16.1" - -"@jupyterlab/rendermime@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.0.6.tgz#1c8759f21c9dcd0f45ff6b7cfb46350c85885ec2" - integrity sha512-lpiRPQrEVbze+2brvsgCzBQdTeI0piF0dCOAokwDFLb3WAgXxXh8g+voJ+3I41P5LeMoranwV4y/z261nMMk9Q== - dependencies: - "@jupyterlab/apputils" "^3.0.5" - "@jupyterlab/codemirror" "^3.0.5" - "@jupyterlab/coreutils" "^5.0.3" - "@jupyterlab/nbformat" "^3.0.3" - "@jupyterlab/observables" "^4.0.3" - "@jupyterlab/rendermime-interfaces" "^3.0.5" - "@jupyterlab/services" "^6.0.5" - "@jupyterlab/translation" "^3.0.5" + "@lumino/widgets" "^1.19.0" + +"@jupyterlab/rendermime@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.1.0-alpha.7.tgz#2e37d9e7148a051c7a472e6e2dfbe68067b1a00a" + integrity sha512-wTDcL2zwuqqFcIWEQL8ET6T1BG1TRsknwS+ScwHtiQBP7mYvveQyzyEUJTFd5io6v7HCyOyi2Qi3otfI5oyGmg== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.7" + "@jupyterlab/codemirror" "^3.1.0-alpha.7" + "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/nbformat" "^3.1.0-alpha.7" + "@jupyterlab/observables" "^4.1.0-alpha.7" + "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.7" + "@jupyterlab/services" "^6.1.0-alpha.7" + "@jupyterlab/translation" "^3.1.0-alpha.7" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" - "@lumino/widgets" "^1.16.1" + "@lumino/widgets" "^1.19.0" lodash.escape "^4.0.1" marked "^2.0.0" -"@jupyterlab/services@^6.0.5": - version "6.0.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.0.5.tgz#06b952d148c098d6befed591bfa5d63518ab96d4" - integrity sha512-hOD9qOqDthpKmlkUoUV+1bj7Uxbe7Pe6nQbftgwfX1rXLgIJjNHkiCce2fkIiSqQh/dd3SFcu3MouTpJ6plglw== - dependencies: - "@jupyterlab/coreutils" "^5.0.3" - "@jupyterlab/nbformat" "^3.0.3" - "@jupyterlab/observables" "^4.0.3" - "@jupyterlab/settingregistry" "^3.0.3" - "@jupyterlab/statedb" "^3.0.3" +"@jupyterlab/services@^6.1.0-alpha.7", "@jupyterlab/services@~6.1.0-alpha.7": + version "6.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.1.0-alpha.7.tgz#e0c9d68363b494ff59ba0c0c2252c9d78bfbd79f" + integrity sha512-AanzgTG7Oia5Nk7Z8d7mmLC391jqYpUDQoOFI9Gxo/VUybHo7SCzD+ixhn/XepmJ7HH6AuNr4x4b/RcnsU7OzQ== + dependencies: + "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/nbformat" "^3.1.0-alpha.7" + "@jupyterlab/observables" "^4.1.0-alpha.7" + "@jupyterlab/settingregistry" "^3.1.0-alpha.7" + "@jupyterlab/statedb" "^3.1.0-alpha.7" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -427,12 +443,12 @@ node-fetch "^2.6.0" ws "^7.2.0" -"@jupyterlab/settingregistry@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.0.3.tgz#ec7943013c1f433ead920c7d9e67aed713461ef0" - integrity sha512-mxvP4AMi62u6ekarhgCefJeyTV6Z8fnnKb0psvvnWikdSgQT6x7OngV5emuo2N02IXkUqXxM1aHRwYQsLUAbOQ== +"@jupyterlab/settingregistry@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.1.0-alpha.7.tgz#237334801b1f9213ad137f5f7d33de51b7580843" + integrity sha512-LjvfjoWrMT/Bt41qzaSdGT4LAtvkKoHKLHjsyLryyjdfJJT1BD2oJXrLffq6VKjvM/psLUU2t0WS507UsLH1kg== dependencies: - "@jupyterlab/statedb" "^3.0.3" + "@jupyterlab/statedb" "^3.1.0-alpha.7" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -440,10 +456,22 @@ ajv "^6.12.3" json5 "^2.1.1" -"@jupyterlab/statedb@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.0.3.tgz#3bc36f3a439f514fd28b9c0543e0acac1205c704" - integrity sha512-j+WtWyLszzmlsLEkcEhbc+TAMdc+6X+CCeBSFgOK9GN9RSp+pe9tGU/Y4PS0xPSvUwLSqv7RG0Oj0+/1bmNwlw== +"@jupyterlab/shared-models@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/shared-models/-/shared-models-3.1.0-alpha.7.tgz#43fb5bc046065d26e5c39071678ceacf2617d262" + integrity sha512-OnAIVd+qRs6AcwEdZpF06lHKiCCKLPA57H/BsEsbeYxRhKoV5NrvqTarZsRjEtCyb4tQL6ne9HOm9/EWluB59Q== + dependencies: + "@jupyterlab/nbformat" "^3.1.0-alpha.7" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/signaling" "^1.4.3" + y-protocols "^1.0.4" + yjs "^13.5.3" + +"@jupyterlab/statedb@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.1.0-alpha.7.tgz#007b166f3481ebba153a0d2134ddbbfc4190177b" + integrity sha512-lpGnCGssuNrUrHHao6JXo1FutQ+wEcg0BpWAq9uiCo2mAgoyZI2+qBgCqUtCbrJy7f1DYtvmCvszFhy12Y6Ivw== dependencies: "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -451,170 +479,170 @@ "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" -"@jupyterlab/statusbar@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.0.5.tgz#d4806d64b5f84debc777052acdfcec780c9777f8" - integrity sha512-a6ZZ3xihjpEaoyF9Aoz+eT/mVwedCdBwuMv44+v+r/zuhPyTys4FdihYw71yB6F5SPrhlT+6TlajndDC+DJiUw== - dependencies: - "@jupyterlab/apputils" "^3.0.5" - "@jupyterlab/codeeditor" "^3.0.5" - "@jupyterlab/coreutils" "^5.0.3" - "@jupyterlab/services" "^6.0.5" - "@jupyterlab/translation" "^3.0.5" - "@jupyterlab/ui-components" "^3.0.4" +"@jupyterlab/statusbar@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.1.0-alpha.7.tgz#f4ad46b918015e37b71c73244933e94965b08af6" + integrity sha512-ocXxErAq3+Zd1Nfn17k9NBrjDeIhtyEaha2TpvTovXipYdiV7+y+5NjlBwr9GsGRUlOwZBmZtvmVluSfZQtfeQ== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.7" + "@jupyterlab/codeeditor" "^3.1.0-alpha.7" + "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/services" "^6.1.0-alpha.7" + "@jupyterlab/translation" "^3.1.0-alpha.7" + "@jupyterlab/ui-components" "^3.1.0-alpha.7" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" - "@lumino/widgets" "^1.16.1" + "@lumino/widgets" "^1.19.0" csstype "~3.0.3" react "^17.0.1" typestyle "^2.0.4" -"@jupyterlab/translation@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.0.5.tgz#8706f48e6989d4aaa8613fa88e348a84ae87eade" - integrity sha512-/ehpYkuUk4RXdKM8WsTW7BTsD4G3FBCviva4nUQ9gCmteySrQpBNhgfCRhG3aFCUKFo28B1BP1s5rza4A7lf6g== +"@jupyterlab/translation@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.1.0-alpha.7.tgz#47ec794622a9ea2910c70ad5d7c18086a6fcf696" + integrity sha512-Q2WOC6LEkNQpX52/j9ZPOiuaE9Tmc6AkNnpjoF2cu8m2K2HVot3FQVhddXa/d8O/VgQDPv11H4W9hhjwZQhzzw== dependencies: - "@jupyterlab/coreutils" "^5.0.3" - "@jupyterlab/services" "^6.0.5" - "@jupyterlab/statedb" "^3.0.3" + "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/services" "^6.1.0-alpha.7" + "@jupyterlab/statedb" "^3.1.0-alpha.7" "@lumino/coreutils" "^1.5.3" -"@jupyterlab/ui-components@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.0.4.tgz#354b222ef141746e18b1bfda83a5219a9213e8d3" - integrity sha512-6+a5tYQn8HhDNELvQsA190CrgYIJpnKKzRzi5cs8IO2yila+mTHO+xaX2ZOs7jnEbv9dOqdxopjWHRMiKvgGKA== +"@jupyterlab/ui-components@^3.1.0-alpha.7": + version "3.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.1.0-alpha.7.tgz#c4a63861d7c58da54bb11974c5387cbaa77f00d6" + integrity sha512-PQBknIk7gcajDXXT41a7kIZowTqtffjbIbwlwvCuW+KoS/kyGyh8eSeqaRCOrpHoc1JOonPCpHqo1m4wtBT43w== dependencies: "@blueprintjs/core" "^3.36.0" "@blueprintjs/select" "^3.15.0" - "@jupyterlab/coreutils" "^5.0.3" + "@jupyterlab/coreutils" "^5.1.0-alpha.7" "@lumino/coreutils" "^1.5.3" "@lumino/signaling" "^1.4.3" "@lumino/virtualdom" "^1.8.0" - "@lumino/widgets" "^1.16.1" + "@lumino/widgets" "^1.19.0" react "^17.0.1" react-dom "^17.0.1" typestyle "^2.0.4" -"@lumino/algorithm@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.3.3.tgz#fdf4daa407a1ce6f233e173add6a2dda0c99eef4" - integrity sha512-I2BkssbOSLq3rDjgAC3fzf/zAIwkRUnAh60MO0lYcaFdSGyI15w4K3gwZHGIO0p9cKEiNHLXKEODGmOjMLOQ3g== - -"@lumino/application@^1.13.1": - version "1.15.0" - resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.15.0.tgz#8b7e5142bc6d38d1300164507e0a214a55ea6d05" - integrity sha512-W/12+UFk1oBdJ793L3NegQvt0T355k64fPmDVzPhM48TW8vM/0tDc+zBx1KShn52eRMTrVBDc2cG5t6C5/XF1w== - dependencies: - "@lumino/commands" "^1.12.0" - "@lumino/coreutils" "^1.5.3" - "@lumino/widgets" "^1.18.0" +"@lumino/algorithm@^1.3.3", "@lumino/algorithm@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.6.0.tgz#771e7896cd94e660f9b58a52f80e1bb255de1d41" + integrity sha512-NMOcm5Yr9nXz5gokS/K4jHBbUMQYBkvDXl1n51XWdcz0LY+oGuIKPhjazhUgmbNRehzdZBj5hMMd1+htYWeVKQ== -"@lumino/collections@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.3.3.tgz#fa95c826b93ee6e24b3c4b07c8f595312525f8cc" - integrity sha512-vN3GSV5INkgM6tMLd+WqTgaPnQNTY7L/aFUtTOC8TJQm+vg1eSmR4fNXsoGHM3uA85ctSJThvdZr5triu1Iajg== +"@lumino/application@^1.13.1", "@lumino/application@^1.16.0": + version "1.20.0" + resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.20.0.tgz#b50ca4180bc400589fdfcfcaab08c4af937fccd0" + integrity sha512-FAoQcq4L3ZswTK0lWfLKnG1ecG26cwqjzg2fyoBeuWGBi1TG9BYjFBdV7ErTFMxW8jE1CLOLuxsZaKFLNErcKA== dependencies: - "@lumino/algorithm" "^1.3.3" + "@lumino/commands" "^1.15.0" + "@lumino/coreutils" "^1.8.0" + "@lumino/widgets" "^1.23.0" -"@lumino/commands@^1.12.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.12.0.tgz#63a744d034d8bc524455e47f06c0ac5f2eb6ec38" - integrity sha512-5TFlhDzZk1X8rCBjhh0HH3j6CcJ03mx2Pd/1rGa7MB5R+3+yYYk+gTlfHRqsxdehNRmiISaHRSrMnW8bynW7ZQ== +"@lumino/collections@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.6.0.tgz#7d3e94cee26409b0cd719c1934bdda471e6a5662" + integrity sha512-ZETm0/xF0oUHV03sOXNOfFI1EEpS317HvN5n+fZBJvCNZIrJkWmKD8QuxcfwHb7AChKUhXlVHhDbWlb1LKnd7g== dependencies: - "@lumino/algorithm" "^1.3.3" - "@lumino/coreutils" "^1.5.3" - "@lumino/disposable" "^1.4.3" - "@lumino/domutils" "^1.2.3" - "@lumino/keyboard" "^1.2.3" - "@lumino/signaling" "^1.4.3" - "@lumino/virtualdom" "^1.8.0" + "@lumino/algorithm" "^1.6.0" -"@lumino/coreutils@^1.5.3": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.5.3.tgz#89dd7b7f381642a1bf568910c5b62c7bde705d71" - integrity sha512-G72jJ6sgOwAUuilz+cri7LpHIJxllK+qz+YZUC3fyyWHK7oRlZemcc43jZAVE+tagTdMxKYSQWNIVzM5lI8sWw== +"@lumino/commands@^1.12.0", "@lumino/commands@^1.15.0": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.15.0.tgz#06eb94fb4b34cad59f35b1fcaf473e8d2047f779" + integrity sha512-JOE68KfbR9xw5YTfcwo+9E0PSWidifEMAcOC/aXd7iSzfsCRknMTcMQIUGL277IU7J7CJvoe10DUE5QKwTmX+g== + dependencies: + "@lumino/algorithm" "^1.6.0" + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" + "@lumino/domutils" "^1.5.0" + "@lumino/keyboard" "^1.5.0" + "@lumino/signaling" "^1.7.0" + "@lumino/virtualdom" "^1.11.0" + +"@lumino/coreutils@^1.5.3", "@lumino/coreutils@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.8.0.tgz#4feb3ccbfbc3efc8e395a90f22b5a938fbad959a" + integrity sha512-OvCsaASUqOE7R6Dxngyk4/b5QMOjyRUNxuZuuL+fx+JvGKZFZ/B2c9LYtAJ9mDmQ1BQiGNV/qSpL4o7x8PCfjw== -"@lumino/disposable@^1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.4.3.tgz#0a69b15cc5a1e506f93bb390ac44aae338da3c36" - integrity sha512-zKQ9N2AEGcYpG6PJkeMWQXvoXU9w1ocji78z+fboM/SmSgtOIVGeQt3fZeldymf0XrlOPpNXs1ZFg54yWUMnXA== +"@lumino/disposable@^1.4.3", "@lumino/disposable@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.7.0.tgz#539463490cb42e8d2dc46b5ff7cc291f4f1a8d07" + integrity sha512-3mWi11ko3XVY63BPwvys7MXrbFddA2i+gp72d0wAKM2NDDUopVPikMHhJpjGJcw+otjahzXYiTewxPDEau9dYg== dependencies: - "@lumino/algorithm" "^1.3.3" - "@lumino/signaling" "^1.4.3" + "@lumino/algorithm" "^1.6.0" + "@lumino/signaling" "^1.7.0" -"@lumino/domutils@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.2.3.tgz#7e8e549a97624bfdbd4dd95ae4d1e30b87799822" - integrity sha512-SEi8WZSy+DWMkL5CfAY78MHbi3x83AVmRFxjs9+A6qsFPde+Hr1I4DNtLsSDmfAWsobHHgBnjyNp2ZkQEq0IEA== +"@lumino/domutils@^1.2.3", "@lumino/domutils@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.5.0.tgz#fdba0cfe404b4817e63aa064f63b3c965655e76e" + integrity sha512-dZ0Aa+/qhvfPc1aa5kX4LLGE3B6BW1XmJa0R1XVCEpAFY3cZiujuQWmhYHJtZPrOiqn0UtioT2OpqnWdtCWc0A== -"@lumino/dragdrop@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.7.1.tgz#1466206d43a64dadca383e0b9a87cc8a14c8c59b" - integrity sha512-IeSSOTmpqBSWz+EVsbGVeHe/KIaHaUsQXZ4BJCEbCKgNGHbqMfUOtlneiKq7rEhZGF4wYs7gWWjNhMVZbUGO9Q== +"@lumino/dragdrop@^1.10.0", "@lumino/dragdrop@^1.7.1": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.10.0.tgz#2fddacfee055e660dd33dd9a3cfbd8fbba811673" + integrity sha512-A3cNLcp09zygOprWmLTkLZCQYNq3dJfN+mhni4IZizqCTkKbTCEzo2/IwoCWvy+ABKft8d/A9Y40wFW6yJ9OyA== dependencies: - "@lumino/coreutils" "^1.5.3" - "@lumino/disposable" "^1.4.3" + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" -"@lumino/keyboard@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.2.3.tgz#594c73233636d85ed035b1a37a095acf956cfe8c" - integrity sha512-ibS0sz0VABeuJXx2JVSz36sUBMUOcQNCNPybVhwzN/GkJFs0dnDKluMu+3Px0tkB2y33bGPZU/RLZY1Xj/faEA== +"@lumino/keyboard@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.5.0.tgz#c12213822dd2645c412e8689aecd4a2726113ac6" + integrity sha512-/uF9xqHYVbIkser2Q6UIv7VWrzThr1fxAmSOShjSoKGocL0XHeaBaCOMezSaVxnJ1wm1ciNdhMsjscVM8Inp7g== -"@lumino/messaging@^1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.4.3.tgz#75a1901f53086c7c0e978a63cb784eae5cc59f3f" - integrity sha512-wa2Pj2KOuLNLS2n0wVBzUVFGbvjL1FLbuCOAUEYfN6xXVleqqtGGzd08uTF7ebu01KCO3VQ38+dkvoaM/C2qPw== +"@lumino/messaging@^1.4.3", "@lumino/messaging@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.7.0.tgz#32542f9e9a266fd5b3f71842f70cfe141e016d93" + integrity sha512-QYWf9QGIGD0Oes104zw7mVln4S8yRije2mZhNNRBjkYcDuQlPW+eRSuC5LwAMsFnGymBlUPwPbKOUEO2RbhAtg== dependencies: - "@lumino/algorithm" "^1.3.3" - "@lumino/collections" "^1.3.3" + "@lumino/algorithm" "^1.6.0" + "@lumino/collections" "^1.6.0" "@lumino/polling@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.3.3.tgz#6336638cb9ba2f4f4c3ef2529c7f260abbd25148" - integrity sha512-uMRi6sPRnKW8m38WUY3qox1jxwzpvceafUbDJATCwyrZ48+YoY5Fxfmd9dqwioHS1aq9np5c6L35a9ZGuS0Maw== + version "1.6.0" + resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.6.0.tgz#64f40bba4602fe9eceb9f3fae8f3647831e5b7e9" + integrity sha512-jG1nqw6UO5XEN7QamOr6iDW8WvYeZQcBVRjM38fszz62dwJ/VGPvO2hlNl6QWWIfCynbJudms0LQm+z0BT1EdA== dependencies: - "@lumino/coreutils" "^1.5.3" - "@lumino/disposable" "^1.4.3" - "@lumino/signaling" "^1.4.3" + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" + "@lumino/signaling" "^1.7.0" -"@lumino/properties@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.2.3.tgz#10675e554e4a9dcc4022de01875fd51f33e2c785" - integrity sha512-dbS9V/L+RpQoRjxHMAGh1JYoXaLA6F7xkVbg/vmYXqdXZ7DguO5C3Qteu9tNp7Z7Q31TqFWUCrniTI9UJiJCoQ== +"@lumino/properties@^1.2.3", "@lumino/properties@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.5.0.tgz#7e8638e84c51bb110c5a69f91ca8b0e40b2c3fca" + integrity sha512-YqpJE6/1Wkjrie0E+ypu+yzd55B5RlvKYMnQs3Ox+SrJsnNBhA6Oj44EhVf8SUTuHgn1t/mm+LvbswKN5RM4+g== -"@lumino/signaling@^1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.4.3.tgz#d29f7f542fdcd70b91ca275d3ca793ae21cebf6a" - integrity sha512-6clc8SMcH0tyKXIX31xw6sxjxJl5hj4YRd1DTHTS62cegQ0FkO8JjJeuv+Nc1pgTg6nEAf65aSOHpUdsFHDAvQ== - dependencies: - "@lumino/algorithm" "^1.3.3" - -"@lumino/virtualdom@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.8.0.tgz#42ea5778e3870e4961ea36697b28aab997c75fa6" - integrity sha512-X/1b8b7TxB9tb4+xQiS8oArcA/AK7NBZrsg2dzu/gHa3JC45R8nzQ+0tObD8Nd0gF/e9w9Ps9M62rLfefcbbKw== +"@lumino/signaling@^1.4.3", "@lumino/signaling@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.7.0.tgz#76da4738bf8f19e7da6de1d457a54220e2140670" + integrity sha512-a5kd11Sf04jTfpzxCr7TOBD2o5YvItA4IGwiOoG+QR6sPR0Rwmcf47fPItqXo5st58iNIblC3F+c264N+Me+gg== dependencies: - "@lumino/algorithm" "^1.3.3" + "@lumino/algorithm" "^1.6.0" -"@lumino/widgets@^1.16.1", "@lumino/widgets@^1.18.0": - version "1.18.0" - resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.18.0.tgz#fa8ce727126a1e91b9f3ba78e08425115046e3ac" - integrity sha512-8i10njkGjctuXrbaoV2dRI2rVUaL7eA5djtHj36pX9cALwciEPHNecF6hoZXmQ4ODv6LTwhr87Uz8LT4Aan77A== - dependencies: - "@lumino/algorithm" "^1.3.3" - "@lumino/commands" "^1.12.0" - "@lumino/coreutils" "^1.5.3" - "@lumino/disposable" "^1.4.3" - "@lumino/domutils" "^1.2.3" - "@lumino/dragdrop" "^1.7.1" - "@lumino/keyboard" "^1.2.3" - "@lumino/messaging" "^1.4.3" - "@lumino/properties" "^1.2.3" - "@lumino/signaling" "^1.4.3" - "@lumino/virtualdom" "^1.8.0" +"@lumino/virtualdom@^1.11.0", "@lumino/virtualdom@^1.8.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.11.0.tgz#468b4d28a07e2b8988dc583b4aab40e37dc6955e" + integrity sha512-G0sIx4pLYbgJ4w+SIgsCYQgKP/GBrWgjh8wcumD6XpaYZNivJv4c01xITYYlh7FU61jZmMWMrxtZztArNRDSqg== + dependencies: + "@lumino/algorithm" "^1.6.0" + +"@lumino/widgets@^1.16.1", "@lumino/widgets@^1.19.0", "@lumino/widgets@^1.23.0": + version "1.23.0" + resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.23.0.tgz#096c7574de75fa67b32bcb914c5dae290fbee6f3" + integrity sha512-0Akt9ESgc06SJ3EJG3VK1Liw+AAjRWkKMfm8VUTwT/1QJYYGZ8kfHNO97mkBLv+0EkLEkZIeaQb8fIoU6vh7bw== + dependencies: + "@lumino/algorithm" "^1.6.0" + "@lumino/commands" "^1.15.0" + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" + "@lumino/domutils" "^1.5.0" + "@lumino/dragdrop" "^1.10.0" + "@lumino/keyboard" "^1.5.0" + "@lumino/messaging" "^1.7.0" + "@lumino/properties" "^1.5.0" + "@lumino/signaling" "^1.7.0" + "@lumino/virtualdom" "^1.11.0" "@nodelib/fs.scandir@2.1.4": version "2.1.4" @@ -676,17 +704,17 @@ integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== "@types/eslint@*": - version "7.2.6" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz#5e9aff555a975596c03a98b59ecd103decc70c3c" - integrity sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw== + version "7.2.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.10.tgz#4b7a9368d46c0f8cd5408c23288a59aa2394d917" + integrity sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.46": - version "0.0.46" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" - integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== +"@types/estree@*", "@types/estree@^0.0.47": + version "0.0.47" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" + integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== "@types/glob@^7.1.1": version "7.1.3" @@ -702,14 +730,14 @@ integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== "@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" + integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== "@types/node@*": - version "14.14.31" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" - integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== + version "15.0.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz#51e9c0920d1b45936ea04341aa3e2e58d339fb67" + integrity sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA== "@types/prop-types@*": version "15.7.3" @@ -717,13 +745,19 @@ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== "@types/react@^17.0.0": - version "17.0.2" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.2.tgz#3de24c4efef902dd9795a49c75f760cbe4f7a5a8" - integrity sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA== + version "17.0.5" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.5.tgz#3d887570c4489011f75a3fc8f965bf87d09a1bea" + integrity sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw== dependencies: "@types/prop-types" "*" + "@types/scheduler" "*" csstype "^3.0.2" +"@types/scheduler@*": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" + integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== + "@typescript-eslint/eslint-plugin@^2.27.0": version "2.34.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9" @@ -888,22 +922,22 @@ "@webassemblyjs/ast" "1.11.0" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.1.tgz#241aecfbdc715eee96bed447ed402e12ec171935" - integrity sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ== +"@webpack-cli/configtest@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.3.tgz#204bcff87cda3ea4810881f7ea96e5f5321b87b9" + integrity sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw== -"@webpack-cli/info@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.2.tgz#ef3c0cd947a1fa083e174a59cb74e0b6195c236c" - integrity sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ== +"@webpack-cli/info@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.4.tgz#7381fd41c9577b2d8f6c2594fad397ef49ad5573" + integrity sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g== dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.0.tgz#2730c770f5f1f132767c63dcaaa4ec28f8c56a6c" - integrity sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw== +"@webpack-cli/serve@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.4.0.tgz#f84fd07bcacefe56ce762925798871092f0f228e" + integrity sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -920,6 +954,28 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== +abstract-leveldown@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" + integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== + dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + +abstract-leveldown@~6.2.1, abstract-leveldown@~6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb" + integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== + dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" @@ -930,10 +986,10 @@ acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4: - version "8.0.5" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.5.tgz#a3bfb872a74a6a7f661bc81b9849d9cac12601b7" - integrity sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg== +acorn@^8.2.1: + version "8.2.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0" + integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg== aggregate-error@^3.0.0: version "3.1.0" @@ -958,10 +1014,10 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^7.0.2: - version "7.1.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.1.1.tgz#1e6b37a454021fa9941713f38b952fc1c8d32a84" - integrity sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ== +ajv@^8.0.1: + version "8.3.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.3.0.tgz#25ee7348e32cdc4a1dbb38256bf6bdc451dd577c" + integrity sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -974,11 +1030,11 @@ ansi-colors@^4.1.1: integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: - type-fest "^0.11.0" + type-fest "^0.21.3" ansi-regex@^5.0.0: version "5.0.0" @@ -1016,15 +1072,20 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + at-least-node@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-js@^1.3.1: version "1.5.1" @@ -1067,7 +1128,7 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer@^5.6.0: +buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -1076,9 +1137,9 @@ buffer@^5.6.0: ieee754 "^1.1.13" cacache@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== + version "15.0.6" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099" + integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w== dependencies: "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" @@ -1094,7 +1155,7 @@ cacache@^15.0.5: p-map "^4.0.0" promise-inflight "^1.0.1" rimraf "^3.0.2" - ssri "^8.0.0" + ssri "^8.0.1" tar "^6.0.2" unique-filename "^1.1.1" @@ -1134,7 +1195,7 @@ caniuse-lite@^1.0.30001219: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz#8135c57459854b2240b57a4a6786044bdc5a9f71" integrity sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ== -chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1144,9 +1205,9 @@ chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: supports-color "^5.3.0" chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -1167,16 +1228,14 @@ chownr@^2.0.0: integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== classnames@^2.2: - version "2.2.6" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + version "2.3.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" + integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== clean-stack@^2.0.0: version "2.2.0" @@ -1211,10 +1270,10 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" -codemirror@~5.57.0: - version "5.57.0" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.57.0.tgz#d26365b72f909f5d2dbb6b1209349ca1daeb2d50" - integrity sha512-WGc6UL7Hqt+8a6ZAsj/f1ApQl3NPvHY/UQSzG6fB6l4BjExgVdhFaxd7mRTw1UCiYe/6q86zHP+kfvBQcZGvUg== +codemirror@~5.61.0: + version "5.61.0" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.61.0.tgz#318e5b034a707207948b92ffc2862195e8fdb08e" + integrity sha512-D3wYH90tYY1BsKlUe0oNj2JAhQ9TepkD51auk3N7q+4uz7A/cgJ5JsWHreT0PqieW1QhOuqxQ2reCXV1YXzecg== color-convert@^1.9.0: version "1.9.3" @@ -1251,9 +1310,9 @@ commander@^2.20.0: integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" - integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== commander@~6.0.0: version "6.0.0" @@ -1296,37 +1355,36 @@ crypto@~1.0.1: integrity sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig== css-loader@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.0.2.tgz#24f758dae349bad0a440c50d7e2067742e0899cb" - integrity sha512-gbkBigdcHbmNvZ1Cg6aV6qh6k9N6XOr8YWzISLQGrwk2mgOH8LLrizhkxbDhQtaLtktyKHD4970S0xwz5btfTA== + version "5.2.4" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.4.tgz#e985dcbce339812cb6104ef3670f08f9893a1536" + integrity sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw== dependencies: camelcase "^6.2.0" - cssesc "^3.0.0" icss-utils "^5.1.0" loader-utils "^2.0.0" - postcss "^8.2.4" + postcss "^8.2.10" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.1.0" schema-utils "^3.0.0" - semver "^7.3.4" + semver "^7.3.5" cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -csstype@^2.4.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.4.2.tgz#158e36c69566bf968da63d0ba14eda1c20e8643a" - integrity sha512-1TnkyZwDy0oUl//6685j2bTMNe61SzntWntijNdmmEzvpYbGmVMZkj204gv4glcQp6z/ypg+YRziT91XVFmOyg== +csstype@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" + integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== csstype@^3.0.2, csstype@~3.0.3: - version "3.0.7" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" - integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== + version "3.0.8" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" + integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== debug@^4.0.1, debug@^4.1.1: version "4.3.1" @@ -1342,6 +1400,18 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +deep-equal@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -1352,11 +1422,24 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + defer-to-connect@^1.0.1: version "1.1.3" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +deferred-leveldown@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" + integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== + dependencies: + abstract-leveldown "~6.2.1" + inherits "^2.0.3" + define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -1401,9 +1484,9 @@ dom-helpers@^3.4.0: "@babel/runtime" "^7.1.2" dom-serializer@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1" - integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" + integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== dependencies: domelementtype "^2.0.1" domhandler "^4.0.0" @@ -1414,33 +1497,26 @@ dom4@^2.1.5: resolved "https://registry.yarnpkg.com/dom4/-/dom4-2.1.6.tgz#c90df07134aa0dbd81ed4d6ba1237b36fc164770" integrity sha512-JkCVGnN4ofKGbjf5Uvc8mmxaATIErKQKSgACdBXpsQ3fY6DlIpAyWfiBSrGkttATssbDCp3psiAKWXk5gmjycA== -domelementtype@^2.0.1, domelementtype@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" - integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== - -domhandler@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" - integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== - dependencies: - domelementtype "^2.0.1" +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== -domhandler@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e" - integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA== +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== dependencies: - domelementtype "^2.1.0" + domelementtype "^2.2.0" -domutils@^2.0.0: - version "2.4.4" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3" - integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA== +domutils@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz#2e15c04185d43fb16ae7057cb76433c6edb938b7" + integrity sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA== dependencies: dom-serializer "^1.0.1" - domelementtype "^2.0.1" - domhandler "^4.0.0" + domelementtype "^2.2.0" + domhandler "^4.2.0" duplexer3@^0.1.4: version "0.1.4" @@ -1472,6 +1548,16 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== +encoding-down@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" + integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== + dependencies: + abstract-leveldown "^6.2.1" + inherits "^2.0.3" + level-codec "^9.0.0" + level-errors "^2.0.0" + end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -1479,15 +1565,15 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" - integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== +enhanced-resolve@^5.8.0: + version "5.8.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" + integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.5, enquirer@^2.3.6: +enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -1500,9 +1586,16 @@ entities@^2.0.0: integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== envinfo@^7.7.3: - version "7.7.4" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" - integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + +errno@~0.1.1: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" error-ex@^1.3.1: version "1.3.2" @@ -1512,29 +1605,31 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.18.0-next.2: - version "1.18.0-next.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" - integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== + version "1.18.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" - get-intrinsic "^1.0.2" + get-intrinsic "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" + has-symbols "^1.0.2" + is-callable "^1.2.3" is-negative-zero "^2.0.1" - is-regex "^1.1.1" + is-regex "^1.1.2" + is-string "^1.0.5" object-inspect "^1.9.0" object-keys "^1.1.1" object.assign "^4.1.2" - string.prototype.trimend "^1.0.3" - string.prototype.trimstart "^1.0.3" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" es-module-lexer@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.0.tgz#21f4181cc8b7eee06855f1c59e6087c7bc4f77b0" - integrity sha512-iuEGihqqhKWFgh72Q/Jtch7V2t/ft8w8IPP2aEN8ArYKO+IWyo6hsi96hCdgyeEDQIV3InhYQ9BlwUFPGXrbEQ== + version "0.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" + integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== es-to-primitive@^1.2.1: version "1.2.1" @@ -1555,6 +1650,11 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + eslint-config-prettier@^6.10.1: version "6.15.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" @@ -1563,9 +1663,9 @@ eslint-config-prettier@^6.10.1: get-stdin "^6.0.0" eslint-plugin-prettier@^3.1.2: - version "3.3.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz#7079cfa2497078905011e6f82e8dd8453d1371b7" - integrity sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ== + version "3.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7" + integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== dependencies: prettier-linter-helpers "^1.0.0" @@ -1590,17 +1690,17 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint@^7.5.0: - version "7.20.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.20.0.tgz#db07c4ca4eda2e2316e7aa57ac7fc91ec550bdc7" - integrity sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw== + version "7.26.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz#d416fdcdcb3236cd8f282065312813f8c13982f6" + integrity sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.3.0" + "@eslint/eslintrc" "^0.4.1" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -1613,10 +1713,10 @@ eslint@^7.5.0: espree "^7.3.1" esquery "^1.4.0" esutils "^2.0.2" - file-entry-cache "^6.0.0" + file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" glob-parent "^5.0.0" - globals "^12.1.0" + globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" @@ -1624,7 +1724,7 @@ eslint@^7.5.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.20" + lodash "^4.17.21" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -1681,9 +1781,9 @@ esutils@^2.0.2: integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== events@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== execa@^5.0.0: version "5.0.0" @@ -1760,7 +1860,7 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^6.0.0: +file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== @@ -1817,10 +1917,10 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== -free-style@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/free-style/-/free-style-2.6.1.tgz#6af512568291195854842cbbaacd95578a6a9a8b" - integrity sha512-uaVA8e57tvhrFKAl6x32SGIrGFBoeTAFtfHDzWxjPhiXQiUxOI6EEdEReRkjNO2H9XcdMJXXEnMHw8Q7iMYLbw== +free-style@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/free-style/-/free-style-3.1.0.tgz#4e2996029534e6b1731611d843437b9e2f473f08" + integrity sha512-vJujYSIyT30iDoaoeigNAxX4yB1RUrh+N2ZMhIElMr3BvCuGXOw7XNJMEEJkDUeamK2Rnb/IKFGKRKlTWIGRWA== fs-extra@^8.1.0: version "8.1.0" @@ -1863,7 +1963,7 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -get-intrinsic@^1.0.2: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== @@ -1892,9 +1992,9 @@ get-stream@^5.1.0: pump "^3.0.0" get-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" - integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== git-hooks-list@1.0.3: version "1.0.3" @@ -1914,9 +2014,9 @@ glob-to-regexp@^0.4.1: integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -1932,6 +2032,13 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" +globals@^13.6.0: + version "13.8.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" + integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== + dependencies: + type-fest "^0.20.2" + globby@10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.0.tgz#abfcd0630037ae174a88590132c2f6804e291072" @@ -1973,6 +2080,11 @@ gud@^1.0.0: resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -1983,10 +2095,10 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== has@^1.0.3: version "1.0.3" @@ -2000,14 +2112,14 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -htmlparser2@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.1.0.tgz#9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78" - integrity sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q== +htmlparser2@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== dependencies: domelementtype "^2.0.1" - domhandler "^3.0.0" - domutils "^2.0.0" + domhandler "^4.0.0" + domutils "^2.5.2" entities "^2.0.0" http-cache-semantics@^4.0.0: @@ -2047,6 +2159,11 @@ ignore@^5.1.1: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +immediate@^3.2.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" + integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== + import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -2073,11 +2190,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -2091,7 +2203,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@2, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2125,27 +2237,46 @@ interpret@^2.2.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== +is-arguments@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-callable@^1.1.4, is-callable@^1.2.2: +is-bigint@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" + integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + +is-boolean-object@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" + integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + dependencies: + call-bind "^1.0.2" + +is-callable@^1.1.4, is-callable@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== dependencies: has "^1.0.3" is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" + integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== is-extglob@^2.1.1: version "2.1.1" @@ -2169,6 +2300,11 @@ is-negative-zero@^2.0.1: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +is-number-object@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" + integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -2186,25 +2322,35 @@ is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-regex@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-regex@^1.0.4, is-regex@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" + integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== dependencies: call-bind "^1.0.2" - has-symbols "^1.0.1" + has-symbols "^1.0.2" is-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== +is-string@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" + integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: - has-symbols "^1.0.1" + has-symbols "^1.0.2" isexe@^2.0.0: version "2.0.0" @@ -2216,6 +2362,11 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +isomorphic.js@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/isomorphic.js/-/isomorphic.js-0.2.4.tgz#24ca374163ae54a7ce3b86ce63b701b91aa84969" + integrity sha512-Y4NjZceAwaPXctwsHgNsmfuPxR8lJ3f8X7QTAkhltrX4oGIv+eTlgHLXn4tWysC9zGTi929gapnPp+8F8cg7nA== + jest-worker@^26.5.0, jest-worker@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -2305,6 +2456,93 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klona@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +level-codec@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" + integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== + dependencies: + buffer "^5.6.0" + +level-concat-iterator@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz#1d1009cf108340252cb38c51f9727311193e6263" + integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== + +level-errors@^2.0.0, level-errors@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8" + integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== + dependencies: + errno "~0.1.1" + +level-iterator-stream@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" + integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== + dependencies: + inherits "^2.0.4" + readable-stream "^3.4.0" + xtend "^4.0.2" + +level-js@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/level-js/-/level-js-5.0.2.tgz#5e280b8f93abd9ef3a305b13faf0b5397c969b55" + integrity sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg== + dependencies: + abstract-leveldown "~6.2.3" + buffer "^5.5.0" + inherits "^2.0.3" + ltgt "^2.1.2" + +level-packager@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939" + integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== + dependencies: + encoding-down "^6.3.0" + levelup "^4.3.2" + +level-supports@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" + integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== + dependencies: + xtend "^4.0.2" + +level@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/level/-/level-6.0.1.tgz#dc34c5edb81846a6de5079eac15706334b0d7cd6" + integrity sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw== + dependencies: + level-js "^5.0.0" + level-packager "^5.1.0" + leveldown "^5.4.0" + +leveldown@^5.4.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98" + integrity sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ== + dependencies: + abstract-leveldown "~6.2.1" + napi-macros "~2.0.0" + node-gyp-build "~4.1.0" + +levelup@^4.3.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" + integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== + dependencies: + deferred-leveldown "~5.3.0" + level-errors "~2.0.0" + level-iterator-stream "~4.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -2313,6 +2551,13 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +lib0@^0.2.31, lib0@^0.2.35, lib0@^0.2.38, lib0@^0.2.41: + version "0.2.41" + resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.41.tgz#57e6e9ffa2eb7c621c891946d150af50fac035bc" + integrity sha512-lZ0I6N81tIDgoPIlUTRhb6mNjPsG5BXIbaK/UbtjakcYnfR+O64bKtIrLXDDnfd7nAo4vpGeZ0mPzbTsNTREcg== + dependencies: + isomorphic.js "^0.2.4" + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -2353,12 +2598,27 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + lodash.escape@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= -lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4: +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -2387,6 +2647,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +ltgt@^2.1.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" + integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= + make-dir@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -2395,9 +2660,9 @@ make-dir@^3.0.2: semver "^6.0.0" marked@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.0.tgz#9662bbcb77ebbded0662a7be66ff929a8611cee5" - integrity sha512-NqRSh2+LlN2NInpqTQnS614Y/3NkVMFFU6sJlRFEpxJ/LHuK/qJECH7/fXZjk4VZstPW/Pevjil/VtSONsLc7Q== + version "2.0.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.3.tgz#3551c4958c4da36897bda2a16812ef1399c8d6b0" + integrity sha512-5otztIIcJfPc2qGTN8cVtOJEjNJZ0jwa46INMagrYfk0EvqtRuEHLsEe0LrFS0/q+ZRKT0+kXK7P2T1AN5lWRA== memorystream@^0.3.1: version "0.3.1" @@ -2415,24 +2680,24 @@ merge2@^1.2.3, merge2@^1.3.0: integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== dependencies: braces "^3.0.1" - picomatch "^2.0.5" + picomatch "^2.2.3" -mime-db@1.46.0: - version "1.46.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" - integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== +mime-db@1.47.0: + version "1.47.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" + integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== mime-types@^2.1.27: - version "2.1.29" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" - integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== + version "2.1.30" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" + integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== dependencies: - mime-db "1.46.0" + mime-db "1.47.0" mimic-fn@^2.1.0: version "2.1.0" @@ -2445,9 +2710,9 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== mini-css-extract-plugin@~1.3.2: - version "1.3.8" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.8.tgz#639047b78c2ee728704285aa468d2a5a8d91d566" - integrity sha512-u+2kVov/Gcs74iz+x3phEBWMAGw2djjnKfYez+Pl/b5dyXL7aM4Lp5QQtIq16CDwRHT/woUJki49gBNMhfm1eA== + version "1.3.9" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz#47a32132b0fd97a119acd530e8421e8f6ab16d5e" + integrity sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A== dependencies: loader-utils "^2.0.0" schema-utils "^3.0.0" @@ -2521,10 +2786,15 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nanoid@^3.1.20: - version "3.1.20" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" - integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== +nanoid@^3.1.23: + version "3.1.23" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" + integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== + +napi-macros@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" + integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== natural-compare@^1.4.0: version "1.4.0" @@ -2599,9 +2869,17 @@ object-assign@^4.1.1: integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + version "1.10.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" + integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -2759,10 +3037,10 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picomatch@^2.0.5, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +picomatch@^2.2.1, picomatch@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" + integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== pidtree@^0.3.0: version "0.3.1" @@ -2815,13 +3093,11 @@ postcss-modules-values@^4.0.0: icss-utils "^5.0.0" postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz#042d74e137db83e6f294712096cb413f5aa612c4" + integrity sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg== dependencies: cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" util-deprecate "^1.0.2" postcss-value-parser@^4.1.0: @@ -2834,17 +3110,8 @@ postcss@^7.0.27: resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^8.2.4: - version "8.2.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.6.tgz#5d69a974543b45f87e464bc4c3e392a97d6be9fe" - integrity sha512-xpB8qYxgPuly166AGlpRjUdEYtmOWx2iCwGmrv4vqZL9YPVviDVPZPRXxnXr6xPZOdxQ9lp3ZBFCRgWJ7LE3Sg== - dependencies: - colorette "^1.2.1" - nanoid "^3.1.20" + colorette "^1.2.2" + nanoid "^3.1.23" source-map "^0.6.1" prelude-ls@^1.2.1: @@ -2870,9 +3137,14 @@ prettier@^1.19.0: integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== prettier@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + version "2.3.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" + integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= progress@^2.0.0: version "2.0.3" @@ -2893,6 +3165,11 @@ prop-types@^15.6.1, prop-types@^15.6.2: object-assign "^4.1.1" react-is "^16.8.1" +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -2922,9 +3199,9 @@ querystringify@^2.1.1: integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== queue-microtask@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.2.tgz#abf64491e6ecf0f38a6502403d4cda04f372dfd3" - integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== randombytes@^2.1.0: version "2.1.0" @@ -2952,13 +3229,13 @@ rc@^1.2.8: strip-json-comments "~2.0.1" react-dom@^17.0.1: - version "17.0.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6" - integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug== + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - scheduler "^0.20.1" + scheduler "^0.20.2" react-is@^16.8.1: version "16.13.1" @@ -2971,12 +3248,13 @@ react-lifecycles-compat@^3.0.4: integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== react-popper@^1.3.7: - version "1.3.10" - resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.10.tgz#96fd88cc1bf45957e551c5053afea7adc0b1d4d8" - integrity sha512-sZfwHtHCMst0L0G/c83/Y/K1f9fNWMEKsk/cGAor68rQBHB75WuDQ7k95tkce8QNaUHhg9uFXIJbZO0eWRvJbw== + version "1.3.11" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.11.tgz#a2cc3f0a67b75b66cfa62d2c409f9dd1fcc71ffd" + integrity sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg== dependencies: "@babel/runtime" "^7.1.2" "@hypnosphi/create-react-context" "^0.3.1" + deep-equal "^1.1.1" popper.js "^1.14.4" prop-types "^15.6.1" typed-styles "^0.0.7" @@ -2993,9 +3271,9 @@ react-transition-group@^2.9.0: react-lifecycles-compat "^3.0.4" react@^17.0.1: - version "17.0.1" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" - integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w== + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -3009,6 +3287,15 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" +readable-stream@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + rechoir@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" @@ -3021,6 +3308,14 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== +regexp.prototype.flags@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + regexpp@^3.0.0, regexpp@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" @@ -3120,13 +3415,13 @@ run-parallel@^1.1.9: queue-microtask "^1.2.2" rxjs@^6.6.0: - version "6.6.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" - integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -safe-buffer@^5.1.0: +safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -3136,20 +3431,23 @@ safe-buffer@^5.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sanitize-html@~1.27.4: - version "1.27.5" - resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.27.5.tgz#6c8149462adb23e360e1bb71cc0bae7f08c823c7" - integrity sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A== +sanitize-html@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.3.3.tgz#3db382c9a621cce4c46d90f10c64f1e9da9e8353" + integrity sha512-DCFXPt7Di0c6JUnlT90eIgrjs6TsJl/8HYU3KLdmrVclFN4O0heTcVbJiMa23OKVr6aR051XYtsgd8EWwEBwUA== dependencies: - htmlparser2 "^4.1.0" - lodash "^4.17.15" + deepmerge "^4.2.2" + escape-string-regexp "^4.0.0" + htmlparser2 "^6.0.0" + is-plain-object "^5.0.0" + klona "^2.0.3" parse-srcset "^1.0.2" - postcss "^7.0.27" + postcss "^8.0.2" -scheduler@^0.20.1: - version "0.20.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c" - integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw== +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -3182,10 +3480,10 @@ semver@^6.0.0, semver@^6.2.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== +semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" @@ -3322,7 +3620,7 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -ssri@^8.0.0: +ssri@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== @@ -3330,9 +3628,9 @@ ssri@^8.0.0: minipass "^3.1.1" string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" @@ -3347,7 +3645,7 @@ string.prototype.padend@^3.0.0: define-properties "^1.1.3" es-abstract "^1.18.0-next.2" -string.prototype.trimend@^1.0.3: +string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== @@ -3355,7 +3653,7 @@ string.prototype.trimend@^1.0.3: call-bind "^1.0.2" define-properties "^1.1.3" -string.prototype.trimstart@^1.0.3: +string.prototype.trimstart@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== @@ -3363,6 +3661,13 @@ string.prototype.trimstart@^1.0.3: call-bind "^1.0.2" define-properties "^1.1.3" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -3405,13 +3710,6 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -3428,14 +3726,16 @@ svg-url-loader@~6.0.0: loader-utils "~2.0.0" table@^6.0.4: - version "6.0.7" - resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" - integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== + version "6.7.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.0.tgz#26274751f0ee099c547f6cb91d3eff0d61d155b2" + integrity sha512-SAM+5p6V99gYiiy2gT5ArdzgM1dLDed0nkrWmG6Fry/bUS/m9x83BwpJUOf1Qj/x2qJd+thL6IkIx7qPGRxqBw== dependencies: - ajv "^7.0.2" - lodash "^4.17.20" + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" slice-ansi "^4.0.0" string-width "^4.2.0" + strip-ansi "^6.0.0" tapable@^2.1.1, tapable@^2.2.0: version "2.2.0" @@ -3482,9 +3782,9 @@ terser-webpack-plugin@^5.1.1: terser "^5.5.1" terser@^5.3.4, terser@^5.5.1: - version "5.6.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz#138cdf21c5e3100b1b3ddfddf720962f88badcd2" - integrity sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA== + version "5.7.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" + integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -3537,9 +3837,9 @@ tslib@~1.13.0: integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== tsutils@^3.17.1: - version "3.20.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.20.0.tgz#ea03ea45462e146b53d70ce0893de453ff24f698" - integrity sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg== + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" @@ -3550,10 +3850,15 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^0.8.1: version "0.8.1" @@ -3576,17 +3881,22 @@ typescript@~4.1.3: integrity sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA== typestyle@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/typestyle/-/typestyle-2.0.4.tgz#b8da5feaf8a4f9d1f69066f3cc4659098bd08457" - integrity sha512-+57eGqcEjiAc51hB/zXnZFoVuzwuxb9WbPpb1VT2zPJPIo88wGXod7dHa0IJ1Ue+sncHj2WZMZEPJRAqwVraoA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/typestyle/-/typestyle-2.1.0.tgz#7c5cc567de72cd8bfb686813150b92791aaa7636" + integrity sha512-6uCYPdG4xWLeEcl9O0GtNFnNGhami+irKiLsXSuvWHC/aTS7wdj49WeikWAKN+xHN3b1hm+9v0svwwgSBhCsNA== dependencies: - csstype "^2.4.0" - free-style "2.6.1" + csstype "2.6.9" + free-style "3.1.0" -uniq@^1.0.1: +unbox-primitive@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" unique-filename@^1.1.1: version "1.1.1" @@ -3635,10 +3945,10 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@~1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== +url-parse@~1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -3651,15 +3961,15 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" -util-deprecate@^1.0.2: +util-deprecate@^1.0.1, util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" - integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== validate-npm-package-license@^3.0.1: version "3.0.4" @@ -3685,17 +3995,16 @@ watchpack@^2.0.0: graceful-fs "^4.1.2" webpack-cli@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.5.0.tgz#b5213b84adf6e1f5de6391334c9fa53a48850466" - integrity sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q== + version "4.7.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.7.0.tgz#3195a777f1f802ecda732f6c95d24c0004bc5a35" + integrity sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.0.1" - "@webpack-cli/info" "^1.2.2" - "@webpack-cli/serve" "^1.3.0" + "@webpack-cli/configtest" "^1.0.3" + "@webpack-cli/info" "^1.2.4" + "@webpack-cli/serve" "^1.4.0" colorette "^1.2.1" commander "^7.0.0" - enquirer "^2.3.6" execa "^5.0.0" fastest-levenshtein "^1.0.12" import-local "^3.0.2" @@ -3729,19 +4038,19 @@ webpack-sources@^2.1.1: source-map "^0.6.1" webpack@^5.3.1: - version "5.24.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.24.2.tgz#33790dad631e8b639f4246d762e257720875fe54" - integrity sha512-uxxKYEY4kMNjP+D2Y+8aw5Vd7ar4pMuKCNemxV26ysr1nk0YDiQTylg9U3VZIdkmI0YHa0uC8ABxL+uGxGWWJg== + version "5.37.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.37.0.tgz#2ab00f613faf494504eb2beef278dab7493cc39d" + integrity sha512-yvdhgcI6QkQkDe1hINBAJ1UNevqNGTVaCkD2SSJcB8rcrNNl922RI8i2DXUAuNfANoxwsiXXEA4ZPZI9q2oGLA== dependencies: "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.46" + "@types/estree" "^0.0.47" "@webassemblyjs/ast" "1.11.0" "@webassemblyjs/wasm-edit" "1.11.0" "@webassemblyjs/wasm-parser" "1.11.0" - acorn "^8.0.4" + acorn "^8.2.1" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.7.0" + enhanced-resolve "^5.8.0" es-module-lexer "^0.4.0" eslint-scope "^5.1.1" events "^3.2.0" @@ -3757,6 +4066,17 @@ webpack@^5.3.1: watchpack "^2.0.0" webpack-sources "^2.1.1" +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -3794,6 +4114,13 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + ws@^7.2.0: version "7.5.0" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.0.tgz#0033bafea031fb9df041b2026fc72a571ca44691" @@ -3804,6 +4131,13 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yjs@^13.5.3: + version "13.5.5" + resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.5.tgz#8a52a7354006e04a54dc62c9ffbbd7c606e20ded" + integrity sha512-sbE4G+bSP0jw71aJ9Hqi5UxOTy8JGkObIaCSpY6krRoNqssPCWq05rqV9PQcuMqcrHD3twzko92fVaF1S3id/Q== + dependencies: + lib0 "^0.2.38" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From e365918a746e566463d1b86070cba2b0c1161333 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Fri, 14 May 2021 13:17:55 +0200 Subject: [PATCH 02/17] Enable a basic collaborative model --- package.json | 31 +-- src/factory.ts | 40 ++-- src/index.ts | 2 +- src/model.ts | 298 +++++++++++++++++++++-------- src/panel.ts | 89 ++++++--- src/widget.ts | 24 +-- yarn.lock | 501 ++++++++++++++++++++++++++----------------------- 7 files changed, 597 insertions(+), 388 deletions(-) diff --git a/package.json b/package.json index dfd2f8eb..c4498459 100644 --- a/package.json +++ b/package.json @@ -33,8 +33,9 @@ "build:lib": "rimraf lib/drawio && mkdir -p lib/drawio && cp -R src/drawio lib && tsc", "build:prod": "jlpm run build:lib && jlpm run build:labextension", "clean": "jlpm run clean:lib", - "clean:all": "jlpm run clean:lib && jlpm run clean:labextension", + "clean:all": "jlpm run clean:lib && jlpm run clean:labextension && jlpm run clean:node", "clean:labextension": "rimraf jupyterlab-drawio/labextension", + "clean:node": "rimraf node_modules yarn.lock", "clean:lib": "rimraf lib tsconfig.tsbuildinfo", "eslint": "eslint . --ext .ts,.tsx --fix", "eslint:check": "eslint . --ext .ts,.tsx", @@ -45,26 +46,28 @@ "watch:src": "tsc -w" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.7", - "@jupyterlab/apputils": "^3.1.0-alpha.7", - "@jupyterlab/coreutils": "^5.1.0-alpha.7", - "@jupyterlab/docregistry": "^3.1.0-alpha.7", - "@jupyterlab/filebrowser": "^3.1.0-alpha.7", - "@jupyterlab/launcher": "^3.1.0-alpha.7", - "@jupyterlab/mainmenu": "^3.1.0-alpha.7", - "@jupyterlab/observables": "^4.1.0-alpha.7", - "@jupyterlab/services": "~6.1.0-alpha.7", - "@jupyterlab/shared-models": "^3.1.0-alpha.7", - "@jupyterlab/ui-components": "^3.1.0-alpha.7", + "@jupyterlab/application": "^3.1.0-alpha.8", + "@jupyterlab/apputils": "^3.1.0-alpha.8", + "@jupyterlab/coreutils": "^5.1.0-alpha.8", + "@jupyterlab/docregistry": "^3.1.0-alpha.8", + "@jupyterlab/filebrowser": "^3.1.0-alpha.8", + "@jupyterlab/launcher": "^3.1.0-alpha.8", + "@jupyterlab/mainmenu": "^3.1.0-alpha.8", + "@jupyterlab/observables": "^4.1.0-alpha.8", + "@jupyterlab/services": "~6.1.0-alpha.8", + "@jupyterlab/shared-models": "^3.1.0-alpha.8", + "@jupyterlab/ui-components": "^3.1.0-alpha.8", "@lumino/commands": "^1.12.0", "@lumino/coreutils": "^1.5.3", "@lumino/signaling": "^1.4.3", "@lumino/widgets": "^1.19.0", + "fast-xml-parser": "^3.19.0", "react": "^17.0.1", - "react-dom": "^17.0.1" + "react-dom": "^17.0.1", + "yjs": "^13.5.3" }, "devDependencies": { - "@jupyterlab/builder": "^3.0.5", + "@jupyterlab/builder": "^3.1.0-alpha.8", "@typescript-eslint/eslint-plugin": "^2.27.0", "@typescript-eslint/parser": "^2.27.0", "eslint": "^7.5.0", diff --git a/src/factory.ts b/src/factory.ts index 60f0c87c..78e42589 100644 --- a/src/factory.ts +++ b/src/factory.ts @@ -33,7 +33,7 @@ export class DrawIOWidgetFactory extends ABCWidgetFactory< return new DrawIODocumentWidget({ context, commands: this._commands, - content: new DrawIOWidget() + content: new DrawIOWidget(context) }); } @@ -48,14 +48,11 @@ export namespace DrawIOWidgetFactory { } export class DrawIODocumentModelFactory - implements DocumentRegistry.IModelFactory { - - constructor() {} - - /** + implements DocumentRegistry.IModelFactory { + /** * The name of the model. */ - get name(): string { + get name(): string { return 'dio'; } @@ -73,24 +70,27 @@ export class DrawIODocumentModelFactory return 'text'; } - /** + /** * Get whether the model factory has been disposed. */ - get isDisposed(): boolean { + get isDisposed(): boolean { return this._disposed; } - dispose(): void { - this._disposed = true; - } + dispose(): void { + this._disposed = true; + } - preferredLanguage(path: string): string { - return ''; - } + preferredLanguage(path: string): string { + return ''; + } - createNew(languagePreference?: string, modelDB?: IModelDB): DrawIODocumentModel { - return new DrawIODocumentModel(languagePreference, modelDB); - } + createNew( + languagePreference?: string, + modelDB?: IModelDB + ): DrawIODocumentModel { + return new DrawIODocumentModel(languagePreference, modelDB); + } - private _disposed = false; -} \ No newline at end of file + private _disposed = false; +} diff --git a/src/index.ts b/src/index.ts index 90d7ab40..56110d9e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -111,7 +111,7 @@ function activate( tracker.add(widget); }); app.docRegistry.addWidgetFactory(widgetFactory); - + const modelFactory = new DrawIODocumentModelFactory(); app.docRegistry.addModelFactory(modelFactory); diff --git a/src/model.ts b/src/model.ts index 9a0ca34c..9607d138 100644 --- a/src/model.ts +++ b/src/model.ts @@ -14,7 +14,12 @@ import { DocumentRegistry } from '@jupyterlab/docregistry'; -import { ISharedDocument, YFile } from '@jupyterlab/shared-models'; +import { + ISharedDocument, + YDocument, + Delta, + MapChange +} from '@jupyterlab/shared-models'; import { IChangedArgs } from '@jupyterlab/coreutils'; @@ -24,82 +29,225 @@ import { PartialJSONValue, ReadonlyPartialJSONValue } from '@lumino/coreutils'; import { ISignal, Signal } from '@lumino/signaling'; +import * as Y from 'yjs'; + +import { parse } from 'fast-xml-parser'; export class DrawIODocumentModel implements DocumentRegistry.IModel { - - /** + /** * Construct a new DrawIODocumentModel. */ - constructor(languagePreference?: string, modelDB?: IModelDB) { - this.modelDB = modelDB || new ModelDB(); - console.debug(this.modelDB); - } - - get dirty(): boolean { - return this._dirty; - } - set dirty(value: boolean) { - this._dirty = value; - } - - get readOnly(): boolean { - return this._readOnly; - } - set readOnly(value: boolean) { - this._readOnly = value; - } - - get isDisposed(): boolean { - return this._isDisposed; - } - - get contentChanged(): ISignal { - return this._contentChanged; - } - - get stateChanged(): ISignal> { - return this._stateChanged; - } - - readonly defaultKernelName: string; - - readonly defaultKernelLanguage: string; - - readonly modelDB: IModelDB; - - readonly sharedModel: ISharedDocument = YFile.create(); - - dispose(): void { - this._isDisposed = true; - } - - toString(): string { - // TODO: Return content from shared model - console.warn("toString(): Not implemented"); - return ''; - } - - fromString(value: string): void { - // TODO: Add content to shared model - console.warn("fromString(): Not implemented"); - } - - toJSON(): PartialJSONValue { - // TODO: Return content from shared model - console.warn("toJSON(): Not implemented"); - return {}; - } - - fromJSON(value: ReadonlyPartialJSONValue): void { - // TODO: Add content to shared model - console.warn("fromJSON(): Not implemented"); - } - - initialize(): void {} - - private _dirty = false; - private _readOnly = false; - private _isDisposed = false; - private _contentChanged = new Signal(this); - private _stateChanged = new Signal>(this); + constructor(languagePreference?: string, modelDB?: IModelDB) { + this.modelDB = modelDB || new ModelDB(); + } + + get dirty(): boolean { + return this._dirty; + } + set dirty(value: boolean) { + this._dirty = value; + } + + get readOnly(): boolean { + return this._readOnly; + } + set readOnly(value: boolean) { + this._readOnly = value; + } + + get isDisposed(): boolean { + return this._isDisposed; + } + + get contentChanged(): ISignal { + return this._contentChanged; + } + + get stateChanged(): ISignal> { + return this._stateChanged; + } + + readonly defaultKernelName: string; + + readonly defaultKernelLanguage: string; + + readonly modelDB: IModelDB; + + readonly sharedModel: ISharedXMLFile = XMLFile.create(); + + dispose(): void { + this._isDisposed = true; + } + + toString(): string { + // TODO: Return content from shared model + console.info( + 'DrawIODocumentModel.toString():', + this.sharedModel.getSource() + ); + throw new Error('not implemented'); + return this.sharedModel.getSource(); + } + + fromString(value: string): void { + // TODO: Add content to shared model + //console.info("DrawIODocumentModel.fromString():", value); + this.sharedModel.setSource(value); + } + + toJSON(): PartialJSONValue { + // TODO: Return content from shared model + console.warn('toJSON(): Not implemented'); + return {}; + } + + fromJSON(value: ReadonlyPartialJSONValue): void { + // TODO: Add content to shared model + console.warn('fromJSON(): Not implemented'); + } + + initialize(): void { + console.warn('fromJSON(): Not implemented'); + } + + private _dirty = false; + private _readOnly = false; + private _isDisposed = false; + private _contentChanged = new Signal(this); + private _stateChanged = new Signal>(this); +} + +export type XMLChange = { + graphChanged?: Delta; + rootChanged?: Delta; + contextChange?: MapChange; +}; + +/** + * Text/Markdown/Code files are represented as ISharedFile + */ +export interface ISharedXMLFile extends ISharedDocument { + /** + * The changed signal. + */ + readonly changed: ISignal; + /** + * Gets cell's source. + * + * @returns Cell's source. + */ + getSource(): string; + + /** + * Sets cell's source. + * + * @param value: New source. + */ + setSource(value: string): void; + + /** + * Replace content from `start' to `end` with `value`. + * + * @param start: The start index of the range to replace (inclusive). + * + * @param end: The end index of the range to replace (exclusive). + * + * @param value: New source (optional). + */ + updateSource(start: number, end: number, value?: string): void; +} + +export class XMLFile extends YDocument implements ISharedDocument { + constructor() { + super(); + console.debug('XMLFile:', this.ydoc); + this._mxGraphAttributes = this.ydoc.getMap('attributes'); + this._root = this.ydoc.getXmlFragment('root'); + console.debug(this._root instanceof Y.XmlFragment); + this._root.insert(0, [new Y.XmlElement('cell')]); + + this._mxGraphAttributes.observeDeep(this._modelObserver); + this._root.observeDeep(this._cellsObserver); + } + + /** + * Handle a change to the _mxGraphModel. + */ + private _modelObserver = (events: Y.YEvent[]): void => { + const changes: XMLChange = {}; + //changes.graphChanged = events.find();.delta as any; + this._changed.emit(changes); + }; + + /** + * Handle a change to the _mxGraphModel. + */ + private _cellsObserver = (events: Y.YEvent[]): void => { + const changes: XMLChange = {}; + //changes.graphChanged = events.find();.delta as any; + this._changed.emit(changes); + }; + + public static create(): XMLFile { + return new XMLFile(); + } + + /** + * Gets cell's source. + * + * @returns Cell's source. + */ + public getSource(): string { + const serializer = new XMLSerializer(); + + const doc = new Y.XmlElement('mxGraphModel'); + + this._mxGraphAttributes.forEach((key, value) => { + console.debug('key:', key, 'value:', value); + doc.setAttribute(key, value); + }); + + const root = this._root.get(0).clone() as Y.XmlElement; + root.nodeName = 'root'; + doc.insert(0, [root]); + + return serializer.serializeToString(doc.toDOM()); + } + + /** + * Sets cell's source. + * + * @param value: New source. + */ + public setSource(value: string): void { + const doc = parse(value); + console.debug('setSource:', doc); + this.transact(() => { + console.debug(doc['mxGraphModel']); + doc['mxGraphModel'].attributes.map((key: string, value: any) => { + console.debug(key, value); + }); + //this._source.delete(0, this._source.length); + //this._source.insert(0, [new XmlElement(value)]); + }); + } + + /** + * Replace content from `start' to `end` with `value`. + * + * @param start: The start index of the range to replace (inclusive). + * + * @param end: The end index of the range to replace (exclusive). + * + * @param value: New source (optional). + */ + public updateSource(start: number, end: number, value = ''): void { + this.transact(() => { + //this._source.delete(start, end - start); + //this._source.insert(0, [new XmlElement(value)]); + }); + } + + private _mxGraphAttributes: Y.Map; + private _root: Y.XmlFragment; } diff --git a/src/panel.ts b/src/panel.ts index 203c14bf..873803ca 100644 --- a/src/panel.ts +++ b/src/panel.ts @@ -1,9 +1,9 @@ -import { Widget } from '@lumino/widgets'; - -import { Signal, ISignal } from '@lumino/signaling'; +import { DocumentRegistry } from '@jupyterlab/docregistry'; import { PromiseDelegate } from '@lumino/coreutils'; +import { Widget } from '@lumino/widgets'; + /* This is a typing-only import. If you use it directly, the mxgraph content will be included in the main JupyterLab js bundle. @@ -15,6 +15,8 @@ import './drawio/css/common.css'; import './drawio/styles/grapheditor.css'; +import { DrawIODocumentModel } from './model'; + import { grapheditorTxt, defaultXml } from './pack'; const w = window as any; @@ -42,17 +44,25 @@ export class DrawIOWidget extends Widget { * * @param info - The `DashboardView` metadata. */ - constructor() { + constructor(context: DocumentRegistry.IContext) { super(); - void Private.ensureMx().then(mx => this._loadDrawIO(mx)); - //this._loadDrawIO(MX); + this._context = context; + this._context.ready.then(value => { + console.debug('DrawIOWidget context ready'); + Private.ensureMx().then(mx => { + this._loadDrawIO(mx); + this._context.model.sharedModel.changed.connect( + this._onContentChanged, + this + ); + }); + }); } /** * Dispose of the resources held by the widget. */ dispose(): void { - Signal.clearData(this); this._editor.destroy(); super.dispose(); } @@ -64,10 +74,6 @@ export class DrawIOWidget extends Widget { return this._ready; } - get graphChanged(): ISignal { - return this._graphChanged; - } - get mx(): any { return this._mx; } @@ -88,21 +94,6 @@ export class DrawIOWidget extends Widget { return this._editor.actions.actions; } - setContent(newValue: string): void { - if (this._editor === undefined) { - return; - } - - const oldValue = this._mx.mxUtils.getXml(this._editor.editor.getGraphXml()); - - if (oldValue !== newValue && !this._editor.editor.graph.isEditing()) { - if (newValue.length) { - const xml = this._mx.mxUtils.parseXml(newValue); - this._editor.editor.setGraphXml(xml.documentElement); - } - } - } - //Direction public toggleCellStyles(flip: string): void { let styleFlip = this._editor.mx.mxConstants.STYLE_FLIPH; @@ -369,6 +360,23 @@ export class DrawIOWidget extends Widget { }, true); } + private _onContentChanged(): void { + console.debug('_onContentChanged'); + const newValue = this._context.model.sharedModel.getSource(); + if (this._editor === undefined) { + return; + } + + const oldValue = this._mx.mxUtils.getXml(this._editor.editor.getGraphXml()); + + if (oldValue !== newValue && !this._editor.editor.graph.isEditing()) { + if (newValue.length) { + const xml = this._mx.mxUtils.parseXml(newValue); + this._editor.editor.setGraphXml(xml.documentElement); + } + } + } + private _loadDrawIO(mx: Private.MX): void { this._mx = mx; @@ -389,9 +397,12 @@ export class DrawIOWidget extends Widget { this._editor = new this._mx.EditorUi(new Editor(false, themes), this.node); this._editor.refresh(); + //console.debug(this._mx.Editor); + //console.debug(this._editor.editor.graph.model); this._editor.editor.graph.model.addListener( this._mx.mxEvent.NOTIFY, (sender: any, evt: any) => { + console.debug('Event:', evt); const changes: any[] = evt.properties.changes; for (let i = 0; i < changes.length; i++) { if (changes[i].root) { @@ -405,10 +416,29 @@ export class DrawIOWidget extends Widget { const graph = this._editor.editor.getGraphXml(); const xml = this._mx.mxUtils.getXml(graph); - this._graphChanged.emit(xml); + this._context.model.sharedModel.setSource(xml); } ); + /* this._editor.editor.graph.model.addListener( + this._mx.mxEvent.NOTIFY, + (sender: any, evt: any) => { + var changes = evt.getProperty('edit').changes; + + for (var i = 0; i < changes.length; i++) + { + var change = changes[i]; + + if ( + change instanceof this._mx.mxChildChange && + change.change.previous == null + ) { + this._editor.editor.graph.startEditingAtCell(change.child); + break; + } + } + }); */ + this._promptSpacing = this._mx.mxUtils.bind( this, (defaultValue: any, fn: any) => { @@ -427,14 +457,17 @@ export class DrawIOWidget extends Widget { } ); + const data = this._context.model.sharedModel.getSource(); + const xml = this._mx.mxUtils.parseXml(data); + this._editor.editor.setGraphXml(xml.documentElement); this._ready.resolve(void 0); } private _editor: any; private _mx: Private.MX; private _promptSpacing: any; + private _context: DocumentRegistry.IContext; private _ready = new PromiseDelegate(); - private _graphChanged = new Signal(this); } /** diff --git a/src/widget.ts b/src/widget.ts index 82a80465..ed2bb046 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -45,8 +45,13 @@ import { const DIRTY_CLASS = 'jp-mod-dirty'; -export class DrawIODocumentWidget extends DocumentWidget { - constructor(options: DrawIODocumentWidget.IOptions) { +export class DrawIODocumentWidget extends DocumentWidget< + DrawIOWidget, + DrawIODocumentModel +> { + constructor( + options: DrawIODocumentWidget.IOptions + ) { super(options); // Adding the buttons to the widget toolbar // Modify containers style: line ~92700 @@ -79,20 +84,19 @@ export class DrawIODocumentWidget extends DocumentWidget { + console.debug('Context ready'); await this.content.ready.promise; this._onTitleChanged(); this._addToolbarItems(); - this.content.setContent(this.context.model.toString()); this._handleDirtyStateNew(); - this.context.pathChanged.connect(this._onTitleChanged, this); - this.context.model.contentChanged.connect(this._onContentChanged, this); this.context.model.stateChanged.connect( this._onModelStateChangedNew, this ); - this.content.graphChanged.connect(this._saveToContext, this); + + this.context.pathChanged.connect(this._onTitleChanged, this); }); } @@ -166,14 +170,6 @@ export class DrawIODocumentWidget extends DocumentWidget diff --git a/yarn.lock b/yarn.lock index 907a1b21..dc19e8db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -65,9 +65,9 @@ tslib "~1.13.0" "@discoveryjs/json-ext@^0.5.0": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" - integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== + version "0.5.3" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" + integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== "@eslint/eslintrc@^0.4.1": version "0.4.1" @@ -97,22 +97,22 @@ gud "^1.0.0" warning "^4.0.3" -"@jupyterlab/application@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.1.0-alpha.7.tgz#803f79328617b6ee311c94d004c11b7cecbba2ca" - integrity sha512-jdsjm9rds1csr8mogwo2h9wYG5WzJj962I6/Am1+heSR+5ec8ao67xIUeLPLYvJjL7/YlTpCO0FbKmednmFyLA== +"@jupyterlab/application@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.1.0-alpha.8.tgz#25c427e79f09fbf9b36816a47bedd2c4bf394d80" + integrity sha512-qVAa0I/oNhFfj7FR7wTe0lCeK+euujrQn9OzL1dO258TR6Cy/xfjOdVVTIC/PPcJsWXxQmoL8a2ld0MkpN2Lxg== dependencies: "@fortawesome/fontawesome-free" "^5.12.0" - "@jupyterlab/apputils" "^3.1.0-alpha.7" - "@jupyterlab/coreutils" "^5.1.0-alpha.7" - "@jupyterlab/docmanager" "^3.1.0-alpha.7" - "@jupyterlab/docregistry" "^3.1.0-alpha.7" - "@jupyterlab/rendermime" "^3.1.0-alpha.7" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.7" - "@jupyterlab/services" "^6.1.0-alpha.7" - "@jupyterlab/statedb" "^3.1.0-alpha.7" - "@jupyterlab/translation" "^3.1.0-alpha.7" - "@jupyterlab/ui-components" "^3.1.0-alpha.7" + "@jupyterlab/apputils" "^3.1.0-alpha.8" + "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/docmanager" "^3.1.0-alpha.8" + "@jupyterlab/docregistry" "^3.1.0-alpha.8" + "@jupyterlab/rendermime" "^3.1.0-alpha.8" + "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.8" + "@jupyterlab/services" "^6.1.0-alpha.8" + "@jupyterlab/statedb" "^3.1.0-alpha.8" + "@jupyterlab/translation" "^3.1.0-alpha.8" + "@jupyterlab/ui-components" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" "@lumino/application" "^1.16.0" "@lumino/commands" "^1.12.0" @@ -124,17 +124,17 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/apputils@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.1.0-alpha.7.tgz#7245ebee743ccc137687e062cbba69107f817ba1" - integrity sha512-zRXw6LDlIFoH6N/Yc0FlmD0tHlKZAZlhQmvPl/5gRMOHu0QXPYJ+UQgDgTyXwCyyqIGNNs7yYMlFjwcQJVpW/w== - dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.7" - "@jupyterlab/services" "^6.1.0-alpha.7" - "@jupyterlab/settingregistry" "^3.1.0-alpha.7" - "@jupyterlab/statedb" "^3.1.0-alpha.7" - "@jupyterlab/translation" "^3.1.0-alpha.7" - "@jupyterlab/ui-components" "^3.1.0-alpha.7" +"@jupyterlab/apputils@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.1.0-alpha.8.tgz#6dd186bde882dc62b18b0cc37d6cb6b684e838b1" + integrity sha512-CLNAfhTL6hrnVQJ2q5r+0s4MpdCJhF35XkiyyRTx8RgW+ui08jgDTj0Od9J+aX4X7KG0AqXA3EkGJY857YCmew== + dependencies: + "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/services" "^6.1.0-alpha.8" + "@jupyterlab/settingregistry" "^3.1.0-alpha.8" + "@jupyterlab/statedb" "^3.1.0-alpha.8" + "@jupyterlab/translation" "^3.1.0-alpha.8" + "@jupyterlab/ui-components" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -151,14 +151,14 @@ sanitize-html "~2.3.3" url "^0.11.0" -"@jupyterlab/builder@^3.0.5": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/builder/-/builder-3.0.8.tgz#132182cf61959f5b17110f5da035d0625acf318c" - integrity sha512-f5HPbH+oxxZGRt+/hxeuW/217cGyD2jCE2ksy8758WgQGspfQHSNWhshGgGufs/6PfUoKx8vIYY8dmPMn5WdeQ== +"@jupyterlab/builder@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/builder/-/builder-3.1.0-alpha.8.tgz#705f458a5c61f2b11a75bf9bf57c54ea80a83a76" + integrity sha512-C+K3tXaYZVCmYh7k2HuP7egwYRHjZH4cVGC+LBFMTcQDaHCJqY15w9o9x/IlZ/ttdmmBrn2WAn+OYcMx4LCvRw== dependencies: - "@jupyterlab/buildutils" "^3.0.6" + "@jupyterlab/buildutils" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" - "@lumino/application" "^1.13.1" + "@lumino/application" "^1.16.0" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -168,7 +168,7 @@ "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" "@lumino/virtualdom" "^1.8.0" - "@lumino/widgets" "^1.16.1" + "@lumino/widgets" "^1.19.0" ajv "^6.12.3" commander "~6.0.0" css-loader "^5.0.1" @@ -176,6 +176,7 @@ file-loader "~6.0.0" fs-extra "^9.0.1" glob "~7.1.6" + license-webpack-plugin "^2.3.11" mini-css-extract-plugin "~1.3.2" path-browserify "^1.0.0" process "^0.11.10" @@ -191,10 +192,10 @@ webpack-merge "^5.1.2" worker-loader "^3.0.2" -"@jupyterlab/buildutils@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@jupyterlab/buildutils/-/buildutils-3.0.6.tgz#b9a0500c07581471266adc7dea03295d32d911fa" - integrity sha512-S6Hnop5A5KjCCHQt1ob3ABy1VQ94ssbRPsYa04R7mUjVQu5NsIS8Kd0O/+yqtuSaWIJOqCKhRZEev3rgG+dHqw== +"@jupyterlab/buildutils@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/buildutils/-/buildutils-3.1.0-alpha.8.tgz#7924f92b0a59d96d7fcdeae0aa9ab1afe877731e" + integrity sha512-0iggMuQPubF/FboOFxGZO8/T242WUkBQjMMCcAJToywt2sFf2pxbWAzkjgu74mugLvnkikUJQrnMEOwBmfoJ5A== dependencies: "@lumino/coreutils" "^1.5.3" "@yarnpkg/lockfile" "^1.1.0" @@ -205,23 +206,24 @@ fs-extra "^9.0.1" glob "~7.1.6" inquirer "^7.0.0" + minimatch "~3.0.4" package-json "^6.5.0" prettier "^2.1.1" semver "^7.3.2" sort-package-json "~1.44.0" typescript "~4.1.3" -"@jupyterlab/codeeditor@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.1.0-alpha.7.tgz#4462e67dd76eb031e763bd7a7dc723b94ba15c55" - integrity sha512-R0tYdZjTpK56+j7scLUVMEsUK0yHjSbXLLTxiSj66qiHAyZVMufw+F/yTOB8ZmhpoN6a6QOr9TWj8CAHzHi3jw== - dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.7" - "@jupyterlab/nbformat" "^3.1.0-alpha.7" - "@jupyterlab/observables" "^4.1.0-alpha.7" - "@jupyterlab/shared-models" "^3.1.0-alpha.7" - "@jupyterlab/translation" "^3.1.0-alpha.7" - "@jupyterlab/ui-components" "^3.1.0-alpha.7" +"@jupyterlab/codeeditor@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.1.0-alpha.8.tgz#df81ab1b41c93ae2c156bd12110231b88f21d4d5" + integrity sha512-8T6cOio5Feq5vsUuVRmc5afNwzU/NfjOigk6+k4Un+X15l4WXD+z3DHYiUTSbKKwZTWSK3Dx8vbR2NbLmrXQWg== + dependencies: + "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/nbformat" "^3.1.0-alpha.8" + "@jupyterlab/observables" "^4.1.0-alpha.8" + "@jupyterlab/shared-models" "^3.1.0-alpha.8" + "@jupyterlab/translation" "^3.1.0-alpha.8" + "@jupyterlab/ui-components" "^3.1.0-alpha.8" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/dragdrop" "^1.7.1" @@ -229,19 +231,19 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/codemirror@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.1.0-alpha.7.tgz#fadf55b457292724a4c7a83e1b00826b1aa3ba67" - integrity sha512-ndkibm3lw1JlrO1Tzam015FJimSToNHwF3a2xJo7uRn6aWPtV8R2KJxGxOUjc26gLohSLHgH985wm7cGOhNC7g== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.7" - "@jupyterlab/codeeditor" "^3.1.0-alpha.7" - "@jupyterlab/coreutils" "^5.1.0-alpha.7" - "@jupyterlab/nbformat" "^3.1.0-alpha.7" - "@jupyterlab/observables" "^4.1.0-alpha.7" - "@jupyterlab/shared-models" "^3.1.0-alpha.7" - "@jupyterlab/statusbar" "^3.1.0-alpha.7" - "@jupyterlab/translation" "^3.1.0-alpha.7" +"@jupyterlab/codemirror@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.1.0-alpha.8.tgz#793515e964305571b73e8d2236f84adb2429b881" + integrity sha512-tsGWZzXA7XjQB5q1NcGRuJz6qf4FhZHBzaK8j5Q3nNwLfopf4L+tABJ4AUWFftNlonzwy7aO8lX7wbu4X5H9PQ== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.8" + "@jupyterlab/codeeditor" "^3.1.0-alpha.8" + "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/nbformat" "^3.1.0-alpha.8" + "@jupyterlab/observables" "^4.1.0-alpha.8" + "@jupyterlab/shared-models" "^3.1.0-alpha.8" + "@jupyterlab/statusbar" "^3.1.0-alpha.8" + "@jupyterlab/translation" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -253,10 +255,10 @@ react "^17.0.1" y-codemirror "^2.1.0" -"@jupyterlab/coreutils@^5.1.0-alpha.7": - version "5.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.1.0-alpha.7.tgz#07d09cb61dcbcc3a7b9e0441452de8cbae09b8aa" - integrity sha512-bURndusUf04K6kOhdfP3+RDN3d2Uvl6D2ErIRGawUW5uwB2UD8jNwLCG80+6zovqHwHu+wsCGxezw8SHm5xQgw== +"@jupyterlab/coreutils@^5.1.0-alpha.8": + version "5.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.1.0-alpha.8.tgz#389e7b08b90daa2a04f096b924aeca2fa4094dba" + integrity sha512-zS+7DoCTynAyNcgy7Z8uvXVuY/Dke9McuCelE2msCbOf1JtBWV9fabGIY6VOh+Bg8fRUdSLw9TkYqFjCikMBPg== dependencies: "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -266,17 +268,17 @@ path-browserify "^1.0.0" url-parse "~1.5.1" -"@jupyterlab/docmanager@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.1.0-alpha.7.tgz#da694d5d567e41a4287116ed688a0fec720be0fb" - integrity sha512-eKSWeElpur8Vg5tCUizsyiZQQvXgClJX/ia+0m+/YM+KJIRXWCGquxhDaFMcU4KrdKoKGynaPEGqkkSK/J4jZw== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.7" - "@jupyterlab/coreutils" "^5.1.0-alpha.7" - "@jupyterlab/docregistry" "^3.1.0-alpha.7" - "@jupyterlab/services" "^6.1.0-alpha.7" - "@jupyterlab/statusbar" "^3.1.0-alpha.7" - "@jupyterlab/translation" "^3.1.0-alpha.7" +"@jupyterlab/docmanager@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.1.0-alpha.8.tgz#feb783e3c6802d598f7e8929aa99461c4478b55c" + integrity sha512-blF73sbuflI9o7M+OuOqxiJOMXRQbgpVBblS2xMMvWsJPZqLP+v4H05fYmuJQtTCFI7m8LPOmpX1KoGwA7h0jw== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.8" + "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/docregistry" "^3.1.0-alpha.8" + "@jupyterlab/services" "^6.1.0-alpha.8" + "@jupyterlab/statusbar" "^3.1.0-alpha.8" + "@jupyterlab/translation" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -286,33 +288,33 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/docprovider@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/docprovider/-/docprovider-3.1.0-alpha.7.tgz#416c81dacd109da8d0bee6f6b89ddc9c3b5a94c5" - integrity sha512-Z8BCY7XAQEbsn5upDBc8eqJwRPCJCxunloc3vpQP8xHHthdPkLZKDNK/cVGSTTXHjWcjuF7l4hcP586eDoHitA== +"@jupyterlab/docprovider@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/docprovider/-/docprovider-3.1.0-alpha.8.tgz#3c68f2798afcee16b56be9198cd98eb494dd7582" + integrity sha512-TBAC+/T0A/PnBBKCmwQEYGfePxXdKiwLmPrx0O6M9tGOIPAf44nNT38jez+ouLh6ou5CSEdWK3oyPMoMpjawDg== dependencies: - "@jupyterlab/shared-models" "^3.1.0-alpha.7" + "@jupyterlab/shared-models" "^3.1.0-alpha.8" lib0 "^0.2.41" y-websocket "^1.3.11" yjs "^13.5.3" -"@jupyterlab/docregistry@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.1.0-alpha.7.tgz#bb3e52476767d2165e13c40af0c4f5dc4fda30d8" - integrity sha512-olBzMafAd0/cYUZUN4R7JP2fmENTakbeqhPOuuF2nGG+z4DvQaWGy+PoqXEiWH5+/X+Et1AIlTtfRDk56Ojb5w== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.7" - "@jupyterlab/codeeditor" "^3.1.0-alpha.7" - "@jupyterlab/codemirror" "^3.1.0-alpha.7" - "@jupyterlab/coreutils" "^5.1.0-alpha.7" - "@jupyterlab/docprovider" "^3.1.0-alpha.7" - "@jupyterlab/observables" "^4.1.0-alpha.7" - "@jupyterlab/rendermime" "^3.1.0-alpha.7" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.7" - "@jupyterlab/services" "^6.1.0-alpha.7" - "@jupyterlab/shared-models" "^3.1.0-alpha.7" - "@jupyterlab/translation" "^3.1.0-alpha.7" - "@jupyterlab/ui-components" "^3.1.0-alpha.7" +"@jupyterlab/docregistry@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.1.0-alpha.8.tgz#a08aa43d19559c775e43e1459a6ada84d424e307" + integrity sha512-gngeCk7ux15EJuxWIWIaEjWfH6uTmB0WHOXmt+kY/6yR5BTlFJtjeeeuNHjNtOkpVk1Hq9ZrLT4CkgNskBv71w== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.8" + "@jupyterlab/codeeditor" "^3.1.0-alpha.8" + "@jupyterlab/codemirror" "^3.1.0-alpha.8" + "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/docprovider" "^3.1.0-alpha.8" + "@jupyterlab/observables" "^4.1.0-alpha.8" + "@jupyterlab/rendermime" "^3.1.0-alpha.8" + "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.8" + "@jupyterlab/services" "^6.1.0-alpha.8" + "@jupyterlab/shared-models" "^3.1.0-alpha.8" + "@jupyterlab/translation" "^3.1.0-alpha.8" + "@jupyterlab/ui-components" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -321,20 +323,20 @@ "@lumino/widgets" "^1.19.0" yjs "^13.5.3" -"@jupyterlab/filebrowser@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.1.0-alpha.7.tgz#ae3ee45b829e363ff49a9185be9d99976f5da57e" - integrity sha512-LthV8cc4ffYYGW8YJfP6AjSuM5d/cvG3zXWTin5vejtVXtpsIqKhU3kI5fdAL3gqq+o9NboUryjtYugo7mklpQ== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.7" - "@jupyterlab/coreutils" "^5.1.0-alpha.7" - "@jupyterlab/docmanager" "^3.1.0-alpha.7" - "@jupyterlab/docregistry" "^3.1.0-alpha.7" - "@jupyterlab/services" "^6.1.0-alpha.7" - "@jupyterlab/statedb" "^3.1.0-alpha.7" - "@jupyterlab/statusbar" "^3.1.0-alpha.7" - "@jupyterlab/translation" "^3.1.0-alpha.7" - "@jupyterlab/ui-components" "^3.1.0-alpha.7" +"@jupyterlab/filebrowser@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.1.0-alpha.8.tgz#9af7eda151b353eb9eb5ba1ba3b2b5108cc7ae1a" + integrity sha512-VU+YkIx/C5QuNCeKBLmkuHJm227bEUFThemZ15WPAO6F7FMb3hU6N+XRNP3dqDkF1sX4wX9uU3fg8pmlIlgKNg== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.8" + "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/docmanager" "^3.1.0-alpha.8" + "@jupyterlab/docregistry" "^3.1.0-alpha.8" + "@jupyterlab/services" "^6.1.0-alpha.8" + "@jupyterlab/statedb" "^3.1.0-alpha.8" + "@jupyterlab/statusbar" "^3.1.0-alpha.8" + "@jupyterlab/translation" "^3.1.0-alpha.8" + "@jupyterlab/ui-components" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -347,14 +349,14 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/launcher@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/launcher/-/launcher-3.1.0-alpha.7.tgz#2f37b2fc6828caebab7a4fcfb059dc622852f6c8" - integrity sha512-cxu2mKQLZYNMGYP8jiIU4HZmfV44j9GSwiJtcVwHLPXLRgC7Cm9bfKzrIM3pcC38/PP8Nj1GKirteC1hNvHk/g== +"@jupyterlab/launcher@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/launcher/-/launcher-3.1.0-alpha.8.tgz#68ca0908d82472762eb885868c605fe4c5b5dc48" + integrity sha512-itKLt9/vqUZXag/YRXIh4YakTRs3NYho9/yJodqNynWQzQy7BrcDB2A9jXXGdJiw8o/ibDte/jJ+fOGu06BjbA== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.7" - "@jupyterlab/translation" "^3.1.0-alpha.7" - "@jupyterlab/ui-components" "^3.1.0-alpha.7" + "@jupyterlab/apputils" "^3.1.0-alpha.8" + "@jupyterlab/translation" "^3.1.0-alpha.8" + "@jupyterlab/ui-components" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -363,31 +365,31 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/mainmenu@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/mainmenu/-/mainmenu-3.1.0-alpha.7.tgz#85d13266d787f7a6f2b0b0d49011f12b4265dd1c" - integrity sha512-X6UXDR2eODZlBT/BGWvyNXgc09udFmU2wcp5+w18xI8qRL3vNiBoq7A8c/eMnbRhAiXO2CF6hvVkx9cmhqBvDw== +"@jupyterlab/mainmenu@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/mainmenu/-/mainmenu-3.1.0-alpha.8.tgz#59ea14483f60039d807d80745d7ab445dcd79ac2" + integrity sha512-F9Xlek4IPDYoJ4Mg+fj+3LwJePMWWmeVm4iyIIoiz2ymsz0KlfQ0SHuLdwdmuJS94rRwkDt5u6OSYoHNC3MODw== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.7" - "@jupyterlab/services" "^6.1.0-alpha.7" - "@jupyterlab/ui-components" "^3.1.0-alpha.7" + "@jupyterlab/apputils" "^3.1.0-alpha.8" + "@jupyterlab/services" "^6.1.0-alpha.8" + "@jupyterlab/ui-components" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/nbformat@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.1.0-alpha.7.tgz#ce16d9e98fe16738d63f82fb76746cc835619fa4" - integrity sha512-4NoIU7weVjLKvRg+odTaqLMO81aiN8p0wN+jf+Ni7qCWMN+EQHDA8rD0HI3/QKm3NdASCDhrC14/vVS6qeBh3A== +"@jupyterlab/nbformat@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.1.0-alpha.8.tgz#3155a4c81ddd02bd6cb6b63a92f722d4d8c8a5db" + integrity sha512-ITDJhqtHK9XU3jkfFgBsfo+i98A78PsU7TkG4BXh2/XoGv+AkdhCoDolkWyIvMWhoTC28qaAVH1E31BUSxa6MA== dependencies: "@lumino/coreutils" "^1.5.3" -"@jupyterlab/observables@^4.1.0-alpha.7": - version "4.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.1.0-alpha.7.tgz#2d8e904aee84358bbebbd3e70439e9814a172623" - integrity sha512-Joc4Rb79/1Gef2EvOBJHV+vM6BW1ikpj+mXaB8RcKoApPFSgJOp59tB/51Lm8u4CXGBKmK5WzAbYUv5LpMFLfQ== +"@jupyterlab/observables@^4.1.0-alpha.8": + version "4.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.1.0-alpha.8.tgz#f12b2c5b7bf3cf796d1efd6fbd62450c12bcd078" + integrity sha512-lGXxXhFsW6jNwB9nclXRT4t5ugVcWDKKVnJch0wmIjV4IV9C3k/BnIwqWnAPmyv66Slzee3DgpE8ZvlR0RfQMA== dependencies: "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" @@ -395,28 +397,28 @@ "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" -"@jupyterlab/rendermime-interfaces@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.1.0-alpha.7.tgz#e862a348e76f73ba36b44adf2ba085e1da7e347e" - integrity sha512-ph8uZUmjesfpamaOLNMgUz/FBfdd2PH8V9KCrswdBRXmfAfdkDTNjgrRqyE5ZvryBpcK6bedyecQCLZo+YZh+Q== +"@jupyterlab/rendermime-interfaces@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.1.0-alpha.8.tgz#35bbdddabc892e47a5a4a5102e4f6365f42bdf09" + integrity sha512-RmyKjfSPQ24TrG1Z2NHhCK8tBbpPoZZy7Shmxo/0DO74neFzwpGcXNZQp5K2svaaSO+OOwn82eci1Io6MJFTWA== dependencies: - "@jupyterlab/translation" "^3.1.0-alpha.7" + "@jupyterlab/translation" "^3.1.0-alpha.8" "@lumino/coreutils" "^1.5.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/rendermime@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.1.0-alpha.7.tgz#2e37d9e7148a051c7a472e6e2dfbe68067b1a00a" - integrity sha512-wTDcL2zwuqqFcIWEQL8ET6T1BG1TRsknwS+ScwHtiQBP7mYvveQyzyEUJTFd5io6v7HCyOyi2Qi3otfI5oyGmg== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.7" - "@jupyterlab/codemirror" "^3.1.0-alpha.7" - "@jupyterlab/coreutils" "^5.1.0-alpha.7" - "@jupyterlab/nbformat" "^3.1.0-alpha.7" - "@jupyterlab/observables" "^4.1.0-alpha.7" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.7" - "@jupyterlab/services" "^6.1.0-alpha.7" - "@jupyterlab/translation" "^3.1.0-alpha.7" +"@jupyterlab/rendermime@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.1.0-alpha.8.tgz#ae1768f706572fd5acbc207891e3c569e0a3ce43" + integrity sha512-gymm9xNqLHqFmm1rxQZbceKec8vwijyJMgSUMcamlhUJ1lGpj7RvYwSzcsUNTG+6S+c0+NmbtyQHLW7pUfwwEg== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.8" + "@jupyterlab/codemirror" "^3.1.0-alpha.8" + "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/nbformat" "^3.1.0-alpha.8" + "@jupyterlab/observables" "^4.1.0-alpha.8" + "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.8" + "@jupyterlab/services" "^6.1.0-alpha.8" + "@jupyterlab/translation" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" @@ -425,16 +427,16 @@ lodash.escape "^4.0.1" marked "^2.0.0" -"@jupyterlab/services@^6.1.0-alpha.7", "@jupyterlab/services@~6.1.0-alpha.7": - version "6.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.1.0-alpha.7.tgz#e0c9d68363b494ff59ba0c0c2252c9d78bfbd79f" - integrity sha512-AanzgTG7Oia5Nk7Z8d7mmLC391jqYpUDQoOFI9Gxo/VUybHo7SCzD+ixhn/XepmJ7HH6AuNr4x4b/RcnsU7OzQ== +"@jupyterlab/services@^6.1.0-alpha.8", "@jupyterlab/services@~6.1.0-alpha.8": + version "6.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.1.0-alpha.8.tgz#7d70cb26474aaba9979e9dc632539b21371266eb" + integrity sha512-1OPIkdF7zC5rUklD0zfR7Ozyg1RHW5IyY1CKE2ksbxQsBPAB1aPDj9V4CLOyla3l6QBLkPTpm6MTlXgQh/MD8Q== dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.7" - "@jupyterlab/nbformat" "^3.1.0-alpha.7" - "@jupyterlab/observables" "^4.1.0-alpha.7" - "@jupyterlab/settingregistry" "^3.1.0-alpha.7" - "@jupyterlab/statedb" "^3.1.0-alpha.7" + "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/nbformat" "^3.1.0-alpha.8" + "@jupyterlab/observables" "^4.1.0-alpha.8" + "@jupyterlab/settingregistry" "^3.1.0-alpha.8" + "@jupyterlab/statedb" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -443,12 +445,12 @@ node-fetch "^2.6.0" ws "^7.2.0" -"@jupyterlab/settingregistry@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.1.0-alpha.7.tgz#237334801b1f9213ad137f5f7d33de51b7580843" - integrity sha512-LjvfjoWrMT/Bt41qzaSdGT4LAtvkKoHKLHjsyLryyjdfJJT1BD2oJXrLffq6VKjvM/psLUU2t0WS507UsLH1kg== +"@jupyterlab/settingregistry@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.1.0-alpha.8.tgz#1a6f0b087985eb25d2109688bbfc7dea7a959ccd" + integrity sha512-diNdrlu8XGL76qOBpV1LakAAtFgnjIqVvzBDZekpYfkxAjM8GmletsY5n8k0/zblMM+zPX56oGZ3hcGL1LEH9w== dependencies: - "@jupyterlab/statedb" "^3.1.0-alpha.7" + "@jupyterlab/statedb" "^3.1.0-alpha.8" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -456,22 +458,22 @@ ajv "^6.12.3" json5 "^2.1.1" -"@jupyterlab/shared-models@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/shared-models/-/shared-models-3.1.0-alpha.7.tgz#43fb5bc046065d26e5c39071678ceacf2617d262" - integrity sha512-OnAIVd+qRs6AcwEdZpF06lHKiCCKLPA57H/BsEsbeYxRhKoV5NrvqTarZsRjEtCyb4tQL6ne9HOm9/EWluB59Q== +"@jupyterlab/shared-models@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/shared-models/-/shared-models-3.1.0-alpha.8.tgz#9fa40ab8aa670ffbeacc8d80a2537fa898879f9c" + integrity sha512-y8XZGfxbQDkykX8WK3nU1rdZIOqmdiaAUyleyUUNckqtkHRFe1NojDCnD6CTm2FMhfe2V1CRLJ0Z7vSRCCjo2A== dependencies: - "@jupyterlab/nbformat" "^3.1.0-alpha.7" + "@jupyterlab/nbformat" "^3.1.0-alpha.8" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/signaling" "^1.4.3" y-protocols "^1.0.4" yjs "^13.5.3" -"@jupyterlab/statedb@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.1.0-alpha.7.tgz#007b166f3481ebba153a0d2134ddbbfc4190177b" - integrity sha512-lpGnCGssuNrUrHHao6JXo1FutQ+wEcg0BpWAq9uiCo2mAgoyZI2+qBgCqUtCbrJy7f1DYtvmCvszFhy12Y6Ivw== +"@jupyterlab/statedb@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.1.0-alpha.8.tgz#6db4adb8b37f1b9e72022ea6909a4d4b6b6f4641" + integrity sha512-5u+L1rN5TyNnGhMTS/rMa3aqxCkc8odUwfZCfmDK2XUX34O6QwTiwbTNeU5IdQU87HS7wqQvrcOI3fD1yxdzpw== dependencies: "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -479,17 +481,17 @@ "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" -"@jupyterlab/statusbar@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.1.0-alpha.7.tgz#f4ad46b918015e37b71c73244933e94965b08af6" - integrity sha512-ocXxErAq3+Zd1Nfn17k9NBrjDeIhtyEaha2TpvTovXipYdiV7+y+5NjlBwr9GsGRUlOwZBmZtvmVluSfZQtfeQ== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.7" - "@jupyterlab/codeeditor" "^3.1.0-alpha.7" - "@jupyterlab/coreutils" "^5.1.0-alpha.7" - "@jupyterlab/services" "^6.1.0-alpha.7" - "@jupyterlab/translation" "^3.1.0-alpha.7" - "@jupyterlab/ui-components" "^3.1.0-alpha.7" +"@jupyterlab/statusbar@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.1.0-alpha.8.tgz#417e58e1bb7b7535a40ddcee4358e3cd0abc53a8" + integrity sha512-LXru9f4IuVG4ab1YE3mI/mx0qcNz5+0MzsE8b+NAppJcjg8aJpBE/SNTsmR5aUc8K4g4xD9lEAjHuXHF4eywPw== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.8" + "@jupyterlab/codeeditor" "^3.1.0-alpha.8" + "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/services" "^6.1.0-alpha.8" + "@jupyterlab/translation" "^3.1.0-alpha.8" + "@jupyterlab/ui-components" "^3.1.0-alpha.8" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -500,24 +502,24 @@ react "^17.0.1" typestyle "^2.0.4" -"@jupyterlab/translation@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.1.0-alpha.7.tgz#47ec794622a9ea2910c70ad5d7c18086a6fcf696" - integrity sha512-Q2WOC6LEkNQpX52/j9ZPOiuaE9Tmc6AkNnpjoF2cu8m2K2HVot3FQVhddXa/d8O/VgQDPv11H4W9hhjwZQhzzw== +"@jupyterlab/translation@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.1.0-alpha.8.tgz#50166c8aa116d5858533b61357776e2a2a724a9a" + integrity sha512-mePAKKL6fUIpiNCKFTzj6muenZU5VcEr0dePrfcTB00AvKYyP8waDUWLnMv8oMMsZXUWVM8U4f+OevhgOew2Ag== dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.7" - "@jupyterlab/services" "^6.1.0-alpha.7" - "@jupyterlab/statedb" "^3.1.0-alpha.7" + "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/services" "^6.1.0-alpha.8" + "@jupyterlab/statedb" "^3.1.0-alpha.8" "@lumino/coreutils" "^1.5.3" -"@jupyterlab/ui-components@^3.1.0-alpha.7": - version "3.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.1.0-alpha.7.tgz#c4a63861d7c58da54bb11974c5387cbaa77f00d6" - integrity sha512-PQBknIk7gcajDXXT41a7kIZowTqtffjbIbwlwvCuW+KoS/kyGyh8eSeqaRCOrpHoc1JOonPCpHqo1m4wtBT43w== +"@jupyterlab/ui-components@^3.1.0-alpha.8": + version "3.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.1.0-alpha.8.tgz#94085df820e05c3c2ebe35b852e6a1d950212aa2" + integrity sha512-e367PPgcwSLwvx4+y7+T8qculO/43zcm2SOF8Lx9ty0B1a8GA7lMkAE1ztop6+f+/su3WH8IqCWFsLegv3JvrA== dependencies: "@blueprintjs/core" "^3.36.0" "@blueprintjs/select" "^3.15.0" - "@jupyterlab/coreutils" "^5.1.0-alpha.7" + "@jupyterlab/coreutils" "^5.1.0-alpha.8" "@lumino/coreutils" "^1.5.3" "@lumino/signaling" "^1.4.3" "@lumino/virtualdom" "^1.8.0" @@ -531,7 +533,7 @@ resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.6.0.tgz#771e7896cd94e660f9b58a52f80e1bb255de1d41" integrity sha512-NMOcm5Yr9nXz5gokS/K4jHBbUMQYBkvDXl1n51XWdcz0LY+oGuIKPhjazhUgmbNRehzdZBj5hMMd1+htYWeVKQ== -"@lumino/application@^1.13.1", "@lumino/application@^1.16.0": +"@lumino/application@^1.16.0": version "1.20.0" resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.20.0.tgz#b50ca4180bc400589fdfcfcaab08c4af937fccd0" integrity sha512-FAoQcq4L3ZswTK0lWfLKnG1ecG26cwqjzg2fyoBeuWGBi1TG9BYjFBdV7ErTFMxW8jE1CLOLuxsZaKFLNErcKA== @@ -627,7 +629,7 @@ dependencies: "@lumino/algorithm" "^1.6.0" -"@lumino/widgets@^1.16.1", "@lumino/widgets@^1.19.0", "@lumino/widgets@^1.23.0": +"@lumino/widgets@^1.19.0", "@lumino/widgets@^1.23.0": version "1.23.0" resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.23.0.tgz#096c7574de75fa67b32bcb914c5dae290fbee6f3" integrity sha512-0Akt9ESgc06SJ3EJG3VK1Liw+AAjRWkKMfm8VUTwT/1QJYYGZ8kfHNO97mkBLv+0EkLEkZIeaQb8fIoU6vh7bw== @@ -735,9 +737,9 @@ integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== "@types/node@*": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz#51e9c0920d1b45936ea04341aa3e2e58d339fb67" - integrity sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA== + version "15.3.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.3.0.tgz#d6fed7d6bc6854306da3dea1af9f874b00783e26" + integrity sha512-8/bnjSZD86ZfpBsDlCIkNXIvm+h6wi9g7IqL+kmFkQ+Wvu3JrasgLElfiPgoo8V8vVfnEi0QVS12gbl94h9YsQ== "@types/prop-types@*": version "15.7.3" @@ -758,6 +760,20 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/webpack-sources@^0.1.5": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.8.tgz#078d75410435993ec8a0a2855e88706f3f751f81" + integrity sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.6.1" + "@typescript-eslint/eslint-plugin@^2.27.0": version "2.34.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9" @@ -1015,9 +1031,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.1: - version "8.3.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.3.0.tgz#25ee7348e32cdc4a1dbb38256bf6bdc451dd577c" - integrity sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q== + version "8.4.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.4.0.tgz#48984fdb2ce225cab15795f0772a8d85669075e4" + integrity sha512-7QD2l6+KBSLwf+7MuYocbWvRPdOu63/trReTLu2KFwkgctnub1auoF+Y1WYcm09CTM7quuscrzqmASaLHC/K4Q== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1484,12 +1500,12 @@ dom-helpers@^3.4.0: "@babel/runtime" "^7.1.2" dom-serializer@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" - integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== dependencies: domelementtype "^2.0.1" - domhandler "^4.0.0" + domhandler "^4.2.0" entities "^2.0.0" dom4@^2.1.5: @@ -1841,6 +1857,11 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-xml-parser@^3.19.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01" + integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg== + fastest-levenshtein@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" @@ -2551,13 +2572,21 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -lib0@^0.2.31, lib0@^0.2.35, lib0@^0.2.38, lib0@^0.2.41: - version "0.2.41" - resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.41.tgz#57e6e9ffa2eb7c621c891946d150af50fac035bc" - integrity sha512-lZ0I6N81tIDgoPIlUTRhb6mNjPsG5BXIbaK/UbtjakcYnfR+O64bKtIrLXDDnfd7nAo4vpGeZ0mPzbTsNTREcg== +lib0@^0.2.31, lib0@^0.2.35, lib0@^0.2.41: + version "0.2.42" + resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.42.tgz#6d8bf1fb8205dec37a953c521c5ee403fd8769b0" + integrity sha512-8BNM4MiokEKzMvSxTOC3gnCBisJH+jL67CnSnqzHv3jli3pUvGC8wz+0DQ2YvGr4wVQdb2R2uNNPw9LEpVvJ4Q== dependencies: isomorphic.js "^0.2.4" +license-webpack-plugin@^2.3.11: + version "2.3.18" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.18.tgz#03bfe916634ecb845c0899a37443e6869b08b83c" + integrity sha512-a6tSN07AgKkX9nVntBd9MP7OAzt7gKAcnXOy6xegH5y0012vVPNiglLdR0qrEIagg7TMAGhZi1WONiNOg8pe8w== + dependencies: + "@types/webpack-sources" "^0.1.5" + webpack-sources "^1.2.0" + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -2718,7 +2747,7 @@ mini-css-extract-plugin@~1.3.2: schema-utils "^3.0.0" webpack-sources "^1.1.0" -minimatch@^3.0.4: +minimatch@^3.0.4, minimatch@~3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -3093,9 +3122,9 @@ postcss-modules-values@^4.0.0: icss-utils "^5.0.0" postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.5" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz#042d74e137db83e6f294712096cb413f5aa612c4" - integrity sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg== + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -3611,9 +3640,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + version "3.0.8" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.8.tgz#eb1e97ad99b11bf3f82a3b71a0472dd9a00f2ecf" + integrity sha512-NDgA96EnaLSvtbM7trJj+t1LUR3pirkDCcz9nOUlPb5DMBGsH7oES6C3hs3j7R9oHEa1EMvReS/BUAIT5Tcr0g== sprintf-js@~1.0.2: version "1.0.3" @@ -3726,9 +3755,9 @@ svg-url-loader@~6.0.0: loader-utils "~2.0.0" table@^6.0.4: - version "6.7.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.0.tgz#26274751f0ee099c547f6cb91d3eff0d61d155b2" - integrity sha512-SAM+5p6V99gYiiy2gT5ArdzgM1dLDed0nkrWmG6Fry/bUS/m9x83BwpJUOf1Qj/x2qJd+thL6IkIx7qPGRxqBw== + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== dependencies: ajv "^8.0.1" lodash.clonedeep "^4.5.0" @@ -3770,18 +3799,18 @@ terser-webpack-plugin@^4.1.0: webpack-sources "^1.4.3" terser-webpack-plugin@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" - integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q== + version "5.1.2" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.2.tgz#51d295eb7cc56785a67a372575fdc46e42d5c20c" + integrity sha512-6QhDaAiVHIQr5Ab3XUWZyDmrIPCHMiqJVljMF91YKyqwKkL5QHnYMkrMBy96v9Z7ev1hGhSEw1HQZc2p/s5Z8Q== dependencies: jest-worker "^26.6.2" p-limit "^3.1.0" schema-utils "^3.0.0" serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^5.5.1" + terser "^5.7.0" -terser@^5.3.4, terser@^5.5.1: +terser@^5.3.4, terser@^5.7.0: version "5.7.0" resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== @@ -4021,7 +4050,7 @@ webpack-merge@^5.1.2, webpack-merge@^5.7.3: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-sources@^1.1.0, webpack-sources@^1.4.3: +webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -4132,11 +4161,11 @@ yallist@^4.0.0: integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yjs@^13.5.3: - version "13.5.5" - resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.5.tgz#8a52a7354006e04a54dc62c9ffbbd7c606e20ded" - integrity sha512-sbE4G+bSP0jw71aJ9Hqi5UxOTy8JGkObIaCSpY6krRoNqssPCWq05rqV9PQcuMqcrHD3twzko92fVaF1S3id/Q== + version "13.5.6" + resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.6.tgz#37350d0b5ee5a7c80aa84771b4a5fb551a02c690" + integrity sha512-0ebPpLB/zizJbWaFUDRarWbXiXYD0OMDOCa8ZqkVVWQzeIoMRbmbNwB3suZ9YwD0bV4Su9RLn8M/bvGzIwX3hA== dependencies: - lib0 "^0.2.38" + lib0 "^0.2.41" yocto-queue@^0.1.0: version "0.1.0" From 37095b3b2dd79df4ee244b689805bced7cd3d1f2 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Tue, 18 May 2021 14:42:25 +0200 Subject: [PATCH 03/17] Update to node 14 on CI --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 37508c52..4ec98143 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: - name: Install node uses: actions/setup-node@v1 with: - node-version: '10.x' + node-version: '14.x' - name: Install Python uses: actions/setup-python@v2 with: From f307e1d41fb7562bbf234f1d37ee2274ac28cc85 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Tue, 18 May 2021 15:05:21 +0200 Subject: [PATCH 04/17] Install jupyterlab prerelease on CI --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4ec98143..255382cf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: python-version: '3.7' architecture: 'x64' - name: Install dependencies - run: python -m pip install jupyterlab + run: python -m pip install jupyterlab --pre - name: Build the extension run: | jlpm From d567524d44d09ab7794bbca2240e30b43c8743f8 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Mon, 31 May 2021 10:45:06 +0200 Subject: [PATCH 05/17] Shared model --- package.json | 2 +- src/model.ts | 122 +++++++++++++++++++++++++++++++++------------ src/panel.ts | 4 +- testfiles/test.dio | 15 ++++++ yarn.lock | 2 +- 5 files changed, 110 insertions(+), 35 deletions(-) create mode 100644 testfiles/test.dio diff --git a/package.json b/package.json index c4498459..125bf056 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "@jupyterlab/launcher": "^3.1.0-alpha.8", "@jupyterlab/mainmenu": "^3.1.0-alpha.8", "@jupyterlab/observables": "^4.1.0-alpha.8", - "@jupyterlab/services": "~6.1.0-alpha.8", + "@jupyterlab/services": "^6.1.0-alpha.8", "@jupyterlab/shared-models": "^3.1.0-alpha.8", "@jupyterlab/ui-components": "^3.1.0-alpha.8", "@lumino/commands": "^1.12.0", diff --git a/src/model.ts b/src/model.ts index 9607d138..15f5e540 100644 --- a/src/model.ts +++ b/src/model.ts @@ -81,11 +81,8 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { toString(): string { // TODO: Return content from shared model - console.info( - 'DrawIODocumentModel.toString():', - this.sharedModel.getSource() - ); - throw new Error('not implemented'); + //console.info('DrawIODocumentModel.toString():', this.sharedModel.getSource()); + //throw new Error('not implemented'); return this.sharedModel.getSource(); } @@ -97,17 +94,23 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { toJSON(): PartialJSONValue { // TODO: Return content from shared model - console.warn('toJSON(): Not implemented'); - return {}; + console.info( + 'DrawIODocumentModel.toJSON():', + JSON.parse(this.sharedModel.getSource()) + ); + throw new Error('not implemented'); + return JSON.parse(this.sharedModel.getSource()); } fromJSON(value: ReadonlyPartialJSONValue): void { // TODO: Add content to shared model - console.warn('fromJSON(): Not implemented'); + console.info('DrawIODocumentModel.fromJSON():', value); + throw new Error('not implemented'); + this.sharedModel.setSource(value.toString()); } initialize(): void { - console.warn('fromJSON(): Not implemented'); + //console.warn('initialize(): Not implemented'); } private _dirty = false; @@ -160,11 +163,8 @@ export interface ISharedXMLFile extends ISharedDocument { export class XMLFile extends YDocument implements ISharedDocument { constructor() { super(); - console.debug('XMLFile:', this.ydoc); this._mxGraphAttributes = this.ydoc.getMap('attributes'); this._root = this.ydoc.getXmlFragment('root'); - console.debug(this._root instanceof Y.XmlFragment); - this._root.insert(0, [new Y.XmlElement('cell')]); this._mxGraphAttributes.observeDeep(this._modelObserver); this._root.observeDeep(this._cellsObserver); @@ -198,20 +198,39 @@ export class XMLFile extends YDocument implements ISharedDocument { * @returns Cell's source. */ public getSource(): string { - const serializer = new XMLSerializer(); - - const doc = new Y.XmlElement('mxGraphModel'); - - this._mxGraphAttributes.forEach((key, value) => { - console.debug('key:', key, 'value:', value); - doc.setAttribute(key, value); + let source = ' { + source += ` ${key}="${value}"`; }); - - const root = this._root.get(0).clone() as Y.XmlElement; - root.nodeName = 'root'; - doc.insert(0, [root]); - - return serializer.serializeToString(doc.toDOM()); + source += '>'; + + for (let i = this._root.length - 1; i >= 0; i--) { + let mxCell = '${mxGeometry} />`; + } else { + mxCell += ' />'; + } + + source += mxCell; + } + + source += ''; + return source; } /** @@ -220,15 +239,54 @@ export class XMLFile extends YDocument implements ISharedDocument { * @param value: New source. */ public setSource(value: string): void { - const doc = parse(value); - console.debug('setSource:', doc); + const doc = parse( + value, + { + attrNodeName: 'attr', + textNodeName: 'text', + attributeNamePrefix: '', + arrayMode: false, + ignoreAttributes: false, + parseAttributeValue: false + }, + true + ); + + const attrs = doc['mxGraphModel']['attr']; + const cells = doc['mxGraphModel']['root']['mxCell']; + this.transact(() => { - console.debug(doc['mxGraphModel']); - doc['mxGraphModel'].attributes.map((key: string, value: any) => { - console.debug(key, value); + // Delete previus attribute entries + // this._mxGraphAttributes.entries.forEach( key => this._mxGraphAttributes.delete(key) ); + + // Inserting attributes + for (const [key, value] of Object.entries(attrs)) { + this._mxGraphAttributes.set(key, value); + } + + // Inserting mxCells + cells.forEach((value: any) => { + const cellAttrs = value['attr']; + const cellGeometry = value['mxGeometry']; + + const mxCell = new Y.XmlElement('mxCell'); + // Inserting attributes + for (const [key, value] of Object.entries(cellAttrs)) { + //console.debug(key, value); + mxCell.setAttribute(key, value as string); + } + + if (cellGeometry) { + const geometryAttrs = cellGeometry['attr']; + const mxGeometry = new Y.XmlElement('mxGeometry'); + for (const [key, value] of Object.entries(geometryAttrs)) { + mxGeometry.setAttribute(key, value as string); + } + mxCell.push([mxGeometry]); + } + + this._root.insert(0, [mxCell]); }); - //this._source.delete(0, this._source.length); - //this._source.insert(0, [new XmlElement(value)]); }); } diff --git a/src/panel.ts b/src/panel.ts index 873803ca..ee84964c 100644 --- a/src/panel.ts +++ b/src/panel.ts @@ -416,7 +416,8 @@ export class DrawIOWidget extends Widget { const graph = this._editor.editor.getGraphXml(); const xml = this._mx.mxUtils.getXml(graph); - this._context.model.sharedModel.setSource(xml); + console.debug('Save model: ', xml); + //this._context.model.sharedModel.setSource(xml); } ); @@ -458,6 +459,7 @@ export class DrawIOWidget extends Widget { ); const data = this._context.model.sharedModel.getSource(); + console.debug('Get Model:', data); const xml = this._mx.mxUtils.parseXml(data); this._editor.editor.setGraphXml(xml.documentElement); this._ready.resolve(void 0); diff --git a/testfiles/test.dio b/testfiles/test.dio new file mode 100644 index 00000000..b21a25eb --- /dev/null +++ b/testfiles/test.dio @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index dc19e8db..09ba8a6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -427,7 +427,7 @@ lodash.escape "^4.0.1" marked "^2.0.0" -"@jupyterlab/services@^6.1.0-alpha.8", "@jupyterlab/services@~6.1.0-alpha.8": +"@jupyterlab/services@^6.1.0-alpha.8": version "6.1.0-alpha.8" resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.1.0-alpha.8.tgz#7d70cb26474aaba9979e9dc632539b21371266eb" integrity sha512-1OPIkdF7zC5rUklD0zfR7Ozyg1RHW5IyY1CKE2ksbxQsBPAB1aPDj9V4CLOyla3l6QBLkPTpm6MTlXgQh/MD8Q== From 877c01173db5b566f7539b18f40be91dc7f6599f Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Thu, 3 Jun 2021 16:11:45 +0200 Subject: [PATCH 06/17] Dispose context --- src/index.ts | 18 +- src/model.ts | 689 +++++++++++++++++++++++++++++++++++++-------- src/panel.ts | 148 ++++++++-- src/tokens.ts | 27 ++ src/widget.ts | 4 +- testfiles/test.dio | 16 +- 6 files changed, 739 insertions(+), 163 deletions(-) create mode 100644 src/tokens.ts diff --git a/src/index.ts b/src/index.ts index 56110d9e..ae6b9227 100644 --- a/src/index.ts +++ b/src/index.ts @@ -76,7 +76,7 @@ export default extension; function activate( app: JupyterFrontEnd, browserFactory: IFileBrowserFactory, - restorer: ILayoutRestorer, + restorer: ILayoutRestorer | null, menu: IMainMenu, palette: ICommandPalette, launcher: ILauncher | null @@ -87,12 +87,14 @@ function activate( const tracker = new WidgetTracker({ namespace }); // Handle state restoration. - restorer.restore(tracker, { - command: 'docmanager:open', - args: widget => ({ path: widget.context.path, factory: FACTORY }), - name: widget => widget.context.path - }); - + if (restorer) { + restorer.restore(tracker, { + command: 'docmanager:open', + args: widget => ({ path: widget.context.path, factory: FACTORY }), + name: widget => widget.context.path + }); + } + const widgetFactory = new DrawIOWidgetFactory({ name: FACTORY, modelName: 'dio', @@ -119,7 +121,7 @@ function activate( app.docRegistry.addFileType({ name: 'drawio', displayName: 'Diagram', - mimeTypes: ['application/dio', 'application/drawio'], + mimeTypes: ['text/xml', 'application/drawio', 'application/dio'], extensions: ['.dio', '.drawio'], iconClass: 'jp-MaterialIcon jp-ImageIcon', fileFormat: 'text', diff --git a/src/model.ts b/src/model.ts index 15f5e540..7b6eed64 100644 --- a/src/model.ts +++ b/src/model.ts @@ -31,7 +31,13 @@ import { ISignal, Signal } from '@lumino/signaling'; import * as Y from 'yjs'; -import { parse } from 'fast-xml-parser'; +import { parse, j2xParser, J2xOptions } from 'fast-xml-parser'; + +import { mxRoot, mxCell, mxGeometry } from './tokens'; + +type GraphObject = { + [key: string]: any; +}; export class DrawIODocumentModel implements DocumentRegistry.IModel { /** @@ -73,37 +79,88 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { readonly modelDB: IModelDB; - readonly sharedModel: ISharedXMLFile = XMLFile.create(); + readonly sharedModel: XMLFile = XMLFile.create(); dispose(): void { + if (this._isDisposed) { + return; + } this._isDisposed = true; + Signal.clearData(this); + this.sharedModel.dispose(); } toString(): string { - // TODO: Return content from shared model - //console.info('DrawIODocumentModel.toString():', this.sharedModel.getSource()); - //throw new Error('not implemented'); - return this.sharedModel.getSource(); + console.info('DrawIODocumentModel.toString():'); + const yAttr = this.sharedModel.getAttr('mxGraphModel') as Y.Map; + + const root: any[] = []; + const yRoot = this.sharedModel.getRoot(); + yRoot.forEach( value => { + value.removeAttribute('mxElementName'); + root.push(this._parseYChild(value)); + }); + + const graph: GraphObject = {}; + graph['mxGraphModel'] = { + '#attrs': yAttr.toJSON(), + 'root': { + 'mxCell': root + } + }; + + const defaultOptions: Partial = + { + attrNodeName: '#attrs', + textNodeName: '#text', + attributeNamePrefix: '', + ignoreAttributes: false + }; + const parser = new j2xParser(defaultOptions); + return parser.parse(graph); } fromString(value: string): void { - // TODO: Add content to shared model - //console.info("DrawIODocumentModel.fromString():", value); - this.sharedModel.setSource(value); + console.info("DrawIODocumentModel.fromString():", value); + const doc = parse( + value, + { + attrNodeName: '#attrs', + textNodeName: '#text', + attributeNamePrefix: '', + arrayMode: false, + ignoreAttributes: false, + parseAttributeValue: false + }, + true + ); + const attrs = doc['mxGraphModel']['#attrs']; + const root = doc['mxGraphModel']['root']; + + const yAttrs = new Y.Map(); + for (const [key, value] of Object.entries(attrs)) { + yAttrs.set(key, value as string); + } + + const yRoot = Array(); + root['mxCell'].forEach((value: any) => { + yRoot.push(this._parseJSONChild('mxCell', value)); + }); + + this.sharedModel.transact( () => { + this.sharedModel.setSource(value); + this.sharedModel.setAttr('mxGraphModel', yAttrs); + this.sharedModel.setRoot(yRoot); + }); } toJSON(): PartialJSONValue { - // TODO: Return content from shared model - console.info( - 'DrawIODocumentModel.toJSON():', - JSON.parse(this.sharedModel.getSource()) - ); + console.info('DrawIODocumentModel.toJSON():'); throw new Error('not implemented'); return JSON.parse(this.sharedModel.getSource()); } fromJSON(value: ReadonlyPartialJSONValue): void { - // TODO: Add content to shared model console.info('DrawIODocumentModel.fromJSON():', value); throw new Error('not implemented'); this.sharedModel.setSource(value.toString()); @@ -113,6 +170,383 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { //console.warn('initialize(): Not implemented'); } + getRoot(): mxRoot { + console.debug("Model.getRoot"); + const root = new Array(); + const yroot = this.sharedModel.root; + + for (let i = 0; i < yroot.length; i++) { + const yCell = yroot.get(i) as Y.XmlElement; + const yCellAttrs = yCell.getAttributes(); + const yGeometry = yCellAttrs.firstChild; + + let geometry: mxGeometry | undefined = undefined; + + if (yGeometry) { + const yGeometryAttrs = yGeometry.getAttributes(); + geometry = { + x: yGeometryAttrs['x'], + y: yGeometryAttrs['y'], + width: yGeometryAttrs['width'], + height: yGeometryAttrs['height'], + as: yGeometryAttrs['as'] + }; + } + + const cell: mxCell = { + id: yCellAttrs['id'], + parent: yCellAttrs['parent'], + value: yCellAttrs['value'], + style: yCellAttrs['style'], + vertex: yCellAttrs['vertex'], + geometry: geometry + }; + + console.debug("cell:", cell); + root.push(cell); + } + + return root; + } + + setRoot(root: mxRoot): void { + console.debug("Model.setRoot", root); + const yCells = Array(); + + root.forEach( (cell: mxCell) => { + const yCell = new Y.XmlElement('mxCell'); + + yCell.setAttribute('id', cell.id.toString()); + if (cell.parent) { + yCell.setAttribute('parent', cell.parent.toString()); + } + if (cell.value) { + yCell.setAttribute('value', cell.value); + } + if (cell.style) { + yCell.setAttribute('style', cell.style); + } + if (cell.vertex) { + yCell.setAttribute('vertex', cell.vertex.toString()); + } + + if (cell.geometry) { + const geometry = cell.geometry; + const yGeometry = new Y.XmlElement('mxGeometry'); + yGeometry.setAttribute('x', geometry.x.toString()); + yGeometry.setAttribute('y', geometry.y.toString()); + yGeometry.setAttribute('width', geometry.width.toString()); + yGeometry.setAttribute('height', geometry.height.toString()); + yGeometry.setAttribute('as', geometry.as); + yCell.insert(0, [yGeometry]); + } + + yCells.push(yCell); + }); + + this.sharedModel.updateRoot(0, this.sharedModel.root.length, yCells); + } + + getCell(id: number): mxCell { + console.debug("Model.getCell", id); + const yRoot = this.sharedModel.root; + + for (let i = 0; i < yRoot.length; i++) { + const yCell = yRoot.get(i) as Y.XmlElement; + const yCellAttrs = yCell.getAttributes(); + + if (yCellAttrs['id'] == id) { + const yGeometry = yCellAttrs.firstChild; + let geometry: mxGeometry | undefined = undefined; + + if (yGeometry) { + const yGeometryAttrs = yGeometry.getAttributes(); + geometry = { + x: yGeometryAttrs['x'], + y: yGeometryAttrs['y'], + width: yGeometryAttrs['width'], + height: yGeometryAttrs['height'], + as: yGeometryAttrs['as'] + }; + } + + return { + id: yCellAttrs['id'], + parent: yCellAttrs['parent'], + value: yCellAttrs['value'], + style: yCellAttrs['style'], + vertex: yCellAttrs['vertex'], + geometry: geometry + }; + } + } + + return null; + } + + setCell(cell: mxCell): void { + console.debug("Model.setCell", cell); + const yRoot = this.sharedModel.root; + let index = -1; + for (let i = 0; i < yRoot.length; i++) { + const yCell = yRoot.get(i) as Y.XmlElement; + const yCellAttrs = yCell.getAttributes(); + if (yCellAttrs['id'] == cell.id) { + index = i; + break; + } + } + + const yCell = new Y.XmlElement('mxCell'); + yCell.setAttribute('id', cell.id.toString()); + if (cell.parent) { + yCell.setAttribute('parent', cell.parent.toString()); + } + if (cell.value) { + yCell.setAttribute('value', cell.value); + } + if (cell.style) { + yCell.setAttribute('style', cell.style); + } + if (cell.vertex) { + yCell.setAttribute('vertex', cell.vertex.toString()); + } + + if (cell.geometry) { + const geometry = cell.geometry; + const yGeometry = new Y.XmlElement('mxGeometry'); + yGeometry.setAttribute('x', geometry.x.toString()); + yGeometry.setAttribute('y', geometry.y.toString()); + yGeometry.setAttribute('width', geometry.width.toString()); + yGeometry.setAttribute('height', geometry.height.toString()); + yGeometry.setAttribute('as', geometry.as); + yCell.insert(0, [yGeometry]); + } + + console.debug(yCell); + this.sharedModel.updateRoot(index, 1, [yCell]); + } + + getGeometry(id: number): mxGeometry { + console.debug("Model.getGeometry", id); + const yRoot = this.sharedModel.root; + + for (let i = 0; i < yRoot.length; i++) { + const yCell = yRoot.get(i) as Y.XmlElement; + const yCellAttrs = yCell.getAttributes(); + + if (yCellAttrs['id'] == id) { + const yGeometry = yCellAttrs.firstChild; + + if (yGeometry) { + const yGeometryAttrs = yGeometry.getAttributes(); + return { + x: yGeometryAttrs['x'], + y: yGeometryAttrs['y'], + width: yGeometryAttrs['width'], + height: yGeometryAttrs['height'], + as: yGeometryAttrs['as'] + }; + } + + return null; + } + } + + return null; + } + + setGeometry(id: number, geometry: mxGeometry): void { + console.debug("Model.setGeometry", id, geometry); + const yRoot = this.sharedModel.root; + let index = -1; + for (let i = 0; i < yRoot.length; i++) { + const yCell = yRoot.get(i) as Y.XmlElement; + const yCellAttrs = yCell.getAttributes(); + if (yCellAttrs['id'] == id) { + index = i; + break; + } + } + + if (index == -1) { + return; + } + + const yGeometry = new Y.XmlElement('mxGeometry'); + yGeometry.setAttribute('x', geometry.x.toString()); + yGeometry.setAttribute('y', geometry.y.toString()); + yGeometry.setAttribute('width', geometry.width.toString()); + yGeometry.setAttribute('height', geometry.height.toString()); + yGeometry.setAttribute('as', geometry.as); + + this.sharedModel.transact(() => { + const yCell = yRoot.get(index) as Y.XmlElement; + yCell.delete(0, 1); + yCell.insert(0, [yGeometry]); + }); + } + + getValue(id: number): string { + console.debug("Model.getValue", id); + const yRoot = this.sharedModel.root; + + for (let i = 0; i < yRoot.length; i++) { + const yCell = yRoot.get(i) as Y.XmlElement; + const yCellAttrs = yCell.getAttributes(); + + if (yCellAttrs['id'] == id) { + + if (yCellAttrs['value']) { + return yCellAttrs['value'] + } + + return null; + } + } + + return null; + } + + setValue(id: number, value: string): void { + console.debug("Model.setValue", id, value); + const yRoot = this.sharedModel.root; + let index = -1; + for (let i = 0; i < yRoot.length; i++) { + const yCell = yRoot.get(i) as Y.XmlElement; + const yCellAttrs = yCell.getAttributes(); + if (yCellAttrs['id'] == id) { + index = i; + break; + } + } + + if (index == -1) { + return; + } + + this.sharedModel.transact(() => { + const yCell = yRoot.get(index) as Y.XmlElement; + yCell.setAttribute('value', value); + }); + } + + getStyle(id: number): string { + console.debug("Model.getValue", id); + const yRoot = this.sharedModel.root; + + for (let i = 0; i < yRoot.length; i++) { + const yCell = yRoot.get(i) as Y.XmlElement; + const yCellAttrs = yCell.getAttributes(); + + if (yCellAttrs['id'] == id) { + + if (yCellAttrs['style']) { + return yCellAttrs['style'] + } + + return null; + } + } + + return null; + } + + setStyle(id: number, style: string): void { + console.debug("Model.setStyle", id, style); + const yRoot = this.sharedModel.root; + let index = -1; + for (let i = 0; i < yRoot.length; i++) { + const yCell = yRoot.get(i) as Y.XmlElement; + const yCellAttrs = yCell.getAttributes(); + if (yCellAttrs['id'] == id) { + index = i; + break; + } + } + + if (index == -1) { + return; + } + + this.sharedModel.transact(() => { + const yCell = yRoot.get(index) as Y.XmlElement; + yCell.setAttribute('style', style); + }); + } + + private _parseJSONChild = (tag: string, element: any): Y.XmlText | Y.XmlElement => { + const yElement = new Y.XmlElement(tag); + yElement.setAttribute("mxElementName", tag); + + const attrs = element['#attrs']; + if (attrs) { + for (const [key, value] of Object.entries(attrs)) { + yElement.setAttribute(key, value as string); + } + } + + const text = element['#text']; + if (text) { + yElement.push([new Y.XmlText(text)]); + } + + for (const [key, child] of Object.entries(element)) { + if (key === '#attrs' || key === '#text') { + continue; + } + + if (child instanceof Array) { + child.forEach( value => { + yElement.push([this._parseJSONChild(key, value)]); + }); + + } else { + yElement.push([this._parseJSONChild(key, child)]); + } + } + + return yElement; + } + + private _parseYChild = (yElement: Y.XmlText | Y.XmlElement): GraphObject => { + const element: GraphObject = {}; + + const yAttrs = yElement.getAttributes(); + if (yAttrs) { + const attrs: GraphObject = {}; + for (const [key, value] of Object.entries(yAttrs)) { + attrs[key] = value; + } + element['#attrs'] = attrs; + } + + if (yElement instanceof Y.XmlText) { + element['#text'] = yElement.toJSON(); + } + + if (yElement instanceof Y.XmlElement) { + yElement.slice(0, yElement.length).forEach( yChild => { + const tag = yChild.getAttribute('mxElementName'); + yChild.removeAttribute('mxElementName'); + const child = this._parseYChild(yChild); + + if (element[tag] === undefined) { + element[tag] = child; + + } else if (element[tag] instanceof Array) { + element[tag].push(child); + + } else { + const aux = element[tag]; + element[tag] = [aux, child]; + } + }); + } + + return element; + } + private _dirty = false; private _readOnly = false; private _isDisposed = false; @@ -121,9 +555,19 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { } export type XMLChange = { - graphChanged?: Delta; - rootChanged?: Delta; contextChange?: MapChange; + mxRootChange?: Delta; + mxChildChange?: Delta; + mxGeometryChange?: Delta; + mxTerminalChange?: Delta; + mxValueChange?: { + id: number; + value: string; + }; + mxStyleChange?: { + id: number; + style: string; + }; }; /** @@ -160,133 +604,123 @@ export interface ISharedXMLFile extends ISharedDocument { updateSource(start: number, end: number, value?: string): void; } -export class XMLFile extends YDocument implements ISharedDocument { +export class XMLFile extends YDocument implements ISharedXMLFile { constructor() { super(); - this._mxGraphAttributes = this.ydoc.getMap('attributes'); + this._attr = this.ydoc.getMap('attrs'); this._root = this.ydoc.getXmlFragment('root'); - this._mxGraphAttributes.observeDeep(this._modelObserver); + this._attr.observeDeep(this._modelObserver); this._root.observeDeep(this._cellsObserver); } - /** - * Handle a change to the _mxGraphModel. - */ - private _modelObserver = (events: Y.YEvent[]): void => { - const changes: XMLChange = {}; - //changes.graphChanged = events.find();.delta as any; - this._changed.emit(changes); - }; + get root(): Y.XmlFragment { + return this._root; + } /** - * Handle a change to the _mxGraphModel. + * Dispose of the resources. */ - private _cellsObserver = (events: Y.YEvent[]): void => { - const changes: XMLChange = {}; - //changes.graphChanged = events.find();.delta as any; - this._changed.emit(changes); - }; + dispose(): void { + this._attr.unobserveDeep(this._modelObserver); + this._root.unobserveDeep(this._cellsObserver); + } public static create(): XMLFile { return new XMLFile(); } /** - * Gets cell's source. + * Gets document's source. * - * @returns Cell's source. + * @returns Document's source. */ public getSource(): string { - let source = ' { - source += ` ${key}="${value}"`; - }); - source += '>'; - - for (let i = this._root.length - 1; i >= 0; i--) { - let mxCell = '${mxGeometry} />`; - } else { - mxCell += ' />'; - } - - source += mxCell; - } - - source += ''; - return source; + return this.source.toString(); } /** - * Sets cell's source. + * Sets document's source. * * @param value: New source. */ public setSource(value: string): void { - const doc = parse( - value, - { - attrNodeName: 'attr', - textNodeName: 'text', - attributeNamePrefix: '', - arrayMode: false, - ignoreAttributes: false, - parseAttributeValue: false - }, - true - ); - - const attrs = doc['mxGraphModel']['attr']; - const cells = doc['mxGraphModel']['root']['mxCell']; + this.transact(() => { + this.source.delete(0, this.source.length); + this.source.insert(0, value); + }); + } + /** + * Replace content from `start' to `end` with `value`. + * + * @param start: The start index of the range to replace (inclusive). + * + * @param end: The end index of the range to replace (exclusive). + * + * @param value: New source (optional). + */ + public updateSource(start: number, end: number, value = ''): void { this.transact(() => { - // Delete previus attribute entries - // this._mxGraphAttributes.entries.forEach( key => this._mxGraphAttributes.delete(key) ); + this.source.delete(start, end - start); + this.source.insert(0, value); + }); + } - // Inserting attributes - for (const [key, value] of Object.entries(attrs)) { - this._mxGraphAttributes.set(key, value); - } + /** + * Returns an attribute. + * + * @param key: The key of the attribute. + */ + public getAttr(key: string): any { + //console.debug("getAttrs:", key); + return this._attr.get(key); + } - // Inserting mxCells - cells.forEach((value: any) => { - const cellAttrs = value['attr']; - const cellGeometry = value['mxGeometry']; + /** + * Adds new attribute. + * + * @param key: The key of the attribute. + * + * @param value: New source. + */ + public setAttr(key: string, value: any): void { + //console.debug("setAttr:", key, value); + this._attr.set(key, value); + } - const mxCell = new Y.XmlElement('mxCell'); - // Inserting attributes - for (const [key, value] of Object.entries(cellAttrs)) { - //console.debug(key, value); - mxCell.setAttribute(key, value as string); - } + /** + * Replace attribute. + * + * @param key: The key of the attribute. + * + * @param value: New source. + */ + public updateAttr(key: string, value: any): void { + //console.debug("updateAttr:", key, value); + this._attr.set(key, value); + } - if (cellGeometry) { - const geometryAttrs = cellGeometry['attr']; - const mxGeometry = new Y.XmlElement('mxGeometry'); - for (const [key, value] of Object.entries(geometryAttrs)) { - mxGeometry.setAttribute(key, value as string); - } - mxCell.push([mxGeometry]); - } + /** + * Gets elements. + * + * @returns elements. + */ + public getRoot(): (Y.XmlElement | Y.XmlText)[] { + //console.debug("setRoot:", this._root.slice()); + return this._root.slice(); + } - this._root.insert(0, [mxCell]); - }); + /** + * Sets elements. + * + * @param root: New elements. + */ + public setRoot(root: (Y.XmlElement | Y.XmlText)[]): void { + //console.debug("setRoot:", root); + this.transact(() => { + this._root.delete(0, this._root.length); + this._root.insert(0, root); }); } @@ -299,13 +733,38 @@ export class XMLFile extends YDocument implements ISharedDocument { * * @param value: New source (optional). */ - public updateSource(start: number, end: number, value = ''): void { + public updateRoot(start: number, end: number, value: (Y.XmlElement | Y.XmlText)[]): void { + //console.debug("updateRoot:", start, end); + //console.debug(value); this.transact(() => { - //this._source.delete(start, end - start); - //this._source.insert(0, [new XmlElement(value)]); + this._root.delete(start, end - start); + this._root.insert(0, value); }); } - private _mxGraphAttributes: Y.Map; + /** + * Handle a change to the _mxGraphModel. + */ + private _modelObserver = (events: Y.YEvent[]): void => { + console.debug("_modelObserver:", events); + //const changes: XMLChange = {}; + //changes.graphChanged = events.find();.delta as any; + //this._changed.emit(changes); + }; + + /** + * Handle a change to the _mxGraphModel. + */ + private _cellsObserver = (events: Y.YEvent[]): void => { + console.debug("_cellsObserver:", events); + /* const changes: XMLChange = {}; + const event = events.find(event => event.target === this._root); + if (event) { + changes.mxRootChange = event.changes.delta as any; + } + this._changed.emit(changes); */ + }; + + private _attr: Y.Map; private _root: Y.XmlFragment; } diff --git a/src/panel.ts b/src/panel.ts index ee84964c..45fdf484 100644 --- a/src/panel.ts +++ b/src/panel.ts @@ -63,7 +63,12 @@ export class DrawIOWidget extends Widget { * Dispose of the resources held by the widget. */ dispose(): void { + // Do nothing if already disposed. + if (this.isDisposed) { + return; + } this._editor.destroy(); + //this._context = null; super.dispose(); } @@ -362,7 +367,7 @@ export class DrawIOWidget extends Widget { private _onContentChanged(): void { console.debug('_onContentChanged'); - const newValue = this._context.model.sharedModel.getSource(); + const newValue = this._context.model.toString(); if (this._editor === undefined) { return; } @@ -371,10 +376,61 @@ export class DrawIOWidget extends Widget { if (oldValue !== newValue && !this._editor.editor.graph.isEditing()) { if (newValue.length) { + console.debug('Get Model:'); const xml = this._mx.mxUtils.parseXml(newValue); this._editor.editor.setGraphXml(xml.documentElement); } } + + // mxRootChange + // cell Optional mxCell that specifies the child. + //this._editor.editor.graph.model.getRoot(cell); + // root mxCell that specifies the new root. + // Example + // var root = new mxCell(); + // root.insert(new mxCell()); + // model.setRoot(root); + // root mxCell that specifies the new root. + //this._editor.editor.graph.model.setRoot(root); + + // mxChildChanged + // cell mxCell that should be removed. + //this._editor.editor.graph.model.remove(cell); + // parent mxCell that specifies the parent to contain the child. + // child mxCell that specifies the child to be inserted. + // index Optional integer that specifies the index of the child. + //this._editor.editor.graph.model.add(parent, child, index); + + // mxGeometryChange + // cell mxCell whose geometry should be returned. + //this._editor.editor.graph.model.getGeometry(cell); + // cell mxCell whose geometry should be changed. + // geometry mxGeometry that defines the new geometry. + //this._editor.editor.graph.model.setGeometry(cell, geometry); + + // mxTerminalChange + // edge mxCell that specifies the edge. + // isSource Boolean indicating which end of the edge should be returned. + //this._editor.editor.graph.model.getTerminal(edge, isSource); + // edge mxCell that specifies the edge. + // terminal mxCell that specifies the new terminal. + // isSource Boolean indicating if the terminal is the new source or target terminal of the edge. + //this._editor.editor.graph.model.setTerminal(edge, terminal, isSource); + + // mxValueChange + // cell mxCell whose user object should be returned. + //this._editor.editor.graph.model.getValue(cell); + // cell mxCell whose user object should be changed. + // value Object that defines the new user object. + //this._editor.editor.graph.model.setValue(cell, value); + + // mxStyleChange + // cell mxCell whose style should be returned. + //this._editor.editor.graph.model.getStyle(cell); + // cell mxCell whose style should be changed. + // style String of the form [stylename;|key=value;] to specify the new cell style. + //this._editor.editor.graph.model.setStyle(cell, style); + } private _loadDrawIO(mx: Private.MX): void { @@ -397,46 +453,93 @@ export class DrawIOWidget extends Widget { this._editor = new this._mx.EditorUi(new Editor(false, themes), this.node); this._editor.refresh(); - //console.debug(this._mx.Editor); + //console.debug(this._mx); //console.debug(this._editor.editor.graph.model); this._editor.editor.graph.model.addListener( this._mx.mxEvent.NOTIFY, (sender: any, evt: any) => { - console.debug('Event:', evt); - const changes: any[] = evt.properties.changes; + console.debug("DIO changed:", evt); + const changes = evt.getProperty('edit').changes; + for (let i = 0; i < changes.length; i++) { - if (changes[i].root) { + if (changes[i] instanceof this._mx.mxRootChange) { return; } } - if (this._editor.editor.graph.isEditing()) { - this._editor.editor.graph.stopEditing(); - } + //if (this._editor.editor.graph.isEditing()) { + // this._editor.editor.graph.stopEditing(); + //} const graph = this._editor.editor.getGraphXml(); + console.debug("Save graph", data); const xml = this._mx.mxUtils.getXml(graph); - console.debug('Save model: ', xml); - //this._context.model.sharedModel.setSource(xml); + this._context.model.fromString(xml); } ); /* this._editor.editor.graph.model.addListener( this._mx.mxEvent.NOTIFY, (sender: any, evt: any) => { - var changes = evt.getProperty('edit').changes; + const changes = evt.getProperty('edit').changes; + console.debug("Graph changed:"); + console.debug(evt); - for (var i = 0; i < changes.length; i++) - { - var change = changes[i]; + for (let i = 0; i < changes.length; i++) { + const change = changes[i]; + console.debug(change); + + if (change instanceof this._mx.mxRootChange) { + console.log("Root changed:", change.root.id); + const children = change.root.children; + for (let j = 0; j < children.length; j++) { + console.log(children[j]); + } + } - if ( - change instanceof this._mx.mxChildChange && - change.change.previous == null - ) { - this._editor.editor.graph.startEditingAtCell(change.child); - break; + if (change instanceof this._mx.mxChildChange) { + console.log("Child changed:", change.child.id); + console.log(change.child); + // id = change.child.id + // value = change.cell.value + // style = change.cell.style + // parent = change.cell.parent + // vertex = change.cell.vertex } + + if (change instanceof this._mx.mxGeometryChange) { + console.log("Geometry changed:", change.cell.id); + console.log(change.geometry); + // x = change.geometry.x + // y = change.geometry.y + // width = change.geometry.width + // height = change.geometry.height + // as = "" + } + + if (change instanceof this._mx.mxTerminalChange) { + console.log("Terminal changed:", change.cell.id); + console.log(change.terminal); + } + + if (change instanceof this._mx.mxValueChange) { + console.log("Value changed:", change.cell.id); + console.log(change.geometry); + // value = change.cell.value + } + + if (change instanceof this._mx.mxStyleChange) { + console.log("Style changed:", change.cell.id); + console.log(change.geometry); + // style = change.cell.style + } + + //mxCellAttributeChange + //mxCollapseChange + //mxCurrentRootChange + //mxGenericChangeCodec + //mxSelectionChange + //mxVisibleChange } }); */ @@ -458,10 +561,11 @@ export class DrawIOWidget extends Widget { } ); - const data = this._context.model.sharedModel.getSource(); - console.debug('Get Model:', data); + const data = this._context.model.toString(); + console.debug("Load graph", data); const xml = this._mx.mxUtils.parseXml(data); this._editor.editor.setGraphXml(xml.documentElement); + //this._editor.editor.graph.model.setRoot(root); this._ready.resolve(void 0); } diff --git a/src/tokens.ts b/src/tokens.ts new file mode 100644 index 00000000..99e3bc50 --- /dev/null +++ b/src/tokens.ts @@ -0,0 +1,27 @@ +export type mxRoot = mxCell[]; + +export type mxCell = { + id: number; + parent?: number; + value?: string; + style?: string; + vertex?: number; + edge?: boolean; + source?: number; + geometry?: mxGeometry; +}; + +export type mxGeometry = { + x?: number; + y?: number; + as: string; + width?: number; + height?: number; + relative?: boolean; +}; + +export type mxPoint = { + x: number; + y: number; + as: string; +}; \ No newline at end of file diff --git a/src/widget.ts b/src/widget.ts index ed2bb046..2fb77949 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -22,8 +22,6 @@ import { undoIcon, redoIcon } from '@jupyterlab/ui-components'; import { CommandRegistry } from '@lumino/commands'; -import { Signal } from '@lumino/signaling'; - import { DrawIODocumentModel } from './model'; import { DrawIOWidget } from './panel'; @@ -104,7 +102,7 @@ export class DrawIODocumentWidget extends DocumentWidget< * Dispose of the resources held by the widget. */ dispose(): void { - Signal.clearData(this); + this.content.dispose(); super.dispose(); } diff --git a/testfiles/test.dio b/testfiles/test.dio index b21a25eb..7d067739 100644 --- a/testfiles/test.dio +++ b/testfiles/test.dio @@ -1,15 +1 @@ - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file From abd13075d275f0f28a2e99a4e27d9d5b5d56a161 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Mon, 7 Jun 2021 14:45:11 +0200 Subject: [PATCH 07/17] works collaborative --- src/index.ts | 2 +- src/model.ts | 449 ++++++++++++++++---------------------------------- src/panel.ts | 189 +++++++++------------ src/tokens.ts | 36 ++-- 4 files changed, 234 insertions(+), 442 deletions(-) diff --git a/src/index.ts b/src/index.ts index ae6b9227..2f99225b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -94,7 +94,7 @@ function activate( name: widget => widget.context.path }); } - + const widgetFactory = new DrawIOWidgetFactory({ name: FACTORY, modelName: 'dio', diff --git a/src/model.ts b/src/model.ts index 7b6eed64..8bdf9849 100644 --- a/src/model.ts +++ b/src/model.ts @@ -18,7 +18,8 @@ import { ISharedDocument, YDocument, Delta, - MapChange + MapChange, + createMutex } from '@jupyterlab/shared-models'; import { IChangedArgs } from '@jupyterlab/coreutils'; @@ -33,8 +34,6 @@ import * as Y from 'yjs'; import { parse, j2xParser, J2xOptions } from 'fast-xml-parser'; -import { mxRoot, mxCell, mxGeometry } from './tokens'; - type GraphObject = { [key: string]: any; }; @@ -45,6 +44,8 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { */ constructor(languagePreference?: string, modelDB?: IModelDB) { this.modelDB = modelDB || new ModelDB(); + + this.sharedModel.changed.connect(this._onSharedModelChanged); } get dirty(): boolean { @@ -73,6 +74,10 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { return this._stateChanged; } + get sharedModelChanged(): ISignal { + return this._sharedModelChanged; + } + readonly defaultKernelName: string; readonly defaultKernelLanguage: string; @@ -81,6 +86,8 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { readonly sharedModel: XMLFile = XMLFile.create(); + readonly mutex = createMutex(); + dispose(): void { if (this._isDisposed) { return; @@ -94,23 +101,22 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { console.info('DrawIODocumentModel.toString():'); const yAttr = this.sharedModel.getAttr('mxGraphModel') as Y.Map; - const root: any[] = []; + const root: GraphObject[] = []; const yRoot = this.sharedModel.getRoot(); - yRoot.forEach( value => { - value.removeAttribute('mxElementName'); + yRoot.forEach(value => { + //value.removeAttribute('mxnodename'); root.push(this._parseYChild(value)); }); const graph: GraphObject = {}; graph['mxGraphModel'] = { '#attrs': yAttr.toJSON(), - 'root': { - 'mxCell': root + root: { + mxCell: root } }; - const defaultOptions: Partial = - { + const defaultOptions: Partial = { attrNodeName: '#attrs', textNodeName: '#text', attributeNamePrefix: '', @@ -121,7 +127,7 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { } fromString(value: string): void { - console.info("DrawIODocumentModel.fromString():", value); + console.info('DrawIODocumentModel.fromString():', value); const doc = parse( value, { @@ -147,7 +153,7 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { yRoot.push(this._parseJSONChild('mxCell', value)); }); - this.sharedModel.transact( () => { + this.mutex(() => { this.sharedModel.setSource(value); this.sharedModel.setAttr('mxGraphModel', yAttrs); this.sharedModel.setRoot(yRoot); @@ -170,314 +176,138 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { //console.warn('initialize(): Not implemented'); } - getRoot(): mxRoot { - console.debug("Model.getRoot"); - const root = new Array(); - const yroot = this.sharedModel.root; - - for (let i = 0; i < yroot.length; i++) { - const yCell = yroot.get(i) as Y.XmlElement; - const yCellAttrs = yCell.getAttributes(); - const yGeometry = yCellAttrs.firstChild; - - let geometry: mxGeometry | undefined = undefined; - - if (yGeometry) { - const yGeometryAttrs = yGeometry.getAttributes(); - geometry = { - x: yGeometryAttrs['x'], - y: yGeometryAttrs['y'], - width: yGeometryAttrs['width'], - height: yGeometryAttrs['height'], - as: yGeometryAttrs['as'] - }; - } - - const cell: mxCell = { - id: yCellAttrs['id'], - parent: yCellAttrs['parent'], - value: yCellAttrs['value'], - style: yCellAttrs['style'], - vertex: yCellAttrs['vertex'], - geometry: geometry - }; - - console.debug("cell:", cell); - root.push(cell); - } - - return root; + transact(cb: () => void): void { + this.sharedModel.transact(cb); } - setRoot(root: mxRoot): void { - console.debug("Model.setRoot", root); - const yCells = Array(); - - root.forEach( (cell: mxCell) => { - const yCell = new Y.XmlElement('mxCell'); - - yCell.setAttribute('id', cell.id.toString()); - if (cell.parent) { - yCell.setAttribute('parent', cell.parent.toString()); - } - if (cell.value) { - yCell.setAttribute('value', cell.value); - } - if (cell.style) { - yCell.setAttribute('style', cell.style); - } - if (cell.vertex) { - yCell.setAttribute('vertex', cell.vertex.toString()); - } - - if (cell.geometry) { - const geometry = cell.geometry; - const yGeometry = new Y.XmlElement('mxGeometry'); - yGeometry.setAttribute('x', geometry.x.toString()); - yGeometry.setAttribute('y', geometry.y.toString()); - yGeometry.setAttribute('width', geometry.width.toString()); - yGeometry.setAttribute('height', geometry.height.toString()); - yGeometry.setAttribute('as', geometry.as); - yCell.insert(0, [yGeometry]); - } + getRoot(): Node { + console.debug('Model.getRoot'); + const yRoot = this.sharedModel.getRoot(); + const root = document.createElement('root'); - yCells.push(yCell); + yRoot.forEach(yEl => { + // Clone element + //const yEl = this._parseJSONChild('mxCell', this._parseYChild(value)); + root.appendChild(yEl.toDOM()); }); - this.sharedModel.updateRoot(0, this.sharedModel.root.length, yCells); + console.debug(root); + return root; } - getCell(id: number): mxCell { - console.debug("Model.getCell", id); - const yRoot = this.sharedModel.root; + setRoot(root: string): void { + console.debug('Model.setRoot', root); - for (let i = 0; i < yRoot.length; i++) { - const yCell = yRoot.get(i) as Y.XmlElement; - const yCellAttrs = yCell.getAttributes(); - - if (yCellAttrs['id'] == id) { - const yGeometry = yCellAttrs.firstChild; - let geometry: mxGeometry | undefined = undefined; - - if (yGeometry) { - const yGeometryAttrs = yGeometry.getAttributes(); - geometry = { - x: yGeometryAttrs['x'], - y: yGeometryAttrs['y'], - width: yGeometryAttrs['width'], - height: yGeometryAttrs['height'], - as: yGeometryAttrs['as'] - }; - } - - return { - id: yCellAttrs['id'], - parent: yCellAttrs['parent'], - value: yCellAttrs['value'], - style: yCellAttrs['style'], - vertex: yCellAttrs['vertex'], - geometry: geometry - }; - } - } - - return null; - } - - setCell(cell: mxCell): void { - console.debug("Model.setCell", cell); - const yRoot = this.sharedModel.root; - let index = -1; - for (let i = 0; i < yRoot.length; i++) { - const yCell = yRoot.get(i) as Y.XmlElement; - const yCellAttrs = yCell.getAttributes(); - if (yCellAttrs['id'] == cell.id) { - index = i; - break; - } - } + const doc = parse( + root, + { + attrNodeName: '#attrs', + textNodeName: '#text', + attributeNamePrefix: '', + arrayMode: false, + ignoreAttributes: false, + parseAttributeValue: false + }, + true + ); - const yCell = new Y.XmlElement('mxCell'); - yCell.setAttribute('id', cell.id.toString()); - if (cell.parent) { - yCell.setAttribute('parent', cell.parent.toString()); - } - if (cell.value) { - yCell.setAttribute('value', cell.value); - } - if (cell.style) { - yCell.setAttribute('style', cell.style); - } - if (cell.vertex) { - yCell.setAttribute('vertex', cell.vertex.toString()); - } + console.debug(doc); - if (cell.geometry) { - const geometry = cell.geometry; - const yGeometry = new Y.XmlElement('mxGeometry'); - yGeometry.setAttribute('x', geometry.x.toString()); - yGeometry.setAttribute('y', geometry.y.toString()); - yGeometry.setAttribute('width', geometry.width.toString()); - yGeometry.setAttribute('height', geometry.height.toString()); - yGeometry.setAttribute('as', geometry.as); - yCell.insert(0, [yGeometry]); - } + /* const yRoot = Array(); + doc['mxCell'].forEach((value: any) => { + yRoot.push(this._parseJSONChild('mxCell', value)); + }); - console.debug(yCell); - this.sharedModel.updateRoot(index, 1, [yCell]); + console.debug(yRoot); */ + //this.sharedModel.updateRoot(0, this.sharedModel.root.length, yRoot); } - getGeometry(id: number): mxGeometry { - console.debug("Model.getGeometry", id); + getCell(id: number): Node { + console.debug('Model.getCell', id); const yRoot = this.sharedModel.root; for (let i = 0; i < yRoot.length; i++) { const yCell = yRoot.get(i) as Y.XmlElement; const yCellAttrs = yCell.getAttributes(); - - if (yCellAttrs['id'] == id) { - const yGeometry = yCellAttrs.firstChild; - - if (yGeometry) { - const yGeometryAttrs = yGeometry.getAttributes(); - return { - x: yGeometryAttrs['x'], - y: yGeometryAttrs['y'], - width: yGeometryAttrs['width'], - height: yGeometryAttrs['height'], - as: yGeometryAttrs['as'] - }; - } - - return null; + if (yCellAttrs['id'] === id) { + return yCell.toDOM(); } } return null; } - setGeometry(id: number, geometry: mxGeometry): void { - console.debug("Model.setGeometry", id, geometry); - const yRoot = this.sharedModel.root; - let index = -1; - for (let i = 0; i < yRoot.length; i++) { - const yCell = yRoot.get(i) as Y.XmlElement; - const yCellAttrs = yCell.getAttributes(); - if (yCellAttrs['id'] == id) { - index = i; - break; - } - } + setCell(id: number, cell: string): void { + console.debug('Model.setCell', cell); - if (index == -1) { - return; - } - - const yGeometry = new Y.XmlElement('mxGeometry'); - yGeometry.setAttribute('x', geometry.x.toString()); - yGeometry.setAttribute('y', geometry.y.toString()); - yGeometry.setAttribute('width', geometry.width.toString()); - yGeometry.setAttribute('height', geometry.height.toString()); - yGeometry.setAttribute('as', geometry.as); - - this.sharedModel.transact(() => { - const yCell = yRoot.get(index) as Y.XmlElement; - yCell.delete(0, 1); - yCell.insert(0, [yGeometry]); - }); - } - - getValue(id: number): string { - console.debug("Model.getValue", id); - const yRoot = this.sharedModel.root; - - for (let i = 0; i < yRoot.length; i++) { - const yCell = yRoot.get(i) as Y.XmlElement; - const yCellAttrs = yCell.getAttributes(); - - if (yCellAttrs['id'] == id) { - - if (yCellAttrs['value']) { - return yCellAttrs['value'] - } - - return null; - } - } - - return null; - } + const doc = parse( + cell, + { + attrNodeName: '#attrs', + textNodeName: '#text', + attributeNamePrefix: '', + arrayMode: false, + ignoreAttributes: false, + parseAttributeValue: false + }, + true + ); - setValue(id: number, value: string): void { - console.debug("Model.setValue", id, value); const yRoot = this.sharedModel.root; let index = -1; for (let i = 0; i < yRoot.length; i++) { const yCell = yRoot.get(i) as Y.XmlElement; const yCellAttrs = yCell.getAttributes(); - if (yCellAttrs['id'] == id) { + if (yCellAttrs['id'] === id) { index = i; break; } } - if (index == -1) { - return; - } - - this.sharedModel.transact(() => { - const yCell = yRoot.get(index) as Y.XmlElement; - yCell.setAttribute('value', value); - }); - } - - getStyle(id: number): string { - console.debug("Model.getValue", id); - const yRoot = this.sharedModel.root; + const yCell = this._parseJSONChild('mxCell', doc['mxCell']); - for (let i = 0; i < yRoot.length; i++) { - const yCell = yRoot.get(i) as Y.XmlElement; - const yCellAttrs = yCell.getAttributes(); - - if (yCellAttrs['id'] == id) { - - if (yCellAttrs['style']) { - return yCellAttrs['style'] - } - - return null; - } + if (index === -1) { + // Insert new + this.mutex(() => { + this.sharedModel.updateRoot(yRoot.length, yRoot.length, [yCell]); + }); + } else { + // Update + this.mutex(() => { + this.sharedModel.updateRoot(index, index + 1, [yCell]); + }); } - - return null; } - setStyle(id: number, style: string): void { - console.debug("Model.setStyle", id, style); + removeCell(id: number): void { + console.debug('Model.removeCell', id); const yRoot = this.sharedModel.root; let index = -1; for (let i = 0; i < yRoot.length; i++) { const yCell = yRoot.get(i) as Y.XmlElement; const yCellAttrs = yCell.getAttributes(); - if (yCellAttrs['id'] == id) { + if (yCellAttrs['id'] === id) { index = i; break; } } - - if (index == -1) { - return; + // Remove + console.debug(index); + if (index !== -1) { + console.debug(this.sharedModel.root.toDOM()); + this.mutex(() => { + this.sharedModel.updateRoot(index, index + 1, []); + }); + console.debug(this.sharedModel.root.toDOM()); } - - this.sharedModel.transact(() => { - const yCell = yRoot.get(index) as Y.XmlElement; - yCell.setAttribute('style', style); - }); } - private _parseJSONChild = (tag: string, element: any): Y.XmlText | Y.XmlElement => { + private _parseJSONChild = ( + tag: string, + element: any + ): Y.XmlText | Y.XmlElement => { const yElement = new Y.XmlElement(tag); - yElement.setAttribute("mxElementName", tag); + yElement.setAttribute('mxnodename', tag); const attrs = element['#attrs']; if (attrs) { @@ -490,26 +320,25 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { if (text) { yElement.push([new Y.XmlText(text)]); } - + for (const [key, child] of Object.entries(element)) { if (key === '#attrs' || key === '#text') { continue; } if (child instanceof Array) { - child.forEach( value => { + child.forEach(value => { yElement.push([this._parseJSONChild(key, value)]); }); - } else { yElement.push([this._parseJSONChild(key, child)]); } } - + return yElement; - } + }; - private _parseYChild = (yElement: Y.XmlText | Y.XmlElement): GraphObject => { + private _parseYChild = (yElement: Y.XmlText | Y.XmlElement): GraphObject => { const element: GraphObject = {}; const yAttrs = yElement.getAttributes(); @@ -526,48 +355,47 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { } if (yElement instanceof Y.XmlElement) { - yElement.slice(0, yElement.length).forEach( yChild => { - const tag = yChild.getAttribute('mxElementName'); - yChild.removeAttribute('mxElementName'); + yElement.slice(0, yElement.length).forEach(yChild => { + const tag = yChild.getAttribute('mxnodename'); + //yChild.removeAttribute('mxnodename'); const child = this._parseYChild(yChild); if (element[tag] === undefined) { element[tag] = child; - } else if (element[tag] instanceof Array) { element[tag].push(child); - } else { const aux = element[tag]; element[tag] = [aux, child]; } }); } - + return element; - } + }; + + private _onSharedModelChanged = ( + sender: XMLFile, + changes: XMLChange + ): void => { + this._sharedModelChanged.emit(changes); + }; private _dirty = false; private _readOnly = false; private _isDisposed = false; private _contentChanged = new Signal(this); private _stateChanged = new Signal>(this); + private _sharedModelChanged = new Signal(this); } export type XMLChange = { contextChange?: MapChange; - mxRootChange?: Delta; - mxChildChange?: Delta; - mxGeometryChange?: Delta; - mxTerminalChange?: Delta; - mxValueChange?: { - id: number; - value: string; - }; - mxStyleChange?: { + mxChildChange?: Delta<{ id: number; - style: string; - }; + oldValue: Y.XmlElement | undefined; + newValue: Y.XmlElement | undefined; + }>; }; /** @@ -610,8 +438,8 @@ export class XMLFile extends YDocument implements ISharedXMLFile { this._attr = this.ydoc.getMap('attrs'); this._root = this.ydoc.getXmlFragment('root'); - this._attr.observeDeep(this._modelObserver); - this._root.observeDeep(this._cellsObserver); + this._attr.observe(this._modelObserver); + this._root.observe(this._cellsObserver); } get root(): Y.XmlFragment { @@ -622,8 +450,8 @@ export class XMLFile extends YDocument implements ISharedXMLFile { * Dispose of the resources. */ dispose(): void { - this._attr.unobserveDeep(this._modelObserver); - this._root.unobserveDeep(this._cellsObserver); + this._attr.unobserve(this._modelObserver); + this._root.unobserve(this._cellsObserver); } public static create(): XMLFile { @@ -660,10 +488,10 @@ export class XMLFile extends YDocument implements ISharedXMLFile { * * @param value: New source (optional). */ - public updateSource(start: number, end: number, value = ''): void { + public updateSource(start: number, end: number, value = ''): void { this.transact(() => { this.source.delete(start, end - start); - this.source.insert(0, value); + this.source.insert(start, value); }); } @@ -733,20 +561,24 @@ export class XMLFile extends YDocument implements ISharedXMLFile { * * @param value: New source (optional). */ - public updateRoot(start: number, end: number, value: (Y.XmlElement | Y.XmlText)[]): void { + public updateRoot( + start: number, + end: number, + value: (Y.XmlElement | Y.XmlText)[] + ): void { //console.debug("updateRoot:", start, end); //console.debug(value); this.transact(() => { this._root.delete(start, end - start); - this._root.insert(0, value); + this._root.insert(start, value); }); } /** * Handle a change to the _mxGraphModel. */ - private _modelObserver = (events: Y.YEvent[]): void => { - console.debug("_modelObserver:", events); + private _modelObserver = (event: Y.YMapEvent): void => { + console.debug('_modelObserver:', event); //const changes: XMLChange = {}; //changes.graphChanged = events.find();.delta as any; //this._changed.emit(changes); @@ -755,14 +587,15 @@ export class XMLFile extends YDocument implements ISharedXMLFile { /** * Handle a change to the _mxGraphModel. */ - private _cellsObserver = (events: Y.YEvent[]): void => { - console.debug("_cellsObserver:", events); - /* const changes: XMLChange = {}; - const event = events.find(event => event.target === this._root); + private _cellsObserver = (event: Y.YXmlEvent): void => { + console.debug('_cellsObserver:', event); + const changes: XMLChange = {}; + /*const event = events.find( event => event.target === this._root); if (event) { - changes.mxRootChange = event.changes.delta as any; - } - this._changed.emit(changes); */ + console.debug(event); + changes.mxChildChange = event.changes.delta as any; + } */ + this._changed.emit(changes); }; private _attr: Y.Map; diff --git a/src/panel.ts b/src/panel.ts index 45fdf484..69201769 100644 --- a/src/panel.ts +++ b/src/panel.ts @@ -15,7 +15,7 @@ import './drawio/css/common.css'; import './drawio/styles/grapheditor.css'; -import { DrawIODocumentModel } from './model'; +import { DrawIODocumentModel, XMLChange } from './model'; import { grapheditorTxt, defaultXml } from './pack'; @@ -51,10 +51,7 @@ export class DrawIOWidget extends Widget { console.debug('DrawIOWidget context ready'); Private.ensureMx().then(mx => { this._loadDrawIO(mx); - this._context.model.sharedModel.changed.connect( - this._onContentChanged, - this - ); + this._context.model.sharedModelChanged.connect(this._onContentChanged); }); }); } @@ -67,6 +64,7 @@ export class DrawIOWidget extends Widget { if (this.isDisposed) { return; } + this._context.model.sharedModelChanged.disconnect(this._onContentChanged); this._editor.destroy(); //this._context = null; super.dispose(); @@ -365,21 +363,41 @@ export class DrawIOWidget extends Widget { }, true); } - private _onContentChanged(): void { - console.debug('_onContentChanged'); - const newValue = this._context.model.toString(); + private _onContentChanged = ( + sender: DrawIODocumentModel, + changes: XMLChange + ): void => { + console.debug('_onContentChanged', changes); if (this._editor === undefined) { return; } - const oldValue = this._mx.mxUtils.getXml(this._editor.editor.getGraphXml()); + const newValue = this._context.model.toString(); + const newXml = this._mx.mxUtils.parseXml(newValue); + const oldXml = this._editor.editor.getGraphXml(); + const oldValue = this._mx.mxUtils.getXml(oldXml); - if (oldValue !== newValue && !this._editor.editor.graph.isEditing()) { - if (newValue.length) { - console.debug('Get Model:'); - const xml = this._mx.mxUtils.parseXml(newValue); - this._editor.editor.setGraphXml(xml.documentElement); - } + if ( + oldValue !== newValue && + !this._editor.editor.graph.isEditing() && + newValue.length + ) { + this._context.model.mutex(() => { + this._editor.editor.setGraphXml(newXml.documentElement); + this._editor.editor.graph.startEditing(); + console.debug('Set Graph Model:', oldXml, newXml); + }); + /* const model = this._editor.editor.graph.getModel(); + + const newRoot = this._context.model.getRoot(); + const root = this._editor.editor.graph.model.getRoot(); + + const codec = new this._mx.mxCodec(); + const newModel = codec.decodeCell(newRoot); + + console.debug("ELements:"); + console.debug(root, newRoot, model, newModel); + this._editor.editor.graph.model.setRoot(newModel); */ } // mxRootChange @@ -400,38 +418,7 @@ export class DrawIOWidget extends Widget { // child mxCell that specifies the child to be inserted. // index Optional integer that specifies the index of the child. //this._editor.editor.graph.model.add(parent, child, index); - - // mxGeometryChange - // cell mxCell whose geometry should be returned. - //this._editor.editor.graph.model.getGeometry(cell); - // cell mxCell whose geometry should be changed. - // geometry mxGeometry that defines the new geometry. - //this._editor.editor.graph.model.setGeometry(cell, geometry); - - // mxTerminalChange - // edge mxCell that specifies the edge. - // isSource Boolean indicating which end of the edge should be returned. - //this._editor.editor.graph.model.getTerminal(edge, isSource); - // edge mxCell that specifies the edge. - // terminal mxCell that specifies the new terminal. - // isSource Boolean indicating if the terminal is the new source or target terminal of the edge. - //this._editor.editor.graph.model.setTerminal(edge, terminal, isSource); - - // mxValueChange - // cell mxCell whose user object should be returned. - //this._editor.editor.graph.model.getValue(cell); - // cell mxCell whose user object should be changed. - // value Object that defines the new user object. - //this._editor.editor.graph.model.setValue(cell, value); - - // mxStyleChange - // cell mxCell whose style should be returned. - //this._editor.editor.graph.model.getStyle(cell); - // cell mxCell whose style should be changed. - // style String of the form [stylename;|key=value;] to specify the new cell style. - //this._editor.editor.graph.model.setStyle(cell, style); - - } + }; private _loadDrawIO(mx: Private.MX): void { this._mx = mx; @@ -454,86 +441,59 @@ export class DrawIOWidget extends Widget { this._editor.refresh(); //console.debug(this._mx); + //console.debug(this._editor); + //console.debug(this._editor.editor); + //console.debug(this._editor.editor.graph); //console.debug(this._editor.editor.graph.model); - this._editor.editor.graph.model.addListener( - this._mx.mxEvent.NOTIFY, - (sender: any, evt: any) => { - console.debug("DIO changed:", evt); - const changes = evt.getProperty('edit').changes; - - for (let i = 0; i < changes.length; i++) { - if (changes[i] instanceof this._mx.mxRootChange) { - return; - } - } - - //if (this._editor.editor.graph.isEditing()) { - // this._editor.editor.graph.stopEditing(); - //} - - const graph = this._editor.editor.getGraphXml(); - console.debug("Save graph", data); - const xml = this._mx.mxUtils.getXml(graph); - this._context.model.fromString(xml); - } - ); - /* this._editor.editor.graph.model.addListener( + this._editor.editor.graph.model.addListener( this._mx.mxEvent.NOTIFY, (sender: any, evt: any) => { + const oldXml = this._editor.editor.getGraphXml(); + console.debug('oldxml', oldXml); + console.debug('Graph changed:'); const changes = evt.getProperty('edit').changes; - console.debug("Graph changed:"); - console.debug(evt); + const encoder = new this._mx.mxCodec(); for (let i = 0; i < changes.length; i++) { const change = changes[i]; - console.debug(change); - - if (change instanceof this._mx.mxRootChange) { - console.log("Root changed:", change.root.id); - const children = change.root.children; - for (let j = 0; j < children.length; j++) { - console.log(children[j]); - } - } if (change instanceof this._mx.mxChildChange) { - console.log("Child changed:", change.child.id); - console.log(change.child); - // id = change.child.id - // value = change.cell.value - // style = change.cell.style - // parent = change.cell.parent - // vertex = change.cell.vertex - } - - if (change instanceof this._mx.mxGeometryChange) { - console.log("Geometry changed:", change.cell.id); - console.log(change.geometry); - // x = change.geometry.x - // y = change.geometry.y - // width = change.geometry.width - // height = change.geometry.height - // as = "" - } - - if (change instanceof this._mx.mxTerminalChange) { - console.log("Terminal changed:", change.cell.id); - console.log(change.terminal); + console.debug('mxChildChange:', change); + const el = encoder.encode(change.child); + const xml = this._mx.mxUtils.getXml(el); + if (change.index === undefined) { + this._context.model.removeCell(change.child.id); + } else { + this._context.model.setCell(change.child.id, xml); + } } - if (change instanceof this._mx.mxValueChange) { - console.log("Value changed:", change.cell.id); - console.log(change.geometry); - // value = change.cell.value + if ( + !(change instanceof this._mx.mxRootChange) && + !(change instanceof this._mx.mxChildChange) + ) { + console.debug('Other change:', change); + const el = encoder.encode(change.cell); + const xml = this._mx.mxUtils.getXml(el); + this._context.model.setCell(change.cell.id, xml); } - if (change instanceof this._mx.mxStyleChange) { - console.log("Style changed:", change.cell.id); - console.log(change.geometry); - // style = change.cell.style - } + /* if (change instanceof this._mx.mxRootChange) { + console.log("Root changed:", change.root.id, change); + const children = change.root.children; + for (let j = 0; j < children.length; j++) { + console.log("Child", children[j].id, children[j]); + const el = encoder.encode(children[j]); + const xml = this._mx.mxUtils.getXml(el); + this._context.model.setRoot(xml); + } + } */ + //mxGeometryChange + //mxTerminalChange + //mxValueChange + //mxStyleChange //mxCellAttributeChange //mxCollapseChange //mxCurrentRootChange @@ -541,7 +501,8 @@ export class DrawIOWidget extends Widget { //mxSelectionChange //mxVisibleChange } - }); */ + } + ); this._promptSpacing = this._mx.mxUtils.bind( this, @@ -562,10 +523,8 @@ export class DrawIOWidget extends Widget { ); const data = this._context.model.toString(); - console.debug("Load graph", data); const xml = this._mx.mxUtils.parseXml(data); this._editor.editor.setGraphXml(xml.documentElement); - //this._editor.editor.graph.model.setRoot(root); this._ready.resolve(void 0); } diff --git a/src/tokens.ts b/src/tokens.ts index 99e3bc50..11b20c89 100644 --- a/src/tokens.ts +++ b/src/tokens.ts @@ -1,27 +1,27 @@ export type mxRoot = mxCell[]; export type mxCell = { - id: number; - parent?: number; - value?: string; - style?: string; - vertex?: number; - edge?: boolean; - source?: number; - geometry?: mxGeometry; + id: number; + parent?: number; + value?: string; + style?: string; + vertex?: number; + edge?: boolean; + source?: number; + geometry?: mxGeometry; }; export type mxGeometry = { - x?: number; - y?: number; - as: string; - width?: number; - height?: number; - relative?: boolean; + x?: number; + y?: number; + as: string; + width?: number; + height?: number; + relative?: boolean; }; export type mxPoint = { - x: number; - y: number; - as: string; -}; \ No newline at end of file + x: number; + y: number; + as: string; +}; From 0f528bcda4ebd42871cf75dd97e27bf1fdcc8c64 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Mon, 7 Jun 2021 20:58:01 +0200 Subject: [PATCH 08/17] clean up --- src/index.ts | 13 +- src/model.ts | 492 ++++++++++++--------------------------------- src/panel.ts | 228 +++++++++++++-------- src/widget.ts | 43 ++-- testfiles/test.dio | 10 +- testfiles/test.svg | 1 + 6 files changed, 312 insertions(+), 475 deletions(-) create mode 100644 testfiles/test.svg diff --git a/src/index.ts b/src/index.ts index 2f99225b..0abaff4a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -157,15 +157,20 @@ function activate( tracker.currentWidget !== null && tracker.currentWidget === app.shell.currentWidget, execute: () => { - const cwd = browserFactory.defaultBrowser.model.path; + const wdg = app.shell.currentWidget as DrawIODocumentWidget; + const name = wdg.context.path.split('/').pop().split('.')[0] + ".svg"; + let path = wdg.context.path.split('/').slice(0, -1).join(); + commands .execute('docmanager:new-untitled', { - path: cwd, + name, + path, type: 'file', ext: '.svg' }) - .then(model => { - const wdg = app.shell.currentWidget as any; + .then( model => { + model.name = name + model.path = path ? path + "/" + name : name; model.content = wdg.getSVG(); model.format = 'text'; app.serviceManager.contents.save(model.path, model); diff --git a/src/model.ts b/src/model.ts index 8bdf9849..751e049e 100644 --- a/src/model.ts +++ b/src/model.ts @@ -15,9 +15,7 @@ import { DocumentRegistry } from '@jupyterlab/docregistry'; import { - ISharedDocument, YDocument, - Delta, MapChange, createMutex } from '@jupyterlab/shared-models'; @@ -34,10 +32,6 @@ import * as Y from 'yjs'; import { parse, j2xParser, J2xOptions } from 'fast-xml-parser'; -type GraphObject = { - [key: string]: any; -}; - export class DrawIODocumentModel implements DocumentRegistry.IModel { /** * Construct a new DrawIODocumentModel. @@ -51,13 +45,17 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { get dirty(): boolean { return this._dirty; } - set dirty(value: boolean) { - this._dirty = value; + + set dirty(newValue: boolean) { + const oldValue = this._dirty; + this._dirty = newValue; + this._stateChanged.emit({ name: 'dirty', oldValue, newValue }); } get readOnly(): boolean { return this._readOnly; } + set readOnly(value: boolean) { this._readOnly = value; } @@ -74,7 +72,7 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { return this._stateChanged; } - get sharedModelChanged(): ISignal { + get sharedModelChanged(): ISignal { return this._sharedModelChanged; } @@ -84,7 +82,7 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { readonly modelDB: IModelDB; - readonly sharedModel: XMLFile = XMLFile.create(); + readonly sharedModel: YDrawIO = YDrawIO.create(); readonly mutex = createMutex(); @@ -94,42 +92,22 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { } this._isDisposed = true; Signal.clearData(this); - this.sharedModel.dispose(); + //this.sharedModel.dispose(); } toString(): string { - console.info('DrawIODocumentModel.toString():'); - const yAttr = this.sharedModel.getAttr('mxGraphModel') as Y.Map; - - const root: GraphObject[] = []; - const yRoot = this.sharedModel.getRoot(); - yRoot.forEach(value => { - //value.removeAttribute('mxnodename'); - root.push(this._parseYChild(value)); - }); - - const graph: GraphObject = {}; - graph['mxGraphModel'] = { - '#attrs': yAttr.toJSON(), - root: { - mxCell: root - } - }; + const source = this.sharedModel.getSource() || ""; + return source; + } - const defaultOptions: Partial = { - attrNodeName: '#attrs', - textNodeName: '#text', - attributeNamePrefix: '', - ignoreAttributes: false - }; - const parser = new j2xParser(defaultOptions); - return parser.parse(graph); + fromString(source: string): void { + this.sharedModel.setSource(source); } - fromString(value: string): void { - console.info('DrawIODocumentModel.fromString():', value); + toJSON(): PartialJSONValue { + const source = this.sharedModel.getSource() || ""; const doc = parse( - value, + source, { attrNodeName: '#attrs', textNodeName: '#text', @@ -140,36 +118,20 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { }, true ); - const attrs = doc['mxGraphModel']['#attrs']; - const root = doc['mxGraphModel']['root']; - - const yAttrs = new Y.Map(); - for (const [key, value] of Object.entries(attrs)) { - yAttrs.set(key, value as string); - } - - const yRoot = Array(); - root['mxCell'].forEach((value: any) => { - yRoot.push(this._parseJSONChild('mxCell', value)); - }); - - this.mutex(() => { - this.sharedModel.setSource(value); - this.sharedModel.setAttr('mxGraphModel', yAttrs); - this.sharedModel.setRoot(yRoot); - }); + return doc; } - toJSON(): PartialJSONValue { - console.info('DrawIODocumentModel.toJSON():'); - throw new Error('not implemented'); - return JSON.parse(this.sharedModel.getSource()); - } - - fromJSON(value: ReadonlyPartialJSONValue): void { - console.info('DrawIODocumentModel.fromJSON():', value); - throw new Error('not implemented'); - this.sharedModel.setSource(value.toString()); + fromJSON(source: ReadonlyPartialJSONValue): void { + const defaultOptions: Partial = { + attrNodeName: '#attrs', + textNodeName: '#text', + attributeNamePrefix: '', + ignoreAttributes: false, + indentBy: "\t" + }; + const parser = new j2xParser(defaultOptions); + const data = parser.parse(source); + this.sharedModel.setSource(data); } initialize(): void { @@ -180,204 +142,43 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { this.sharedModel.transact(cb); } - getRoot(): Node { - console.debug('Model.getRoot'); - const yRoot = this.sharedModel.getRoot(); - const root = document.createElement('root'); - - yRoot.forEach(yEl => { - // Clone element - //const yEl = this._parseJSONChild('mxCell', this._parseYChild(value)); - root.appendChild(yEl.toDOM()); - }); - - console.debug(root); - return root; + getCell(id: string): any { + return this.sharedModel.getCell(id); } - setRoot(root: string): void { - console.debug('Model.setRoot', root); - - const doc = parse( - root, - { - attrNodeName: '#attrs', - textNodeName: '#text', - attributeNamePrefix: '', - arrayMode: false, - ignoreAttributes: false, - parseAttributeValue: false - }, - true - ); - - console.debug(doc); - - /* const yRoot = Array(); - doc['mxCell'].forEach((value: any) => { - yRoot.push(this._parseJSONChild('mxCell', value)); - }); - - console.debug(yRoot); */ - //this.sharedModel.updateRoot(0, this.sharedModel.root.length, yRoot); + setCell(id: string, cell: any): void { + this.sharedModel.setCell(id, cell); } - getCell(id: number): Node { - console.debug('Model.getCell', id); - const yRoot = this.sharedModel.root; - - for (let i = 0; i < yRoot.length; i++) { - const yCell = yRoot.get(i) as Y.XmlElement; - const yCellAttrs = yCell.getAttributes(); - if (yCellAttrs['id'] === id) { - return yCell.toDOM(); - } - } - - return null; + removeCell(id: string): void { + this.sharedModel.removeCell(id); } - setCell(id: number, cell: string): void { - console.debug('Model.setCell', cell); - - const doc = parse( - cell, - { - attrNodeName: '#attrs', - textNodeName: '#text', - attributeNamePrefix: '', - arrayMode: false, - ignoreAttributes: false, - parseAttributeValue: false - }, - true - ); - - const yRoot = this.sharedModel.root; - let index = -1; - for (let i = 0; i < yRoot.length; i++) { - const yCell = yRoot.get(i) as Y.XmlElement; - const yCellAttrs = yCell.getAttributes(); - if (yCellAttrs['id'] === id) { - index = i; - break; - } + getGraph(): string { + if (!this.sharedModel.getCell('0')) { + return this.toString(); } - const yCell = this._parseJSONChild('mxCell', doc['mxCell']); - - if (index === -1) { - // Insert new - this.mutex(() => { - this.sharedModel.updateRoot(yRoot.length, yRoot.length, [yCell]); - }); - } else { - // Update - this.mutex(() => { - this.sharedModel.updateRoot(index, index + 1, [yCell]); - }); - } - } - - removeCell(id: number): void { - console.debug('Model.removeCell', id); - const yRoot = this.sharedModel.root; - let index = -1; - for (let i = 0; i < yRoot.length; i++) { - const yCell = yRoot.get(i) as Y.XmlElement; - const yCellAttrs = yCell.getAttributes(); - if (yCellAttrs['id'] === id) { - index = i; - break; - } - } - // Remove - console.debug(index); - if (index !== -1) { - console.debug(this.sharedModel.root.toDOM()); - this.mutex(() => { - this.sharedModel.updateRoot(index, index + 1, []); - }); - console.debug(this.sharedModel.root.toDOM()); - } + let graph = " { + const attr = ` ${key}="${value}"`; + console.debug(attr); + graph += attr; + }); + graph += ">"; + this.sharedModel.root.forEach( cell => { + graph += cell; + }); + graph += ""; + console.debug(graph); + return graph; } - private _parseJSONChild = ( - tag: string, - element: any - ): Y.XmlText | Y.XmlElement => { - const yElement = new Y.XmlElement(tag); - yElement.setAttribute('mxnodename', tag); - - const attrs = element['#attrs']; - if (attrs) { - for (const [key, value] of Object.entries(attrs)) { - yElement.setAttribute(key, value as string); - } - } - - const text = element['#text']; - if (text) { - yElement.push([new Y.XmlText(text)]); - } - - for (const [key, child] of Object.entries(element)) { - if (key === '#attrs' || key === '#text') { - continue; - } - - if (child instanceof Array) { - child.forEach(value => { - yElement.push([this._parseJSONChild(key, value)]); - }); - } else { - yElement.push([this._parseJSONChild(key, child)]); - } - } - - return yElement; - }; - - private _parseYChild = (yElement: Y.XmlText | Y.XmlElement): GraphObject => { - const element: GraphObject = {}; - - const yAttrs = yElement.getAttributes(); - if (yAttrs) { - const attrs: GraphObject = {}; - for (const [key, value] of Object.entries(yAttrs)) { - attrs[key] = value; - } - element['#attrs'] = attrs; - } - - if (yElement instanceof Y.XmlText) { - element['#text'] = yElement.toJSON(); - } - - if (yElement instanceof Y.XmlElement) { - yElement.slice(0, yElement.length).forEach(yChild => { - const tag = yChild.getAttribute('mxnodename'); - //yChild.removeAttribute('mxnodename'); - const child = this._parseYChild(yChild); - - if (element[tag] === undefined) { - element[tag] = child; - } else if (element[tag] instanceof Array) { - element[tag].push(child); - } else { - const aux = element[tag]; - element[tag] = [aux, child]; - } - }); - } - - return element; - }; - private _onSharedModelChanged = ( - sender: XMLFile, - changes: XMLChange + sender: YDrawIO, + changes: IDrawIOChange ): void => { + this.dirty = true; this._sharedModelChanged.emit(changes); }; @@ -386,63 +187,30 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { private _isDisposed = false; private _contentChanged = new Signal(this); private _stateChanged = new Signal>(this); - private _sharedModelChanged = new Signal(this); + private _sharedModelChanged = new Signal(this); } -export type XMLChange = { +export type IDrawIOChange = { contextChange?: MapChange; - mxChildChange?: Delta<{ - id: number; - oldValue: Y.XmlElement | undefined; - newValue: Y.XmlElement | undefined; - }>; + attrChange?: MapChange; + cellChange?: MapChange; }; -/** - * Text/Markdown/Code files are represented as ISharedFile - */ -export interface ISharedXMLFile extends ISharedDocument { - /** - * The changed signal. - */ - readonly changed: ISignal; - /** - * Gets cell's source. - * - * @returns Cell's source. - */ - getSource(): string; - - /** - * Sets cell's source. - * - * @param value: New source. - */ - setSource(value: string): void; - - /** - * Replace content from `start' to `end` with `value`. - * - * @param start: The start index of the range to replace (inclusive). - * - * @param end: The end index of the range to replace (exclusive). - * - * @param value: New source (optional). - */ - updateSource(start: number, end: number, value?: string): void; -} - -export class XMLFile extends YDocument implements ISharedXMLFile { +export class YDrawIO extends YDocument { constructor() { super(); - this._attr = this.ydoc.getMap('attrs'); - this._root = this.ydoc.getXmlFragment('root'); + this._attrs = this.ydoc.getMap('attrs'); + this._root = this.ydoc.getMap('root'); + + this._attrs.observe(this._attrsObserver); + this._root.observe(this._rootObserver); + } - this._attr.observe(this._modelObserver); - this._root.observe(this._cellsObserver); + get attrs(): Y.Map { + return this._attrs; } - get root(): Y.XmlFragment { + get root(): Y.Map { return this._root; } @@ -450,12 +218,12 @@ export class XMLFile extends YDocument implements ISharedXMLFile { * Dispose of the resources. */ dispose(): void { - this._attr.unobserve(this._modelObserver); - this._root.unobserve(this._cellsObserver); + this._attrs.unobserve(this._attrsObserver); + this._root.unobserve(this._rootObserver); } - public static create(): XMLFile { - return new XMLFile(); + public static create(): YDrawIO { + return new YDrawIO(); } /** @@ -501,8 +269,7 @@ export class XMLFile extends YDocument implements ISharedXMLFile { * @param key: The key of the attribute. */ public getAttr(key: string): any { - //console.debug("getAttrs:", key); - return this._attr.get(key); + return this._attrs.get(key); } /** @@ -513,91 +280,100 @@ export class XMLFile extends YDocument implements ISharedXMLFile { * @param value: New source. */ public setAttr(key: string, value: any): void { - //console.debug("setAttr:", key, value); - this._attr.set(key, value); + this._attrs.set(key, value); } /** - * Replace attribute. + * Remove an attribute. * * @param key: The key of the attribute. - * - * @param value: New source. */ - public updateAttr(key: string, value: any): void { - //console.debug("updateAttr:", key, value); - this._attr.set(key, value); + public removeAttr(key: string): void { + this._attrs.delete(key); } /** - * Gets elements. + * Returns a cell. * - * @returns elements. + * @param id: The id of the cell. */ - public getRoot(): (Y.XmlElement | Y.XmlText)[] { - //console.debug("setRoot:", this._root.slice()); - return this._root.slice(); + public getCell(id: string): any { + return this._root.get(id); } /** - * Sets elements. + * Adds new cell. + * + * @param id: The id of the cell. * - * @param root: New elements. + * @param cell: New cell. */ - public setRoot(root: (Y.XmlElement | Y.XmlText)[]): void { - //console.debug("setRoot:", root); - this.transact(() => { - this._root.delete(0, this._root.length); - this._root.insert(0, root); - }); + public setCell(id: string, cell: any): void { + this._root.set(id, cell); } /** - * Replace content from `start' to `end` with `value`. - * - * @param start: The start index of the range to replace (inclusive). - * - * @param end: The end index of the range to replace (exclusive). + * Remove a cell. * - * @param value: New source (optional). + * @param id: The id of the cell. */ - public updateRoot( - start: number, - end: number, - value: (Y.XmlElement | Y.XmlText)[] - ): void { - //console.debug("updateRoot:", start, end); - //console.debug(value); - this.transact(() => { - this._root.delete(start, end - start); - this._root.insert(start, value); - }); + public removeCell(id: string): void { + this._root.delete(id); } /** * Handle a change to the _mxGraphModel. */ - private _modelObserver = (event: Y.YMapEvent): void => { - console.debug('_modelObserver:', event); - //const changes: XMLChange = {}; - //changes.graphChanged = events.find();.delta as any; + private _attrsObserver = (event: Y.YMapEvent): void => { + const changes: IDrawIOChange = {}; + + if (event.keysChanged.size > 0) { + changes.attrChange = new Map(); + event.keysChanged.forEach( key => { + const attr = this._attrs.get(key); + const change = event.changes.keys.get(key); + + changes.attrChange.set( + key, + { + action: change.action, + oldValue: change.oldValue, + newValue: attr + } + ); + }); + } + //this._changed.emit(changes); }; /** * Handle a change to the _mxGraphModel. */ - private _cellsObserver = (event: Y.YXmlEvent): void => { - console.debug('_cellsObserver:', event); - const changes: XMLChange = {}; - /*const event = events.find( event => event.target === this._root); - if (event) { - console.debug(event); - changes.mxChildChange = event.changes.delta as any; - } */ + private _rootObserver = (event: Y.YMapEvent): void => { + const changes: IDrawIOChange = {}; + + if (event.keysChanged.size > 0) { + changes.cellChange = new Map(); + event.keysChanged.forEach( key => { + const cell = this._root.get(key); + const change = event.changes.keys.get(key); + + changes.cellChange.set( + key, + { + action: change.action, + oldValue: change.oldValue, + newValue: cell + } + ); + console.debug("Change:", changes.cellChange.get(key)); + }); + } + this._changed.emit(changes); }; - private _attr: Y.Map; - private _root: Y.XmlFragment; + private _attrs: Y.Map; + private _root: Y.Map; } diff --git a/src/panel.ts b/src/panel.ts index 69201769..0570bd2f 100644 --- a/src/panel.ts +++ b/src/panel.ts @@ -15,7 +15,7 @@ import './drawio/css/common.css'; import './drawio/styles/grapheditor.css'; -import { DrawIODocumentModel, XMLChange } from './model'; +import { DrawIODocumentModel, IDrawIOChange } from './model'; import { grapheditorTxt, defaultXml } from './pack'; @@ -89,6 +89,12 @@ export class DrawIOWidget extends Widget { return this._editor.editor.graph; } + save(): void { + const xml = this._editor.editor.getGraphXml(); + const source = this._mx.mxUtils.getXml(xml); + this._context.model.fromString(source); + } + getAction(action: string): any { return this._editor.actions.actions[action]; } @@ -97,6 +103,10 @@ export class DrawIOWidget extends Widget { return this._editor.actions.actions; } + public getSVG(): string { + return this.mx.mxUtils.getXml(this._editor.editor.graph.getSvg()); + } + //Direction public toggleCellStyles(flip: string): void { let styleFlip = this._editor.mx.mxConstants.STYLE_FLIPH; @@ -363,43 +373,75 @@ export class DrawIOWidget extends Widget { }, true); } + private _onReady(): void { + const data = this._context.model.getGraph(); + const xml = this._mx.mxUtils.parseXml(data); + console.debug(xml.documentElement); + xml.documentElement.attributes.map( (key: string, value: any) => { + console.debug(key, value); + }); + this._editor.editor.setGraphXml(xml.documentElement); + this._ready.resolve(void 0); + } + private _onContentChanged = ( sender: DrawIODocumentModel, - changes: XMLChange + changes: IDrawIOChange ): void => { - console.debug('_onContentChanged', changes); + console.debug("_onContentChanged", changes); if (this._editor === undefined) { return; } - - const newValue = this._context.model.toString(); - const newXml = this._mx.mxUtils.parseXml(newValue); - const oldXml = this._editor.editor.getGraphXml(); - const oldValue = this._mx.mxUtils.getXml(oldXml); - - if ( - oldValue !== newValue && - !this._editor.editor.graph.isEditing() && - newValue.length - ) { + + if (changes.cellChange) { this._context.model.mutex(() => { - this._editor.editor.setGraphXml(newXml.documentElement); - this._editor.editor.graph.startEditing(); - console.debug('Set Graph Model:', oldXml, newXml); + changes.cellChange.forEach( (change, key) => { + if (change.action === 'delete') { + const doc = this._mx.mxUtils.parseXml(change.oldValue); + const codec = new this._mx.mxCodec(doc); + const cell = codec.decode(doc.documentElement); + + this._editor.editor.graph.removeCells([cell]); + + } else if (change.action === 'add') { + const doc = this._mx.mxUtils.parseXml(change.oldValue); + const codec = new this._mx.mxCodec(doc); + const cell = codec.decode(doc.documentElement); + + this._editor.editor.graph.addCell(cell); + + } else if (change.action === 'update') { + const doc1 = this._mx.mxUtils.parseXml(change.oldValue); + const codec1 = new this._mx.mxCodec(doc1); + const cell1 = codec1.decode(doc1.documentElement); + this._editor.editor.graph.removeCells([cell1]); + + const doc2 = this._mx.mxUtils.parseXml(change.oldValue); + const codec2 = new this._mx.mxCodec(doc2); + const cell2 = codec2.decode(doc2.documentElement); + this._editor.editor.graph.addCell(cell2); + } + }); + + /* console.debug("Set cell mutex"); + + var xml = this._context.model.getCells(); + const doc = this._mx.mxUtils.parseXml(xml); + const codec = new this._mx.mxCodec(doc); + let elt = doc.documentElement.firstChild; + + console.debug(doc); + + const cells = []; + while (elt != null) { + cells.push(codec.decode(elt)); + elt = elt.nextSibling; + } + + this._editor.editor.graph.addCells(cells); */ }); - /* const model = this._editor.editor.graph.getModel(); - - const newRoot = this._context.model.getRoot(); - const root = this._editor.editor.graph.model.getRoot(); - - const codec = new this._mx.mxCodec(); - const newModel = codec.decodeCell(newRoot); - - console.debug("ELements:"); - console.debug(root, newRoot, model, newModel); - this._editor.editor.graph.model.setRoot(newModel); */ } - + // mxRootChange // cell Optional mxCell that specifies the child. //this._editor.editor.graph.model.getRoot(cell); @@ -420,52 +462,49 @@ export class DrawIOWidget extends Widget { //this._editor.editor.graph.model.add(parent, child, index); }; - private _loadDrawIO(mx: Private.MX): void { - this._mx = mx; - - // Adds required resources (disables loading of fallback properties, this can only - // be used if we know that all keys are defined in the language specific file) - this._mx.mxResources.loadDefaultBundle = false; - - // Fixes possible asynchronous requests - this._mx.mxResources.parse(grapheditorTxt); - const oParser = new DOMParser(); - const oDOM = oParser.parseFromString(defaultXml, 'text/xml'); - const themes: any = new Object(null); - themes[(this._mx.Graph as any).prototype.defaultThemeName] = - oDOM.documentElement; - - // Workaround for TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature - const Editor: any = this._mx.Editor; - this._editor = new this._mx.EditorUi(new Editor(false, themes), this.node); - this._editor.refresh(); - - //console.debug(this._mx); - //console.debug(this._editor); - //console.debug(this._editor.editor); - //console.debug(this._editor.editor.graph); - //console.debug(this._editor.editor.graph.model); - - this._editor.editor.graph.model.addListener( - this._mx.mxEvent.NOTIFY, - (sender: any, evt: any) => { - const oldXml = this._editor.editor.getGraphXml(); - console.debug('oldxml', oldXml); - console.debug('Graph changed:'); - const changes = evt.getProperty('edit').changes; - const encoder = new this._mx.mxCodec(); + private _onDrawIOModelChanged = (sender: any, evt: any) => { + const changes = evt.getProperty('edit').changes; + const encoder = new this._mx.mxCodec(); + this._context.model.mutex(() => { + this._context.model.transact(() => { for (let i = 0; i < changes.length; i++) { const change = changes[i]; + if (change instanceof this._mx.mxRootChange) { + console.debug("CHANGE:", change); + + const root = change.root; + const rootEl = encoder.encode(root); + const rootCell = this._mx.mxUtils.getXml(rootEl); + this._context.model.setCell(root.id, rootCell); + console.debug(rootCell); + + const main = root.children[0]; + const mainEl = encoder.encode(main); + const mainCell = this._mx.mxUtils.getXml(mainEl); + this._context.model.setCell(main.id, mainCell); + console.debug(mainCell); + + const cells = main.children; + if (cells) { + for (let j = 0; j < cells.length; j++) { + const el = encoder.encode(cells[j]); + const cell = this._mx.mxUtils.getXml(el); + this._context.model.setCell(cells[j].id, cell); + console.debug(cell); + } + } + } + if (change instanceof this._mx.mxChildChange) { - console.debug('mxChildChange:', change); - const el = encoder.encode(change.child); - const xml = this._mx.mxUtils.getXml(el); + //console.log("Children changed:", change.child.id, change.child); if (change.index === undefined) { this._context.model.removeCell(change.child.id); } else { - this._context.model.setCell(change.child.id, xml); + const el = encoder.encode(change.child); + const cell = this._mx.mxUtils.getXml(el); + this._context.model.setCell(change.child.id, cell); } } @@ -473,23 +512,12 @@ export class DrawIOWidget extends Widget { !(change instanceof this._mx.mxRootChange) && !(change instanceof this._mx.mxChildChange) ) { - console.debug('Other change:', change); + //console.log("Other change:", change.cell.id, change.cell); const el = encoder.encode(change.cell); - const xml = this._mx.mxUtils.getXml(el); - this._context.model.setCell(change.cell.id, xml); + const cell = this._mx.mxUtils.getXml(el); + this._context.model.setCell(change.cell.id, cell); } - /* if (change instanceof this._mx.mxRootChange) { - console.log("Root changed:", change.root.id, change); - const children = change.root.children; - for (let j = 0; j < children.length; j++) { - console.log("Child", children[j].id, children[j]); - const el = encoder.encode(children[j]); - const xml = this._mx.mxUtils.getXml(el); - this._context.model.setRoot(xml); - } - } */ - //mxGeometryChange //mxTerminalChange //mxValueChange @@ -501,7 +529,36 @@ export class DrawIOWidget extends Widget { //mxSelectionChange //mxVisibleChange } - } + }); + }); + } + + private _loadDrawIO(mx: Private.MX): void { + this._mx = mx; + + // Adds required resources (disables loading of fallback properties, this can only + // be used if we know that all keys are defined in the language specific file) + this._mx.mxResources.loadDefaultBundle = false; + + // Fixes possible asynchronous requests + this._mx.mxResources.parse(grapheditorTxt); + const oParser = new DOMParser(); + const oDOM = oParser.parseFromString(defaultXml, 'text/xml'); + const themes: any = new Object(null); + themes[(this._mx.Graph as any).prototype.defaultThemeName] = + oDOM.documentElement; + + // Workaround for TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature + const Editor: any = this._mx.Editor; + this._editor = new this._mx.EditorUi(new Editor(false, themes), this.node); + this._editor.refresh(); + + //console.debug(this._mx); + //console.debug(this._editor.editor.graph.model); + + this._editor.editor.graph.model.addListener( + this._mx.mxEvent.NOTIFY, + this._onDrawIOModelChanged ); this._promptSpacing = this._mx.mxUtils.bind( @@ -521,11 +578,8 @@ export class DrawIOWidget extends Widget { dlg.init(); } ); - - const data = this._context.model.toString(); - const xml = this._mx.mxUtils.parseXml(data); - this._editor.editor.setGraphXml(xml.documentElement); - this._ready.resolve(void 0); + + this._onReady(); } private _editor: any; diff --git a/src/widget.ts b/src/widget.ts index 2fb77949..572a4a44 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -16,7 +16,7 @@ import { DocumentRegistry, DocumentWidget } from '@jupyterlab/docregistry'; import { MainMenu, JupyterLabMenu } from '@jupyterlab/mainmenu'; -import { IChangedArgs, PathExt } from '@jupyterlab/coreutils'; +import { PathExt } from '@jupyterlab/coreutils'; import { undoIcon, redoIcon } from '@jupyterlab/ui-components'; @@ -41,8 +41,6 @@ import { shadowIcon } from './icons'; -const DIRTY_CLASS = 'jp-mod-dirty'; - export class DrawIODocumentWidget extends DocumentWidget< DrawIOWidget, DrawIODocumentModel @@ -85,15 +83,11 @@ export class DrawIODocumentWidget extends DocumentWidget< console.debug('Context ready'); await this.content.ready.promise; - this._onTitleChanged(); + //this._onTitleChanged(); this._addToolbarItems(); - this._handleDirtyStateNew(); - - this.context.model.stateChanged.connect( - this._onModelStateChangedNew, - this - ); + this.context.model.dirty = false; + this.context.saveState.connect(this._onSave, this); this.context.pathChanged.connect(this._onTitleChanged, this); }); } @@ -102,6 +96,8 @@ export class DrawIODocumentWidget extends DocumentWidget< * Dispose of the resources held by the widget. */ dispose(): void { + this.context.pathChanged.disconnect(this._onTitleChanged, this); + this.context.saveState.disconnect(this._onSave, this); this.content.dispose(); super.dispose(); } @@ -114,7 +110,7 @@ export class DrawIODocumentWidget extends DocumentWidget< } public getSVG(): string { - return ''; //this.mx.mxUtils.getXml(this._editor.editor.graph.getSvg()); + return this.content.getSVG(); } public getAction(action: string): any { @@ -168,20 +164,17 @@ export class DrawIODocumentWidget extends DocumentWidget< this.title.label = PathExt.basename(this.context.localPath); } - private _onModelStateChangedNew( - sender: DocumentRegistry.IModel, - args: IChangedArgs - ): void { - if (args.name === 'dirty') { - this._handleDirtyStateNew(); - } - } - - private _handleDirtyStateNew(): void { - if (this.context.model.dirty) { - this.title.className += ` ${DIRTY_CLASS}`; - } else { - this.title.className = this.title.className.replace(DIRTY_CLASS, ''); + private _onSave(context: DocumentRegistry.IContext, state: DocumentRegistry.SaveState): void { + switch(state) { + case 'started': + this.content.save(); + break; + case 'completed': + this.context.model.dirty = false; + break; + case 'failed': + console.error("Error saving the document."); + break; } } diff --git a/testfiles/test.dio b/testfiles/test.dio index 7d067739..8a51ea79 100644 --- a/testfiles/test.dio +++ b/testfiles/test.dio @@ -1 +1,9 @@ - \ No newline at end of file + + + + + + + + + \ No newline at end of file diff --git a/testfiles/test.svg b/testfiles/test.svg new file mode 100644 index 00000000..e85b54c3 --- /dev/null +++ b/testfiles/test.svg @@ -0,0 +1 @@ +
Hello
Hello
\ No newline at end of file From 7d94ba037d736a5171f3c50103a65f34025e7888 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Mon, 28 Jun 2021 16:18:36 +0200 Subject: [PATCH 09/17] Makes drawio collaborative sharing the mxCells as string, and makes ICommandPalette an optional dependency (see #98) --- package.json | 24 +-- src/index.ts | 69 ++++---- src/model.ts | 230 +++++++++++++------------ src/panel.ts | 144 ++++------------ src/widget.ts | 37 ++--- testfiles/test.dio | 20 ++- yarn.lock | 405 +++++++++++++++++++++++---------------------- 7 files changed, 431 insertions(+), 498 deletions(-) diff --git a/package.json b/package.json index 125bf056..727f8d36 100644 --- a/package.json +++ b/package.json @@ -46,17 +46,17 @@ "watch:src": "tsc -w" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.8", - "@jupyterlab/apputils": "^3.1.0-alpha.8", - "@jupyterlab/coreutils": "^5.1.0-alpha.8", - "@jupyterlab/docregistry": "^3.1.0-alpha.8", - "@jupyterlab/filebrowser": "^3.1.0-alpha.8", - "@jupyterlab/launcher": "^3.1.0-alpha.8", - "@jupyterlab/mainmenu": "^3.1.0-alpha.8", - "@jupyterlab/observables": "^4.1.0-alpha.8", - "@jupyterlab/services": "^6.1.0-alpha.8", - "@jupyterlab/shared-models": "^3.1.0-alpha.8", - "@jupyterlab/ui-components": "^3.1.0-alpha.8", + "@jupyterlab/application": "^3.1.0-alpha.13", + "@jupyterlab/apputils": "^3.1.0-alpha.13", + "@jupyterlab/coreutils": "^5.1.0-alpha.13", + "@jupyterlab/docregistry": "^3.1.0-alpha.13", + "@jupyterlab/filebrowser": "^3.1.0-alpha.13", + "@jupyterlab/launcher": "^3.1.0-alpha.13", + "@jupyterlab/mainmenu": "^3.1.0-alpha.13", + "@jupyterlab/observables": "^4.1.0-alpha.13", + "@jupyterlab/services": "^6.1.0-alpha.13", + "@jupyterlab/shared-models": "^3.1.0-alpha.13", + "@jupyterlab/ui-components": "^3.1.0-alpha.13", "@lumino/commands": "^1.12.0", "@lumino/coreutils": "^1.5.3", "@lumino/signaling": "^1.4.3", @@ -64,7 +64,7 @@ "fast-xml-parser": "^3.19.0", "react": "^17.0.1", "react-dom": "^17.0.1", - "yjs": "^13.5.3" + "yjs": "^13.5.6" }, "devDependencies": { "@jupyterlab/builder": "^3.1.0-alpha.8", diff --git a/src/index.ts b/src/index.ts index 0abaff4a..bf9c418f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -78,7 +78,7 @@ function activate( browserFactory: IFileBrowserFactory, restorer: ILayoutRestorer | null, menu: IMainMenu, - palette: ICommandPalette, + palette: ICommandPalette | null, launcher: ILauncher | null ): IDrawioTracker { const { commands } = app; @@ -158,9 +158,16 @@ function activate( tracker.currentWidget === app.shell.currentWidget, execute: () => { const wdg = app.shell.currentWidget as DrawIODocumentWidget; - const name = wdg.context.path.split('/').pop().split('.')[0] + ".svg"; - let path = wdg.context.path.split('/').slice(0, -1).join(); - + const name = + wdg.context.path + .split('/') + .pop() + .split('.')[0] + '.svg'; + const path = wdg.context.path + .split('/') + .slice(0, -1) + .join(); + commands .execute('docmanager:new-untitled', { name, @@ -168,9 +175,9 @@ function activate( type: 'file', ext: '.svg' }) - .then( model => { - model.name = name - model.path = path ? path + "/" + name : name; + .then(model => { + model.name = name; + model.path = path ? path + '/' + name : name; model.content = wdg.getSVG(); model.format = 'text'; app.serviceManager.contents.save(model.path, model); @@ -211,13 +218,13 @@ function addMenus( tracker: IDrawioTracker ): void { const diagram = new JupyterLabMenu({ commands }); - diagram.menu.title.label = 'Diagram'; + diagram.title.label = 'Diagram'; // FILE MENU // Add new text file creation to the file menu. menu.fileMenu.newMenu.addGroup([{ command: 'drawio:create-new' }], 40); const fileMenu = new JupyterLabMenu({ commands }); - fileMenu.menu.title.label = 'File'; + fileMenu.title.label = 'File'; fileMenu.addGroup([{ command: 'drawio:create-new' }], 0); fileMenu.addGroup( [ @@ -236,7 +243,7 @@ function addMenus( } as any); const editMenu = new JupyterLabMenu({ commands }); - editMenu.menu.title.label = 'Edit'; + editMenu.title.label = 'Edit'; editMenu.addGroup( [{ command: 'drawio:command/undo' }, { command: 'drawio:command/redo' }], 0 @@ -280,7 +287,7 @@ function addMenus( // View MENU const viewMenu = new JupyterLabMenu({ commands }); - viewMenu.menu.title.label = 'View'; + viewMenu.title.label = 'View'; viewMenu.addGroup( [ { command: 'drawio:command/formatPanel' }, @@ -325,7 +332,7 @@ function addMenus( // Arrange MENU const arrangeMenu = new JupyterLabMenu({ commands }); - arrangeMenu.menu.title.label = 'Arrange'; + arrangeMenu.title.label = 'Arrange'; arrangeMenu.addGroup( [ { command: 'drawio:command/toFront' }, @@ -335,7 +342,7 @@ function addMenus( ); const direction = new JupyterLabMenu({ commands }); - direction.menu.title.label = 'Direction'; + direction.title.label = 'Direction'; direction.addGroup( [{ command: 'drawio:command/flipH' }, { command: 'drawio:command/flipV' }], 0 @@ -343,14 +350,14 @@ function addMenus( direction.addGroup([{ command: 'drawio:command/rotation' }], 1); arrangeMenu.addGroup( [ - { type: 'submenu', submenu: direction.menu }, + { type: 'submenu', submenu: direction }, { command: 'drawio:command/turn' } ], 1 ); const align = new JupyterLabMenu({ commands }); - align.menu.title.label = 'Diagram Align'; + align.title.label = 'Diagram Align'; align.addGroup( [ { command: 'drawio:command/alignCellsLeft' }, @@ -369,7 +376,7 @@ function addMenus( ); const distribute = new JupyterLabMenu({ commands }); - distribute.menu.title.label = 'Distribute'; + distribute.title.label = 'Distribute'; distribute.addGroup( [ { command: 'drawio:command/horizontal' }, @@ -379,14 +386,14 @@ function addMenus( ); arrangeMenu.addGroup( [ - { type: 'submenu', submenu: align.menu }, - { type: 'submenu', submenu: distribute.menu } + { type: 'submenu', submenu: align }, + { type: 'submenu', submenu: distribute } ], 2 ); const navigation = new JupyterLabMenu({ commands }); - navigation.menu.title.label = 'Navigation'; + navigation.title.label = 'Navigation'; navigation.addGroup([{ command: 'drawio:command/home' }], 0); navigation.addGroup( [ @@ -405,7 +412,7 @@ function addMenus( navigation.addGroup([{ command: 'drawio:command/collapsible' }], 3); const insert = new JupyterLabMenu({ commands }); - insert.menu.title.label = 'Insert'; + insert.title.label = 'Insert'; insert.addGroup( [ { command: 'drawio:command/insertLink' }, @@ -415,7 +422,7 @@ function addMenus( ); const layout = new JupyterLabMenu({ commands }); - layout.menu.title.label = 'Layout'; + layout.title.label = 'Layout'; layout.addGroup( [ { command: 'drawio:command/horizontalFlow' }, @@ -440,9 +447,9 @@ function addMenus( ); arrangeMenu.addGroup( [ - { type: 'submenu', submenu: navigation.menu }, - { type: 'submenu', submenu: insert.menu }, - { type: 'submenu', submenu: layout.menu } + { type: 'submenu', submenu: navigation }, + { type: 'submenu', submenu: insert }, + { type: 'submenu', submenu: layout } ], 3 ); @@ -466,7 +473,7 @@ function addMenus( // Extras MENU const extrasMenu = new JupyterLabMenu({ commands }); - extrasMenu.menu.title.label = 'Extras'; + extrasMenu.title.label = 'Extras'; extrasMenu.addGroup( [ { command: 'drawio:command/copyConnect' }, @@ -478,16 +485,16 @@ function addMenus( diagram.addGroup( [ - { type: 'submenu', submenu: fileMenu.menu }, - { type: 'submenu', submenu: editMenu.menu }, - { type: 'submenu', submenu: viewMenu.menu }, - { type: 'submenu', submenu: arrangeMenu.menu }, - { type: 'submenu', submenu: extrasMenu.menu }, + { type: 'submenu', submenu: fileMenu }, + { type: 'submenu', submenu: editMenu }, + { type: 'submenu', submenu: viewMenu }, + { type: 'submenu', submenu: arrangeMenu }, + { type: 'submenu', submenu: extrasMenu }, { command: 'drawio:command/about' } ], 0 ); - menu.addMenu(diagram.menu, { rank: 60 }); + menu.addMenu(diagram, { rank: 60 }); } function addCommands(app: JupyterFrontEnd, tracker: IDrawioTracker): void { diff --git a/src/model.ts b/src/model.ts index 751e049e..cf5e7f48 100644 --- a/src/model.ts +++ b/src/model.ts @@ -14,11 +14,7 @@ import { DocumentRegistry } from '@jupyterlab/docregistry'; -import { - YDocument, - MapChange, - createMutex -} from '@jupyterlab/shared-models'; +import { YDocument, MapChange, createMutex } from '@jupyterlab/shared-models'; import { IChangedArgs } from '@jupyterlab/coreutils'; @@ -30,8 +26,6 @@ import { ISignal, Signal } from '@lumino/signaling'; import * as Y from 'yjs'; -import { parse, j2xParser, J2xOptions } from 'fast-xml-parser'; - export class DrawIODocumentModel implements DocumentRegistry.IModel { /** * Construct a new DrawIODocumentModel. @@ -43,13 +37,11 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { } get dirty(): boolean { - return this._dirty; + return this.sharedModel.getState('dirty'); } set dirty(newValue: boolean) { - const oldValue = this._dirty; - this._dirty = newValue; - this._stateChanged.emit({ name: 'dirty', oldValue, newValue }); + this.sharedModel.setState('dirty', newValue); } get readOnly(): boolean { @@ -92,56 +84,82 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { } this._isDisposed = true; Signal.clearData(this); - //this.sharedModel.dispose(); } toString(): string { - const source = this.sharedModel.getSource() || ""; + console.debug('toString'); + let source = ' { + source += ` ${key}="${value}"`; + }); + + source += '>\n\t'; + + this.sharedModel.root.forEach(value => { + source += `\n\t\t${value}`; + }); + + source += '\n\t\n'; return source; } fromString(source: string): void { - this.sharedModel.setSource(source); + console.debug('fromString'); + const patternGraph = new RegExp(//g); + const graph = source.match(patternGraph); + + const patternAttrs = new RegExp(/\w+="[^"]*"/g); + const attrs = graph[0].match(patternAttrs); + + const patternCells = new RegExp( + /(?:)|(?:((?:.|[\n\r])*?)<\/mxCell>)/g + ); + const cells = source.match(patternCells); + + this.transact(() => { + this.sharedModel.setSource(source); + + attrs.forEach(attr => { + const patternAttr = new RegExp(/(?\w+)="(?[^"]*)"/g); + const res = patternAttr.exec(attr); + this.sharedModel.setAttr(res[1], res[2]); + }); + + cells.forEach(value => { + const patternCell = new RegExp(/id="(?[^"]*)"/g); + const res = patternCell.exec(value); + this.sharedModel.setCell(res[1], value); + }); + }); } toJSON(): PartialJSONValue { - const source = this.sharedModel.getSource() || ""; - const doc = parse( - source, - { - attrNodeName: '#attrs', - textNodeName: '#text', - attributeNamePrefix: '', - arrayMode: false, - ignoreAttributes: false, - parseAttributeValue: false - }, - true - ); - return doc; + throw new Error('Not implemented'); } fromJSON(source: ReadonlyPartialJSONValue): void { - const defaultOptions: Partial = { - attrNodeName: '#attrs', - textNodeName: '#text', - attributeNamePrefix: '', - ignoreAttributes: false, - indentBy: "\t" - }; - const parser = new j2xParser(defaultOptions); - const data = parser.parse(source); - this.sharedModel.setSource(data); + throw new Error('Not implemented'); } initialize(): void { - //console.warn('initialize(): Not implemented'); + this.sharedModel.setState('dirty', false); } transact(cb: () => void): void { this.sharedModel.transact(cb); } + getGraph(): string { + let source = ''; + this.sharedModel.root.forEach((value, id) => { + if (id !== '0' && id !== '1') { + source += value; + } + }); + source += ''; + return source; + } + getCell(id: string): any { return this.sharedModel.getCell(id); } @@ -154,35 +172,24 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { this.sharedModel.removeCell(id); } - getGraph(): string { - if (!this.sharedModel.getCell('0')) { - return this.toString(); - } - - let graph = " { - const attr = ` ${key}="${value}"`; - console.debug(attr); - graph += attr; - }); - graph += ">"; - this.sharedModel.root.forEach( cell => { - graph += cell; - }); - graph += ""; - console.debug(graph); - return graph; - } - private _onSharedModelChanged = ( sender: YDrawIO, changes: IDrawIOChange ): void => { - this.dirty = true; - this._sharedModelChanged.emit(changes); + console.debug('_onSharedModelChanged'); + if (changes.stateChange && changes.stateChange.has('dirty')) { + const dirty = changes.stateChange.get('dirty'); + this._stateChanged.emit({ + name: 'dirty', + oldValue: dirty.oldValue, + newValue: dirty.newValue + }); + } else { + this.dirty = true; + this._sharedModelChanged.emit(changes); + } }; - private _dirty = false; private _readOnly = false; private _isDisposed = false; private _contentChanged = new Signal(this); @@ -192,17 +199,25 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { export type IDrawIOChange = { contextChange?: MapChange; + stateChange?: Map< + string, + { + oldValue: any; + newValue: any; + } + >; attrChange?: MapChange; - cellChange?: MapChange; + cellChange?: boolean; }; export class YDrawIO extends YDocument { constructor() { super(); + this._state = this.ydoc.getMap('state'); this._attrs = this.ydoc.getMap('attrs'); this._root = this.ydoc.getMap('root'); - this._attrs.observe(this._attrsObserver); + this._state.observe(this._stateObserver); this._root.observe(this._rootObserver); } @@ -218,7 +233,6 @@ export class YDrawIO extends YDocument { * Dispose of the resources. */ dispose(): void { - this._attrs.unobserve(this._attrsObserver); this._root.unobserve(this._rootObserver); } @@ -263,6 +277,35 @@ export class YDrawIO extends YDocument { }); } + /** + * Returns a state attribute. + * + * @param key: The key of the attribute. + */ + public getState(key: string): any { + return this._state.get(key); + } + + /** + * Adds new state attribute. + * + * @param key: The key of the attribute. + * + * @param value: New source. + */ + public setState(key: string, value: any): void { + this._state.set(key, value); + } + + /** + * Remove a state attribute. + * + * @param key: The key of the attribute. + */ + public removeState(key: string): void { + this._state.delete(key); + } + /** * Returns an attribute. * @@ -324,56 +367,37 @@ export class YDrawIO extends YDocument { /** * Handle a change to the _mxGraphModel. */ - private _attrsObserver = (event: Y.YMapEvent): void => { - const changes: IDrawIOChange = {}; - - if (event.keysChanged.size > 0) { - changes.attrChange = new Map(); - event.keysChanged.forEach( key => { - const attr = this._attrs.get(key); - const change = event.changes.keys.get(key); - - changes.attrChange.set( - key, - { - action: change.action, - oldValue: change.oldValue, - newValue: attr - } - ); + private _stateObserver = (event: Y.YMapEvent): void => { + const stateChange = new Map< + string, + { + oldValue: any; + newValue: any; + } + >(); + + if (event.keysChanged.has('dirty')) { + const change = event.changes.keys.get('dirty'); + stateChange.set('dirty', { + oldValue: change?.oldValue === true ? true : false, + newValue: this._state.get('dirty') }); } - //this._changed.emit(changes); + this._changed.emit({ stateChange }); }; /** * Handle a change to the _mxGraphModel. */ private _rootObserver = (event: Y.YMapEvent): void => { - const changes: IDrawIOChange = {}; - - if (event.keysChanged.size > 0) { - changes.cellChange = new Map(); - event.keysChanged.forEach( key => { - const cell = this._root.get(key); - const change = event.changes.keys.get(key); - - changes.cellChange.set( - key, - { - action: change.action, - oldValue: change.oldValue, - newValue: cell - } - ); - console.debug("Change:", changes.cellChange.get(key)); - }); - } - + const changes: IDrawIOChange = { + cellChange: true + }; this._changed.emit(changes); }; + private _state: Y.Map; private _attrs: Y.Map; private _root: Y.Map; } diff --git a/src/panel.ts b/src/panel.ts index 0570bd2f..eccbecd5 100644 --- a/src/panel.ts +++ b/src/panel.ts @@ -66,7 +66,6 @@ export class DrawIOWidget extends Widget { } this._context.model.sharedModelChanged.disconnect(this._onContentChanged); this._editor.destroy(); - //this._context = null; super.dispose(); } @@ -89,12 +88,6 @@ export class DrawIOWidget extends Widget { return this._editor.editor.graph; } - save(): void { - const xml = this._editor.editor.getGraphXml(); - const source = this._mx.mxUtils.getXml(xml); - this._context.model.fromString(source); - } - getAction(action: string): any { return this._editor.actions.actions[action]; } @@ -374,13 +367,13 @@ export class DrawIOWidget extends Widget { } private _onReady(): void { - const data = this._context.model.getGraph(); - const xml = this._mx.mxUtils.parseXml(data); - console.debug(xml.documentElement); - xml.documentElement.attributes.map( (key: string, value: any) => { - console.debug(key, value); + this._context.model.mutex(() => { + console.debug('_onReady'); + const data = this._context.model.toString(); + const xml = this._mx.mxUtils.parseXml(data); + this._editor.editor.setGraphXml(xml.documentElement); }); - this._editor.editor.setGraphXml(xml.documentElement); + this._ready.resolve(void 0); } @@ -388,117 +381,48 @@ export class DrawIOWidget extends Widget { sender: DrawIODocumentModel, changes: IDrawIOChange ): void => { - console.debug("_onContentChanged", changes); + console.debug('_onContentChanged'); if (this._editor === undefined) { return; } - + if (changes.cellChange) { this._context.model.mutex(() => { - changes.cellChange.forEach( (change, key) => { - if (change.action === 'delete') { - const doc = this._mx.mxUtils.parseXml(change.oldValue); - const codec = new this._mx.mxCodec(doc); - const cell = codec.decode(doc.documentElement); - - this._editor.editor.graph.removeCells([cell]); - - } else if (change.action === 'add') { - const doc = this._mx.mxUtils.parseXml(change.oldValue); - const codec = new this._mx.mxCodec(doc); - const cell = codec.decode(doc.documentElement); - - this._editor.editor.graph.addCell(cell); - - } else if (change.action === 'update') { - const doc1 = this._mx.mxUtils.parseXml(change.oldValue); - const codec1 = new this._mx.mxCodec(doc1); - const cell1 = codec1.decode(doc1.documentElement); - this._editor.editor.graph.removeCells([cell1]); - - const doc2 = this._mx.mxUtils.parseXml(change.oldValue); - const codec2 = new this._mx.mxCodec(doc2); - const cell2 = codec2.decode(doc2.documentElement); - this._editor.editor.graph.addCell(cell2); - } - }); + console.debug('Changing graph'); + const root = new this._mx.mxCell(); + root.insert(new this._mx.mxCell()); + this._editor.editor.graph.model.setRoot(root); - /* console.debug("Set cell mutex"); - - var xml = this._context.model.getCells(); - const doc = this._mx.mxUtils.parseXml(xml); + const graph = this._context.model.getGraph(); + const doc = this._mx.mxUtils.parseXml(graph); const codec = new this._mx.mxCodec(doc); - let elt = doc.documentElement.firstChild; - - console.debug(doc); - - const cells = []; - while (elt != null) { - cells.push(codec.decode(elt)); - elt = elt.nextSibling; + + let cell = doc.documentElement.firstChild; + const cells: any = []; + + while (cell !== null) { + const mxCell = codec.decode(cell); + cells.push(mxCell); + cell = cell.nextSibling; } - - this._editor.editor.graph.addCells(cells); */ + + this._editor.editor.graph.addCells(cells); }); } - - // mxRootChange - // cell Optional mxCell that specifies the child. - //this._editor.editor.graph.model.getRoot(cell); - // root mxCell that specifies the new root. - // Example - // var root = new mxCell(); - // root.insert(new mxCell()); - // model.setRoot(root); - // root mxCell that specifies the new root. - //this._editor.editor.graph.model.setRoot(root); - - // mxChildChanged - // cell mxCell that should be removed. - //this._editor.editor.graph.model.remove(cell); - // parent mxCell that specifies the parent to contain the child. - // child mxCell that specifies the child to be inserted. - // index Optional integer that specifies the index of the child. - //this._editor.editor.graph.model.add(parent, child, index); }; private _onDrawIOModelChanged = (sender: any, evt: any) => { + console.debug('_onDrawIOModelChanged'); const changes = evt.getProperty('edit').changes; const encoder = new this._mx.mxCodec(); this._context.model.mutex(() => { this._context.model.transact(() => { + console.debug('Updating model'); for (let i = 0; i < changes.length; i++) { const change = changes[i]; - if (change instanceof this._mx.mxRootChange) { - console.debug("CHANGE:", change); - - const root = change.root; - const rootEl = encoder.encode(root); - const rootCell = this._mx.mxUtils.getXml(rootEl); - this._context.model.setCell(root.id, rootCell); - console.debug(rootCell); - - const main = root.children[0]; - const mainEl = encoder.encode(main); - const mainCell = this._mx.mxUtils.getXml(mainEl); - this._context.model.setCell(main.id, mainCell); - console.debug(mainCell); - - const cells = main.children; - if (cells) { - for (let j = 0; j < cells.length; j++) { - const el = encoder.encode(cells[j]); - const cell = this._mx.mxUtils.getXml(el); - this._context.model.setCell(cells[j].id, cell); - console.debug(cell); - } - } - } - if (change instanceof this._mx.mxChildChange) { - //console.log("Children changed:", change.child.id, change.child); if (change.index === undefined) { this._context.model.removeCell(change.child.id); } else { @@ -512,26 +436,14 @@ export class DrawIOWidget extends Widget { !(change instanceof this._mx.mxRootChange) && !(change instanceof this._mx.mxChildChange) ) { - //console.log("Other change:", change.cell.id, change.cell); const el = encoder.encode(change.cell); const cell = this._mx.mxUtils.getXml(el); this._context.model.setCell(change.cell.id, cell); } - - //mxGeometryChange - //mxTerminalChange - //mxValueChange - //mxStyleChange - //mxCellAttributeChange - //mxCollapseChange - //mxCurrentRootChange - //mxGenericChangeCodec - //mxSelectionChange - //mxVisibleChange } }); }); - } + }; private _loadDrawIO(mx: Private.MX): void { this._mx = mx; @@ -578,7 +490,7 @@ export class DrawIOWidget extends Widget { dlg.init(); } ); - + this._onReady(); } diff --git a/src/widget.ts b/src/widget.ts index 572a4a44..f2374c1c 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { DocumentRegistry, DocumentWidget } from '@jupyterlab/docregistry'; +import { DocumentWidget } from '@jupyterlab/docregistry'; import { MainMenu, JupyterLabMenu } from '@jupyterlab/mainmenu'; @@ -64,30 +64,28 @@ export class DrawIODocumentWidget extends DocumentWidget< //TODO: // Add toolbar actions to change the default style of arrows and conections. this._menuView = new JupyterLabMenu({ commands: this._commands }); - this._menuView.menu.title.caption = 'View (Space+Drag to Scroll)'; - this._menuView.menu.title.icon = formatPanelIcon; - this._menubar.addMenu(this._menuView.menu, { rank: 1 }); + this._menuView.title.caption = 'View (Space+Drag to Scroll)'; + this._menuView.title.icon = formatPanelIcon; + this._menubar.addMenu(this._menuView, { rank: 1 }); this._menuZoom = new JupyterLabMenu({ commands: this._commands }); //TODO: Change label to a view percentage - this._menuZoom.menu.title.label = 'Zoom'; - this._menuZoom.menu.title.caption = 'Zoom (Alt+Mousewheel)'; - this._menubar.addMenu(this._menuZoom.menu, { rank: 2 }); + this._menuZoom.title.label = 'Zoom'; + this._menuZoom.title.caption = 'Zoom (Alt+Mousewheel)'; + this._menubar.addMenu(this._menuZoom, { rank: 2 }); this._menuInsert = new JupyterLabMenu({ commands: this._commands }); - this._menuInsert.menu.title.caption = 'Insert'; - this._menuInsert.menu.title.icon = plusIcon; - this._menubar.addMenu(this._menuInsert.menu, { rank: 2 }); + this._menuInsert.title.caption = 'Insert'; + this._menuInsert.title.icon = plusIcon; + this._menubar.addMenu(this._menuInsert, { rank: 2 }); this.context.ready.then(async value => { console.debug('Context ready'); await this.content.ready.promise; - //this._onTitleChanged(); this._addToolbarItems(); this.context.model.dirty = false; - this.context.saveState.connect(this._onSave, this); this.context.pathChanged.connect(this._onTitleChanged, this); }); } @@ -97,7 +95,6 @@ export class DrawIODocumentWidget extends DocumentWidget< */ dispose(): void { this.context.pathChanged.disconnect(this._onTitleChanged, this); - this.context.saveState.disconnect(this._onSave, this); this.content.dispose(); super.dispose(); } @@ -164,20 +161,6 @@ export class DrawIODocumentWidget extends DocumentWidget< this.title.label = PathExt.basename(this.context.localPath); } - private _onSave(context: DocumentRegistry.IContext, state: DocumentRegistry.SaveState): void { - switch(state) { - case 'started': - this.content.save(); - break; - case 'completed': - this.context.model.dirty = false; - break; - case 'failed': - console.error("Error saving the document."); - break; - } - } - private _addToolbarItems(): void { const actions = this.content.getActions(); diff --git a/testfiles/test.dio b/testfiles/test.dio index 8a51ea79..ec2ce45a 100644 --- a/testfiles/test.dio +++ b/testfiles/test.dio @@ -1,9 +1,13 @@ - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 09ba8a6c..32c7c48b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -97,22 +97,22 @@ gud "^1.0.0" warning "^4.0.3" -"@jupyterlab/application@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.1.0-alpha.8.tgz#25c427e79f09fbf9b36816a47bedd2c4bf394d80" - integrity sha512-qVAa0I/oNhFfj7FR7wTe0lCeK+euujrQn9OzL1dO258TR6Cy/xfjOdVVTIC/PPcJsWXxQmoL8a2ld0MkpN2Lxg== +"@jupyterlab/application@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.1.0-alpha.13.tgz#5cebb5a6d81f169cd19fae66a60c8578c6a5339b" + integrity sha512-JtAaijyIX/eBfMr5ogBsq0Cnz4jY1JuCEjhfm7f1VsmObMdD5PFZr9A+uH2tbFwIuCfEd0JX+3LOKqdQu/C7Gw== dependencies: "@fortawesome/fontawesome-free" "^5.12.0" - "@jupyterlab/apputils" "^3.1.0-alpha.8" - "@jupyterlab/coreutils" "^5.1.0-alpha.8" - "@jupyterlab/docmanager" "^3.1.0-alpha.8" - "@jupyterlab/docregistry" "^3.1.0-alpha.8" - "@jupyterlab/rendermime" "^3.1.0-alpha.8" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.8" - "@jupyterlab/services" "^6.1.0-alpha.8" - "@jupyterlab/statedb" "^3.1.0-alpha.8" - "@jupyterlab/translation" "^3.1.0-alpha.8" - "@jupyterlab/ui-components" "^3.1.0-alpha.8" + "@jupyterlab/apputils" "^3.1.0-alpha.13" + "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/docmanager" "^3.1.0-alpha.13" + "@jupyterlab/docregistry" "^3.1.0-alpha.13" + "@jupyterlab/rendermime" "^3.1.0-alpha.13" + "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.13" + "@jupyterlab/services" "^6.1.0-alpha.13" + "@jupyterlab/statedb" "^3.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.0-alpha.13" + "@jupyterlab/ui-components" "^3.1.0-alpha.13" "@lumino/algorithm" "^1.3.3" "@lumino/application" "^1.16.0" "@lumino/commands" "^1.12.0" @@ -124,17 +124,17 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/apputils@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.1.0-alpha.8.tgz#6dd186bde882dc62b18b0cc37d6cb6b684e838b1" - integrity sha512-CLNAfhTL6hrnVQJ2q5r+0s4MpdCJhF35XkiyyRTx8RgW+ui08jgDTj0Od9J+aX4X7KG0AqXA3EkGJY857YCmew== - dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.8" - "@jupyterlab/services" "^6.1.0-alpha.8" - "@jupyterlab/settingregistry" "^3.1.0-alpha.8" - "@jupyterlab/statedb" "^3.1.0-alpha.8" - "@jupyterlab/translation" "^3.1.0-alpha.8" - "@jupyterlab/ui-components" "^3.1.0-alpha.8" +"@jupyterlab/apputils@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.1.0-alpha.13.tgz#03b7a74c5e895b85dbfd615df499b5980079c5ef" + integrity sha512-KLhDIxL+sgs2k8eqYlycORr91xPW9qGIQFUZ5mViKoozEKyEGQFsDA43nZLR8jBQwPzd+44uCKlKZW26jADR+g== + dependencies: + "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/services" "^6.1.0-alpha.13" + "@jupyterlab/settingregistry" "^3.1.0-alpha.13" + "@jupyterlab/statedb" "^3.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.0-alpha.13" + "@jupyterlab/ui-components" "^3.1.0-alpha.13" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -213,17 +213,17 @@ sort-package-json "~1.44.0" typescript "~4.1.3" -"@jupyterlab/codeeditor@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.1.0-alpha.8.tgz#df81ab1b41c93ae2c156bd12110231b88f21d4d5" - integrity sha512-8T6cOio5Feq5vsUuVRmc5afNwzU/NfjOigk6+k4Un+X15l4WXD+z3DHYiUTSbKKwZTWSK3Dx8vbR2NbLmrXQWg== - dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.8" - "@jupyterlab/nbformat" "^3.1.0-alpha.8" - "@jupyterlab/observables" "^4.1.0-alpha.8" - "@jupyterlab/shared-models" "^3.1.0-alpha.8" - "@jupyterlab/translation" "^3.1.0-alpha.8" - "@jupyterlab/ui-components" "^3.1.0-alpha.8" +"@jupyterlab/codeeditor@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.1.0-alpha.13.tgz#414f9a1e4472896862f25ee0c3bed7d5761332e9" + integrity sha512-mWSUA9copp9Zz1++ADcJs+GXZnTLuiEmLoposX9hp4GLsiB9ZXFQHAjdG7sBb8TvvpPRdRgwTdTJuyqiZmzwGg== + dependencies: + "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/nbformat" "^3.1.0-alpha.13" + "@jupyterlab/observables" "^4.1.0-alpha.13" + "@jupyterlab/shared-models" "^3.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.0-alpha.13" + "@jupyterlab/ui-components" "^3.1.0-alpha.13" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/dragdrop" "^1.7.1" @@ -231,19 +231,19 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/codemirror@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.1.0-alpha.8.tgz#793515e964305571b73e8d2236f84adb2429b881" - integrity sha512-tsGWZzXA7XjQB5q1NcGRuJz6qf4FhZHBzaK8j5Q3nNwLfopf4L+tABJ4AUWFftNlonzwy7aO8lX7wbu4X5H9PQ== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.8" - "@jupyterlab/codeeditor" "^3.1.0-alpha.8" - "@jupyterlab/coreutils" "^5.1.0-alpha.8" - "@jupyterlab/nbformat" "^3.1.0-alpha.8" - "@jupyterlab/observables" "^4.1.0-alpha.8" - "@jupyterlab/shared-models" "^3.1.0-alpha.8" - "@jupyterlab/statusbar" "^3.1.0-alpha.8" - "@jupyterlab/translation" "^3.1.0-alpha.8" +"@jupyterlab/codemirror@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.1.0-alpha.13.tgz#f71d7d1e396bfdece092a225fc88f94f8cd3161f" + integrity sha512-Udqm4L66aeFNQQzzVoMovbhDkKmKPxkvV8IScVHdVs7Cvj4o7/AXHaGvUB/qyanl2NmYX9ss0nyZjdmlJi9Jrw== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.13" + "@jupyterlab/codeeditor" "^3.1.0-alpha.13" + "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/nbformat" "^3.1.0-alpha.13" + "@jupyterlab/observables" "^4.1.0-alpha.13" + "@jupyterlab/shared-models" "^3.1.0-alpha.13" + "@jupyterlab/statusbar" "^3.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.0-alpha.13" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -253,12 +253,12 @@ "@lumino/widgets" "^1.19.0" codemirror "~5.61.0" react "^17.0.1" - y-codemirror "^2.1.0" + y-codemirror "^2.1.1" -"@jupyterlab/coreutils@^5.1.0-alpha.8": - version "5.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.1.0-alpha.8.tgz#389e7b08b90daa2a04f096b924aeca2fa4094dba" - integrity sha512-zS+7DoCTynAyNcgy7Z8uvXVuY/Dke9McuCelE2msCbOf1JtBWV9fabGIY6VOh+Bg8fRUdSLw9TkYqFjCikMBPg== +"@jupyterlab/coreutils@^5.1.0-alpha.13": + version "5.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.1.0-alpha.13.tgz#a4ad85a8b363a38b72bc486ae91c3b2acc0fa8fc" + integrity sha512-Jxm88fPqB7VHuq+Uuh0UVwwhDibv1qc0czsRTuuQ8mTVY0xAdWva2EhWjQ4TRLetScvgBVu6pu0NEoMn4nycqQ== dependencies: "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -268,17 +268,18 @@ path-browserify "^1.0.0" url-parse "~1.5.1" -"@jupyterlab/docmanager@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.1.0-alpha.8.tgz#feb783e3c6802d598f7e8929aa99461c4478b55c" - integrity sha512-blF73sbuflI9o7M+OuOqxiJOMXRQbgpVBblS2xMMvWsJPZqLP+v4H05fYmuJQtTCFI7m8LPOmpX1KoGwA7h0jw== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.8" - "@jupyterlab/coreutils" "^5.1.0-alpha.8" - "@jupyterlab/docregistry" "^3.1.0-alpha.8" - "@jupyterlab/services" "^6.1.0-alpha.8" - "@jupyterlab/statusbar" "^3.1.0-alpha.8" - "@jupyterlab/translation" "^3.1.0-alpha.8" +"@jupyterlab/docmanager@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.1.0-alpha.13.tgz#62872d59eee0577f03084ab0c236548d9b369488" + integrity sha512-nnaHsV/vUmzBwwyP2jusd32L811p6jjFWVji0nQURZSJSX9ZdVPgD2vBUSwDQEZblYmDs3leAZqxLXEDev5tzA== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.13" + "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/docprovider" "^3.1.0-alpha.13" + "@jupyterlab/docregistry" "^3.1.0-alpha.13" + "@jupyterlab/services" "^6.1.0-alpha.13" + "@jupyterlab/statusbar" "^3.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.0-alpha.13" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -288,55 +289,56 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/docprovider@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/docprovider/-/docprovider-3.1.0-alpha.8.tgz#3c68f2798afcee16b56be9198cd98eb494dd7582" - integrity sha512-TBAC+/T0A/PnBBKCmwQEYGfePxXdKiwLmPrx0O6M9tGOIPAf44nNT38jez+ouLh6ou5CSEdWK3oyPMoMpjawDg== +"@jupyterlab/docprovider@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/docprovider/-/docprovider-3.1.0-alpha.13.tgz#12e3216e88bae813fb72c3dcbd42932df419691a" + integrity sha512-NI2k+N5JLAb5KePNWzbpHfCMsS4dSYgjwDb62H1DogLw5pzYD2UX6gTsNk6ZNr7DIFOK1gdEQ1rzbVmNq9MndQ== dependencies: - "@jupyterlab/shared-models" "^3.1.0-alpha.8" - lib0 "^0.2.41" - y-websocket "^1.3.11" - yjs "^13.5.3" - -"@jupyterlab/docregistry@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.1.0-alpha.8.tgz#a08aa43d19559c775e43e1459a6ada84d424e307" - integrity sha512-gngeCk7ux15EJuxWIWIaEjWfH6uTmB0WHOXmt+kY/6yR5BTlFJtjeeeuNHjNtOkpVk1Hq9ZrLT4CkgNskBv71w== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.8" - "@jupyterlab/codeeditor" "^3.1.0-alpha.8" - "@jupyterlab/codemirror" "^3.1.0-alpha.8" - "@jupyterlab/coreutils" "^5.1.0-alpha.8" - "@jupyterlab/docprovider" "^3.1.0-alpha.8" - "@jupyterlab/observables" "^4.1.0-alpha.8" - "@jupyterlab/rendermime" "^3.1.0-alpha.8" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.8" - "@jupyterlab/services" "^6.1.0-alpha.8" - "@jupyterlab/shared-models" "^3.1.0-alpha.8" - "@jupyterlab/translation" "^3.1.0-alpha.8" - "@jupyterlab/ui-components" "^3.1.0-alpha.8" + "@jupyterlab/shared-models" "^3.1.0-alpha.13" + "@lumino/coreutils" "^1.5.3" + lib0 "^0.2.42" + y-websocket "^1.3.15" + yjs "^13.5.6" + +"@jupyterlab/docregistry@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.1.0-alpha.13.tgz#2c5f5af96f3c863b3e83720643126d2ebf9c00d0" + integrity sha512-lCaKMQI4e5MHjIJGwMrNWBbyYw0YUPqWsJhg250fFF0w1MsJ6TENtfkPv/Fv1JB1l5Snnzg4lRxfdiQ1UNzRqA== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.13" + "@jupyterlab/codeeditor" "^3.1.0-alpha.13" + "@jupyterlab/codemirror" "^3.1.0-alpha.13" + "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/docprovider" "^3.1.0-alpha.13" + "@jupyterlab/observables" "^4.1.0-alpha.13" + "@jupyterlab/rendermime" "^3.1.0-alpha.13" + "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.13" + "@jupyterlab/services" "^6.1.0-alpha.13" + "@jupyterlab/shared-models" "^3.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.0-alpha.13" + "@jupyterlab/ui-components" "^3.1.0-alpha.13" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" - yjs "^13.5.3" - -"@jupyterlab/filebrowser@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.1.0-alpha.8.tgz#9af7eda151b353eb9eb5ba1ba3b2b5108cc7ae1a" - integrity sha512-VU+YkIx/C5QuNCeKBLmkuHJm227bEUFThemZ15WPAO6F7FMb3hU6N+XRNP3dqDkF1sX4wX9uU3fg8pmlIlgKNg== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.8" - "@jupyterlab/coreutils" "^5.1.0-alpha.8" - "@jupyterlab/docmanager" "^3.1.0-alpha.8" - "@jupyterlab/docregistry" "^3.1.0-alpha.8" - "@jupyterlab/services" "^6.1.0-alpha.8" - "@jupyterlab/statedb" "^3.1.0-alpha.8" - "@jupyterlab/statusbar" "^3.1.0-alpha.8" - "@jupyterlab/translation" "^3.1.0-alpha.8" - "@jupyterlab/ui-components" "^3.1.0-alpha.8" + yjs "^13.5.6" + +"@jupyterlab/filebrowser@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.1.0-alpha.13.tgz#f545f42e592de5daafced6a6d1ff3fca95b527db" + integrity sha512-wTqHtsfmZoGzybVNbSEhMNU74eH0xgnDl7xa1RZTrxcfLZyqiAVoBIomunRc4+sXFXxA/zxW7NC8EfoXK387aA== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.13" + "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/docmanager" "^3.1.0-alpha.13" + "@jupyterlab/docregistry" "^3.1.0-alpha.13" + "@jupyterlab/services" "^6.1.0-alpha.13" + "@jupyterlab/statedb" "^3.1.0-alpha.13" + "@jupyterlab/statusbar" "^3.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.0-alpha.13" + "@jupyterlab/ui-components" "^3.1.0-alpha.13" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -349,14 +351,14 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/launcher@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/launcher/-/launcher-3.1.0-alpha.8.tgz#68ca0908d82472762eb885868c605fe4c5b5dc48" - integrity sha512-itKLt9/vqUZXag/YRXIh4YakTRs3NYho9/yJodqNynWQzQy7BrcDB2A9jXXGdJiw8o/ibDte/jJ+fOGu06BjbA== +"@jupyterlab/launcher@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/launcher/-/launcher-3.1.0-alpha.13.tgz#32b6da5b41c1206cc3205065abbd78ea0fc3b2dc" + integrity sha512-Bc1eSAe1nLpxTtO99HJgbu/c/VbQG1Tvc92tZGqChdCZx6vuBDyAIP5/hqX/HNkWb7YXk0oVEaExRmK7UFEJRw== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.8" - "@jupyterlab/translation" "^3.1.0-alpha.8" - "@jupyterlab/ui-components" "^3.1.0-alpha.8" + "@jupyterlab/apputils" "^3.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.0-alpha.13" + "@jupyterlab/ui-components" "^3.1.0-alpha.13" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -365,31 +367,32 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/mainmenu@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/mainmenu/-/mainmenu-3.1.0-alpha.8.tgz#59ea14483f60039d807d80745d7ab445dcd79ac2" - integrity sha512-F9Xlek4IPDYoJ4Mg+fj+3LwJePMWWmeVm4iyIIoiz2ymsz0KlfQ0SHuLdwdmuJS94rRwkDt5u6OSYoHNC3MODw== +"@jupyterlab/mainmenu@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/mainmenu/-/mainmenu-3.1.0-alpha.13.tgz#837c1873de135497e91045c7d10e845cef555929" + integrity sha512-9kqSxSbIjDYu52WI32XxeSRE5ZKR3FbfxM4yVieBOQZjpnpTkMfi+4SINZZNI+Dux6ElOHaeKwvOajZdE5O/Mw== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.8" - "@jupyterlab/services" "^6.1.0-alpha.8" - "@jupyterlab/ui-components" "^3.1.0-alpha.8" + "@jupyterlab/apputils" "^3.1.0-alpha.13" + "@jupyterlab/services" "^6.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.0-alpha.13" + "@jupyterlab/ui-components" "^3.1.0-alpha.13" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/nbformat@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.1.0-alpha.8.tgz#3155a4c81ddd02bd6cb6b63a92f722d4d8c8a5db" - integrity sha512-ITDJhqtHK9XU3jkfFgBsfo+i98A78PsU7TkG4BXh2/XoGv+AkdhCoDolkWyIvMWhoTC28qaAVH1E31BUSxa6MA== +"@jupyterlab/nbformat@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.1.0-alpha.13.tgz#391302bc6b0140384a2089ee610f40b5740e911a" + integrity sha512-+bUfxrbTQ/XchQYbx9M0IU59+lxFuNasLCqVq5JGKi01WtNQ17D6JBtvoA1hXAroA/xgtCeFQ8CVo/ccArWcpQ== dependencies: "@lumino/coreutils" "^1.5.3" -"@jupyterlab/observables@^4.1.0-alpha.8": - version "4.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.1.0-alpha.8.tgz#f12b2c5b7bf3cf796d1efd6fbd62450c12bcd078" - integrity sha512-lGXxXhFsW6jNwB9nclXRT4t5ugVcWDKKVnJch0wmIjV4IV9C3k/BnIwqWnAPmyv66Slzee3DgpE8ZvlR0RfQMA== +"@jupyterlab/observables@^4.1.0-alpha.13": + version "4.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.1.0-alpha.13.tgz#74cb4c207ebe0db063027ce02c3ad0e6bc9c374f" + integrity sha512-tMoQeg8wtmNBFChquFc4D6ZoaoG8c8kC0vFjUH1dULuVgs2/V0yMqB1UPOHYcfQ3YslKLQ+tq5tPIymCiuD+Iw== dependencies: "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" @@ -397,28 +400,28 @@ "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" -"@jupyterlab/rendermime-interfaces@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.1.0-alpha.8.tgz#35bbdddabc892e47a5a4a5102e4f6365f42bdf09" - integrity sha512-RmyKjfSPQ24TrG1Z2NHhCK8tBbpPoZZy7Shmxo/0DO74neFzwpGcXNZQp5K2svaaSO+OOwn82eci1Io6MJFTWA== +"@jupyterlab/rendermime-interfaces@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.1.0-alpha.13.tgz#e5b350b4274fb620f1d3b9c764831d8dfdcceb5f" + integrity sha512-UFX3v/kwmIqZDtBV/pp0NkoOnP++7ZHRZbZjuylCrOOqMlHvwHdRAVaIdwwxZsYa7rob5K6cUGldxtFxlmg7/w== dependencies: - "@jupyterlab/translation" "^3.1.0-alpha.8" + "@jupyterlab/translation" "^3.1.0-alpha.13" "@lumino/coreutils" "^1.5.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/rendermime@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.1.0-alpha.8.tgz#ae1768f706572fd5acbc207891e3c569e0a3ce43" - integrity sha512-gymm9xNqLHqFmm1rxQZbceKec8vwijyJMgSUMcamlhUJ1lGpj7RvYwSzcsUNTG+6S+c0+NmbtyQHLW7pUfwwEg== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.8" - "@jupyterlab/codemirror" "^3.1.0-alpha.8" - "@jupyterlab/coreutils" "^5.1.0-alpha.8" - "@jupyterlab/nbformat" "^3.1.0-alpha.8" - "@jupyterlab/observables" "^4.1.0-alpha.8" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.8" - "@jupyterlab/services" "^6.1.0-alpha.8" - "@jupyterlab/translation" "^3.1.0-alpha.8" +"@jupyterlab/rendermime@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.1.0-alpha.13.tgz#e8e58c2ebe36671fec54bde820a17e50e37352eb" + integrity sha512-R8iBfYNU9/7XDB9UaVuG324WhN/y6/j/EkkrIHGIxJM4MunvWuFTdOyiVZzHStNvwQeIEsZZ+gaPVBIs1ccQbw== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.13" + "@jupyterlab/codemirror" "^3.1.0-alpha.13" + "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/nbformat" "^3.1.0-alpha.13" + "@jupyterlab/observables" "^4.1.0-alpha.13" + "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.13" + "@jupyterlab/services" "^6.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.0-alpha.13" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" @@ -427,30 +430,30 @@ lodash.escape "^4.0.1" marked "^2.0.0" -"@jupyterlab/services@^6.1.0-alpha.8": - version "6.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.1.0-alpha.8.tgz#7d70cb26474aaba9979e9dc632539b21371266eb" - integrity sha512-1OPIkdF7zC5rUklD0zfR7Ozyg1RHW5IyY1CKE2ksbxQsBPAB1aPDj9V4CLOyla3l6QBLkPTpm6MTlXgQh/MD8Q== +"@jupyterlab/services@^6.1.0-alpha.13": + version "6.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.1.0-alpha.13.tgz#76b9e6470a92ae7943682ec452e3055817d9b40d" + integrity sha512-0uCRub6Yt2smXd3cmq3TzUQ/w7vDjvS4VctStD+tJTNOoGZ9Iuo0AemI8tjf6p4ymuWOKti0mkcOU4HuN5nzgA== dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.8" - "@jupyterlab/nbformat" "^3.1.0-alpha.8" - "@jupyterlab/observables" "^4.1.0-alpha.8" - "@jupyterlab/settingregistry" "^3.1.0-alpha.8" - "@jupyterlab/statedb" "^3.1.0-alpha.8" + "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/nbformat" "^3.1.0-alpha.13" + "@jupyterlab/observables" "^4.1.0-alpha.13" + "@jupyterlab/settingregistry" "^3.1.0-alpha.13" + "@jupyterlab/statedb" "^3.1.0-alpha.13" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/polling" "^1.3.3" "@lumino/signaling" "^1.4.3" node-fetch "^2.6.0" - ws "^7.2.0" + ws "^7.4.6" -"@jupyterlab/settingregistry@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.1.0-alpha.8.tgz#1a6f0b087985eb25d2109688bbfc7dea7a959ccd" - integrity sha512-diNdrlu8XGL76qOBpV1LakAAtFgnjIqVvzBDZekpYfkxAjM8GmletsY5n8k0/zblMM+zPX56oGZ3hcGL1LEH9w== +"@jupyterlab/settingregistry@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.1.0-alpha.13.tgz#5ec0d08ea863d25451ecdf0d5734fdc6864b46a3" + integrity sha512-rwW5Ye3YzAPIt04kK0F4BmMBlaLg5vImT03+r+VdHZ0cjkcMSdrbmsQaGCaDX/vKhhOUVW+s5gqh1gFGyron9w== dependencies: - "@jupyterlab/statedb" "^3.1.0-alpha.8" + "@jupyterlab/statedb" "^3.1.0-alpha.13" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -458,22 +461,22 @@ ajv "^6.12.3" json5 "^2.1.1" -"@jupyterlab/shared-models@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/shared-models/-/shared-models-3.1.0-alpha.8.tgz#9fa40ab8aa670ffbeacc8d80a2537fa898879f9c" - integrity sha512-y8XZGfxbQDkykX8WK3nU1rdZIOqmdiaAUyleyUUNckqtkHRFe1NojDCnD6CTm2FMhfe2V1CRLJ0Z7vSRCCjo2A== +"@jupyterlab/shared-models@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/shared-models/-/shared-models-3.1.0-alpha.13.tgz#a5160e62b587ff6e4686d368c4a24e4cc468e794" + integrity sha512-SCbC+tYzuIO7le/THvboXyp7gntFJGXircYwCD7FGcWKsOrVd+oC7zvH6HMaXQy2J/H8SUExiiQcB9yesZJq1g== dependencies: - "@jupyterlab/nbformat" "^3.1.0-alpha.8" + "@jupyterlab/nbformat" "^3.1.0-alpha.13" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/signaling" "^1.4.3" - y-protocols "^1.0.4" - yjs "^13.5.3" + y-protocols "^1.0.5" + yjs "^13.5.6" -"@jupyterlab/statedb@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.1.0-alpha.8.tgz#6db4adb8b37f1b9e72022ea6909a4d4b6b6f4641" - integrity sha512-5u+L1rN5TyNnGhMTS/rMa3aqxCkc8odUwfZCfmDK2XUX34O6QwTiwbTNeU5IdQU87HS7wqQvrcOI3fD1yxdzpw== +"@jupyterlab/statedb@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.1.0-alpha.13.tgz#3773fa946c75ceecfabc065e0ec5f3bd5ee7b4ec" + integrity sha512-B2rPY1reJE6Bw9whhwvuu/uH+1PAAshIiRbAEwnNNPpeWrq8ah6fgTeasyt8VHFD/P10y8Sy+37BHHeOFsBJXQ== dependencies: "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -481,17 +484,17 @@ "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" -"@jupyterlab/statusbar@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.1.0-alpha.8.tgz#417e58e1bb7b7535a40ddcee4358e3cd0abc53a8" - integrity sha512-LXru9f4IuVG4ab1YE3mI/mx0qcNz5+0MzsE8b+NAppJcjg8aJpBE/SNTsmR5aUc8K4g4xD9lEAjHuXHF4eywPw== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.8" - "@jupyterlab/codeeditor" "^3.1.0-alpha.8" - "@jupyterlab/coreutils" "^5.1.0-alpha.8" - "@jupyterlab/services" "^6.1.0-alpha.8" - "@jupyterlab/translation" "^3.1.0-alpha.8" - "@jupyterlab/ui-components" "^3.1.0-alpha.8" +"@jupyterlab/statusbar@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.1.0-alpha.13.tgz#8aaec8f5afc84fbf7b0fcff9ba0fdd4f5d28c473" + integrity sha512-unqIg4MJCy6rD4MRK49I4WaQ8O+llF36C/BEaAIgqBSm54/pp9NUUdNZ/9zDZn9lfGf+7hGER6DNdxOIsUpqvQ== + dependencies: + "@jupyterlab/apputils" "^3.1.0-alpha.13" + "@jupyterlab/codeeditor" "^3.1.0-alpha.13" + "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/services" "^6.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.0-alpha.13" + "@jupyterlab/ui-components" "^3.1.0-alpha.13" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -502,24 +505,24 @@ react "^17.0.1" typestyle "^2.0.4" -"@jupyterlab/translation@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.1.0-alpha.8.tgz#50166c8aa116d5858533b61357776e2a2a724a9a" - integrity sha512-mePAKKL6fUIpiNCKFTzj6muenZU5VcEr0dePrfcTB00AvKYyP8waDUWLnMv8oMMsZXUWVM8U4f+OevhgOew2Ag== +"@jupyterlab/translation@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.1.0-alpha.13.tgz#cd3d89f39481a3d70cbe9816cf5df019d97a935b" + integrity sha512-zl6sueDgpFZYwuz6bek3WYoT9SsB9UEtmd8X6dIAtDMt/9nzwUg2TB37hDXpBH0EP9lYuywk/gc3cMM11TEzOQ== dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.8" - "@jupyterlab/services" "^6.1.0-alpha.8" - "@jupyterlab/statedb" "^3.1.0-alpha.8" + "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/services" "^6.1.0-alpha.13" + "@jupyterlab/statedb" "^3.1.0-alpha.13" "@lumino/coreutils" "^1.5.3" -"@jupyterlab/ui-components@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.1.0-alpha.8.tgz#94085df820e05c3c2ebe35b852e6a1d950212aa2" - integrity sha512-e367PPgcwSLwvx4+y7+T8qculO/43zcm2SOF8Lx9ty0B1a8GA7lMkAE1ztop6+f+/su3WH8IqCWFsLegv3JvrA== +"@jupyterlab/ui-components@^3.1.0-alpha.13": + version "3.1.0-alpha.13" + resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.1.0-alpha.13.tgz#28a7079539b7971b9ac47fd3db85e00c31cf87d9" + integrity sha512-wz0H0khN3H3Qklo6ls3+VG9Ju1Um3LqmTl6TGz1utZZm9nvUFIUes3xBXmSgu0B0Z+v6+mbPat44FW5gNmphbw== dependencies: "@blueprintjs/core" "^3.36.0" "@blueprintjs/select" "^3.15.0" - "@jupyterlab/coreutils" "^5.1.0-alpha.8" + "@jupyterlab/coreutils" "^5.1.0-alpha.13" "@lumino/coreutils" "^1.5.3" "@lumino/signaling" "^1.4.3" "@lumino/virtualdom" "^1.8.0" @@ -2572,7 +2575,7 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -lib0@^0.2.31, lib0@^0.2.35, lib0@^0.2.41: +lib0@^0.2.31, lib0@^0.2.41, lib0@^0.2.42: version "0.2.42" resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.42.tgz#6d8bf1fb8205dec37a953c521c5ee403fd8769b0" integrity sha512-8BNM4MiokEKzMvSxTOC3gnCBisJH+jL67CnSnqzHv3jli3pUvGC8wz+0DQ2YvGr4wVQdb2R2uNNPw9LEpVvJ4Q== @@ -4160,10 +4163,10 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yjs@^13.5.3: - version "13.5.6" - resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.6.tgz#37350d0b5ee5a7c80aa84771b4a5fb551a02c690" - integrity sha512-0ebPpLB/zizJbWaFUDRarWbXiXYD0OMDOCa8ZqkVVWQzeIoMRbmbNwB3suZ9YwD0bV4Su9RLn8M/bvGzIwX3hA== +yjs@^13.5.6: + version "13.5.11" + resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.11.tgz#8f41a61fd0039a8d720a5b3186b8ad319d88563b" + integrity sha512-nJzML0NoSUh+kZLEOssYViPI1ZECv/7rnLk5mhXvhMTnezNAYWAIfNLvo+FHYRhWBojbrutT4d2IAP/IE9Xaog== dependencies: lib0 "^0.2.41" From c3038ba80de6b0811b23c1e91b431ddd70019a74 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Mon, 28 Jun 2021 17:28:24 +0200 Subject: [PATCH 10/17] Export to svg (see #93) --- src/index.ts | 18 +++--------------- testfiles/test.svg | 1 - 2 files changed, 3 insertions(+), 16 deletions(-) delete mode 100644 testfiles/test.svg diff --git a/src/index.ts b/src/index.ts index bf9c418f..09feda76 100644 --- a/src/index.ts +++ b/src/index.ts @@ -157,27 +157,15 @@ function activate( tracker.currentWidget !== null && tracker.currentWidget === app.shell.currentWidget, execute: () => { - const wdg = app.shell.currentWidget as DrawIODocumentWidget; - const name = - wdg.context.path - .split('/') - .pop() - .split('.')[0] + '.svg'; - const path = wdg.context.path - .split('/') - .slice(0, -1) - .join(); - + const cwd = browserFactory.defaultBrowser.model.path; commands .execute('docmanager:new-untitled', { - name, - path, + path: cwd, type: 'file', ext: '.svg' }) .then(model => { - model.name = name; - model.path = path ? path + '/' + name : name; + const wdg = app.shell.currentWidget as any; model.content = wdg.getSVG(); model.format = 'text'; app.serviceManager.contents.save(model.path, model); diff --git a/testfiles/test.svg b/testfiles/test.svg deleted file mode 100644 index e85b54c3..00000000 --- a/testfiles/test.svg +++ /dev/null @@ -1 +0,0 @@ -
Hello
Hello
\ No newline at end of file From 7a95194f41c3225b975394537188d9882bf75513 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Mon, 28 Jun 2021 17:31:23 +0200 Subject: [PATCH 11/17] Remove logs --- src/index.ts | 1 - src/model.ts | 3 --- src/panel.ts | 6 ------ src/widget.ts | 1 - 4 files changed, 11 deletions(-) diff --git a/src/index.ts b/src/index.ts index 09feda76..1ee381ed 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1253,7 +1253,6 @@ function addCommands(app: JupyterFrontEnd, tracker: IDrawioTracker): void { tracker.currentWidget === app.shell.currentWidget ) { const wdg = app.shell.currentWidget as DrawIODocumentWidget; - console.debug('fill Color:', wdg.getAction('fillColor').enabled); return wdg.getAction('fillColor').enabled; } else { return false; diff --git a/src/model.ts b/src/model.ts index cf5e7f48..ba592e7b 100644 --- a/src/model.ts +++ b/src/model.ts @@ -87,7 +87,6 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { } toString(): string { - console.debug('toString'); let source = ' { source += ` ${key}="${value}"`; @@ -104,7 +103,6 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { } fromString(source: string): void { - console.debug('fromString'); const patternGraph = new RegExp(//g); const graph = source.match(patternGraph); @@ -176,7 +174,6 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { sender: YDrawIO, changes: IDrawIOChange ): void => { - console.debug('_onSharedModelChanged'); if (changes.stateChange && changes.stateChange.has('dirty')) { const dirty = changes.stateChange.get('dirty'); this._stateChanged.emit({ diff --git a/src/panel.ts b/src/panel.ts index eccbecd5..1d8a66d2 100644 --- a/src/panel.ts +++ b/src/panel.ts @@ -48,7 +48,6 @@ export class DrawIOWidget extends Widget { super(); this._context = context; this._context.ready.then(value => { - console.debug('DrawIOWidget context ready'); Private.ensureMx().then(mx => { this._loadDrawIO(mx); this._context.model.sharedModelChanged.connect(this._onContentChanged); @@ -368,7 +367,6 @@ export class DrawIOWidget extends Widget { private _onReady(): void { this._context.model.mutex(() => { - console.debug('_onReady'); const data = this._context.model.toString(); const xml = this._mx.mxUtils.parseXml(data); this._editor.editor.setGraphXml(xml.documentElement); @@ -381,14 +379,12 @@ export class DrawIOWidget extends Widget { sender: DrawIODocumentModel, changes: IDrawIOChange ): void => { - console.debug('_onContentChanged'); if (this._editor === undefined) { return; } if (changes.cellChange) { this._context.model.mutex(() => { - console.debug('Changing graph'); const root = new this._mx.mxCell(); root.insert(new this._mx.mxCell()); this._editor.editor.graph.model.setRoot(root); @@ -412,13 +408,11 @@ export class DrawIOWidget extends Widget { }; private _onDrawIOModelChanged = (sender: any, evt: any) => { - console.debug('_onDrawIOModelChanged'); const changes = evt.getProperty('edit').changes; const encoder = new this._mx.mxCodec(); this._context.model.mutex(() => { this._context.model.transact(() => { - console.debug('Updating model'); for (let i = 0; i < changes.length; i++) { const change = changes[i]; diff --git a/src/widget.ts b/src/widget.ts index f2374c1c..cbf6c490 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -80,7 +80,6 @@ export class DrawIODocumentWidget extends DocumentWidget< this._menubar.addMenu(this._menuInsert, { rank: 2 }); this.context.ready.then(async value => { - console.debug('Context ready'); await this.content.ready.promise; this._addToolbarItems(); From 572fdaa4a2fdb09cf6d4b61f91347d667330123e Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Mon, 28 Jun 2021 17:59:43 +0200 Subject: [PATCH 12/17] Add config for dark theme (Doen't work, needs latest mxClient library) --- src/pack.ts | 110 +++++++++++++++++++++++++++++++++++++++++++++ testfiles/test.dio | 13 +++--- 2 files changed, 116 insertions(+), 7 deletions(-) diff --git a/src/pack.ts b/src/pack.ts index 622f8c1b..2bc8a01f 100644 --- a/src/pack.ts +++ b/src/pack.ts @@ -452,3 +452,113 @@ export const defaultXml = ` `; + +export const defaultDarkXML = ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`; \ No newline at end of file diff --git a/testfiles/test.dio b/testfiles/test.dio index ec2ce45a..695a69a6 100644 --- a/testfiles/test.dio +++ b/testfiles/test.dio @@ -2,12 +2,11 @@ - - - - - - - + + + + + +
\ No newline at end of file From 72eaa76c44ca70f26aaa3bf51f034dc34f46bb04 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Mon, 28 Jun 2021 18:01:07 +0200 Subject: [PATCH 13/17] lint --- src/pack.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pack.ts b/src/pack.ts index 2bc8a01f..f986d3d6 100644 --- a/src/pack.ts +++ b/src/pack.ts @@ -561,4 +561,4 @@ export const defaultDarkXML = ` -`; \ No newline at end of file +`; From 3724b9e313592a1271fad29b091749f6608ca1a8 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Fri, 2 Jul 2021 12:22:36 +0200 Subject: [PATCH 14/17] remove source and unobserve state --- src/model.ts | 3 ++- testfiles/test.dio | 14 ++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/model.ts b/src/model.ts index ba592e7b..b9f9c024 100644 --- a/src/model.ts +++ b/src/model.ts @@ -115,7 +115,7 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { const cells = source.match(patternCells); this.transact(() => { - this.sharedModel.setSource(source); + //this.sharedModel.setSource(source); attrs.forEach(attr => { const patternAttr = new RegExp(/(?\w+)="(?[^"]*)"/g); @@ -230,6 +230,7 @@ export class YDrawIO extends YDocument { * Dispose of the resources. */ dispose(): void { + this._state.unobserve(this._stateObserver); this._root.unobserve(this._rootObserver); } diff --git a/testfiles/test.dio b/testfiles/test.dio index 695a69a6..29f42918 100644 --- a/testfiles/test.dio +++ b/testfiles/test.dio @@ -2,11 +2,13 @@ - - - - - - + + + + + + + + \ No newline at end of file From baabc0f7b91aa5520cd9422ad5bf35056534db07 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Tue, 24 Aug 2021 15:50:44 +0200 Subject: [PATCH 15/17] Updated dependencies --- package.json | 22 +- src/model.ts | 41 +- src/widget.ts | 6 +- yarn.lock | 3218 +++++++++++++++++++++++++++++++++++++------------ 4 files changed, 2458 insertions(+), 829 deletions(-) diff --git a/package.json b/package.json index 727f8d36..54f9f8a4 100644 --- a/package.json +++ b/package.json @@ -46,17 +46,17 @@ "watch:src": "tsc -w" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.13", - "@jupyterlab/apputils": "^3.1.0-alpha.13", - "@jupyterlab/coreutils": "^5.1.0-alpha.13", - "@jupyterlab/docregistry": "^3.1.0-alpha.13", - "@jupyterlab/filebrowser": "^3.1.0-alpha.13", - "@jupyterlab/launcher": "^3.1.0-alpha.13", - "@jupyterlab/mainmenu": "^3.1.0-alpha.13", - "@jupyterlab/observables": "^4.1.0-alpha.13", - "@jupyterlab/services": "^6.1.0-alpha.13", - "@jupyterlab/shared-models": "^3.1.0-alpha.13", - "@jupyterlab/ui-components": "^3.1.0-alpha.13", + "@jupyterlab/application": "^3.1.6", + "@jupyterlab/apputils": "^3.1.6", + "@jupyterlab/coreutils": "^5.1.6", + "@jupyterlab/docregistry": "^3.1.6", + "@jupyterlab/filebrowser": "^3.1.6", + "@jupyterlab/launcher": "^3.1.6", + "@jupyterlab/mainmenu": "^3.1.6", + "@jupyterlab/observables": "^4.1.6", + "@jupyterlab/services": "^6.1.6", + "@jupyterlab/shared-models": "^3.1.6", + "@jupyterlab/ui-components": "^3.1.6", "@lumino/commands": "^1.12.0", "@lumino/coreutils": "^1.5.3", "@lumino/signaling": "^1.4.3", diff --git a/src/model.ts b/src/model.ts index b9f9c024..ea9d037b 100644 --- a/src/model.ts +++ b/src/model.ts @@ -174,13 +174,19 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { sender: YDrawIO, changes: IDrawIOChange ): void => { - if (changes.stateChange && changes.stateChange.has('dirty')) { - const dirty = changes.stateChange.get('dirty'); - this._stateChanged.emit({ - name: 'dirty', - oldValue: dirty.oldValue, - newValue: dirty.newValue + console.debug("State changed:"); + if (changes.stateChange) { + changes.stateChange.forEach( state => { + console.debug("State changed:", state); + if (state.name === 'dirty') { + this._stateChanged.emit({ + name: 'dirty', + oldValue: state.oldValue, + newValue: state.newValue + }); + } }); + } else { this.dirty = true; this._sharedModelChanged.emit(changes); @@ -196,13 +202,11 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { export type IDrawIOChange = { contextChange?: MapChange; - stateChange?: Map< - string, - { - oldValue: any; - newValue: any; - } - >; + stateChange?: Array<{ + name: string; + oldValue: any; + newValue: any; + }>; attrChange?: MapChange; cellChange?: boolean; }; @@ -366,17 +370,12 @@ export class YDrawIO extends YDocument { * Handle a change to the _mxGraphModel. */ private _stateObserver = (event: Y.YMapEvent): void => { - const stateChange = new Map< - string, - { - oldValue: any; - newValue: any; - } - >(); + const stateChange = new Array(); if (event.keysChanged.has('dirty')) { const change = event.changes.keys.get('dirty'); - stateChange.set('dirty', { + stateChange.push({ + name: 'dirty', oldValue: change?.oldValue === true ? true : false, newValue: this._state.get('dirty') }); diff --git a/src/widget.ts b/src/widget.ts index cbf6c490..a8bcfc07 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -85,7 +85,7 @@ export class DrawIODocumentWidget extends DocumentWidget< this._addToolbarItems(); this.context.model.dirty = false; - this.context.pathChanged.connect(this._onTitleChanged, this); + this.context.pathChanged.connect(this._titleChanged, this); }); } @@ -93,7 +93,7 @@ export class DrawIODocumentWidget extends DocumentWidget< * Dispose of the resources held by the widget. */ dispose(): void { - this.context.pathChanged.disconnect(this._onTitleChanged, this); + this.context.pathChanged.disconnect(this._titleChanged, this); this.content.dispose(); super.dispose(); } @@ -156,7 +156,7 @@ export class DrawIODocumentWidget extends DocumentWidget< /** * Handle a change to the title. */ - private _onTitleChanged(): void { + private _titleChanged(): void { this.title.label = PathExt.basename(this.context.localPath); } diff --git a/yarn.lock b/yarn.lock index 32c7c48b..69360064 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,33 +9,39 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/helper-validator-identifier@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" - integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== +"@babel/helper-validator-identifier@^7.14.5": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== "@babel/highlight@^7.10.4": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" - integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== dependencies: - "@babel/helper-validator-identifier" "^7.14.0" + "@babel/helper-validator-identifier" "^7.14.5" chalk "^2.0.0" js-tokens "^4.0.0" "@babel/runtime@^7.1.2": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" - integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" + integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== dependencies: regenerator-runtime "^0.13.4" -"@blueprintjs/core@^3.36.0", "@blueprintjs/core@^3.44.2": - version "3.44.2" - resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.44.2.tgz#6b6502a7d26128ccf795b79a0c10aa6b9fd863f7" - integrity sha512-rxw0KU0Trdnf5HoILyWrEYpfubC1+VyfpbqcD4pG3iA79oGfo1q5x4S16YTeZpVXRm8VK3TBob4RDRXDd+/4PQ== +"@blueprintjs/colors@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@blueprintjs/colors/-/colors-1.0.0.tgz#3b3501eae2294098fe5bdf8f37d0c471e95cd0e6" + integrity sha512-eJh111ucz8HYxLBON6ADkAGQQBACqdbX6Zws/GpuiTkeCFJ3IAjZdBpk7IM7/Y5XuGuSS1ujwjnLDOEtyywtKw== + +"@blueprintjs/core@^3.36.0", "@blueprintjs/core@^3.48.0": + version "3.48.0" + resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.48.0.tgz#e2d27c05943203d4979eae95f8a0c10b24d2b6cc" + integrity sha512-tuAL3dZrNaTq36RRy6O86wjmkiLt8LwHkleZ1zUcn/DC3cXsM3dSsRpV3f662bcEiAXMPeGemSC3tqv6uZCeLg== dependencies: - "@blueprintjs/icons" "^3.26.0" + "@blueprintjs/colors" "^1.0.0" + "@blueprintjs/icons" "^3.28.0" "@types/dom4" "^2.0.1" classnames "^2.2" dom4 "^2.1.5" @@ -47,20 +53,20 @@ resize-observer-polyfill "^1.5.1" tslib "~1.13.0" -"@blueprintjs/icons@^3.26.0": - version "3.26.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.26.0.tgz#d3f0aa0d35a9ebe8648db9651af364dfcc529d9f" - integrity sha512-1+yhYH1Fjj5qGx8drZUL2L1R42MiN0WVHTTKYqGEV9TAzhvFHCSZgALD7WNQa+FEibw/8B4U+79IRgUPJNEjow== +"@blueprintjs/icons@^3.28.0": + version "3.28.0" + resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.28.0.tgz#d06528df4aadc0ea685b0b3be18fd3b19dece9e5" + integrity sha512-gDvvU2ljV4NXsY5ofKcs1ChXAgmqNp/DIMu2uJIJmXhSXfP6JDd4qbnbGMsP3FmLTaqQP3E9oBZqAG/FRB8VmQ== dependencies: classnames "^2.2" tslib "~1.13.0" "@blueprintjs/select@^3.15.0": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.16.2.tgz#ac09710ebef14381c1c25e393a7d5bce76119558" - integrity sha512-/wcQTVwQNqesmi7ag/BFjBMla64HkwyvPRfYK0INwaIW08itjoATflAvw5QYRqqk6FeZ/OwGUOwoKS8oe5goDg== + version "3.17.0" + resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.17.0.tgz#b4e49ed9dd8a2cebbf27226c3e2f25c4071fdb29" + integrity sha512-38jvSt1zGOJuw6Vj3BrDn1ojZCI+U5UV8xEupGPTEVyszE7RwFoF8l1iDTLbiPwLV5DSOxTN0B6mxeSPX45OQw== dependencies: - "@blueprintjs/core" "^3.44.2" + "@blueprintjs/core" "^3.48.0" classnames "^2.2" tslib "~1.13.0" @@ -69,15 +75,15 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== -"@eslint/eslintrc@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" - integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ== +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== dependencies: ajv "^6.12.4" debug "^4.1.1" espree "^7.3.0" - globals "^12.1.0" + globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" @@ -85,9 +91,23 @@ strip-json-comments "^3.1.1" "@fortawesome/fontawesome-free@^5.12.0": - version "5.15.3" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.3.tgz#c36ffa64a2a239bf948541a97b6ae8d729e09a9a" - integrity sha512-rFnSUN/QOtnOAgqFRooTA3H57JLDm0QEG/jPdk+tLQNL/eWd+Aok8g3qCI+Q1xuDPWpGW/i9JySpJVsq8Q0s9w== + version "5.15.4" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" + integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== "@hypnosphi/create-react-context@^0.3.1": version "0.3.1" @@ -97,22 +117,21 @@ gud "^1.0.0" warning "^4.0.3" -"@jupyterlab/application@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.1.0-alpha.13.tgz#5cebb5a6d81f169cd19fae66a60c8578c6a5339b" - integrity sha512-JtAaijyIX/eBfMr5ogBsq0Cnz4jY1JuCEjhfm7f1VsmObMdD5PFZr9A+uH2tbFwIuCfEd0JX+3LOKqdQu/C7Gw== +"@jupyterlab/application@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.1.6.tgz#a712af727b6530bc92cee8c1e82bedfc12c78a26" + integrity sha512-UsO1goI85CeNcRMBPgt8eblj8/L9RWHoPDXqXbUOCXD25cIsvQI5qgLFBHn2TBc2l/U9DE5xOF2bME/JBaysfA== dependencies: "@fortawesome/fontawesome-free" "^5.12.0" - "@jupyterlab/apputils" "^3.1.0-alpha.13" - "@jupyterlab/coreutils" "^5.1.0-alpha.13" - "@jupyterlab/docmanager" "^3.1.0-alpha.13" - "@jupyterlab/docregistry" "^3.1.0-alpha.13" - "@jupyterlab/rendermime" "^3.1.0-alpha.13" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.13" - "@jupyterlab/services" "^6.1.0-alpha.13" - "@jupyterlab/statedb" "^3.1.0-alpha.13" - "@jupyterlab/translation" "^3.1.0-alpha.13" - "@jupyterlab/ui-components" "^3.1.0-alpha.13" + "@jupyterlab/apputils" "^3.1.6" + "@jupyterlab/coreutils" "^5.1.6" + "@jupyterlab/docregistry" "^3.1.6" + "@jupyterlab/rendermime" "^3.1.6" + "@jupyterlab/rendermime-interfaces" "^3.1.6" + "@jupyterlab/services" "^6.1.6" + "@jupyterlab/statedb" "^3.1.6" + "@jupyterlab/translation" "^3.1.6" + "@jupyterlab/ui-components" "^3.1.6" "@lumino/algorithm" "^1.3.3" "@lumino/application" "^1.16.0" "@lumino/commands" "^1.12.0" @@ -124,17 +143,17 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/apputils@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.1.0-alpha.13.tgz#03b7a74c5e895b85dbfd615df499b5980079c5ef" - integrity sha512-KLhDIxL+sgs2k8eqYlycORr91xPW9qGIQFUZ5mViKoozEKyEGQFsDA43nZLR8jBQwPzd+44uCKlKZW26jADR+g== - dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.13" - "@jupyterlab/services" "^6.1.0-alpha.13" - "@jupyterlab/settingregistry" "^3.1.0-alpha.13" - "@jupyterlab/statedb" "^3.1.0-alpha.13" - "@jupyterlab/translation" "^3.1.0-alpha.13" - "@jupyterlab/ui-components" "^3.1.0-alpha.13" +"@jupyterlab/apputils@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.1.6.tgz#159ca97ac3651e54bf91273f2be181827c48d87b" + integrity sha512-q9WXg5rPs2V1Wya7wIvWC8Y7OIGDmlTt8swUqyPJabvdYU/qxR3Xs2WMSNTo7cR2fwSXK04N+PkyHXaVTqCclg== + dependencies: + "@jupyterlab/coreutils" "^5.1.6" + "@jupyterlab/services" "^6.1.6" + "@jupyterlab/settingregistry" "^3.1.6" + "@jupyterlab/statedb" "^3.1.6" + "@jupyterlab/translation" "^3.1.6" + "@jupyterlab/ui-components" "^3.1.6" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -152,11 +171,11 @@ url "^0.11.0" "@jupyterlab/builder@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/builder/-/builder-3.1.0-alpha.8.tgz#705f458a5c61f2b11a75bf9bf57c54ea80a83a76" - integrity sha512-C+K3tXaYZVCmYh7k2HuP7egwYRHjZH4cVGC+LBFMTcQDaHCJqY15w9o9x/IlZ/ttdmmBrn2WAn+OYcMx4LCvRw== + version "3.1.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/builder/-/builder-3.1.7.tgz#319cad7407ce34b0e0ff8e588f219afca8e94bcb" + integrity sha512-Kd+uvkm0QSsMcdh9QYIXgtSUh3mhhO006jd3hvztZNOqUJHZQhEVVtFRr8prW8iI5F1iX3yfgy4H+odkiKlA8A== dependencies: - "@jupyterlab/buildutils" "^3.1.0-alpha.8" + "@jupyterlab/buildutils" "^3.1.7" "@lumino/algorithm" "^1.3.3" "@lumino/application" "^1.16.0" "@lumino/commands" "^1.12.0" @@ -176,7 +195,7 @@ file-loader "~6.0.0" fs-extra "^9.0.1" glob "~7.1.6" - license-webpack-plugin "^2.3.11" + license-webpack-plugin "^2.3.14" mini-css-extract-plugin "~1.3.2" path-browserify "^1.0.0" process "^0.11.10" @@ -187,15 +206,15 @@ terser-webpack-plugin "^4.1.0" to-string-loader "^1.1.6" url-loader "~4.1.0" - webpack "^5.3.1" + webpack "^5.41.1" webpack-cli "^4.1.0" webpack-merge "^5.1.2" worker-loader "^3.0.2" -"@jupyterlab/buildutils@^3.1.0-alpha.8": - version "3.1.0-alpha.8" - resolved "https://registry.yarnpkg.com/@jupyterlab/buildutils/-/buildutils-3.1.0-alpha.8.tgz#7924f92b0a59d96d7fcdeae0aa9ab1afe877731e" - integrity sha512-0iggMuQPubF/FboOFxGZO8/T242WUkBQjMMCcAJToywt2sFf2pxbWAzkjgu74mugLvnkikUJQrnMEOwBmfoJ5A== +"@jupyterlab/buildutils@^3.1.7": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@jupyterlab/buildutils/-/buildutils-3.1.7.tgz#5b0b161fda2a87663eaf10f71d89a00b820884f4" + integrity sha512-Y0yWkBE4rfWEkfXI1IT+TzWAfl4xC2zDXlMAO8jLHz0p9dfy77cDPJMJfphT/N6lUnv8T7DqtY/0snUgOLyoPA== dependencies: "@lumino/coreutils" "^1.5.3" "@yarnpkg/lockfile" "^1.1.0" @@ -207,23 +226,26 @@ glob "~7.1.6" inquirer "^7.0.0" minimatch "~3.0.4" + os "~0.1.1" package-json "^6.5.0" - prettier "^2.1.1" + prettier "~2.1.1" + process "^0.11.10" semver "^7.3.2" sort-package-json "~1.44.0" typescript "~4.1.3" - -"@jupyterlab/codeeditor@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.1.0-alpha.13.tgz#414f9a1e4472896862f25ee0c3bed7d5761332e9" - integrity sha512-mWSUA9copp9Zz1++ADcJs+GXZnTLuiEmLoposX9hp4GLsiB9ZXFQHAjdG7sBb8TvvpPRdRgwTdTJuyqiZmzwGg== - dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.13" - "@jupyterlab/nbformat" "^3.1.0-alpha.13" - "@jupyterlab/observables" "^4.1.0-alpha.13" - "@jupyterlab/shared-models" "^3.1.0-alpha.13" - "@jupyterlab/translation" "^3.1.0-alpha.13" - "@jupyterlab/ui-components" "^3.1.0-alpha.13" + verdaccio "^5.1.1" + +"@jupyterlab/codeeditor@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.1.6.tgz#615a6cebd23b1b87a75575bb2bcdcdf05d90fe4f" + integrity sha512-f46wjwfjDq28skS6W4DEHluUKp0aeCG27BcelcH36qcVRLcixx0SwxhK+iI4Be9Mq2iwMTAVEoJa2l1el+ONww== + dependencies: + "@jupyterlab/coreutils" "^5.1.6" + "@jupyterlab/nbformat" "^3.1.6" + "@jupyterlab/observables" "^4.1.6" + "@jupyterlab/shared-models" "^3.1.6" + "@jupyterlab/translation" "^3.1.6" + "@jupyterlab/ui-components" "^3.1.6" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/dragdrop" "^1.7.1" @@ -231,19 +253,19 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/codemirror@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.1.0-alpha.13.tgz#f71d7d1e396bfdece092a225fc88f94f8cd3161f" - integrity sha512-Udqm4L66aeFNQQzzVoMovbhDkKmKPxkvV8IScVHdVs7Cvj4o7/AXHaGvUB/qyanl2NmYX9ss0nyZjdmlJi9Jrw== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.13" - "@jupyterlab/codeeditor" "^3.1.0-alpha.13" - "@jupyterlab/coreutils" "^5.1.0-alpha.13" - "@jupyterlab/nbformat" "^3.1.0-alpha.13" - "@jupyterlab/observables" "^4.1.0-alpha.13" - "@jupyterlab/shared-models" "^3.1.0-alpha.13" - "@jupyterlab/statusbar" "^3.1.0-alpha.13" - "@jupyterlab/translation" "^3.1.0-alpha.13" +"@jupyterlab/codemirror@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.1.6.tgz#5222670c6b5f0e9707de0906cad545c78c93d7c8" + integrity sha512-jRlI1BnPd5f2AyhgJXYji7xNErthdwIj9uBTYGqZFS9syyx8uaooVIk8mqvdbjtkREH/BdfnkfBT3P7+zMb1pg== + dependencies: + "@jupyterlab/apputils" "^3.1.6" + "@jupyterlab/codeeditor" "^3.1.6" + "@jupyterlab/coreutils" "^5.1.6" + "@jupyterlab/nbformat" "^3.1.6" + "@jupyterlab/observables" "^4.1.6" + "@jupyterlab/shared-models" "^3.1.6" + "@jupyterlab/statusbar" "^3.1.6" + "@jupyterlab/translation" "^3.1.6" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -255,10 +277,10 @@ react "^17.0.1" y-codemirror "^2.1.1" -"@jupyterlab/coreutils@^5.1.0-alpha.13": - version "5.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.1.0-alpha.13.tgz#a4ad85a8b363a38b72bc486ae91c3b2acc0fa8fc" - integrity sha512-Jxm88fPqB7VHuq+Uuh0UVwwhDibv1qc0czsRTuuQ8mTVY0xAdWva2EhWjQ4TRLetScvgBVu6pu0NEoMn4nycqQ== +"@jupyterlab/coreutils@^5.1.6": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.1.6.tgz#8e84ac74e7ec51f5555a5f4a6494f4d72818fdeb" + integrity sha512-wR3Fs0lkwywtCUtjJyDinz4FXmLafLDVz8mGnASL+HqRGRAK4AEf8E9wIhTxGA/3FF2XB+koo8OBn1Vi8tlpdg== dependencies: "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -268,18 +290,18 @@ path-browserify "^1.0.0" url-parse "~1.5.1" -"@jupyterlab/docmanager@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.1.0-alpha.13.tgz#62872d59eee0577f03084ab0c236548d9b369488" - integrity sha512-nnaHsV/vUmzBwwyP2jusd32L811p6jjFWVji0nQURZSJSX9ZdVPgD2vBUSwDQEZblYmDs3leAZqxLXEDev5tzA== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.13" - "@jupyterlab/coreutils" "^5.1.0-alpha.13" - "@jupyterlab/docprovider" "^3.1.0-alpha.13" - "@jupyterlab/docregistry" "^3.1.0-alpha.13" - "@jupyterlab/services" "^6.1.0-alpha.13" - "@jupyterlab/statusbar" "^3.1.0-alpha.13" - "@jupyterlab/translation" "^3.1.0-alpha.13" +"@jupyterlab/docmanager@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.1.6.tgz#b9f4c39c5b461734c63323b1eae0ff2058bc1521" + integrity sha512-aH3nnLZc+6ykChAPdReAv9LRZ1dC9p/EQ+VqMF79YHYGX/lVAwaX8FdcBdknOjtTqY9mkBNhTaEoRwN4gUprmA== + dependencies: + "@jupyterlab/apputils" "^3.1.6" + "@jupyterlab/coreutils" "^5.1.6" + "@jupyterlab/docprovider" "^3.1.6" + "@jupyterlab/docregistry" "^3.1.6" + "@jupyterlab/services" "^6.1.6" + "@jupyterlab/statusbar" "^3.1.6" + "@jupyterlab/translation" "^3.1.6" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -289,34 +311,34 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/docprovider@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/docprovider/-/docprovider-3.1.0-alpha.13.tgz#12e3216e88bae813fb72c3dcbd42932df419691a" - integrity sha512-NI2k+N5JLAb5KePNWzbpHfCMsS4dSYgjwDb62H1DogLw5pzYD2UX6gTsNk6ZNr7DIFOK1gdEQ1rzbVmNq9MndQ== +"@jupyterlab/docprovider@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/docprovider/-/docprovider-3.1.6.tgz#69c4a2b2ac2b92a94294a9178b2238e528abdfa6" + integrity sha512-6d2VHtZ7HSZ18okeMuqBT2PlA+Zpa1b4eoEnTV83RIcJldLFWKJM/Vnw7CY37i7IOsY22TNYIsR0niVIpJ3ySA== dependencies: - "@jupyterlab/shared-models" "^3.1.0-alpha.13" + "@jupyterlab/shared-models" "^3.1.6" "@lumino/coreutils" "^1.5.3" lib0 "^0.2.42" y-websocket "^1.3.15" yjs "^13.5.6" -"@jupyterlab/docregistry@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.1.0-alpha.13.tgz#2c5f5af96f3c863b3e83720643126d2ebf9c00d0" - integrity sha512-lCaKMQI4e5MHjIJGwMrNWBbyYw0YUPqWsJhg250fFF0w1MsJ6TENtfkPv/Fv1JB1l5Snnzg4lRxfdiQ1UNzRqA== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.13" - "@jupyterlab/codeeditor" "^3.1.0-alpha.13" - "@jupyterlab/codemirror" "^3.1.0-alpha.13" - "@jupyterlab/coreutils" "^5.1.0-alpha.13" - "@jupyterlab/docprovider" "^3.1.0-alpha.13" - "@jupyterlab/observables" "^4.1.0-alpha.13" - "@jupyterlab/rendermime" "^3.1.0-alpha.13" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.13" - "@jupyterlab/services" "^6.1.0-alpha.13" - "@jupyterlab/shared-models" "^3.1.0-alpha.13" - "@jupyterlab/translation" "^3.1.0-alpha.13" - "@jupyterlab/ui-components" "^3.1.0-alpha.13" +"@jupyterlab/docregistry@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.1.6.tgz#f89bf25d4e57649a1a351e2419d405bce2b473aa" + integrity sha512-L6bsxdVK7KSijbAVPlQ75fo3cRbnx6Cpz2QLrHOZAa4oRStBV5j+y2o5bQOmUFHQPiWX+EaRHGLJKzX7ozZipQ== + dependencies: + "@jupyterlab/apputils" "^3.1.6" + "@jupyterlab/codeeditor" "^3.1.6" + "@jupyterlab/codemirror" "^3.1.6" + "@jupyterlab/coreutils" "^5.1.6" + "@jupyterlab/docprovider" "^3.1.6" + "@jupyterlab/observables" "^4.1.6" + "@jupyterlab/rendermime" "^3.1.6" + "@jupyterlab/rendermime-interfaces" "^3.1.6" + "@jupyterlab/services" "^6.1.6" + "@jupyterlab/shared-models" "^3.1.6" + "@jupyterlab/translation" "^3.1.6" + "@jupyterlab/ui-components" "^3.1.6" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -325,20 +347,20 @@ "@lumino/widgets" "^1.19.0" yjs "^13.5.6" -"@jupyterlab/filebrowser@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.1.0-alpha.13.tgz#f545f42e592de5daafced6a6d1ff3fca95b527db" - integrity sha512-wTqHtsfmZoGzybVNbSEhMNU74eH0xgnDl7xa1RZTrxcfLZyqiAVoBIomunRc4+sXFXxA/zxW7NC8EfoXK387aA== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.13" - "@jupyterlab/coreutils" "^5.1.0-alpha.13" - "@jupyterlab/docmanager" "^3.1.0-alpha.13" - "@jupyterlab/docregistry" "^3.1.0-alpha.13" - "@jupyterlab/services" "^6.1.0-alpha.13" - "@jupyterlab/statedb" "^3.1.0-alpha.13" - "@jupyterlab/statusbar" "^3.1.0-alpha.13" - "@jupyterlab/translation" "^3.1.0-alpha.13" - "@jupyterlab/ui-components" "^3.1.0-alpha.13" +"@jupyterlab/filebrowser@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.1.6.tgz#0e0b7e7f65e9bd3ef6a812243059bc2524b7f615" + integrity sha512-4211CVUzCYwdTIa6Cpt0vaI6mSiOoz+Ol0WM5rlFButs77oGi9fry6zpkLmVW9Xn/QLfSC592ztv+RC0vljvyQ== + dependencies: + "@jupyterlab/apputils" "^3.1.6" + "@jupyterlab/coreutils" "^5.1.6" + "@jupyterlab/docmanager" "^3.1.6" + "@jupyterlab/docregistry" "^3.1.6" + "@jupyterlab/services" "^6.1.6" + "@jupyterlab/statedb" "^3.1.6" + "@jupyterlab/statusbar" "^3.1.6" + "@jupyterlab/translation" "^3.1.6" + "@jupyterlab/ui-components" "^3.1.6" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -351,14 +373,14 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/launcher@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/launcher/-/launcher-3.1.0-alpha.13.tgz#32b6da5b41c1206cc3205065abbd78ea0fc3b2dc" - integrity sha512-Bc1eSAe1nLpxTtO99HJgbu/c/VbQG1Tvc92tZGqChdCZx6vuBDyAIP5/hqX/HNkWb7YXk0oVEaExRmK7UFEJRw== +"@jupyterlab/launcher@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/launcher/-/launcher-3.1.6.tgz#5aed90dd149d46431b130c42eb3b79ca0037cfa8" + integrity sha512-lacVomkI2jfwttDKuhNcDpFbfFZCgu8QzORkzRzKVKbl+xsOwTazTr4dGu9hOahEa5k/BJ4w8pmnxjhBp05eFQ== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.13" - "@jupyterlab/translation" "^3.1.0-alpha.13" - "@jupyterlab/ui-components" "^3.1.0-alpha.13" + "@jupyterlab/apputils" "^3.1.6" + "@jupyterlab/translation" "^3.1.6" + "@jupyterlab/ui-components" "^3.1.6" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -367,32 +389,31 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/mainmenu@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/mainmenu/-/mainmenu-3.1.0-alpha.13.tgz#837c1873de135497e91045c7d10e845cef555929" - integrity sha512-9kqSxSbIjDYu52WI32XxeSRE5ZKR3FbfxM4yVieBOQZjpnpTkMfi+4SINZZNI+Dux6ElOHaeKwvOajZdE5O/Mw== +"@jupyterlab/mainmenu@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/mainmenu/-/mainmenu-3.1.6.tgz#66b83815ec960ef67981ce3a0dee897ffc6b75f9" + integrity sha512-ZhFhUUrO7yYAv7APYgQmQ7DiF96K/inheGpKgQ43bhrM7z3s/8U5eBo8ZCdzzlXIvcDXn/zZ4B2IvTMstwvaAQ== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.13" - "@jupyterlab/services" "^6.1.0-alpha.13" - "@jupyterlab/translation" "^3.1.0-alpha.13" - "@jupyterlab/ui-components" "^3.1.0-alpha.13" + "@jupyterlab/apputils" "^3.1.6" + "@jupyterlab/services" "^6.1.6" + "@jupyterlab/translation" "^3.1.6" + "@jupyterlab/ui-components" "^3.1.6" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" - "@lumino/disposable" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/nbformat@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.1.0-alpha.13.tgz#391302bc6b0140384a2089ee610f40b5740e911a" - integrity sha512-+bUfxrbTQ/XchQYbx9M0IU59+lxFuNasLCqVq5JGKi01WtNQ17D6JBtvoA1hXAroA/xgtCeFQ8CVo/ccArWcpQ== +"@jupyterlab/nbformat@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.1.6.tgz#1551a83b627f42c2d677832200f9e423fb862cf4" + integrity sha512-1P4pyVvNTHlIHpydT+Bp9IjIGlT0DNGIf/P9TMgeI/43UFzUcOmdYaWxWDt1S+oUGwwWxawiqS2F7w+YvgH24g== dependencies: "@lumino/coreutils" "^1.5.3" -"@jupyterlab/observables@^4.1.0-alpha.13": - version "4.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.1.0-alpha.13.tgz#74cb4c207ebe0db063027ce02c3ad0e6bc9c374f" - integrity sha512-tMoQeg8wtmNBFChquFc4D6ZoaoG8c8kC0vFjUH1dULuVgs2/V0yMqB1UPOHYcfQ3YslKLQ+tq5tPIymCiuD+Iw== +"@jupyterlab/observables@^4.1.6": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.1.6.tgz#0af551c2bd6c3991200c20ff9f630ee7c71a2f84" + integrity sha512-0t/q/L4EKKDkg1U6WXm3ZdO+Osq/IteOwORWQShIvLdorjUaPguFCGuMv4sDI7I+9pDRl6L524dgUNVSLXaimw== dependencies: "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" @@ -400,28 +421,28 @@ "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" -"@jupyterlab/rendermime-interfaces@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.1.0-alpha.13.tgz#e5b350b4274fb620f1d3b9c764831d8dfdcceb5f" - integrity sha512-UFX3v/kwmIqZDtBV/pp0NkoOnP++7ZHRZbZjuylCrOOqMlHvwHdRAVaIdwwxZsYa7rob5K6cUGldxtFxlmg7/w== +"@jupyterlab/rendermime-interfaces@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.1.6.tgz#61abddfad7b1e0dfc3c502526ee4843e7220e2dc" + integrity sha512-5lib7/7cQAEXUrMzJ8WTOMIjKxqaApKw5Xz3tXFOIHnqy5pKKWO+jAC2WQp6c3gEDy168CP0lu0wJ/JMg0CBsg== dependencies: - "@jupyterlab/translation" "^3.1.0-alpha.13" + "@jupyterlab/translation" "^3.1.6" "@lumino/coreutils" "^1.5.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/rendermime@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.1.0-alpha.13.tgz#e8e58c2ebe36671fec54bde820a17e50e37352eb" - integrity sha512-R8iBfYNU9/7XDB9UaVuG324WhN/y6/j/EkkrIHGIxJM4MunvWuFTdOyiVZzHStNvwQeIEsZZ+gaPVBIs1ccQbw== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.13" - "@jupyterlab/codemirror" "^3.1.0-alpha.13" - "@jupyterlab/coreutils" "^5.1.0-alpha.13" - "@jupyterlab/nbformat" "^3.1.0-alpha.13" - "@jupyterlab/observables" "^4.1.0-alpha.13" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.13" - "@jupyterlab/services" "^6.1.0-alpha.13" - "@jupyterlab/translation" "^3.1.0-alpha.13" +"@jupyterlab/rendermime@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.1.6.tgz#a25994a0863968cda17a5553f82f2a3e62fe9637" + integrity sha512-1VzWPrUztU0hrM8+jLBI6pye/ydN/01FKBr7CebeLpS1zsHT/7QlcrA9K5TLdz7eDFAItpJLH/hLh6eiyjPveg== + dependencies: + "@jupyterlab/apputils" "^3.1.6" + "@jupyterlab/codemirror" "^3.1.6" + "@jupyterlab/coreutils" "^5.1.6" + "@jupyterlab/nbformat" "^3.1.6" + "@jupyterlab/observables" "^4.1.6" + "@jupyterlab/rendermime-interfaces" "^3.1.6" + "@jupyterlab/services" "^6.1.6" + "@jupyterlab/translation" "^3.1.6" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" @@ -430,16 +451,16 @@ lodash.escape "^4.0.1" marked "^2.0.0" -"@jupyterlab/services@^6.1.0-alpha.13": - version "6.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.1.0-alpha.13.tgz#76b9e6470a92ae7943682ec452e3055817d9b40d" - integrity sha512-0uCRub6Yt2smXd3cmq3TzUQ/w7vDjvS4VctStD+tJTNOoGZ9Iuo0AemI8tjf6p4ymuWOKti0mkcOU4HuN5nzgA== +"@jupyterlab/services@^6.1.6": + version "6.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.1.6.tgz#b9e65fa1f252547c76ff7227e809f5da5c8013bb" + integrity sha512-pRjAwwI/LofsWvnPvmrSKvY0ZKT5QNBOtus39Rp1/yHKJh8gbNJcuSaHl1UoVI6WzrLG3ekIsa9at2rRtTYb1g== dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.13" - "@jupyterlab/nbformat" "^3.1.0-alpha.13" - "@jupyterlab/observables" "^4.1.0-alpha.13" - "@jupyterlab/settingregistry" "^3.1.0-alpha.13" - "@jupyterlab/statedb" "^3.1.0-alpha.13" + "@jupyterlab/coreutils" "^5.1.6" + "@jupyterlab/nbformat" "^3.1.6" + "@jupyterlab/observables" "^4.1.6" + "@jupyterlab/settingregistry" "^3.1.6" + "@jupyterlab/statedb" "^3.1.6" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -448,12 +469,12 @@ node-fetch "^2.6.0" ws "^7.4.6" -"@jupyterlab/settingregistry@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.1.0-alpha.13.tgz#5ec0d08ea863d25451ecdf0d5734fdc6864b46a3" - integrity sha512-rwW5Ye3YzAPIt04kK0F4BmMBlaLg5vImT03+r+VdHZ0cjkcMSdrbmsQaGCaDX/vKhhOUVW+s5gqh1gFGyron9w== +"@jupyterlab/settingregistry@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.1.6.tgz#4fb853171b1b83a19f6b6a226e46a786bb56d742" + integrity sha512-tvwssvN/wEyYGvSjgNeIyPO/Hgom6n3s0TY4cGwFh1eBCYel/hZX6Bf1p1M6cGAZkj8v1CUBXUoQKEKs1aHLqw== dependencies: - "@jupyterlab/statedb" "^3.1.0-alpha.13" + "@jupyterlab/statedb" "^3.1.6" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -461,22 +482,22 @@ ajv "^6.12.3" json5 "^2.1.1" -"@jupyterlab/shared-models@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/shared-models/-/shared-models-3.1.0-alpha.13.tgz#a5160e62b587ff6e4686d368c4a24e4cc468e794" - integrity sha512-SCbC+tYzuIO7le/THvboXyp7gntFJGXircYwCD7FGcWKsOrVd+oC7zvH6HMaXQy2J/H8SUExiiQcB9yesZJq1g== +"@jupyterlab/shared-models@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/shared-models/-/shared-models-3.1.6.tgz#39d9471c7f4b84ed5574c8f3b09f8dd0557e0cf3" + integrity sha512-eH51Q+7d4dK8wsA01+6r/YBd/rkv7liHeI/BOZeWyVJ0PmbDDNU6+v0Z8WOd6aYJU9IzVzBjVK7A5qFqh+eAkw== dependencies: - "@jupyterlab/nbformat" "^3.1.0-alpha.13" + "@jupyterlab/nbformat" "^3.1.6" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/signaling" "^1.4.3" y-protocols "^1.0.5" yjs "^13.5.6" -"@jupyterlab/statedb@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.1.0-alpha.13.tgz#3773fa946c75ceecfabc065e0ec5f3bd5ee7b4ec" - integrity sha512-B2rPY1reJE6Bw9whhwvuu/uH+1PAAshIiRbAEwnNNPpeWrq8ah6fgTeasyt8VHFD/P10y8Sy+37BHHeOFsBJXQ== +"@jupyterlab/statedb@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.1.6.tgz#31aae066fb6bc81bb53bd0692a1217d80672078d" + integrity sha512-LXlcJedgt8KS18JUw/R8ZoQU3kGK2k2xK/grXGA3fZayj4FYzftbakGi7+e+IY2MsUydUrQYgSACrwgBgxWMUA== dependencies: "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -484,17 +505,16 @@ "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" -"@jupyterlab/statusbar@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.1.0-alpha.13.tgz#8aaec8f5afc84fbf7b0fcff9ba0fdd4f5d28c473" - integrity sha512-unqIg4MJCy6rD4MRK49I4WaQ8O+llF36C/BEaAIgqBSm54/pp9NUUdNZ/9zDZn9lfGf+7hGER6DNdxOIsUpqvQ== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.13" - "@jupyterlab/codeeditor" "^3.1.0-alpha.13" - "@jupyterlab/coreutils" "^5.1.0-alpha.13" - "@jupyterlab/services" "^6.1.0-alpha.13" - "@jupyterlab/translation" "^3.1.0-alpha.13" - "@jupyterlab/ui-components" "^3.1.0-alpha.13" +"@jupyterlab/statusbar@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.1.6.tgz#7b232cd7cdf3b0a9b0e4c451ec3e9e4099a773bf" + integrity sha512-6HYw7nX0BCFmdodTb7GLbf6R17ZLHOywMUhRTpU5OtNXiPH3SQgkHjcvDGS3kGf8nJkk0Hg1nwXC/w/1JRhRKw== + dependencies: + "@jupyterlab/apputils" "^3.1.6" + "@jupyterlab/codeeditor" "^3.1.6" + "@jupyterlab/services" "^6.1.6" + "@jupyterlab/translation" "^3.1.6" + "@jupyterlab/ui-components" "^3.1.6" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -505,25 +525,27 @@ react "^17.0.1" typestyle "^2.0.4" -"@jupyterlab/translation@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.1.0-alpha.13.tgz#cd3d89f39481a3d70cbe9816cf5df019d97a935b" - integrity sha512-zl6sueDgpFZYwuz6bek3WYoT9SsB9UEtmd8X6dIAtDMt/9nzwUg2TB37hDXpBH0EP9lYuywk/gc3cMM11TEzOQ== +"@jupyterlab/translation@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.1.6.tgz#8b901f159815d572369589c698a15914136348d5" + integrity sha512-U8cj20leHmgtC++mBMNeeIO8dEVt+hufd2+BPBoaA7k+ZRDa3oTFxsriZqpMxFgB5Bhw0eaNmcUEiX7ZFliasA== dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.13" - "@jupyterlab/services" "^6.1.0-alpha.13" - "@jupyterlab/statedb" "^3.1.0-alpha.13" + "@jupyterlab/coreutils" "^5.1.6" + "@jupyterlab/services" "^6.1.6" + "@jupyterlab/statedb" "^3.1.6" "@lumino/coreutils" "^1.5.3" -"@jupyterlab/ui-components@^3.1.0-alpha.13": - version "3.1.0-alpha.13" - resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.1.0-alpha.13.tgz#28a7079539b7971b9ac47fd3db85e00c31cf87d9" - integrity sha512-wz0H0khN3H3Qklo6ls3+VG9Ju1Um3LqmTl6TGz1utZZm9nvUFIUes3xBXmSgu0B0Z+v6+mbPat44FW5gNmphbw== +"@jupyterlab/ui-components@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.1.6.tgz#f0b37d54d7aa15c8b69d78174f8c7ed0616dc6f4" + integrity sha512-K5dXn2B0Agk8D8a1e87BklDQgBjLvB0nBLdCvFgVf/HN1i6YQrTJqiVZamNDKU1ZlgF9EZNOlSy50HT9tdCnSQ== dependencies: "@blueprintjs/core" "^3.36.0" "@blueprintjs/select" "^3.15.0" - "@jupyterlab/coreutils" "^5.1.0-alpha.13" + "@jupyterlab/coreutils" "^5.1.6" + "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" "@lumino/signaling" "^1.4.3" "@lumino/virtualdom" "^1.8.0" "@lumino/widgets" "^1.19.0" @@ -531,143 +553,143 @@ react-dom "^17.0.1" typestyle "^2.0.4" -"@lumino/algorithm@^1.3.3", "@lumino/algorithm@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.6.0.tgz#771e7896cd94e660f9b58a52f80e1bb255de1d41" - integrity sha512-NMOcm5Yr9nXz5gokS/K4jHBbUMQYBkvDXl1n51XWdcz0LY+oGuIKPhjazhUgmbNRehzdZBj5hMMd1+htYWeVKQ== +"@lumino/algorithm@^1.3.3", "@lumino/algorithm@^1.6.2": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.6.2.tgz#c68968d04857f7fbe9f4856ab3078aee7694868e" + integrity sha512-4QlhUduCKjoHqWjYRayDZvd5kgrj2EWm4ELFC1IIcQ8SuIUPCmyAIsIVx5l76lI3hUkmHvVl411s9qWLQuiX+A== "@lumino/application@^1.16.0": - version "1.20.0" - resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.20.0.tgz#b50ca4180bc400589fdfcfcaab08c4af937fccd0" - integrity sha512-FAoQcq4L3ZswTK0lWfLKnG1ecG26cwqjzg2fyoBeuWGBi1TG9BYjFBdV7ErTFMxW8jE1CLOLuxsZaKFLNErcKA== - dependencies: - "@lumino/commands" "^1.15.0" - "@lumino/coreutils" "^1.8.0" - "@lumino/widgets" "^1.23.0" - -"@lumino/collections@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.6.0.tgz#7d3e94cee26409b0cd719c1934bdda471e6a5662" - integrity sha512-ZETm0/xF0oUHV03sOXNOfFI1EEpS317HvN5n+fZBJvCNZIrJkWmKD8QuxcfwHb7AChKUhXlVHhDbWlb1LKnd7g== - dependencies: - "@lumino/algorithm" "^1.6.0" - -"@lumino/commands@^1.12.0", "@lumino/commands@^1.15.0": - version "1.15.0" - resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.15.0.tgz#06eb94fb4b34cad59f35b1fcaf473e8d2047f779" - integrity sha512-JOE68KfbR9xw5YTfcwo+9E0PSWidifEMAcOC/aXd7iSzfsCRknMTcMQIUGL277IU7J7CJvoe10DUE5QKwTmX+g== - dependencies: - "@lumino/algorithm" "^1.6.0" - "@lumino/coreutils" "^1.8.0" - "@lumino/disposable" "^1.7.0" - "@lumino/domutils" "^1.5.0" - "@lumino/keyboard" "^1.5.0" - "@lumino/signaling" "^1.7.0" - "@lumino/virtualdom" "^1.11.0" - -"@lumino/coreutils@^1.5.3", "@lumino/coreutils@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.8.0.tgz#4feb3ccbfbc3efc8e395a90f22b5a938fbad959a" - integrity sha512-OvCsaASUqOE7R6Dxngyk4/b5QMOjyRUNxuZuuL+fx+JvGKZFZ/B2c9LYtAJ9mDmQ1BQiGNV/qSpL4o7x8PCfjw== - -"@lumino/disposable@^1.4.3", "@lumino/disposable@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.7.0.tgz#539463490cb42e8d2dc46b5ff7cc291f4f1a8d07" - integrity sha512-3mWi11ko3XVY63BPwvys7MXrbFddA2i+gp72d0wAKM2NDDUopVPikMHhJpjGJcw+otjahzXYiTewxPDEau9dYg== + version "1.23.2" + resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.23.2.tgz#01ffb2900af9c9dc54d6b732c398668849bae93c" + integrity sha512-7LusRW6jXbqZCCd2HEn7AmKoE/SZYRkmrJXbEuSZks7oCnV+LE/JBKrMtRcMCHQzk7auiqFVb8JS8T/Tb/U0DA== + dependencies: + "@lumino/commands" "^1.15.2" + "@lumino/coreutils" "^1.8.2" + "@lumino/widgets" "^1.26.2" + +"@lumino/collections@^1.6.2": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.6.2.tgz#9cbfd54e81aefbc1693d8dbc2b3b45a2c011b8cd" + integrity sha512-keStZ5Vv4iua6EZAY1RouDmGe7JJq46NQSbw96Q1AvLqFPwLl4ll3cyPBlnIgMsJqeHUP/UZ7ef7Akf744pLBQ== + dependencies: + "@lumino/algorithm" "^1.6.2" + +"@lumino/commands@^1.12.0", "@lumino/commands@^1.15.2": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.15.2.tgz#9543f80667fac50765466f4470c3915c580360de" + integrity sha512-H4FUJxF4lM3hPkGtM8mgmqEOwOUZtOkcqacH6Emcw7dyeniic1q1czsQYxuXixz1hrBO/2t51qZGwo2ehq/RnA== + dependencies: + "@lumino/algorithm" "^1.6.2" + "@lumino/coreutils" "^1.8.2" + "@lumino/disposable" "^1.7.2" + "@lumino/domutils" "^1.5.2" + "@lumino/keyboard" "^1.5.2" + "@lumino/signaling" "^1.7.2" + "@lumino/virtualdom" "^1.11.2" + +"@lumino/coreutils@^1.5.3", "@lumino/coreutils@^1.8.2": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.8.2.tgz#e303a3b12a319f0f304b835269ca85319346d219" + integrity sha512-IPlQEU9yJ/ysaEYiTqb25xKnKgAANiRy5huC2fPWuJtNfhjl8fyWsj8knTJC6XmI09NzhP8ZAyMAZjTFPYnyaw== + +"@lumino/disposable@^1.4.3", "@lumino/disposable@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.7.2.tgz#86c30bee7335bc624881195501de58a074195b34" + integrity sha512-3+1sVpO0X4Ymh/VcHgy/0aM6VrWecSPDDtJnyEzrKJNvVj582FnD3Ftej5hx5yc4DGjOJ4U7Ue7zkIKc+vOxTw== dependencies: - "@lumino/algorithm" "^1.6.0" - "@lumino/signaling" "^1.7.0" + "@lumino/algorithm" "^1.6.2" + "@lumino/signaling" "^1.7.2" -"@lumino/domutils@^1.2.3", "@lumino/domutils@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.5.0.tgz#fdba0cfe404b4817e63aa064f63b3c965655e76e" - integrity sha512-dZ0Aa+/qhvfPc1aa5kX4LLGE3B6BW1XmJa0R1XVCEpAFY3cZiujuQWmhYHJtZPrOiqn0UtioT2OpqnWdtCWc0A== +"@lumino/domutils@^1.2.3", "@lumino/domutils@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.5.2.tgz#a0130967b95aa4a81cd7abc21db98e2f3416ce51" + integrity sha512-2Hd3Bp6BObNwOaejeJUOAQcwjqSwORuDCmyJyqKu/5MnX7aQqPAMFtnNvVufcKnxV8lBej3fhV3zZYfChYlFqA== -"@lumino/dragdrop@^1.10.0", "@lumino/dragdrop@^1.7.1": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.10.0.tgz#2fddacfee055e660dd33dd9a3cfbd8fbba811673" - integrity sha512-A3cNLcp09zygOprWmLTkLZCQYNq3dJfN+mhni4IZizqCTkKbTCEzo2/IwoCWvy+ABKft8d/A9Y40wFW6yJ9OyA== +"@lumino/dragdrop@^1.10.2", "@lumino/dragdrop@^1.7.1": + version "1.10.2" + resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.10.2.tgz#09f539873c8a35e0394aa4b4aca3db2825d57cf1" + integrity sha512-QWichLgP5FW1UBF5wMADXxgXy/gz3ZGgpZKdaTyrkEN/Zwpz7FquH0f/JE1XXKkmlmHi/x8YTfHX50ImHXTwsQ== dependencies: - "@lumino/coreutils" "^1.8.0" - "@lumino/disposable" "^1.7.0" + "@lumino/coreutils" "^1.8.2" + "@lumino/disposable" "^1.7.2" -"@lumino/keyboard@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.5.0.tgz#c12213822dd2645c412e8689aecd4a2726113ac6" - integrity sha512-/uF9xqHYVbIkser2Q6UIv7VWrzThr1fxAmSOShjSoKGocL0XHeaBaCOMezSaVxnJ1wm1ciNdhMsjscVM8Inp7g== +"@lumino/keyboard@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.5.2.tgz#1d937cf071b16a6dbed3a2a5876e0892a504f9df" + integrity sha512-/tme1dGnLkqWuTTBkvOaywDCgt2dyYwIcVo3eCTHpJIG4pPactGlMyd7PypgT3NXBlNxEvZnQSGzYCOXP1/2IQ== -"@lumino/messaging@^1.4.3", "@lumino/messaging@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.7.0.tgz#32542f9e9a266fd5b3f71842f70cfe141e016d93" - integrity sha512-QYWf9QGIGD0Oes104zw7mVln4S8yRije2mZhNNRBjkYcDuQlPW+eRSuC5LwAMsFnGymBlUPwPbKOUEO2RbhAtg== +"@lumino/messaging@^1.4.3", "@lumino/messaging@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.7.2.tgz#568f38d4fa5ef3cecef24cde3f85e582b038f5ed" + integrity sha512-nkhNiL4ZZEmf5M+zxPJgV7M+LJ3wUHMX1hnFsqcvrBkLBPkqZVowDzEcr0oN4UOUuHaMJehjdiN9SG0T5chosQ== dependencies: - "@lumino/algorithm" "^1.6.0" - "@lumino/collections" "^1.6.0" + "@lumino/algorithm" "^1.6.2" + "@lumino/collections" "^1.6.2" "@lumino/polling@^1.3.3": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.6.0.tgz#64f40bba4602fe9eceb9f3fae8f3647831e5b7e9" - integrity sha512-jG1nqw6UO5XEN7QamOr6iDW8WvYeZQcBVRjM38fszz62dwJ/VGPvO2hlNl6QWWIfCynbJudms0LQm+z0BT1EdA== + version "1.6.2" + resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.6.2.tgz#8bc7019538e2b03de2d553bf0eb67c7abeeaad61" + integrity sha512-jO26SptvND+au6cueV/YVBuq7a8Tu23x7BCm7bWwlJajZq5VXLm0g7ktOgcz7TLsL31Lvc/jN/HPAxd2YAS0Vw== dependencies: - "@lumino/coreutils" "^1.8.0" - "@lumino/disposable" "^1.7.0" - "@lumino/signaling" "^1.7.0" + "@lumino/coreutils" "^1.8.2" + "@lumino/disposable" "^1.7.2" + "@lumino/signaling" "^1.7.2" -"@lumino/properties@^1.2.3", "@lumino/properties@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.5.0.tgz#7e8638e84c51bb110c5a69f91ca8b0e40b2c3fca" - integrity sha512-YqpJE6/1Wkjrie0E+ypu+yzd55B5RlvKYMnQs3Ox+SrJsnNBhA6Oj44EhVf8SUTuHgn1t/mm+LvbswKN5RM4+g== - -"@lumino/signaling@^1.4.3", "@lumino/signaling@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.7.0.tgz#76da4738bf8f19e7da6de1d457a54220e2140670" - integrity sha512-a5kd11Sf04jTfpzxCr7TOBD2o5YvItA4IGwiOoG+QR6sPR0Rwmcf47fPItqXo5st58iNIblC3F+c264N+Me+gg== - dependencies: - "@lumino/algorithm" "^1.6.0" +"@lumino/properties@^1.2.3", "@lumino/properties@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.5.2.tgz#aa3211552ddb2e9566f90cd75f074be53879ad6e" + integrity sha512-rrlbO3mi6wXe5OJxnqhRv8oQdGdjqPwtP3a6M+AdHXG71yV1R5DQjE6ez1z9nLJP5wYFlITcxqOU+xq7FDLFGQ== -"@lumino/virtualdom@^1.11.0", "@lumino/virtualdom@^1.8.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.11.0.tgz#468b4d28a07e2b8988dc583b4aab40e37dc6955e" - integrity sha512-G0sIx4pLYbgJ4w+SIgsCYQgKP/GBrWgjh8wcumD6XpaYZNivJv4c01xITYYlh7FU61jZmMWMrxtZztArNRDSqg== - dependencies: - "@lumino/algorithm" "^1.6.0" - -"@lumino/widgets@^1.19.0", "@lumino/widgets@^1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.23.0.tgz#096c7574de75fa67b32bcb914c5dae290fbee6f3" - integrity sha512-0Akt9ESgc06SJ3EJG3VK1Liw+AAjRWkKMfm8VUTwT/1QJYYGZ8kfHNO97mkBLv+0EkLEkZIeaQb8fIoU6vh7bw== - dependencies: - "@lumino/algorithm" "^1.6.0" - "@lumino/commands" "^1.15.0" - "@lumino/coreutils" "^1.8.0" - "@lumino/disposable" "^1.7.0" - "@lumino/domutils" "^1.5.0" - "@lumino/dragdrop" "^1.10.0" - "@lumino/keyboard" "^1.5.0" - "@lumino/messaging" "^1.7.0" - "@lumino/properties" "^1.5.0" - "@lumino/signaling" "^1.7.0" - "@lumino/virtualdom" "^1.11.0" - -"@nodelib/fs.scandir@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" - integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== - dependencies: - "@nodelib/fs.stat" "2.0.4" +"@lumino/signaling@^1.4.3", "@lumino/signaling@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.7.2.tgz#76eec02b6edf333b804b232fdd6cc5aff669076a" + integrity sha512-HnEDrvLPE3HiLzZuXMU2uULp5f15QsPl6pwOpl8q9D/dhKVytPH3j04J+pl4SO4NlbtTktIWqVvSDWl2WbMWZg== + dependencies: + "@lumino/algorithm" "^1.6.2" + +"@lumino/virtualdom@^1.11.2", "@lumino/virtualdom@^1.8.0": + version "1.11.2" + resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.11.2.tgz#131be2b9f2fcb443722cc07779be8af3cf675abc" + integrity sha512-lTvQObA5FBglIuD85aZo7bF1VtkrxB5jEQ8PxlnsVSH/lgE6SWA9syfCIByMxhFSne4y5yD7SbICUViJF4ht+w== + dependencies: + "@lumino/algorithm" "^1.6.2" + +"@lumino/widgets@^1.19.0", "@lumino/widgets@^1.26.2": + version "1.26.2" + resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.26.2.tgz#f8833af7112558d270e1931b05a55c6341ffae7f" + integrity sha512-/UfEGznReDUXyKw0qlaDgNRMO2sNJ/vJ3kajznGMep+FrMVjIHEtMXtUbzlRasyg6CN88zS5G6wD1DdZF3ZtSg== + dependencies: + "@lumino/algorithm" "^1.6.2" + "@lumino/commands" "^1.15.2" + "@lumino/coreutils" "^1.8.2" + "@lumino/disposable" "^1.7.2" + "@lumino/domutils" "^1.5.2" + "@lumino/dragdrop" "^1.10.2" + "@lumino/keyboard" "^1.5.2" + "@lumino/messaging" "^1.7.2" + "@lumino/properties" "^1.5.2" + "@lumino/signaling" "^1.7.2" + "@lumino/virtualdom" "^1.11.2" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" - integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" - integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: - "@nodelib/fs.scandir" "2.1.4" + "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" "@npmcli/move-file@^1.0.1": @@ -691,14 +713,14 @@ defer-to-connect "^1.0.1" "@types/dom4@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/dom4/-/dom4-2.0.1.tgz#506d5781b9bcab81bd9a878b198aec7dee2a6033" - integrity sha512-kSkVAvWmMZiCYtvqjqQEwOmvKwcH+V4uiv3qPQ8pAh1Xl39xggGEo8gHUqV4waYGHezdFw0rKBR8Jt0CrQSDZA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/dom4/-/dom4-2.0.2.tgz#6495303f049689ce936ed328a3e5ede9c51408ee" + integrity sha512-Rt4IC1T7xkCWa0OG1oSsPa0iqnxlDeQqKXZAHrQGLb7wFGncWm85MaxKUjAGejOrUynOgWlFi4c6S6IyJwoK4g== "@types/eslint-scope@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" - integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + version "3.7.1" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" + integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== dependencies: "@types/eslint" "*" "@types/estree" "*" @@ -709,59 +731,59 @@ integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== "@types/eslint@*": - version "7.2.10" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.10.tgz#4b7a9368d46c0f8cd5408c23288a59aa2394d917" - integrity sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ== + version "7.28.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a" + integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.47": - version "0.0.47" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" - integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== +"@types/estree@*", "@types/estree@^0.0.50": + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== "@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + version "7.1.4" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" + integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== dependencies: "@types/minimatch" "*" "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== "@types/minimatch@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" - integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "15.3.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.3.0.tgz#d6fed7d6bc6854306da3dea1af9f874b00783e26" - integrity sha512-8/bnjSZD86ZfpBsDlCIkNXIvm+h6wi9g7IqL+kmFkQ+Wvu3JrasgLElfiPgoo8V8vVfnEi0QVS12gbl94h9YsQ== + version "16.7.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.1.tgz#c6b9198178da504dfca1fd0be9b2e1002f1586f0" + integrity sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A== "@types/prop-types@*": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + version "15.7.4" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" + integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== "@types/react@^17.0.0": - version "17.0.5" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.5.tgz#3d887570c4489011f75a3fc8f965bf87d09a1bea" - integrity sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw== + version "17.0.19" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.19.tgz#8f2a85e8180a43b57966b237d26a29481dacc991" + integrity sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" "@types/scheduler@*": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" - integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== "@types/source-list-map@*": version "0.1.2" @@ -769,9 +791,9 @@ integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== "@types/webpack-sources@^0.1.5": - version "0.1.8" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.8.tgz#078d75410435993ec8a0a2855e88706f3f751f81" - integrity sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA== + version "0.1.9" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.9.tgz#da69b06eb34f6432e6658acb5a6893c55d983920" + integrity sha512-bvzMnzqoK16PQIC8AYHNdW45eREJQMd6WG/msQWX5V2+vZmODCOPb4TJcbgRljTZZTwTM4wUMcsI8FftNA7new== dependencies: "@types/node" "*" "@types/source-list-map" "*" @@ -820,143 +842,191 @@ semver "^7.3.2" tsutils "^3.17.1" -"@webassemblyjs/ast@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" - integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== +"@verdaccio/commons-api@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio/commons-api/-/commons-api-10.0.0.tgz#2d7de8722f94181f1a71891fe91198a7c14e6dea" + integrity sha512-UC8wrRI9FvqjfDeB1RijF7aVI0JJhCOI8RkEDibCT/JD8zVngphrNmgSWcjo8Es3lRiu7NugWXDSuggCCeCfUg== dependencies: - "@webassemblyjs/helper-numbers" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - -"@webassemblyjs/floating-point-hex-parser@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" - integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== + http-errors "1.8.0" + http-status-codes "1.4.0" -"@webassemblyjs/helper-api-error@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" - integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== +"@verdaccio/file-locking@10.0.0", "@verdaccio/file-locking@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio/file-locking/-/file-locking-10.0.0.tgz#3d476a6ba28207c795d49828438e7335166c1cfc" + integrity sha512-2tQUbJF3tQ3CY9grAlpovaF/zu8G56CBYMaeHwMBHo9rAmsJI9i7LfliHGS6Jygbs8vd0cOCPT7vl2CL9T8upw== + dependencies: + lockfile "1.0.4" + +"@verdaccio/local-storage@10.0.6": + version "10.0.6" + resolved "https://registry.yarnpkg.com/@verdaccio/local-storage/-/local-storage-10.0.6.tgz#be485a8107ad84206cf80702d325ca47b7f22f68" + integrity sha512-YEImOMUL56lziS/N3o1YzoOcVGZXpyZclGSonw7XQ1lKQEvEhU06V2+tIdjPgtqIOuH9ZKdPeBsBuN7ILa2qzQ== + dependencies: + "@verdaccio/commons-api" "10.0.0" + "@verdaccio/file-locking" "10.0.0" + "@verdaccio/streams" "10.0.0" + async "3.2.0" + debug "4.3.1" + lodash "4.17.21" + lowdb "1.0.0" + mkdirp "1.0.4" + +"@verdaccio/readme@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio/readme/-/readme-10.0.0.tgz#f9627c32b309ace311318b98b2c42226823f6cd7" + integrity sha512-OD3dMnRC8SvhgytEzczMBleN+K/3lMqyWw/epeXvolCpCd7mW/Dl5zSR25GiHh/2h3eTKP/HMs4km8gS1MMLgA== + dependencies: + dompurify "^2.2.6" + jsdom "15.2.1" + marked "^2.0.1" -"@webassemblyjs/helper-buffer@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" - integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== +"@verdaccio/streams@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio/streams/-/streams-10.0.0.tgz#8b06e1d6f06e906ebda0f1d4089cdb651a533541" + integrity sha512-PqxxY11HhweN6z1lwfn9ydLCdnOkCPpthMZs+SGCDz8Rt6gOyrjJVslV7o4uobDipjD9+hUPpJHDeO33Qt24uw== -"@webassemblyjs/helper-numbers@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" - integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" +"@verdaccio/ui-theme@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@verdaccio/ui-theme/-/ui-theme-3.1.0.tgz#21108f3c1b97e6db5901509d935e1f4ce475950a" + integrity sha512-NmJOcv25/OtF84YrmYxi31beFde7rt+/y2qlnq0wYR4ZCFRE5TsuqisTVTe1OyJ8D8JwwPMyMSMSMtlMwUfqIQ== + +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" - integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== -"@webassemblyjs/helper-wasm-section@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" - integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" -"@webassemblyjs/ieee754@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" - integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" - integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" - integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== - -"@webassemblyjs/wasm-edit@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" - integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/helper-wasm-section" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-opt" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - "@webassemblyjs/wast-printer" "1.11.0" - -"@webassemblyjs/wasm-gen@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" - integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" - -"@webassemblyjs/wasm-opt@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" - integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - -"@webassemblyjs/wasm-parser@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" - integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" - -"@webassemblyjs/wast-printer@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" - integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.3.tgz#204bcff87cda3ea4810881f7ea96e5f5321b87b9" - integrity sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw== +"@webpack-cli/configtest@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.4.tgz#f03ce6311c0883a83d04569e2c03c6238316d2aa" + integrity sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ== -"@webpack-cli/info@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.4.tgz#7381fd41c9577b2d8f6c2594fad397ef49ad5573" - integrity sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g== +"@webpack-cli/info@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.3.0.tgz#9d78a31101a960997a4acd41ffd9b9300627fe2b" + integrity sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w== dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.4.0.tgz#f84fd07bcacefe56ce762925798871092f0f228e" - integrity sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg== +"@webpack-cli/serve@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.5.2.tgz#ea584b637ff63c5a477f6f21604b5a205b72c9ec" + integrity sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -973,6 +1043,19 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== +JSONStream@1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + abstract-leveldown@^6.2.1: version "6.3.0" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" @@ -995,20 +1078,51 @@ abstract-leveldown@~6.2.1, abstract-leveldown@~6.2.3: level-supports "~1.0.0" xtend "~4.0.0" +accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-import-assertions@^1.7.6: + version "1.7.6" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" + integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== + acorn-jsx@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^6.0.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^7.4.0: +acorn@^7.1.0, acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.1: - version "8.2.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0" - integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg== +acorn@^8.4.1: + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== aggregate-error@^3.0.0: version "3.1.0" @@ -1034,9 +1148,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.1: - version "8.4.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.4.0.tgz#48984fdb2ce225cab15795f0772a8d85669075e4" - integrity sha512-7QD2l6+KBSLwf+7MuYocbWvRPdOu63/trReTLu2KFwkgctnub1auoF+Y1WYcm09CTM7quuscrzqmASaLHC/K4Q== + version "8.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" + integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1074,6 +1188,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +apache-md5@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/apache-md5/-/apache-md5-1.1.2.tgz#ee49736b639b4f108b6e9e626c6da99306b41692" + integrity sha1-7klza2ObTxCLbp5ibG2pkwa0FpI= + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1081,11 +1200,38 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -1096,11 +1242,41 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +async@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + +async@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8" + integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + at-least-node@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -1111,11 +1287,39 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bcryptjs@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" + integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1131,21 +1335,31 @@ braces@^3.0.1: dependencies: fill-range "^7.0.1" +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + browserslist@^4.14.5: - version "4.16.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" - integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== + version "4.16.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" + integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== dependencies: - caniuse-lite "^1.0.30001219" - colorette "^1.2.2" - electron-to-chromium "^1.3.723" + caniuse-lite "^1.0.30001251" + colorette "^1.3.0" + electron-to-chromium "^1.3.811" escalade "^3.1.1" - node-releases "^1.1.71" + node-releases "^1.1.75" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" @@ -1155,10 +1369,20 @@ buffer@^5.5.0, buffer@^5.6.0: base64-js "^1.3.1" ieee754 "^1.1.13" +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + cacache@^15.0.5: - version "15.0.6" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099" - integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w== + version "15.2.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" + integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== dependencies: "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" @@ -1204,10 +1428,10 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== +caniuse-lite@^1.0.30001251: + version "1.0.30001251" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85" + integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A== caniuse-lite@^1.0.30001219: version "1.0.30001230" @@ -1224,9 +1448,9 @@ chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1: supports-color "^5.3.0" chalk@^4.0.0, chalk@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -1273,6 +1497,13 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +clipanion@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/clipanion/-/clipanion-3.0.1.tgz#cba44989fa18a625d7d02800ea98c835e973fc26" + integrity sha512-/ujK3YJ1MGjGr18w99Gl9XZjy4xcC/5bZRJXsgvYG6GbUTO4CTKriC+oUxDbo8G+G/dxDqSJhm8QIDnK6iH6Ig== + dependencies: + typanion "^3.3.1" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -1290,9 +1521,9 @@ clone-response@^1.0.2: mimic-response "^1.0.0" codemirror@~5.61.0: - version "5.61.0" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.61.0.tgz#318e5b034a707207948b92ffc2862195e8fdb08e" - integrity sha512-D3wYH90tYY1BsKlUe0oNj2JAhQ9TepkD51auk3N7q+4uz7A/cgJ5JsWHreT0PqieW1QhOuqxQ2reCXV1YXzecg== + version "5.61.1" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.61.1.tgz#ccfc8a43b8fcfb8b12e8e75b5ffde48d541406e0" + integrity sha512-+D1NZjAucuzE93vJGbAaXzvoBHwp9nJZWWWF9utjv25+5AZUiah6CIlfb4ikG4MoDsFsCG8niiJH5++OO2LgIQ== color-convert@^1.9.0: version "1.9.3" @@ -1318,10 +1549,17 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^1.2.1, colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" commander@^2.20.0: version "2.20.3" @@ -1343,11 +1581,74 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +cookies@0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== + dependencies: + depd "~2.0.0" + keygrip "~1.1.0" + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cors@2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1374,14 +1675,13 @@ crypto@~1.0.1: integrity sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig== css-loader@^5.0.1: - version "5.2.4" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.4.tgz#e985dcbce339812cb6104ef3670f08f9893a1536" - integrity sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw== + version "5.2.7" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" + integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== dependencies: - camelcase "^6.2.0" icss-utils "^5.1.0" loader-utils "^2.0.0" - postcss "^8.2.10" + postcss "^8.2.15" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" @@ -1395,6 +1695,23 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +cssom@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + csstype@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" @@ -1405,13 +1722,56 @@ csstype@^3.0.2, csstype@~3.0.3: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== -debug@^4.0.1, debug@^4.1.1: +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +dayjs@1.10.6: + version "1.10.6" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.6.tgz#288b2aa82f2d8418a6c9d4df5898c0737ad02a63" + integrity sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw== + +debug@2.6.9, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" +debug@^4.0.1, debug@^4.1.1, debug@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" @@ -1436,7 +1796,7 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@^0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -1466,15 +1826,35 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + dependency-graph@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.9.0.tgz#11aed7e203bc8b00f48356d92db27b265c445318" integrity sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w== +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + detect-indent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" - integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== detect-newline@3.1.0: version "3.1.0" @@ -1521,6 +1901,13 @@ domelementtype@^2.0.1, domelementtype@^2.2.0: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + domhandler@^4.0.0, domhandler@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" @@ -1528,10 +1915,15 @@ domhandler@^4.0.0, domhandler@^4.2.0: dependencies: domelementtype "^2.2.0" +dompurify@^2.2.6: + version "2.3.1" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.1.tgz#a47059ca21fd1212d3c8f71fdea6943b8bfbdf6a" + integrity sha512-xGWt+NHAQS+4tpgbOAI08yxW0Pr256Gu/FNE2frZVTbgrBUn8M7tz7/ktS/LZ2MHeGqz6topj0/xY+y8R5FBFw== + domutils@^2.5.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz#2e15c04185d43fb16ae7057cb76433c6edb938b7" - integrity sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA== + version "2.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" + integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== dependencies: dom-serializer "^1.0.1" domelementtype "^2.2.0" @@ -1567,6 +1959,11 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + encoding-down@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" @@ -1604,7 +2001,7 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -envinfo@^7.7.3: +envinfo@7.8.1, envinfo@^7.7.3: version "7.8.1" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== @@ -1624,9 +2021,9 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.18.0-next.2: - version "1.18.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" - integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== + version "1.18.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" + integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -1634,21 +2031,22 @@ es-abstract@^1.18.0-next.2: get-intrinsic "^1.1.1" has "^1.0.3" has-symbols "^1.0.2" + internal-slot "^1.0.3" is-callable "^1.2.3" is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.11.0" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" + unbox-primitive "^1.0.1" -es-module-lexer@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" - integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== +es-module-lexer@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" + integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== es-to-primitive@^1.2.1: version "1.2.1" @@ -1659,11 +2057,52 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@^2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -1674,6 +2113,18 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escodegen@^1.11.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + eslint-config-prettier@^6.10.1: version "6.15.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" @@ -1681,14 +2132,22 @@ eslint-config-prettier@^6.10.1: dependencies: get-stdin "^6.0.0" +eslint-import-resolver-node@0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + eslint-plugin-prettier@^3.1.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7" - integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" + integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== dependencies: prettier-linter-helpers "^1.0.0" -eslint-scope@^5.0.0, eslint-scope@^5.1.1: +eslint-scope@5.1.1, eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -1714,27 +2173,30 @@ eslint-visitor-keys@^2.0.0: integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint@^7.5.0: - version "7.26.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz#d416fdcdcb3236cd8f282065312813f8c13982f6" - integrity sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg== + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.1" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" enquirer "^2.3.5" + escape-string-regexp "^4.0.0" eslint-scope "^5.1.1" eslint-utils "^2.1.0" eslint-visitor-keys "^2.0.0" espree "^7.3.1" esquery "^1.4.0" esutils "^2.0.2" + fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" + glob-parent "^5.1.2" globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" @@ -1743,7 +2205,7 @@ eslint@^7.5.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.21" + lodash.merge "^4.6.2" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -1752,7 +2214,7 @@ eslint@^7.5.0: semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^6.0.4" + table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -1765,7 +2227,7 @@ espree@^7.3.0, espree@^7.3.1: acorn-jsx "^5.3.1" eslint-visitor-keys "^1.3.0" -esprima@^4.0.0: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -1784,7 +2246,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -1799,15 +2261,28 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== execa@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" - integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" get-stream "^6.0.0" @@ -1819,6 +2294,54 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +express@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.5.0.tgz#e93b97ae0cb23f8370380f6107d2d2b7887687ad" + integrity sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q== + dependencies: + type "^2.5.0" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -1828,7 +2351,17 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -fast-deep-equal@^3.1.1: +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -1839,27 +2372,36 @@ fast-diff@^1.1.2: integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== fast-glob@^3.0.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + version "3.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" + glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" + micromatch "^4.0.4" fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-redact@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.0.1.tgz#d6015b971e933d03529b01333ba7f22c29961e92" + integrity sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw== + +fast-safe-stringify@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz#dc2af48c46cf712b683e849b2bbd446b32de936f" + integrity sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag== + fast-xml-parser@^3.19.0: version "3.19.0" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01" @@ -1871,9 +2413,9 @@ fastest-levenshtein@^1.0.12: integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== fastq@^1.6.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== + version "1.12.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" + integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== dependencies: reusify "^1.0.4" @@ -1906,6 +2448,19 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + find-cache-dir@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" @@ -1936,16 +2491,45 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" +flatstr@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" + integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== + flatted@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + version "3.2.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== free-style@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/free-style/-/free-style-3.1.0.tgz#4e2996029534e6b1731611d843437b9e2f473f08" integrity sha512-vJujYSIyT30iDoaoeigNAxX4yB1RUrh+N2ZMhIElMr3BvCuGXOw7XNJMEEJkDUeamK2Rnb/IKFGKRKlTWIGRWA== +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -1987,7 +2571,7 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== @@ -2020,12 +2604,19 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + git-hooks-list@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/git-hooks-list/-/git-hooks-list-1.0.3.tgz#be5baaf78203ce342f2f844a9d2b03dba1b45156" integrity sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ== -glob-parent@^5.0.0, glob-parent@^5.1.0: +glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -2037,6 +2628,17 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.6: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -2049,17 +2651,10 @@ glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globals@^13.6.0: - version "13.8.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" - integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== +globals@^13.6.0, globals@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" + integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== dependencies: type-fest "^0.20.2" @@ -2094,16 +2689,41 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== gud@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== +handlebars@4.7.7: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0, har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -2124,6 +2744,13 @@ has-symbols@^1.0.1, has-symbols@^1.0.2: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -2136,6 +2763,13 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + htmlparser2@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" @@ -2151,12 +2785,59 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" + integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http-status-codes@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-1.4.0.tgz#6e4c15d16ff3a9e2df03b89f3a55e1aae05fb477" + integrity sha512-JrT3ua+WgH8zBD3HEJYbeEgnuQaAnUeRRko/YojPAJjGmIfGD3KPU/asLdsLwKjfxOmQe5nXMQ0pt/7MyapVbQ== + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@^0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -2227,11 +2908,16 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@^2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -2256,17 +2942,37 @@ inquirer@^7.0.0: strip-ansi "^6.0.0" through "^2.3.6" +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + interpret@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-arrayish@^0.2.1: version "0.2.1" @@ -2274,33 +2980,38 @@ is-arrayish@^0.2.1: integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-bigint@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" - integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" is-boolean-object@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" - integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-core-module@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" - integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + version "2.6.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" + integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== dependencies: has "^1.0.3" is-date-object@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" - integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" is-extglob@^2.1.1: version "2.1.1" @@ -2325,9 +3036,11 @@ is-negative-zero@^2.0.1: integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== is-number-object@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" - integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" @@ -2351,23 +3064,30 @@ is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-regex@^1.0.4, is-regex@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" - integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== +is-promise@^2.1.0, is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.0.4, is-regex@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" - has-symbols "^1.0.2" + has-tostringtag "^1.0.0" is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-string@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" - integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" @@ -2376,6 +3096,11 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -2391,7 +3116,12 @@ isomorphic.js@^0.2.4: resolved "https://registry.yarnpkg.com/isomorphic.js/-/isomorphic.js-0.2.4.tgz#24ca374163ae54a7ce3b86ce63b701b91aa84969" integrity sha512-Y4NjZceAwaPXctwsHgNsmfuPxR8lJ3f8X7QTAkhltrX4oGIv+eTlgHLXn4tWysC9zGTi929gapnPp+8F8cg7nA== -jest-worker@^26.5.0, jest-worker@^26.6.2: +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +jest-worker@^26.5.0: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== @@ -2400,11 +3130,27 @@ jest-worker@^26.5.0, jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" +jest-worker@^27.0.2: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" + integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -2413,6 +3159,43 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + xml-name-validator "^3.0.0" + json-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" @@ -2433,11 +3216,21 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -2468,6 +3261,61 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +jsonwebtoken@8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +keygrip@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== + dependencies: + tsscmp "1.0.6" + keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -2480,6 +3328,11 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kleur@4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" + integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + klona@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" @@ -2575,6 +3428,14 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + lib0@^0.2.31, lib0@^0.2.41, lib0@^0.2.42: version "0.2.42" resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.42.tgz#6d8bf1fb8205dec37a953c521c5ee403fd8769b0" @@ -2582,10 +3443,10 @@ lib0@^0.2.31, lib0@^0.2.41, lib0@^0.2.42: dependencies: isomorphic.js "^0.2.4" -license-webpack-plugin@^2.3.11: - version "2.3.18" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.18.tgz#03bfe916634ecb845c0899a37443e6869b08b83c" - integrity sha512-a6tSN07AgKkX9nVntBd9MP7OAzt7gKAcnXOy6xegH5y0012vVPNiglLdR0qrEIagg7TMAGhZi1WONiNOg8pe8w== +license-webpack-plugin@^2.3.14: + version "2.3.21" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.21.tgz#152f5e82d5f51f8bab78905731f2b8042aa5691b" + integrity sha512-rVaYU9TddZN3ao8M/0PrRSCdTp2EW6VQymlgsuScld1vef0Ou7fALx3ePe83KLP3xAEDcPK5fkqUVqGBnbz1zQ== dependencies: "@types/webpack-sources" "^0.1.5" webpack-sources "^1.2.0" @@ -2630,6 +3491,13 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lockfile@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" + integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA== + dependencies: + signal-exit "^3.0.2" + lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -2645,12 +3513,57 @@ lodash.escape@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: +lodash@4, lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -2662,6 +3575,17 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lowdb@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz#5243be6b22786ccce30e50c9a33eac36b20c8064" + integrity sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ== + dependencies: + graceful-fs "^4.1.3" + is-promise "^2.1.0" + lodash "4" + pify "^3.0.0" + steno "^0.4.1" + lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -2672,18 +3596,37 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^6.0.0: +lru-cache@6.0.0, lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= + dependencies: + es5-ext "~0.10.2" + ltgt@^2.1.2: version "2.2.1" resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= +lunr-mutable-indexes@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/lunr-mutable-indexes/-/lunr-mutable-indexes-2.3.2.tgz#864253489735d598c5140f3fb75c0a5c8be2e98c" + integrity sha512-Han6cdWAPPFM7C2AigS2Ofl3XjAT0yVMrUixodJEpyg71zCtZ2yzXc3s+suc/OaNt4ca6WJBEzVnEIjxCTwFMw== + dependencies: + lunr ">= 2.3.0 < 2.4.0" + +"lunr@>= 2.3.0 < 2.4.0": + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + make-dir@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -2691,16 +3634,40 @@ make-dir@^3.0.2: dependencies: semver "^6.0.0" -marked@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.3.tgz#3551c4958c4da36897bda2a16812ef1399c8d6b0" - integrity sha512-5otztIIcJfPc2qGTN8cVtOJEjNJZ0jwa46INMagrYfk0EvqtRuEHLsEe0LrFS0/q+ZRKT0+kXK7P2T1AN5lWRA== +marked@2.1.3, marked@^2.0.0, marked@^2.0.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-2.1.3.tgz#bd017cef6431724fd4b27e0657f5ceb14bff3753" + integrity sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memoizee@0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" memorystream@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -2711,7 +3678,12 @@ merge2@^1.2.3, merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.2: +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -2719,17 +3691,27 @@ micromatch@^4.0.2: braces "^3.0.1" picomatch "^2.2.3" -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== +mime-db@1.49.0, "mime-db@>= 1.43.0 < 2": + version "1.49.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== -mime-types@^2.1.27: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.32" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== dependencies: - mime-db "1.47.0" + mime-db "1.49.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== mimic-fn@^2.1.0: version "2.1.0" @@ -2750,7 +3732,7 @@ mini-css-extract-plugin@~1.3.2: schema-utils "^3.0.0" webpack-sources "^1.1.0" -minimatch@^3.0.4, minimatch@~3.0.4: +"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -2798,30 +3780,61 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" -mkdirp@^1.0.3, mkdirp@^1.0.4: +mkdirp@1.0.4, mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + moment@^2.24.0: version "2.29.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + mute-stream@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mv@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI= + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + nanoid@^3.1.23: - version "3.1.23" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" - integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== + version "3.1.25" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" + integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== napi-macros@~2.0.0: version "2.0.0" @@ -2833,11 +3846,31 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -neo-async@^2.6.2: +ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.6.0, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -2895,15 +3928,25 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -object-assign@^4.1.1: +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-inspect@^1.9.0: - version "1.10.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" - integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== object-is@^1.0.1: version "1.1.5" @@ -2928,6 +3971,18 @@ object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -2942,6 +3997,18 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -2959,6 +4026,11 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= +os@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/os/-/os-0.1.2.tgz#f29a50c62908516ba42652de42f7038600cadbc2" + integrity sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ== + p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" @@ -3022,11 +4094,26 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" + integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + parse-srcset@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" integrity sha1-8r0iH2zJcKk42IVWq8WJyqqiveE= +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + path-browserify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" @@ -3053,9 +4140,14 @@ path-key@^3.0.0, path-key@^3.1.0: integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= path-type@^3.0.0: version "3.0.0" @@ -3069,10 +4161,15 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picomatch@^2.2.1, picomatch@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" - integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pidtree@^0.3.0: version "0.3.1" @@ -3084,6 +4181,23 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= +pino-std-serializers@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" + integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== + +pino@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.13.0.tgz#41810b9be213af6f8f7c23a1b17058d880267e7b" + integrity sha512-mRXSTfa34tbfrWqCIp1sUpZLqBhcoaGapoyxfEwaWwJGMpLijlRdDKIQUyvq4M3DUfFH5vEglwSw8POZYwbThA== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.8" + flatstr "^1.0.12" + pino-std-serializers "^3.1.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" + pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -3091,6 +4205,16 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkginfo@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" + integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8= + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + popper.js@^1.14.4, popper.js@^1.16.1: version "1.16.1" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" @@ -3144,18 +4268,28 @@ postcss@^7.0.27: dependencies: colorette "^1.2.2" nanoid "^3.1.23" - source-map "^0.6.1" + source-map-js "^0.6.2" prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= +prettier-bytes@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prettier-bytes/-/prettier-bytes-1.0.4.tgz#994b02aa46f699c50b6257b5faaa7fe2557e62d6" + integrity sha1-mUsCqkb2mcULYle1+qp/4lV+YtY= + prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -3168,10 +4302,17 @@ prettier@^1.19.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -prettier@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" - integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== +prettier@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5" + integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg== + +pretty-ms@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" + integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== + dependencies: + parse-ms "^2.1.0" process@^0.11.10: version "0.11.10" @@ -3197,11 +4338,24 @@ prop-types@^15.6.1, prop-types@^15.6.2: object-assign "^4.1.1" react-is "^16.8.1" +proxy-addr@~2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= +psl@^1.1.24, psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -3215,11 +4369,26 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^2.1.0: +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -3235,6 +4404,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quick-format-unescaped@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz#6d6b66b8207aa2b35eef12be1421bb24c428f652" + integrity sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -3242,6 +4416,21 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + raw-loader@~4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" @@ -3329,16 +4518,16 @@ readable-stream@^3.4.0: util-deprecate "^1.0.1" rechoir@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" - integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== dependencies: resolve "^1.9.0" regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regexp.prototype.flags@^1.2.0: version "1.3.1" @@ -3349,9 +4538,9 @@ regexp.prototype.flags@^1.2.0: define-properties "^1.1.3" regexpp@^3.0.0, regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== registry-auth-token@^4.0.0: version "4.2.1" @@ -3367,6 +4556,74 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +request@2.88.2, request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" @@ -3399,7 +4656,7 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.10.0, resolve@^1.9.0: +resolve@^1.10.0, resolve@^1.13.1, resolve@^1.9.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -3434,6 +4691,13 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto= + dependencies: + glob "^6.0.1" + run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -3453,12 +4717,17 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" -safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -3476,6 +4745,13 @@ sanitize-html@~2.3.3: parse-srcset "^1.0.2" postcss "^8.0.2" +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + scheduler@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" @@ -3493,32 +4769,51 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== +schema-utils@^3.0.0, schema-utils@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== dependencies: - "@types/json-schema" "^7.0.6" + "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: +semver@7.3.5, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" +semver@^6.0.0, semver@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + serialize-javascript@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" @@ -3526,6 +4821,33 @@ serialize-javascript@^5.0.1: dependencies: randombytes "^2.1.0" +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -3562,6 +4884,15 @@ shell-quote@^1.6.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -3581,6 +4912,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +sonic-boom@^1.0.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" + integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== + dependencies: + atomic-sleep "^1.0.0" + flatstr "^1.0.12" + sort-object-keys@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" @@ -3598,11 +4937,16 @@ sort-package-json@~1.44.0: is-plain-obj "2.1.0" sort-object-keys "^1.1.3" -source-list-map@^2.0.0, source-list-map@^2.0.1: +source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" @@ -3643,15 +4987,30 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.8" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.8.tgz#eb1e97ad99b11bf3f82a3b71a0472dd9a00f2ecf" - integrity sha512-NDgA96EnaLSvtbM7trJj+t1LUR3pirkDCcz9nOUlPb5DMBGsH7oES6C3hs3j7R9oHEa1EMvReS/BUAIT5Tcr0g== + version "3.0.10" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" + integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + ssri@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" @@ -3659,6 +5018,23 @@ ssri@^8.0.1: dependencies: minipass "^3.1.1" +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +steno@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz#071105bdfc286e6615c0403c27e9d7b5dcb855cb" + integrity sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs= + dependencies: + graceful-fs "^4.1.3" + string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" @@ -3749,6 +5125,13 @@ supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + svg-url-loader@~6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/svg-url-loader/-/svg-url-loader-6.0.0.tgz#b94861d9f6badfb8ca3e7d3ec4655c1bf732ac5d" @@ -3757,7 +5140,12 @@ svg-url-loader@~6.0.0: file-loader "~6.0.0" loader-utils "~2.0.0" -table@^6.0.4: +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^6.0.9: version "6.7.1" resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== @@ -3775,9 +5163,9 @@ tapable@^2.1.1, tapable@^2.2.0: integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== tar@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + version "6.1.10" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.10.tgz#8a320a74475fba54398fa136cd9883aa8ad11175" + integrity sha512-kvvfiVvjGMxeUNB6MyYv5z7vhfFRwbwCXJAeL0/lnbrttBVqcMOnpHUf0X42LrPMR8mMpgapkJMchFH4FSHzNA== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -3801,22 +5189,22 @@ terser-webpack-plugin@^4.1.0: terser "^5.3.4" webpack-sources "^1.4.3" -terser-webpack-plugin@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.2.tgz#51d295eb7cc56785a67a372575fdc46e42d5c20c" - integrity sha512-6QhDaAiVHIQr5Ab3XUWZyDmrIPCHMiqJVljMF91YKyqwKkL5QHnYMkrMBy96v9Z7ev1hGhSEw1HQZc2p/s5Z8Q== +terser-webpack-plugin@^5.1.3: + version "5.1.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1" + integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== dependencies: - jest-worker "^26.6.2" + jest-worker "^27.0.2" p-limit "^3.1.0" schema-utils "^3.0.0" - serialize-javascript "^5.0.1" + serialize-javascript "^6.0.0" source-map "^0.6.1" terser "^5.7.0" terser@^5.3.4, terser@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" - integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== + version "5.7.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784" + integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -3827,11 +5215,19 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -through@^2.3.6: +"through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -3858,6 +5254,43 @@ to-string-loader@^1.1.6: dependencies: loader-utils "^1.0.0" +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -3868,6 +5301,11 @@ tslib@~1.13.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== +tsscmp@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== + tsutils@^3.17.1: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -3875,6 +5313,23 @@ tsutils@^3.17.1: dependencies: tslib "^1.8.1" +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +typanion@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/typanion/-/typanion-3.3.2.tgz#c31f3b2afb6e8ae74dbd3f96d5b1d8f9745e483e" + integrity sha512-m3v3wtFc6R0wtl0RpEn11bKXIOjS1zch5gmx0zg2G5qfGQ3A9TVZRMSL43O5eFuGXsrgzyvDcGRmSXGP5UqpDQ== + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -3882,6 +5337,13 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -3892,10 +5354,23 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" + integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== typed-styles@^0.0.7: version "0.0.7" @@ -3903,14 +5378,14 @@ typed-styles@^0.0.7: integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== typescript@~3.9.3: - version "3.9.9" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" - integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== + version "3.9.10" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" + integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== typescript@~4.1.3: - version "4.1.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.5.tgz#123a3b214aaff3be32926f0d8f1f6e704eb89a72" - integrity sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA== + version "4.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.6.tgz#1becd85d77567c3c741172339e93ce2e69932138" + integrity sha512-pxnwLxeb/Z5SP80JDRzVjh58KsM6jZHRAOtTpS7sXLS4ogXNKC9ANxHHZqLLeVHZN35jCtI4JdmLLbLiC1kBow== typestyle@^2.0.4: version "2.1.0" @@ -3920,7 +5395,12 @@ typestyle@^2.0.4: csstype "2.6.9" free-style "3.1.0" -unbox-primitive@^1.0.0: +uglify-js@^3.1.4: + version "3.14.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz#e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06" + integrity sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g== + +unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== @@ -3954,6 +5434,16 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unix-crypt-td-js@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz#4912dfad1c8aeb7d20fa0a39e4c31918c1d5d5dd" + integrity sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -3978,9 +5468,9 @@ url-parse-lax@^3.0.0: prepend-http "^2.0.0" url-parse@~1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" - integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== + version "1.5.3" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" + integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -3998,6 +5488,16 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" @@ -4011,6 +5511,107 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validator@13.6.0: + version "13.6.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" + integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verdaccio-audit@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/verdaccio-audit/-/verdaccio-audit-10.0.0.tgz#d3304d923c7f2c28c173a02425208c941f25217b" + integrity sha512-Epsh+C7ZEdq39PR9QeDBTWktbeqc0zOQjMzWte6Ut5Jh6fPLZzxGF8VK8O67B6mnTwLvGy50A1aPVM97Ysh5Rw== + dependencies: + express "4.17.1" + request "2.88.2" + +verdaccio-htpasswd@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/verdaccio-htpasswd/-/verdaccio-htpasswd-10.0.0.tgz#7a7f44e8ed4db40c53deef0f5101f2a16dce4ff1" + integrity sha512-3TKwiLwl8/fbaTDawHvjSYcsyMmdARg58keP/1plv74x+Jw0sC66HbbRwQ/tPO5mqoG0UwoWW+lkO8h/OiWi9w== + dependencies: + "@verdaccio/file-locking" "^10.0.0" + apache-md5 "1.1.2" + bcryptjs "2.4.3" + http-errors "1.8.0" + unix-crypt-td-js "1.1.4" + +verdaccio@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/verdaccio/-/verdaccio-5.1.3.tgz#a8e9d2c4b18a6e6cf01fa4d1f946ddbb89aa3ddd" + integrity sha512-Ub8w6lXaA+3qNnaB2J4JGrDTavZ9z42Mc4NLn+SpFC03UHFOGyG+tEiALhmFLBC8v/jSqPd1W4uAXi/AXKXsjQ== + dependencies: + "@verdaccio/commons-api" "10.0.0" + "@verdaccio/local-storage" "10.0.6" + "@verdaccio/readme" "10.0.0" + "@verdaccio/streams" "10.0.0" + "@verdaccio/ui-theme" "3.1.0" + JSONStream "1.3.5" + async "3.2.1" + body-parser "1.19.0" + clipanion "3.0.1" + compression "1.7.4" + cookies "0.8.0" + cors "2.8.5" + dayjs "1.10.6" + debug "^4.3.2" + envinfo "7.8.1" + eslint-import-resolver-node "0.3.4" + express "4.17.1" + fast-safe-stringify "^2.0.8" + handlebars "4.7.7" + http-errors "1.8.0" + js-yaml "4.1.0" + jsonwebtoken "8.5.1" + kleur "4.1.4" + lodash "4.17.21" + lru-cache "6.0.0" + lunr-mutable-indexes "2.3.2" + marked "2.1.3" + memoizee "0.4.15" + mime "2.5.2" + minimatch "3.0.4" + mkdirp "1.0.4" + mv "2.1.1" + pino "6.13.0" + pkginfo "0.4.1" + prettier-bytes "^1.0.4" + pretty-ms "^7.0.1" + request "2.88.0" + semver "7.3.5" + validator "13.6.0" + verdaccio-audit "10.0.0" + verdaccio-htpasswd "10.0.0" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +w3c-hr-time@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + warning@^4.0.2, warning@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" @@ -4018,23 +5619,28 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watchpack@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" - integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== +watchpack@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + webpack-cli@^4.1.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.7.0.tgz#3195a777f1f802ecda732f6c95d24c0004bc5a35" - integrity sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g== + version "4.8.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.8.0.tgz#5fc3c8b9401d3c8a43e2afceacfa8261962338d1" + integrity sha512-+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.0.3" - "@webpack-cli/info" "^1.2.4" - "@webpack-cli/serve" "^1.4.0" + "@webpack-cli/configtest" "^1.0.4" + "@webpack-cli/info" "^1.3.0" + "@webpack-cli/serve" "^1.5.2" colorette "^1.2.1" commander "^7.0.0" execa "^5.0.0" @@ -4046,9 +5652,9 @@ webpack-cli@^4.1.0: webpack-merge "^5.7.3" webpack-merge@^5.1.2, webpack-merge@^5.7.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" - integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== dependencies: clone-deep "^4.0.1" wildcard "^2.0.0" @@ -4061,30 +5667,28 @@ webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.4.3: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" - integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" +webpack-sources@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d" + integrity sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw== -webpack@^5.3.1: - version "5.37.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.37.0.tgz#2ab00f613faf494504eb2beef278dab7493cc39d" - integrity sha512-yvdhgcI6QkQkDe1hINBAJ1UNevqNGTVaCkD2SSJcB8rcrNNl922RI8i2DXUAuNfANoxwsiXXEA4ZPZI9q2oGLA== +webpack@^5.41.1: + version "5.51.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.51.1.tgz#41bebf38dccab9a89487b16dbe95c22e147aac57" + integrity sha512-xsn3lwqEKoFvqn4JQggPSRxE4dhsRcysWTqYABAZlmavcoTmwlOb9b1N36Inbt/eIispSkuHa80/FJkDTPos1A== dependencies: "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.47" - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/wasm-edit" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - acorn "^8.2.1" + "@types/estree" "^0.0.50" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" enhanced-resolve "^5.8.0" - es-module-lexer "^0.4.0" - eslint-scope "^5.1.1" + es-module-lexer "^0.7.1" + eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" graceful-fs "^4.2.4" @@ -4092,11 +5696,32 @@ webpack@^5.3.1: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.0.0" + schema-utils "^3.1.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.1" - watchpack "^2.0.0" - webpack-sources "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^3.2.0" + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" which-boxed-primitive@^1.0.2: version "1.0.2" @@ -4128,11 +5753,16 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -word-wrap@^1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + worker-loader@^3.0.2: version "3.0.8" resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-3.0.8.tgz#5fc5cda4a3d3163d9c274a4e3a811ce8b60dbb37" @@ -4147,9 +5777,9 @@ wrappy@1: integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== dependencies: async-limiter "~1.0.0" @@ -4164,9 +5794,9 @@ yallist@^4.0.0: integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yjs@^13.5.6: - version "13.5.11" - resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.11.tgz#8f41a61fd0039a8d720a5b3186b8ad319d88563b" - integrity sha512-nJzML0NoSUh+kZLEOssYViPI1ZECv/7rnLk5mhXvhMTnezNAYWAIfNLvo+FHYRhWBojbrutT4d2IAP/IE9Xaog== + version "13.5.12" + resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.12.tgz#7a0cf3119fb368c07243825e989a55de164b3f9c" + integrity sha512-/buy1kh8Ls+t733Lgov9hiNxCsjHSCymTuZNahj2hsPNoGbvnSdDmCz9Z4F19Yr1eUAAXQLJF3q7fiBcvPC6Qg== dependencies: lib0 "^0.2.41" From e95371a42e073085393c0d1faf902354e70ea939 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Tue, 24 Aug 2021 15:52:06 +0200 Subject: [PATCH 16/17] lint --- src/model.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/model.ts b/src/model.ts index ea9d037b..39e7483a 100644 --- a/src/model.ts +++ b/src/model.ts @@ -174,10 +174,10 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { sender: YDrawIO, changes: IDrawIOChange ): void => { - console.debug("State changed:"); + console.debug('State changed:'); if (changes.stateChange) { - changes.stateChange.forEach( state => { - console.debug("State changed:", state); + changes.stateChange.forEach(state => { + console.debug('State changed:', state); if (state.name === 'dirty') { this._stateChanged.emit({ name: 'dirty', @@ -186,7 +186,6 @@ export class DrawIODocumentModel implements DocumentRegistry.IModel { }); } }); - } else { this.dirty = true; this._sharedModelChanged.emit(changes); @@ -370,7 +369,7 @@ export class YDrawIO extends YDocument { * Handle a change to the _mxGraphModel. */ private _stateObserver = (event: Y.YMapEvent): void => { - const stateChange = new Array(); + const stateChange = []; if (event.keysChanged.has('dirty')) { const change = event.changes.keys.get('dirty'); From 26689658cdd8d6019c06a247b44da18168da37e8 Mon Sep 17 00:00:00 2001 From: Carlos Herrero Date: Tue, 24 Aug 2021 16:01:04 +0200 Subject: [PATCH 17/17] Update yarn.lock --- yarn.lock | 114 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 94 insertions(+), 20 deletions(-) diff --git a/yarn.lock b/yarn.lock index 69360064..ef507c13 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1433,10 +1433,10 @@ caniuse-lite@^1.0.30001251: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85" integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A== -caniuse-lite@^1.0.30001219: - version "1.0.30001230" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz#8135c57459854b2240b57a4a6786044bdc5a9f71" - integrity sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ== +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1: version "2.4.2" @@ -1944,10 +1944,30 @@ duplicate-package-checker-webpack-plugin@^3.0.0: lodash "^4.17.4" semver "^5.4.1" -electron-to-chromium@^1.3.723: - version "1.3.739" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.739.tgz#f07756aa92cabd5a6eec6f491525a64fe62f98b9" - integrity sha512-+LPJVRsN7hGZ9EIUUiWCpO7l4E3qBYHNadazlucBfsXBbccDFNKUBAgzE68FnkWGJPwD/AfKhSzL+G+Iqb8A4A== +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.811: + version "1.3.816" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.816.tgz#ab6488b126de92670a6459fe3e746050e0c6276f" + integrity sha512-/AvJPIJldO0NkwkfpUD7u1e4YEGRFBQpFuvl9oGCcVgWOObsZB1loxVGeVUJB9kmvfsBUUChPYdgRzx6+AKNyg== emoji-regex@^8.0.0: version "8.0.0" @@ -3881,10 +3901,15 @@ node-fetch@^2.6.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-releases@^1.1.71: - version "1.1.72" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" - integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== +node-gyp-build@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" + integrity sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ== + +node-releases@^1.1.75: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== normalize-package-data@^2.3.2: version "2.5.0" @@ -4261,10 +4286,10 @@ postcss-value-parser@^4.1.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss@^7.0.27: - version "7.0.36" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" - integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== +postcss@^8.0.2, postcss@^8.2.15: + version "8.3.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" + integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== dependencies: colorette "^1.2.2" nanoid "^3.1.23" @@ -5783,10 +5808,59 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@^7.2.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.0.tgz#0033bafea031fb9df041b2026fc72a571ca44691" - integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw== +ws@^7.0.0, ws@^7.4.6: + version "7.5.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.2, xtend@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y-codemirror@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/y-codemirror/-/y-codemirror-2.1.1.tgz#e841fc3001b719d7fa457dd7a9748205e2874fe9" + integrity sha512-QXHaOkvEJs3pB82dkW1aGfWUd4S1RA1ORtXWtprHClbqBiCOY19VKiojScSTyl8rTaOZ/zblEq+SNH2sd3Umiw== + dependencies: + lib0 "^0.2.41" + +y-leveldb@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/y-leveldb/-/y-leveldb-0.1.0.tgz#8b60c1af020252445875ebc70d52666017bcb038" + integrity sha512-sMuitVrsAUNh+0b66I42nAuW3lCmez171uP4k0ePcTAJ+c+Iw9w4Yq3wwiyrDMFXBEyQSjSF86Inc23wEvWnxw== + dependencies: + level "^6.0.1" + lib0 "^0.2.31" + +y-protocols@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/y-protocols/-/y-protocols-1.0.5.tgz#91d574250060b29fcac8f8eb5e276fbad594245e" + integrity sha512-Wil92b7cGk712lRHDqS4T90IczF6RkcvCwAD0A2OPg+adKmOe+nOiT/N2hvpQIWS3zfjmtL4CPaH5sIW1Hkm/A== + dependencies: + lib0 "^0.2.42" + +y-websocket@^1.3.15: + version "1.3.16" + resolved "https://registry.yarnpkg.com/y-websocket/-/y-websocket-1.3.16.tgz#0ec1a141d593933dfbfba2fb9fa9d95dca332c89" + integrity sha512-538dwNOQeZCpMfhh67y40goxHQZKubjoXtfhQieUF2bIQfHVV44bGFeAiYiBHgwOSRdwp7qG4MmDwU0M3U3vng== + dependencies: + lib0 "^0.2.42" + lodash.debounce "^4.0.8" + y-protocols "^1.0.5" + optionalDependencies: + ws "^6.2.1" + y-leveldb "^0.1.0" yallist@^4.0.0: version "4.0.0"