From 134e38769adf6f7ffe79b5dd84cdf12a9bfcc058 Mon Sep 17 00:00:00 2001 From: Matheus Date: Wed, 3 Jun 2020 20:45:44 -0300 Subject: [PATCH] fixes query highlight issue. Fixes driver not loading correctly. Close #592, closes #600 --- build-tools/.vscode/launch.json | 4 +- build-tools/common/base-plugins.js | 10 +- build-tools/common/set-defaults.js | 2 +- docs/src/pages/changelog.mdx | 1 + packages/extension/language-client/client.ts | 2 + packages/extension/package.json | 11 ++- packages/extension/tsconfig.json | 1 - packages/language-server/server.ts | 8 +- packages/language-server/tsconfig.json | 1 - packages/plugins/codelens/extension.ts | 4 + .../plugins/connection-manager/contracts.ts | 9 +- .../plugins/connection-manager/extension.ts | 5 +- .../connection-manager/language-server.ts | 71 ++++++++----- packages/plugins/package.json | 4 +- packages/types/README.md | 4 + packages/types/index.d.ts | 9 +- packages/types/package.json | 2 +- packages/util/constants.ts | 2 +- packages/util/log/generic/index.ts | 3 +- packages/util/log/vscode/index.ts | 2 +- packages/util/package.json | 2 +- project.code-workspace | 2 + yarn.lock | 99 ++++++++++--------- 23 files changed, 160 insertions(+), 98 deletions(-) diff --git a/build-tools/.vscode/launch.json b/build-tools/.vscode/launch.json index 314581afd..29bf89984 100644 --- a/build-tools/.vscode/launch.json +++ b/build-tools/.vscode/launch.json @@ -25,12 +25,14 @@ } }, { - "type": "pwa-node", + "type": "node", "request": "attach", "name": "Attach SQLTools LS", "port": 6010, "restart": true, "sourceMaps": true, + "protocol": "inspector", + "timeout": 100000, "skipFiles": [ "/**/*.js" ], diff --git a/build-tools/common/base-plugins.js b/build-tools/common/base-plugins.js index 11f43eb6d..081feacb8 100644 --- a/build-tools/common/base-plugins.js +++ b/build-tools/common/base-plugins.js @@ -21,11 +21,11 @@ const basePlugins = (name) => [ 'process.env.AUTHOR': JSON.stringify(author), 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'production'), }), - new webpack.SourceMapDevToolPlugin({ - moduleFilenameTemplate: (info) => path.relative(rootdir, info.absoluteResourcePath), - filename: IS_PRODUCTION ? '[file].map' : undefined, - sourceRoot: path.relative(outdir, rootdir) - }), + // new webpack.SourceMapDevToolPlugin({ + // moduleFilenameTemplate: (info) => path.relative(rootdir, info.absoluteResourcePath), + // filename: IS_PRODUCTION ? '[file].map' : undefined, + // sourceRoot: path.relative(outdir, rootdir) + // }), new WebpackNotifierPlugin({ excludeWarnings: true }), ]; diff --git a/build-tools/common/set-defaults.js b/build-tools/common/set-defaults.js index 8751d3b21..e4b8b916d 100644 --- a/build-tools/common/set-defaults.js +++ b/build-tools/common/set-defaults.js @@ -36,7 +36,7 @@ module.exports = function setDefaults(config, includeDefaultPlugins = true) { config.optimization.minimize = false; config.optimization.minimizer = undefined; } - config.devtool = false; + config.devtool = !IS_PRODUCTION ? 'source-map' : false; config.mode = IS_PRODUCTION ? 'production' : 'development'; config.output = config.output || {}; config.output.path = config.output.path || outdir; diff --git a/docs/src/pages/changelog.mdx b/docs/src/pages/changelog.mdx index 2a4af0406..1736f406f 100644 --- a/docs/src/pages/changelog.mdx +++ b/docs/src/pages/changelog.mdx @@ -9,6 +9,7 @@ route: /changelog ### 0.22.4 - (Jun 2, 2020) +- Add boolean option `sqltools.highlightQuery` to extension configuration so query highlight can be disabled/enabled. [#592](https://github.com/mtxr/vscode-sqltools/issues/592) - Fixes drivers not loading correctly. [#600](https://github.com/mtxr/vscode-sqltools/issues/600) ### 0.22.3 - (Jun 2, 2020) diff --git a/packages/extension/language-client/client.ts b/packages/extension/language-client/client.ts index 8f37824aa..255a7eca8 100644 --- a/packages/extension/language-client/client.ts +++ b/packages/extension/language-client/client.ts @@ -169,6 +169,8 @@ export class SQLToolsLanguageClient implements ILanguageClient { extensionPath: Context.extensionPath, userEnvVars: Config.languageServerEnv }, + progressOnInitialization: true, + outputChannel: logger.outputChannel, synchronize: { configurationSection: [EXT_CONFIG_NAMESPACE, 'telemetry'], fileEvents: Wspc.createFileSystemWatcher(`**/.${EXT_NAMESPACE}rc`), diff --git a/packages/extension/package.json b/packages/extension/package.json index 4e80b19eb..fd0e3e59c 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -104,9 +104,9 @@ "id": "sqltools.currentQueryOutline", "description": "Background decoration color for current query", "defaults": { - "dark": "#00a2ff50", - "light": "#00a2ff50", - "highContrast": "#00a2ff50" + "dark": "#00a2ff20", + "light": "#00a2ff20", + "highContrast": "#00a2ff20" } } ], @@ -461,6 +461,11 @@ }, "markdownDescription": "Languages with SQL codelens enabled.\n\nYou can use any language identifier defined on https://code.visualstudio.com/docs/languages/identifiers.\n\nMore info about codelens, see https://vscode-sqltools.mteixeira.dev/features/codelens" }, + "sqltools.highlightQuery": { + "type": "boolean", + "default": true, + "markdownDescription": "Enable or disable hightlight current query under cursor." + }, "sqltools.format": { "type": "object", "properties": { diff --git a/packages/extension/tsconfig.json b/packages/extension/tsconfig.json index 1aca6c161..faa4314df 100644 --- a/packages/extension/tsconfig.json +++ b/packages/extension/tsconfig.json @@ -7,7 +7,6 @@ "experimentalDecorators": true, "lib": ["es6"], "module": "commonjs", - "noEmit": true, "removeComments": true, "resolveJsonModule": true, "sourceMap": true, diff --git a/packages/language-server/server.ts b/packages/language-server/server.ts index 23a1725a3..8987da268 100644 --- a/packages/language-server/server.ts +++ b/packages/language-server/server.ts @@ -10,6 +10,7 @@ import { RegisterPlugin } from './contracts'; import LSContext from './context'; import { ExitCalledNotification } from '../extension/api/contracts'; import { resolve as pathResolve } from 'path'; +import logger from '@sqltools/util/log'; class SQLToolsLanguageServer implements ILanguageServer { private _server: IConnection; @@ -113,6 +114,9 @@ class SQLToolsLanguageServer implements ILanguageServer { ConfigRO.replaceAll(changes.settings[EXT_CONFIG_NAMESPACE]); if (changes.settings.telemetry && changes.settings.telemetry.enableTelemetry) telemetry.enable(); else telemetry.disable(); + if (changes.settings['sqltools.debug'] && changes.settings['sqltools.debug'].namespaces) { + (logger)._debug.enable(changes.settings['sqltools.debug'].namespaces || '*,-babel*'); + } this.onDidChangeConfigurationHooks.forEach(hook => hook()); }; @@ -141,8 +145,8 @@ ExecPath: ${process.execPath} return this; } - public registerPlugin(plugin: ILanguageServerPlugin | ILanguageServerPlugin[]) { - return Promise.all( + public async registerPlugin(plugin: ILanguageServerPlugin | ILanguageServerPlugin[]) { + await Promise.all( (Array.isArray(plugin) ? plugin : [plugin].filter(Boolean)) .map(p => p.register(this)) ); diff --git a/packages/language-server/tsconfig.json b/packages/language-server/tsconfig.json index f0c6f5613..1e9daf856 100644 --- a/packages/language-server/tsconfig.json +++ b/packages/language-server/tsconfig.json @@ -7,7 +7,6 @@ "experimentalDecorators": true, "lib": ["es6"], "module": "commonjs", - "noEmit": true, "removeComments": true, "resolveJsonModule": true, "sourceMap": true, diff --git a/packages/plugins/codelens/extension.ts b/packages/plugins/codelens/extension.ts index dd032a6c2..469867b31 100644 --- a/packages/plugins/codelens/extension.ts +++ b/packages/plugins/codelens/extension.ts @@ -75,6 +75,9 @@ export default class CodeLensPlugin implements IExtensionPlugin { if (event.affectsConfig('codelensLanguages')) { this.createCodelens(); } + if (event.affectsConfig('highlightQuery')) { + this.updateDecorations(window.activeTextEditor); + } }); } @@ -82,6 +85,7 @@ export default class CodeLensPlugin implements IExtensionPlugin { return this.provider.reset(); } updateDecorations = (editor: TextEditor) => { + if (!Config.highlightQuery) return; if (!editor || !editor.document || editor.document.uri.scheme === 'output' || !this.registeredLanguages.includes(editor.document.languageId)) { return; } diff --git a/packages/plugins/connection-manager/contracts.ts b/packages/plugins/connection-manager/contracts.ts index 771d935d9..f20eb9177 100644 --- a/packages/plugins/connection-manager/contracts.ts +++ b/packages/plugins/connection-manager/contracts.ts @@ -8,6 +8,13 @@ export const GetConnectionsRequest = new RequestType< Error, void >('connection/GetConnectionsRequest'); + +export const ForceListRefresh = new RequestType< + void, + void, + Error, + void +>('connection/ForceListRefresh'); export const GetConnectionPasswordRequest = new RequestType< { conn: IConnection }, string, @@ -21,7 +28,7 @@ export const RunCommandRequest = new RequestType< void >('connection/RunCommandRequest'); export const ConnectRequest = new RequestType< - { conn: IConnection; password?: string }, + { conn: IConnection; password?: string, [id: string]: any }, IConnection, Error, void diff --git a/packages/plugins/connection-manager/extension.ts b/packages/plugins/connection-manager/extension.ts index 058f4665c..3e490dbef 100644 --- a/packages/plugins/connection-manager/extension.ts +++ b/packages/plugins/connection-manager/extension.ts @@ -10,7 +10,7 @@ import { SidebarConnection, SidebarItem, ConnectionExplorer } from '@sqltools/pl import ResultsWebviewManager from '@sqltools/plugins/connection-manager/screens/results'; import SettingsWebview from '@sqltools/plugins/connection-manager/screens/settings'; import { commands, QuickPickItem, window, workspace, ConfigurationTarget, Uri, TextEditor, TextDocument, ProgressLocation, Progress, CancellationTokenSource } from 'vscode'; -import { ConnectRequest, DisconnectRequest, GetConnectionPasswordRequest, GetConnectionsRequest, RunCommandRequest, ProgressNotificationStart, ProgressNotificationComplete, ProgressNotificationStartParams, ProgressNotificationCompleteParams, TestConnectionRequest, GetChildrenForTreeItemRequest, SearchConnectionItemsRequest, SaveResultsRequest } from './contracts'; +import { ConnectRequest, DisconnectRequest, GetConnectionPasswordRequest, GetConnectionsRequest, RunCommandRequest, ProgressNotificationStart, ProgressNotificationComplete, ProgressNotificationStartParams, ProgressNotificationCompleteParams, TestConnectionRequest, GetChildrenForTreeItemRequest, SearchConnectionItemsRequest, SaveResultsRequest, ForceListRefresh } from './contracts'; import path from 'path'; import CodeLensPlugin from '../codelens/extension'; import { extractConnName, getQueryParameters } from '@sqltools/util/query'; @@ -701,6 +701,9 @@ export default class ConnectionManagerPlugin implements IExtensionPlugin { }); this.client.onNotification(ProgressNotificationStart, this.handler_progressStart); this.client.onNotification(ProgressNotificationComplete, this.handler_progressComplete); + this.client.onRequest(ForceListRefresh, () => { + this.explorer.refresh(); + }); // extension stuff Context.subscriptions.push( diff --git a/packages/plugins/connection-manager/language-server.ts b/packages/plugins/connection-manager/language-server.ts index 57424aaff..4f5799004 100644 --- a/packages/plugins/connection-manager/language-server.ts +++ b/packages/plugins/connection-manager/language-server.ts @@ -5,7 +5,7 @@ import { getConnectionId, migrateConnectionSetting } from '@sqltools/util/connec import csvStringify from 'csv-stringify/lib/sync'; import { writeFile as writeFileWithCb } from 'fs'; import { promisify } from 'util'; -import { ConnectRequest, DisconnectRequest, SearchConnectionItemsRequest, GetConnectionPasswordRequest, GetConnectionsRequest, RunCommandRequest, SaveResultsRequest, ProgressNotificationStart, ProgressNotificationComplete, TestConnectionRequest, GetChildrenForTreeItemRequest } from './contracts'; +import { ConnectRequest, DisconnectRequest, SearchConnectionItemsRequest, GetConnectionPasswordRequest, GetConnectionsRequest, RunCommandRequest, SaveResultsRequest, ProgressNotificationStart, ProgressNotificationComplete, TestConnectionRequest, GetChildrenForTreeItemRequest, ForceListRefresh } from './contracts'; import Handlers from './cache/handlers'; import DependencyManager from './dependency-manager/language-server'; import { DependeciesAreBeingInstalledNotification } from './dependency-manager/contracts'; @@ -17,7 +17,7 @@ import queryResultsCache from './cache/query-results.model'; const writeFile = promisify(writeFileWithCb); -const log = logger.extend('conn-mann'); +const log = logger.extend('conn-manager'); export default class ConnectionManagerPlugin implements ILanguageServerPlugin { private server: ILanguageServer; @@ -120,18 +120,22 @@ export default class ConnectionManagerPlugin implements ILanguageServerPlugin { private openConnectionHandler: RequestHandler = async (req: { conn: IConnection; password?: string; + internalRequest: boolean; }): Promise => { if (!req || !req.conn) { return undefined; } - let c = await this.getConnectionInstance(req.conn); - let progressBase; + let progressBase: any; + let c: Connection; try { + let c = await this.getConnectionInstance(req.conn); if (c) { + log.extend('debug')('Connection instance already exists for %s.', c.getName()); await Handlers.Connect(c); return this.serializarConnectionState(req.conn); } c = new Connection(req.conn, () => this.server.server.workspace.getWorkspaceFolders()); + log.extend('debug')('Connection instance created for %s.', c.getName()); // @OPTIMIZE progressBase = { @@ -141,13 +145,14 @@ export default class ConnectionManagerPlugin implements ILanguageServerPlugin { if (req.password) c.setPassword(req.password); + this.server.sendNotification(ProgressNotificationStart, { ...progressBase, message: 'Connecting....' }); await Handlers.Connect(c); - this.server.sendNotification(ProgressNotificationStart, { ...progressBase, message: 'Connecting....' }); await c.connect(); this.server.sendNotification(ProgressNotificationComplete, { ...progressBase, message: 'Connected!' }); return this.serializarConnectionState(req.conn); } catch (e) { + if (req.internalRequest) return Promise.reject(e); log.extend('Connecting error: %O', e); await Handlers.Disconnect(c); progressBase && this.server.sendNotification(ProgressNotificationComplete, progressBase); @@ -161,7 +166,7 @@ export default class ConnectionManagerPlugin implements ILanguageServerPlugin { telemetry.registerException(e); - throw e; + throw Promise.resolve(e); } }; @@ -250,7 +255,8 @@ export default class ConnectionManagerPlugin implements ILanguageServerPlugin { } // internal utils - public _autoConnectIfActive = async () => { + public _autoConnectIfActive = async (retryCount = 0) => { + if (retryCount >= RETRY_LIMIT) return; const defaultConnections: IConnection[] = []; const [ activeConnections, lastUsedId ] = await Promise.all([ connectionStateCache.get(ACTIVE_CONNECTIONS_KEY, {}), @@ -259,37 +265,51 @@ export default class ConnectionManagerPlugin implements ILanguageServerPlugin { if (lastUsedId && activeConnections[lastUsedId]) { defaultConnections.push(await this.serializarConnectionState(activeConnections[lastUsedId].serialize())); } - if (defaultConnections.length === 0 - && ( - typeof ConfigRO.autoConnectTo === 'string' - || ( - Array.isArray(ConfigRO.autoConnectTo) && ConfigRO.autoConnectTo.length > 0 - ) - ) + if ( + typeof ConfigRO.autoConnectTo === 'string' + || ( + Array.isArray(ConfigRO.autoConnectTo) && ConfigRO.autoConnectTo.length > 0 + ) ) { const autoConnectTo = Array.isArray(ConfigRO.autoConnectTo) ? ConfigRO.autoConnectTo : [ConfigRO.autoConnectTo]; - log.extend('info')(`Configuration set to auto connect to: ${autoConnectTo}`); + log.extend('info')(`Configuration set to auto connect to: %s. retry count: %d`, autoConnectTo.join(', '), retryCount); - defaultConnections.push(...ConfigRO.connections - .filter((conn) => conn && autoConnectTo.indexOf(conn.name) >= 0) - .filter(Boolean)); + const existingConnections = ConfigRO.connections; + autoConnectTo.forEach(connName => { + if (defaultConnections.find(c => c.name === connName)) return; + const foundConn = existingConnections.find(c => connName === c.name); + if (!foundConn) return; + defaultConnections.push(foundConn); + }); } if (defaultConnections.length === 0) { return; } + log.extend('debug')(`Found connections: %s. retry count: %d`, defaultConnections.map(c => c.name).join(', '), retryCount); try { - await Promise.all(defaultConnections.slice(1).map(conn => - (>this.openConnectionHandler({ conn })) + await Promise.all(defaultConnections.slice(1).map(conn => { + log.extend('info')(`Auto connect to %s`, conn.name); + return Promise.resolve(this.openConnectionHandler({ conn, internalRequest: true })) .catch(e => { - this.server.notifyError(`Failed to auto connect to ${conn.name}`, e); + if (retryCount < RETRY_LIMIT) return Promise.reject(e); + this.server.notifyError(`Failed to auto connect to ${conn.name}`, e); return Promise.resolve(); - }), - )); - - await this.openConnectionHandler({ conn: defaultConnections[0] }); + }); + })); + log.extend('debug')('Will mark %s as active', defaultConnections[0].name); + // leave the last one active + await this.openConnectionHandler({ conn: defaultConnections[0], internalRequest: true }); + this.server.sendRequest(ForceListRefresh, undefined); } catch (error) { + if (retryCount < RETRY_LIMIT) { + log.extend('info')('auto connect will retry: attempts %d', retryCount + 1); + return new Promise((res) => { + setTimeout(res, 1000); + }).then(() => this._autoConnectIfActive(retryCount++)); + } + log.extend('error')('auto connect error >> %O', error); if (error.data && error.data.notification) { return void this.server.sendNotification(error.data.notification, error.data.args); } @@ -297,3 +317,4 @@ export default class ConnectionManagerPlugin implements ILanguageServerPlugin { } } } +const RETRY_LIMIT = 15; \ No newline at end of file diff --git a/packages/plugins/package.json b/packages/plugins/package.json index 529865585..ce46205a7 100644 --- a/packages/plugins/package.json +++ b/packages/plugins/package.json @@ -12,10 +12,10 @@ "@material-ui/core": "^4.9.7", "@material-ui/icons": "^4.9.1", "@rjsf/core": "^2.0.1", - "@sqltools/base-driver": "latest", + "@sqltools/base-driver": "*", "@sqltools/formatter": "*", "@sqltools/language-server": "*", - "@sqltools/types": "latest", + "@sqltools/types": "*", "@sqltools/util": "*", "@sqltools/vscode": "*", "command-exists": "1.2.9", diff --git a/packages/types/README.md b/packages/types/README.md index 07811a13a..f87c8bc71 100644 --- a/packages/types/README.md +++ b/packages/types/README.md @@ -12,6 +12,10 @@ This package is part of [vscode-sqltools](https://github.com/mtxr/vscode-sqltool # Changelog +### v0.1.4 + +- Add boolean option `highlightQuery` to extension configuration so query highlight can be disabled/enabled. + ### v0.1.3 - fixed `checkDependencies` being requred. It's optional diff --git a/packages/types/index.d.ts b/packages/types/index.d.ts index 3bac2c505..3d83bef09 100644 --- a/packages/types/index.d.ts +++ b/packages/types/index.d.ts @@ -560,6 +560,13 @@ export interface ISettings { * @see {@link https://code.visualstudio.com/docs/languages/identifiers} for more information. */ codelensLanguages?: CodelensLanguages; + /** + * Languages with SQL CodeLens enabled. + * @type {boolean} + * @default true + * @memberof ISettings + */ + highlightQuery?: boolean; /** * Format document/selection options * @type {IFormatOptions} @@ -784,7 +791,7 @@ export type LSContextMap = Omit, 'clear' | 'delete'> & { drive export interface ILanguageServer { listen(): void; getContext(): LSContextMap; - registerPlugin(plugin: ILanguageServerPlugin): this; + registerPlugin(plugin: ILanguageServerPlugin | ILanguageServerPlugin[]): Promise; sendNotification: LSIConnection['sendNotification']; onRequest: LSIConnection['onRequest']; onNotification: LSIConnection['onNotification']; diff --git a/packages/types/package.json b/packages/types/package.json index 027aac99a..e008923b4 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@sqltools/types", - "version": "0.1.3", + "version": "0.1.4", "description": "SQLTools interfaces and types", "types": "index.d.ts", "main": "index.js", diff --git a/packages/util/constants.ts b/packages/util/constants.ts index 62271874c..18e1e921a 100644 --- a/packages/util/constants.ts +++ b/packages/util/constants.ts @@ -1,7 +1,7 @@ export const VERSION = process.env.VERSION; export const EXT_NAMESPACE = process.env.EXT_NAMESPACE; export const EXT_CONFIG_NAMESPACE = process.env.EXT_CONFIG_NAMESPACE; -export const DISPLAY_NAME = process.env.DISPLAY_NAME; +export const DISPLAY_NAME = process.env.DISPLAY_NAME.replace(/^"/, '').replace(/"$/, ''); export const AUTHOR = process.env.AUTHOR; export const ENV = process.env.NODE_ENV || 'production'; export const DOCS_ROOT_URL = 'https://vscode-sqltools.mteixeira.dev'; diff --git a/packages/util/log/generic/index.ts b/packages/util/log/generic/index.ts index 41b2befa6..03203c962 100644 --- a/packages/util/log/generic/index.ts +++ b/packages/util/log/generic/index.ts @@ -5,9 +5,10 @@ ConfigRO.addOnUpdateHook(() => { const currentNS = (productLogger._debug as any).load && (productLogger._debug as any).load(); let newNS = ConfigRO.get('debug', {}).namespaces; if (!newNS) { - newNS = process.env.NODE_ENV === 'development' ? '*' : '*,-*:debug,-*:*:debug,-*:*:*:debug,-*:*:*:*:debug,-*:*:*:*:*:debug'; + newNS = process.env.NODE_ENV === 'development' ? '*,-babel*' : '*,-babel*,-*:debug,-*:*:debug,-*:*:*:debug,-*:*:*:*:debug,-*:*:*:*:*:debug'; } if (currentNS !== newNS) productLogger._debug.enable(newNS); + console.log('namespaces set to ', newNS); }); export default productLogger; \ No newline at end of file diff --git a/packages/util/log/vscode/index.ts b/packages/util/log/vscode/index.ts index ed1997758..827495970 100644 --- a/packages/util/log/vscode/index.ts +++ b/packages/util/log/vscode/index.ts @@ -20,7 +20,7 @@ Config.addOnUpdateHook(({ event }) => { let newNS = Config.get('debug', {}).namespaces; if (!newNS) { - newNS = process.env.NODE_ENV === 'development' ? '*' : '*,-*:debug,-*:*:debug,-*:*:*:debug,-*:*:*:*:debug,-*:*:*:*:*:debug'; + newNS = process.env.NODE_ENV === 'development' ? '*,-babel*' : '*,-babel*,-*:debug,-*:*:debug,-*:*:*:debug,-*:*:*:*:debug,-*:*:*:*:*:debug'; } if (currentNS !== newNS) productLogger._debug.enable(newNS); } diff --git a/packages/util/package.json b/packages/util/package.json index 6428a7474..e5822d802 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -7,7 +7,7 @@ "private": true, "dependencies": { "@sentry/node": "5.12.4", - "@sqltools/types": "latest", + "@sqltools/types": "*", "@sqltools/vscode": "*", "debug": "https://github.com/mtxr/debug.git", "env-paths": "^2.2.0", diff --git a/project.code-workspace b/project.code-workspace index e63c8e023..5c4a46f45 100644 --- a/project.code-workspace +++ b/project.code-workspace @@ -33,11 +33,13 @@ "**/.git/subtree-cache/**": true, "**/node_modules/**": true, "**/.vscode-test": true, + "**/dist/**": true }, "search.exclude": { "**/node_modules": true, "**/bower_components": true, "**/.vscode-test": true, + "**/dist": true }, "typescript.tsdk": "root/node_modules/typescript/lib", "cSpell.words": [ diff --git a/yarn.lock b/yarn.lock index 5c0801cb6..a8925fed1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2082,9 +2082,9 @@ camelize@^1.0.0: integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= caniuse-lite@^1.0.30001043: - version "1.0.30001066" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz#0a8a58a10108f2b9bf38e7b65c237b12fd9c5f04" - integrity sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw== + version "1.0.30001077" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001077.tgz#5d7da6a120b08d9f4fd94823786ecb454aaa5626" + integrity sha512-AEzsGvjBJL0lby/87W96PyEvwN0GsYvk5LHsglLg9tW37K4BqvAvoSCdWIE13OZQ8afupqZ73+oL/1LkedN8hA== capture-exit@^2.0.0: version "2.0.0" @@ -2450,7 +2450,7 @@ css-to-react-native@^3.0.0: css-color-keywords "^1.0.0" postcss-value-parser "^4.0.2" -css-vendor@^2.0.7: +css-vendor@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== @@ -2705,9 +2705,9 @@ ejs@^2.6.1: integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== electron-to-chromium@^1.3.413: - version "1.3.457" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.457.tgz#f5662ce9f940df446a01ba27c739c83099631f1b" - integrity sha512-sirUGpEXQ91HpWByW1Q9XMeL/0RQHS8AhNdkYSlfS184i6ukHO12wiJECyVKnDqTt/YuETQX4C6VOrCGGDmlOA== + version "1.3.458" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.458.tgz#4ef179f9a0f1d8a658180c09b21bf73edddfc5eb" + integrity sha512-OjRkb0igW0oKE2QbzS7vBYrm7xjW/KRTtIj0OGGx57jr/YhBiKb7oZvdbaojqjfCb/7LbnwsbMbdsYjthdJbAw== emoji-regex@^7.0.1: version "7.0.3" @@ -3434,9 +3434,9 @@ inquirer@^7.1.0: through "^2.3.6" interpret@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.3.0.tgz#6f637617cf307760be422ab9f4d13cc8a35eca1a" - integrity sha512-RDVhhDkycLoSQtE9o0vpK/vOccVDsCbWVzRxArGYnlQLcihPl2loFbPyiH7CM0m2/ijOJU3+PZbnBPaB6NJ1MA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" @@ -4229,68 +4229,69 @@ jsprim@^1.2.2: verror "1.10.0" jss-plugin-camel-case@^10.0.3: - version "10.1.1" - resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.1.1.tgz#8e73ecc4f1d0f8dfe4dd31f6f9f2782588970e78" - integrity sha512-MDIaw8FeD5uFz1seQBKz4pnvDLnj5vIKV5hXSVdMaAVq13xR6SVTVWkIV/keyTs5txxTvzGJ9hXoxgd1WTUlBw== + version "10.2.0" + resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.2.0.tgz#ff60104a8b951a1faec12884bf7fd63a36946e4f" + integrity sha512-N5RF3TV+ejKfnq1I/wfp4uj8IVgJCRw4LZQyxW6XiYr6qX2CJsrVvF/lxYIkEL/C19Lgso5D7zy1uxlRWJWGjQ== dependencies: "@babel/runtime" "^7.3.1" hyphenate-style-name "^1.0.3" - jss "10.1.1" + jss "10.2.0" jss-plugin-default-unit@^10.0.3: - version "10.1.1" - resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.1.1.tgz#2df86016dfe73085eead843f5794e3890e9c5c47" - integrity sha512-UkeVCA/b3QEA4k0nIKS4uWXDCNmV73WLHdh2oDGZZc3GsQtlOCuiH3EkB/qI60v2MiCq356/SYWsDXt21yjwdg== + version "10.2.0" + resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.2.0.tgz#d8defa4f04c33d4fa9e047709a28f058bdc7385a" + integrity sha512-uni8vfNiCUffm+C26+bhEVX9bWiI1f+bzdDJ3hsgRD1cLey5qZ8zVR6IVa2OVWTG7mMN2eOdG2GxpSCOEuG54Q== dependencies: "@babel/runtime" "^7.3.1" - jss "10.1.1" + jss "10.2.0" jss-plugin-global@^10.0.3: - version "10.1.1" - resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.1.1.tgz#36b0d6d9facb74dfd99590643708a89260747d14" - integrity sha512-VBG3wRyi3Z8S4kMhm8rZV6caYBegsk+QnQZSVmrWw6GVOT/Z4FA7eyMu5SdkorDlG/HVpHh91oFN56O4R9m2VA== + version "10.2.0" + resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.2.0.tgz#fda990bf9880c394eeb06969b3809a88ad5d0aa0" + integrity sha512-l2Y1sRXnhMgw7Hq0iH8loWaokIdmXSCD6BE9uporzt48K/cEAkiy1Qx7oeuBE5wHahlOeIASZRGQlm09u5ckrA== dependencies: "@babel/runtime" "^7.3.1" - jss "10.1.1" + jss "10.2.0" jss-plugin-nested@^10.0.3: - version "10.1.1" - resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.1.1.tgz#5c3de2b8bda344de1ebcef3a4fd30870a29a8a8c" - integrity sha512-ozEu7ZBSVrMYxSDplPX3H82XHNQk2DQEJ9TEyo7OVTPJ1hEieqjDFiOQOxXEj9z3PMqkylnUbvWIZRDKCFYw5Q== + version "10.2.0" + resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.2.0.tgz#834cbd1c22c3a87287022c4edc6566db021cc9fc" + integrity sha512-4pO6fiWMbtEp8eJlBUaS1vg1bFjCBZsN1Kl0mVqX5jdQJ/7hvKWsX2pIKGFIu9eOcyr30Nacy6NxGiAlYJjbFA== dependencies: "@babel/runtime" "^7.3.1" - jss "10.1.1" + jss "10.2.0" tiny-warning "^1.0.2" jss-plugin-props-sort@^10.0.3: - version "10.1.1" - resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.1.1.tgz#34bddcbfaf9430ec8ccdf92729f03bb10caf1785" - integrity sha512-g/joK3eTDZB4pkqpZB38257yD4LXB0X15jxtZAGbUzcKAVUHPl9Jb47Y7lYmiGsShiV4YmQRqG1p2DHMYoK91g== + version "10.2.0" + resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.2.0.tgz#c7dd7fc3e951a9fd08e4597db4af054c54a76483" + integrity sha512-ihJwnaFLdyfTz6azGkz3WEwLkrh1p4X8PKBdCYaIsTnbNcCh/aULzxI7PkVjkd2Z/zCVK2CFfw3EE4Wxhwo1XQ== dependencies: "@babel/runtime" "^7.3.1" - jss "10.1.1" + jss "10.2.0" jss-plugin-rule-value-function@^10.0.3: - version "10.1.1" - resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.1.1.tgz#be00dac6fc394aaddbcef5860b9eca6224d96382" - integrity sha512-ClV1lvJ3laU9la1CUzaDugEcwnpjPTuJ0yGy2YtcU+gG/w9HMInD5vEv7xKAz53Bk4WiJm5uLOElSEshHyhKNw== + version "10.2.0" + resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.2.0.tgz#5a129ebfff57e47b3ee3f1fa7b1b7e6025605b02" + integrity sha512-16Y612DFhOCdMVTQYMxPuGQr7YIxcy6ehrQV408z8njYajc1Qtpc9JVl/wmTJFIYVRKfY9/0HQXSxD3Z3Gn0Hw== dependencies: "@babel/runtime" "^7.3.1" - jss "10.1.1" + jss "10.2.0" + tiny-warning "^1.0.2" jss-plugin-vendor-prefixer@^10.0.3: - version "10.1.1" - resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.1.1.tgz#8348b20749f790beebab3b6a8f7075b07c2cfcfd" - integrity sha512-09MZpQ6onQrhaVSF6GHC4iYifQ7+4YC/tAP6D4ZWeZotvCMq1mHLqNKRIaqQ2lkgANjlEot2JnVi1ktu4+L4pw== + version "10.2.0" + resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.2.0.tgz#d279376792454db85a6719a431fe0666e1b690cb" + integrity sha512-r6HytNgrGPAbW+vrcRtY+nOMLaEwBz8HSDtsuQFU06bAH4+NOK34QRxie4jOepLAmmbpjxWt6f4c8CUFGmiFCA== dependencies: "@babel/runtime" "^7.3.1" - css-vendor "^2.0.7" - jss "10.1.1" + css-vendor "^2.0.8" + jss "10.2.0" -jss@10.1.1, jss@^10.0.3: - version "10.1.1" - resolved "https://registry.yarnpkg.com/jss/-/jss-10.1.1.tgz#450b27d53761af3e500b43130a54cdbe157ea332" - integrity sha512-Xz3qgRUFlxbWk1czCZibUJqhVPObrZHxY3FPsjCXhDld4NOj1BgM14Ir5hVm+Qr6OLqVljjGvoMcCdXNOAbdkQ== +jss@10.2.0, jss@^10.0.3: + version "10.2.0" + resolved "https://registry.yarnpkg.com/jss/-/jss-10.2.0.tgz#5f0b18dc506172ca0306f49d9222ee333800cf34" + integrity sha512-WyG2Jm8nEbYHIVx0UIitgS7R1SXwWpQ1p+SHeI2HNrNR/DSEBXR8l0XYqNdVOCvKnFDPwVWVW7EFlhPh0tYA2w== dependencies: "@babel/runtime" "^7.3.1" csstype "^2.6.5" @@ -4538,9 +4539,9 @@ merge-stream@^2.0.0: integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.2.3: - version "1.3.0" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" - integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -4735,9 +4736,9 @@ node-notifier@^5.4.2: which "^1.3.0" node-releases@^1.1.53: - version "1.1.57" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.57.tgz#f6754ce225fad0611e61228df3e09232e017ea19" - integrity sha512-ZQmnWS7adi61A9JsllJ2gdj2PauElcjnOwTp2O011iGzoakTxUsDGSe+6vD7wXbKdqhSFymC0OSx35aAMhrSdw== + version "1.1.58" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" + integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== node-sql-parser@^1.7.7: version "1.11.0"