Merge pull request #27 from bcmi-labs/electron-4x-menu

Several UI enhancements
This commit is contained in:
Jan Bicker 2019-06-26 09:02:14 +02:00 committed by GitHub
commit 75ef8ea987
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 777 additions and 276 deletions

View File

@ -31,7 +31,10 @@
"frontend": { "frontend": {
"config": { "config": {
"applicationName": "Arduino-PoC", "applicationName": "Arduino-PoC",
"defaultTheme": "arduino-theme" "defaultTheme": "arduino-theme",
"preferences": {
"editor.autoSave": "on"
}
} }
} }
} }

View File

@ -34,7 +34,10 @@
"frontend": { "frontend": {
"config": { "config": {
"applicationName": "Arduino-PoC", "applicationName": "Arduino-PoC",
"defaultTheme": "arduino-theme" "defaultTheme": "arduino-theme",
"preferences": {
"editor.autoSave": "on"
}
} }
} }
} }

View File

@ -12,6 +12,23 @@ export namespace ArduinoCommands {
label: 'Upload Sketch' label: 'Upload Sketch'
} }
export const SHOW_OPEN_CONTEXT_MENU: Command = {
id: 'arduino-show-open-context-menu',
label: 'Open Sketch'
}
export const OPEN_FILE_NAVIGATOR: Command = {
id: 'arduino-open-file-navigator'
}
export const OPEN_SKETCH: Command = {
id: 'arduino-open-file'
}
export const SAVE_SKETCH: Command = {
id: 'arduino-save-file'
}
export const NEW_SKETCH: Command = { export const NEW_SKETCH: Command = {
id: "arduino-new-sketch", id: "arduino-new-sketch",
label: 'New Sketch', label: 'New Sketch',

View File

@ -1,15 +1,67 @@
import { injectable } from "inversify"; import { injectable, inject } from "inversify";
import { MenuContribution, MenuModelRegistry } from "@theia/core"; import { MenuContribution, MenuModelRegistry, MenuPath, CommandRegistry, Command } from "@theia/core";
import { CommonMenus } from "@theia/core/lib/browser"; import { CommonMenus } from "@theia/core/lib/browser";
import { ArduinoCommands } from "./arduino-commands"; import { ArduinoCommands } from "./arduino-commands";
import { SketchesService, Sketch } from "../common/protocol/sketches-service";
import { AWorkspaceService } from "./arduino-workspace-service";
export namespace ArduinoOpenSketchContextMenu {
export const PATH: MenuPath = ['arduino-open-sketch-context-menu'];
export const OPEN_GROUP: MenuPath = [...PATH, '1_open'];
export const WS_SKETCHES_GROUP: MenuPath = [...PATH, '2_sketches'];
export const EXAMPLE_SKETCHES_GROUP: MenuPath = [...PATH, '3_examples'];
}
@injectable() @injectable()
export class ArduinoFileMenuContribution implements MenuContribution { export class ArduinoFileMenuContribution implements MenuContribution {
@inject(CommandRegistry)
protected readonly commands: CommandRegistry;
@inject(SketchesService)
protected readonly sketches: SketchesService;
constructor(
@inject(AWorkspaceService) protected readonly workspaceService: AWorkspaceService,
@inject(MenuModelRegistry) protected readonly menuRegistry: MenuModelRegistry) {
workspaceService.onWorkspaceChanged(() => {
if (this.workspaceService.workspace) {
this.registerSketchesInMenu(menuRegistry);
}
})
}
protected registerSketchesInMenu(registry: MenuModelRegistry) {
this.getWorkspaceSketches().then(sketches => {
sketches.forEach(sketch => {
const command: Command = {
id: 'openSketch' + sketch.name
}
this.commands.registerCommand(command, {
execute: () => this.commands.executeCommand(ArduinoCommands.OPEN_SKETCH.id, sketch)
});
registry.registerMenuAction(ArduinoOpenSketchContextMenu.WS_SKETCHES_GROUP, {
commandId: command.id,
label: sketch.name
});
})
})
}
protected async getWorkspaceSketches(): Promise<Sketch[]> {
const sketches = this.sketches.getSketches(this.workspaceService.workspace);
return sketches;
}
registerMenus(registry: MenuModelRegistry) { registerMenus(registry: MenuModelRegistry) {
registry.registerMenuAction([...CommonMenus.FILE, '0_new_sletch'], { registry.registerMenuAction([...CommonMenus.FILE, '0_new_sletch'], {
commandId: ArduinoCommands.NEW_SKETCH.id commandId: ArduinoCommands.NEW_SKETCH.id
}) })
}
registry.registerMenuAction(ArduinoOpenSketchContextMenu.OPEN_GROUP, {
commandId: ArduinoCommands.OPEN_FILE_NAVIGATOR.id,
label: 'Open...'
});
}
} }

View File

@ -4,7 +4,6 @@ import URI from '@theia/core/lib/common/uri';
import { EditorWidget } from '@theia/editor/lib/browser/editor-widget'; import { EditorWidget } from '@theia/editor/lib/browser/editor-widget';
import { MessageService } from '@theia/core/lib/common/message-service'; import { MessageService } from '@theia/core/lib/common/message-service';
import { CommandContribution, CommandRegistry } from '@theia/core/lib/common/command'; import { CommandContribution, CommandRegistry } from '@theia/core/lib/common/command';
import { DefaultFrontendApplicationContribution } from '@theia/core/lib/browser/frontend-application';
import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar'; import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
import { BoardsService } from '../common/protocol/boards-service'; import { BoardsService } from '../common/protocol/boards-service';
import { ArduinoCommands } from './arduino-commands'; import { ArduinoCommands } from './arduino-commands';
@ -15,15 +14,22 @@ import { ToolOutputServiceClient } from '../common/protocol/tool-output-service'
import { QuickPickService } from '@theia/core/lib/common/quick-pick-service'; import { QuickPickService } from '@theia/core/lib/common/quick-pick-service';
import { BoardsListWidgetFrontendContribution } from './boards/boards-widget-frontend-contribution'; import { BoardsListWidgetFrontendContribution } from './boards/boards-widget-frontend-contribution';
import { BoardsNotificationService } from './boards-notification-service'; import { BoardsNotificationService } from './boards-notification-service';
import { WorkspaceRootUriAwareCommandHandler } from '@theia/workspace/lib/browser/workspace-commands'; import { WorkspaceRootUriAwareCommandHandler, WorkspaceCommands } from '@theia/workspace/lib/browser/workspace-commands';
import { SelectionService } from '@theia/core'; import { SelectionService } from '@theia/core';
import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service'; import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
import { SketchFactory } from './sketch-factory'; import { SketchFactory } from './sketch-factory';
import { ArduinoToolbar } from './toolbar/arduino-toolbar'; import { ArduinoToolbar } from './toolbar/arduino-toolbar';
import { EditorManager } from '@theia/editor/lib/browser'; import { EditorManager } from '@theia/editor/lib/browser';
import { ContextMenuRenderer, OpenerService, Widget } from '@theia/core/lib/browser';
import { OpenFileDialogProps, FileDialogService } from '@theia/filesystem/lib/browser/file-dialog';
import { FileSystem } from '@theia/filesystem/lib/common';
import { ArduinoOpenSketchContextMenu } from './arduino-file-menu';
import { Sketch, SketchesService } from '../common/protocol/sketches-service';
import { WindowService } from '@theia/core/lib/browser/window/window-service';
import { CommonCommands } from '@theia/core/lib/browser/common-frontend-contribution'
@injectable() @injectable()
export class ArduinoFrontendContribution extends DefaultFrontendApplicationContribution implements TabBarToolbarContribution, CommandContribution { export class ArduinoFrontendContribution implements TabBarToolbarContribution, CommandContribution {
@inject(MessageService) @inject(MessageService)
protected readonly messageService: MessageService; protected readonly messageService: MessageService;
@ -61,6 +67,24 @@ export class ArduinoFrontendContribution extends DefaultFrontendApplicationContr
@inject(EditorManager) @inject(EditorManager)
protected readonly editorManager: EditorManager; protected readonly editorManager: EditorManager;
@inject(ContextMenuRenderer)
protected readonly contextMenuRenderer: ContextMenuRenderer;
@inject(FileDialogService)
protected readonly fileDialogService: FileDialogService;
@inject(FileSystem)
protected readonly fileSystem: FileSystem;
@inject(OpenerService)
protected readonly openerService: OpenerService;
@inject(WindowService)
protected readonly windowService: WindowService;
@inject(SketchesService)
protected readonly sketches: SketchesService;
@postConstruct() @postConstruct()
protected async init(): Promise<void> { protected async init(): Promise<void> {
// This is a hack. Otherwise, the backend services won't bind. // This is a hack. Otherwise, the backend services won't bind.
@ -72,18 +96,31 @@ export class ArduinoFrontendContribution extends DefaultFrontendApplicationContr
id: ArduinoCommands.VERIFY.id, id: ArduinoCommands.VERIFY.id,
command: ArduinoCommands.VERIFY.id, command: ArduinoCommands.VERIFY.id,
tooltip: 'Verify', tooltip: 'Verify',
group: 'arduino',
text: '$(check)' text: '$(check)'
}); });
registry.registerItem({ registry.registerItem({
id: ArduinoCommands.UPLOAD.id, id: ArduinoCommands.UPLOAD.id,
command: ArduinoCommands.UPLOAD.id, command: ArduinoCommands.UPLOAD.id,
tooltip: 'Upload', tooltip: 'Upload',
group: 'arduino',
text: '$(arrow-right)' text: '$(arrow-right)'
}); });
registry.registerItem({
id: ArduinoCommands.SHOW_OPEN_CONTEXT_MENU.id,
command: ArduinoCommands.SHOW_OPEN_CONTEXT_MENU.id,
tooltip: 'Open',
text: '$(arrow-up)'
});
registry.registerItem({
id: ArduinoCommands.SAVE_SKETCH.id,
command: ArduinoCommands.SAVE_SKETCH.id,
tooltip: 'Save',
text: '$(arrow-down)'
});
registry.registerItem({ registry.registerItem({
id: ConnectedBoards.TOOLBAR_ID, id: ConnectedBoards.TOOLBAR_ID,
// render: () => <BoardsToolBarItem
// onNoBoardsInstalled={this.onNoBoardsInstalled.bind(this)}
// onUnknownBoard={this.onUnknownBoard.bind(this)} />,
render: () => <ConnectedBoards render: () => <ConnectedBoards
boardsService={this.boardService} boardsService={this.boardService}
boardsNotificationService={this.boardsNotificationService} boardsNotificationService={this.boardsNotificationService}
@ -137,6 +174,36 @@ export class ArduinoFrontendContribution extends DefaultFrontendApplicationContr
} }
} }
}); });
registry.registerCommand(ArduinoCommands.SHOW_OPEN_CONTEXT_MENU, {
isVisible: widget => this.isArduinoToolbar(widget),
isEnabled: widget => this.isArduinoToolbar(widget),
execute: async (widget: Widget, event: React.MouseEvent<HTMLElement>) => {
const el = (event.target as HTMLElement).parentElement;
if (el) {
this.contextMenuRenderer.render(ArduinoOpenSketchContextMenu.PATH, {
x: el.getBoundingClientRect().left,
y: el.getBoundingClientRect().top + el.offsetHeight
});
}
}
});
registry.registerCommand(ArduinoCommands.OPEN_FILE_NAVIGATOR, {
isEnabled: () => true,
execute: () => this.doOpenFile()
})
registry.registerCommand(ArduinoCommands.OPEN_SKETCH, {
isEnabled: () => true,
execute: async (sketch: Sketch) => {
this.openSketchFilesInNewWindow(sketch.uri);
}
})
registry.registerCommand(ArduinoCommands.SAVE_SKETCH, {
isEnabled: widget => this.isArduinoToolbar(widget),
isVisible: widget => this.isArduinoToolbar(widget),
execute: async (sketch: Sketch) => {
registry.executeCommand(CommonCommands.SAVE_ALL.id);
}
})
registry.registerCommand(ArduinoCommands.NEW_SKETCH, new WorkspaceRootUriAwareCommandHandler(this.workspaceService, this.selectionService, { registry.registerCommand(ArduinoCommands.NEW_SKETCH, new WorkspaceRootUriAwareCommandHandler(this.workspaceService, this.selectionService, {
execute: async uri => { execute: async uri => {
try { try {
@ -157,6 +224,49 @@ export class ArduinoFrontendContribution extends DefaultFrontendApplicationContr
}) })
} }
protected async openSketchFilesInNewWindow(uri: string) {
const location = new URL(window.location.href);
location.searchParams.set('sketch', uri);
this.windowService.openNewWindow(location.toString());
}
async openSketchFiles(uri: string) {
const fileStat = await this.fileSystem.getFileStat(uri);
if (fileStat) {
const sketchFiles = await this.sketches.getSketchFiles(fileStat);
sketchFiles.forEach(sketchFile => {
const uri = new URI(sketchFile);
this.editorManager.open(uri);
});
}
}
/**
* Opens a file after prompting the `Open File` dialog. Resolves to `undefined`, if
* - the workspace root is not set,
* - the file to open does not exist, or
* - it was not a file, but a directory.
*
* Otherwise, resolves to the URI of the file.
*/
protected async doOpenFile(): Promise<URI | undefined> {
const props: OpenFileDialogProps = {
title: WorkspaceCommands.OPEN_FILE.dialogLabel,
canSelectFolders: false,
canSelectFiles: true
};
const [rootStat] = await this.workspaceService.roots;
const destinationFileUri = await this.fileDialogService.showOpenDialog(props, rootStat);
if (destinationFileUri) {
const destinationFile = await this.fileSystem.getFileStat(destinationFileUri.toString());
if (destinationFile && !destinationFile.isDirectory) {
await this.openSketchFilesInNewWindow(destinationFileUri.toString());
return destinationFileUri;
}
}
return undefined;
}
protected getCurrentWidget(): EditorWidget | undefined { protected getCurrentWidget(): EditorWidget | undefined {
let widget = this.editorManager.currentEditor; let widget = this.editorManager.currentEditor;
if (!widget) { if (!widget) {

View File

@ -5,13 +5,14 @@ import { CommandContribution } from '@theia/core/lib/common/command';
import { bindViewContribution } from '@theia/core/lib/browser/shell/view-contribution'; import { bindViewContribution } from '@theia/core/lib/browser/shell/view-contribution';
import { TabBarToolbarContribution } from '@theia/core/lib/browser/shell/tab-bar-toolbar'; import { TabBarToolbarContribution } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
import { WebSocketConnectionProvider } from '@theia/core/lib/browser/messaging/ws-connection-provider'; import { WebSocketConnectionProvider } from '@theia/core/lib/browser/messaging/ws-connection-provider';
import { FrontendApplicationContribution } from '@theia/core/lib/browser/frontend-application' import { FrontendApplicationContribution, FrontendApplication } from '@theia/core/lib/browser/frontend-application'
import { LanguageGrammarDefinitionContribution } from '@theia/monaco/lib/browser/textmate'; import { LanguageGrammarDefinitionContribution } from '@theia/monaco/lib/browser/textmate';
import { LibraryListWidget } from './library/library-list-widget'; import { LibraryListWidget } from './library/library-list-widget';
import { ArduinoFrontendContribution } from './arduino-frontend-contribution'; import { ArduinoFrontendContribution } from './arduino-frontend-contribution';
import { ArduinoLanguageGrammarContribution } from './language/arduino-language-grammar-contribution'; import { ArduinoLanguageGrammarContribution } from './language/arduino-language-grammar-contribution';
import { LibraryService, LibraryServicePath } from '../common/protocol/library-service'; import { LibraryService, LibraryServicePath } from '../common/protocol/library-service';
import { BoardsService, BoardsServicePath } from '../common/protocol/boards-service'; import { BoardsService, BoardsServicePath } from '../common/protocol/boards-service';
import { SketchesService, SketchesServicePath } from '../common/protocol/sketches-service';
import { LibraryListWidgetFrontendContribution } from './library/list-widget-frontend-contribution'; import { LibraryListWidgetFrontendContribution } from './library/list-widget-frontend-contribution';
import { CoreService, CoreServicePath } from '../common/protocol/core-service'; import { CoreService, CoreServicePath } from '../common/protocol/core-service';
import { BoardsListWidget } from './boards/boards-list-widget'; import { BoardsListWidget } from './boards/boards-list-widget';
@ -44,12 +45,16 @@ import { MonacoStatusBarContribution } from '@theia/monaco/lib/browser/monaco-st
import { SilentMonacoStatusBarContribution } from './customization/silent-monaco-status-bar-contribution'; import { SilentMonacoStatusBarContribution } from './customization/silent-monaco-status-bar-contribution';
import { ApplicationShell } from '@theia/core/lib/browser'; import { ApplicationShell } from '@theia/core/lib/browser';
import { CustomApplicationShell } from './customization/custom-application-shell'; import { CustomApplicationShell } from './customization/custom-application-shell';
import { CustomFrontendApplication } from './customization/custom-frontend-application';
import { EditorWidgetFactory } from '@theia/editor/lib/browser/editor-widget-factory';
import { CustomEditorWidgetFactory } from './customization/custom-editor-widget-factory';
export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Unbind, isBound: interfaces.IsBound, rebind: interfaces.Rebind) => { export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Unbind, isBound: interfaces.IsBound, rebind: interfaces.Rebind) => {
// Commands and toolbar items // Commands and toolbar items
bind(ArduinoFrontendContribution).toSelf().inSingletonScope(); bind(ArduinoFrontendContribution).toSelf().inSingletonScope();
bind(CommandContribution).toService(ArduinoFrontendContribution); bind(CommandContribution).toService(ArduinoFrontendContribution);
bind(TabBarToolbarContribution).toService(ArduinoFrontendContribution); bind(TabBarToolbarContribution).toService(ArduinoFrontendContribution);
bind(FrontendApplicationContribution).toService(ArduinoFrontendContribution);
bind(MenuContribution).to(ArduinoFileMenuContribution).inSingletonScope(); bind(MenuContribution).to(ArduinoFileMenuContribution).inSingletonScope();
bind(ArduinoToolbarContribution).toSelf().inSingletonScope(); bind(ArduinoToolbarContribution).toSelf().inSingletonScope();
@ -70,6 +75,9 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un
})); }));
bind(FrontendApplicationContribution).toService(LibraryListWidgetFrontendContribution); bind(FrontendApplicationContribution).toService(LibraryListWidgetFrontendContribution);
// Sketch list service
bind(SketchesService).toDynamicValue(context => WebSocketConnectionProvider.createProxy(context.container, SketchesServicePath)).inSingletonScope();
// Boards Notification service for updating boards list // Boards Notification service for updating boards list
// TODO (post-PoC): move this to boards service/backend // TODO (post-PoC): move this to boards service/backend
bind(BoardsNotificationService).toSelf().inSingletonScope(); bind(BoardsNotificationService).toSelf().inSingletonScope();
@ -106,9 +114,11 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un
container.get(CoreService); container.get(CoreService);
container.get(LibraryService); container.get(LibraryService);
container.get(BoardsService); container.get(BoardsService);
container.get(SketchesService);
return workspaceServiceExt; return workspaceServiceExt;
}); });
bind(AWorkspaceService).toSelf().inSingletonScope();
rebind(WorkspaceService).to(AWorkspaceService).inSingletonScope(); rebind(WorkspaceService).to(AWorkspaceService).inSingletonScope();
bind(SketchFactory).toSelf().inSingletonScope(); bind(SketchFactory).toSelf().inSingletonScope();
@ -120,7 +130,6 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un
bind(OutlineViewContribution).to(SilentOutlineViewContribution).inSingletonScope(); bind(OutlineViewContribution).to(SilentOutlineViewContribution).inSingletonScope();
unbind(ProblemContribution); unbind(ProblemContribution);
bind(ProblemContribution).to(SilentProblemContribution).inSingletonScope(); bind(ProblemContribution).to(SilentProblemContribution).inSingletonScope();
unbind(FileNavigatorContribution); unbind(FileNavigatorContribution);
bind(FileNavigatorContribution).to(SilentNavigatorContribution).inSingletonScope(); bind(FileNavigatorContribution).to(SilentNavigatorContribution).inSingletonScope();
unbind(OutputToolbarContribution); unbind(OutputToolbarContribution);
@ -131,4 +140,8 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un
bind(MonacoStatusBarContribution).to(SilentMonacoStatusBarContribution).inSingletonScope(); bind(MonacoStatusBarContribution).to(SilentMonacoStatusBarContribution).inSingletonScope();
unbind(ApplicationShell); unbind(ApplicationShell);
bind(ApplicationShell).to(CustomApplicationShell).inSingletonScope(); bind(ApplicationShell).to(CustomApplicationShell).inSingletonScope();
unbind(FrontendApplication);
bind(FrontendApplication).to(CustomFrontendApplication).inSingletonScope();
unbind(EditorWidgetFactory);
bind(EditorWidgetFactory).to(CustomEditorWidgetFactory).inSingletonScope();
}); });

View File

@ -0,0 +1,38 @@
import * as React from 'react';
import { Board } from '../../common/protocol/boards-service';
export namespace BoardsToolBarItem {
export interface Props {
readonly onNoBoardsInstalled: () => void;
readonly onUnknownBoard: (board: Board) => void;
}
export interface State {
showOpenButton: boolean;
}
}
export class BoardsToolBarItem extends React.Component<BoardsToolBarItem.Props, BoardsToolBarItem.State> {
constructor(props: BoardsToolBarItem.Props) {
super(props);
this.state = {
showOpenButton: false
}
}
render(): React.ReactNode {
return <React.Fragment>
<div className='arduino-boards-toolbar-item-container' onClick={() => this.setState({ showOpenButton: !this.state.showOpenButton })}>
<div className='arduino-boards-toolbar-item'>
<div className='inner-container'>
<div className='label'>Hallo</div>
{this.state.showOpenButton ? <div className='arduino-open-boards-button'> OPEN BOARDS DIALOG </div> : ''}
</div>
</div>
</div>
</React.Fragment>;
}
}

View File

@ -0,0 +1,22 @@
import { injectable } from "inversify";
import { EditorWidgetFactory } from "@theia/editor/lib/browser/editor-widget-factory";
import URI from "@theia/core/lib/common/uri";
import { EditorWidget } from "@theia/editor/lib/browser";
@injectable()
export class CustomEditorWidgetFactory extends EditorWidgetFactory {
protected async createEditor(uri: URI): Promise<EditorWidget> {
const icon = await this.labelProvider.getIcon(uri);
return this.editorProvider(uri).then(textEditor => {
const newEditor = new EditorWidget(textEditor, this.selectionService);
newEditor.id = this.id + ':' + uri.toString();
newEditor.title.closable = false;
newEditor.title.label = this.labelProvider.getName(uri);
newEditor.title.iconClass = icon + ' file-icon';
newEditor.title.caption = this.labelProvider.getLongName(uri);
return newEditor;
});
}
}

View File

@ -0,0 +1,18 @@
import { injectable, inject } from "inversify";
import { FrontendApplication } from "@theia/core/lib/browser";
import { ArduinoFrontendContribution } from "../arduino-frontend-contribution";
@injectable()
export class CustomFrontendApplication extends FrontendApplication {
@inject(ArduinoFrontendContribution)
protected readonly frontendContribution: ArduinoFrontendContribution;
protected async initializeLayout(): Promise<void> {
const location = new URL(window.location.href);
const sketchPath = location.searchParams.get('sketch');
if (sketchPath) {
this.frontendContribution.openSketchFiles(decodeURIComponent(sketchPath));
}
}
}

View File

@ -10,28 +10,41 @@
color: var(--theia-ui-font-color3); color: var(--theia-ui-font-color3);
} }
#arduino-verify.arduino-tool-icon { #arduino-verify.arduino-tool-icon:hover,
background: url(../icons/buttons.svg); #arduino-save-file.arduino-tool-icon:hover,
background-size: 800%; #arduino-show-open-context-menu.arduino-tool-icon:hover,
background-position-x: 141px;
background-position-y: 21px;
}
#arduino-upload.arduino-tool-icon {
background: url(../icons/buttons.svg);
background-size: 800%;
background-position-x: 117px;
background-position-y: 21px;
}
#arduino-verify.arduino-tool-icon:hover {
background-position-y: 45px;
}
#arduino-upload.arduino-tool-icon:hover { #arduino-upload.arduino-tool-icon:hover {
background-position-y: 45px; background-position-y: 45px;
} }
#arduino-save-file {
background: url(../icons/buttons.svg);
background-size: 800%;
background-position-y: 21px;
background-position-x: 44px;
}
#arduino-verify {
background: url(../icons/buttons.svg);
background-size: 800%;
background-position-y: 21px;
background-position-x: 141px;
}
#arduino-upload {
background: url(../icons/buttons.svg);
background-size: 800%;
background-position-y: 21px;
background-position-x: 117px;
}
#arduino-show-open-context-menu {
background: url(../icons/buttons.svg);
background-size: 800%;
background-position-y: 21px;
background-position-x: 69px;
}
.p-TabBar-toolbar .item.arduino-tool-item { .p-TabBar-toolbar .item.arduino-tool-item {
margin-left: 3px; margin-left: 3px;
} }
@ -40,6 +53,25 @@
opacity: 1; opacity: 1;
} }
.arduino-boards-toolbar-item-container {
display: flex;
align-items: center;
}
.arduino-boards-toolbar-item .label {
height: 100%;
display: flex;
align-items: center;
}
.arduino-open-boards-button {
}
.arduino-boards-toolbar-item {
background: white;
height: 18px;
}
.arduino-tool-item.item.connected-boards select { .arduino-tool-item.item.connected-boards select {
line-height: var(--theia-content-line-height); line-height: var(--theia-content-line-height);
font-size: var(--theia-ui-font-size1); font-size: var(--theia-ui-font-size1);

View File

@ -2,7 +2,7 @@ import { FrontendApplicationContribution, FrontendApplication } from "@theia/cor
import { injectable, inject } from "inversify"; import { injectable, inject } from "inversify";
import { ArduinoToolbar } from "./arduino-toolbar"; import { ArduinoToolbar } from "./arduino-toolbar";
import { TabBarToolbarRegistry } from "@theia/core/lib/browser/shell/tab-bar-toolbar"; import { TabBarToolbarRegistry } from "@theia/core/lib/browser/shell/tab-bar-toolbar";
import { CommandRegistry } from "@theia/core/lib/common/command"; import { CommandRegistry } from "@theia/core";
import { LabelParser } from "@theia/core/lib/browser/label-parser"; import { LabelParser } from "@theia/core/lib/browser/label-parser";
@injectable() @injectable()
@ -17,6 +17,7 @@ export class ArduinoToolbarContribution implements FrontendApplicationContributi
this.toolbarWidget = new ArduinoToolbar(tabBarToolBarRegistry, commandRegistry, labelParser); this.toolbarWidget = new ArduinoToolbar(tabBarToolBarRegistry, commandRegistry, labelParser);
} }
onStart(app: FrontendApplication) { onStart(app: FrontendApplication) {
app.shell.addWidget(this.toolbarWidget, { app.shell.addWidget(this.toolbarWidget, {
area: 'top' area: 'top'

View File

@ -1,7 +1,8 @@
import * as React from 'react'; import * as React from 'react';
import { TabBarToolbar, TabBarToolbarRegistry, TabBarToolbarItem, ReactTabBarToolbarItem } from '@theia/core/lib/browser/shell/tab-bar-toolbar'; import { TabBarToolbar, TabBarToolbarRegistry, TabBarToolbarItem, ReactTabBarToolbarItem } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
import { LabelParser } from '@theia/core/lib/browser/label-parser';
import { CommandRegistry } from '@theia/core/lib/common/command'; import { CommandRegistry } from '@theia/core/lib/common/command';
import { ReactWidget } from '@theia/core/lib/browser';
import { LabelParser } from '@theia/core/lib/browser/label-parser';
export const ARDUINO_TOOLBAR_ITEM_CLASS = 'arduino-tool-item'; export const ARDUINO_TOOLBAR_ITEM_CLASS = 'arduino-tool-item';
@ -13,60 +14,71 @@ export namespace ArduinoToolbarComponent {
executeCommand: (e: React.MouseEvent<HTMLElement>) => void executeCommand: (e: React.MouseEvent<HTMLElement>) => void
} }
export interface State { export interface State {
tootip: string tooltip: string
} }
} }
export class ArduinoToolbarComponent extends React.Component<ArduinoToolbarComponent.Props, ArduinoToolbarComponent.State> { export class ArduinoToolbarComponent extends React.Component<ArduinoToolbarComponent.Props, ArduinoToolbarComponent.State> {
constructor(props: ArduinoToolbarComponent.Props) { constructor(props: ArduinoToolbarComponent.Props) {
super(props); super(props);
this.state = {tootip: ''}; this.state = { tooltip: '' };
} }
protected renderItem(item: TabBarToolbarItem): React.ReactNode { protected renderItem = (item: TabBarToolbarItem) => {
let innerText = ''; let innerText = '';
const command = this.props.commands.getCommand(item.command); const command = this.props.commands.getCommand(item.command);
return <React.Fragment> const cls = `${ARDUINO_TOOLBAR_ITEM_CLASS} ${TabBarToolbar.Styles.TAB_BAR_TOOLBAR_ITEM} ${command && this.props.commandIsEnabled(command.id) ? ' enabled' : ''}`
<div key={item.id} return <div key={item.id}
className={`${ARDUINO_TOOLBAR_ITEM_CLASS} className={cls} >
${TabBarToolbar.Styles.TAB_BAR_TOOLBAR_ITEM}
${command && this.props.commandIsEnabled(command.id) ? ' enabled' : ''}`} >
<div <div
key={item.id + '-icon'}
id={item.id} id={item.id}
className='arduino-tool-icon' className={`${item.id} arduino-tool-icon`}
onClick={this.props.executeCommand} onClick={this.props.executeCommand}
onMouseOver={() => this.setState({ tootip: item.tooltip || '' })} onMouseOver={() => this.setState({ tooltip: item.tooltip || '' })}
onMouseOut={() => this.setState({ tootip: '' })} onMouseOut={() => this.setState({ tooltip: '' })}
title={item.tooltip}> title={item.tooltip}>
{innerText} {innerText}
</div> </div>
</div> </div>
</React.Fragment>;
} }
render(): React.ReactNode { render(): React.ReactNode {
return <React.Fragment> return <React.Fragment>
<div className={'arduino-toolbar-tooltip'}>{this.state.tootip}</div> <div key='arduino-toolbar-tooltip' className={'arduino-toolbar-tooltip'}>{this.state.tooltip}</div>
{[...this.props.items].map(item => TabBarToolbarItem.is(item) ? this.renderItem(item) : item.render())} {[...this.props.items].map(item => TabBarToolbarItem.is(item) ? this.renderItem(item) : item.render())}
</React.Fragment>; </React.Fragment>;
} }
} }
export class ArduinoToolbar extends TabBarToolbar { export class ArduinoToolbar extends ReactWidget {
protected items = new Map<string, TabBarToolbarItem | ReactTabBarToolbarItem>();
constructor( constructor(
protected readonly tabBarToolbarRegistry: TabBarToolbarRegistry, protected readonly tabBarToolbarRegistry: TabBarToolbarRegistry,
commands: CommandRegistry, labelParser: LabelParser protected readonly commands: CommandRegistry,
protected readonly labelParser: LabelParser
) { ) {
super(commands, labelParser); super();
this.id = 'arduino-toolbar'; this.id = 'arduino-toolbar';
this.addClass(TabBarToolbar.Styles.TAB_BAR_TOOLBAR);
this.init(); this.init();
this.tabBarToolbarRegistry.onDidChange(() => this.updateToolbar()); this.tabBarToolbarRegistry.onDidChange(() => this.updateToolbar());
} }
protected updateItems(items: Array<TabBarToolbarItem | ReactTabBarToolbarItem>): void {
this.items.clear();
const revItems = items.reverse();
for (const item of revItems) {
this.items.set(item.id, item);
}
this.update();
}
protected updateToolbar(): void { protected updateToolbar(): void {
const items = this ? this.tabBarToolbarRegistry.visibleItems(this) : []; const items = this ? this.tabBarToolbarRegistry.visibleItems(this) : [];
this.updateItems(items, this); this.updateItems(items);
} }
protected init(): void { protected init(): void {
@ -75,6 +87,10 @@ export class ArduinoToolbar extends TabBarToolbar {
} }
protected readonly doCommandIsEnabled = (id: string) => this.commandIsEnabled(id); protected readonly doCommandIsEnabled = (id: string) => this.commandIsEnabled(id);
protected commandIsEnabled(command: string): boolean {
return this.commands.isEnabled(command, this);
}
protected render(): React.ReactNode { protected render(): React.ReactNode {
return <ArduinoToolbarComponent return <ArduinoToolbarComponent
items={[...this.items.values()]} items={[...this.items.values()]}
@ -84,4 +100,10 @@ export class ArduinoToolbar extends TabBarToolbar {
/> />
} }
protected executeCommand = (e: React.MouseEvent<HTMLElement>) => {
const item = this.items.get(e.currentTarget.id);
if (TabBarToolbarItem.is(item)) {
this.commands.executeCommand(item.command, this, e);
}
}
} }

View File

@ -0,0 +1,13 @@
import { FileStat } from "@theia/filesystem/lib/common";
export const SketchesServicePath = '/services/sketches-service';
export const SketchesService = Symbol('SketchesService');
export interface SketchesService {
getSketches(fileStat?: FileStat): Promise<Sketch[]>
getSketchFiles(fileStat: FileStat): Promise<string[]>
}
export interface Sketch {
name: string;
uri: string
}

View File

@ -17,6 +17,8 @@ import { ConnectionHandler, JsonRpcConnectionHandler } from '@theia/core';
import { ToolOutputServiceServerImpl } from './tool-output-service-impl'; import { ToolOutputServiceServerImpl } from './tool-output-service-impl';
import { DefaultWorkspaceServerExt } from './default-workspace-server-ext'; import { DefaultWorkspaceServerExt } from './default-workspace-server-ext';
import { WorkspaceServer } from '@theia/workspace/lib/common'; import { WorkspaceServer } from '@theia/workspace/lib/common';
import { SketchesServiceImpl } from './sketches-service-impl';
import { SketchesService, SketchesServicePath } from '../common/protocol/sketches-service';
export default new ContainerModule((bind, unbind, isBound, rebind) => { export default new ContainerModule((bind, unbind, isBound, rebind) => {
bind(ArduinoDaemon).toSelf().inSingletonScope(); bind(ArduinoDaemon).toSelf().inSingletonScope();
@ -30,6 +32,14 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
}); });
bind(ConnectionContainerModule).toConstantValue(libraryServiceConnectionModule); bind(ConnectionContainerModule).toConstantValue(libraryServiceConnectionModule);
// Sketches service
const sketchesServiceConnectionModule = ConnectionContainerModule.create(({ bind, bindBackendService }) => {
bind(SketchesServiceImpl).toSelf().inSingletonScope();
bind(SketchesService).toService(SketchesServiceImpl);
bindBackendService(SketchesServicePath, SketchesService);
});
bind(ConnectionContainerModule).toConstantValue(sketchesServiceConnectionModule);
// Boards service // Boards service
const boardsServiceConnectionModule = ConnectionContainerModule.create(({ bind, bindBackendService }) => { const boardsServiceConnectionModule = ConnectionContainerModule.create(({ bind, bindBackendService }) => {
bind(BoardsServiceImpl).toSelf().inSingletonScope(); bind(BoardsServiceImpl).toSelf().inSingletonScope();

View File

@ -0,0 +1,77 @@
import { injectable, inject } from "inversify";
import { SketchesService, Sketch } from "../common/protocol/sketches-service";
import URI from "@theia/core/lib/common/uri";
import { FileStat, FileSystem } from "@theia/filesystem/lib/common";
import * as fs from 'fs';
import * as path from 'path';
export const ALLOWED_FILE_EXTENSIONS = [".c", ".cpp", ".h", ".hh", ".hpp", ".s", ".pde", ".ino"];
@injectable()
export class SketchesServiceImpl implements SketchesService {
@inject(FileSystem)
protected readonly filesystem: FileSystem;
async getSketches(fileStat?: FileStat): Promise<Sketch[]> {
const sketches: Sketch[] = [];
if (fileStat && fileStat.isDirectory) {
const uri = new URI(fileStat.uri);
const sketchFolderPath = uri.path.toString()
const files = fs.readdirSync(sketchFolderPath);
files.forEach(file => {
const filePath = path.join(sketchFolderPath, file);
if (this.isSketchFolder(filePath, file)) {
sketches.push({
name: file,
uri: filePath
});
}
});
}
return sketches;
}
/**
* Return all allowed files.
* File extensions: "c", "cpp", "h", "hh", "hpp", "s", "pde", "ino"
*/
async getSketchFiles(sketchFileStat: FileStat): Promise<string[]> {
const files: string[] = [];
const sketchUri = new URI(sketchFileStat.uri);
const sketchPath = sketchUri.path.toString();
if (sketchFileStat.isDirectory && this.isSketchFolder(sketchPath, sketchUri.displayName)) {
const sketchDirContents = fs.readdirSync(sketchPath);
sketchDirContents.forEach(fileName => {
const filePath = path.join(sketchPath, fileName);
if (fs.existsSync(filePath) &&
fs.lstatSync(filePath).isFile() &&
ALLOWED_FILE_EXTENSIONS.indexOf(path.extname(filePath)) !== -1) {
files.push(filePath);
}
});
} else {
const sketchDir = sketchUri.path.dir;
if (this.isSketchFolder(sketchDir.toString(), sketchDir.name)) {
const sketchFolderStat = await this.filesystem.getFileStat(sketchDir.toString());
if (sketchFolderStat) {
const sketchDirContents = await this.getSketchFiles(sketchFolderStat);
files.push(...sketchDirContents);
}
}
}
return files;
}
protected isSketchFolder(path: string, name: string): boolean {
if (fs.existsSync(path) && fs.lstatSync(path).isDirectory()) {
const files = fs.readdirSync(path);
for (let i = 0; i < files.length; i++) {
if (files[i] === name + '.ino') {
return true;
}
}
}
return false;
}
}

524
yarn.lock
View File

@ -725,10 +725,10 @@
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
"@octokit/endpoint@^5.1.0": "@octokit/endpoint@^5.1.0":
version "5.1.5" version "5.2.0"
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.1.5.tgz#a9505b835fae98dde5f4b63e53b1605b63424d1a" resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.2.0.tgz#acd569cb7152549998454aa5658532eb24a0987e"
dependencies: dependencies:
deepmerge "3.2.0" deepmerge "3.3.0"
is-plain-object "^3.0.0" is-plain-object "^3.0.0"
universal-user-agent "^2.1.0" universal-user-agent "^2.1.0"
url-template "^2.0.8" url-template "^2.0.8"
@ -738,15 +738,15 @@
resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-2.2.2.tgz#c0e22067a043e19f96ff9c7832e2a3019f9be75c" resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-2.2.2.tgz#c0e22067a043e19f96ff9c7832e2a3019f9be75c"
"@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2": "@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2":
version "1.0.2" version "1.0.4"
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.0.2.tgz#e6dbc5be13be1041ef8eca9225520982add574cf" resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.0.4.tgz#15e1dc22123ba4a9a4391914d80ec1e5303a23be"
dependencies: dependencies:
deprecation "^2.0.0" deprecation "^2.0.0"
once "^1.4.0" once "^1.4.0"
"@octokit/request@^4.0.1": "@octokit/request@^4.0.1":
version "4.1.0" version "4.1.1"
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-4.1.0.tgz#e85dc377113baf2fe24433af8feb20e8a32e21b0" resolved "https://registry.yarnpkg.com/@octokit/request/-/request-4.1.1.tgz#614262214f48417b4d3b14e047d09a9c8e2f7a09"
dependencies: dependencies:
"@octokit/endpoint" "^5.1.0" "@octokit/endpoint" "^5.1.0"
"@octokit/request-error" "^1.0.1" "@octokit/request-error" "^1.0.1"
@ -757,8 +757,8 @@
universal-user-agent "^2.1.0" universal-user-agent "^2.1.0"
"@octokit/rest@^16.16.0": "@octokit/rest@^16.16.0":
version "16.28.1" version "16.28.2"
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.1.tgz#a10c3d4fe61e994878d66a4c12b9923b18548236" resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.2.tgz#3fc3b8700046ab29ab1e2a4bdf49f89e94f7ba27"
dependencies: dependencies:
"@octokit/request" "^4.0.1" "@octokit/request" "^4.0.1"
"@octokit/request-error" "^1.0.2" "@octokit/request-error" "^1.0.2"
@ -784,13 +784,13 @@
dependencies: dependencies:
"@phosphor/algorithm" "^1.1.3" "@phosphor/algorithm" "^1.1.3"
"@phosphor/commands@^1.6.2": "@phosphor/commands@^1.6.3":
version "1.6.2" version "1.6.3"
resolved "https://registry.yarnpkg.com/@phosphor/commands/-/commands-1.6.2.tgz#f276952d76dcb6f938e5eba746b0d9080d7489ba" resolved "https://registry.yarnpkg.com/@phosphor/commands/-/commands-1.6.3.tgz#d5481cc35dab34d0e60b3e04a64df00e1bbaffbd"
dependencies: dependencies:
"@phosphor/algorithm" "^1.1.3" "@phosphor/algorithm" "^1.1.3"
"@phosphor/coreutils" "^1.3.1" "@phosphor/coreutils" "^1.3.1"
"@phosphor/disposable" "^1.1.3" "@phosphor/disposable" "^1.2.0"
"@phosphor/domutils" "^1.1.3" "@phosphor/domutils" "^1.1.3"
"@phosphor/keyboard" "^1.1.3" "@phosphor/keyboard" "^1.1.3"
"@phosphor/signaling" "^1.2.3" "@phosphor/signaling" "^1.2.3"
@ -799,22 +799,23 @@
version "1.3.1" version "1.3.1"
resolved "https://registry.yarnpkg.com/@phosphor/coreutils/-/coreutils-1.3.1.tgz#441e34f42340f7faa742a88b2a181947a88d7226" resolved "https://registry.yarnpkg.com/@phosphor/coreutils/-/coreutils-1.3.1.tgz#441e34f42340f7faa742a88b2a181947a88d7226"
"@phosphor/disposable@^1.1.3": "@phosphor/disposable@^1.2.0":
version "1.1.3" version "1.2.0"
resolved "https://registry.yarnpkg.com/@phosphor/disposable/-/disposable-1.1.3.tgz#912765c02e2f04b8d56efb26ecd7270207a40f41" resolved "https://registry.yarnpkg.com/@phosphor/disposable/-/disposable-1.2.0.tgz#878b9b5863f2026bbf2935eb600c7fdc97d0d026"
dependencies: dependencies:
"@phosphor/algorithm" "^1.1.3" "@phosphor/algorithm" "^1.1.3"
"@phosphor/signaling" "^1.2.3"
"@phosphor/domutils@^1.1.3": "@phosphor/domutils@^1.1.3":
version "1.1.3" version "1.1.3"
resolved "https://registry.yarnpkg.com/@phosphor/domutils/-/domutils-1.1.3.tgz#5aeeaefb4bbfcc7c0942e5287a29d3c7f2b1a2bc" resolved "https://registry.yarnpkg.com/@phosphor/domutils/-/domutils-1.1.3.tgz#5aeeaefb4bbfcc7c0942e5287a29d3c7f2b1a2bc"
"@phosphor/dragdrop@^1.3.2": "@phosphor/dragdrop@^1.3.3":
version "1.3.2" version "1.3.3"
resolved "https://registry.yarnpkg.com/@phosphor/dragdrop/-/dragdrop-1.3.2.tgz#8f4e77398b881ae34f9529451ce8d07368f3925b" resolved "https://registry.yarnpkg.com/@phosphor/dragdrop/-/dragdrop-1.3.3.tgz#9487d27a6eb8cd54bfe6d91eaffc9d0852817b61"
dependencies: dependencies:
"@phosphor/coreutils" "^1.3.1" "@phosphor/coreutils" "^1.3.1"
"@phosphor/disposable" "^1.1.3" "@phosphor/disposable" "^1.2.0"
"@phosphor/keyboard@^1.1.3": "@phosphor/keyboard@^1.1.3":
version "1.1.3" version "1.1.3"
@ -844,21 +845,27 @@
"@phosphor/algorithm" "^1.1.3" "@phosphor/algorithm" "^1.1.3"
"@phosphor/widgets@^1.5.0": "@phosphor/widgets@^1.5.0":
version "1.7.1" version "1.8.1"
resolved "https://registry.yarnpkg.com/@phosphor/widgets/-/widgets-1.7.1.tgz#7f2abc9c6b2c8844b650dc52d123469b9efccbdd" resolved "https://registry.yarnpkg.com/@phosphor/widgets/-/widgets-1.8.1.tgz#e6398984a37b17b0a55417eab5e3f3517af88186"
dependencies: dependencies:
"@phosphor/algorithm" "^1.1.3" "@phosphor/algorithm" "^1.1.3"
"@phosphor/commands" "^1.6.2" "@phosphor/commands" "^1.6.3"
"@phosphor/coreutils" "^1.3.1" "@phosphor/coreutils" "^1.3.1"
"@phosphor/disposable" "^1.1.3" "@phosphor/disposable" "^1.2.0"
"@phosphor/domutils" "^1.1.3" "@phosphor/domutils" "^1.1.3"
"@phosphor/dragdrop" "^1.3.2" "@phosphor/dragdrop" "^1.3.3"
"@phosphor/keyboard" "^1.1.3" "@phosphor/keyboard" "^1.1.3"
"@phosphor/messaging" "^1.2.3" "@phosphor/messaging" "^1.2.3"
"@phosphor/properties" "^1.1.3" "@phosphor/properties" "^1.1.3"
"@phosphor/signaling" "^1.2.3" "@phosphor/signaling" "^1.2.3"
"@phosphor/virtualdom" "^1.1.3" "@phosphor/virtualdom" "^1.1.3"
"@primer/octicons-react@^9.0.0":
version "9.1.1"
resolved "https://registry.yarnpkg.com/@primer/octicons-react/-/octicons-react-9.1.1.tgz#bee3d091c6ecc179c5e46d4716929b987b07baf7"
dependencies:
prop-types "^15.6.1"
"@sindresorhus/df@^1.0.1": "@sindresorhus/df@^1.0.1":
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/@sindresorhus/df/-/df-1.0.1.tgz#c69b66f52f6fcdd287c807df210305dbaf78500d" resolved "https://registry.yarnpkg.com/@sindresorhus/df/-/df-1.0.1.tgz#c69b66f52f6fcdd287c807df210305dbaf78500d"
@ -873,11 +880,11 @@
version "0.7.0" version "0.7.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd"
"@theia/application-manager@0.8.0-next.b7b8691c": "@theia/application-manager@0.8.0-next.33be284d":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/application-manager/-/application-manager-0.8.0-next.b7b8691c.tgz#fbf4d1e478309dbfa39853e09bc7d0c80a946ccb" resolved "https://registry.yarnpkg.com/@theia/application-manager/-/application-manager-0.8.0-next.33be284d.tgz#044db8ed13e5568868fdce990de90c5f989e1092"
dependencies: dependencies:
"@theia/application-package" "0.8.0-next.b7b8691c" "@theia/application-package" "0.8.0-next.33be284d"
"@types/fs-extra" "^4.0.2" "@types/fs-extra" "^4.0.2"
bunyan "^1.8.10" bunyan "^1.8.10"
circular-dependency-plugin "^5.0.0" circular-dependency-plugin "^5.0.0"
@ -898,9 +905,9 @@
webpack-cli "2.0.12" webpack-cli "2.0.12"
worker-loader "^1.1.1" worker-loader "^1.1.1"
"@theia/application-package@0.8.0-next.b7b8691c": "@theia/application-package@0.8.0-next.33be284d":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/application-package/-/application-package-0.8.0-next.b7b8691c.tgz#4dc28770c00c04fee8466490e6cce499e18b942f" resolved "https://registry.yarnpkg.com/@theia/application-package/-/application-package-0.8.0-next.33be284d.tgz#2ddcffa7745c8644332059629d1cc7716b6121cd"
dependencies: dependencies:
"@types/fs-extra" "^4.0.2" "@types/fs-extra" "^4.0.2"
"@types/request" "^2.0.3" "@types/request" "^2.0.3"
@ -914,17 +921,18 @@
write-json-file "^2.2.0" write-json-file "^2.2.0"
"@theia/cli@next": "@theia/cli@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/cli/-/cli-0.8.0-next.b7b8691c.tgz#eff91f4679b84d52bcae5cabe80acc8ecf309d91" resolved "https://registry.yarnpkg.com/@theia/cli/-/cli-0.8.0-next.33be284d.tgz#5c708f4f5199ee797b6e105d5261ed5d7531b93b"
dependencies: dependencies:
"@theia/application-manager" "0.8.0-next.b7b8691c" "@theia/application-manager" "0.8.0-next.33be284d"
"@theia/core@0.8.0-next.b7b8691c", "@theia/core@next": "@theia/core@0.8.0-next.33be284d", "@theia/core@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/core/-/core-0.8.0-next.b7b8691c.tgz#9277821661b45866a86d21c58bd7d81f59ab1278" resolved "https://registry.yarnpkg.com/@theia/core/-/core-0.8.0-next.33be284d.tgz#9c15fca7ecbb2364a46f53134d474f3c8df99511"
dependencies: dependencies:
"@phosphor/widgets" "^1.5.0" "@phosphor/widgets" "^1.5.0"
"@theia/application-package" "0.8.0-next.b7b8691c" "@primer/octicons-react" "^9.0.0"
"@theia/application-package" "0.8.0-next.33be284d"
"@types/body-parser" "^1.16.4" "@types/body-parser" "^1.16.4"
"@types/bunyan" "^1.8.0" "@types/bunyan" "^1.8.0"
"@types/express" "^4.16.0" "@types/express" "^4.16.0"
@ -949,6 +957,7 @@
nsfw "^1.2.2" nsfw "^1.2.2"
perfect-scrollbar "^1.3.0" perfect-scrollbar "^1.3.0"
react "^16.4.1" react "^16.4.1"
react-autosize-textarea "^7.0.0"
react-dom "^16.4.1" react-dom "^16.4.1"
react-virtualized "^9.20.0" react-virtualized "^9.20.0"
reconnecting-websocket "^3.0.7" reconnecting-websocket "^3.0.7"
@ -960,44 +969,46 @@
ws "^5.2.2" ws "^5.2.2"
yargs "^11.1.0" yargs "^11.1.0"
"@theia/editor@0.8.0-next.b7b8691c", "@theia/editor@next": "@theia/editor@0.8.0-next.33be284d", "@theia/editor@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/editor/-/editor-0.8.0-next.b7b8691c.tgz#38694e557d21f38658b436c7c7006c6eae0605ad" resolved "https://registry.yarnpkg.com/@theia/editor/-/editor-0.8.0-next.33be284d.tgz#5163ee81ed2bd2f8f9cd1098040b5fba349d092d"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/languages" "0.8.0-next.b7b8691c" "@theia/languages" "0.8.0-next.33be284d"
"@theia/variable-resolver" "0.8.0-next.b7b8691c" "@theia/variable-resolver" "0.8.0-next.33be284d"
"@types/base64-arraybuffer" "0.1.0" "@types/base64-arraybuffer" "0.1.0"
base64-arraybuffer "^0.1.5" base64-arraybuffer "^0.1.5"
"@theia/electron@next": "@theia/electron@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/electron/-/electron-0.8.0-next.b7b8691c.tgz#8028a024da95def44bdadf49a4711d8415e9f704" resolved "https://registry.yarnpkg.com/@theia/electron/-/electron-0.8.0-next.33be284d.tgz#9ec2745cd07d7fa505a28781e35f92025928e2b6"
dependencies: dependencies:
electron "^3.1.7" electron "^3.1.7"
electron-download "^4.1.1" electron-download "^4.1.1"
electron-store "^2.0.0" electron-store "^2.0.0"
fix-path "^2.1.0" fix-path "^2.1.0"
native-keymap "^1.2.5" native-keymap "^1.2.5"
node-gyp "^3.6.0"
unzipper "^0.9.11" unzipper "^0.9.11"
yargs "^11.1.0"
"@theia/file-search@next": "@theia/file-search@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/file-search/-/file-search-0.8.0-next.b7b8691c.tgz#ffa6a9410eaedf80ecc976dd042b95742b24a1de" resolved "https://registry.yarnpkg.com/@theia/file-search/-/file-search-0.8.0-next.33be284d.tgz#ca9d0443b832503f4ece8d409171aad76197bbaa"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/editor" "0.8.0-next.b7b8691c" "@theia/editor" "0.8.0-next.33be284d"
"@theia/filesystem" "0.8.0-next.b7b8691c" "@theia/filesystem" "0.8.0-next.33be284d"
"@theia/process" "0.8.0-next.b7b8691c" "@theia/process" "0.8.0-next.33be284d"
"@theia/workspace" "0.8.0-next.b7b8691c" "@theia/workspace" "0.8.0-next.33be284d"
fuzzy "^0.1.3" fuzzy "^0.1.3"
vscode-ripgrep "^1.2.4" vscode-ripgrep "^1.2.4"
"@theia/filesystem@0.8.0-next.b7b8691c", "@theia/filesystem@next": "@theia/filesystem@0.8.0-next.33be284d", "@theia/filesystem@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/filesystem/-/filesystem-0.8.0-next.b7b8691c.tgz#d029c23aa5c3afe360044a4df83354555f096973" resolved "https://registry.yarnpkg.com/@theia/filesystem/-/filesystem-0.8.0-next.33be284d.tgz#6d5fdedb62a610a074ae8c204e8def373897e23a"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@types/body-parser" "^1.17.0" "@types/body-parser" "^1.17.0"
"@types/fs-extra" "^4.0.2" "@types/fs-extra" "^4.0.2"
"@types/mime-types" "^2.1.0" "@types/mime-types" "^2.1.0"
@ -1019,54 +1030,54 @@
uuid "^3.2.1" uuid "^3.2.1"
zip-dir "^1.0.2" zip-dir "^1.0.2"
"@theia/json@0.8.0-next.b7b8691c": "@theia/json@0.8.0-next.33be284d":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/json/-/json-0.8.0-next.b7b8691c.tgz#ab9191414489eeb8f77187e19c8ba195765d14d0" resolved "https://registry.yarnpkg.com/@theia/json/-/json-0.8.0-next.33be284d.tgz#632e5388a0afc3785b1db095652afe9c874a8c2d"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/languages" "0.8.0-next.b7b8691c" "@theia/languages" "0.8.0-next.33be284d"
"@theia/monaco" "0.8.0-next.b7b8691c" "@theia/monaco" "0.8.0-next.33be284d"
vscode-json-languageserver "^1.0.1" vscode-json-languageserver "^1.0.1"
"@theia/languages@0.8.0-next.b7b8691c", "@theia/languages@next": "@theia/languages@0.8.0-next.33be284d", "@theia/languages@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/languages/-/languages-0.8.0-next.b7b8691c.tgz#667b7588469287eadf36a1d61ab3179ad73cabc7" resolved "https://registry.yarnpkg.com/@theia/languages/-/languages-0.8.0-next.33be284d.tgz#0560effb0c8c0f385b6399028c85aab1365b40dc"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/output" "0.8.0-next.b7b8691c" "@theia/output" "0.8.0-next.33be284d"
"@theia/process" "0.8.0-next.b7b8691c" "@theia/process" "0.8.0-next.33be284d"
"@theia/workspace" "0.8.0-next.b7b8691c" "@theia/workspace" "0.8.0-next.33be284d"
"@typefox/monaco-editor-core" "^0.14.6" "@typefox/monaco-editor-core" "^0.14.6"
"@types/uuid" "^3.4.3" "@types/uuid" "^3.4.3"
monaco-languageclient "^0.9.0" monaco-languageclient "^0.9.0"
uuid "^3.2.1" uuid "^3.2.1"
"@theia/markers@0.8.0-next.b7b8691c", "@theia/markers@next": "@theia/markers@0.8.0-next.33be284d", "@theia/markers@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/markers/-/markers-0.8.0-next.b7b8691c.tgz#f209db78546de0940f7c2c4979de22fe62543bd1" resolved "https://registry.yarnpkg.com/@theia/markers/-/markers-0.8.0-next.33be284d.tgz#0fe95816c0c2280565a67e10510dd3cecbbebb1f"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/filesystem" "0.8.0-next.b7b8691c" "@theia/filesystem" "0.8.0-next.33be284d"
"@theia/navigator" "0.8.0-next.b7b8691c" "@theia/navigator" "0.8.0-next.33be284d"
"@theia/workspace" "0.8.0-next.b7b8691c" "@theia/workspace" "0.8.0-next.33be284d"
"@theia/messages@next": "@theia/messages@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/messages/-/messages-0.8.0-next.b7b8691c.tgz#61a42a2b0a848bd6122d00b162650a35394d4a42" resolved "https://registry.yarnpkg.com/@theia/messages/-/messages-0.8.0-next.33be284d.tgz#35dfa0a6202d34b034a39254fac019fad0c09313"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/monaco@0.8.0-next.b7b8691c", "@theia/monaco@next": "@theia/monaco@0.8.0-next.33be284d", "@theia/monaco@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/monaco/-/monaco-0.8.0-next.b7b8691c.tgz#8291e78ea8dee45e696d8d4af65963a0fcb60fb3" resolved "https://registry.yarnpkg.com/@theia/monaco/-/monaco-0.8.0-next.33be284d.tgz#9c6e25d4e52d75183339713d02d94682e552131d"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/editor" "0.8.0-next.b7b8691c" "@theia/editor" "0.8.0-next.33be284d"
"@theia/filesystem" "0.8.0-next.b7b8691c" "@theia/filesystem" "0.8.0-next.33be284d"
"@theia/languages" "0.8.0-next.b7b8691c" "@theia/languages" "0.8.0-next.33be284d"
"@theia/markers" "0.8.0-next.b7b8691c" "@theia/markers" "0.8.0-next.33be284d"
"@theia/outline-view" "0.8.0-next.b7b8691c" "@theia/outline-view" "0.8.0-next.33be284d"
"@theia/workspace" "0.8.0-next.b7b8691c" "@theia/workspace" "0.8.0-next.33be284d"
deepmerge "2.0.1" deepmerge "2.0.1"
jsonc-parser "^2.0.2" jsonc-parser "^2.0.2"
monaco-css "^2.0.1" monaco-css "^2.0.1"
@ -1074,13 +1085,13 @@
onigasm "2.2.1" onigasm "2.2.1"
vscode-textmate "^4.0.1" vscode-textmate "^4.0.1"
"@theia/navigator@0.8.0-next.b7b8691c", "@theia/navigator@next": "@theia/navigator@0.8.0-next.33be284d", "@theia/navigator@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/navigator/-/navigator-0.8.0-next.b7b8691c.tgz#9cbfbad2e11f3c74a118884009fc82afbc1fb8cf" resolved "https://registry.yarnpkg.com/@theia/navigator/-/navigator-0.8.0-next.33be284d.tgz#3ebd63abdebe4c63f9abe886c169c692c5a6ef52"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/filesystem" "0.8.0-next.b7b8691c" "@theia/filesystem" "0.8.0-next.33be284d"
"@theia/workspace" "0.8.0-next.b7b8691c" "@theia/workspace" "0.8.0-next.33be284d"
fuzzy "^0.1.3" fuzzy "^0.1.3"
minimatch "^3.0.4" minimatch "^3.0.4"
@ -1090,78 +1101,78 @@
dependencies: dependencies:
nan "2.10.0" nan "2.10.0"
"@theia/outline-view@0.8.0-next.b7b8691c", "@theia/outline-view@next": "@theia/outline-view@0.8.0-next.33be284d", "@theia/outline-view@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/outline-view/-/outline-view-0.8.0-next.b7b8691c.tgz#68fda5242d98f36dca47d79326fd29ef421bd728" resolved "https://registry.yarnpkg.com/@theia/outline-view/-/outline-view-0.8.0-next.33be284d.tgz#744ce2f3fe93abe1ab36ec6de9ef328fdc9b5f68"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/output@0.8.0-next.b7b8691c": "@theia/output@0.8.0-next.33be284d":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/output/-/output-0.8.0-next.b7b8691c.tgz#38a1f64ba49a7705dbd17e0a2801a0907db2faf8" resolved "https://registry.yarnpkg.com/@theia/output/-/output-0.8.0-next.33be284d.tgz#70b39b2e1e956ff188c8f31cfc4815fa37d0831a"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/preferences@next": "@theia/preferences@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/preferences/-/preferences-0.8.0-next.b7b8691c.tgz#f420cd3dfb1814fb1e6114a06af9c257547763d2" resolved "https://registry.yarnpkg.com/@theia/preferences/-/preferences-0.8.0-next.33be284d.tgz#47e7f64204feddd4a1ae0f59d0b8c6c41ade2e79"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/editor" "0.8.0-next.b7b8691c" "@theia/editor" "0.8.0-next.33be284d"
"@theia/filesystem" "0.8.0-next.b7b8691c" "@theia/filesystem" "0.8.0-next.33be284d"
"@theia/json" "0.8.0-next.b7b8691c" "@theia/json" "0.8.0-next.33be284d"
"@theia/monaco" "0.8.0-next.b7b8691c" "@theia/monaco" "0.8.0-next.33be284d"
"@theia/userstorage" "0.8.0-next.b7b8691c" "@theia/userstorage" "0.8.0-next.33be284d"
"@theia/workspace" "0.8.0-next.b7b8691c" "@theia/workspace" "0.8.0-next.33be284d"
"@types/fs-extra" "^4.0.2" "@types/fs-extra" "^4.0.2"
fs-extra "^4.0.2" fs-extra "^4.0.2"
jsonc-parser "^2.0.2" jsonc-parser "^2.0.2"
"@theia/process@0.8.0-next.b7b8691c", "@theia/process@next": "@theia/process@0.8.0-next.33be284d", "@theia/process@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/process/-/process-0.8.0-next.b7b8691c.tgz#1b9aedeff6221302b7edb20f19a0faa734ee0702" resolved "https://registry.yarnpkg.com/@theia/process/-/process-0.8.0-next.33be284d.tgz#350fa282ae5f2686efdcd391af3e4c4fc178e5f9"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/node-pty" "0.7.8-theia004" "@theia/node-pty" "0.7.8-theia004"
string-argv "^0.1.1" string-argv "^0.1.1"
"@theia/terminal@next": "@theia/terminal@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/terminal/-/terminal-0.8.0-next.b7b8691c.tgz#2bbf4d9d7a37d0258cb6e8915a6e4358f83ddc72" resolved "https://registry.yarnpkg.com/@theia/terminal/-/terminal-0.8.0-next.33be284d.tgz#56d5eaabf0f6e5c03249bb09344e07ffeeb6066f"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/editor" "0.8.0-next.b7b8691c" "@theia/editor" "0.8.0-next.33be284d"
"@theia/filesystem" "0.8.0-next.b7b8691c" "@theia/filesystem" "0.8.0-next.33be284d"
"@theia/process" "0.8.0-next.b7b8691c" "@theia/process" "0.8.0-next.33be284d"
"@theia/workspace" "0.8.0-next.b7b8691c" "@theia/workspace" "0.8.0-next.33be284d"
xterm "3.13.0" xterm "3.13.0"
"@theia/textmate-grammars@next": "@theia/textmate-grammars@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/textmate-grammars/-/textmate-grammars-0.8.0-next.b7b8691c.tgz#32ba9cb47d75d931505cca0e0a81fd35b87e1603" resolved "https://registry.yarnpkg.com/@theia/textmate-grammars/-/textmate-grammars-0.8.0-next.33be284d.tgz#fbc763df13348ee4aee41af1044320f6e71b4dba"
dependencies: dependencies:
"@theia/monaco" "0.8.0-next.b7b8691c" "@theia/monaco" "0.8.0-next.33be284d"
"@theia/userstorage@0.8.0-next.b7b8691c": "@theia/userstorage@0.8.0-next.33be284d":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/userstorage/-/userstorage-0.8.0-next.b7b8691c.tgz#fb9f5c41a833f18812123c3640b0163f124faca4" resolved "https://registry.yarnpkg.com/@theia/userstorage/-/userstorage-0.8.0-next.33be284d.tgz#2649819ba9c3b5d291bf98513e248dbaaf9b77c7"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/filesystem" "0.8.0-next.b7b8691c" "@theia/filesystem" "0.8.0-next.33be284d"
"@theia/variable-resolver@0.8.0-next.b7b8691c": "@theia/variable-resolver@0.8.0-next.33be284d":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/variable-resolver/-/variable-resolver-0.8.0-next.b7b8691c.tgz#12c38b4bb319a23fc1dab6e5c250598ac7346141" resolved "https://registry.yarnpkg.com/@theia/variable-resolver/-/variable-resolver-0.8.0-next.33be284d.tgz#d4b7c6c8d6e93b5d8ae2b498d6d7194a5db493cc"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/workspace@0.8.0-next.b7b8691c", "@theia/workspace@next": "@theia/workspace@0.8.0-next.33be284d", "@theia/workspace@next":
version "0.8.0-next.b7b8691c" version "0.8.0-next.33be284d"
resolved "https://registry.yarnpkg.com/@theia/workspace/-/workspace-0.8.0-next.b7b8691c.tgz#66f8f63c17dcc5ad1a17e95e345cf0db0394b600" resolved "https://registry.yarnpkg.com/@theia/workspace/-/workspace-0.8.0-next.33be284d.tgz#8b6d4802f48f23e615468e756c84535fc56edcfe"
dependencies: dependencies:
"@theia/core" "0.8.0-next.b7b8691c" "@theia/core" "0.8.0-next.33be284d"
"@theia/filesystem" "0.8.0-next.b7b8691c" "@theia/filesystem" "0.8.0-next.33be284d"
"@theia/variable-resolver" "0.8.0-next.b7b8691c" "@theia/variable-resolver" "0.8.0-next.33be284d"
"@types/fs-extra" "^4.0.2" "@types/fs-extra" "^4.0.2"
ajv "^6.5.3" ajv "^6.5.3"
fs-extra "^4.0.2" fs-extra "^4.0.2"
@ -1240,8 +1251,8 @@
"@types/node" "*" "@types/node" "*"
"@types/google-protobuf@^3.2.7": "@types/google-protobuf@^3.2.7":
version "3.2.7" version "3.7.0"
resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.2.7.tgz#9576ed5dd62cdb1c9f952522028a03b7cb2b69b5" resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.7.0.tgz#a71f669992754bcc8e8abbdcc32cec59405ce510"
"@types/lodash.debounce@4.0.3": "@types/lodash.debounce@4.0.3":
version "4.0.3" version "4.0.3"
@ -1272,12 +1283,12 @@
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
"@types/node@*": "@types/node@*":
version "12.0.8" version "12.0.10"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.8.tgz#551466be11b2adc3f3d47156758f610bd9f6b1d8" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.10.tgz#51babf9c7deadd5343620055fc8aff7995c8b031"
"@types/node@^10.12.18": "@types/node@^10.12.18":
version "10.14.9" version "10.14.10"
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.9.tgz#2e8d678039d27943ce53a1913386133227fd9066" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.10.tgz#e491484c6060af8d461e12ec81c0da8a3282b8de"
"@types/node@^8.0.24": "@types/node@^8.0.24":
version "8.10.49" version "8.10.49"
@ -1305,8 +1316,8 @@
"@types/react" "*" "@types/react" "*"
"@types/react@*", "@types/react@^16.4.1": "@types/react@*", "@types/react@^16.4.1":
version "16.8.19" version "16.8.22"
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.8.19.tgz#629154ef05e2e1985cdde94477deefd823ad9be3" resolved "https://registry.yarnpkg.com/@types/react/-/react-16.8.22.tgz#7f18bf5ea0c1cad73c46b6b1c804a3ce0eec6d54"
dependencies: dependencies:
"@types/prop-types" "*" "@types/prop-types" "*"
csstype "^2.2.0" csstype "^2.2.0"
@ -2001,6 +2012,10 @@ autoprefixer@^6.3.1:
postcss "^5.2.16" postcss "^5.2.16"
postcss-value-parser "^3.2.3" postcss-value-parser "^3.2.3"
autosize@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/autosize/-/autosize-4.0.2.tgz#073cfd07c8bf45da4b9fd153437f5bafbba1e4c9"
aws-sign2@~0.7.0: aws-sign2@~0.7.0:
version "0.7.0" version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@ -2679,7 +2694,13 @@ bl@^1.0.0:
readable-stream "^2.3.5" readable-stream "^2.3.5"
safe-buffer "^5.1.1" safe-buffer "^5.1.1"
bluebird@^3.5.1, bluebird@^3.5.3: block-stream@*:
version "0.0.9"
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
dependencies:
inherits "~2.0.0"
bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5:
version "3.5.5" version "3.5.5"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
@ -2895,20 +2916,20 @@ cacache@^10.0.4:
y18n "^4.0.0" y18n "^4.0.0"
cacache@^11.0.1, cacache@^11.3.2: cacache@^11.0.1, cacache@^11.3.2:
version "11.3.2" version "11.3.3"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc"
dependencies: dependencies:
bluebird "^3.5.3" bluebird "^3.5.5"
chownr "^1.1.1" chownr "^1.1.1"
figgy-pudding "^3.5.1" figgy-pudding "^3.5.1"
glob "^7.1.3" glob "^7.1.4"
graceful-fs "^4.1.15" graceful-fs "^4.1.15"
lru-cache "^5.1.1" lru-cache "^5.1.1"
mississippi "^3.0.0" mississippi "^3.0.0"
mkdirp "^0.5.1" mkdirp "^0.5.1"
move-concurrently "^1.0.1" move-concurrently "^1.0.1"
promise-inflight "^1.0.1" promise-inflight "^1.0.1"
rimraf "^2.6.2" rimraf "^2.6.3"
ssri "^6.0.1" ssri "^6.0.1"
unique-filename "^1.1.1" unique-filename "^1.1.1"
y18n "^4.0.0" y18n "^4.0.0"
@ -2996,8 +3017,8 @@ caniuse-api@^1.5.2:
lodash.uniq "^4.5.0" lodash.uniq "^4.5.0"
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000974" version "1.0.30000976"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000974.tgz#ffc887e57e7db7067da203b102071a1d2477c5c8" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000976.tgz#33c6bc12934b003baaa9c1fa9de399122d26e2f9"
caseless@~0.12.0: caseless@~0.12.0:
version "0.12.0" version "0.12.0"
@ -3305,6 +3326,10 @@ component-emitter@^1.2.1:
version "1.3.0" version "1.3.0"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
computed-style@~0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/computed-style/-/computed-style-0.1.4.tgz#7f344fd8584b2e425bedca4a1afc0e300bb05d74"
concat-map@0.0.1: concat-map@0.0.1:
version "0.0.1" version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@ -3797,9 +3822,9 @@ deepmerge@2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.0.1.tgz#25c1c24f110fb914f80001b925264dd77f3f4312" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.0.1.tgz#25c1c24f110fb914f80001b925264dd77f3f4312"
deepmerge@3.2.0: deepmerge@3.3.0:
version "3.2.0" version "3.3.0"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7"
default-compare@^1.0.0: default-compare@^1.0.0:
version "1.0.0" version "1.0.0"
@ -3853,8 +3878,8 @@ depd@~1.1.2:
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
deprecation@^2.0.0: deprecation@^2.0.0:
version "2.0.0" version "2.3.1"
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.0.0.tgz#dd0427cd920c78bc575ec39dab2f22e7c304fb9d" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
des.js@^1.0.0: des.js@^1.0.0:
version "1.0.0" version "1.0.0"
@ -3997,8 +4022,8 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
ejs@^2.5.9: ejs@^2.5.9:
version "2.6.1" version "2.6.2"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.2.tgz#3a32c63d1cd16d11266cd4703b14fec4e74ab4f6"
electron-download@^4.1.0, electron-download@^4.1.1: electron-download@^4.1.0, electron-download@^4.1.1:
version "4.1.1" version "4.1.1"
@ -4035,8 +4060,8 @@ electron-store@^2.0.0:
conf "^2.0.0" conf "^2.0.0"
electron-to-chromium@^1.2.7: electron-to-chromium@^1.2.7:
version "1.3.157" version "1.3.172"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.157.tgz#6211d69e8c4ee18df8c84e74e8644bcafc09486c" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.172.tgz#1eafb3afdc47bcb9c2a2249b2736be352016da4b"
electron@^3.1.7: electron@^3.1.7:
version "3.1.11" version "3.1.11"
@ -4047,8 +4072,8 @@ electron@^3.1.7:
extract-zip "^1.0.3" extract-zip "^1.0.3"
electron@^4.2.0: electron@^4.2.0:
version "4.2.4" version "4.2.5"
resolved "https://registry.yarnpkg.com/electron/-/electron-4.2.4.tgz#68ca7bd4ff2c16b9205549322f0f1cda4ebc9ff9" resolved "https://registry.yarnpkg.com/electron/-/electron-4.2.5.tgz#1d1432c38e2b2190318f7ca30897cdfdcf942e5a"
dependencies: dependencies:
"@types/node" "^10.12.18" "@types/node" "^10.12.18"
electron-download "^4.1.0" electron-download "^4.1.0"
@ -4579,8 +4604,8 @@ flatten@^1.0.2:
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
flow-parser@^0.*: flow-parser@^0.*:
version "0.101.0" version "0.101.1"
resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.101.0.tgz#9d355cd749ef526e99aecb3b195980e2567ab07c" resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.101.1.tgz#06bf99f73c39cfa6ad0c69f1eb101dc7a4bf4f7d"
flush-write-stream@^1.0.0: flush-write-stream@^1.0.0:
version "1.1.1" version "1.1.1"
@ -4710,7 +4735,7 @@ fsevents@^1.2.7:
nan "^2.12.1" nan "^2.12.1"
node-pre-gyp "^0.12.0" node-pre-gyp "^0.12.0"
fstream@^1.0.12: fstream@^1.0.0, fstream@^1.0.12:
version "1.0.12" version "1.0.12"
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045"
dependencies: dependencies:
@ -4905,7 +4930,7 @@ glob@^6.0.1:
once "^1.3.0" once "^1.3.0"
path-is-absolute "^1.0.0" path-is-absolute "^1.0.0"
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
version "7.1.4" version "7.1.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
dependencies: dependencies:
@ -5017,8 +5042,8 @@ grouped-queue@^0.3.3:
lodash "^4.17.2" lodash "^4.17.2"
grpc-tools@^1.7.3: grpc-tools@^1.7.3:
version "1.7.3" version "1.8.0"
resolved "https://registry.yarnpkg.com/grpc-tools/-/grpc-tools-1.7.3.tgz#db682246d30274653db7fb19ba6a4efd04ef2496" resolved "https://registry.yarnpkg.com/grpc-tools/-/grpc-tools-1.8.0.tgz#db438dbd0cfb43d412dc02a767d5fb2193636847"
dependencies: dependencies:
node-pre-gyp "^0.12.0" node-pre-gyp "^0.12.0"
@ -5370,10 +5395,6 @@ indexes-of@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
indexof@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
inflight@^1.0.4: inflight@^1.0.4:
version "1.0.6" version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@ -5385,14 +5406,18 @@ info-symbol@^0.1.0:
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/info-symbol/-/info-symbol-0.1.0.tgz#27841d72867ddb4242cd612d79c10633881c6a78" resolved "https://registry.yarnpkg.com/info-symbol/-/info-symbol-0.1.0.tgz#27841d72867ddb4242cd612d79c10633881c6a78"
inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.3" version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
inherits@2.0.1: inherits@2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
inherits@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: ini@^1.3.2, ini@^1.3.4, ini@~1.3.0:
version "1.3.5" version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
@ -5429,8 +5454,8 @@ inquirer@^5.1.0:
through "^2.3.6" through "^2.3.6"
inquirer@^6.0.0, inquirer@^6.2.0: inquirer@^6.0.0, inquirer@^6.2.0:
version "6.3.1" version "6.4.1"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.4.1.tgz#7bd9e5ab0567cd23b41b0180b68e0cfa82fc3c0b"
dependencies: dependencies:
ansi-escapes "^3.2.0" ansi-escapes "^3.2.0"
chalk "^2.4.2" chalk "^2.4.2"
@ -5904,7 +5929,7 @@ json5@^1.0.1:
dependencies: dependencies:
minimist "^1.2.0" minimist "^1.2.0"
jsonc-parser@^2.0.0-next.1, jsonc-parser@^2.0.2: jsonc-parser@^2.0.0-next.1, jsonc-parser@^2.0.2, jsonc-parser@^2.1.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.1.0.tgz#eb0d0c7a3c33048524ce3574c57c7278fb2f1bf3" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.1.0.tgz#eb0d0c7a3c33048524ce3574c57c7278fb2f1bf3"
@ -6032,6 +6057,12 @@ less@^3.0.3:
request "^2.83.0" request "^2.83.0"
source-map "~0.6.0" source-map "~0.6.0"
line-height@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/line-height/-/line-height-0.3.1.tgz#4b1205edde182872a5efa3c8f620b3187a9c54c9"
dependencies:
computed-style "~0.1.3"
linear-layout-vector@0.0.1: linear-layout-vector@0.0.1:
version "0.0.1" version "0.0.1"
resolved "https://registry.yarnpkg.com/linear-layout-vector/-/linear-layout-vector-0.0.1.tgz#398114d7303b6ecc7fd6b273af7b8401d8ba9c70" resolved "https://registry.yarnpkg.com/linear-layout-vector/-/linear-layout-vector-0.0.1.tgz#398114d7303b6ecc7fd6b273af7b8401d8ba9c70"
@ -6733,8 +6764,8 @@ nanomatch@^1.2.9:
to-regex "^3.0.1" to-regex "^3.0.1"
native-keymap@^1.2.5: native-keymap@^1.2.5:
version "1.2.5" version "1.2.6"
resolved "https://registry.yarnpkg.com/native-keymap/-/native-keymap-1.2.5.tgz#1035a9417b9a9340cf8097763a43c76d588165a5" resolved "https://registry.yarnpkg.com/native-keymap/-/native-keymap-1.2.6.tgz#93d1b4c4ae0e9136bc14538cafe02c0bbe95bebf"
ncp@~2.0.0: ncp@~2.0.0:
version "2.0.0" version "2.0.0"
@ -6761,8 +6792,8 @@ nice-try@^1.0.4:
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
node-abi@^2.2.0, node-abi@^2.8.0: node-abi@^2.2.0, node-abi@^2.8.0:
version "2.8.0" version "2.9.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.8.0.tgz#bd2e88dbe6a6871e6dd08553e0605779325737ec" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.9.0.tgz#ae4075b298dab2d92dd1e22c48ccc7ffd7f06200"
dependencies: dependencies:
semver "^5.4.1" semver "^5.4.1"
@ -6782,6 +6813,23 @@ node-fetch@^2.3.0, node-fetch@^2.5.0:
version "2.6.0" version "2.6.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
node-gyp@^3.6.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
dependencies:
fstream "^1.0.0"
glob "^7.0.3"
graceful-fs "^4.1.2"
mkdirp "^0.5.0"
nopt "2 || 3"
npmlog "0 || 1 || 2 || 3 || 4"
osenv "0"
request "^2.87.0"
rimraf "2"
semver "~5.3.0"
tar "^2.0.0"
which "1"
node-gyp@^4.0.0: node-gyp@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45"
@ -6799,8 +6847,8 @@ node-gyp@^4.0.0:
which "1" which "1"
node-libs-browser@^2.0.0: node-libs-browser@^2.0.0:
version "2.2.0" version "2.2.1"
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
dependencies: dependencies:
assert "^1.1.1" assert "^1.1.1"
browserify-zlib "^0.2.0" browserify-zlib "^0.2.0"
@ -6812,7 +6860,7 @@ node-libs-browser@^2.0.0:
events "^3.0.0" events "^3.0.0"
https-browserify "^1.0.0" https-browserify "^1.0.0"
os-browserify "^0.3.0" os-browserify "^0.3.0"
path-browserify "0.0.0" path-browserify "0.0.1"
process "^0.11.10" process "^0.11.10"
punycode "^1.2.4" punycode "^1.2.4"
querystring-es3 "^0.2.0" querystring-es3 "^0.2.0"
@ -6824,7 +6872,7 @@ node-libs-browser@^2.0.0:
tty-browserify "0.0.0" tty-browserify "0.0.0"
url "^0.11.0" url "^0.11.0"
util "^0.11.0" util "^0.11.0"
vm-browserify "0.0.4" vm-browserify "^1.0.1"
node-pre-gyp@^0.12.0: node-pre-gyp@^0.12.0:
version "0.12.0" version "0.12.0"
@ -6978,8 +7026,8 @@ npm-run-path@^2.0.0:
set-blocking "~2.0.0" set-blocking "~2.0.0"
nsfw@^1.2.2: nsfw@^1.2.2:
version "1.2.2" version "1.2.4"
resolved "https://registry.yarnpkg.com/nsfw/-/nsfw-1.2.2.tgz#95b79b6b0e311268aaa20c5c085b9f3b341b0769" resolved "https://registry.yarnpkg.com/nsfw/-/nsfw-1.2.4.tgz#fa0cd02f2ee7cd798388705b500884f658796381"
dependencies: dependencies:
fs-extra "^7.0.0" fs-extra "^7.0.0"
lodash.isinteger "^4.0.4" lodash.isinteger "^4.0.4"
@ -7343,9 +7391,9 @@ pascalcase@^0.1.1:
version "0.1.1" version "0.1.1"
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
path-browserify@0.0.0: path-browserify@0.0.1:
version "0.0.0" version "0.0.1"
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
path-dirname@^1.0.0: path-dirname@^1.0.0:
version "1.0.2" version "1.0.2"
@ -7758,8 +7806,8 @@ private@^0.1.6, private@^0.1.8, private@~0.1.5:
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
process@^0.11.10: process@^0.11.10:
version "0.11.10" version "0.11.10"
@ -7795,7 +7843,7 @@ promzard@^0.3.0:
dependencies: dependencies:
read "1" read "1"
prop-types@^15.6.0, prop-types@^15.6.2: prop-types@^15.5.6, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2:
version "15.7.2" version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
dependencies: dependencies:
@ -7833,8 +7881,8 @@ pseudomap@^1.0.2:
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
psl@^1.1.24: psl@^1.1.24:
version "1.1.32" version "1.1.33"
resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.32.tgz#3f132717cf2f9c169724b2b6caf373cf694198db" resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.33.tgz#5533d9384ca7aab86425198e10e8053ebfeab661"
public-encrypt@^4.0.0: public-encrypt@^4.0.0:
version "4.0.3" version "4.0.3"
@ -7970,6 +8018,14 @@ rc@^1.1.6, rc@^1.2.1, rc@^1.2.7:
minimist "^1.2.0" minimist "^1.2.0"
strip-json-comments "~2.0.1" strip-json-comments "~2.0.1"
react-autosize-textarea@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/react-autosize-textarea/-/react-autosize-textarea-7.0.0.tgz#4f633e4238de7ba73c1da8fdc307353c50f1c5ab"
dependencies:
autosize "^4.0.2"
line-height "^0.3.1"
prop-types "^15.5.6"
react-dom@^16.4.1: react-dom@^16.4.1:
version "16.8.6" version "16.8.6"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f"
@ -8372,8 +8428,8 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2: resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2:
version "1.11.0" version "1.11.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e"
dependencies: dependencies:
path-parse "^1.0.6" path-parse "^1.0.6"
@ -8405,7 +8461,7 @@ retry@^0.10.0:
version "0.10.1" version "0.10.1"
resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4"
rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
version "2.6.3" version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
dependencies: dependencies:
@ -8519,8 +8575,8 @@ self-closing-tags@^1.0.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
semver@^6.0.0: semver@^6.0.0:
version "6.1.1" version "6.1.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.2.tgz#079960381376a3db62eb2edc8a3bfb10c7cfe318"
semver@~5.3.0: semver@~5.3.0:
version "5.3.0" version "5.3.0"
@ -9104,6 +9160,14 @@ tar-stream@^1.1.2:
to-buffer "^1.1.1" to-buffer "^1.1.1"
xtend "^4.0.0" xtend "^4.0.0"
tar@^2.0.0:
version "2.2.2"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40"
dependencies:
block-stream "*"
fstream "^1.0.12"
inherits "2"
tar@^4, tar@^4.4.8: tar@^4, tar@^4.4.8:
version "4.4.10" version "4.4.10"
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1"
@ -9321,8 +9385,8 @@ tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
tslint@^5.5.0: tslint@^5.5.0:
version "5.17.0" version "5.18.0"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.17.0.tgz#f9f0ce2011d8e90debaa6e9b4975f24cd16852b8" resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.18.0.tgz#f61a6ddcf372344ac5e41708095bbf043a147ac6"
dependencies: dependencies:
"@babel/code-frame" "^7.0.0" "@babel/code-frame" "^7.0.0"
builtin-modules "^1.1.1" builtin-modules "^1.1.1"
@ -9634,11 +9698,9 @@ vinyl@^2.0.1:
remove-trailing-separator "^1.0.1" remove-trailing-separator "^1.0.1"
replace-ext "^1.0.0" replace-ext "^1.0.0"
vm-browserify@0.0.4: vm-browserify@^1.0.1:
version "0.0.4" version "1.1.0"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019"
dependencies:
indexof "0.0.1"
vscode-base-languageclient@4.4.0: vscode-base-languageclient@4.4.0:
version "4.4.0" version "4.4.0"
@ -9658,13 +9720,13 @@ vscode-json-languageserver@^1.0.1:
vscode-uri "^1.0.3" vscode-uri "^1.0.3"
vscode-json-languageservice@^3.0.12: vscode-json-languageservice@^3.0.12:
version "3.2.0" version "3.3.0"
resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.2.0.tgz#fe796c2ddbda966d87905442f9636f139e00f341" resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.3.0.tgz#f80ec21c19fb8648c815220a2857f9f0b22e1094"
dependencies: dependencies:
jsonc-parser "^2.0.2" jsonc-parser "^2.1.0"
vscode-languageserver-types "^3.13.0" vscode-languageserver-types "^3.15.0-next.2"
vscode-nls "^4.0.0" vscode-nls "^4.1.1"
vscode-uri "^1.0.6" vscode-uri "^2.0.1"
vscode-jsonrpc@^3.6.0, vscode-jsonrpc@^3.6.2: vscode-jsonrpc@^3.6.0, vscode-jsonrpc@^3.6.2:
version "3.6.2" version "3.6.2"
@ -9681,10 +9743,14 @@ vscode-languageserver-protocol@^3.10.0, vscode-languageserver-protocol@^3.10.3:
vscode-jsonrpc "^4.0.0" vscode-jsonrpc "^4.0.0"
vscode-languageserver-types "3.14.0" vscode-languageserver-types "3.14.0"
vscode-languageserver-types@3.14.0, vscode-languageserver-types@^3.10.0, vscode-languageserver-types@^3.13.0: vscode-languageserver-types@3.14.0, vscode-languageserver-types@^3.10.0:
version "3.14.0" version "3.14.0"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743"
vscode-languageserver-types@^3.15.0-next.2:
version "3.15.0-next.2"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.0-next.2.tgz#a0601332cdaafac21931f497bb080cfb8d73f254"
vscode-languageserver@^4.0.0: vscode-languageserver@^4.0.0:
version "4.4.2" version "4.4.2"
resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-4.4.2.tgz#600ae9cc7a6ff1e84d93c7807840c2cb5b22821b" resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-4.4.2.tgz#600ae9cc7a6ff1e84d93c7807840c2cb5b22821b"
@ -9696,7 +9762,7 @@ vscode-nls@^3.2.2:
version "3.2.5" version "3.2.5"
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.5.tgz#25520c1955108036dec607c85e00a522f247f1a4" resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.5.tgz#25520c1955108036dec607c85e00a522f247f1a4"
vscode-nls@^4.0.0: vscode-nls@^4.0.0, vscode-nls@^4.1.1:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.1.tgz#f9916b64e4947b20322defb1e676a495861f133c" resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.1.tgz#f9916b64e4947b20322defb1e676a495861f133c"
@ -9710,10 +9776,14 @@ vscode-textmate@^4.0.1:
dependencies: dependencies:
oniguruma "^7.0.0" oniguruma "^7.0.0"
vscode-uri@^1.0.3, vscode-uri@^1.0.5, vscode-uri@^1.0.6, vscode-uri@^1.0.8: vscode-uri@^1.0.3, vscode-uri@^1.0.5, vscode-uri@^1.0.8:
version "1.0.8" version "1.0.8"
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz#9769aaececae4026fb6e22359cb38946580ded59" resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz#9769aaececae4026fb6e22359cb38946580ded59"
vscode-uri@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.0.2.tgz#cbc7982525e1cd102d2da6515e6f103650cb507c"
vscode-ws-jsonrpc@^0.0.2-1: vscode-ws-jsonrpc@^0.0.2-1:
version "0.0.2-2" version "0.0.2-2"
resolved "https://registry.yarnpkg.com/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-0.0.2-2.tgz#3d977ea40a2f47148ea8cfcbf077196ecd7fe3a2" resolved "https://registry.yarnpkg.com/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-0.0.2-2.tgz#3d977ea40a2f47148ea8cfcbf077196ecd7fe3a2"
@ -9786,8 +9856,8 @@ webpack-sources@^1.3.0:
source-map "~0.6.1" source-map "~0.6.1"
webpack@^4.0.0: webpack@^4.0.0:
version "4.33.0" version "4.35.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.33.0.tgz#c30fc4307db432e5c5e3333aaa7c16a15a3b277e" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.35.0.tgz#ad3f0f8190876328806ccb7a36f3ce6e764b8378"
dependencies: dependencies:
"@webassemblyjs/ast" "1.8.5" "@webassemblyjs/ast" "1.8.5"
"@webassemblyjs/helper-module-context" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5"