From 70073581f43ecb297cb1893eda7a4bdd071cea5d Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Thu, 11 Jul 2019 13:56:05 -0700 Subject: [PATCH 1/8] chore: Bump windows-process-tree@0.2.4 --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index fce0b0efa12e8..cb89de7caf8d1 100644 --- a/package.json +++ b/package.json @@ -154,6 +154,6 @@ "vscode-windows-registry": "1.0.1", "windows-foreground-love": "0.1.0", "windows-mutex": "0.2.1", - "windows-process-tree": "0.2.3" + "windows-process-tree": "0.2.4" } } diff --git a/yarn.lock b/yarn.lock index 84e92984ad6a7..76653e650f523 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9822,12 +9822,12 @@ windows-mutex@0.2.1: bindings "^1.2.1" nan "^2.10.0" -windows-process-tree@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/windows-process-tree/-/windows-process-tree-0.2.3.tgz#6b781f0a320e8a0d6434c9399add4389c709cf6e" - integrity sha512-SzPJSubVVsToz1g5lr2P+4mQT70gvJ9u/nlnpfkOeQcAhOuhKz5DiO1TARgR0OnVsv21LPzxbA2m/4JQkGh1wA== +windows-process-tree@0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/windows-process-tree/-/windows-process-tree-0.2.4.tgz#747af587b54cc6c996f2be0836cc8a8fd0dc038f" + integrity sha512-9gag9AHm3Iin/4YC1EwoIfZlqW/rG2eV7rJZ4Fy5NnAMGdewmnwsie5Rz+CJo2vSolqzzfw7hPeu3oOdniNejg== dependencies: - nan "^2.10.0" + nan "^2.13.2" wordwrap@0.0.2: version "0.0.2" From 9be01adea1c1e875019758a15ec1e76bc11d19fa Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Thu, 11 Jul 2019 15:42:37 -0700 Subject: [PATCH 2/8] chore: Bump node-pty@0.9.0-beta19 --- package.json | 2 +- remote/package.json | 2 +- remote/yarn.lock | 8 ++++---- yarn.lock | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index fb1a4cf87e2ce..9a3eac0d3593a 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "native-is-elevated": "^0.2.1", "native-keymap": "2.0.0", "native-watchdog": "1.0.0", - "node-pty": "0.9.0-beta17", + "node-pty": "0.9.0-beta19", "nsfw": "1.2.5", "onigasm-umd": "^2.2.2", "semver": "^5.5.0", diff --git a/remote/package.json b/remote/package.json index 86da5ab591788..aa11efc638d58 100644 --- a/remote/package.json +++ b/remote/package.json @@ -12,7 +12,7 @@ "keytar": "4.2.1", "minimist": "1.2.0", "native-watchdog": "1.0.0", - "node-pty": "0.9.0-beta17", + "node-pty": "0.9.0-beta19", "nsfw": "1.2.5", "onigasm-umd": "^2.2.2", "semver": "^5.5.0", diff --git a/remote/yarn.lock b/remote/yarn.lock index aa2eda0f4ddcd..e81f734b92f57 100644 --- a/remote/yarn.lock +++ b/remote/yarn.lock @@ -886,10 +886,10 @@ node-addon-api@1.6.2: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.6.2.tgz#d8aad9781a5cfc4132cc2fecdbdd982534265217" integrity sha512-479Bjw9nTE5DdBSZZWprFryHGjUaQC31y1wHo19We/k0BZlrmhqQitWoUL0cD8+scljCbIUL+E58oRDEakdGGA== -node-pty@0.9.0-beta17: - version "0.9.0-beta17" - resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.9.0-beta17.tgz#9b490df86a8124dea595e9fbedeaaf4b2eedbbcb" - integrity sha512-E94XwIs3JxLKAboquHY9Kytbbj/T/tJtRpQoAUdfPE7UXRta/NV+xdmRNhZkeU9jCji+plm656GbYFievgNPkQ== +node-pty@0.9.0-beta19: + version "0.9.0-beta19" + resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.9.0-beta19.tgz#0fd381b2006f4665c4c2ee0509219e591842371a" + integrity sha512-MkKEvBnauGnzgXNr/oaoWQLVXm1gheIKZs4YQp8883ZiETmbEnpSvD0FU3bELcPXG5VFPRqIGsQJ4KUMBLzkPA== dependencies: nan "^2.13.2" diff --git a/yarn.lock b/yarn.lock index 84e92984ad6a7..fbc4e3c8e8373 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6136,10 +6136,10 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-pty@0.9.0-beta17: - version "0.9.0-beta17" - resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.9.0-beta17.tgz#9b490df86a8124dea595e9fbedeaaf4b2eedbbcb" - integrity sha512-E94XwIs3JxLKAboquHY9Kytbbj/T/tJtRpQoAUdfPE7UXRta/NV+xdmRNhZkeU9jCji+plm656GbYFievgNPkQ== +node-pty@0.9.0-beta19: + version "0.9.0-beta19" + resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.9.0-beta19.tgz#0fd381b2006f4665c4c2ee0509219e591842371a" + integrity sha512-MkKEvBnauGnzgXNr/oaoWQLVXm1gheIKZs4YQp8883ZiETmbEnpSvD0FU3bELcPXG5VFPRqIGsQJ4KUMBLzkPA== dependencies: nan "^2.13.2" From ab106480e98e55aa25a3886ba73d076389611a22 Mon Sep 17 00:00:00 2001 From: SteVen Batten Date: Thu, 11 Jul 2019 16:06:36 -0700 Subject: [PATCH 3/8] fixes #67366 --- src/vs/workbench/browser/layout.ts | 74 +++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 17 deletions(-) diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index 72d13ef9aa4c3..c6c65edb28af2 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -869,23 +869,63 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi } resizePart(part: Parts, sizeChange: number): void { - let view: View; - switch (part) { - case Parts.SIDEBAR_PART: - view = this.sideBarPartView; - case Parts.PANEL_PART: - view = this.panelPartView; - case Parts.EDITOR_PART: - view = this.editorPartView; - if (this.workbenchGrid instanceof Grid) { - const { width, height } = this.workbenchGrid.getViewSize(view); - this.workbenchGrid.resizeView(view, { width: width + sizeChange, height: height + sizeChange }); - } else { - this.workbenchGrid.resizePart(part, sizeChange); - } - break; - default: - return; // Cannot resize other parts + if (this.workbenchGrid instanceof Grid) { + let viewSize; + const sizeChangePxWidth = this.workbenchGrid.width * sizeChange / 100; + const sizeChangePxHeight = this.workbenchGrid.height * sizeChange / 100; + + switch (part) { + case Parts.SIDEBAR_PART: + viewSize = this.workbenchGrid.getViewSize(this.sideBarPartView); + this.workbenchGrid.resizeView(this.sideBarPartView, + { + width: viewSize.width + sizeChangePxWidth, + height: viewSize.height + }); + + break; + case Parts.PANEL_PART: + viewSize = this.workbenchGrid.getViewSize(this.panelPartView); + + this.workbenchGrid.resizeView(this.panelPartView, + { + width: viewSize.width + (this.getPanelPosition() !== Position.BOTTOM ? sizeChangePxWidth : 0), + height: viewSize.height + (this.getPanelPosition() !== Position.BOTTOM ? 0 : sizeChangePxHeight) + }); + + break; + case Parts.EDITOR_PART: + viewSize = this.workbenchGrid.getViewSize(this.editorPartView); + + // Single Editor Group + if (this.editorGroupService.count === 1) { + if (this.isVisible(Parts.SIDEBAR_PART)) { + this.workbenchGrid.resizeView(this.editorPartView, + { + width: viewSize.width + sizeChangePxWidth, + height: viewSize.height + }); + } else if (this.isVisible(Parts.PANEL_PART)) { + this.workbenchGrid.resizeView(this.editorPartView, + { + width: viewSize.width + (this.getPanelPosition() !== Position.BOTTOM ? sizeChangePxWidth : 0), + height: viewSize.height + (this.getPanelPosition() !== Position.BOTTOM ? 0 : sizeChangePxHeight) + }); + } + } else { + const activeGroup = this.editorGroupService.activeGroup; + + const { width, height } = this.editorGroupService.getSize(activeGroup); + this.editorGroupService.setSize(activeGroup, { width: width + sizeChangePxWidth, height: height + sizeChangePxHeight }); + } + + break; + default: + return; // Cannot resize other parts + } + } else { + // Legacy Layout + this.workbenchGrid.resizePart(part, sizeChange); } } From a3ec0455b2bef18e3369869298dd9432e151a4ac Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 12 Jul 2019 01:07:21 +0200 Subject: [PATCH 4/8] Fix #69111 --- .../preferences/browser/preferencesSearch.ts | 356 ++++++++++++++- .../electron-browser/preferencesSearch.ts | 431 ------------------ src/vs/workbench/workbench.main.ts | 2 +- 3 files changed, 352 insertions(+), 437 deletions(-) delete mode 100644 src/vs/workbench/contrib/preferences/electron-browser/preferencesSearch.ts diff --git a/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts b/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts index 5c78ca620faa5..52cb6c5e84173 100644 --- a/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts +++ b/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts @@ -3,9 +3,9 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ISettingsEditorModel, ISetting, ISettingsGroup, ISearchResult, IGroupFilter } from 'vs/workbench/services/preferences/common/preferences'; +import { ISettingsEditorModel, ISetting, ISettingsGroup, IFilterMetadata, ISearchResult, IGroupFilter, ISettingMatcher, IScoredResults, ISettingMatch, IRemoteSetting, IExtensionSetting } from 'vs/workbench/services/preferences/common/preferences'; import { IRange } from 'vs/editor/common/core/range'; -import { distinct } from 'vs/base/common/arrays'; +import { distinct, top } from 'vs/base/common/arrays'; import * as strings from 'vs/base/common/strings'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; import { Registry } from 'vs/platform/registry/common/platform'; @@ -13,8 +13,17 @@ import { IConfigurationRegistry, Extensions } from 'vs/platform/configuration/co import { IMatch, or, matchesContiguousSubString, matchesPrefix, matchesCamelCase, matchesWords } from 'vs/base/common/filters'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { Disposable } from 'vs/base/common/lifecycle'; -import { IPreferencesSearchService, ISearchProvider } from 'vs/workbench/contrib/preferences/common/preferences'; +import { IPreferencesSearchService, ISearchProvider, IWorkbenchSettingsConfiguration } from 'vs/workbench/contrib/preferences/common/preferences'; +import { IEnvironmentService } from 'vs/platform/environment/common/environment'; +import { IRequestService, asJson } from 'vs/platform/request/common/request'; +import { IExtensionManagementService, ILocalExtension, IExtensionEnablementService } from 'vs/platform/extensionManagement/common/extensionManagement'; +import { ILogService } from 'vs/platform/log/common/log'; import { CancellationToken } from 'vs/base/common/cancellation'; +import { canceled } from 'vs/base/common/errors'; +import { ExtensionType } from 'vs/platform/extensions/common/extensions'; +import { nullRange } from 'vs/workbench/services/preferences/common/preferencesModels'; +import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; +import { IStringDictionary } from 'vs/base/common/collections'; export interface IEndpointDetails { urlBase?: string; @@ -24,14 +33,58 @@ export interface IEndpointDetails { export class PreferencesSearchService extends Disposable implements IPreferencesSearchService { _serviceBrand: any; + private _installedExtensions: Promise; + constructor( - @IInstantiationService protected readonly instantiationService: IInstantiationService, + @IInstantiationService private readonly instantiationService: IInstantiationService, + @IConfigurationService private readonly configurationService: IConfigurationService, + @IEnvironmentService private readonly environmentService: IEnvironmentService, + @IExtensionManagementService private readonly extensionManagementService: IExtensionManagementService, + @IExtensionEnablementService private readonly extensionEnablementService: IExtensionEnablementService ) { super(); + + // This request goes to the shared process but results won't change during a window's lifetime, so cache the results. + this._installedExtensions = this.extensionManagementService.getInstalled(ExtensionType.User).then(exts => { + // Filter to enabled extensions that have settings + return exts + .filter(ext => this.extensionEnablementService.isEnabled(ext)) + .filter(ext => ext.manifest && ext.manifest.contributes && ext.manifest.contributes.configuration) + .filter(ext => !!ext.identifier.uuid); + }); + } + + private get remoteSearchAllowed(): boolean { + const workbenchSettings = this.configurationService.getValue().workbench.settings; + if (!workbenchSettings.enableNaturalLanguageSearch) { + return false; + } + + return !!this._endpoint.urlBase; + } + + private get _endpoint(): IEndpointDetails { + const workbenchSettings = this.configurationService.getValue().workbench.settings; + if (workbenchSettings.naturalLanguageSearchEndpoint) { + return { + urlBase: workbenchSettings.naturalLanguageSearchEndpoint, + key: workbenchSettings.naturalLanguageSearchKey + }; + } else { + return { + urlBase: this.environmentService.settingsSearchUrl + }; + } } getRemoteSearchProvider(filter: string, newExtensionsOnly = false): ISearchProvider | undefined { - return undefined; + const opts: IRemoteSearchProviderOptions = { + filter, + newExtensionsOnly, + endpoint: this._endpoint + }; + + return this.remoteSearchAllowed ? this.instantiationService.createInstance(RemoteSearchProvider, opts, this._installedExtensions) : undefined; } getLocalSearchProvider(filter: string): LocalSearchProvider { @@ -93,6 +146,299 @@ export class LocalSearchProvider implements ISearchProvider { } } +interface IRemoteSearchProviderOptions { + filter: string; + endpoint: IEndpointDetails; + newExtensionsOnly: boolean; +} + +interface IBingRequestDetails { + url: string; + body?: string; + hasMoreFilters?: boolean; + extensions?: ILocalExtension[]; +} + +class RemoteSearchProvider implements ISearchProvider { + // Must keep extension filter size under 8kb. 42 filters puts us there. + private static readonly MAX_REQUEST_FILTERS = 42; + private static readonly MAX_REQUESTS = 10; + private static readonly NEW_EXTENSIONS_MIN_SCORE = 1; + + private _remoteSearchP: Promise; + + constructor(private options: IRemoteSearchProviderOptions, private installedExtensions: Promise, + @IEnvironmentService private readonly environmentService: IEnvironmentService, + @IRequestService private readonly requestService: IRequestService, + @ILogService private readonly logService: ILogService + ) { + this._remoteSearchP = this.options.filter ? + Promise.resolve(this.getSettingsForFilter(this.options.filter)) : + Promise.resolve(null); + } + + searchModel(preferencesModel: ISettingsEditorModel, token?: CancellationToken): Promise { + return this._remoteSearchP.then((remoteResult) => { + if (!remoteResult) { + return null; + } + + if (token && token.isCancellationRequested) { + throw canceled(); + } + + const resultKeys = Object.keys(remoteResult.scoredResults); + const highScoreKey = top(resultKeys, (a, b) => remoteResult.scoredResults[b].score - remoteResult.scoredResults[a].score, 1)[0]; + const highScore = highScoreKey ? remoteResult.scoredResults[highScoreKey].score : 0; + const minScore = highScore / 5; + if (this.options.newExtensionsOnly) { + return this.installedExtensions.then(installedExtensions => { + const newExtsMinScore = Math.max(RemoteSearchProvider.NEW_EXTENSIONS_MIN_SCORE, minScore); + const passingScoreKeys = resultKeys + .filter(k => { + const result = remoteResult.scoredResults[k]; + const resultExtId = (result.extensionPublisher + '.' + result.extensionName).toLowerCase(); + return !installedExtensions.some(ext => ext.identifier.id.toLowerCase() === resultExtId); + }) + .filter(k => remoteResult.scoredResults[k].score >= newExtsMinScore); + + const filterMatches: ISettingMatch[] = passingScoreKeys.map(k => { + const remoteSetting = remoteResult.scoredResults[k]; + const setting = remoteSettingToISetting(remoteSetting); + return { + setting, + score: remoteSetting.score, + matches: [] // TODO + }; + }); + + return { + filterMatches, + metadata: remoteResult + }; + }); + } else { + const settingMatcher = this.getRemoteSettingMatcher(remoteResult.scoredResults, minScore, preferencesModel); + const filterMatches = preferencesModel.filterSettings(this.options.filter, group => null, settingMatcher); + return { + filterMatches, + metadata: remoteResult + }; + } + }); + } + + private async getSettingsForFilter(filter: string): Promise { + const allRequestDetails: IBingRequestDetails[] = []; + + // Only send MAX_REQUESTS requests in total just to keep it sane + for (let i = 0; i < RemoteSearchProvider.MAX_REQUESTS; i++) { + const details = await this.prepareRequest(filter, i); + allRequestDetails.push(details); + if (!details.hasMoreFilters) { + break; + } + } + + return Promise.all(allRequestDetails.map(details => this.getSettingsFromBing(details))).then(allResponses => { + // Merge all IFilterMetadata + const metadata = allResponses[0]; + metadata.requestCount = 1; + + for (const response of allResponses.slice(1)) { + metadata.requestCount++; + metadata.scoredResults = { ...metadata.scoredResults, ...response.scoredResults }; + } + + return metadata; + }); + } + + private getSettingsFromBing(details: IBingRequestDetails): Promise { + this.logService.debug(`Searching settings via ${details.url}`); + if (details.body) { + this.logService.debug(`Body: ${details.body}`); + } + + const requestType = details.body ? 'post' : 'get'; + const headers: IStringDictionary = { + 'User-Agent': 'request', + 'Content-Type': 'application/json; charset=utf-8', + }; + + if (this.options.endpoint.key) { + headers['api-key'] = this.options.endpoint.key; + } + + const start = Date.now(); + return this.requestService.request({ + type: requestType, + url: details.url, + data: details.body, + headers, + timeout: 5000 + }, CancellationToken.None).then(context => { + if (typeof context.res.statusCode === 'number' && context.res.statusCode >= 300) { + throw new Error(`${JSON.stringify(details)} returned status code: ${context.res.statusCode}`); + } + + return asJson(context); + }).then((result: any) => { + const timestamp = Date.now(); + const duration = timestamp - start; + const remoteSettings: IRemoteSetting[] = (result.value || []) + .map((r: any) => { + const key = JSON.parse(r.setting || r.Setting); + const packageId = r['packageid']; + const id = getSettingKey(key, packageId); + + const value = r['value']; + const defaultValue = value ? JSON.parse(value) : value; + + const packageName = r['packagename']; + let extensionName: string | undefined; + let extensionPublisher: string | undefined; + if (packageName && packageName.indexOf('##') >= 0) { + [extensionPublisher, extensionName] = packageName.split('##'); + } + + return { + key, + id, + defaultValue, + score: r['@search.score'], + description: JSON.parse(r['details']), + packageId, + extensionName, + extensionPublisher + }; + }); + + const scoredResults = Object.create(null); + remoteSettings.forEach(s => { + scoredResults[s.id] = s; + }); + + return { + requestUrl: details.url, + requestBody: details.body, + duration, + timestamp, + scoredResults, + context: result['@odata.context'] + }; + }); + } + + private getRemoteSettingMatcher(scoredResults: IScoredResults, minScore: number, preferencesModel: ISettingsEditorModel): ISettingMatcher { + return (setting: ISetting, group: ISettingsGroup) => { + const remoteSetting = scoredResults[getSettingKey(setting.key, group.id)] || // extension setting + scoredResults[getSettingKey(setting.key, 'core')] || // core setting + scoredResults[getSettingKey(setting.key)]; // core setting from original prod endpoint + if (remoteSetting && remoteSetting.score >= minScore) { + const settingMatches = new SettingMatches(this.options.filter, setting, false, true, (filter, setting) => preferencesModel.findValueMatches(filter, setting)).matches; + return { matches: settingMatches, score: remoteSetting.score }; + } + + return null; + }; + } + + private async prepareRequest(query: string, filterPage = 0): Promise { + const verbatimQuery = query; + query = escapeSpecialChars(query); + const boost = 10; + const boostedQuery = `(${query})^${boost}`; + + // Appending Fuzzy after each word. + query = query.replace(/\ +/g, '~ ') + '~'; + + const encodedQuery = encodeURIComponent(boostedQuery + ' || ' + query); + let url = `${this.options.endpoint.urlBase}`; + + if (this.options.endpoint.key) { + url += `${API_VERSION}&${QUERY_TYPE}`; + } + + const extensions = await this.installedExtensions; + const filters = this.options.newExtensionsOnly ? + [`diminish eq 'latest'`] : + this.getVersionFilters(extensions, this.environmentService.settingsSearchBuildId); + + const filterStr = filters + .slice(filterPage * RemoteSearchProvider.MAX_REQUEST_FILTERS, (filterPage + 1) * RemoteSearchProvider.MAX_REQUEST_FILTERS) + .join(' or '); + const hasMoreFilters = filters.length > (filterPage + 1) * RemoteSearchProvider.MAX_REQUEST_FILTERS; + + const body = JSON.stringify({ + query: encodedQuery, + filters: encodeURIComponent(filterStr), + rawQuery: encodeURIComponent(verbatimQuery) + }); + + return { + url, + body, + hasMoreFilters + }; + } + + private getVersionFilters(exts: ILocalExtension[], buildNumber?: number): string[] { + // Only search extensions that contribute settings + const filters = exts + .filter(ext => ext.manifest.contributes && ext.manifest.contributes.configuration) + .map(ext => this.getExtensionFilter(ext)); + + if (buildNumber) { + filters.push(`(packageid eq 'core' and startbuildno le '${buildNumber}' and endbuildno ge '${buildNumber}')`); + } + + return filters; + } + + private getExtensionFilter(ext: ILocalExtension): string { + const uuid = ext.identifier.uuid; + const versionString = ext.manifest.version + .split('.') + .map(versionPart => strings.pad(versionPart, 10)) + .join(''); + + return `(packageid eq '${uuid}' and startbuildno le '${versionString}' and endbuildno ge '${versionString}')`; + } +} + +function getSettingKey(name: string, packageId?: string): string { + return packageId ? + packageId + '##' + name : + name; +} + +const API_VERSION = 'api-version=2016-09-01-Preview'; +const QUERY_TYPE = 'querytype=full'; + +function escapeSpecialChars(query: string): string { + return query.replace(/\./g, ' ') + .replace(/[\\/+\-&|!"~*?:(){}\[\]\^]/g, '\\$&') + .replace(/ /g, ' ') // collapse spaces + .trim(); +} + +function remoteSettingToISetting(remoteSetting: IRemoteSetting): IExtensionSetting { + return { + description: remoteSetting.description.split('\n'), + descriptionIsMarkdown: false, + descriptionRanges: [], + key: remoteSetting.key, + keyRange: nullRange, + value: remoteSetting.defaultValue, + range: nullRange, + valueRange: nullRange, + overrides: [], + extensionName: remoteSetting.extensionName, + extensionPublisher: remoteSetting.extensionPublisher + }; +} + export class SettingMatches { private readonly descriptionMatchingWords: Map = new Map(); diff --git a/src/vs/workbench/contrib/preferences/electron-browser/preferencesSearch.ts b/src/vs/workbench/contrib/preferences/electron-browser/preferencesSearch.ts deleted file mode 100644 index 63b5f0c3909bc..0000000000000 --- a/src/vs/workbench/contrib/preferences/electron-browser/preferencesSearch.ts +++ /dev/null @@ -1,431 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import { ISettingsEditorModel, ISetting, ISettingsGroup, IFilterMetadata, ISearchResult, IGroupFilter, ISettingMatcher, IScoredResults, ISettingMatch, IRemoteSetting, IExtensionSetting } from 'vs/workbench/services/preferences/common/preferences'; -import { top } from 'vs/base/common/arrays'; -import * as strings from 'vs/base/common/strings'; -import { IEnvironmentService } from 'vs/platform/environment/common/environment'; -import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { IRequestService, asJson } from 'vs/platform/request/common/request'; -import { IExtensionManagementService, ILocalExtension, IExtensionEnablementService } from 'vs/platform/extensionManagement/common/extensionManagement'; -import { ILogService } from 'vs/platform/log/common/log'; -import { IPreferencesSearchService, ISearchProvider, IWorkbenchSettingsConfiguration } from 'vs/workbench/contrib/preferences/common/preferences'; -import { CancellationToken } from 'vs/base/common/cancellation'; -import { canceled } from 'vs/base/common/errors'; -import { ExtensionType } from 'vs/platform/extensions/common/extensions'; -import { nullRange } from 'vs/workbench/services/preferences/common/preferencesModels'; -import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { PreferencesSearchService as LocalPreferencesSearchService, SettingMatches } from 'vs/workbench/contrib/preferences/browser/preferencesSearch'; -import { IStringDictionary } from 'vs/base/common/collections'; - -export interface IEndpointDetails { - urlBase?: string; - key?: string; -} - -export class PreferencesSearchService extends LocalPreferencesSearchService implements IPreferencesSearchService { - _serviceBrand: any; - - private _installedExtensions: Promise; - - constructor( - @IInstantiationService instantiationService: IInstantiationService, - @IConfigurationService private readonly configurationService: IConfigurationService, - @IEnvironmentService private readonly environmentService: IEnvironmentService, - @IExtensionManagementService private readonly extensionManagementService: IExtensionManagementService, - @IExtensionEnablementService private readonly extensionEnablementService: IExtensionEnablementService - ) { - super(instantiationService); - - // This request goes to the shared process but results won't change during a window's lifetime, so cache the results. - this._installedExtensions = this.extensionManagementService.getInstalled(ExtensionType.User).then(exts => { - // Filter to enabled extensions that have settings - return exts - .filter(ext => this.extensionEnablementService.isEnabled(ext)) - .filter(ext => ext.manifest && ext.manifest.contributes && ext.manifest.contributes.configuration) - .filter(ext => !!ext.identifier.uuid); - }); - } - - private get remoteSearchAllowed(): boolean { - const workbenchSettings = this.configurationService.getValue().workbench.settings; - if (!workbenchSettings.enableNaturalLanguageSearch) { - return false; - } - - return !!this._endpoint.urlBase; - } - - private get _endpoint(): IEndpointDetails { - const workbenchSettings = this.configurationService.getValue().workbench.settings; - if (workbenchSettings.naturalLanguageSearchEndpoint) { - return { - urlBase: workbenchSettings.naturalLanguageSearchEndpoint, - key: workbenchSettings.naturalLanguageSearchKey - }; - } else { - return { - urlBase: this.environmentService.settingsSearchUrl - }; - } - } - - getRemoteSearchProvider(filter: string, newExtensionsOnly = false): ISearchProvider | undefined { - const opts: IRemoteSearchProviderOptions = { - filter, - newExtensionsOnly, - endpoint: this._endpoint - }; - - return this.remoteSearchAllowed ? this.instantiationService.createInstance(RemoteSearchProvider, opts, this._installedExtensions) : undefined; - } -} - -export class LocalSearchProvider implements ISearchProvider { - static readonly EXACT_MATCH_SCORE = 10000; - static readonly START_SCORE = 1000; - - constructor(private _filter: string) { - // Remove " and : which are likely to be copypasted as part of a setting name. - // Leave other special characters which the user might want to search for. - this._filter = this._filter - .replace(/[":]/g, ' ') - .replace(/ /g, ' ') - .trim(); - } - - searchModel(preferencesModel: ISettingsEditorModel, token?: CancellationToken): Promise { - if (!this._filter) { - return Promise.resolve(null); - } - - let orderedScore = LocalSearchProvider.START_SCORE; // Sort is not stable - const settingMatcher = (setting: ISetting) => { - const matches = new SettingMatches(this._filter, setting, true, true, (filter, setting) => preferencesModel.findValueMatches(filter, setting)).matches; - const score = this._filter === setting.key ? - LocalSearchProvider.EXACT_MATCH_SCORE : - orderedScore--; - - return matches && matches.length ? - { - matches, - score - } : - null; - }; - - const filterMatches = preferencesModel.filterSettings(this._filter, this.getGroupFilter(this._filter), settingMatcher); - if (filterMatches[0] && filterMatches[0].score === LocalSearchProvider.EXACT_MATCH_SCORE) { - return Promise.resolve({ - filterMatches: filterMatches.slice(0, 1), - exactMatch: true - }); - } else { - return Promise.resolve({ - filterMatches - }); - } - } - - private getGroupFilter(filter: string): IGroupFilter { - const regex = strings.createRegExp(filter, false, { global: true }); - return (group: ISettingsGroup) => { - return regex.test(group.title); - }; - } -} - -interface IRemoteSearchProviderOptions { - filter: string; - endpoint: IEndpointDetails; - newExtensionsOnly: boolean; -} - -interface IBingRequestDetails { - url: string; - body?: string; - hasMoreFilters?: boolean; - extensions?: ILocalExtension[]; -} - -class RemoteSearchProvider implements ISearchProvider { - // Must keep extension filter size under 8kb. 42 filters puts us there. - private static readonly MAX_REQUEST_FILTERS = 42; - private static readonly MAX_REQUESTS = 10; - private static readonly NEW_EXTENSIONS_MIN_SCORE = 1; - - private _remoteSearchP: Promise; - - constructor(private options: IRemoteSearchProviderOptions, private installedExtensions: Promise, - @IEnvironmentService private readonly environmentService: IEnvironmentService, - @IRequestService private readonly requestService: IRequestService, - @ILogService private readonly logService: ILogService - ) { - this._remoteSearchP = this.options.filter ? - Promise.resolve(this.getSettingsForFilter(this.options.filter)) : - Promise.resolve(null); - } - - searchModel(preferencesModel: ISettingsEditorModel, token?: CancellationToken): Promise { - return this._remoteSearchP.then((remoteResult) => { - if (!remoteResult) { - return null; - } - - if (token && token.isCancellationRequested) { - throw canceled(); - } - - const resultKeys = Object.keys(remoteResult.scoredResults); - const highScoreKey = top(resultKeys, (a, b) => remoteResult.scoredResults[b].score - remoteResult.scoredResults[a].score, 1)[0]; - const highScore = highScoreKey ? remoteResult.scoredResults[highScoreKey].score : 0; - const minScore = highScore / 5; - if (this.options.newExtensionsOnly) { - return this.installedExtensions.then(installedExtensions => { - const newExtsMinScore = Math.max(RemoteSearchProvider.NEW_EXTENSIONS_MIN_SCORE, minScore); - const passingScoreKeys = resultKeys - .filter(k => { - const result = remoteResult.scoredResults[k]; - const resultExtId = (result.extensionPublisher + '.' + result.extensionName).toLowerCase(); - return !installedExtensions.some(ext => ext.identifier.id.toLowerCase() === resultExtId); - }) - .filter(k => remoteResult.scoredResults[k].score >= newExtsMinScore); - - const filterMatches: ISettingMatch[] = passingScoreKeys.map(k => { - const remoteSetting = remoteResult.scoredResults[k]; - const setting = remoteSettingToISetting(remoteSetting); - return { - setting, - score: remoteSetting.score, - matches: [] // TODO - }; - }); - - return { - filterMatches, - metadata: remoteResult - }; - }); - } else { - const settingMatcher = this.getRemoteSettingMatcher(remoteResult.scoredResults, minScore, preferencesModel); - const filterMatches = preferencesModel.filterSettings(this.options.filter, group => null, settingMatcher); - return { - filterMatches, - metadata: remoteResult - }; - } - }); - } - - private async getSettingsForFilter(filter: string): Promise { - const allRequestDetails: IBingRequestDetails[] = []; - - // Only send MAX_REQUESTS requests in total just to keep it sane - for (let i = 0; i < RemoteSearchProvider.MAX_REQUESTS; i++) { - const details = await this.prepareRequest(filter, i); - allRequestDetails.push(details); - if (!details.hasMoreFilters) { - break; - } - } - - return Promise.all(allRequestDetails.map(details => this.getSettingsFromBing(details))).then(allResponses => { - // Merge all IFilterMetadata - const metadata = allResponses[0]; - metadata.requestCount = 1; - - for (const response of allResponses.slice(1)) { - metadata.requestCount++; - metadata.scoredResults = { ...metadata.scoredResults, ...response.scoredResults }; - } - - return metadata; - }); - } - - private getSettingsFromBing(details: IBingRequestDetails): Promise { - this.logService.debug(`Searching settings via ${details.url}`); - if (details.body) { - this.logService.debug(`Body: ${details.body}`); - } - - const requestType = details.body ? 'post' : 'get'; - const headers: IStringDictionary = { - 'User-Agent': 'request', - 'Content-Type': 'application/json; charset=utf-8', - }; - - if (this.options.endpoint.key) { - headers['api-key'] = this.options.endpoint.key; - } - - const start = Date.now(); - return this.requestService.request({ - type: requestType, - url: details.url, - data: details.body, - headers, - timeout: 5000 - }, CancellationToken.None).then(context => { - if (typeof context.res.statusCode === 'number' && context.res.statusCode >= 300) { - throw new Error(`${JSON.stringify(details)} returned status code: ${context.res.statusCode}`); - } - - return asJson(context); - }).then((result: any) => { - const timestamp = Date.now(); - const duration = timestamp - start; - const remoteSettings: IRemoteSetting[] = (result.value || []) - .map((r: any) => { - const key = JSON.parse(r.setting || r.Setting); - const packageId = r['packageid']; - const id = getSettingKey(key, packageId); - - const value = r['value']; - const defaultValue = value ? JSON.parse(value) : value; - - const packageName = r['packagename']; - let extensionName: string | undefined; - let extensionPublisher: string | undefined; - if (packageName && packageName.indexOf('##') >= 0) { - [extensionPublisher, extensionName] = packageName.split('##'); - } - - return { - key, - id, - defaultValue, - score: r['@search.score'], - description: JSON.parse(r['details']), - packageId, - extensionName, - extensionPublisher - }; - }); - - const scoredResults = Object.create(null); - remoteSettings.forEach(s => { - scoredResults[s.id] = s; - }); - - return { - requestUrl: details.url, - requestBody: details.body, - duration, - timestamp, - scoredResults, - context: result['@odata.context'] - }; - }); - } - - private getRemoteSettingMatcher(scoredResults: IScoredResults, minScore: number, preferencesModel: ISettingsEditorModel): ISettingMatcher { - return (setting: ISetting, group: ISettingsGroup) => { - const remoteSetting = scoredResults[getSettingKey(setting.key, group.id)] || // extension setting - scoredResults[getSettingKey(setting.key, 'core')] || // core setting - scoredResults[getSettingKey(setting.key)]; // core setting from original prod endpoint - if (remoteSetting && remoteSetting.score >= minScore) { - const settingMatches = new SettingMatches(this.options.filter, setting, false, true, (filter, setting) => preferencesModel.findValueMatches(filter, setting)).matches; - return { matches: settingMatches, score: remoteSetting.score }; - } - - return null; - }; - } - - private async prepareRequest(query: string, filterPage = 0): Promise { - const verbatimQuery = query; - query = escapeSpecialChars(query); - const boost = 10; - const boostedQuery = `(${query})^${boost}`; - - // Appending Fuzzy after each word. - query = query.replace(/\ +/g, '~ ') + '~'; - - const encodedQuery = encodeURIComponent(boostedQuery + ' || ' + query); - let url = `${this.options.endpoint.urlBase}`; - - if (this.options.endpoint.key) { - url += `${API_VERSION}&${QUERY_TYPE}`; - } - - const extensions = await this.installedExtensions; - const filters = this.options.newExtensionsOnly ? - [`diminish eq 'latest'`] : - this.getVersionFilters(extensions, this.environmentService.settingsSearchBuildId); - - const filterStr = filters - .slice(filterPage * RemoteSearchProvider.MAX_REQUEST_FILTERS, (filterPage + 1) * RemoteSearchProvider.MAX_REQUEST_FILTERS) - .join(' or '); - const hasMoreFilters = filters.length > (filterPage + 1) * RemoteSearchProvider.MAX_REQUEST_FILTERS; - - const body = JSON.stringify({ - query: encodedQuery, - filters: encodeURIComponent(filterStr), - rawQuery: encodeURIComponent(verbatimQuery) - }); - - return { - url, - body, - hasMoreFilters - }; - } - - private getVersionFilters(exts: ILocalExtension[], buildNumber?: number): string[] { - // Only search extensions that contribute settings - const filters = exts - .filter(ext => ext.manifest.contributes && ext.manifest.contributes.configuration) - .map(ext => this.getExtensionFilter(ext)); - - if (buildNumber) { - filters.push(`(packageid eq 'core' and startbuildno le '${buildNumber}' and endbuildno ge '${buildNumber}')`); - } - - return filters; - } - - private getExtensionFilter(ext: ILocalExtension): string { - const uuid = ext.identifier.uuid; - const versionString = ext.manifest.version - .split('.') - .map(versionPart => strings.pad(versionPart, 10)) - .join(''); - - return `(packageid eq '${uuid}' and startbuildno le '${versionString}' and endbuildno ge '${versionString}')`; - } -} - -function getSettingKey(name: string, packageId?: string): string { - return packageId ? - packageId + '##' + name : - name; -} - -const API_VERSION = 'api-version=2016-09-01-Preview'; -const QUERY_TYPE = 'querytype=full'; - -function escapeSpecialChars(query: string): string { - return query.replace(/\./g, ' ') - .replace(/[\\/+\-&|!"~*?:(){}\[\]\^]/g, '\\$&') - .replace(/ /g, ' ') // collapse spaces - .trim(); -} - -function remoteSettingToISetting(remoteSetting: IRemoteSetting): IExtensionSetting { - return { - description: remoteSetting.description.split('\n'), - descriptionIsMarkdown: false, - descriptionRanges: [], - key: remoteSetting.key, - keyRange: nullRange, - value: remoteSetting.defaultValue, - range: nullRange, - valueRange: nullRange, - overrides: [], - extensionName: remoteSetting.extensionName, - extensionPublisher: remoteSetting.extensionPublisher - }; -} \ No newline at end of file diff --git a/src/vs/workbench/workbench.main.ts b/src/vs/workbench/workbench.main.ts index f039eb03b56fc..1d4bb76031362 100644 --- a/src/vs/workbench/workbench.main.ts +++ b/src/vs/workbench/workbench.main.ts @@ -200,7 +200,7 @@ import 'vs/workbench/contrib/localizations/browser/localizations.contribution'; import 'vs/workbench/contrib/preferences/browser/preferences.contribution'; import 'vs/workbench/contrib/preferences/browser/keybindingsEditorContribution'; import { IPreferencesSearchService } from 'vs/workbench/contrib/preferences/common/preferences'; -import { PreferencesSearchService } from 'vs/workbench/contrib/preferences/electron-browser/preferencesSearch'; +import { PreferencesSearchService } from 'vs/workbench/contrib/preferences/browser/preferencesSearch'; registerSingleton(IPreferencesSearchService, PreferencesSearchService, true); // Logs From 7824ace3263c64a0c88bd04f5886bf0a553e3cdb Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 12 Jul 2019 01:22:56 +0200 Subject: [PATCH 5/8] #69111 move settings information to product service --- src/vs/platform/environment/common/environment.ts | 3 --- src/vs/platform/environment/node/environmentService.ts | 6 ------ src/vs/platform/product/browser/productService.ts | 4 ++++ src/vs/platform/product/common/product.ts | 3 +++ src/vs/platform/product/node/productService.ts | 4 ++++ src/vs/workbench/browser/web.simpleservices.ts | 6 +++--- .../contrib/preferences/browser/preferencesSearch.ts | 10 +++++----- .../services/environment/browser/environmentService.ts | 2 -- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/vs/platform/environment/common/environment.ts b/src/vs/platform/environment/common/environment.ts index 3c7468626ae3c..d889e685a0bd4 100644 --- a/src/vs/platform/environment/common/environment.ts +++ b/src/vs/platform/environment/common/environment.ts @@ -121,9 +121,6 @@ export interface IEnvironmentService { machineSettingsHome: URI; machineSettingsResource: URI; - settingsSearchBuildId?: number; - settingsSearchUrl?: string; - globalStorageHome: string; workspaceStorageHome: string; diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts index 0ae144de7ce96..dcda435278477 100644 --- a/src/vs/platform/environment/node/environmentService.ts +++ b/src/vs/platform/environment/node/environmentService.ts @@ -132,12 +132,6 @@ export class EnvironmentService implements IEnvironmentService { @memoize get workspaceStorageHome(): string { return path.join(this.appSettingsHome.fsPath, 'workspaceStorage'); } - @memoize - get settingsSearchBuildId(): number | undefined { return product.settingsSearchBuildId; } - - @memoize - get settingsSearchUrl(): string | undefined { return product.settingsSearchUrl; } - @memoize get keybindingsResource(): URI { return resources.joinPath(this.userRoamingDataHome, 'keybindings.json'); } diff --git a/src/vs/platform/product/browser/productService.ts b/src/vs/platform/product/browser/productService.ts index 972e6aad64271..e65407170d9e1 100644 --- a/src/vs/platform/product/browser/productService.ts +++ b/src/vs/platform/product/browser/productService.ts @@ -34,4 +34,8 @@ export class ProductService implements IProductService { get sendASmile(): { reportIssueUrl: string, requestFeatureUrl: string } | undefined { return this.productConfiguration ? this.productConfiguration.sendASmile : undefined; } get extensionsGallery() { return this.productConfiguration ? this.productConfiguration.extensionsGallery : undefined; } + + get settingsSearchBuildId(): number | undefined { return this.productConfiguration ? this.productConfiguration.settingsSearchBuildId : undefined; } + + get settingsSearchUrl(): string | undefined { return this.productConfiguration ? this.productConfiguration.settingsSearchUrl : undefined; } } \ No newline at end of file diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts index 90952c63254d1..c56b004a9c770 100644 --- a/src/vs/platform/product/common/product.ts +++ b/src/vs/platform/product/common/product.ts @@ -30,6 +30,9 @@ export interface IProductService { readonly reportIssueUrl: string; readonly requestFeatureUrl: string; }; + + readonly settingsSearchBuildId?: number; + readonly settingsSearchUrl?: string; } export interface IProductConfiguration { diff --git a/src/vs/platform/product/node/productService.ts b/src/vs/platform/product/node/productService.ts index 925b15e1d9a33..bc3b42172f73f 100644 --- a/src/vs/platform/product/node/productService.ts +++ b/src/vs/platform/product/node/productService.ts @@ -29,4 +29,8 @@ export class ProductService implements IProductService { get sendASmile(): { reportIssueUrl: string, requestFeatureUrl: string } { return product.sendASmile; } get extensionsGallery() { return product.extensionsGallery; } + + get settingsSearchBuildId(): number | undefined { return product.settingsSearchBuildId; } + + get settingsSearchUrl(): string | undefined { return product.settingsSearchUrl; } } \ No newline at end of file diff --git a/src/vs/workbench/browser/web.simpleservices.ts b/src/vs/workbench/browser/web.simpleservices.ts index 2fbec9329a3c9..4f92412aea27e 100644 --- a/src/vs/workbench/browser/web.simpleservices.ts +++ b/src/vs/workbench/browser/web.simpleservices.ts @@ -260,17 +260,17 @@ export class SimpleExtensionManagementService implements IExtensionManagementSer getInstalled(type?: ExtensionType): Promise { // @ts-ignore - return Promise.resolve(undefined); + return Promise.resolve([]); } getExtensionsReport(): Promise { // @ts-ignore - return Promise.resolve(undefined); + return Promise.resolve([]); } updateMetadata(local: ILocalExtension, metadata: IGalleryMetadata): Promise { // @ts-ignore - return Promise.resolve(undefined); + return Promise.resolve(local); } } diff --git a/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts b/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts index 52cb6c5e84173..ac442c4d75ef1 100644 --- a/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts +++ b/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts @@ -14,7 +14,6 @@ import { IMatch, or, matchesContiguousSubString, matchesPrefix, matchesCamelCase import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { Disposable } from 'vs/base/common/lifecycle'; import { IPreferencesSearchService, ISearchProvider, IWorkbenchSettingsConfiguration } from 'vs/workbench/contrib/preferences/common/preferences'; -import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { IRequestService, asJson } from 'vs/platform/request/common/request'; import { IExtensionManagementService, ILocalExtension, IExtensionEnablementService } from 'vs/platform/extensionManagement/common/extensionManagement'; import { ILogService } from 'vs/platform/log/common/log'; @@ -24,6 +23,7 @@ import { ExtensionType } from 'vs/platform/extensions/common/extensions'; import { nullRange } from 'vs/workbench/services/preferences/common/preferencesModels'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IStringDictionary } from 'vs/base/common/collections'; +import { IProductService } from 'vs/platform/product/common/product'; export interface IEndpointDetails { urlBase?: string; @@ -38,7 +38,7 @@ export class PreferencesSearchService extends Disposable implements IPreferences constructor( @IInstantiationService private readonly instantiationService: IInstantiationService, @IConfigurationService private readonly configurationService: IConfigurationService, - @IEnvironmentService private readonly environmentService: IEnvironmentService, + @IProductService private readonly productService: IProductService, @IExtensionManagementService private readonly extensionManagementService: IExtensionManagementService, @IExtensionEnablementService private readonly extensionEnablementService: IExtensionEnablementService ) { @@ -72,7 +72,7 @@ export class PreferencesSearchService extends Disposable implements IPreferences }; } else { return { - urlBase: this.environmentService.settingsSearchUrl + urlBase: this.productService.settingsSearchUrl }; } } @@ -168,7 +168,7 @@ class RemoteSearchProvider implements ISearchProvider { private _remoteSearchP: Promise; constructor(private options: IRemoteSearchProviderOptions, private installedExtensions: Promise, - @IEnvironmentService private readonly environmentService: IEnvironmentService, + @IProductService private readonly productService: IProductService, @IRequestService private readonly requestService: IRequestService, @ILogService private readonly logService: ILogService ) { @@ -363,7 +363,7 @@ class RemoteSearchProvider implements ISearchProvider { const extensions = await this.installedExtensions; const filters = this.options.newExtensionsOnly ? [`diminish eq 'latest'`] : - this.getVersionFilters(extensions, this.environmentService.settingsSearchBuildId); + this.getVersionFilters(extensions, this.productService.settingsSearchBuildId); const filterStr = filters .slice(filterPage * RemoteSearchProvider.MAX_REQUEST_FILTERS, (filterPage + 1) * RemoteSearchProvider.MAX_REQUEST_FILTERS) diff --git a/src/vs/workbench/services/environment/browser/environmentService.ts b/src/vs/workbench/services/environment/browser/environmentService.ts index 98ecb8d6935a6..6ee56a1d50e7c 100644 --- a/src/vs/workbench/services/environment/browser/environmentService.ts +++ b/src/vs/workbench/services/environment/browser/environmentService.ts @@ -111,8 +111,6 @@ export class BrowserWorkbenchEnvironmentService implements IEnvironmentService { localeResource: URI; machineSettingsHome: URI; machineSettingsResource: URI; - settingsSearchBuildId?: number; - settingsSearchUrl?: string; globalStorageHome: string; workspaceStorageHome: string; backupHome: URI; From 2ec409340f94a201d13bf131535c719528c94c91 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 12 Jul 2019 08:47:52 +0200 Subject: [PATCH 6/8] web - change defaults for menu on mac --- src/vs/workbench/browser/workbench.contribution.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts index 664cc45a74e2b..741f4e77dc971 100644 --- a/src/vs/workbench/browser/workbench.contribution.ts +++ b/src/vs/workbench/browser/workbench.contribution.ts @@ -289,14 +289,14 @@ import { isMacintosh, isWindows, isLinux, isWeb } from 'vs/base/common/platform' }, 'window.enableMenuBarMnemonics': { 'type': 'boolean', - 'default': true, + 'default': !isMacintosh, 'scope': ConfigurationScope.APPLICATION, 'description': nls.localize('enableMenuBarMnemonics', "Controls whether the main menus can be opened via Alt-key shortcuts. Disabling mnemonics allows to bind these Alt-key shortcuts to editor commands instead."), - 'included': isWindows || isLinux + 'included': isWindows || isLinux || isWeb }, 'window.customMenuBarAltFocus': { 'type': 'boolean', - 'default': true, + 'default': !isMacintosh, 'scope': ConfigurationScope.APPLICATION, 'markdownDescription': nls.localize('customMenuBarAltFocus', "Controls whether the menu bar will be focused by pressing the Alt-key. This setting has no effect on toggling the menu bar with the Alt-key."), 'included': isWindows || isLinux || isWeb From 5fb890d41e728345cba1edcce89080fcfe6d52b0 Mon Sep 17 00:00:00 2001 From: Robo Date: Fri, 12 Jul 2019 00:25:19 -0700 Subject: [PATCH 7/8] chore: Bump keytar@4.11.0 (#76549) --- package.json | 4 +- remote/package.json | 2 +- remote/yarn.lock | 152 +++++++++++++++++++++++--------------------- yarn.lock | 117 +++++++++++++++++----------------- 4 files changed, 141 insertions(+), 134 deletions(-) diff --git a/package.json b/package.json index 71b18ed88771c..e6ae58a9eb6a2 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "https-proxy-agent": "^2.2.1", "iconv-lite": "0.5.0", "jschardet": "1.6.0", - "keytar": "4.2.1", + "keytar": "^4.11.0", "minimist": "1.2.0", "native-is-elevated": "^0.2.1", "native-keymap": "2.0.0", @@ -60,7 +60,7 @@ }, "devDependencies": { "7zip": "0.0.6", - "@types/keytar": "^4.0.1", + "@types/keytar": "^4.4.0", "@types/minimist": "^1.2.0", "@types/mocha": "2.2.39", "@types/node": "^10.12.12", diff --git a/remote/package.json b/remote/package.json index aa11efc638d58..70a3cc0da52ff 100644 --- a/remote/package.json +++ b/remote/package.json @@ -9,7 +9,7 @@ "https-proxy-agent": "^2.2.1", "iconv-lite": "0.5.0", "jschardet": "1.6.0", - "keytar": "4.2.1", + "keytar": "^4.11.0", "minimist": "1.2.0", "native-watchdog": "1.0.0", "node-pty": "0.9.0-beta19", diff --git a/remote/yarn.lock b/remote/yarn.lock index e81f734b92f57..047823b995794 100644 --- a/remote/yarn.lock +++ b/remote/yarn.lock @@ -132,28 +132,28 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -buffer-alloc-unsafe@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-0.1.1.tgz#ffe1f67551dd055737de253337bfe853dfab1a6a" - integrity sha1-/+H2dVHdBVc33iUzN7/oU9+rGmo= - -buffer-alloc@^1.1.0: +buffer-alloc-unsafe@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.1.0.tgz#05514d33bf1656d3540c684f65b1202e90eca303" - integrity sha1-BVFNM78WVtNUDGhPZbEgLpDsowM= + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== dependencies: - buffer-alloc-unsafe "^0.1.0" - buffer-fill "^0.1.0" + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= -buffer-fill@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-0.1.1.tgz#76d825c4d6e50e06b7a31eb520c04d08cc235071" - integrity sha512-YgBMBzdRLEfgxJIGu2wrvI2E03tMCFU1p7d1KhB4BOoMN0VxmTFjSyN5JtKt9z8Z9JajMHruI6SE25W96wNv7Q== +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= cache-base@^1.0.1: version "1.0.1" @@ -171,9 +171,9 @@ cache-base@^1.0.1: unset-value "^1.0.0" chownr@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" - integrity sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE= + version "1.1.2" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" + integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== class-utils@^0.3.5: version "0.3.6" @@ -315,9 +315,9 @@ editions@^2.1.0, editions@^2.1.2: semver "^5.6.0" end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" - integrity sha1-epDYM+/abPpurA9JSduw+tOmMgY= + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== dependencies: once "^1.4.0" @@ -353,10 +353,10 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-template@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.1.tgz#981f188c0c3a87d2e28f559bc541426ff94f21dd" - integrity sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg== +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== extend-shallow@^2.0.1: version "2.0.1" @@ -564,9 +564,9 @@ inherits@~2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" - integrity sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4= + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== ip@^1.1.5: version "1.1.5" @@ -727,13 +727,13 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -keytar@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/keytar/-/keytar-4.2.1.tgz#8a06a6577fdf6373e0aa6b112277e63dec77fd12" - integrity sha1-igamV3/fY3PgqmsRInfmPex3/RI= +keytar@^4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/keytar/-/keytar-4.11.0.tgz#891569045b287a0dabe69320e2381e059b02363f" + integrity sha512-cGn2xd4NY0yCBrU5zQ/lwIagP1UBOhUEemi6iSJU2gshN1RHkxHekSdLUji9IWNo5B1Va/iwXXWzGD2p8ziqfQ== dependencies: - nan "2.8.0" - prebuild-install "^2.4.1" + nan "2.14.0" + prebuild-install "5.3.0" kind-of@^3.0.2: version "3.0.4" @@ -808,9 +808,9 @@ micromatch@^3.1.10: to-regex "^3.0.2" mimic-response@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" - integrity sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4= + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== minimist@0.0.8: version "0.0.8" @@ -842,12 +842,7 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -nan@2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" - integrity sha1-7XFfP+neArV6XmJS2QqWZ14fCFo= - -nan@^2.0.0, nan@^2.12.1, nan@^2.13.2, nan@^2.14.0: +nan@2.14.0, nan@^2.0.0, nan@^2.12.1, nan@^2.13.2, nan@^2.14.0: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== @@ -869,15 +864,20 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-build-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.1.tgz#1381a0f92c39d66bf19852e7873432fc2123e508" + integrity sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA== + native-watchdog@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/native-watchdog/-/native-watchdog-1.0.0.tgz#97344e83cd6815a8c8e6c44a52e7be05832e65ca" integrity sha512-HKQATz5KLUMPyQQ/QaalzgTXaGz2plYPBxjyalaR4ECIu/UznXY8YJD+a9SLkkcvtxnJ8/zHLY3xik06vUZ7uA== -node-abi@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.1.tgz#7628c4d4ec4e9cd3764ceb3652f36b2e7f8d4923" - integrity sha512-pUlswqpHQ7zGPI9lGjZ4XDNIEUDbHxsltfIRb7dTnYdhgHWHOcB0MLZKLoCz6UMcGzSPG5wGl1HODZVQAUsH6w== +node-abi@^2.7.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.9.0.tgz#ae4075b298dab2d92dd1e22c48ccc7ffd7f06200" + integrity sha512-jmEOvv0eanWjhX8dX1pmjb7oJl1U1oR4FOh0b2GnvALwSYoOdU7sj+kLDSAyjo4pfC9aj/IxkloxdLJQhSSQBA== dependencies: semver "^5.4.1" @@ -1010,22 +1010,23 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -prebuild-install@^2.4.1: - version "2.5.3" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.5.3.tgz#9f65f242782d370296353710e9bc843490c19f69" - integrity sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g== +prebuild-install@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.0.tgz#58b4d8344e03590990931ee088dd5401b03004c8" + integrity sha512-aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg== dependencies: detect-libc "^1.0.3" - expand-template "^1.0.2" + expand-template "^2.0.3" github-from-package "0.0.0" minimist "^1.2.0" mkdirp "^0.5.1" - node-abi "^2.2.0" + napi-build-utils "^1.0.1" + node-abi "^2.7.0" noop-logger "^0.1.1" npmlog "^4.0.1" os-homedir "^1.0.1" pump "^2.0.1" - rc "^1.1.6" + rc "^1.2.7" simple-get "^2.7.0" tar-fs "^1.13.0" tunnel-agent "^0.6.0" @@ -1037,9 +1038,9 @@ process-nextick-args@~1.0.6: integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== pump@^1.0.0: version "1.0.3" @@ -1057,7 +1058,7 @@ pump@^2.0.1: end-of-stream "^1.1.0" once "^1.3.1" -rc@^1.1.6: +rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -1130,7 +1131,12 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.0.1, safe-buffer@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== @@ -1152,16 +1158,16 @@ semver@^5.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== -semver@^5.4.1, semver@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== - -semver@^5.6.0: +semver@^5.4.1, semver@^5.6.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== +semver@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== + set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -1343,9 +1349,9 @@ strip-json-comments@~2.0.1: integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= tar-fs@^1.13.0: - version "1.16.2" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.2.tgz#17e5239747e399f7e77344f5f53365f04af53577" - integrity sha512-LdknWjPEiZC1nOBwhv0JBzfJBGPJar08dZg2rwZe0ZTLQoRGEzgrl7vF3qUEkCHpI/wN9e7RyCuDhMsJUCLPPQ== + version "1.16.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== dependencies: chownr "^1.0.1" mkdirp "^0.5.1" @@ -1353,19 +1359,19 @@ tar-fs@^1.13.0: tar-stream "^1.1.2" tar-stream@^1.1.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395" - integrity sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA== + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== dependencies: bl "^1.0.0" - buffer-alloc "^1.1.0" + buffer-alloc "^1.2.0" end-of-stream "^1.0.0" fs-constants "^1.0.0" readable-stream "^2.3.0" - to-buffer "^1.1.0" + to-buffer "^1.1.1" xtend "^4.0.0" -to-buffer@^1.1.0: +to-buffer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== diff --git a/yarn.lock b/yarn.lock index 0757d75998a0e..08b7ad33daef8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -35,10 +35,10 @@ resolved "https://registry.yarnpkg.com/@types/fancy-log/-/fancy-log-1.3.0.tgz#a61ab476e5e628cd07a846330df53b85e05c8ce0" integrity sha512-mQjDxyOM1Cpocd+vm1kZBP7smwKZ4TNokFeds9LV7OZibmPJFEzY3+xZMrKfUdNT71lv8GoCPD6upKwHxubClw== -"@types/keytar@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/keytar/-/keytar-4.0.1.tgz#e2cf6405dc33861424e59b67516c66d2cf7bc21b" - integrity sha512-loKBID6UL4QjhD2scuvv6oAPlQ/WAY7aYTDyKlKo7fIgriLS8EZExqT567cHL5CY6si51MRoX1+r3mitD3eYrA== +"@types/keytar@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@types/keytar/-/keytar-4.4.0.tgz#ca24e6ee6d0df10c003aafe26e93113b8faf0d8e" + integrity sha512-cq/NkUUy6rpWD8n7PweNQQBpw2o0cf5v6fbkUVEpOB9VzzIvyPvSEId1/goIj+MciW2v1Lw5mRimKO01XgE9EA== "@types/minimist@^1.2.0": version "1.2.0" @@ -1106,18 +1106,18 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -buffer-alloc-unsafe@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-0.1.1.tgz#ffe1f67551dd055737de253337bfe853dfab1a6a" - integrity sha1-/+H2dVHdBVc33iUzN7/oU9+rGmo= - -buffer-alloc@^1.1.0: +buffer-alloc-unsafe@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.1.0.tgz#05514d33bf1656d3540c684f65b1202e90eca303" - integrity sha1-BVFNM78WVtNUDGhPZbEgLpDsowM= + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== dependencies: - buffer-alloc-unsafe "^0.1.0" - buffer-fill "^0.1.0" + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" buffer-crc32@~0.2.3: version "0.2.13" @@ -1129,10 +1129,10 @@ buffer-equal@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= -buffer-fill@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-0.1.1.tgz#76d825c4d6e50e06b7a31eb520c04d08cc235071" - integrity sha512-YgBMBzdRLEfgxJIGu2wrvI2E03tMCFU1p7d1KhB4BOoMN0VxmTFjSyN5JtKt9z8Z9JajMHruI6SE25W96wNv7Q== +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= buffer-from@^1.0.0: version "1.1.1" @@ -2950,10 +2950,10 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" -expand-template@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.1.tgz#981f188c0c3a87d2e28f559bc541426ff94f21dd" - integrity sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg== +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" @@ -5201,13 +5201,13 @@ just-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= -keytar@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/keytar/-/keytar-4.2.1.tgz#8a06a6577fdf6373e0aa6b112277e63dec77fd12" - integrity sha1-igamV3/fY3PgqmsRInfmPex3/RI= +keytar@^4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/keytar/-/keytar-4.11.0.tgz#891569045b287a0dabe69320e2381e059b02363f" + integrity sha512-cGn2xd4NY0yCBrU5zQ/lwIagP1UBOhUEemi6iSJU2gshN1RHkxHekSdLUji9IWNo5B1Va/iwXXWzGD2p8ziqfQ== dependencies: - nan "2.8.0" - prebuild-install "^2.4.1" + nan "2.14.0" + prebuild-install "5.3.0" kind-of@^1.1.0: version "1.1.0" @@ -5796,9 +5796,9 @@ mimic-fn@^2.0.0: integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-response@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" - integrity sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4= + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" @@ -5993,12 +5993,7 @@ mute-stream@0.0.7, mute-stream@~0.0.4: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -nan@2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" - integrity sha1-7XFfP+neArV6XmJS2QqWZ14fCFo= - -nan@^2.0.0, nan@^2.13.2, nan@^2.14.0: +nan@2.14.0, nan@^2.0.0, nan@^2.13.2, nan@^2.14.0: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== @@ -6035,6 +6030,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-build-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.1.tgz#1381a0f92c39d66bf19852e7873432fc2123e508" + integrity sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA== + native-is-elevated@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/native-is-elevated/-/native-is-elevated-0.2.1.tgz#70a2123a8575b9f624a3ef465d98cb74ae017385" @@ -6079,10 +6079,10 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" integrity sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA== -node-abi@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.1.tgz#7628c4d4ec4e9cd3764ceb3652f36b2e7f8d4923" - integrity sha512-pUlswqpHQ7zGPI9lGjZ4XDNIEUDbHxsltfIRb7dTnYdhgHWHOcB0MLZKLoCz6UMcGzSPG5wGl1HODZVQAUsH6w== +node-abi@^2.7.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.9.0.tgz#ae4075b298dab2d92dd1e22c48ccc7ffd7f06200" + integrity sha512-jmEOvv0eanWjhX8dX1pmjb7oJl1U1oR4FOh0b2GnvALwSYoOdU7sj+kLDSAyjo4pfC9aj/IxkloxdLJQhSSQBA== dependencies: semver "^5.4.1" @@ -7153,22 +7153,23 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0 source-map "^0.5.6" supports-color "^3.2.3" -prebuild-install@^2.4.1: - version "2.5.3" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.5.3.tgz#9f65f242782d370296353710e9bc843490c19f69" - integrity sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g== +prebuild-install@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.0.tgz#58b4d8344e03590990931ee088dd5401b03004c8" + integrity sha512-aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg== dependencies: detect-libc "^1.0.3" - expand-template "^1.0.2" + expand-template "^2.0.3" github-from-package "0.0.0" minimist "^1.2.0" mkdirp "^0.5.1" - node-abi "^2.2.0" + napi-build-utils "^1.0.1" + node-abi "^2.7.0" noop-logger "^0.1.1" npmlog "^4.0.1" os-homedir "^1.0.1" pump "^2.0.1" - rc "^1.1.6" + rc "^1.2.7" simple-get "^2.7.0" tar-fs "^1.13.0" tunnel-agent "^0.6.0" @@ -7460,7 +7461,7 @@ rc@^1.1.2: minimist "^1.2.0" strip-json-comments "~2.0.1" -rc@^1.1.6, rc@^1.2.7: +rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -8745,9 +8746,9 @@ tapable@^1.0.0: integrity sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg== tar-fs@^1.13.0: - version "1.16.2" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.2.tgz#17e5239747e399f7e77344f5f53365f04af53577" - integrity sha512-LdknWjPEiZC1nOBwhv0JBzfJBGPJar08dZg2rwZe0ZTLQoRGEzgrl7vF3qUEkCHpI/wN9e7RyCuDhMsJUCLPPQ== + version "1.16.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== dependencies: chownr "^1.0.1" mkdirp "^0.5.1" @@ -8755,16 +8756,16 @@ tar-fs@^1.13.0: tar-stream "^1.1.2" tar-stream@^1.1.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395" - integrity sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA== + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== dependencies: bl "^1.0.0" - buffer-alloc "^1.1.0" + buffer-alloc "^1.2.0" end-of-stream "^1.0.0" fs-constants "^1.0.0" readable-stream "^2.3.0" - to-buffer "^1.1.0" + to-buffer "^1.1.1" xtend "^4.0.0" tar@^2.2.1: @@ -8918,7 +8919,7 @@ to-arraybuffer@^1.0.0: resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= -to-buffer@^1.1.0: +to-buffer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== From a33a5839c2b6acf84eb3e2295908af0938450182 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 12 Jul 2019 09:34:27 +0200 Subject: [PATCH 8/8] :lipstick: deps --- yarn.lock | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/yarn.lock b/yarn.lock index 08b7ad33daef8..b5cc06f95d2a9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1106,18 +1106,18 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== +buffer-alloc-unsafe@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-0.1.1.tgz#ffe1f67551dd055737de253337bfe853dfab1a6a" + integrity sha1-/+H2dVHdBVc33iUzN7/oU9+rGmo= -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== +buffer-alloc@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.1.0.tgz#05514d33bf1656d3540c684f65b1202e90eca303" + integrity sha1-BVFNM78WVtNUDGhPZbEgLpDsowM= dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" + buffer-alloc-unsafe "^0.1.0" + buffer-fill "^0.1.0" buffer-crc32@~0.2.3: version "0.2.13" @@ -1129,10 +1129,10 @@ buffer-equal@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= +buffer-fill@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-0.1.1.tgz#76d825c4d6e50e06b7a31eb520c04d08cc235071" + integrity sha512-YgBMBzdRLEfgxJIGu2wrvI2E03tMCFU1p7d1KhB4BOoMN0VxmTFjSyN5JtKt9z8Z9JajMHruI6SE25W96wNv7Q== buffer-from@^1.0.0: version "1.1.1" @@ -5796,9 +5796,9 @@ mimic-fn@^2.0.0: integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + version "1.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" + integrity sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4= minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" @@ -8746,9 +8746,9 @@ tapable@^1.0.0: integrity sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg== tar-fs@^1.13.0: - version "1.16.3" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" - integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== + version "1.16.2" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.2.tgz#17e5239747e399f7e77344f5f53365f04af53577" + integrity sha512-LdknWjPEiZC1nOBwhv0JBzfJBGPJar08dZg2rwZe0ZTLQoRGEzgrl7vF3qUEkCHpI/wN9e7RyCuDhMsJUCLPPQ== dependencies: chownr "^1.0.1" mkdirp "^0.5.1" @@ -8756,16 +8756,16 @@ tar-fs@^1.13.0: tar-stream "^1.1.2" tar-stream@^1.1.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" - integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + version "1.6.1" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395" + integrity sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA== dependencies: bl "^1.0.0" - buffer-alloc "^1.2.0" + buffer-alloc "^1.1.0" end-of-stream "^1.0.0" fs-constants "^1.0.0" readable-stream "^2.3.0" - to-buffer "^1.1.1" + to-buffer "^1.1.0" xtend "^4.0.0" tar@^2.2.1: @@ -8919,7 +8919,7 @@ to-arraybuffer@^1.0.0: resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= -to-buffer@^1.1.1: +to-buffer@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==