From 5377a58583c023077bd7587228964d0f03c6cff4 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Sat, 16 Jan 2021 19:23:33 +0100 Subject: [PATCH 01/42] Add (create)TextTerminal to pseudoTerminal.ts --- src/pseudoTerminal.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/pseudoTerminal.ts b/src/pseudoTerminal.ts index c4ef2d1..7c6a2aa 100644 --- a/src/pseudoTerminal.ts +++ b/src/pseudoTerminal.ts @@ -116,3 +116,24 @@ export async function createTerminal(options: TerminalOptions): Promise; // Redeclaring that it isn't undefined + onDidOpen: vscode.Event; +} + +export function createTextTerminal(initialText?: string): TextTerminal { + const onDidWrite = new vscode.EventEmitter(); + const onDidClose = new vscode.EventEmitter(); + const onDidOpen = new vscode.EventEmitter(); + return { + write: onDidWrite.fire.bind(onDidWrite), + close: onDidClose.fire.bind(onDidClose), + onDidWrite: onDidWrite.event, + onDidClose: onDidClose.event, + onDidOpen: onDidOpen.event, + open: () => initialText && (onDidWrite.fire(initialText), onDidClose.fire(1)), + }; +} From 00b2d36e4bea9b11b1037f57fdc5db1fd698a595 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Sat, 16 Jan 2021 19:25:35 +0100 Subject: [PATCH 02/42] Improve task provider functionality --- src/manager.ts | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/manager.ts b/src/manager.ts index 8325dd5..1f5154f 100644 --- a/src/manager.ts +++ b/src/manager.ts @@ -29,7 +29,7 @@ function commandArgumentToName(arg?: string | FileSystemConfig | Connection): st return `FileSystemConfig(${arg.name})`; } -interface SSHShellTaskOptions { +interface SSHShellTaskOptions extends vscode.TaskDefinition { host: string; command: string; workingDirectory?: string; @@ -179,22 +179,20 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider return []; } public async resolveTask(task: vscode.Task, token?: vscode.CancellationToken | undefined): Promise { - let { host, command, workingDirectory } = task.definition as unknown as SSHShellTaskOptions; - if (!host) throw new Error('Missing field \'host\' for ssh-shell task'); - if (!command) throw new Error('Missing field \'command\' for ssh-shell task'); - const config = getConfig(host); - if (!config) throw new Error(`No configuration with the name '${host}' found for ssh-shell task`); - // Calculate working directory if applicable - if (workingDirectory) workingDirectory = this.getRemotePath(config, workingDirectory); return new vscode.Task( - task.definition, + task.definition, // Can't replace/modify this, otherwise we're not contributing to "this" task vscode.TaskScope.Workspace, - `SSH Task '${task.name}' for ${host}`, + `SSH Task '${task.name}'`, 'ssh', - new vscode.CustomExecution(async () => { - const connection = await this.connectionManager.createConnection(host); + new vscode.CustomExecution(async (resolved: SSHShellTaskOptions) => { + const { createTerminal, createTextTerminal } = await import('./pseudoTerminal'); + try { + if (!resolved.host) throw new Error('Missing field \'host\' in task description'); + if (!resolved.command) throw new Error('Missing field \'command\' in task description'); + const connection = await this.connectionManager.createConnection(resolved.host); + const { command, workingDirectory } = resolved; + //if (workingDirectory) workingDirectory = this.getRemotePath(config, workingDirectory); this.connectionManager.update(connection, con => con.pendingUserCount++); - const { createTerminal } = await import('./pseudoTerminal'); const pty = await createTerminal({ command, workingDirectory, client: connection.client, @@ -204,6 +202,9 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider pty.onDidClose(() => this.connectionManager.update(connection, con => con.terminals = con.terminals.filter(t => t !== pty))); return pty; + } catch (e) { + return createTextTerminal(`Error: ${e.message || e}`); + } }) ) } From 6d614c6fc380e9ecbf397baf1283d8e933bbf38d Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Sat, 16 Jan 2021 19:26:03 +0100 Subject: [PATCH 03/42] Add support for new task variables --- src/manager.ts | 124 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 111 insertions(+), 13 deletions(-) diff --git a/src/manager.ts b/src/manager.ts index 1f5154f..3ac51eb 100644 --- a/src/manager.ts +++ b/src/manager.ts @@ -134,7 +134,12 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider throw e; }); } - public getRemotePath(config: FileSystemConfig, relativePath: string) { + public getRemotePath(config: FileSystemConfig, relativePath: string | vscode.Uri) { + if (relativePath instanceof vscode.Uri) { + if (relativePath.authority !== config.name) + throw new Error(`Uri authority for '${relativePath}' does not match config with name '${config.name}'`); + relativePath = relativePath.path; + } if (relativePath.startsWith('/')) relativePath = relativePath.substr(1); if (!config.root) return '/' + relativePath; const result = path.posix.join(config.root, relativePath); @@ -147,8 +152,7 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider // Create connection (early so we have .actualConfig.root) const con = (config && 'client' in config) ? config : await this.connectionManager.createConnection(name, config); // Calculate working directory if applicable - let workingDirectory: string | undefined = uri && uri.path; - if (workingDirectory) workingDirectory = this.getRemotePath(con.actualConfig, workingDirectory); + const workingDirectory = uri && this.getRemotePath(con.actualConfig, uri); // Create pseudo terminal this.connectionManager.update(con, con => con.pendingUserCount++); const pty = await createTerminal({ client: con.client, config: con.actualConfig, workingDirectory }); @@ -175,6 +179,99 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider if (choice === 'Disconnect') this.commandDisconnect(name); } /* TaskProvider */ + protected async replaceTaskVariables(value: string, config: FileSystemConfig): Promise { + return value.replace(/\$\{(\w+)\}/g, (str, match: string) => { + if (!match.startsWith('remote')) return str; // Our variables always start with "remote" + // https://github.com/microsoft/vscode/blob/bebd06640734c37f6d5f1a82b13297ce1d297dd1/src/vs/workbench/services/configurationResolver/common/variableResolver.ts#L156 + const [key, argument] = match.split(':') as [string, string?]; + const getFilePath = (): vscode.Uri => { + const uri = vscode.window.activeTextEditor?.document?.uri; + if (uri) return uri; + throw new Error(`Variable ${str} can not be resolved. Please open an editor.`); + } + const getFolderPathForFile = (): vscode.Uri => { + const filePath = getFilePath(); + const uri = vscode.workspace.getWorkspaceFolder(filePath)?.uri; + if (uri) return uri; + throw new Error(`Variable ${str}: can not find workspace folder of '${filePath}'.`); + } + const { workspaceFolders = [] } = vscode.workspace; + const sshFolders = workspaceFolders.filter(ws => ws.uri.scheme === 'ssh'); + const sshFolder = sshFolders.length === 1 ? sshFolders[0] : undefined; + const getFolderUri = (): vscode.Uri => { + const { workspaceFolders = [] } = vscode.workspace; + if (argument) { + const uri = workspaceFolders.find(ws => ws.name === argument)?.uri; + if (uri) return uri; + throw new Error(`Variable ${str} can not be resolved. No such folder '${argument}'.`); + } + if (sshFolder) return sshFolder.uri; + if (sshFolders.length > 1) { + throw new Error(`Variable ${str} can not be resolved in a multi ssh:// folder workspace. Scope this variable using ':' and a workspace folder name.`); + } + throw new Error(`Variable ${str} can not be resolved. Please open an ssh:// folder.`); + }; + switch (key.toLowerCase()) { + case 'remoteWorkspaceRoot': + case 'remoteWorkspaceFolder': + return this.getRemotePath(config, getFolderUri()); + case 'remoteWorkspaceRootFolderName': + case 'remoteWorkspaceFolderBasename': + return path.basename(getFolderUri().path); + case 'remoteFile': + return this.getRemotePath(config, getFilePath()); + case 'remoteFileWorkspaceFolder': + return this.getRemotePath(config, getFolderPathForFile()); + case 'remoteRelativeFile': + if (sshFolder || argument) + return path.relative(getFolderUri().path, getFilePath().path); + return getFilePath().path; + case 'remoteRelativeFileDirname': { + const dirname = path.dirname(getFilePath().path); + if (sshFolder || argument) { + const relative = path.relative(getFolderUri().path, dirname); + return relative.length === 0 ? '.' : relative; + } + return dirname; + } + case 'remoteFileDirname': + return path.dirname(getFilePath().path); + case 'remoteFileExtname': + return path.extname(getFilePath().path); + case 'remoteFileBasename': + return path.basename(getFilePath().path); + case 'remoteFileBasenameNoExtension': { + const basename = path.basename(getFilePath().path); + return (basename.slice(0, basename.length - path.extname(basename).length)); + } + case 'remoteFileDirnameBasename': + return path.basename(path.dirname(getFilePath().path)); + case 'remotePathSeparator': + // Not sure if we even need/want this variable, but sure + return path.posix.sep; + default: + const msg = `Unrecognized task variable '${str}' starting with 'remote', ignoring`; + Logging.warning(msg); + vscode.window.showWarningMessage(msg); + return str; + } + }); + } + protected async replaceTaskVariablesRecursive(object: T, handler: (value: string) => string | Promise): Promise { + if (typeof object === 'string') return handler(object) as any; + if (Array.isArray(object)) return object.map(v => this.replaceTaskVariablesRecursive(v, handler)) as any; + if (typeof object == 'object' && object !== null && !(object instanceof RegExp) && !(object instanceof Date)) { + // ^ Same requirements VS Code applies: https://github.com/microsoft/vscode/blob/bebd06640734c37f6d5f1a82b13297ce1d297dd1/src/vs/base/common/types.ts#L34 + const result: any = {}; + for (let key in object) { + const value = await this.replaceTaskVariablesRecursive(object[key], handler); + key = await this.replaceTaskVariablesRecursive(key, handler); + result[key] = value; + } + return result; + } + return object; + } public provideTasks(token?: vscode.CancellationToken | undefined): vscode.ProviderResult { return []; } @@ -190,18 +287,19 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider if (!resolved.host) throw new Error('Missing field \'host\' in task description'); if (!resolved.command) throw new Error('Missing field \'command\' in task description'); const connection = await this.connectionManager.createConnection(resolved.host); + resolved = await this.replaceTaskVariablesRecursive(resolved, value => this.replaceTaskVariables(value, connection.actualConfig)); const { command, workingDirectory } = resolved; //if (workingDirectory) workingDirectory = this.getRemotePath(config, workingDirectory); - this.connectionManager.update(connection, con => con.pendingUserCount++); - const pty = await createTerminal({ - command, workingDirectory, - client: connection.client, - config: connection.actualConfig, - }); - this.connectionManager.update(connection, con => (con.pendingUserCount--, con.terminals.push(pty))); - pty.onDidClose(() => this.connectionManager.update(connection, - con => con.terminals = con.terminals.filter(t => t !== pty))); - return pty; + this.connectionManager.update(connection, con => con.pendingUserCount++); + const pty = await createTerminal({ + command, workingDirectory, + client: connection.client, + config: connection.actualConfig, + }); + this.connectionManager.update(connection, con => (con.pendingUserCount--, con.terminals.push(pty))); + pty.onDidClose(() => this.connectionManager.update(connection, + con => con.terminals = con.terminals.filter(t => t !== pty))); + return pty; } catch (e) { return createTextTerminal(`Error: ${e.message || e}`); } From d99e961330cb4d27cc2a9007095161ff04a360e5 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Tue, 9 Feb 2021 15:23:42 +0100 Subject: [PATCH 04/42] Add ssh2 debug option --- src/connect.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/connect.ts b/src/connect.ts index fc624b1..88d6cfd 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -222,7 +222,12 @@ export async function createSSH(config: FileSystemConfig, sock?: NodeJS.Readable }); try { logging.info(`Creating SSH session over the opened socket`); - client.connect(Object.assign(config, { sock }, DEFAULT_CONFIG)); + let debug = (_msg: string) => {}; + if (config.debug) { + const scope = Logging.scope(`ssh2(${config.name})`); + debug = (msg: string) => scope.debug(msg); + } + client.connect(Object.assign(config, { sock, debug }, DEFAULT_CONFIG)); } catch (e) { reject(e); } From bb50adec3132556431ce683871a5ce3e44c6ad72 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Tue, 9 Feb 2021 15:32:06 +0100 Subject: [PATCH 05/42] Add '/app/src/main/AndroidManifest.xml' to IGNORE_NOT_FOUND --- src/sshFileSystem.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sshFileSystem.ts b/src/sshFileSystem.ts index 9324d17..2aa4cfa 100644 --- a/src/sshFileSystem.ts +++ b/src/sshFileSystem.ts @@ -19,6 +19,7 @@ const IGNORE_NOT_FOUND: string[] = [ '/.git/', '/node_modules', '/pom.xml', + '/app/src/main/AndroidManifest.xml', ]; function shouldIgnoreNotFound(path: string) { return IGNORE_NOT_FOUND.some(entry => entry === path || entry.endsWith('/') && path.startsWith(entry)); From 463068e57d3b26f493540d6074f208be91f2980c Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Tue, 9 Feb 2021 19:15:09 +0100 Subject: [PATCH 06/42] Improve shouldIgnoreNotFound for non-root workspaces --- src/sshFileSystem.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/sshFileSystem.ts b/src/sshFileSystem.ts index 2aa4cfa..5ff9479 100644 --- a/src/sshFileSystem.ts +++ b/src/sshFileSystem.ts @@ -11,7 +11,7 @@ import { Logger, Logging, LOGGING_NO_STACKTRACE, LOGGING_SINGLE_LINE_STACKTRACE, // (usually the errors we report on happen deep inside ssh2 or ssh2-streams, we don't really care that much about it) const LOGGING_HANDLE_ERROR = withStacktraceOffset(1, { ...LOGGING_SINGLE_LINE_STACKTRACE, maxErrorStack: 4 }); -// All absolute paths (relative to the FS root) +// All absolute paths (relative to the FS root or a workspace root) // If it ends with /, .startsWith is used, otherwise a raw equal const IGNORE_NOT_FOUND: string[] = [ '/.vscode', @@ -21,8 +21,15 @@ const IGNORE_NOT_FOUND: string[] = [ '/pom.xml', '/app/src/main/AndroidManifest.xml', ]; -function shouldIgnoreNotFound(path: string) { - return IGNORE_NOT_FOUND.some(entry => entry === path || entry.endsWith('/') && path.startsWith(entry)); +function shouldIgnoreNotFound(target: string) { + if (IGNORE_NOT_FOUND.some(entry => entry === target || entry.endsWith('/') && target.startsWith(entry))) return true; + for (const { uri: { path: wsPath } } of vscode.workspace.workspaceFolders || []) { + if (!target.startsWith(wsPath)) continue; + let local = path.posix.relative(wsPath, target); + if (!local.startsWith('/')) local = `/${local}`; + if (IGNORE_NOT_FOUND.some(entry => entry === local || entry.endsWith('/') && local.startsWith(entry))) return true; + } + return false; } export class SSHFileSystem implements vscode.FileSystemProvider { From a192d5d935830f19cf4d8a42fe7dd434581eaddd Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Tue, 9 Feb 2021 19:16:34 +0100 Subject: [PATCH 07/42] Improve commandConfigure + prefer getConfig over getConfigs --- src/connect.ts | 6 +++--- src/manager.ts | 15 +++++++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/connect.ts b/src/connect.ts index 88d6cfd..f9d6f08 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -3,7 +3,7 @@ import { Socket } from 'net'; import { Client, ClientChannel, ConnectConfig, SFTPWrapper as SFTPWrapperReal } from 'ssh2'; import { SFTPStream } from 'ssh2-streams'; import * as vscode from 'vscode'; -import { getConfigs } from './config'; +import { getConfig } from './config'; import type { FileSystemConfig } from './fileSystemConfig'; import { censorConfig, Logging } from './logging'; import { toPromise } from './toPromise'; @@ -150,7 +150,7 @@ export async function createSocket(config: FileSystemConfig): Promise c.name === config.hop); + const hop = getConfig(config.hop); if (!hop) throw new Error(`A SSH FS configuration with the name '${config.hop}' doesn't exist`); const ssh = await createSSH(hop); if (!ssh) { @@ -222,7 +222,7 @@ export async function createSSH(config: FileSystemConfig, sock?: NodeJS.Readable }); try { logging.info(`Creating SSH session over the opened socket`); - let debug = (_msg: string) => {}; + let debug = (_msg: string) => { }; if (config.debug) { const scope = Logging.scope(`ssh2(${config.name})`); debug = (msg: string) => scope.debug(msg); diff --git a/src/manager.ts b/src/manager.ts index 8325dd5..08a6ebb 100644 --- a/src/manager.ts +++ b/src/manager.ts @@ -2,7 +2,7 @@ import * as path from 'path'; import type { Client, ClientChannel } from 'ssh2'; import * as vscode from 'vscode'; -import { getConfig, getConfigs, loadConfigsRaw } from './config'; +import { getConfig, loadConfigsRaw } from './config'; import { Connection, ConnectionManager } from './connection'; import type { FileSystemConfig } from './fileSystemConfig'; import { Logging } from './logging'; @@ -63,7 +63,7 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider if (existing) return existing; let con: Connection | undefined; return this.creatingFileSystems[name] ||= catchingPromise(async (resolve, reject) => { - config = config || getConfigs().find(c => c.name === name); + config ||= getConfig(name); if (!config) throw new Error(`Couldn't find a configuration with the name '${name}'`); const con = await this.connectionManager.createConnection(name, config); this.connectionManager.update(con, con => con.pendingUserCount++); @@ -126,7 +126,7 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider if (chosen === 'Retry') { this.createFileSystem(name).catch(() => { }); } else if (chosen === 'Configure') { - this.commandConfigure(name); + this.commandConfigure(config || name); } else { this.commandDisconnect(name); } @@ -298,13 +298,20 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider public async commandConfigure(target: string | FileSystemConfig) { Logging.info(`Command received to configure ${typeof target === 'string' ? target : target.name}`); if (typeof target === 'object') { + if (!target._location && !target._locations.length) { + vscode.window.showErrorMessage('Cannot configure a config-less connection!'); + return; + } this.openSettings({ config: target, type: 'editconfig' }); return; } target = target.toLowerCase(); let configs = await loadConfigsRaw(); configs = configs.filter(c => c.name === target); - if (configs.length === 0) throw new Error('Unexpectedly found no matching configs?'); + if (configs.length === 0) { + vscode.window.showErrorMessage(`Found no matching configs for '${target}'`); + return Logging.error(`Unexpectedly found no matching configs for '${target}' in commandConfigure?`); + } const config = configs.length === 1 ? configs[0] : configs; this.openSettings({ config, type: 'editconfig' }); } From 844b0e1b43699b1c197a92e5f11938d4ecac5d60 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Tue, 9 Feb 2021 19:36:40 +0100 Subject: [PATCH 08/42] Allow instant connections --- src/config.ts | 16 ++++++++++++---- src/connect.ts | 5 +++++ src/extension.ts | 4 ++-- src/fileSystemConfig.ts | 32 ++++++++++++++++++++++++++++++++ src/ui-utils.ts | 37 +++++++++++++++++++++++++++++++------ 5 files changed, 82 insertions(+), 12 deletions(-) diff --git a/src/config.ts b/src/config.ts index 122243a..ee26246 100644 --- a/src/config.ts +++ b/src/config.ts @@ -2,7 +2,7 @@ import { readFile, writeFile } from 'fs'; import { parse as parseJsonc, ParseError } from 'jsonc-parser'; import * as vscode from 'vscode'; -import { ConfigLocation, FileSystemConfig, invalidConfigName } from './fileSystemConfig'; +import { ConfigLocation, FileSystemConfig, invalidConfigName, parseConnectionString } from './fileSystemConfig'; import { Logging } from './logging'; import { toPromise } from './toPromise'; @@ -283,9 +283,17 @@ export async function deleteConfig(config: FileSystemConfig) { }); } -export function getConfig(name: string) { - if (name === '') return null; - return getConfigs().find(c => c.name === name); +/** If a loaded config with the given name exists (case insensitive), it is returned. + * Otherwise, if it contains a `@`, we parse it as a connection string. + * If this results in no (valid) configuration, `undefined` is returned. + */ +export function getConfig(input: string): FileSystemConfig | undefined { + const lower = input.toLowerCase(); + const loaded = getConfigs().find(c => c.name.toLowerCase() === lower); + if (loaded) return loaded; + if (!input.includes('@')) return undefined; + const parsed = parseConnectionString(input); + return typeof parsed === 'string' ? undefined : parsed[0]; } function valueMatches(a: any, b: any): boolean { diff --git a/src/connect.ts b/src/connect.ts index f9d6f08..cf1c8da 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -139,6 +139,11 @@ export async function calculateActualConfig(config: FileSystemConfig): Promise manager.commandConnect(config), }); @@ -95,7 +95,7 @@ export function activate(context: vscode.ExtensionContext) { // sshfs.termninal(target?: string | FileSystemConfig | Connection | vscode.Uri) registerCommandHandler('sshfs.terminal', { - promptOptions: { promptConfigs: true, promptConnections: true }, + promptOptions: { promptConfigs: true, promptConnections: true, promptInstantConnection: true }, handleConfig: config => manager.commandTerminal(config), handleConnection: con => manager.commandTerminal(con), handleUri: async uri => { diff --git a/src/fileSystemConfig.ts b/src/fileSystemConfig.ts index 4ea92d6..fc816db 100644 --- a/src/fileSystemConfig.ts +++ b/src/fileSystemConfig.ts @@ -113,3 +113,35 @@ export function invalidConfigName(name: string) { if (name.match(/^[\w_\\/.@\-+]+$/)) return null; return `A SSH FS name can only exists of lowercase alphanumeric characters, slashes and any of these: _.+-@`; } + +/** + * https://regexr.com/5m3gl (mostly based on https://tools.ietf.org/html/draft-ietf-secsh-scp-sftp-ssh-uri-04) + * Supports several formats, the first one being the "full" format, with others being partial: + * - `user;abc=def,a-b=1-5@server.example.com:22/some/file.ext` + * - `user@server.example.com/directory` + * - `server:22/directory` + * - `user@server` + * - `server` + * - `@server/path` - Unlike OpenSSH, we allow a @ (and connection parameters) without a username + * + * The resulting FileSystemConfig will have as name basically the input, but without the path. If there is no + * username given, the name will start with `@`, as to differentiate between connection strings and config names. + */ +const CONNECTION_REGEX = /^((?\w+)?(;[\w-]+=[\w\d-]+(,[\w\d-]+=[\w\d-]+)*)?@)?(?[^@\\/:,=]+)(:(?\d+))?(?\/.*)?$/; + +export function parseConnectionString(input: string): [config: FileSystemConfig, path?: string] | string { + input = input.trim(); + const match = input.match(CONNECTION_REGEX); + if (!match) return 'Invalid format, expected something like "user@example.com:22/some/path"'; + const { user, host, path } = match.groups!; + const portStr = match.groups!.port; + const port = portStr ? Number.parseInt(portStr) : undefined; + if (portStr && (!port || port < 1 || port > 65535)) return `The string '${port}' is not a valid port number`; + const name = `${user || ''}@${host}${port ? `:${port}` : ''}${path || ''}`; + return [{ + name, host, port, + username: user || '$USERNAME', + _locations: [], + //debug: true as any, + }, path]; +} diff --git a/src/ui-utils.ts b/src/ui-utils.ts index 048756e..7ee1df8 100644 --- a/src/ui-utils.ts +++ b/src/ui-utils.ts @@ -2,7 +2,7 @@ import * as vscode from 'vscode'; import { getConfigs } from './config'; import type { Connection } from './connection'; -import type { FileSystemConfig } from './fileSystemConfig'; +import { parseConnectionString, FileSystemConfig } from './fileSystemConfig'; import type { Manager } from './manager'; import type { SSHPseudoTerminal } from './pseudoTerminal'; import type { SSHFileSystem } from './sshFileSystem'; @@ -70,6 +70,8 @@ export interface PickComplexOptions { immediateReturn?: boolean; /** If true, add all connections. If this is a string, filter by config name first */ promptConnections?: boolean | string; + /** If true, add an option to enter a connection string */ + promptInstantConnection?: boolean; /** If true, add all configurations. If this is a string, filter by config name first */ promptConfigs?: boolean | string; /** If true, add all terminals. If this is a string, filter by config name first */ @@ -78,10 +80,25 @@ export interface PickComplexOptions { nameFilter?: string; } +async function inputInstantConnection(): Promise { + const name = await vscode.window.showInputBox({ + placeHolder: 'user@host:/home/user', + prompt: 'SSH connection string', + validateInput(value: string) { + const result = parseConnectionString(value); + return typeof result === 'string' ? result : undefined; + } + }); + if (!name) return; + const result = parseConnectionString(name); + if (typeof result === 'string') return; + return result[0]; +} + export async function pickComplex(manager: Manager, options: PickComplexOptions): Promise { - return new Promise((resolve) => { - const { promptConnections, promptConfigs, promptTerminals, immediateReturn, nameFilter } = options; + return new Promise((resolve) => { + const { promptConnections, promptConfigs, nameFilter } = options; const items: QuickPickItemWithItem[] = []; const toSelect: string[] = []; if (promptConnections) { @@ -98,7 +115,7 @@ export async function pickComplex(manager: Manager, options: PickComplexOptions) items.push(...configs.map(config => formatItem(config, true))); toSelect.push('configuration'); } - if (promptTerminals) { + if (options.promptTerminals) { let cons = manager.connectionManager.getActiveConnections(); if (typeof promptConnections === 'string') cons = cons.filter(con => con.actualConfig.name === promptConnections); if (nameFilter) cons = cons.filter(con => con.actualConfig.name === nameFilter); @@ -106,7 +123,15 @@ export async function pickComplex(manager: Manager, options: PickComplexOptions) items.push(...terminals.map(config => formatItem(config, true))); toSelect.push('terminal'); } - if (immediateReturn && items.length <= 1) return resolve(items[0]?.item); + if (options.promptInstantConnection) { + items.unshift({ + label: '$(terminal) Create instant connection', + detail: 'Opens an input box where you can type e.g. `user@host:/home/user`', + picked: true, alwaysShow: true, + item: inputInstantConnection, + }); + } + if (options.immediateReturn && items.length <= 1) return resolve(items[0]?.item); const quickPick = vscode.window.createQuickPick(); quickPick.items = items; quickPick.title = 'Select ' + toSelect.join(' / '); @@ -117,7 +142,7 @@ export async function pickComplex(manager: Manager, options: PickComplexOptions) }); quickPick.onDidHide(() => resolve()); quickPick.show(); - }); + }).then(result => typeof result === 'function' ? result() : result); } export const pickConfig = (manager: Manager) => pickComplex(manager, { promptConfigs: true }) as Promise; From 8852d4733b4c0d496985a03fabbda78852947b3e Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Tue, 9 Feb 2021 19:38:41 +0100 Subject: [PATCH 09/42] Make instant connections try to use PuTTY --- src/connect.ts | 70 +++++++++++++++++++++++------------------ src/fileSystemConfig.ts | 1 + 2 files changed, 40 insertions(+), 31 deletions(-) diff --git a/src/connect.ts b/src/connect.ts index cf1c8da..43224d7 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -70,47 +70,55 @@ export async function calculateActualConfig(config: FileSystemConfig): Promise') { + // ^ '' is a special case used in parseConnectionString in fileSystemConfig.ts await promptFields(config, 'host'); // TODO: `config.putty === true` without config.host should prompt the user with *all* PuTTY sessions if (!config.host) throw new Error(`'putty' was true but 'host' is empty/missing`); + mandatory = config.putty === true; config.putty = config.host; nameOnly = false; } else { config.putty = replaceVariables(config.putty); } const session = await (await import('./putty')).getSession(config.putty, config.host, config.username, nameOnly); - if (!session) throw new Error(`Couldn't find the requested PuTTY session`); - if (session.protocol !== 'ssh') throw new Error(`The requested PuTTY session isn't a SSH session`); - config.username = config.username || session.username; - if (!config.username && session.hostname && session.hostname.indexOf('@') >= 1) { - config.username = session.hostname.substr(0, session.hostname.indexOf('@')); - } - config.host = config.host || session.hostname; - config.port = session.portnumber || config.port; - config.agent = config.agent || (session.tryagent ? 'pageant' : undefined); - if (session.usernamefromenvironment) { - config.username = process.env.USERNAME || process.env.USER; - if (!config.username) throw new Error(`Trying to use the system username, but process.env.USERNAME or process.env.USER is missing`); - } - config.privateKeyPath = config.privateKeyPath || (!config.agent && session.publickeyfile) || undefined; - switch (session.proxymethod) { - case 0: - break; - case 1: - case 2: - case 3: - if (!session.proxyhost) throw new Error(`Proxymethod is SOCKS 4/5 or HTTP but 'proxyhost' is missing`); - config.proxy = { - host: session.proxyhost, - port: session.proxyport, - type: session.proxymethod === 1 ? 'socks4' : (session.proxymethod === 2 ? 'socks5' : 'http'), - }; - break; - default: - throw new Error(`The requested PuTTY session uses an unsupported proxy method`); + if (session) { + if (session.protocol !== 'ssh') throw new Error(`The requested PuTTY session isn't a SSH session`); + config.username = config.username || session.username; + if (!config.username && session.hostname && session.hostname.indexOf('@') >= 1) { + config.username = session.hostname.substr(0, session.hostname.indexOf('@')); + } + config.host = config.host || session.hostname; + config.port = session.portnumber || config.port; + config.agent = config.agent || (session.tryagent ? 'pageant' : undefined); + if (session.usernamefromenvironment) { + config.username = process.env.USERNAME || process.env.USER; + if (!config.username) throw new Error(`Trying to use the system username, but process.env.USERNAME or process.env.USER is missing`); + } + config.privateKeyPath = config.privateKeyPath || (!config.agent && session.publickeyfile) || undefined; + switch (session.proxymethod) { + case 0: + break; + case 1: + case 2: + case 3: + if (!session.proxyhost) throw new Error(`Proxymethod is SOCKS 4/5 or HTTP but 'proxyhost' is missing`); + config.proxy = { + host: session.proxyhost, + port: session.proxyport, + type: session.proxymethod === 1 ? 'socks4' : (session.proxymethod === 2 ? 'socks5' : 'http'), + }; + break; + default: + throw new Error(`The requested PuTTY session uses an unsupported proxy method`); + } + logging.debug(`\tReading PuTTY configuration lead to the following configuration:\n${JSON.stringify(config, null, 4)}`); + } else if (mandatory) { + throw new Error(`Couldn't find the requested PuTTY session`); + } else { + logging.debug(`\tConfig suggested finding a PuTTY configuration, did not find one`); } - logging.debug(`\tReading PuTTY configuration lead to the following configuration:\n${JSON.stringify(config, null, 4)}`); } if (config.privateKeyPath) { try { diff --git a/src/fileSystemConfig.ts b/src/fileSystemConfig.ts index fc816db..2d7d456 100644 --- a/src/fileSystemConfig.ts +++ b/src/fileSystemConfig.ts @@ -143,5 +143,6 @@ export function parseConnectionString(input: string): [config: FileSystemConfig, username: user || '$USERNAME', _locations: [], //debug: true as any, + putty: process.platform === 'win32' && '', // Since this is like a "quick connect", automatically enable PuTTY support }, path]; } From 53aa64fa9a7e0fd2f5f91fea50c5115130bb5c32 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Tue, 9 Feb 2021 19:43:02 +0100 Subject: [PATCH 10/42] Fix typo in pickComplex UI hint --- src/ui-utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui-utils.ts b/src/ui-utils.ts index 7ee1df8..2b439cb 100644 --- a/src/ui-utils.ts +++ b/src/ui-utils.ts @@ -126,7 +126,7 @@ export async function pickComplex(manager: Manager, options: PickComplexOptions) if (options.promptInstantConnection) { items.unshift({ label: '$(terminal) Create instant connection', - detail: 'Opens an input box where you can type e.g. `user@host:/home/user`', + detail: 'Opens an input box where you can type e.g. `user@host:22/home/user`', picked: true, alwaysShow: true, item: inputInstantConnection, }); From 443026df7a879a1a14e716ecdcfe4d344fbf79a2 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 11 Feb 2021 16:30:41 +0100 Subject: [PATCH 11/42] Remove old console.log --- src/manager.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/manager.ts b/src/manager.ts index 08a6ebb..9a7c0cd 100644 --- a/src/manager.ts +++ b/src/manager.ts @@ -216,7 +216,6 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider if (!isSSHPseudoTerminal(pty)) return; const conn = this.connectionManager.getActiveConnections().find(c => c.terminals.includes(pty)); if (!conn) return; // Connection died, which means the terminal should also be closed already? - console.log('provideTerminalLinks', line, pty.config.root, conn ? conn.filesystems.length : 'No connection?'); const links: TerminalLinkUri[] = []; const PATH_REGEX = /\/\S+/g; while (true) { From 83d6cd03962270ea2929df641331b78eede7bb27 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 11 Feb 2021 16:34:21 +0100 Subject: [PATCH 12/42] Add flag system with "sshfs.flags" config option --- package.json | 7 +++++++ src/config.ts | 25 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/package.json b/package.json index 688ebaa..4dc2ec6 100644 --- a/package.json +++ b/package.json @@ -290,6 +290,13 @@ "password": "CorrectHorseBatteryStaple" } ] + }, + "sshfs.flags": { + "title": "List of special flags to enable/disable certain fixes/features", + "description": "Flags are usually used for issues or beta testing. Flags can disappear/change anytime!", + "type": "array", + "items": "string", + "default": [] } } }, diff --git a/src/config.ts b/src/config.ts index ee26246..55cf882 100644 --- a/src/config.ts +++ b/src/config.ts @@ -326,3 +326,28 @@ vscode.workspace.onDidChangeConfiguration(async (e) => { return loadConfigs(); }); loadConfigs(); + +/** + * Checks the `sshfs.flags` config (overridable by e.g. workspace settings). + * - Flags are case-insensitive + * - If a flag appears twice, the first mention of it is used + * - If a flag appears as "NAME", `null` is returned + * - If a flag appears as "FLAG=VALUE", `VALUE` is returned as a string + * - If a flag is missing, `undefined` is returned (different from `null`!) + * @param target The name of the flag to look for + */ +export function getFlag(target: string): string | null | undefined { + target = target.toLowerCase(); + const flags: string[] = vscode.workspace.getConfiguration('sshfs').get('flags') || []; + for (const flag of flags) { + let name: string = flag; + let value: any = null; + const eq = flag.indexOf('='); + if (eq !== -1) { + name = flag.substring(0, eq); + value = flag.substring(eq + 1); + } + if (name.toLowerCase() === target) return value; + } + return undefined; +} From 598ae06ef9cfa1ff8192520fd8c36a1d8ee5507e Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 11 Feb 2021 16:46:59 +0100 Subject: [PATCH 13/42] Add temporary fix for issue #239 (flag "DF-GE") --- src/connect.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/connect.ts b/src/connect.ts index 43224d7..907053f 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -3,7 +3,7 @@ import { Socket } from 'net'; import { Client, ClientChannel, ConnectConfig, SFTPWrapper as SFTPWrapperReal } from 'ssh2'; import { SFTPStream } from 'ssh2-streams'; import * as vscode from 'vscode'; -import { getConfig } from './config'; +import { getConfig, getFlag } from './config'; import type { FileSystemConfig } from './fileSystemConfig'; import { censorConfig, Logging } from './logging'; import { toPromise } from './toPromise'; @@ -234,13 +234,21 @@ export async function createSSH(config: FileSystemConfig, sock?: NodeJS.Readable reject(error); }); try { - logging.info(`Creating SSH session over the opened socket`); - let debug = (_msg: string) => { }; + const finalConfig: ConnectConfig = { ...config, sock, ...DEFAULT_CONFIG }; if (config.debug) { const scope = Logging.scope(`ssh2(${config.name})`); - debug = (msg: string) => scope.debug(msg); + finalConfig.debug = (msg: string) => scope.debug(msg); } - client.connect(Object.assign(config, { sock, debug }, DEFAULT_CONFIG)); + // Unless the flag 'DF-GE' is specified, disable DiffieHellman groupex algorithms (issue #239) + // Note: If the config already specifies a custom `algorithms.key`, ignore it (trust the user?) + if (getFlag('DF-GE') === undefined && !finalConfig.algorithms?.kex) { + logging.info('Flag "DiffieHellman" specified, disabling DiffieHellman kex groupex algorithms'); + let kex: string[] = require('ssh2-streams/lib/constants').ALGORITHMS.KEX; + kex = kex.filter(algo => !algo.includes('diffie-hellman-group-exchange')); + logging.debug(`\tResulting algorithms.kex: ${kex}`); + finalConfig.algorithms = { ...finalConfig.algorithms, kex }; + } + client.connect(finalConfig); } catch (e) { reject(e); } From 628de09d38858355bd0dec538898f5d272e8727b Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 11 Feb 2021 16:55:46 +0100 Subject: [PATCH 14/42] 1.19.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4dc2ec6..6775ba2 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "SSH FS", "description": "File system provider using SSH", "publisher": "Kelvin", - "version": "1.19.1", + "version": "1.19.2", "engines": { "vscode": "^1.49.0" }, From 184177a2ff559daa0403de0fae9de9c7eb7a0c76 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 11 Feb 2021 18:03:31 +0100 Subject: [PATCH 15/42] Add "DEBUG_SSH2" flag --- src/connect.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connect.ts b/src/connect.ts index 907053f..28f96f1 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -235,7 +235,7 @@ export async function createSSH(config: FileSystemConfig, sock?: NodeJS.Readable }); try { const finalConfig: ConnectConfig = { ...config, sock, ...DEFAULT_CONFIG }; - if (config.debug) { + if (config.debug || getFlag('DEBUG_SSH2') !== undefined) { const scope = Logging.scope(`ssh2(${config.name})`); finalConfig.debug = (msg: string) => scope.debug(msg); } From a9082cc71701db2c45c77b49a116b7f891dc93ca Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 11 Feb 2021 18:04:03 +0100 Subject: [PATCH 16/42] Fix wording in logging for "DF-GE" flag --- src/connect.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connect.ts b/src/connect.ts index 28f96f1..e08cf7e 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -242,7 +242,7 @@ export async function createSSH(config: FileSystemConfig, sock?: NodeJS.Readable // Unless the flag 'DF-GE' is specified, disable DiffieHellman groupex algorithms (issue #239) // Note: If the config already specifies a custom `algorithms.key`, ignore it (trust the user?) if (getFlag('DF-GE') === undefined && !finalConfig.algorithms?.kex) { - logging.info('Flag "DiffieHellman" specified, disabling DiffieHellman kex groupex algorithms'); + logging.info('Flag "DF-GE" not specified, disabling DiffieHellman kex groupex algorithms'); let kex: string[] = require('ssh2-streams/lib/constants').ALGORITHMS.KEX; kex = kex.filter(algo => !algo.includes('diffie-hellman-group-exchange')); logging.debug(`\tResulting algorithms.kex: ${kex}`); From a40028e349df3149d8932e43f389b9bce721708d Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 11 Feb 2021 19:30:13 +0100 Subject: [PATCH 17/42] Make getConfig merge instant configs with an existing config if possible --- src/config.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/config.ts b/src/config.ts index 55cf882..a2d2257 100644 --- a/src/config.ts +++ b/src/config.ts @@ -292,8 +292,23 @@ export function getConfig(input: string): FileSystemConfig | undefined { const loaded = getConfigs().find(c => c.name.toLowerCase() === lower); if (loaded) return loaded; if (!input.includes('@')) return undefined; - const parsed = parseConnectionString(input); - return typeof parsed === 'string' ? undefined : parsed[0]; + const parseString = parseConnectionString(input); + if (typeof parseString === 'string') return undefined; + const [parsed] = parseString; + // If we're using the instant connection string, the host name might be a config name + const existing = getConfigs().find(c => c.name.toLowerCase() === parsed.host!.toLowerCase()); + if (existing) { + Logging.info(`getConfig('${input}') led to '${parsed.name}' which matches config '${existing.name}'`); + // Take the existing config, but (more or less) override it with the values present in `parsed` + // `name` be the same as in `parsed`, meaning it can be reused with `getConfig` on window reload. + return { + ...existing, ...parsed, + host: existing.host || parsed.host, // `parsed.host` is the session name, which might not be the actual hostname + _location: undefined, // Since this is a merged config, we have to flag it as such + _locations: [...existing._locations, ...parsed._locations], // Merge locations + }; + } + return parsed; } function valueMatches(a: any, b: any): boolean { From f7d9af38269e7921ffbefce38d463272f2313da1 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 11 Feb 2021 19:30:29 +0100 Subject: [PATCH 18/42] Make inputInstantConnection prefill with value from pickComplex --- src/ui-utils.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/ui-utils.ts b/src/ui-utils.ts index 2b439cb..f047982 100644 --- a/src/ui-utils.ts +++ b/src/ui-utils.ts @@ -80,8 +80,10 @@ export interface PickComplexOptions { nameFilter?: string; } -async function inputInstantConnection(): Promise { +async function inputInstantConnection(value?: string): Promise { + const valueSelection = value ? [value.length, value.length] as [number, number] : undefined; const name = await vscode.window.showInputBox({ + value, valueSelection, placeHolder: 'user@host:/home/user', prompt: 'SSH connection string', validateInput(value: string) { @@ -136,13 +138,16 @@ export async function pickComplex(manager: Manager, options: PickComplexOptions) quickPick.items = items; quickPick.title = 'Select ' + toSelect.join(' / '); quickPick.onDidAccept(() => { - const value = quickPick.activeItems[0]?.item; + let value = quickPick.activeItems[0]?.item; quickPick.hide(); + if (typeof value === 'function') { + value = value(quickPick.value); + } resolve(value); }); quickPick.onDidHide(() => resolve()); quickPick.show(); - }).then(result => typeof result === 'function' ? result() : result); + }); } export const pickConfig = (manager: Manager) => pickComplex(manager, { promptConfigs: true }) as Promise; From 788a0d94b7b3d032fadf9ff520891717be58fb00 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 11 Feb 2021 19:31:18 +0100 Subject: [PATCH 19/42] Improve PuTTY session discovery code --- src/putty.ts | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/src/putty.ts b/src/putty.ts index 718f403..a01b54b 100644 --- a/src/putty.ts +++ b/src/putty.ts @@ -10,7 +10,7 @@ const winreg = new Winreg({ export type NumberAsBoolean = 0 | 1; export interface PuttySession { - [key: string]: string | number | undefined; + //[key: string]: string | number | undefined; // General settings name: string; hostname: string; @@ -24,7 +24,7 @@ export interface PuttySession { proxyhost?: string; proxyport: number; proxylocalhost: NumberAsBoolean; - proxymethod: number; // Key of ['None', 'SOCKS 4', 'SOCKS 5', 'HTTP', 'Telnet', 'Local'] // Only checked first 3 + proxymethod: number; // Key of ['None', 'SOCKS 4', 'SOCKS 5', 'HTTP', 'Telnet', 'Local'] } function valueFromItem(item: Winreg.RegistryItem) { @@ -37,11 +37,22 @@ function valueFromItem(item: Winreg.RegistryItem) { throw new Error(`Unknown RegistryItem type: '${item.type}'`); } +const FORMATTED_FIELDS: (keyof PuttySession)[] = [ + 'name', 'hostname', 'protocol', 'portnumber', + 'username', 'usernamefromenvironment', 'tryagent', 'publickeyfile', + 'proxyhost', 'proxyport', 'proxylocalhost', 'proxymethod', +]; +export function formatSession(session: PuttySession): string { + const partial: Partial = {}; + for (const field of FORMATTED_FIELDS) partial[field] = session[field] as any; + return JSON.stringify(partial); +} + export async function getSessions() { Logging.info(`Fetching PuTTY sessions from registry`); const values = await toPromise(cb => winreg.keys(cb)); const sessions: PuttySession[] = []; - await Promise.all(values.map(regSession => (async (res, rej) => { + await Promise.all(values.map(regSession => (async () => { const name = decodeURIComponent(regSession.key.substr(winreg.key.length)); const props = await toPromise(cb => regSession.values(cb)); const properties: { [key: string]: string | number } = {}; @@ -49,21 +60,30 @@ export async function getSessions() { sessions.push({ name, ...(properties as any) }); })())); Logging.debug(`\tFound ${sessions.length} sessions:`); - sessions.forEach(s => Logging.debug(`\t${JSON.stringify(s)}`)); + sessions.forEach(s => Logging.debug(`\t- ${formatSession(s)}`)); return sessions; } -export async function getSession(name?: string, host?: string, username?: string, nameOnly = false): Promise { - const sessions = await getSessions(); +export async function findSession(sessions: PuttySession[], name?: string, host?: string, username?: string, nameOnly = true): Promise { if (name) { name = name.toLowerCase(); - const session = sessions.find(s => s.name.toLowerCase() === name) || null; + const session = sessions.find(s => s.name.toLowerCase() === name); if (nameOnly || session) return session; } - if (!host) return null; + if (!host) return undefined; host = host.toLowerCase(); const hosts = sessions.filter(s => s.hostname && s.hostname.toLowerCase() === host); if (!username) return hosts[0] || null; username = username.toLowerCase(); - return hosts.find(s => !s.username || s.username.toLowerCase() === username) || null; + return hosts.find(s => !s.username || s.username.toLowerCase() === username); +} + +export async function getSession(name?: string, host?: string, username?: string, nameOnly = true): Promise { + const sessions = await getSessions(); + return findSession(sessions, name, host, username, nameOnly); +} + +export async function getCachedFinder(): Promise { + const sessions = await getSessions(); + return (...args) => findSession(sessions, ...args); } From 7e7943c764661ea898bdc0a8b0e4d3851b511667 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 11 Feb 2021 19:35:10 +0100 Subject: [PATCH 20/42] Better handling of "$USER" and "$USERNAME" --- src/connect.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/connect.ts b/src/connect.ts index e08cf7e..cb8fbbc 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -1,5 +1,6 @@ import { readFile } from 'fs'; import { Socket } from 'net'; +import { userInfo } from 'os'; import { Client, ClientChannel, ConnectConfig, SFTPWrapper as SFTPWrapperReal } from 'ssh2'; import { SFTPStream } from 'ssh2-streams'; import * as vscode from 'vscode'; @@ -58,7 +59,10 @@ export async function calculateActualConfig(config: FileSystemConfig): Promise(cb => readFile(config.privateKeyPath!, cb)); From 7abe86137ec099bd97136e1163006a6329a3b3ea Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 11 Feb 2021 19:35:49 +0100 Subject: [PATCH 21/42] Better PuTTY interaction for instant connections --- src/connect.ts | 56 +++++++++++++++++++++++++---------------- src/fileSystemConfig.ts | 5 ++-- 2 files changed, 37 insertions(+), 24 deletions(-) diff --git a/src/connect.ts b/src/connect.ts index cb8fbbc..928527e 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -7,6 +7,7 @@ import * as vscode from 'vscode'; import { getConfig, getFlag } from './config'; import type { FileSystemConfig } from './fileSystemConfig'; import { censorConfig, Logging } from './logging'; +import type { PuttySession } from './putty'; import { toPromise } from './toPromise'; // tslint:disable-next-line:variable-name @@ -29,8 +30,8 @@ const PROMPT_FIELDS: Partial> = { host: ['Host', c => `Host for ${c.name}`, true], username: ['Username', c => `Username for ${c.name}`, true], - password: ['Password', c => `Password for ${c.username}@${c.name}`, false, true], - passphrase: ['Passphrase', c => `Passphrase for provided export/private key for ${c.username}@${c.name}`, false, true], + password: ['Password', c => `Password for '${c.username}' for ${c.name}`, false, true], + passphrase: ['Passphrase', c => `Passphrase for provided export/private key for '${c.username}' for ${c.name}`, false, true], }; async function promptFields(config: FileSystemConfig, ...fields: (keyof FileSystemConfig)[]): Promise { @@ -69,37 +70,48 @@ export async function calculateActualConfig(config: FileSystemConfig): Promise') { - // ^ '' is a special case used in parseConnectionString in fileSystemConfig.ts - await promptFields(config, 'host'); - // TODO: `config.putty === true` without config.host should prompt the user with *all* PuTTY sessions - if (!config.host) throw new Error(`'putty' was true but 'host' is empty/missing`); - mandatory = config.putty === true; - config.putty = config.host; - nameOnly = false; - } else { - config.putty = replaceVariables(config.putty); + const { getCachedFinder } = await import('./putty'); + const getSession = await getCachedFinder(); + const cUsername = config.username === '$USER' ? undefined : config.username; + const tryPutty = config.instantConnection || config.putty === ''; + let session: PuttySession | undefined; + if (tryPutty) { + // If we're trying to find one, we also check whether `config.host` represents the name of a PuTTY session + session = await getSession(config.host); + logging.info(`\ttryPutty is true, tried finding a config named '${config.host}' and found ${session ? `'${session.name}'` : 'no match'}`); + } + if (!session) { + let nameOnly = true; + if (config.putty === true) { + await promptFields(config, 'host'); + // TODO: `config.putty === true` without config.host should prompt the user with *all* PuTTY sessions + if (!config.host) throw new Error(`'putty' was true but 'host' is empty/missing`); + config.putty = config.host; + nameOnly = false; + } else { + config.putty = replaceVariables(config.putty); + } + session = await getSession(config.putty, config.host, cUsername, nameOnly); } - const session = await (await import('./putty')).getSession(config.putty, config.host, config.username, nameOnly); if (session) { if (session.protocol !== 'ssh') throw new Error(`The requested PuTTY session isn't a SSH session`); - config.username = config.username || session.username; + config.username = cUsername || session.username; if (!config.username && session.hostname && session.hostname.indexOf('@') >= 1) { config.username = session.hostname.substr(0, session.hostname.indexOf('@')); } - config.host = config.host || session.hostname; + // Used to be `config.host || session.hostname`, but `config.host` could've been just the session name + config.host = session.hostname.replace(/^.*?@/, ''); config.port = session.portnumber || config.port; config.agent = config.agent || (session.tryagent ? 'pageant' : undefined); - if (session.usernamefromenvironment) { - config.username = process.env.USERNAME || process.env.USER; - if (!config.username) throw new Error(`Trying to use the system username, but process.env.USERNAME or process.env.USER is missing`); - } + if (session.usernamefromenvironment) config.username = '$USER'; config.privateKeyPath = config.privateKeyPath || (!config.agent && session.publickeyfile) || undefined; switch (session.proxymethod) { case 0: @@ -118,7 +130,7 @@ export async function calculateActualConfig(config: FileSystemConfig): Promise', // Since this is like a "quick connect", automatically enable PuTTY support }, path]; } From fd485239693752350f4968ac856b6666e0e8bc52 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Sun, 14 Feb 2021 23:53:37 +0100 Subject: [PATCH 22/42] Overhaul README and improve package.json --- README.md | 109 +++++++++++++++++------------ media/add-workspace-folder.png | Bin 0 -> 8477 bytes media/config-editor.png | Bin 0 -> 92619 bytes media/explorer-terminal.png | Bin 21774 -> 0 bytes media/github.png | Bin 4269 -> 0 bytes media/hop-config.png | Bin 0 -> 4447 bytes media/prompt-username.png | Bin 0 -> 3368 bytes media/proxy-settings.png | Bin 0 -> 5462 bytes media/screenshot-commandpanel.png | Bin 9120 -> 0 bytes media/screenshot-config-editor.png | Bin 33956 -> 0 bytes media/screenshot-connect.png | Bin 19170 -> 0 bytes media/screenshot-create-config.png | Bin 7074 -> 0 bytes media/screenshot-explorer.png | Bin 19001 -> 0 bytes media/sftp-config.png | Bin 0 -> 14110 bytes media/shell-tasks.png | Bin 0 -> 83236 bytes media/tasks.png | Bin 28097 -> 0 bytes media/terminals.png | Bin 26183 -> 56485 bytes media/workspace-folder.png | Bin 0 -> 68900 bytes package.json | 29 +++++++- 19 files changed, 93 insertions(+), 45 deletions(-) create mode 100644 media/add-workspace-folder.png create mode 100644 media/config-editor.png delete mode 100644 media/explorer-terminal.png delete mode 100644 media/github.png create mode 100644 media/hop-config.png create mode 100644 media/prompt-username.png create mode 100644 media/proxy-settings.png delete mode 100644 media/screenshot-commandpanel.png delete mode 100644 media/screenshot-config-editor.png delete mode 100644 media/screenshot-connect.png delete mode 100644 media/screenshot-create-config.png delete mode 100644 media/screenshot-explorer.png create mode 100644 media/sftp-config.png create mode 100644 media/shell-tasks.png delete mode 100644 media/tasks.png create mode 100644 media/workspace-folder.png diff --git a/README.md b/README.md index f4e1d36..03a3078 100644 --- a/README.md +++ b/README.md @@ -1,71 +1,94 @@ # SSH FS - ![Logo](./resources/Logo.png) -[![GitHub package version](./media/github.png)](https://github.com/SchoofsKelvin/vscode-sshfs) -[![Visual Studio Marketplace](https://vsmarketplacebadge.apphb.com/version-short/Kelvin.vscode-sshfs.svg)](https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs) - [![Donate](./media/paypal.png)](https://www.paypal.me/KSchoofs) +[![GitHub package version](https://img.shields.io/github/v/release/SchoofsKelvin/vscode-sshfs?include_prereleases&label=GitHub%20version)](https://github.com/SchoofsKelvin/vscode-sshfs) +[![Visual Studio Marketplace](https://img.shields.io/visual-studio-marketplace/v/Kelvin.vscode-sshfs?label=VS%20Marketplace&logo=sdf)](https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs) +[![OpenVSX Registry](https://img.shields.io/open-vsx/v/Kelvin/vscode-sshfs?label=Open%20VSX)](https://open-vsx.org/extension/Kelvin/vscode-sshfs) +[![VS Market installs](https://img.shields.io/visual-studio-marketplace/i/Kelvin.vscode-sshfs?color=green&label=Installs)](https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs) +[![GitHub Sponsors](https://img.shields.io/github/sponsors/SchoofsKelvin?color=green&label=GitHub%20Sponsors)](https://github.com/sponsors/SchoofsKelvin) +[![Donate](./media/paypal.png)](https://www.paypal.me/KSchoofs) -This extension makes use of the new FileSystemProvider, added in version 1.23.0 of Visual Studio Code. It allows "mounting" a remote folder over SSH as a local Workspace folder. +This extension allows mounting remote folders as local workspace folders, launch integrated remote terminals and run `ssh-shell` tasks. -## Summary -* Use a remote directory (over SSH) as workspace folder -* Instantly create one or multiple terminals on the same host -* A built-in UI to add, edit and remove configurations -* Use agents, including Pageant and OpenSSH on Windows -* Use private keys (any supported by ssh2-streams, including PuTTY's PPK) -* Get prompted for a password/passphrase (plain text password aren't required) -* Easily create configurations that reference a PuTTY session/configuration -* Create tasks that run commands on a remote host (remote version of "shell" task type) -* Have multiple SSH (and regular) workspace folders at once -* Make use of SOCKS 4/5 and HTTP proxies and connection hopping +## Features -## Usage -Use the command `SSH FS: Create a SSH FS configuration`, or open the Settings UI using the `SSH FS: Open settings and edit configurations` and click Add: +### Config editor +The built-in config editor makes it easy to create and edit configurations: +![Config editor](./media/config-editor.png) -![Create a new configuration](./media/screenshot-create-config.png) +The config editors stores this, by default, in your User Settings (`settings.json`) as: +```json +"sshfs.configs": [ + { + "name": "hetzner", + "putty": "Hetzner", + "label": "Hetzner", + "hop": "hetzner2", + "root": "/root" + } +], +``` +This config is configured to copy settings (e.g. username, host, ...) from my PuTTY session. Due to me having loaded my private key in Pageant (PuTTY's agent), this config allows me to create a connection without having to provide a password/passphrase. It also specifies that all file operations _(`ssh://hetzner/some/file.js`)_ are relative to the `/root` directory on the server. -In this UI, you can also edit/delete existing configurations: +Configurations are read from your global User Settings, the current workspace's settings, and any JSON files configured with `sshfs.configpaths`. Even when the workspace overrides this setting, the globally-configured paths will still be read. The workspace versions do have higher priority for merging or ignoring duplicates. -![Config Editor](./media/screenshot-config-editor.png) +### Terminals +Using a simple button or the command palette, a remote terminal can be started: +![Terminals](./media/terminals.png) -To connect, either rightclick the name in the Explorer tab, or use the command panel: +_Uses `$SHELL` by default to launch your default user shell. A config option exists to change this, e.g. `"ksh -"` or `"exec .special-profile; $SHELL"`_ -![Connect](./media/screenshot-connect.png) +If a connection is already opened for a configuration, there is no need to reauthenticate. As long as the configuration hasn't changed, existing connections (both for workspace folders and terminals) will be reused. -This will add a Workspace folder linked to a SSH (SFTP) session: +### Remote shell tasks +A new task type `ssh-shell` is added to run shell commands remotely: +![Remote shell tasks](./media/shell-tasks.png) -![Workspace folder added](./media/screenshot-explorer.png) +The task terminal opens a full PTY terminal on the server. -## Changelog 1.18.0 -Starting from version 1.18.0 of the extension, a few new features are added: +### Remote workspace folders +Using a simple button or the command palette, we can mount a remote workspace folder as a regular local workspace folder: +![Remote workspace folder](./media/workspace-folder.png) -### Terminals -The configurations for SSH file systems can now also be used to spawn terminals: +_Same configuration used as from the [Config editor](#Config%20editor) above._ -![Terminals](./media/terminals.png) +This works seamlessly with extensions using the `vscode.workspace.fs` API _(added in VS Code 1.37.0)_, although not all extensions switched over, especially ones making use of binary files. + +As can be seen, right-clicking a remote directory gives the option to instantly open a remote terminal in this directory. + +The extension supports any `ssh://` URI. I actually opened `ssh://hetzner/ng-ui` as my folder, which resolves to `/root/ng-ui` on my remote server. By default, the button/command opens `ssh://hetzner/` which would then mount `/root`, as that is what my `Root` config field is set to. You can set it to whatever, including `~/path`. + +### Miscellaneous +The extension comes with a bunch of other improvements/features. Internally the [ssh2](https://www.npmjs.com/package/ssh2) package is used. The raw config JSON objects _(as seen in [Config editor](#Config%20editor))_ is, apart from some special fields, a one-on-one mapping of the config options supported by this package. Power users can edit their `settings.json` to e.g. make use of the `algorithms.cipher` field to specify a list of ciphers to use. + +Some other features worth mentioning: + +#### Prompt host/username/password/... for every connection +![Prompt username](./media/prompt-username.png) -Opening a terminal automatically sets the working directory to the `root` directory, unless a directory was explicitly selected to open the terminal in: +Active connections are reused to minimize prompts. A connection gets closed if there's no terminal or file system using it for over 5 seconds. -![Explorer Terminal](./media/explorer-terminal.png) +#### Proxy settings +Several proxy types (SSH hopping, HTTP and SOCKS 4/5) are supported: -This replaces the built-in "Open terminal" context menu option that isn't provided for remote field systems. For non-ssh:// file systems, the original "Open terminal" menu item is still displayed, the remote version only affects ssh:// file systems. +![Proxy settings](./media/proxy-settings.png) -### New task type -This extension adds a new task type `ssh-shell` which can be used to run commands on a configured remote host: +`SSH Hop` refers to using another configuration to hop through, similar to OpenSSH's `ProxyJump`: -![Tasks](./media/tasks.png) +![Hop config field](./media/hop-config.png) -Currently only the `command` field is supported. The goal is to replicate part of the `shell` task structure, e.g. an `args` array, support for `${workspaceFolder}`, ... +#### SFTP Command/Sudo and Terminal command +![SFTP and Terminal Command config fields](./media/sftp-config.png) -### Connection reuse -The way the extension connects to the remote hosts is reworked. The extension tries to only keep one connection per host active, with one connection supporting the file system access and a bunch of terminals. If the saved configuration has changed after a connection has been established, the next terminal/filesystem will start a new connection, but leave the first one alive and fine. +The extension supports using a custom `sftp` subsystem command. By default, it uses the `sftp` subsystem as indicated by the remote SSH server. In reality, this usually results in `/usr/lib/openssh/sftp-server` being used. -A handy enhancement this brings is that prompts (e.g. for passwords) should only happen once. As long as a connection is open (either by having a connected file system or terminal to the host), opening e.g. a new terminal skips the whole authentication phase and is basically instant. +The `SFTP Command` setting allows specifying to use a certain command instead of the default subsystem. The `SFTP Sudo` setting makes the extension try to create a sudo shell _(for the given user, or whatever sudo defaults to)_ and run `SFTP Command` _(or `/usr/lib/openssh/sftp-server` by default)_. For most users, setting this to `` should allow operating on the remote file system as `root`. Power users with esoteric setups can resort to changing `SFTP Command` to e.g. `sudo /some-sftp-server`, but might run into trouble with password prompts. -Connections without an active file system or terminals will automatically be closed somewhere after 5 seconds. If you're planning on running a bunch of tasks on a host without having a workspace folder connected to it, keeping a terminal open is handy and advised. +The `Terminal command` option, as mentioned in [Terminals](#Terminals), allows overriding the command used to launch the remote shell. By default, the extension launches a remote shell over the SSH connection, runs `cd ...` if necessary, followed by `$SHELL` to start the user's default shell. This config option allows to replace this `$SHELL` with a custom way way of starting the shell, or configuring the provided default SSH shell. -### Logging -Logging has slightly improved, resulting in better logs that help with resolving issues. \ No newline at end of file +## Links +- [GitHub](https://github.com/SchoofsKelvin/vscode-sshfs) ([Issues](https://github.com/SchoofsKelvin/vscode-sshfs/issues) | [(Pre)-releases](https://github.com/SchoofsKelvin/vscode-sshfs/releases) | [Roadmap](https://github.com/SchoofsKelvin/vscode-sshfs/projects/1) | [Sponsor](https://github.com/sponsors/SchoofsKelvin)) +- [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs) +- [Open VSX Registry](https://open-vsx.org/extension/Kelvin/vscode-sshfs) diff --git a/media/add-workspace-folder.png b/media/add-workspace-folder.png new file mode 100644 index 0000000000000000000000000000000000000000..ce16bb52534cb4be2628407a73a2bf94968abbdb GIT binary patch literal 8477 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 LNkvXXu0mjfw)%Y% literal 0 HcmV?d00001 diff --git a/media/config-editor.png b/media/config-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..de00d5adf68ed5e18a84394b33f4a710947c1532 GIT binary patch literal 92619 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 literal 0 HcmV?d00001 diff --git a/media/explorer-terminal.png b/media/explorer-terminal.png deleted file mode 100644 index bf443d2717338b09c0a5eb4dc1506470c73cbc55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21774 zcmbrmc|4SF*fx&HzKmt4h#6xyL{cdGFhcfitl6@r5XrvFSY`%Elx-+`){rGz#+E%> zB_cZ|ge>npsqgcBpZ9s+-}8KafAs0Y+;iX8eO=dip2u;V$K|2!4Rv~&vos_mB=j0c zRecf?GIkOY(p)Ms;5STESu?`&MgD zgX1zf{icWUFFuYW(2LXr8De>RuIo`I2u_s?SJP|BXfutSj@4&y7`ls;3U8%Akt5Qx2;9!+wkT0N zhwrZbkl(oYqiJLPwZEMI>y1F}fR`D*pVIuMKL*~Czr5k!uvhwe;|QYsHB^p+?k(AA zxboM?I~tN4agj8rh+f(moc#q3TDB^xH1<}$E}IKrVJDEJc!Vad#YWU{0J`1q7@(VSPk_Leul`wQ7tFaxb`7Wh15!)fFFDf#{9ho)uDLSNRcBdOBFo;Tx1T}3xr zcr$~x2$Ve;ydslPuI=ttD9gr~nt_A~kv`chdTMO+E5gv8NAu2dQCZVw_uI7S=}-~+ zu?$xJ2vOO~AH7-NIB|ae`lgNDO@39$tQT?V)0hEfRq;=A%A~s zP=`D4LYI^msEoekzW261!T0MofzOw|^yA-XI;=F5Z5FXx)zxeY@;7<-PxaN%LG17P z^_YM11m1lZnr5qy&amWm6HBa!N%*SmOp#V1>iKz&MSu~XR)Db8AlFs91fD*s@U2?k zADw=1w4!s&3Rgx(XCW%y!hEY36axKT)=e%ayr)9*lnlOwrYtPCGNEl!)v(;Rz1WPP z=z!UtKvV?gwi4PtzC5$^l>rrpGZt1Ei74zJjpRpKBivA#=w#MvCy;VIJsfxGZ8;(PQ+50!8q!?R9N$Mwsr$JL z(CYrtQ|gD}4oe$O1#so2se3}bi0*JOLoR}9NxBO8{_*P4zL@T@Mc^bM*kWPB2{gp# zge@)?1Uug^m3JrJni9A**ilUK+}|IZuvEa<*MYIqqhL7~!7}%jN8Y~&TQPFpU)dbZWZ}X8_>V6J*bR*RLb-tCK4^wUa|fAr^FAM2S+b%!MS;J02EYNPBp}_g*fj5YAB?>&}7%%S;VS>fQeb$zcKuf7nEL!Th$KeiG_!6@Qw|6lI^-y3tIZqAX w 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 o)9G4ab6Uc*;J^ry zC?x+(CiT=y5EgYMBnX0fiegS>J%|(B!^CBsb9Xl{w_P`)2j_wB-t+G}_x!$dzI(sh z)znyT+qh*T0Gq3!?g-s?(Xd-Bbba@w`a9i6Bc znTjAVpmjxS6p#d8&9Z@<|-3 zOaLLnl$CHR8SA4@PGPFbLCut;FOSdDYMsSUSi6e)Nq@@s|bAlQ|oMV6R3nx`=tu12l8H$P;l!yx`U}*FoW?xCjxIMm{lK8#@nGLw9`w$i;w6% z_CfEUlS6niG=*o^y20V6CngZ0>KCTHWQ;F)>2tA_G&7Lzc3?PcrfQ`fGBPH&+xtRTTyGv%KH)jf`4s^9xR@l?_wOTLydJW4xG9D2QGO8-T(jq diff --git a/media/hop-config.png b/media/hop-config.png new file mode 100644 index 0000000000000000000000000000000000000000..72244492c56c6d02fefe0a4b4d2765effdbe175b GIT binary patch literal 4447 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 literal 0 HcmV?d00001 diff --git a/media/prompt-username.png b/media/prompt-username.png new file mode 100644 index 0000000000000000000000000000000000000000..3e50adc9339164df83d12a13e25ef90507e9479b GIT binary patch literal 3368 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 A>Hq)$ literal 0 HcmV?d00001 diff --git a/media/screenshot-commandpanel.png b/media/screenshot-commandpanel.png deleted file mode 100644 index a676684fe5ca8b23d2db3329d1f3c75393fdde03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9120 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 F{{Tk-k`w>{ diff --git a/media/screenshot-config-editor.png b/media/screenshot-config-editor.png deleted file mode 100644 index 889ca82004a97785f7ed8e1c1fa982967242826f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33956 zcmeFYby%C-wl4}rOQE<0iWG_zmmtNZSg}HIcN&5hcXuo9Zb5@nin|0#AxMjBDYQUw zzv=g_b=Em|oqhM&`?>$!o99XLW z)z#C}GcYhPGBPqTF)=qcx3;#nv9Wpg?j0BmwzIQ?Kp^(^_KuE@PEJnF&d#o`uJ7N! zcXxO9@bK{T^z`!b^6~NU_4W1h^9u+FcxsXJ)GChjCbaZq~OiXNSY@~ zE1^(mRaI3@O$`hNYiMX_Y;0_4X=!b3ZEI_5Z*Twj@nc6v$EQ!9y1Kfe8Yc_;7F#~A zPew&878dsQ_V)Gl4Gatn4h{|t4Gj+ukB*LxkB?7GOu*sr$;rv7sj2Dd=`UZt%*@Qp z&dx3@EPVa?b$NNYXKs6b`*6Fb=Wu?0eSLjnV`FD$XLon^`}gnr`};qC{yaQ9-2QcT zaB^|By?t?TaCCHZa&mHddU|njadL5eeR6VreSLLvcXxGldwcuv@PM50|Nr%$YQWB< zkr^rU*hxXp6$RyK-=8-sDT`7dvXSEbYu)#nj@Iuz%v`KcoXp-iyytYVdQZpC$-@b> zl-EV>vLG@=St*dG@z2hL5XND*)mBAS8jGJ&1RSQy=5#VUPL`a};e{M;TG-=MU1o^i zeRmSD$IUI2sz%SZueFT{j67qdvSx`c8YEVE9fYm;^e_N^akEnO>qq9|@)gXZmGABj zrE%HF=e^lF;uJ;RBjrIlQsfQp7ZLe3=7DF7n0vVlOT-&bi9${%34c9y#)^{i z-o?HMZ3`Ko>vRqEkzSHAPh1i16Qln{$D?pay`D$lkw{VE5$~iHDWdSNZYoc>0#>ic zAG8=hiT*=4H{eR*ZhotC^@04ss^k;@znWJUca~Ql?gH)`tcd@9=8swE)!hT)+#xC< zuZz;h?w`$};QRE^t%u93pGngu5AMZnh<5?3g-8X z&Ch8}us!^+iI4Z+F}Z^arGN*Fm@q4ep{NfkrCHNz1rY%^)(|qS6T*jk`qyXOu3Rq8 z%U?;kvh6_6)(*Udxa_p?|+ z6mVA_aC1QE!f?#|K=!i#)Y1x#W#{3xyCCPE¨zI*K=w>Oi!iJ9aS9aozwtUN3bx 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 p;Fw3fF+$WU0eRqBP=!)L$Y@ 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 Me3lg{7t#;-U*&&bC;$Ke diff --git a/media/screenshot-connect.png b/media/screenshot-connect.png deleted file mode 100644 index a97941489b7ea93f8373ecf73fd33b7adb730369..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19170 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 F697OP+tw0DAR5 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 Vsh0cnKHxD=44$rjF6*2UngF3UGO7Ro diff --git a/media/sftp-config.png b/media/sftp-config.png new file mode 100644 index 0000000000000000000000000000000000000000..34745a657c894a1614061b1fc1c0ba79653b5a97 GIT binary patch literal 14110 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 literal 0 HcmV?d00001 diff --git a/media/tasks.png b/media/tasks.png deleted file mode 100644 index d465905c16da6e9e536cfb83621406d28394228a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28097 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 diff --git a/media/terminals.png b/media/terminals.png index d8a68f561e3f1dd197af1e81db74d40d335a60df..c661f5d38965bc2d4021ec523a4086dfe92b0db8 100644 GIT binary patch literal 56485 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%0A*(`@2jGQ(EiE^9TU^jr5J;BI(!le- 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 mb50VVfbj=I@LWssGqLi)2ghn12G|>Q){A literal 26183 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 kS(I$*1!DN5( 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 z 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 AK>z>% literal 0 HcmV?d00001 diff --git a/package.json b/package.json index 6775ba2..184a85f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vscode-sshfs", "displayName": "SSH FS", - "description": "File system provider using SSH", + "description": "File system, terminal and task provider using SSH", "publisher": "Kelvin", "version": "1.19.2", "engines": { @@ -28,6 +28,7 @@ "onCommand:sshfs.refresh" ], "main": "./dist/extension.js", + "homepage": "https://github.com/SchoofsKelvin/vscode-sshfs", "author": { "name": "Kelvin Schoofs", "email": "schoofs.kelvin@gmail.com", @@ -48,7 +49,31 @@ "sshfs", "sync", "filesystem", - "terminal" + "terminal", + "sftp", + "scp" + ], + "badges": [ + { + "url": "https://img.shields.io/github/v/release/SchoofsKelvin/vscode-sshfs?include_prereleases&label=GitHub%20version", + "href": "https://github.com/SchoofsKelvin/vscode-sshfs/releases", + "description": "Releases on GitHub" + }, + { + "url": "https://img.shields.io/open-vsx/v/Kelvin/vscode-sshfs?label=Open%20VSX", + "href": "https://open-vsx.org/extension/Kelvin/vscode-sshfs", + "description": "Open VSX Registry" + }, + { + "url": "https://img.shields.io/visual-studio-marketplace/v/Kelvin.vscode-sshfs?label=VS%20Marketplace&logo=sdf", + "href": "https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs", + "description": "Visual Studio Marketplace" + }, + { + "url": "https://img.shields.io/visual-studio-marketplace/i/Kelvin.vscode-sshfs?label=Installs", + "href": "https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs", + "description": "Unique installs using Visual Studio Marketplace" + } ], "contributes": { "views": { From 638e62f2a803ba775d2d03b3fa33a5a6f7eec38a Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Mon, 15 Feb 2021 00:01:13 +0100 Subject: [PATCH 23/42] Reword cancel button to back button at top of config editor --- webview/src/ConfigEditor/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webview/src/ConfigEditor/index.tsx b/webview/src/ConfigEditor/index.tsx index fb1090a..443a01d 100644 --- a/webview/src/ConfigEditor/index.tsx +++ b/webview/src/ConfigEditor/index.tsx @@ -25,7 +25,7 @@ class ConfigEditor extends React.Component { return

- +

{oldConfig.label || oldConfig.name}

{formatConfigLocation(oldConfig._location!)}

From 271da67b9599e7c2952669efdbcc140fc49bd61f Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Mon, 15 Feb 2021 00:03:13 +0100 Subject: [PATCH 24/42] Make use of short syntax for boolean prop for "optional" --- webview/src/ConfigEditor/fields.tsx | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/webview/src/ConfigEditor/fields.tsx b/webview/src/ConfigEditor/fields.tsx index 0ad6a85..67e32f6 100644 --- a/webview/src/ConfigEditor/fields.tsx +++ b/webview/src/ConfigEditor/fields.tsx @@ -36,13 +36,13 @@ export function merge(config: FileSystemConfig, onChange: FSCChanged<'merge'>): export function label(config: FileSystemConfig, onChange: FSCChanged<'label'>): React.ReactElement { const callback = (value?: string) => onChange('label', value); const description = 'Label to display in some UI places (e.g. popups)'; - return + return } export function group(config: FileSystemConfig, onChange: FSCChanged<'group'>): React.ReactElement { const callback = (newValue: string) => onChange('group', newValue); const description = 'Group for this config, to group configs together in some UI places. Allows subgroups, in the format "Group1.SubGroup1.Subgroup2"'; - return + return } export function putty(config: FileSystemConfig, onChange: FSCChanged<'putty'>): React.ReactElement { @@ -50,7 +50,7 @@ export function putty(config: FileSystemConfig, onChange: FSCChanged<'putty'>): const description = 'A name of a PuTTY session, or `true` to find the PuTTY session from the host address'; const values = ['']; const value = config.putty === true ? '' : config.putty || undefined; - return + return } export function host(config: FileSystemConfig, onChange: FSCChanged<'host'>): React.ReactElement { @@ -58,26 +58,26 @@ export function host(config: FileSystemConfig, onChange: FSCChanged<'host'>): Re const description = 'Hostname or IP address of the server. Supports environment variables, e.g. $HOST'; const values = ['']; const value = (config.host as any) === true ? '' : config.host; - return + return } export function port(config: FileSystemConfig, onChange: FSCChanged<'port'>): React.ReactElement { const callback = (value: number) => onChange('port', value); const description = 'Port number of the server. Supports environment variables, e.g. $PORT'; - return + return } export function root(config: FileSystemConfig, onChange: FSCChanged<'root'>): React.ReactElement { const callback = (value: string) => onChange('root', value); const description = 'Path on the remote server where the root path in vscode should point to. Defaults to /'; - return + return } export function agent(config: FileSystemConfig, onChange: FSCChanged<'agent'>): React.ReactElement { const callback = (newValue: string) => onChange('agent', newValue); const description = `Path to ssh-agent's UNIX socket for ssh-agent-based user authentication. Supports 'pageant' for PuTTY's Pagent, and environment variables, e.g. $SSH_AUTH_SOCK`; const values = ['pageant', '//./pipe/openssh-ssh-agent', '$SSH_AUTH_SOCK']; - return + return } export function username(config: FileSystemConfig, onChange: FSCChanged<'username'>): React.ReactElement { @@ -85,7 +85,7 @@ export function username(config: FileSystemConfig, onChange: FSCChanged<'usernam const description = 'Username for authentication. Supports environment variables, e.g. $USERNAME'; const values = ['', '$USERNAME']; const value = (config.username as any) === true ? '' : config.username; - return + return } export function password(config: FileSystemConfig, onChange: FSCChanged<'password'>): React.ReactElement { @@ -93,13 +93,13 @@ export function password(config: FileSystemConfig, onChange: FSCChanged<'passwor const description = 'Password for password-based user authentication. Supports env variables. This gets saved in plaintext! Using prompts or private keys is recommended!'; const values = ['']; const value = (config.password as any) === true ? '' : config.password; - return + return } export function privateKeyPath(config: FileSystemConfig, onChange: FSCChanged<'privateKeyPath'>): React.ReactElement { const callback = (value?: string) => onChange('privateKeyPath', value); const description = 'A path to a private key. Supports environment variables, e.g. `$USERPROFILE/.ssh/myKey.ppk` or `$HOME/.ssh/myKey`'; - return + return } export function passphrase(config: FileSystemConfig, onChange: FSCChanged<'passphrase'>): React.ReactElement { @@ -107,13 +107,13 @@ export function passphrase(config: FileSystemConfig, onChange: FSCChanged<'passp const description = 'Passphrase for unlocking an encrypted private key. Supports env variables. This gets saved in plaintext! Using prompts or private keys is recommended!'; const values = ['']; const value = (config.passphrase as any) === true ? '' : config.passphrase; - return + return } export function sftpCommand(config: FileSystemConfig, onChange: FSCChanged<'sftpCommand'>): React.ReactElement { const callback = (newValue?: string) => onChange('sftpCommand', newValue); const description = 'A command to run on the remote SSH session to start a SFTP session (defaults to sftp subsystem)'; - return + return } export function sftpSudo(config: FileSystemConfig, onChange: FSCChanged<'sftpSudo'>): React.ReactElement { @@ -130,7 +130,7 @@ export function terminalCommand(config: FileSystemConfig, onChange: FSCChanged<' const values = ['$SHELL', '/usr/bin/bash', '/usr/bin/sh']; let value = config.terminalCommand === '$SHELL' ? '' : config.terminalCommand || ''; if (Array.isArray(value)) value = value.join('; '); - return + return } export type FieldFactory = (config: FileSystemConfig, onChange: FSCChanged, onChangeMultiple: FSCChangedMultiple) => React.ReactElement | null; From 3bfdd7d5c2dc4a8442423b0c147cc1f32c69e479 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Mon, 15 Feb 2021 00:03:51 +0100 Subject: [PATCH 25/42] Fix weird behavior "sftpSudo" field in config editor --- webview/src/ConfigEditor/fields.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webview/src/ConfigEditor/fields.tsx b/webview/src/ConfigEditor/fields.tsx index 67e32f6..2d1688f 100644 --- a/webview/src/ConfigEditor/fields.tsx +++ b/webview/src/ConfigEditor/fields.tsx @@ -120,8 +120,8 @@ export function sftpSudo(config: FileSystemConfig, onChange: FSCChanged<'sftpSud const callback = (newValue?: string) => onChange('sftpSudo', newValue === '' ? true : newValue); const description = 'Whether to use a sudo shell (and for which user) to run the sftpCommand in (if present, gets passed as -u to sudo)'; const values = ['']; - const value = (config.sftpSudo && typeof config.sftpSudo === 'string') ? config.sftpSudo : ''; - return + const value = config.sftpSudo === true ? '' : (typeof config.sftpSudo === 'string' ? config.sftpSudo : undefined); + return } export function terminalCommand(config: FileSystemConfig, onChange: FSCChanged<'terminalCommand'>): React.ReactElement { From d97f9a4e9b8d381535d707ec7791a113235c2849 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Mon, 15 Feb 2021 13:50:37 +0100 Subject: [PATCH 26/42] 1.19.3 --- package.json | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 184a85f..e9b6296 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "SSH FS", "description": "File system, terminal and task provider using SSH", "publisher": "Kelvin", - "version": "1.19.2", + "version": "1.19.3", "engines": { "vscode": "^1.49.0" }, @@ -54,26 +54,26 @@ "scp" ], "badges": [ - { - "url": "https://img.shields.io/github/v/release/SchoofsKelvin/vscode-sshfs?include_prereleases&label=GitHub%20version", - "href": "https://github.com/SchoofsKelvin/vscode-sshfs/releases", - "description": "Releases on GitHub" - }, - { - "url": "https://img.shields.io/open-vsx/v/Kelvin/vscode-sshfs?label=Open%20VSX", - "href": "https://open-vsx.org/extension/Kelvin/vscode-sshfs", - "description": "Open VSX Registry" - }, - { - "url": "https://img.shields.io/visual-studio-marketplace/v/Kelvin.vscode-sshfs?label=VS%20Marketplace&logo=sdf", - "href": "https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs", - "description": "Visual Studio Marketplace" - }, - { - "url": "https://img.shields.io/visual-studio-marketplace/i/Kelvin.vscode-sshfs?label=Installs", - "href": "https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs", - "description": "Unique installs using Visual Studio Marketplace" - } + { + "url": "https://img.shields.io/github/v/release/SchoofsKelvin/vscode-sshfs?include_prereleases&label=GitHub%20version", + "href": "https://github.com/SchoofsKelvin/vscode-sshfs/releases", + "description": "Releases on GitHub" + }, + { + "url": "https://img.shields.io/open-vsx/v/Kelvin/vscode-sshfs?label=Open%20VSX", + "href": "https://open-vsx.org/extension/Kelvin/vscode-sshfs", + "description": "Open VSX Registry" + }, + { + "url": "https://img.shields.io/visual-studio-marketplace/v/Kelvin.vscode-sshfs?label=VS%20Marketplace&logo=sdf", + "href": "https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs", + "description": "Visual Studio Marketplace" + }, + { + "url": "https://img.shields.io/visual-studio-marketplace/i/Kelvin.vscode-sshfs?label=Installs", + "href": "https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs", + "description": "Unique installs using Visual Studio Marketplace" + } ], "contributes": { "views": { From 6d124f81f650c45ea1976eab2090994c13fe0e91 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Mon, 15 Feb 2021 18:37:45 +0100 Subject: [PATCH 27/42] Switch to SchoofsKelvin/event-utilities@v1 action in build-extension.yml workflow --- .github/workflows/build-extension.yml | 42 +++++++++------------------ 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/.github/workflows/build-extension.yml b/.github/workflows/build-extension.yml index 96425cc..baf2377 100644 --- a/.github/workflows/build-extension.yml +++ b/.github/workflows/build-extension.yml @@ -23,26 +23,12 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@v2 - - name: Define variables - id: vars - run: | - SOURCE_NAME=${GITHUB_REF#refs/*/} - VSIX_NAME="vscode-sshfs-$SOURCE_NAME.vsix" - if [[ $GITHUB_REF == refs/tags/v* ]]; then - TAG_VERSION=${GITHUB_REF#refs/tags/v} - VSIX_NAME="vscode-sshfs-$TAG_VERSION.vsix" - echo ::set-output name=TAG_VERSION::$TAG_VERSION - elif [[ $GITHUB_REF == refs/pull/*/head || $GITHUB_REF == refs/pull/*/merge ]]; then - PR_NUMBER=${GITHUB_REF#refs/pull/} - PR_NUMBER=${PR_NUMBER%/head} - PR_NUMBER=${PR_NUMBER%/merge} - VSIX_NAME="vscode-sshfs-pr-$PR_NUMBER.vsix" - echo ::set-output name=PR_NUMBER::$PR_NUMBER - elif [[ -n $SOURCE_NAME ]]; then - VSIX_NAME="vscode-sshfs-$SOURCE_NAME.vsix" - fi - VSIX_NAME=${VSIX_NAME//"/"/"-"} - echo ::set-output name=VSIX_NAME::$VSIX_NAME + - name: Event Utilities + uses: SchoofsKelvin/event-utilities@v1 + id: utils + with: + artifact_prefix: "vscode-sshfs" + artifact_extension: "vsix" - name: Use Node.js 10.x uses: actions/setup-node@v1 with: @@ -57,31 +43,31 @@ jobs: working-directory: webview run: yarn --frozen-lockfile - name: Build extension - run: vsce package -o ${{ steps.vars.outputs.VSIX_NAME }} + run: vsce package -o ${{ steps.utils.outputs.artifact_name }} - name: Upload a Build Artifact uses: actions/upload-artifact@v2.2.1 with: - name: ${{ steps.vars.outputs.VSIX_NAME }} - path: ${{ steps.vars.outputs.VSIX_NAME }} + name: ${{ steps.utils.outputs.artifact_name }} + path: ${{ steps.utils.outputs.artifact_name }} if-no-files-found: error - name: Create release id: create_release - if: ${{ success() && steps.vars.outputs.TAG_VERSION }} + if: ${{ success() && steps.utils.outputs.tag_version }} uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} - release_name: Release ${{ steps.vars.outputs.TAG_VERSION }} + release_name: Release ${{ steps.utils.outputs.tag_version }} draft: true - name: Upload release asset id: upload_release_asset - if: ${{ success() && steps.vars.outputs.TAG_VERSION }} + if: ${{ success() && steps.utils.outputs.tag_version }} uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ${{ steps.vars.outputs.VSIX_NAME }} - asset_name: ${{ steps.vars.outputs.VSIX_NAME }} + asset_path: ${{ steps.utils.outputs.artifact_name }} + asset_name: ${{ steps.utils.outputs.artifact_name }} asset_content_type: application/vsix From 218188ab3a4470245b43c5b56591a6df35e060b4 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Tue, 2 Mar 2021 18:28:54 +0100 Subject: [PATCH 28/42] Improve flag system + auto-toggle "DF-GE" flag --- src/config.ts | 105 ++++++++++++++++++++++++++++++++++++++++++------- src/connect.ts | 7 ++-- 2 files changed, 94 insertions(+), 18 deletions(-) diff --git a/src/config.ts b/src/config.ts index a2d2257..fdb7444 100644 --- a/src/config.ts +++ b/src/config.ts @@ -342,27 +342,102 @@ vscode.workspace.onDidChangeConfiguration(async (e) => { }); loadConfigs(); + +export type FlagValue = string | boolean | null; +export type FlagCombo = [value: FlagValue, origin: string]; +export const DEFAULT_FLAGS: string[] = ['-DF-GE']; +let cachedFlags: Record = {}; +function calculateFlags(): Record { + const flags: Record = {}; + const config = vscode.workspace.getConfiguration('sshfs').inspect('flags'); + if (!config) throw new Error(`Could not inspect "sshfs.flags" config field`); + function parseList(list: string[] | undefined, origin: string) { + if (list === undefined) return; + if (!Array.isArray(list)) throw new Error(`Expected string array for flags, but got: ${list}`); + const scope: Record = {}; + for (const flag of list) { + let name: string = flag; + let value: FlagValue = null; + const eq = flag.indexOf('='); + if (eq !== -1) { + name = flag.substring(0, eq); + value = flag.substring(eq + 1); + } else if (flag.startsWith('+')) { + name = flag.substring(1); + value = true; + } else if (flag.startsWith('-')) { + name = flag.substring(1); + value = false; + } + name = name.toLocaleLowerCase(); + if (name in scope) continue; + scope[name] = [value, origin]; + } + // Override if necessary (since workspace settings come after global settings) + // Per "location", we still ignore duplicate flag names + Object.assign(flags, scope); + } + parseList(DEFAULT_FLAGS, 'Built-in Default'); + parseList(config.defaultValue, 'Default Settings'); + // Electron v11 crashes for DiffieHellman GroupExchange, although it's fixed in 11.3.0 + if ((process.versions as { electron?: string }).electron?.match(/^11\.(0|1|2)\./)) { + parseList(['+DF-GE'], 'Fix for issue #239') + } + parseList(config.globalValue, 'Global Settings'); + parseList(config.workspaceValue, 'Workspace Settings'); + parseList(config.workspaceFolderValue, 'WorkspaceFolder Settings'); + Logging.info(`Calculated config flags: ${JSON.stringify(flags)}`); + return cachedFlags = flags; +} + +vscode.workspace.onDidChangeConfiguration(event => { + if (event.affectsConfiguration('sshfs.flags')) calculateFlags(); +}); +calculateFlags(); + +/** Returns a cached version. Gets updated by ConfigurationChangeEvent events */ +export function getFlags(): Record { return cachedFlags; } + /** * Checks the `sshfs.flags` config (overridable by e.g. workspace settings). - * - Flags are case-insensitive + * - Flag names are case-insensitive * - If a flag appears twice, the first mention of it is used * - If a flag appears as "NAME", `null` is returned * - If a flag appears as "FLAG=VALUE", `VALUE` is returned as a string + * - If a flag appears as `+FLAG` (and no `=`), `true` is returned (as a boolean) + * - If a flag appears as `-FLAG` (and no `=`), `false` is returned (as a boolean) * - If a flag is missing, `undefined` is returned (different from `null`!) + * + * For `undefined`, an actual `undefined` is returned. For all other cases, a FlagCombo + * is returned, e.g. "NAME" returns `[null, "someOrigin"]` and `"+F"` returns `[true, "someOrigin"]` * @param target The name of the flag to look for */ -export function getFlag(target: string): string | null | undefined { - target = target.toLowerCase(); - const flags: string[] = vscode.workspace.getConfiguration('sshfs').get('flags') || []; - for (const flag of flags) { - let name: string = flag; - let value: any = null; - const eq = flag.indexOf('='); - if (eq !== -1) { - name = flag.substring(0, eq); - value = flag.substring(eq + 1); - } - if (name.toLowerCase() === target) return value; - } - return undefined; +export function getFlag(target: string): FlagCombo | undefined { + return calculateFlags()[target.toLowerCase()]; +} + +/** + * Built on top of getFlag. Tries to convert the flag value to a boolean using these rules: + * - If the flag isn't present, `missingValue` is returned + * Although this probably means I'm using a flag that I never added to `DEFAULT_FLAGS` + * - Booleans are kept + * - `null` is counted as `true` (means a flag like "NAME" was present without any value or prefix) + * - Strings try to get converted in a case-insensitive way: + * - `true/t/yes/y` becomes true + * - `false/f/no/n` becomes false + * - All other strings result in an error + * @param target The name of the flag to look for + * @param defaultValue The value to return when no flag with the given name is present + * @returns The matching FlagCombo or `[missingValue, 'missing']` instead + */ +export function getFlagBoolean(target: string, missingValue: boolean): FlagCombo { + const combo = getFlag(target); + if (!combo) return [missingValue, 'missing']; + const [value, reason] = combo; + if (value == null) return [true, reason]; + if (typeof value === 'boolean') return combo; + const lower = value.toLowerCase(); + if (lower === 'true' || lower === 't' || lower === 'yes' || lower === 'y') return [true, reason]; + if (lower === 'false' || lower === 'f' || lower === 'no' || lower === 'n') return [false, reason]; + throw new Error(`Could not convert '${value}' for flag '${target}' to a boolean!`); } diff --git a/src/connect.ts b/src/connect.ts index 928527e..4e1419b 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -4,7 +4,7 @@ import { userInfo } from 'os'; import { Client, ClientChannel, ConnectConfig, SFTPWrapper as SFTPWrapperReal } from 'ssh2'; import { SFTPStream } from 'ssh2-streams'; import * as vscode from 'vscode'; -import { getConfig, getFlag } from './config'; +import { getConfig, getFlag, getFlagBoolean } from './config'; import type { FileSystemConfig } from './fileSystemConfig'; import { censorConfig, Logging } from './logging'; import type { PuttySession } from './putty'; @@ -259,8 +259,9 @@ export async function createSSH(config: FileSystemConfig, sock?: NodeJS.Readable } // Unless the flag 'DF-GE' is specified, disable DiffieHellman groupex algorithms (issue #239) // Note: If the config already specifies a custom `algorithms.key`, ignore it (trust the user?) - if (getFlag('DF-GE') === undefined && !finalConfig.algorithms?.kex) { - logging.info('Flag "DF-GE" not specified, disabling DiffieHellman kex groupex algorithms'); + const [flagV, flagR] = getFlagBoolean('DF-GE', false); + if (flagV) { + logging.info(`Flag "DF-GE" enabled due to '${flagR}', disabling DiffieHellman kex groupex algorithms`); let kex: string[] = require('ssh2-streams/lib/constants').ALGORITHMS.KEX; kex = kex.filter(algo => !algo.includes('diffie-hellman-group-exchange')); logging.debug(`\tResulting algorithms.kex: ${kex}`); From aa5600f63fd5c46cda226f40c075c68d80dc7897 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Tue, 2 Mar 2021 18:29:59 +0100 Subject: [PATCH 29/42] 1.19.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e9b6296..45c1350 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "SSH FS", "description": "File system, terminal and task provider using SSH", "publisher": "Kelvin", - "version": "1.19.3", + "version": "1.19.4", "engines": { "vscode": "^1.49.0" }, From f20d4a5a0452ee0384c6647a35fcf0b5deea14bb Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 18 Mar 2021 22:22:38 +0100 Subject: [PATCH 30/42] Switch to Timmmm's ssh2-streams patch1 branch (#244) --- package.json | 3 +++ yarn.lock | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 45c1350..22f6597 100644 --- a/package.json +++ b/package.json @@ -376,5 +376,8 @@ "socks": "^2.2.0", "ssh2": "^0.8.9", "winreg": "^1.2.4" + }, + "resolutions": { + "ssh2-streams": "Timmmm/ssh2-streams#patch-1" } } diff --git a/yarn.lock b/yarn.lock index 98d8b4b..a96e02c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2630,10 +2630,9 @@ split@^1.0.1: dependencies: through "2" -ssh2-streams@~0.4.10: +ssh2-streams@Timmmm/ssh2-streams#patch-1, ssh2-streams@~0.4.10: version "0.4.10" - resolved "https://registry.yarnpkg.com/ssh2-streams/-/ssh2-streams-0.4.10.tgz#48ef7e8a0e39d8f2921c30521d56dacb31d23a34" - integrity sha512-8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ== + resolved "https://codeload.github.com/Timmmm/ssh2-streams/tar.gz/75f6d3425d071ac73a18fd46e2f5e738bfe897c5" dependencies: asn1 "~0.2.0" bcrypt-pbkdf "^1.0.2" From d69de1a009aadd1d721e38be1c00910032f90b66 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 18 Mar 2021 23:35:52 +0100 Subject: [PATCH 31/42] Update TypeScript to 4.2.3 --- package.json | 2 +- src/connect.ts | 2 +- src/sshFileSystem.ts | 2 +- src/toPromise.ts | 2 +- src/ui-utils.ts | 2 +- yarn.lock | 8 ++++---- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 22f6597..b64b10d 100644 --- a/package.json +++ b/package.json @@ -366,7 +366,7 @@ "clean-webpack-plugin": "^2.0.0", "source-map-support": "^0.5.19", "ts-loader": "^7.0.5", - "typescript": "^4.0.2", + "typescript": "^4.2.3", "webpack": "^4.29.6", "webpack-cli": "^3.2.3" }, diff --git a/src/connect.ts b/src/connect.ts index 4e1419b..4c586aa 100644 --- a/src/connect.ts +++ b/src/connect.ts @@ -361,7 +361,7 @@ export async function getSFTP(client: Client, config: FileSystemConfig): Promise if (config.sftpSudo) await startSudo(shell, config, config.sftpSudo); shell.write(`echo SFTP READY\n`); // Wait until we see "SFTP READY" (skipping welcome messages etc) - await new Promise((ready, nvm) => { + await new Promise((ready, nvm) => { const handler = (data: string | Buffer) => { if (data.toString().trim() !== 'SFTP READY') return; shell.stdout.removeListener('data', handler); diff --git a/src/sshFileSystem.ts b/src/sshFileSystem.ts index 5ff9479..8c58249 100644 --- a/src/sshFileSystem.ts +++ b/src/sshFileSystem.ts @@ -66,7 +66,7 @@ export class SSHFileSystem implements vscode.FileSystemProvider { this.waitForContinue = false; if (this.closed) return reject(new Error('Connection closed')); try { - const canContinue = func((err, res) => err ? reject(err) : resolve(res)); + const canContinue = func((err, res) => err ? reject(err) : resolve(res!)); if (!canContinue) this.waitForContinue = true; } catch (e) { reject(e); diff --git a/src/toPromise.ts b/src/toPromise.ts index 48df32f..086d78b 100644 --- a/src/toPromise.ts +++ b/src/toPromise.ts @@ -3,7 +3,7 @@ export type toPromiseCallback = (err?: Error | null, res?: T) => void; export async function toPromise(func: (cb: toPromiseCallback) => void): Promise { return new Promise((resolve, reject) => { try { - func((err, res) => err ? reject(err) : resolve(res)); + func((err, res) => err ? reject(err) : resolve(res!)); } catch (e) { reject(e); } diff --git a/src/ui-utils.ts b/src/ui-utils.ts index f047982..9ef1924 100644 --- a/src/ui-utils.ts +++ b/src/ui-utils.ts @@ -145,7 +145,7 @@ export async function pickComplex(manager: Manager, options: PickComplexOptions) } resolve(value); }); - quickPick.onDidHide(() => resolve()); + quickPick.onDidHide(() => resolve(undefined)); quickPick.show(); }); } diff --git a/yarn.lock b/yarn.lock index a96e02c..10ce9ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2871,10 +2871,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.2.tgz#7ea7c88777c723c681e33bf7988be5d008d05ac2" - integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ== +typescript@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3" + integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== union-value@^1.0.0: version "1.0.1" From 0567d286ff5327c26d4820057b7e7cc3011ef973 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 18 Mar 2021 22:40:29 +0100 Subject: [PATCH 32/42] Upgrade all dependencies --- yarn.lock | 1045 +++++++++++++++++++++++++---------------------------- 1 file changed, 500 insertions(+), 545 deletions(-) diff --git a/yarn.lock b/yarn.lock index 10ce9ff..5969751 100644 --- a/yarn.lock +++ b/yarn.lock @@ -32,19 +32,19 @@ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "13.9.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.2.tgz#ace1880c03594cc3e80206d96847157d8e7fa349" - integrity sha512-bnoqK579sAYrQbp73wwglccjJ4sfRdKU7WNEZ5FW4K2U6Kc0/eZ5kvXG0JKsEKFB50zrFmfFt52/cvBbZa7eXg== + version "14.14.35" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313" + integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== "@types/node@^12.7.12": - version "12.7.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.12.tgz#7c6c571cc2f3f3ac4a59a5f2bd48f5bdbc8653cc" - integrity sha512-KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ== + version "12.20.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.6.tgz#7b73cce37352936e628c5ba40326193443cfba25" + integrity sha512-sRVq8d+ApGslmkE9e3i+D3gFGk7aZHAT+G4cIpIEdLJYPsWiSPwcAnJEjddLQQDqV3Ra2jOclX/Sv6YrvGYiWA== "@types/request@^2.48.1": - version "2.48.4" - resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.4.tgz#df3d43d7b9ed3550feaa1286c6eabf0738e6cf7e" - integrity sha512-W1t1MTKYR8PxICH+A4HgEIPuAC3sbljoEVfyZbeFJJDbr30guDspJri2XOaM2E+Un7ZjrihaDi7cf6fPa2tbgw== + version "2.48.5" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.5.tgz#019b8536b402069f6d11bee1b2c03e7f232937a0" + integrity sha512-/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ== dependencies: "@types/caseless" "*" "@types/node" "*" @@ -57,34 +57,34 @@ integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== "@types/ssh2-streams@*": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@types/ssh2-streams/-/ssh2-streams-0.1.6.tgz#1ff5b1fe50c15f282efe9fd092c68494f8702bc2" - integrity sha512-NB+SYftagfHTDPdgVyvSZCeg5MURyHECd/PycGIW9hwhnEbTFxIdDbFtf3jxUO3rRnfr0lfdtkZFiv28T1cAsg== + version "0.1.8" + resolved "https://registry.yarnpkg.com/@types/ssh2-streams/-/ssh2-streams-0.1.8.tgz#142af404dae059931aea7fcd1511b5478964feb6" + integrity sha512-I7gixRPUvVIyJuCEvnmhr3KvA2dC0639kKswqD4H5b4/FOcnPtNU+qWLiXdKIqqX9twUvi5j0U1mwKE5CUsrfA== dependencies: "@types/node" "*" "@types/ssh2@^0.5.41": - version "0.5.41" - resolved "https://registry.yarnpkg.com/@types/ssh2/-/ssh2-0.5.41.tgz#70d52dcdc20da5ca373948b287766b0cae73801f" - integrity sha512-C661JCfu/yXUoF3EDKatfNhb8z1iD0NUuVOLfrmQ9fOSp1ClntmnicY2u3sBG7zl2FAvjBKkdvM7j03LZXjQXQ== + version "0.5.46" + resolved "https://registry.yarnpkg.com/@types/ssh2/-/ssh2-0.5.46.tgz#e12341a242aea0e98ac2dec89e039bf421fd3584" + integrity sha512-1pC8FHrMPYdkLoUOwTYYifnSEPzAFZRsp3JFC/vokQ+dRrVI+hDBwz0SNmQ3pL6h39OSZlPs0uCG7wKJkftnaA== dependencies: "@types/node" "*" "@types/ssh2-streams" "*" "@types/tapable@*": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.5.tgz#9adbc12950582aa65ead76bffdf39fe0c27a3c02" - integrity sha512-/gG2M/Imw7cQFp8PGvz/SwocNrmKFjFsm5Pb8HdbHkZ1K8pmuPzOX4VeVoiEecFCVf4CsN1r3/BRvx+6sNqwtQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" + integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== "@types/tough-cookie@*": - version "2.3.6" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.6.tgz#c880579e087d7a0db13777ff8af689f4ffc7b0d5" - integrity sha512-wHNBMnkoEBiRAd3s8KTKwIuO9biFtTf0LehITzBhSco+HQI0xkXZbLOD55SW3Aqw3oUkHstkm5SPv58yaAdFPQ== + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.0.tgz#fef1904e4668b6e5ecee60c52cc6a078ffa6697d" + integrity sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A== "@types/uglify-js@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.4.tgz#96beae23df6f561862a830b4288a49e86baac082" - integrity sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ== + version "3.13.0" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.0.tgz#1cad8df1fb0b143c5aba08de5712ea9d1ff71124" + integrity sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q== dependencies: source-map "^0.6.1" @@ -94,18 +94,18 @@ integrity sha512-wfNQmLmm1VdMBr6iuNdprWmC1YdrgZ9dQzadv+l2eSjJlElOdJw8OTm4RU4oGTBcfvG6RZI2jOcppkdSS18mZw== "@types/webpack-sources@*": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.6.tgz#3d21dfc2ec0ad0c77758e79362426a9ba7d7cbcb" - integrity sha512-FtAWR7wR5ocJ9+nP137DV81tveD/ZgB1sadnJ/axUGM3BUVfRPx8oQNMtv3JNfTeHx3VP7cXiyfR/jmtEsVHsQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" + integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== dependencies: "@types/node" "*" "@types/source-list-map" "*" - source-map "^0.6.1" + source-map "^0.7.3" "@types/webpack@^4.4.25": - version "4.41.7" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.7.tgz#22be27dbd4362b01c3954ca9b021dbc9328d9511" - integrity sha512-OQG9viYwO0V1NaNV7d0n79V+n6mjOV30CwgFPIfTzwmk8DHbt+C4f2aBGdCYbo3yFyYD6sjXfqqOjwkl1j+ulA== + version "4.41.26" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.26.tgz#27a30d7d531e16489f9c7607c747be6bc1a459ef" + integrity sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA== dependencies: "@types/anymatch" "*" "@types/node" "*" @@ -119,150 +119,149 @@ resolved "https://registry.yarnpkg.com/@types/winreg/-/winreg-1.2.30.tgz#91d6710e536d345b9c9b017c574cf6a8da64c518" integrity sha1-kdZxDlNtNFucmwF8V0z2qNpkxRg= -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== - dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== - -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== - -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== - -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== - dependencies: - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== - -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== - dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== - -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== - -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": @@ -275,10 +274,10 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -acorn@^6.2.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== ajv-errors@^1.0.0: version "1.0.1" @@ -286,14 +285,14 @@ ajv-errors@^1.0.0: integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv@^6.1.0, ajv@^6.10.2: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -320,6 +319,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -357,14 +364,15 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" asn1@~0.2.0: version "0.2.4" @@ -407,9 +415,9 @@ balanced-match@^1.0.0: integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base@^0.11.1: version "0.11.2" @@ -441,6 +449,11 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -453,10 +466,15 @@ bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== brace-expansion@^1.1.7: version "1.1.11" @@ -482,14 +500,14 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= @@ -525,26 +543,28 @@ browserify-des@^1.0.0: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" browserify-zlib@^0.2.0: version "0.2.0" @@ -578,9 +598,9 @@ builtin-status-codes@^3.0.0: integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= cacache@^12.0.2: - version "12.0.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== dependencies: bluebird "^3.5.5" chownr "^1.1.1" @@ -618,7 +638,7 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -chalk@2.4.2, chalk@^2.3.0: +chalk@^2.3.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -627,7 +647,7 @@ chalk@2.4.2, chalk@^2.3.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chokidar@^2.0.2: +chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -646,6 +666,21 @@ chokidar@^2.0.2: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.4.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -782,14 +817,14 @@ core-util-is@~1.0.0: integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" - elliptic "^6.0.0" + elliptic "^6.5.3" -create-hash@^1.1.0, create-hash@^1.1.2: +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== @@ -800,7 +835,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -812,7 +847,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@6.0.5, cross-spawn@^6.0.0: +cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -944,29 +979,24 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -elliptic@^6.0.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" @@ -979,15 +1009,6 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - enhanced-resolve@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz#5d43bda4a0fd447cb0ebbe71bef8deff8805ad0d" @@ -997,19 +1018,19 @@ enhanced-resolve@^4.0.0: memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== +enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" tapable "^1.0.0" errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + 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" @@ -1027,17 +1048,22 @@ eslint-scope@^4.0.3: estraverse "^4.1.1" esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - estraverse "^4.1.0" + estraverse "^5.2.0" -estraverse@^4.1.0, estraverse@^4.1.1: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + event-stream@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-4.0.1.tgz#4092808ec995d0dd75ea4580c1df6a74db2cde65" @@ -1052,9 +1078,9 @@ event-stream@^4.0.1: through "^2.3.8" events@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -1064,19 +1090,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -1127,9 +1140,9 @@ extglob@^2.0.4: to-regex "^3.0.1" fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + 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== fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -1137,9 +1150,9 @@ fast-json-stable-stringify@^2.0.0: integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== file-uri-to-path@1.0.0: version "1.0.0" @@ -1179,7 +1192,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -findup-sync@3.0.0: +findup-sync@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== @@ -1247,25 +1260,23 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.12" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" - integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: bindings "^1.5.0" nan "^2.12.1" +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -1279,6 +1290,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob@^7.0.3, glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -1291,13 +1309,6 @@ glob@^7.0.3, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -1307,6 +1318,13 @@ global-modules@^1.0.0: is-windows "^1.0.1" resolve-dir "^1.0.0" +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" @@ -1339,9 +1357,9 @@ globby@^6.1.0: pinkie-promise "^2.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== has-flag@^3.0.0: version "3.0.0" @@ -1380,12 +1398,13 @@ has-values@^1.0.0: kind-of "^4.0.0" hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" @@ -1395,7 +1414,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -1417,16 +1436,16 @@ https-browserify@^1.0.0: integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -import-local@2.0.0: +import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== @@ -1452,7 +1471,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1468,21 +1487,16 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.4, ini@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -interpret@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +interpret@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -ip@1.1.5: +ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= @@ -1508,6 +1522,13 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -1574,7 +1595,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -1619,11 +1640,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -1674,9 +1690,9 @@ json5@^1.0.1: minimist "^1.2.0" jsonc-parser@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz#db73cd59d78cce28723199466b2a03d1be1df2bc" - integrity sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w== + version "2.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342" + integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg== kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" @@ -1702,28 +1718,12 @@ kind-of@^6.0.0, 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== -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -loader-utils@^1.0.2, loader-utils@^1.2.3: +loader-utils@^1.0.2, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -1755,18 +1755,6 @@ make-dir@^2.0.0: pify "^4.0.1" semver "^5.6.0" -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -1793,16 +1781,7 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1: +memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= @@ -1853,29 +1832,24 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.43.0: - version "1.43.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== +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-types@^2.1.12: - version "2.1.26" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" - integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== + 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== dependencies: - mime-db "1.43.0" - -mimic-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + mime-db "1.46.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= @@ -1916,10 +1890,10 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.1: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.3.tgz#5a514b7179259287952881e94410ec5465659f8c" - integrity sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg== +mkdirp@^0.5.1, mkdirp@^0.5.3: + 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" @@ -1941,9 +1915,9 @@ ms@2.0.0: integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= nan@^2.12.1: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== nanomatch@^1.2.9: version "1.2.13" @@ -1963,9 +1937,9 @@ nanomatch@^1.2.9: to-regex "^3.0.1" neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== nice-try@^1.0.4: version "1.0.5" @@ -2008,18 +1982,11 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -2060,34 +2027,10 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - p-limit@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" @@ -2122,14 +2065,13 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" -parse-asn1@^5.0.0: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: - asn1.js "^4.0.0" + asn1.js "^5.2.0" browserify-aes "^1.0.0" - create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" safe-buffer "^5.1.1" @@ -2169,7 +2111,7 @@ path-is-inside@^1.0.2: resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= -path-key@^2.0.0, path-key@^2.0.1: +path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= @@ -2182,9 +2124,9 @@ pause-stream@^0.0.11: through "~2.3" pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -2192,7 +2134,7 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -picomatch@^2.0.5: +picomatch@^2.0.4, 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== @@ -2313,7 +2255,7 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -2341,6 +2283,15 @@ randomfill@^1.0.3: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^3.6.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" + readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -2350,6 +2301,13 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -2435,10 +2393,10 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, 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== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" @@ -2452,7 +2410,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -safer-buffer@~2.1.0: +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== @@ -2476,10 +2434,12 @@ semver@^6.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" set-blocking@^2.0.0: version "2.0.0" @@ -2521,11 +2481,6 @@ shebang-regex@^1.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - smart-buffer@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" @@ -2562,11 +2517,11 @@ snapdragon@^0.8.1: use "^3.1.0" socks@^2.2.0: - version "2.3.3" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" - integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== + version "2.6.0" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.0.tgz#6b984928461d39871b3666754b9000ecf39dfac2" + integrity sha512-mNmr9owlinMplev0Wd7UHFlqI4ofnBnNzFuzrm63PPaHgbkqCFe4T5LzwKmtQ/f2tX0NTpcdVLyD/FHxFBstYw== dependencies: - ip "1.1.5" + ip "^1.1.5" smart-buffer "^4.1.0" source-list-map@^2.0.0: @@ -2585,7 +2540,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.19: +source-map-support@^0.5.19, source-map-support@~0.5.12: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -2593,18 +2548,10 @@ source-map-support@^0.5.19: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@~0.5.12: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== source-map@^0.5.6: version "0.5.7" @@ -2616,6 +2563,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -2714,7 +2666,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string_decoder@^1.0.0: +string_decoder@^1.0.0, 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== @@ -2735,18 +2687,6 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -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@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -2754,30 +2694,37 @@ 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" + tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== terser-webpack-plugin@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^2.1.2" + serialize-javascript "^4.0.0" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" worker-farm "^1.7.0" terser@^4.1.2: - version "4.6.7" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.7.tgz#478d7f9394ec1907f0e488c5f6a6a9a2bad55e72" - integrity sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g== + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -2797,9 +2744,9 @@ through@2, through@^2.3.8, through@~2.3, through@~2.3.4: integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== dependencies: setimmediate "^1.0.4" @@ -2852,9 +2799,9 @@ ts-loader@^7.0.5: semver "^6.0.0" tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tty-browserify@0.0.0: version "0.0.0" @@ -2914,9 +2861,9 @@ upath@^1.1.1: integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" @@ -2938,7 +2885,7 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= @@ -2957,41 +2904,50 @@ util@^0.11.0: dependencies: inherits "2.0.3" -v8-compile-cache@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" - integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== +v8-compile-cache@^2.1.1: + 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== vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -watchpack@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: - chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" webpack-cli@^3.2.3: - version "3.3.11" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" - integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== - dependencies: - chalk "2.4.2" - cross-spawn "6.0.5" - enhanced-resolve "4.1.0" - findup-sync "3.0.0" - global-modules "2.0.0" - import-local "2.0.0" - interpret "1.2.0" - loader-utils "1.2.3" - supports-color "6.1.0" - v8-compile-cache "2.0.3" - yargs "13.2.4" + version "3.3.12" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" + integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== + dependencies: + chalk "^2.4.2" + cross-spawn "^6.0.5" + enhanced-resolve "^4.1.1" + findup-sync "^3.0.0" + global-modules "^2.0.0" + import-local "^2.0.0" + interpret "^1.4.0" + loader-utils "^1.4.0" + supports-color "^6.1.0" + v8-compile-cache "^2.1.1" + yargs "^13.3.2" webpack-sources@^1.4.0, webpack-sources@^1.4.1: version "1.4.3" @@ -3002,32 +2958,32 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-map "~0.6.1" webpack@^4.29.6: - version "4.42.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz#b901635dd6179391d90740a63c93f76f39883eb8" - integrity sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - acorn "^6.2.1" + version "4.46.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" + enhanced-resolve "^4.5.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" loader-utils "^1.2.3" memory-fs "^0.4.1" micromatch "^3.1.10" - mkdirp "^0.5.1" + mkdirp "^0.5.3" neo-async "^2.6.1" node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" terser-webpack-plugin "^1.4.3" - watchpack "^1.6.0" + watchpack "^1.7.4" webpack-sources "^1.4.1" which-module@^2.0.0: @@ -3074,16 +3030,16 @@ xtend@^4.0.0, xtend@~4.0.1: integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yargs-parser@^13.1.0: +yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== @@ -3091,19 +3047,18 @@ yargs-parser@^13.1.0: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" find-up "^3.0.0" get-caller-file "^2.0.1" - os-locale "^3.1.0" require-directory "^2.1.1" require-main-filename "^2.0.0" set-blocking "^2.0.0" string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.0" + yargs-parser "^13.1.2" From 71c84a4c122b28598fb3bb26d29b6f2199f6b5ca Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 18 Mar 2021 23:03:08 +0100 Subject: [PATCH 33/42] Add Yarn caching to build workflow --- .github/workflows/build-extension.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-extension.yml b/.github/workflows/build-extension.yml index baf2377..ab168d3 100644 --- a/.github/workflows/build-extension.yml +++ b/.github/workflows/build-extension.yml @@ -3,7 +3,7 @@ name: Build extension on: push: - tags: '**' + tags: ['**'] branches: - '*' - 'feature/**' @@ -37,6 +37,16 @@ jobs: run: | yarn global add vsce echo "$(yarn global bin)" >> $GITHUB_PATH + - name: Get Yarn cache directory + id: yarn-cache + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: Yarn cache + uses: actions/cache@v2.1.4 + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: Install dependencies in / run: yarn --frozen-lockfile - name: Install dependencies in /webview/ From 0624e427361dd8560c316af57a81085e4f59cf30 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Thu, 18 Mar 2021 23:03:51 +0100 Subject: [PATCH 34/42] Upgrade build workflow from Node v10 to v12 --- .github/workflows/build-extension.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-extension.yml b/.github/workflows/build-extension.yml index ab168d3..0bf85b6 100644 --- a/.github/workflows/build-extension.yml +++ b/.github/workflows/build-extension.yml @@ -29,10 +29,10 @@ jobs: with: artifact_prefix: "vscode-sshfs" artifact_extension: "vsix" - - name: Use Node.js 10.x + - name: Use Node.js 12.x uses: actions/setup-node@v1 with: - node-version: 10.x + node-version: 12.x - name: Install VSCE run: | yarn global add vsce From b19d4bf0e5be30e854a80096cee3db62084d4b79 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Fri, 19 Mar 2021 15:31:13 +0100 Subject: [PATCH 35/42] Publish to VS Marketplace and Open VXS Registry when GitHub release gets published --- .github/workflows/publish-extension.yml | 38 +++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/publish-extension.yml diff --git a/.github/workflows/publish-extension.yml b/.github/workflows/publish-extension.yml new file mode 100644 index 0000000..1aff0aa --- /dev/null +++ b/.github/workflows/publish-extension.yml @@ -0,0 +1,38 @@ +name: Publish extension + +on: + release: + types: [published] + +jobs: + openvsx: + name: "Open VSX Registry" + if: endsWith(github.event.release.assets[0].name, '.vsix') + runs-on: ubuntu-latest + steps: + - name: Download release artifact + run: "curl -L -H 'Authorization: token ${{ secrets.GITHUB_TOKEN }}' -H 'Accept: application/octet-stream' ${{ github.event.release.assets[0].url }} --output extension.vsix" + - name: Validate extension file + run: unzip -f extension.vsix extension/package.json + - name: Publish to Open VSX Registry + uses: HaaLeo/publish-vscode-extension@v0 + with: + pat: ${{ secrets.OPEN_VSX_TOKEN }} + extensionFile: extension.vsix + packagePath: '' + vs: + name: "Visual Studio Marketplace" + if: endsWith(github.event.release.assets[0].name, '.vsix') + runs-on: ubuntu-latest + steps: + - name: Download release artifact + run: "curl -L -H 'Authorization: token ${{ secrets.GITHUB_TOKEN }}' -H 'Accept: application/octet-stream' ${{ github.event.release.assets[0].url }} --output extension.vsix" + - name: Validate extension file + run: unzip -f extension.vsix extension/package.json + - name: Publish to Visual Studio Marketplace + uses: HaaLeo/publish-vscode-extension@v0 + with: + pat: ${{ secrets.VS_MARKETPLACE_TOKEN }} + registryUrl: https://marketplace.visualstudio.com + extensionFile: extension.vsix + packagePath: '' From b2178252e45fdc897a26e2651762a2a1b9f5f7a2 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Fri, 19 Mar 2021 16:35:07 +0100 Subject: [PATCH 36/42] Set tsconfig to target ES2019 --- tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index 73b968c..25531c3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,10 +3,10 @@ "strictNullChecks": true, "module": "esnext", "moduleResolution": "node", - "target": "es6", + "target": "ES2019", "outDir": "out", "lib": [ - "es6" + "ES2019" ], "sourceMap": true, "rootDir": "src" From c9946e01bff068f23014d1a36303424a684ed8a1 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Fri, 19 Mar 2021 17:35:21 +0100 Subject: [PATCH 37/42] Improve/finish task variables --- src/manager.ts | 16 ++++++++-------- src/pseudoTerminal.ts | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/manager.ts b/src/manager.ts index 3ac51eb..016f6a4 100644 --- a/src/manager.ts +++ b/src/manager.ts @@ -5,7 +5,7 @@ import * as vscode from 'vscode'; import { getConfig, getConfigs, loadConfigsRaw } from './config'; import { Connection, ConnectionManager } from './connection'; import type { FileSystemConfig } from './fileSystemConfig'; -import { Logging } from './logging'; +import { Logging, LOGGING_NO_STACKTRACE } from './logging'; import { isSSHPseudoTerminal } from './pseudoTerminal'; import type { SSHFileSystem } from './sshFileSystem'; import { catchingPromise, toPromise } from './toPromise'; @@ -173,20 +173,20 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider } public async promptReconnect(name: string) { const config = getConfig(name); - console.log('config', name, config); if (!config) return; const choice = await vscode.window.showWarningMessage(`SSH FS ${config.label || config.name} disconnected`, 'Ignore', 'Disconnect'); if (choice === 'Disconnect') this.commandDisconnect(name); } /* TaskProvider */ protected async replaceTaskVariables(value: string, config: FileSystemConfig): Promise { - return value.replace(/\$\{(\w+)\}/g, (str, match: string) => { + return value.replace(/\$\{(.*?)\}/g, (str, match: string) => { if (!match.startsWith('remote')) return str; // Our variables always start with "remote" // https://github.com/microsoft/vscode/blob/bebd06640734c37f6d5f1a82b13297ce1d297dd1/src/vs/workbench/services/configurationResolver/common/variableResolver.ts#L156 const [key, argument] = match.split(':') as [string, string?]; const getFilePath = (): vscode.Uri => { const uri = vscode.window.activeTextEditor?.document?.uri; - if (uri) return uri; + if (uri && uri.scheme === 'ssh') return uri; + if (uri) throw new Error(`Variable ${str}: Active editor is not a ssh:// file`); throw new Error(`Variable ${str} can not be resolved. Please open an editor.`); } const getFolderPathForFile = (): vscode.Uri => { @@ -202,7 +202,8 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider const { workspaceFolders = [] } = vscode.workspace; if (argument) { const uri = workspaceFolders.find(ws => ws.name === argument)?.uri; - if (uri) return uri; + if (uri && uri.scheme === 'ssh') return uri; + if (uri) throw new Error(`Variable ${str}: Workspace folder '${argument}' is not a ssh:// folder`); throw new Error(`Variable ${str} can not be resolved. No such folder '${argument}'.`); } if (sshFolder) return sshFolder.uri; @@ -211,7 +212,7 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider } throw new Error(`Variable ${str} can not be resolved. Please open an ssh:// folder.`); }; - switch (key.toLowerCase()) { + switch (key) { case 'remoteWorkspaceRoot': case 'remoteWorkspaceFolder': return this.getRemotePath(config, getFolderUri()); @@ -251,7 +252,7 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider return path.posix.sep; default: const msg = `Unrecognized task variable '${str}' starting with 'remote', ignoring`; - Logging.warning(msg); + Logging.warning(msg, LOGGING_NO_STACKTRACE); vscode.window.showWarningMessage(msg); return str; } @@ -315,7 +316,6 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider if (!isSSHPseudoTerminal(pty)) return; const conn = this.connectionManager.getActiveConnections().find(c => c.terminals.includes(pty)); if (!conn) return; // Connection died, which means the terminal should also be closed already? - console.log('provideTerminalLinks', line, pty.config.root, conn ? conn.filesystems.length : 'No connection?'); const links: TerminalLinkUri[] = []; const PATH_REGEX = /\/\S+/g; while (true) { diff --git a/src/pseudoTerminal.ts b/src/pseudoTerminal.ts index 7c6a2aa..4e34d0f 100644 --- a/src/pseudoTerminal.ts +++ b/src/pseudoTerminal.ts @@ -134,6 +134,6 @@ export function createTextTerminal(initialText?: string): TextTerminal { onDidWrite: onDidWrite.event, onDidClose: onDidClose.event, onDidOpen: onDidOpen.event, - open: () => initialText && (onDidWrite.fire(initialText), onDidClose.fire(1)), + open: () => initialText && (onDidWrite.fire(initialText + '\r\n'), onDidClose.fire(1)), }; } From 7d94bb8c7a4763cad8ba602c6a038f1b3ad3e852 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Fri, 19 Mar 2021 17:58:29 +0100 Subject: [PATCH 38/42] Add taskCommand --- src/fileSystemConfig.ts | 2 ++ src/manager.ts | 13 +++++++++++-- src/pseudoTerminal.ts | 4 ++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/fileSystemConfig.ts b/src/fileSystemConfig.ts index 83a81cb..7ade3a9 100644 --- a/src/fileSystemConfig.ts +++ b/src/fileSystemConfig.ts @@ -98,6 +98,8 @@ export interface FileSystemConfig extends ConnectConfig { sftpSudo?: string | boolean; /** The command(s) to run when a new SSH terminal gets created. Defaults to `$SHELL`. Internally the command `cd ...` is run first */ terminalCommand?: string | string[]; + /** The command(s) to run when a `ssh-shell` gets run. Defaults to the placeholder `$COMMAND`. Internally the command `cd ...` is run first */ + taskCommand?: string | string[]; /** The filemode to assign to created files */ newFileMode?: number | string; /** Whether this config was created from an instant connection string. Enables fuzzy matching for e.g. PuTTY, config-by-host, ... */ diff --git a/src/manager.ts b/src/manager.ts index 55c8b2c..01c04ab 100644 --- a/src/manager.ts +++ b/src/manager.ts @@ -283,13 +283,22 @@ export class Manager implements vscode.TaskProvider, vscode.TerminalLinkProvider `SSH Task '${task.name}'`, 'ssh', new vscode.CustomExecution(async (resolved: SSHShellTaskOptions) => { - const { createTerminal, createTextTerminal } = await import('./pseudoTerminal'); + const { createTerminal, createTextTerminal, joinCommands } = await import('./pseudoTerminal'); try { if (!resolved.host) throw new Error('Missing field \'host\' in task description'); if (!resolved.command) throw new Error('Missing field \'command\' in task description'); const connection = await this.connectionManager.createConnection(resolved.host); resolved = await this.replaceTaskVariablesRecursive(resolved, value => this.replaceTaskVariables(value, connection.actualConfig)); - const { command, workingDirectory } = resolved; + let { command, workingDirectory } = resolved; + let { taskCommand = '$COMMAND' } = connection.actualConfig; + taskCommand = joinCommands(taskCommand)!; + if (taskCommand.includes('$COMMAND')) { + command = taskCommand.replace(/\$COMMAND/g, command); + } else { + const message = `The taskCommand '${taskCommand}' is missing the '$COMMAND' placeholder!`; + Logging.warning(message, LOGGING_NO_STACKTRACE); + command = `echo "Missing '$COMMAND' placeholder"`; + } //if (workingDirectory) workingDirectory = this.getRemotePath(config, workingDirectory); this.connectionManager.update(connection, con => con.pendingUserCount++); const pty = await createTerminal({ diff --git a/src/pseudoTerminal.ts b/src/pseudoTerminal.ts index 4e34d0f..b774ef5 100644 --- a/src/pseudoTerminal.ts +++ b/src/pseudoTerminal.ts @@ -36,10 +36,10 @@ export interface TerminalOptions { command?: string; } -function joinCommands(commands?: string | string[]): string | undefined { +export function joinCommands(commands?: string | string[]): string | undefined { if (!commands) return undefined; if (typeof commands === 'string') return commands; - return commands.join(';'); + return commands.join('; '); } export async function createTerminal(options: TerminalOptions): Promise { From b6e531bb4fd9437321eb2076e1a3d4db04732a73 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Fri, 19 Mar 2021 18:13:59 +0100 Subject: [PATCH 39/42] Add taskCommand to ConfigEditor --- src/fileSystemConfig.ts | 2 +- webview/src/ConfigEditor/fields.tsx | 15 ++++++++--- webview/src/types/fileSystemConfig.ts | 36 +++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 4 deletions(-) diff --git a/src/fileSystemConfig.ts b/src/fileSystemConfig.ts index 7ade3a9..b444964 100644 --- a/src/fileSystemConfig.ts +++ b/src/fileSystemConfig.ts @@ -98,7 +98,7 @@ export interface FileSystemConfig extends ConnectConfig { sftpSudo?: string | boolean; /** The command(s) to run when a new SSH terminal gets created. Defaults to `$SHELL`. Internally the command `cd ...` is run first */ terminalCommand?: string | string[]; - /** The command(s) to run when a `ssh-shell` gets run. Defaults to the placeholder `$COMMAND`. Internally the command `cd ...` is run first */ + /** The command(s) to run when a `ssh-shell` task gets run. Defaults to the placeholder `$COMMAND`. Internally the command `cd ...` is run first */ taskCommand?: string | string[]; /** The filemode to assign to created files */ newFileMode?: number | string; diff --git a/webview/src/ConfigEditor/fields.tsx b/webview/src/ConfigEditor/fields.tsx index 2d1688f..fba0647 100644 --- a/webview/src/ConfigEditor/fields.tsx +++ b/webview/src/ConfigEditor/fields.tsx @@ -34,7 +34,7 @@ export function merge(config: FileSystemConfig, onChange: FSCChanged<'merge'>): } export function label(config: FileSystemConfig, onChange: FSCChanged<'label'>): React.ReactElement { - const callback = (value?: string) => onChange('label', value); + const callback = (newValue?: string) => onChange('label', newValue); const description = 'Label to display in some UI places (e.g. popups)'; return } @@ -97,7 +97,7 @@ export function password(config: FileSystemConfig, onChange: FSCChanged<'passwor } export function privateKeyPath(config: FileSystemConfig, onChange: FSCChanged<'privateKeyPath'>): React.ReactElement { - const callback = (value?: string) => onChange('privateKeyPath', value); + const callback = (newValue?: string) => onChange('privateKeyPath', newValue); const description = 'A path to a private key. Supports environment variables, e.g. `$USERPROFILE/.ssh/myKey.ppk` or `$HOME/.ssh/myKey`'; return } @@ -133,9 +133,18 @@ export function terminalCommand(config: FileSystemConfig, onChange: FSCChanged<' return } +export function taskCommand(config: FileSystemConfig, onChange: FSCChanged<'taskCommand'>): React.ReactElement { + const callback = (newValue?: string) => onChange('taskCommand', newValue); + const description = 'The command(s) to run when a `ssh-shell` task gets run. Defaults to the placeholder `$COMMAND`. Internally the command `cd ...` is run first'; + const values = ['$COMMAND']; + let value = config.taskCommand; + if (Array.isArray(value)) value = value.join('; '); + return +} + export type FieldFactory = (config: FileSystemConfig, onChange: FSCChanged, onChangeMultiple: FSCChangedMultiple) => React.ReactElement | null; export const FIELDS: FieldFactory[] = [ name, merge, label, group, putty, host, port, root, agent, username, password, privateKeyPath, passphrase, - sftpCommand, sftpSudo, terminalCommand, + sftpCommand, sftpSudo, terminalCommand, taskCommand, PROXY_FIELD]; diff --git a/webview/src/types/fileSystemConfig.ts b/webview/src/types/fileSystemConfig.ts index 4ea92d6..b444964 100644 --- a/webview/src/types/fileSystemConfig.ts +++ b/webview/src/types/fileSystemConfig.ts @@ -98,8 +98,12 @@ export interface FileSystemConfig extends ConnectConfig { sftpSudo?: string | boolean; /** The command(s) to run when a new SSH terminal gets created. Defaults to `$SHELL`. Internally the command `cd ...` is run first */ terminalCommand?: string | string[]; + /** The command(s) to run when a `ssh-shell` task gets run. Defaults to the placeholder `$COMMAND`. Internally the command `cd ...` is run first */ + taskCommand?: string | string[]; /** The filemode to assign to created files */ newFileMode?: number | string; + /** Whether this config was created from an instant connection string. Enables fuzzy matching for e.g. PuTTY, config-by-host, ... */ + instantConnection?: boolean; /** Internal property saying where this config comes from. Undefined if this config is merged or something */ _location?: ConfigLocation; /** Internal property keeping track of where this config comes from (including merges) */ @@ -113,3 +117,35 @@ export function invalidConfigName(name: string) { if (name.match(/^[\w_\\/.@\-+]+$/)) return null; return `A SSH FS name can only exists of lowercase alphanumeric characters, slashes and any of these: _.+-@`; } + +/** + * https://regexr.com/5m3gl (mostly based on https://tools.ietf.org/html/draft-ietf-secsh-scp-sftp-ssh-uri-04) + * Supports several formats, the first one being the "full" format, with others being partial: + * - `user;abc=def,a-b=1-5@server.example.com:22/some/file.ext` + * - `user@server.example.com/directory` + * - `server:22/directory` + * - `user@server` + * - `server` + * - `@server/path` - Unlike OpenSSH, we allow a @ (and connection parameters) without a username + * + * The resulting FileSystemConfig will have as name basically the input, but without the path. If there is no + * username given, the name will start with `@`, as to differentiate between connection strings and config names. + */ +const CONNECTION_REGEX = /^((?\w+)?(;[\w-]+=[\w\d-]+(,[\w\d-]+=[\w\d-]+)*)?@)?(?[^@\\/:,=]+)(:(?\d+))?(?\/.*)?$/; + +export function parseConnectionString(input: string): [config: FileSystemConfig, path?: string] | string { + input = input.trim(); + const match = input.match(CONNECTION_REGEX); + if (!match) return 'Invalid format, expected something like "user@example.com:22/some/path"'; + const { user, host, path } = match.groups!; + const portStr = match.groups!.port; + const port = portStr ? Number.parseInt(portStr) : undefined; + if (portStr && (!port || port < 1 || port > 65535)) return `The string '${port}' is not a valid port number`; + const name = `${user || ''}@${host}${port ? `:${port}` : ''}${path || ''}`; + return [{ + name, host, port, + instantConnection: true, + username: user || '$USERNAME', + _locations: [], + }, path]; +} From a78f3cdefe983c331bdf46e4e88d10b11fff353f Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Fri, 19 Mar 2021 18:33:34 +0100 Subject: [PATCH 40/42] 1.20.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b64b10d..cbb1094 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "SSH FS", "description": "File system, terminal and task provider using SSH", "publisher": "Kelvin", - "version": "1.19.4", + "version": "1.20.0", "engines": { "vscode": "^1.49.0" }, From fdb3b6685b242d71d72f0548ce9b5dce559df610 Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Mon, 5 Apr 2021 14:57:55 +0200 Subject: [PATCH 41/42] Save lastVersion in global state --- src/extension.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/extension.ts b/src/extension.ts index 1e7dc89..8051265 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -12,7 +12,7 @@ import { pickComplex, PickComplexOptions, pickConnection, setAsAbsolutePath } fr function getVersion(): string | undefined { const ext = vscode.extensions.getExtension('Kelvin.vscode-sshfs'); - return ext && ext.packageJSON && ext.packageJSON.version; + return ext?.packageJSON?.version; } interface CommandHandler { @@ -31,6 +31,17 @@ export function activate(context: vscode.ExtensionContext) { setDebug(context.extensionMode !== vscode.ExtensionMode.Production); + // Likely that we'll have a breaking change in the future that requires users to check + // their configs, or at least reconfigure already existing workspaces with new URIs. + // See https://github.com/SchoofsKelvin/vscode-sshfs/issues/198#issuecomment-785926352 + const previousVersion = context.globalState.get('lastVersion'); + context.globalState.update('lastVersion', getVersion()); + if (!previousVersion) { + Logging.info('No previous version detected. Fresh or pre-v1.21.0 installation?'); + } else if (previousVersion !== getVersion()) { + Logging.info(`Previously used version ${previousVersion}, first run after install.`); + } + // Really too bad we *need* the ExtensionContext for relative resources // I really don't like having to pass context to *everything*, so let's do it this way setAsAbsolutePath(context.asAbsolutePath.bind(context)); From 6cd441ab412912bbfc3d3202fd3c33b60033f15b Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Wed, 7 Apr 2021 17:57:42 +0200 Subject: [PATCH 42/42] Slighty improve logging information --- src/logging.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/logging.ts b/src/logging.ts index 0200f49..09f6474 100644 --- a/src/logging.ts +++ b/src/logging.ts @@ -1,7 +1,9 @@ import * as vscode from 'vscode'; import type { FileSystemConfig } from './fileSystemConfig'; -// Since the Extension Development Host runs with debugger, we can use this to detect if we're debugging +// Since the Extension Development Host runs with debugger, we can use this to detect if we're debugging. +// The only things it currently does is copying Logging messages to the console, while also enabling +// the webview (Settings UI) from trying a local dev server first instead of the pre-built version. export let DEBUG: boolean = false; export function setDebug(debug: boolean) { console.warn(`[vscode-sshfs] Debug mode set to ${debug}`); @@ -161,3 +163,12 @@ export function censorConfig(config: FileSystemConfig): CensoredFileSystemConfig export const Logging = new (Logger as any) as Logger; Logging.info('Created output channel for vscode-sshfs'); +Logging.info(`When posting your logs somewhere, keep the following in mind: + - While the logging tries to censor your passwords/passphrases/..., double check! + Maybe you also want to censor out e.g. the hostname/IP you're connecting to. + - If you want to report an issue regarding authentication or something else that + seems to be more of an issue with the actual SSH2 connection, it might be handy + to reconnect with this added to your User Settings (settings.json) first: + "sshfs.flags": [ "DEBUG_SSH2" ], + This will (for new connections) also enable internal SSH2 logging. +`);