From 9111e4c52821973d3e8f558064baec6e6b41b840 Mon Sep 17 00:00:00 2001 From: "jb.muscat" Date: Fri, 26 Jul 2024 16:21:39 +0200 Subject: [PATCH 1/4] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Upgrade=20to=20vscode?= =?UTF-8?q?=20server=209.0.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will give access to Diagnostic.CodeDescription --- client/package.json | 4 +-- client/src/extension.ts | 14 ++++---- client/src/notifications.ts | 2 +- package.json | 2 +- server/package.json | 4 +-- server/src/notifications.ts | 4 +-- server/src/queue.ts | 16 ++++----- server/src/server.ts | 8 ++--- yarn.lock | 65 +++++++++++++++++++------------------ 9 files changed, 60 insertions(+), 59 deletions(-) diff --git a/client/package.json b/client/package.json index 5fb5252..40ec0c8 100644 --- a/client/package.json +++ b/client/package.json @@ -1,7 +1,7 @@ { "author": "Stoplight ", "dependencies": { - "vscode-languageclient": "^6.1.3" + "vscode-languageclient": "^9.0.1" }, "description": "JSON/YAML linter with OpenAPI and custom ruleset support.", "displayName": "Spectral", @@ -17,4 +17,4 @@ "url": "https://github.com/stoplightio/vscode-spectral" }, "version": "0.0.1" -} +} \ No newline at end of file diff --git a/client/src/extension.ts b/client/src/extension.ts index 7e58c2a..0752f67 100644 --- a/client/src/extension.ts +++ b/client/src/extension.ts @@ -16,7 +16,7 @@ import { TransportKind, FileChangeType, Disposable, -} from 'vscode-languageclient'; +} from 'vscode-languageclient/node'; import { ExtensionSettings } from './configuration'; import { StartWatcherNotification, StartWatcherParams } from './notifications'; @@ -152,13 +152,13 @@ export function activate(context: ExtensionContext): void { } return result; }, - didChangeConfiguration: (event, next): void => { + didChangeConfiguration: async (sections, next): Promise => { environmentChange(); - next(event); + await next(sections); }, - didChangeWorkspaceFolders: (event, next): void => { + didChangeWorkspaceFolders: async (sections, next): Promise => { environmentChange(); - next(event); + await next(sections); }, }, }, @@ -173,7 +173,7 @@ export function activate(context: ExtensionContext): void { return; } - client.onReady().then(() => { + client.start().then(() => { client.onNotification(StartWatcherNotification.type, (params: StartWatcherParams) => { // The language server lets us know which ruleset files to watch since // it's configurable and depends on the file/location being validated. We @@ -187,8 +187,6 @@ export function activate(context: ExtensionContext): void { }); }); - client.start(); - commands = [Commands.registerCommand('spectral.showOutputChannel', () => { client.outputChannel.show(); })]; diff --git a/client/src/notifications.ts b/client/src/notifications.ts index adb07d8..904cc68 100644 --- a/client/src/notifications.ts +++ b/client/src/notifications.ts @@ -15,7 +15,7 @@ export namespace StartWatcherNotification { /** * Notification type indicating a FileSystemWatcher should be started in the client. */ - export const type = new NotificationType('spectral/startWatcher'); + export const type = new NotificationType('spectral/startWatcher'); } export interface StartWatcherParams { diff --git a/package.json b/package.json index c2e5b9c..d5164ea 100644 --- a/package.json +++ b/package.json @@ -161,4 +161,4 @@ "server/**" ] } -} +} \ No newline at end of file diff --git a/server/package.json b/server/package.json index fc93b3c..cd73f25 100644 --- a/server/package.json +++ b/server/package.json @@ -8,7 +8,7 @@ "@stoplight/spectral-rulesets": "^1.21.3", "minimatch": "^3.0.4", "rollup": "~2.79.2", - "vscode-languageserver": "^6.1.1", + "vscode-languageserver": "^9.0.1", "vscode-languageserver-textdocument": "^1.0.1", "vscode-uri": "^3.0.7" }, @@ -27,4 +27,4 @@ "url": "https://github.com/stoplightio/vscode-spectral" }, "version": "0.0.1" -} +} \ No newline at end of file diff --git a/server/src/notifications.ts b/server/src/notifications.ts index b8a0ccd..d2192f5 100644 --- a/server/src/notifications.ts +++ b/server/src/notifications.ts @@ -16,7 +16,7 @@ export namespace StartWatcherNotification { /** * Notification type indicating a FileSystemWatcher should be started in the client. */ - export const type = new NotificationType('spectral/startWatcher'); + export const type = new NotificationType('spectral/startWatcher'); } export interface StartWatcherParams { @@ -31,5 +31,5 @@ export namespace ValidateNotification { /** * Notification type indicating a validation/linting operation should take place. */ - export const type: NotificationType = new NotificationType('spectral/validate'); + export const type: NotificationType = new NotificationType('spectral/validate'); } diff --git a/server/src/queue.ts b/server/src/queue.ts index b043259..28fd2bf 100644 --- a/server/src/queue.ts +++ b/server/src/queue.ts @@ -2,7 +2,7 @@ // extension licensed under the MIT license. // https://github.com/microsoft/vscode-eslint/blob/d40b96d4a2f0d085770b2bdce87b985bdd198bec/server/src/eslintServer.ts#L828 import { - IConnection, + Connection, NotificationHandler, NotificationType, } from 'vscode-languageserver'; @@ -38,7 +38,7 @@ export class BufferedMessageQueue { * Initializes a new queue. * @param {IConnection} connection - The connection for communicating with clients. */ - constructor(private connection: IConnection) { + constructor(private connection: Connection) { this.queue = []; this.notificationHandlers = new Map(); } @@ -52,11 +52,11 @@ export class BufferedMessageQueue { /** * Registers a notification and handler at the same time. - * @param {NotificationType} type - The type of notification to process. + * @param {NotificationType

} type - The type of notification to process. * @param {NotificationHandler

} handler - The handler for the notification. * @param {queue~versionProvider} versionProvider - A provider that gives the document version. */ - public registerNotification(type: NotificationType, handler: NotificationHandler

, versionProvider?: (params: P) => number): void { + public registerNotification

(type: NotificationType

, handler: NotificationHandler

, versionProvider?: (params: P) => number): void { this.connection.onNotification(type, (params) => { this.queue.push({ method: type.method, @@ -70,11 +70,11 @@ export class BufferedMessageQueue { /** * Adds a message to the queue and kicks off processing. - * @param {NotificationType} type - The type of notification to add to the queue. + * @param {NotificationType

} type - The type of notification to add to the queue. * @param {P} params - The subject of the notification. * @param {number} version - The document version associated with the notification. */ - public addNotificationMessage(type: NotificationType, params: P, version: number): void { + public addNotificationMessage

(type: NotificationType

, params: P, version: number): void { this.queue.push({ method: type.method, params, @@ -85,11 +85,11 @@ export class BufferedMessageQueue { /** * Registers a handler for a notification. - * @param {NotificationType} type - The type of notification to process. + * @param {NotificationType

} type - The type of notification to process. * @param {NotificationHandler

} handler - The handler for the notification. * @param {queue~versionProvider} versionProvider - A provider that gives the document version. */ - public onNotification(type: NotificationType, handler: NotificationHandler

, versionProvider?: (params: P) => number): void { + public onNotification

(type: NotificationType

, handler: NotificationHandler

, versionProvider?: (params: P) => number): void { this.notificationHandlers.set(type.method, { handler, versionProvider }); } diff --git a/server/src/server.ts b/server/src/server.ts index d1e5331..48ca86f 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -12,9 +12,9 @@ import { TextDocuments, createConnection, PublishDiagnosticsParams, -} from 'vscode-languageserver'; -import { string as isString } from 'vscode-languageserver/lib/utils/is'; -import { WorkDoneProgress } from 'vscode-languageserver/lib/progress'; +} from 'vscode-languageserver/node'; +import { string as isString } from 'vscode-languageserver/lib/common/utils/is'; +import { WorkDoneProgressReporter } from 'vscode-languageserver/lib/common/progress'; import { TextDocument } from 'vscode-languageserver-textdocument'; import { URI } from 'vscode-uri'; import { Ruleset } from '@stoplight/spectral-core'; @@ -462,7 +462,7 @@ messageQueue.registerNotification(DidChangeWatchedFilesNotification.type, (_para environmentChanged(); }); -connection.onInitialize((_params: InitializeParams, _cancel, progress: WorkDoneProgress) => { +connection.onInitialize((_params: InitializeParams, _cancel, progress: WorkDoneProgressReporter) => { progress.begin('Initializing Spectral Server'); documents = new TextDocuments(TextDocument); linter = new Linter(documents, connection.console); diff --git a/yarn.lock b/yarn.lock index dd99426..678faed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3353,6 +3353,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^5.1.0: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: version "1.2.6" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" @@ -4146,11 +4153,6 @@ semver@^5.1.0: resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - semver@^7.2.1, semver@^7.3.4, semver@^7.3.5: version "7.3.7" resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" @@ -4158,7 +4160,7 @@ semver@^7.2.1, semver@^7.3.4, semver@^7.3.5: dependencies: lru-cache "^6.0.0" -semver@^7.3.2: +semver@^7.3.2, semver@^7.3.7: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -4893,43 +4895,44 @@ vsce@^1.103.1: yauzl "^2.3.1" yazl "^2.2.2" -vscode-jsonrpc@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-5.0.1.tgz" - integrity sha512-JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A== +vscode-jsonrpc@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz#f43dfa35fb51e763d17cd94dcca0c9458f35abf9" + integrity sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA== -vscode-languageclient@^6.1.3: - version "6.1.3" - resolved "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-6.1.3.tgz" - integrity sha512-YciJxk08iU5LmWu7j5dUt9/1OLjokKET6rME3cI4BRpiF6HZlusm2ZwPt0MYJ0lV5y43sZsQHhyon2xBg4ZJVA== +vscode-languageclient@9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz#cdfe20267726c8d4db839dc1e9d1816e1296e854" + integrity sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA== dependencies: - semver "^6.3.0" - vscode-languageserver-protocol "^3.15.3" + minimatch "^5.1.0" + semver "^7.3.7" + vscode-languageserver-protocol "3.17.5" -vscode-languageserver-protocol@^3.15.3: - version "3.15.3" - resolved "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.3.tgz" - integrity sha512-zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw== +vscode-languageserver-protocol@3.17.5: + version "3.17.5" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz#864a8b8f390835572f4e13bd9f8313d0e3ac4bea" + integrity sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg== dependencies: - vscode-jsonrpc "^5.0.1" - vscode-languageserver-types "3.15.1" + vscode-jsonrpc "8.2.0" + vscode-languageserver-types "3.17.5" vscode-languageserver-textdocument@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz" integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA== -vscode-languageserver-types@3.15.1: - version "3.15.1" - resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz" - integrity sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ== +vscode-languageserver-types@3.17.5: + version "3.17.5" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz#3273676f0cf2eab40b3f44d085acbb7f08a39d8a" + integrity sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg== -vscode-languageserver@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-6.1.1.tgz" - integrity sha512-DueEpkUAkD5XTR4MLYNr6bQIp/UFR0/IPApgXU3YfCBCB08u2sm9hRCs6DxYZELkk++STPjpcjksR2H8qI3cDQ== +vscode-languageserver@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz#500aef82097eb94df90d008678b0b6b5f474015b" + integrity sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g== dependencies: - vscode-languageserver-protocol "^3.15.3" + vscode-languageserver-protocol "3.17.5" vscode-test@^1.5.0: version "1.5.0" From 42c80228992f6a5443f8637574698bb20735780e Mon Sep 17 00:00:00 2001 From: "jb.muscat" Date: Fri, 26 Jul 2024 16:55:46 +0200 Subject: [PATCH 2/4] =?UTF-8?q?=E2=9C=A8=20Provide=20the=20rule's=20docume?= =?UTF-8?q?ntation=20url=20has=20codeDescription?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allow to "click to know more" on a problem's rule code. cf https://docs.stoplight.io/docs/spectral/e5b9616d6d50c-rulesets#documentation-url --- server/__tests__/unit/utils.test.ts | 62 +++++++++++++++++++++++++---- server/src/server.ts | 2 +- server/src/util.ts | 42 ++++++++++++++++--- 3 files changed, 92 insertions(+), 14 deletions(-) diff --git a/server/__tests__/unit/utils.test.ts b/server/__tests__/unit/utils.test.ts index 07d0ea5..5da16ef 100644 --- a/server/__tests__/unit/utils.test.ts +++ b/server/__tests__/unit/utils.test.ts @@ -1,9 +1,10 @@ /* eslint-disable require-jsdoc */ import { expect } from 'chai'; -import type { IRuleResult } from '@stoplight/spectral-core'; +import { IRuleResult, Ruleset } from '@stoplight/spectral-core'; +import { truthy, falsy } from '@stoplight/spectral-functions'; import { DiagnosticSeverity as SpectralDiagnosticSeverity } from '@stoplight/types'; -import { makeDiagnostic, makePublishDiagnosticsParams } from '../../src/util'; +import { getRuleDocumentationUrl, makeDiagnostic, makePublishDiagnosticsParams } from '../../src/util'; import { DiagnosticSeverity as VSCodeDiagnosticSeverity } from 'vscode-languageserver'; function createResult(source?: string): IRuleResult { @@ -28,10 +29,33 @@ function createResult(source?: string): IRuleResult { }; } +function createRuleset(rulesetDoc: string | undefined): Ruleset { + return new Ruleset({ + documentationUrl: rulesetDoc, + rules: { + 'with-direct-doc': { + documentationUrl: 'https://example.com/direct', + given: '$', + severity: 'error', + then: { + function: truthy, + }, + }, + 'without-direct-doc': { + given: '$', + severity: 'error', + then: { + function: falsy, + }, + }, + }, + }); +} + describe('makeDiagnostic', () => { it('sets the source to spectral', () => { const result = createResult(); - const actual = makeDiagnostic(result); + const actual = makeDiagnostic(result, undefined); expect(actual.source).to.eql('spectral'); }); @@ -47,13 +71,12 @@ describe('makeDiagnostic', () => { const result = createResult(); result.severity = input; - const actual = makeDiagnostic(result); + const actual = makeDiagnostic(result, undefined); expect(actual.severity).to.eql(expected); }); }); }); - describe('makePublishDiagnosticsParams', () => { const sources: string[] = [ 'file:///c%3A/folder/test.txt', @@ -63,7 +86,7 @@ describe('makePublishDiagnosticsParams', () => { describe('returns an empty array of diagnostics for the root file being analyzed even when it has no issues', () => { sources.forEach((sourceUri) => { it(sourceUri, () => { - const actual = makePublishDiagnosticsParams(sourceUri, [], []); + const actual = makePublishDiagnosticsParams(sourceUri, [], [], undefined); expect(actual).to.have.length(1); expect(actual[0].uri).to.eql(sourceUri); @@ -76,7 +99,7 @@ describe('makePublishDiagnosticsParams', () => { sources.forEach((sourceUri) => { it(sourceUri, () => { const fakeRoot = 'file:///different/root'; - const actual = makePublishDiagnosticsParams(fakeRoot, [sourceUri], []); + const actual = makePublishDiagnosticsParams(fakeRoot, [sourceUri], [], undefined); expect(actual).to.have.length(2); @@ -118,7 +141,7 @@ describe('makePublishDiagnosticsParams', () => { createResult('four'), ]; - const actual = makePublishDiagnosticsParams('file:///one', [], problems); + const actual = makePublishDiagnosticsParams('file:///one', [], problems, undefined); expect(actual).to.have.length(5); @@ -149,4 +172,27 @@ describe('makePublishDiagnosticsParams', () => { } }); }); + + describe('getRuleDocumentationUrl', () => { + it('uses the rule\'s documentation if it exists', () => { + const ruleset = createRuleset(undefined); + const documentationUrl = getRuleDocumentationUrl(ruleset, 'with-direct-doc'); + expect(documentationUrl).to.eql('https://example.com/direct'); + }); + it('uses the rule\'s documentation if it exists, even if the ruleset has its own', () => { + const ruleset = createRuleset('https://example.com'); + const documentationUrl = getRuleDocumentationUrl(ruleset, 'with-direct-doc'); + expect(documentationUrl).to.eql('https://example.com/direct'); + }); + it('uses the ruleset\'s documentation and #code if the rule has no direct doc and the ruleset has one', () => { + const ruleset = createRuleset('https://example.com'); + const documentationUrl = getRuleDocumentationUrl(ruleset, 'without-direct-doc'); + expect(documentationUrl).to.eql('https://example.com#without-direct-doc'); + }); + it('returns undefined if neither the rule or ruleset has a documentation', () => { + const ruleset = createRuleset(undefined); + const documentationUrl = getRuleDocumentationUrl(ruleset, 'without-direct-doc'); + expect(documentationUrl).to.be.undefined; + }); + }); }); diff --git a/server/src/server.ts b/server/src/server.ts index 48ca86f..5983870 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -364,7 +364,7 @@ async function lintDocumentOrRoot(document: TextDocument, ruleset: Ruleset | und connection.console.log(`[DBG] lintDocumentOrRoot. knownDeps=${JSON.stringify([...knownDeps])}`); - const pdps = makePublishDiagnosticsParams(rootDocument.uri, [...knownDeps], results); + const pdps = makePublishDiagnosticsParams(rootDocument.uri, [...knownDeps], results, ruleset); const deps = pdps.filter((e) => e.uri !== rootDocument.uri).map<[string, string]>((e) => [e.uri, rootDocument.uri]); return [pdps, deps]; diff --git a/server/src/util.ts b/server/src/util.ts index 6c119ac..8884d65 100644 --- a/server/src/util.ts +++ b/server/src/util.ts @@ -6,7 +6,7 @@ import { PublishDiagnosticsParams, } from 'vscode-languageserver'; import { URI } from 'vscode-uri'; -import type { ISpectralDiagnostic } from '@stoplight/spectral-core'; +import type { ISpectralDiagnostic, Ruleset } from '@stoplight/spectral-core'; import { DiagnosticSeverity as SpectralDiagnosticSeverity } from '@stoplight/types'; /** @@ -32,10 +32,11 @@ function convertSeverity(severity: SpectralDiagnosticSeverity): DiagnosticSeveri /** * Converts a Spectral rule violation to a VS Code diagnostic. * @param {ISpectralDiagnostic} problem - The Spectral rule result to convert to a VS Code diagnostic message. + * @param {Ruleset | undefined} ruleset - The ruleset that was used to validate the document. * @return {Diagnostic} The converted VS Code diagnostic to send to the client. */ -export function makeDiagnostic(problem: ISpectralDiagnostic): Diagnostic { - return { +export function makeDiagnostic(problem: ISpectralDiagnostic, ruleset: Ruleset | undefined): Diagnostic { + const diagnostic: Diagnostic = { range: { start: { line: problem.range.start.line, @@ -51,9 +52,40 @@ export function makeDiagnostic(problem: ISpectralDiagnostic): Diagnostic { source: 'spectral', message: problem.message, }; + + const documentationUrl = getRuleDocumentationUrl(ruleset, problem.code); + if (documentationUrl) { + diagnostic.codeDescription = { + href: documentationUrl, + }; + } + + return diagnostic; +} + +/** + * Extract and construct the rule's documentation URL. + * @param {Ruleset | undefined} ruleset - The ruleset that was used to validate the document. + * @param {string | number} ruleCode - The code of the rule to find the documentation URL for. + * @return {string | undefined} The documentation URL for the rule, or undefined if not found. + */ +export function getRuleDocumentationUrl(ruleset: Ruleset | undefined, ruleCode: string | number): string | undefined { + if (!ruleset) { + return undefined; + } + + const rule = ruleset.rules[ruleCode]; + const ruleDocumentationUrl = rule?.documentationUrl; + const rulesetDocumentationUrl = rule?.owner?.definition.documentationUrl; // allow to find documentation from extended rulesets + + if (!ruleDocumentationUrl && !rulesetDocumentationUrl) { + return undefined; + } + + return ruleDocumentationUrl ?? rulesetDocumentationUrl + '#' + ruleCode; } -export function makePublishDiagnosticsParams(rootDocumentUri: string, knownDependencieUris: string[], problems: ISpectralDiagnostic[]): PublishDiagnosticsParams[] { +export function makePublishDiagnosticsParams(rootDocumentUri: string, knownDependencieUris: string[], problems: ISpectralDiagnostic[], ruleset: Ruleset | undefined): PublishDiagnosticsParams[] { const grouped = problems.reduce>((grouped, problem) => { if (problem.source === undefined) { return grouped; @@ -80,7 +112,7 @@ export function makePublishDiagnosticsParams(rootDocumentUri: string, knownDepen return Object.entries(grouped).map(([source, problems]) => { return { uri: source, - diagnostics: problems.map((p) => makeDiagnostic(p)), + diagnostics: problems.map((p) => makeDiagnostic(p, ruleset)), }; }); } From ab675523769d02fec9ff4415d460e64238c89adc Mon Sep 17 00:00:00 2001 From: "jb.muscat" Date: Mon, 25 Nov 2024 18:01:36 +0100 Subject: [PATCH 3/4] =?UTF-8?q?=E2=9C=85=20Update=20E2E=20for=20rule's=20d?= =?UTF-8?q?ocumentation=20URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../run.e2e.test.ts.snap | 50 +++++++++++++++---- .../run.e2e.test.ts.snap | 40 ++++++++++++--- .../run.e2e.test.ts.snap | 20 ++++++-- .../run.e2e.test.ts.snap | 40 ++++++++++++--- .../run.e2e.test.ts.snap | 40 ++++++++++++--- .../run.e2e.test.ts.snap | 40 ++++++++++++--- client/src/__tests__/e2e/testRunnerBuilder.ts | 12 +++++ 7 files changed, 196 insertions(+), 46 deletions(-) diff --git a/client/src/__tests__/e2e/contexts/no_workspace_no_ruleset/run.e2e.test.ts.snap b/client/src/__tests__/e2e/contexts/no_workspace_no_ruleset/run.e2e.test.ts.snap index e622d63..8dd8f45 100644 --- a/client/src/__tests__/e2e/contexts/no_workspace_no_ruleset/run.e2e.test.ts.snap +++ b/client/src/__tests__/e2e/contexts/no_workspace_no_ruleset/run.e2e.test.ts.snap @@ -3,7 +3,10 @@ exports[`No workspace, no ruleset Invalid files trigger generation of diagnostics simple.json 1`] = ` Array [ Object { - "code": "oas3-api-servers", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-api-servers", + "value": "oas3-api-servers", + }, "message": "OpenAPI \\"servers\\" must be present and non-empty array.", "range": Array [ Object { @@ -19,7 +22,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "must have required property \\"paths\\".", "range": Array [ Object { @@ -35,7 +41,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-contact", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-contact", + "value": "info-contact", + }, "message": "Info object must have \\"contact\\" object.", "range": Array [ Object { @@ -51,7 +60,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-description", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-description", + "value": "info-description", + }, "message": "Info \\"description\\" must be present and non-empty string.", "range": Array [ Object { @@ -67,7 +79,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "\\"info\\" property must be object.", "range": Array [ Object { @@ -88,7 +103,10 @@ Array [ exports[`No workspace, no ruleset Invalid files trigger generation of diagnostics simple.yaml 1`] = ` Array [ Object { - "code": "oas3-api-servers", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-api-servers", + "value": "oas3-api-servers", + }, "message": "OpenAPI \\"servers\\" must be present and non-empty array.", "range": Array [ Object { @@ -104,7 +122,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "must have required property \\"paths\\".", "range": Array [ Object { @@ -120,7 +141,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-contact", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-contact", + "value": "info-contact", + }, "message": "Info object must have \\"contact\\" object.", "range": Array [ Object { @@ -136,7 +160,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-description", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-description", + "value": "info-description", + }, "message": "Info \\"description\\" must be present and non-empty string.", "range": Array [ Object { @@ -152,7 +179,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "\\"info\\" property must be object.", "range": Array [ Object { diff --git a/client/src/__tests__/e2e/contexts/workspace_basic_ruleset/run.e2e.test.ts.snap b/client/src/__tests__/e2e/contexts/workspace_basic_ruleset/run.e2e.test.ts.snap index 450fe9e..6023f58 100644 --- a/client/src/__tests__/e2e/contexts/workspace_basic_ruleset/run.e2e.test.ts.snap +++ b/client/src/__tests__/e2e/contexts/workspace_basic_ruleset/run.e2e.test.ts.snap @@ -3,7 +3,10 @@ exports[`Workspace, basic ruleset Invalid files trigger generation of diagnostics simple.json 1`] = ` Array [ Object { - "code": "oas3-api-servers", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-api-servers", + "value": "oas3-api-servers", + }, "message": "OpenAPI \\"servers\\" must be present and non-empty array.", "range": Array [ Object { @@ -19,7 +22,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "must have required property \\"paths\\".", "range": Array [ Object { @@ -35,7 +41,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-description", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-description", + "value": "info-description", + }, "message": "Info \\"description\\" must be present and non-empty string.", "range": Array [ Object { @@ -51,7 +60,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "\\"info\\" property must be object.", "range": Array [ Object { @@ -72,7 +84,10 @@ Array [ exports[`Workspace, basic ruleset Invalid files trigger generation of diagnostics simple.yaml 1`] = ` Array [ Object { - "code": "oas3-api-servers", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-api-servers", + "value": "oas3-api-servers", + }, "message": "OpenAPI \\"servers\\" must be present and non-empty array.", "range": Array [ Object { @@ -88,7 +103,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "must have required property \\"paths\\".", "range": Array [ Object { @@ -104,7 +122,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-description", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-description", + "value": "info-description", + }, "message": "Info \\"description\\" must be present and non-empty string.", "range": Array [ Object { @@ -120,7 +141,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "\\"info\\" property must be object.", "range": Array [ Object { diff --git a/client/src/__tests__/e2e/contexts/workspace_basic_ruleset_negative_globs/run.e2e.test.ts.snap b/client/src/__tests__/e2e/contexts/workspace_basic_ruleset_negative_globs/run.e2e.test.ts.snap index 7108b13..87b2088 100644 --- a/client/src/__tests__/e2e/contexts/workspace_basic_ruleset_negative_globs/run.e2e.test.ts.snap +++ b/client/src/__tests__/e2e/contexts/workspace_basic_ruleset_negative_globs/run.e2e.test.ts.snap @@ -7,7 +7,10 @@ exports[`Workspace, basic ruleset negative globs Invalid files trigger generatio exports[`Workspace, basic ruleset negative globs Invalid files trigger generation of diagnostics but only if not ignored simple.yaml 1`] = ` Array [ Object { - "code": "oas3-api-servers", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-api-servers", + "value": "oas3-api-servers", + }, "message": "OpenAPI \\"servers\\" must be present and non-empty array.", "range": Array [ Object { @@ -23,7 +26,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "must have required property \\"paths\\".", "range": Array [ Object { @@ -39,7 +45,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-description", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-description", + "value": "info-description", + }, "message": "Info \\"description\\" must be present and non-empty string.", "range": Array [ Object { @@ -55,7 +64,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "\\"info\\" property must be object.", "range": Array [ Object { diff --git a/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_js/run.e2e.test.ts.snap b/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_js/run.e2e.test.ts.snap index 02e10fc..d22c071 100644 --- a/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_js/run.e2e.test.ts.snap +++ b/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_js/run.e2e.test.ts.snap @@ -3,7 +3,10 @@ exports[`Workspace, remote ruleset js Invalid files trigger generation of diagnostics simple.json 1`] = ` Array [ Object { - "code": "oas3-api-servers", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-api-servers", + "value": "oas3-api-servers", + }, "message": "OpenAPI \\"servers\\" must be present and non-empty array.", "range": Array [ Object { @@ -19,7 +22,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "must have required property \\"paths\\".", "range": Array [ Object { @@ -35,7 +41,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-description", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-description", + "value": "info-description", + }, "message": "Info \\"description\\" must be present and non-empty string.", "range": Array [ Object { @@ -51,7 +60,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "\\"info\\" property must be object.", "range": Array [ Object { @@ -72,7 +84,10 @@ Array [ exports[`Workspace, remote ruleset js Invalid files trigger generation of diagnostics simple.yaml 1`] = ` Array [ Object { - "code": "oas3-api-servers", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-api-servers", + "value": "oas3-api-servers", + }, "message": "OpenAPI \\"servers\\" must be present and non-empty array.", "range": Array [ Object { @@ -88,7 +103,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "must have required property \\"paths\\".", "range": Array [ Object { @@ -104,7 +122,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-description", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-description", + "value": "info-description", + }, "message": "Info \\"description\\" must be present and non-empty string.", "range": Array [ Object { @@ -120,7 +141,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "\\"info\\" property must be object.", "range": Array [ Object { diff --git a/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_json/run.e2e.test.ts.snap b/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_json/run.e2e.test.ts.snap index e2b20bb..4c55a4b 100644 --- a/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_json/run.e2e.test.ts.snap +++ b/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_json/run.e2e.test.ts.snap @@ -3,7 +3,10 @@ exports[`Workspace, remote ruleset json Invalid files trigger generation of diagnostics simple.json 1`] = ` Array [ Object { - "code": "oas3-api-servers", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-api-servers", + "value": "oas3-api-servers", + }, "message": "OpenAPI \\"servers\\" must be present and non-empty array.", "range": Array [ Object { @@ -19,7 +22,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "must have required property \\"paths\\".", "range": Array [ Object { @@ -35,7 +41,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-description", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-description", + "value": "info-description", + }, "message": "Info \\"description\\" must be present and non-empty string.", "range": Array [ Object { @@ -51,7 +60,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "\\"info\\" property must be object.", "range": Array [ Object { @@ -72,7 +84,10 @@ Array [ exports[`Workspace, remote ruleset json Invalid files trigger generation of diagnostics simple.yaml 1`] = ` Array [ Object { - "code": "oas3-api-servers", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-api-servers", + "value": "oas3-api-servers", + }, "message": "OpenAPI \\"servers\\" must be present and non-empty array.", "range": Array [ Object { @@ -88,7 +103,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "must have required property \\"paths\\".", "range": Array [ Object { @@ -104,7 +122,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-description", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-description", + "value": "info-description", + }, "message": "Info \\"description\\" must be present and non-empty string.", "range": Array [ Object { @@ -120,7 +141,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "\\"info\\" property must be object.", "range": Array [ Object { diff --git a/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_yaml/run.e2e.test.ts.snap b/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_yaml/run.e2e.test.ts.snap index 2640abf..d99e4f1 100644 --- a/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_yaml/run.e2e.test.ts.snap +++ b/client/src/__tests__/e2e/contexts/workspace_remote_ruleset_yaml/run.e2e.test.ts.snap @@ -3,7 +3,10 @@ exports[`Workspace, remote ruleset yaml Invalid files trigger generation of diagnostics simple.json 1`] = ` Array [ Object { - "code": "oas3-api-servers", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-api-servers", + "value": "oas3-api-servers", + }, "message": "OpenAPI \\"servers\\" must be present and non-empty array.", "range": Array [ Object { @@ -19,7 +22,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "must have required property \\"paths\\".", "range": Array [ Object { @@ -35,7 +41,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-description", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-description", + "value": "info-description", + }, "message": "Info \\"description\\" must be present and non-empty string.", "range": Array [ Object { @@ -51,7 +60,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "\\"info\\" property must be object.", "range": Array [ Object { @@ -72,7 +84,10 @@ Array [ exports[`Workspace, remote ruleset yaml Invalid files trigger generation of diagnostics simple.yaml 1`] = ` Array [ Object { - "code": "oas3-api-servers", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-api-servers", + "value": "oas3-api-servers", + }, "message": "OpenAPI \\"servers\\" must be present and non-empty array.", "range": Array [ Object { @@ -88,7 +103,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "must have required property \\"paths\\".", "range": Array [ Object { @@ -104,7 +122,10 @@ Array [ "source": "spectral", }, Object { - "code": "info-description", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#info-description", + "value": "info-description", + }, "message": "Info \\"description\\" must be present and non-empty string.", "range": Array [ Object { @@ -120,7 +141,10 @@ Array [ "source": "spectral", }, Object { - "code": "oas3-schema", + "code": Object { + "target": "https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md#oas3-schema", + "value": "oas3-schema", + }, "message": "\\"info\\" property must be object.", "range": Array [ Object { diff --git a/client/src/__tests__/e2e/testRunnerBuilder.ts b/client/src/__tests__/e2e/testRunnerBuilder.ts index 4e3ec2b..8ebde2e 100644 --- a/client/src/__tests__/e2e/testRunnerBuilder.ts +++ b/client/src/__tests__/e2e/testRunnerBuilder.ts @@ -8,6 +8,18 @@ import * as chaiJestSnapshot from 'chai-jest-snapshot'; chai.use(chaiJestSnapshot); +/** Custom URI serializer to have simpler snpashots */ +const customVsCodeUriSerializer = { + test(value) { + return value instanceof vscode.Uri; + }, + print(uri: vscode.Uri) { + return '"' + uri.toString() + '"'; + }, +}; + +chaiJestSnapshot.addSerializer(customVsCodeUriSerializer); + export function testRunnerBuilder(testsRoot: string): Promise { const mocha = new Mocha({ ui: 'tdd', From a12d039826a4ac73bc7cc2a45824c1fc2c829547 Mon Sep 17 00:00:00 2001 From: "jb.muscat" Date: Tue, 26 Nov 2024 09:45:41 +0100 Subject: [PATCH 4/4] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Update=20to=20latest?= =?UTF-8?q?=20VSCode=20dependencies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Requires VSCode 1.95+ and Node 20+ (due to @vscode/vsce) --- README.md | 4 +- client/package.json | 2 +- client/src/__tests__/e2e/index.ts | 4 +- package.json | 10 +- yarn.lock | 807 ++++++++++++++++++++++-------- 5 files changed, 595 insertions(+), 232 deletions(-) diff --git a/README.md b/README.md index b7a35b6..8a7608b 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ Spectral is a flexible object linter with out of the box support for [OpenAPI](h ## Requirements -- Node.js ^12.21 or >=14.13 -- Visual Studio Code version 1.48 or higher. +- Node.js >= 20 +- Visual Studio Code version 1.95 or higher. ## Installation diff --git a/client/package.json b/client/package.json index 40ec0c8..4a5d5ef 100644 --- a/client/package.json +++ b/client/package.json @@ -6,7 +6,7 @@ "description": "JSON/YAML linter with OpenAPI and custom ruleset support.", "displayName": "Spectral", "engines": { - "vscode": "^1.48.0", + "vscode": "^1.95.0", "node": "^12.20 || >=14.13" }, "license": "Apache-2.0", diff --git a/client/src/__tests__/e2e/index.ts b/client/src/__tests__/e2e/index.ts index 3d61207..b7be393 100644 --- a/client/src/__tests__/e2e/index.ts +++ b/client/src/__tests__/e2e/index.ts @@ -1,5 +1,5 @@ import * as path from 'path'; -import { runTests, downloadAndUnzipVSCode } from 'vscode-test'; +import { runTests, downloadAndUnzipVSCode } from '@vscode/test-electron'; import { randomBytes } from 'crypto'; // The folder containing the Extension Manifest package.json @@ -45,7 +45,7 @@ interface TestCase { ]; try { - const vscodeExecutablePath = await downloadAndUnzipVSCode('1.48.0'); + const vscodeExecutablePath = await downloadAndUnzipVSCode('1.95.0'); for (const tc of testCases) { console.info(`Using VSCode from '${vscodeExecutablePath}'`,); diff --git a/package.json b/package.json index d5164ea..7ccb88a 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "@types/glob": "^7.2.0", "@types/mocha": "^9.1.0", "@types/node": "^18.11.18", - "@types/vscode": "^1.48.0", + "@types/vscode": "^1.95.0", "@typescript-eslint/eslint-plugin": "^4.33.0", "@typescript-eslint/parser": "^4.1.0", "chai": "^4.2.0", @@ -102,8 +102,8 @@ "ts-loader": "^9.5.1", "ts-node": "^8.10.2", "typescript": "beta", - "vsce": "^1.103.1", - "vscode-test": "^1.5.0", + "@vscode/vsce": "^2.32.0", + "@vscode/test-electron": "^2.4.1", "webpack": "^5.96.1", "webpack-cli": "^4.9.2" }, @@ -112,7 +112,7 @@ }, "displayName": "Spectral", "engines": { - "vscode": "^1.48.0", + "vscode": "^1.95.0", "node": "^12.20 || >= 14.13" }, "homepage": "https://github.com/stoplightio/vscode-spectral", @@ -150,7 +150,7 @@ "test": "mocha -r ts-node/register \"./+(client|server)/__tests__/unit/**/*.test.ts\"", "test:e2e": "cross-env CI=true CHAI_JEST_SNAPSHOT_UPDATE_ALL=false ts-node ./client/src/__tests__/e2e/index.ts" }, - "version": "1.1.4", + "version": "1.1.1732551058-dev.1", "workspaces": { "packages": [ "client", diff --git a/yarn.lock b/yarn.lock index 678faed..f7a7a16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,112 @@ dependencies: "@types/json-schema" "^7.0.11" +"@azure/abort-controller@^2.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-2.1.2.tgz#42fe0ccab23841d9905812c58f1082d27784566d" + integrity sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA== + dependencies: + tslib "^2.6.2" + +"@azure/core-auth@^1.4.0", "@azure/core-auth@^1.8.0", "@azure/core-auth@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.9.0.tgz#ac725b03fabe3c892371065ee9e2041bee0fd1ac" + integrity sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-util" "^1.11.0" + tslib "^2.6.2" + +"@azure/core-client@^1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.9.2.tgz#6fc69cee2816883ab6c5cdd653ee4f2ff9774f74" + integrity sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.4.0" + "@azure/core-rest-pipeline" "^1.9.1" + "@azure/core-tracing" "^1.0.0" + "@azure/core-util" "^1.6.1" + "@azure/logger" "^1.0.0" + tslib "^2.6.2" + +"@azure/core-rest-pipeline@^1.17.0", "@azure/core-rest-pipeline@^1.9.1": + version "1.18.0" + resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.18.0.tgz#165f1cd9bb1060be3b6895742db3d1f1106271d3" + integrity sha512-QSoGUp4Eq/gohEFNJaUOwTN7BCc2nHTjjbm75JT0aD7W65PWM1H/tItz0GsABn22uaKyGxiMhWQLt2r+FGU89Q== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.8.0" + "@azure/core-tracing" "^1.0.1" + "@azure/core-util" "^1.11.0" + "@azure/logger" "^1.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + tslib "^2.6.2" + +"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.2.0.tgz#7be5d53c3522d639cf19042cbcdb19f71bc35ab2" + integrity sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg== + dependencies: + tslib "^2.6.2" + +"@azure/core-util@^1.11.0", "@azure/core-util@^1.6.1": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.11.0.tgz#f530fc67e738aea872fbdd1cc8416e70219fada7" + integrity sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g== + dependencies: + "@azure/abort-controller" "^2.0.0" + tslib "^2.6.2" + +"@azure/identity@^4.1.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@azure/identity/-/identity-4.5.0.tgz#93ce3757bf761a08cfd05f56ef181435e05b9e1c" + integrity sha512-EknvVmtBuSIic47xkOqyNabAme0RYTw52BTMz8eBgU1ysTyMrD1uOoM+JdS0J/4Yfp98IBT3osqq3BfwSaNaGQ== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.9.0" + "@azure/core-client" "^1.9.2" + "@azure/core-rest-pipeline" "^1.17.0" + "@azure/core-tracing" "^1.0.0" + "@azure/core-util" "^1.11.0" + "@azure/logger" "^1.0.0" + "@azure/msal-browser" "^3.26.1" + "@azure/msal-node" "^2.15.0" + events "^3.0.0" + jws "^4.0.0" + open "^8.0.0" + stoppable "^1.1.0" + tslib "^2.2.0" + +"@azure/logger@^1.0.0": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.1.4.tgz#223cbf2b424dfa66478ce9a4f575f59c6f379768" + integrity sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ== + dependencies: + tslib "^2.6.2" + +"@azure/msal-browser@^3.26.1": + version "3.27.0" + resolved "https://registry.yarnpkg.com/@azure/msal-browser/-/msal-browser-3.27.0.tgz#b6f02f73c8e102d3f115009b4677539fb173fe2b" + integrity sha512-+b4ZKSD8+vslCtVRVetkegEhOFMLP3rxDWJY212ct+2r6jVg6OSQKc1Qz3kCoXo0FgwaXkb+76TMZfpHp8QtgA== + dependencies: + "@azure/msal-common" "14.16.0" + +"@azure/msal-common@14.16.0": + version "14.16.0" + resolved "https://registry.yarnpkg.com/@azure/msal-common/-/msal-common-14.16.0.tgz#f3470fcaec788dbe50859952cd499340bda23d7a" + integrity sha512-1KOZj9IpcDSwpNiQNjt0jDYZpQvNZay7QAEi/5DLubay40iGYtLzya/jbjRPLyOTZhEKyL1MzPuw2HqBCjceYA== + +"@azure/msal-node@^2.15.0": + version "2.16.2" + resolved "https://registry.yarnpkg.com/@azure/msal-node/-/msal-node-2.16.2.tgz#3eb768d36883ea6f9a939c0b5b467b518e78fffc" + integrity sha512-An7l1hEr0w1HMMh1LU+rtDtqL7/jw74ORlc9Wnh06v7TU/xpG39/Zdr1ZJu3QpjUfKJ+E0/OXMW8DRSWTlh7qQ== + dependencies: + "@azure/msal-common" "14.16.0" + jsonwebtoken "^9.0.0" + uuid "^8.3.0" + "@babel/code-frame@^7.0.0": version "7.10.4" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz" @@ -413,11 +519,6 @@ "@stoplight/yaml-ast-parser" "0.0.50" tslib "^2.2.0" -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - "@types/chai-jest-snapshot@^1.3.6": version "1.3.8" resolved "https://registry.yarnpkg.com/@types/chai-jest-snapshot/-/chai-jest-snapshot-1.3.8.tgz#ba07613c7034bee49faf3b83d5187131dd209840" @@ -544,10 +645,10 @@ resolved "https://registry.yarnpkg.com/@types/urijs/-/urijs-1.19.25.tgz#ac92b53e674c3b108decdbe88dc5f444a2f42f6a" integrity sha512-XOfUup9r3Y06nFAZh3WvO0rBU4OtlfPB/vgxpjg+NRdGU6CN6djdc6OEiH+PcqHCY6eFLo9Ista73uarf4gnBg== -"@types/vscode@^1.48.0": - version "1.48.0" - resolved "https://registry.npmjs.org/@types/vscode/-/vscode-1.48.0.tgz" - integrity sha512-sZJKzsJz1gSoFXcOJWw3fnKl2sseUgZmvB4AJZS+Fea+bC/jfGPVhmFL/FfQHld/TKtukVONsmoD3Pkyx9iadg== +"@types/vscode@^1.95.0": + version "1.95.0" + resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.95.0.tgz#484aee82c69fa2d73e29d4bf2a91191e570dbc70" + integrity sha512-0LBD8TEiNbet3NvWsmn59zLzOFu/txSlGxnv5yAFHCrhG9WvAnR3IvfHzMOs2aeWqgvNjq9pO99IUw8d3n+unw== "@typescript-eslint/eslint-plugin@^4.33.0": version "4.33.0" @@ -654,6 +755,109 @@ "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" +"@vscode/test-electron@^2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@vscode/test-electron/-/test-electron-2.4.1.tgz#5c2760640bf692efbdaa18bafcd35fb519688941" + integrity sha512-Gc6EdaLANdktQ1t+zozoBVRynfIsMKMc94Svu1QreOBC8y76x4tvaK32TljrLi1LI2+PK58sDVbL7ALdqf3VRQ== + dependencies: + http-proxy-agent "^7.0.2" + https-proxy-agent "^7.0.5" + jszip "^3.10.1" + ora "^7.0.1" + semver "^7.6.2" + +"@vscode/vsce-sign-alpine-arm64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.2.tgz#4accc485e55aa6ff04b195b47f722ead57daa58e" + integrity sha512-E80YvqhtZCLUv3YAf9+tIbbqoinWLCO/B3j03yQPbjT3ZIHCliKZlsy1peNc4XNZ5uIb87Jn0HWx/ZbPXviuAQ== + +"@vscode/vsce-sign-alpine-x64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.2.tgz#4a4b7b505b4cc0f58596394897c49a0bce0e540c" + integrity sha512-n1WC15MSMvTaeJ5KjWCzo0nzjydwxLyoHiMJHu1Ov0VWTZiddasmOQHekA47tFRycnt4FsQrlkSCTdgHppn6bw== + +"@vscode/vsce-sign-darwin-arm64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.2.tgz#10aa69feb7f81a3dc68c242038ca03eaff19c12e" + integrity sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ== + +"@vscode/vsce-sign-darwin-x64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.2.tgz#3315528f3ea1007a648b3320bff36a33a9e07aa5" + integrity sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw== + +"@vscode/vsce-sign-linux-arm64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.2.tgz#ce5c5cfc99e3454b4fb770405812b46bd6dca870" + integrity sha512-Ybeu7cA6+/koxszsORXX0OJk9N0GgfHq70Wqi4vv2iJCZvBrOWwcIrxKjvFtwyDgdeQzgPheH5nhLVl5eQy7WA== + +"@vscode/vsce-sign-linux-arm@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.2.tgz#4142fda83e7130b31aedd8aa81e4daa6334323c2" + integrity sha512-Fkb5jpbfhZKVw3xwR6t7WYfwKZktVGNXdg1m08uEx1anO0oUPUkoQRsNm4QniL3hmfw0ijg00YA6TrxCRkPVOQ== + +"@vscode/vsce-sign-linux-x64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.2.tgz#59ab93f322efb3cf49166d4e2e812789c3117428" + integrity sha512-NsPPFVtLaTlVJKOiTnO8Cl78LZNWy0Q8iAg+LlBiCDEgC12Gt4WXOSs2pmcIjDYzj2kY4NwdeN1mBTaujYZaPg== + +"@vscode/vsce-sign-win32-arm64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.2.tgz#d095704a14b0404c0b6f696e9889e9a51b31a86c" + integrity sha512-wPs848ymZ3Ny+Y1Qlyi7mcT6VSigG89FWQnp2qRYCyMhdJxOpA4lDwxzlpL8fG6xC8GjQjGDkwbkWUcCobvksQ== + +"@vscode/vsce-sign-win32-x64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.2.tgz#294ea72b44fedd694d49f5cef4c55bf3876dc257" + integrity sha512-pAiRN6qSAhDM5SVOIxgx+2xnoVUePHbRNC7OD2aOR3WltTKxxF25OfpK8h8UQ7A0BuRkSgREbB59DBlFk4iAeg== + +"@vscode/vsce-sign@^2.0.0": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign/-/vsce-sign-2.0.5.tgz#8850036476dc0d4e080d9c2d8325e3e97eff5193" + integrity sha512-GfYWrsT/vypTMDMgWDm75iDmAOMe7F71sZECJ+Ws6/xyIfmB3ELVnVN+LwMFAvmXY+e6eWhR2EzNGF/zAhWY3Q== + optionalDependencies: + "@vscode/vsce-sign-alpine-arm64" "2.0.2" + "@vscode/vsce-sign-alpine-x64" "2.0.2" + "@vscode/vsce-sign-darwin-arm64" "2.0.2" + "@vscode/vsce-sign-darwin-x64" "2.0.2" + "@vscode/vsce-sign-linux-arm" "2.0.2" + "@vscode/vsce-sign-linux-arm64" "2.0.2" + "@vscode/vsce-sign-linux-x64" "2.0.2" + "@vscode/vsce-sign-win32-arm64" "2.0.2" + "@vscode/vsce-sign-win32-x64" "2.0.2" + +"@vscode/vsce@^2.32.0": + version "2.32.0" + resolved "https://registry.yarnpkg.com/@vscode/vsce/-/vsce-2.32.0.tgz#fc90fc28dc82614a8ab537de591e084b46ad2070" + integrity sha512-3EFJfsgrSftIqt3EtdRcAygy/OJ3hstyI1cDmIgkU9CFZW5C+3djr6mfosndCUqcVYuyjmxOK1xmFp/Bq7+NIg== + dependencies: + "@azure/identity" "^4.1.0" + "@vscode/vsce-sign" "^2.0.0" + azure-devops-node-api "^12.5.0" + chalk "^2.4.2" + cheerio "^1.0.0-rc.9" + cockatiel "^3.1.2" + commander "^6.2.1" + form-data "^4.0.0" + glob "^7.0.6" + hosted-git-info "^4.0.2" + jsonc-parser "^3.2.0" + leven "^3.1.0" + markdown-it "^12.3.2" + mime "^1.3.4" + minimatch "^3.0.3" + parse-semver "^1.1.1" + read "^1.0.7" + semver "^7.5.2" + tmp "^0.2.1" + typed-rest-client "^1.8.4" + url-join "^4.0.1" + xml2js "^0.5.0" + yauzl "^2.3.1" + yazl "^2.2.2" + optionalDependencies: + keytar "^7.7.0" + "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.12.1": version "1.14.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" @@ -832,12 +1036,12 @@ acorn@^8.14.0, acorn@^8.8.2: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== -agent-base@6: - version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== dependencies: - debug "4" + debug "^4.3.4" ajv-draft-04@~1.0.0: version "1.0.0" @@ -906,6 +1110,11 @@ ansi-regex@^5.0.1: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" @@ -954,6 +1163,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + array-buffer-byte-length@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" @@ -1030,10 +1244,10 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -azure-devops-node-api@^11.0.1: - version "11.1.1" - resolved "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.1.1.tgz" - integrity sha512-XDG91XzLZ15reP12s3jFkKS8oiagSICjnLwxEYieme4+4h3ZveFOFRA4iYIG40RyHXsiI0mefFYYMFIJbMpWcg== +azure-devops-node-api@^12.5.0: + version "12.5.0" + resolved "https://registry.yarnpkg.com/azure-devops-node-api/-/azure-devops-node-api-12.5.0.tgz#38b9efd7c5ac74354fe4e8dbe42697db0b8e85a5" + integrity sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og== dependencies: tunnel "0.0.6" typed-rest-client "^1.8.4" @@ -1055,24 +1269,11 @@ basic-auth@~2.0.1: dependencies: safe-buffer "5.1.2" -big-integer@^1.6.17: - version "1.6.48" - resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz" - integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w== - binary-extensions@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz" integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== -binary@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz" - integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk= - dependencies: - buffers "~0.1.1" - chainsaw "~0.1.0" - bl@^4.0.3: version "4.1.0" resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" @@ -1082,10 +1283,14 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -bluebird@~3.4.1: - version "3.4.7" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz" - integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= +bl@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" + integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" body-parser@1.20.3: version "1.20.3" @@ -1170,16 +1375,16 @@ buffer-crc32@~0.2.3: resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-indexof-polyfill@~1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz" - integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== - buffer@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" @@ -1188,10 +1393,13 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -buffers@~0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz" - integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" builtins@^1.0.3: version "1.0.3" @@ -1249,13 +1457,6 @@ chai@^4.2.0: pathval "^1.1.0" type-detect "^4.0.5" -chainsaw@~0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz" - integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg= - dependencies: - traverse ">=0.3.0 <0.4" - chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -1273,6 +1474,11 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.0.0, chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + check-error@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" @@ -1329,6 +1535,18 @@ chrome-trace-event@^1.0.2: dependencies: tslib "^1.9.0" +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-spinners@^2.9.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + cliui@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" @@ -1356,6 +1574,11 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" +cockatiel@^3.1.2: + version "3.2.1" + resolved "https://registry.yarnpkg.com/cockatiel/-/cockatiel-3.2.1.tgz#575f937bc4040a20ae27352a6d07c9c5a741981f" + integrity sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q== + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" @@ -1402,9 +1625,9 @@ commander@^2.20.0: resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^6.1.0: +commander@^6.2.1: version "6.2.1" - resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== commander@^7.0.0: @@ -1565,6 +1788,13 @@ debug@4.1.1: dependencies: ms "^2.1.1" +debug@^4.3.4: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" @@ -1603,6 +1833,11 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + define-properties@^1.1.2: version "1.1.4" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" @@ -1630,11 +1865,6 @@ delegates@^1.0.0: resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -denodeify@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz" - integrity sha1-OjYof1A05pnnV3kBBSwubJQlFjE= - depd@2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" @@ -1709,12 +1939,17 @@ domutils@^2.5.2, domutils@^2.8.0: domelementtype "^2.2.0" domhandler "^4.2.0" -duplexer2@~0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== dependencies: - readable-stream "^2.0.2" + safe-buffer "^5.0.1" ee-first@1.1.1: version "1.1.1" @@ -1726,6 +1961,11 @@ electron-to-chromium@^1.5.41: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.63.tgz#69444d592fbbe628d129866c2355691ea93eda3e" integrity sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA== +emoji-regex@^10.2.1: + version "10.4.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4" + integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" @@ -1768,11 +2008,16 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" -entities@^2.0.0, entities@~2.0.0: +entities@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz" integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== +entities@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + envinfo@^7.7.3: version "7.8.1" resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" @@ -2110,9 +2355,9 @@ event-target-shim@^5.0.0: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -events@^3.2.0: +events@^3.0.0, events@^3.2.0: version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== execa@^5.0.0: @@ -2325,6 +2570,15 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48" + integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" @@ -2355,16 +2609,6 @@ fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - function-bind@^1.1.1, function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" @@ -2461,7 +2705,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.1.6, glob@^7.0.0, glob@^7.0.5, glob@^7.0.6, glob@^7.1.3: +glob@7.1.6, glob@^7.0.0, glob@^7.0.5, glob@^7.1.3: version "7.1.6" resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -2473,7 +2717,7 @@ glob@7.1.6, glob@^7.0.0, glob@^7.0.5, glob@^7.0.6, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.6: +glob@^7.0.6, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -2542,7 +2786,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.2, graceful-fs@^4.2.4: +graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -2641,14 +2885,13 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== +http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" + agent-base "^7.1.0" + debug "^4.3.4" http-test-servers@^2.0.0: version "2.0.0" @@ -2662,12 +2905,12 @@ http-test-servers@^2.0.0: morgan "^1.10.0" underscore "^1.6.0" -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== +https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" + integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== dependencies: - agent-base "6" + agent-base "^7.0.2" debug "4" human-signals@^2.1.0: @@ -2682,7 +2925,7 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.13: +ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -2697,6 +2940,11 @@ ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== + immer@^9.0.6: version "9.0.21" resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" @@ -2731,7 +2979,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2838,6 +3086,11 @@ is-date-object@^1.0.1, is-date-object@^1.0.5: dependencies: has-tostringtag "^1.0.0" +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" @@ -2881,6 +3134,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== + is-map@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz" @@ -2983,6 +3241,11 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.13: dependencies: which-typed-array "^1.1.14" +is-unicode-supported@^1.1.0, is-unicode-supported@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + is-weakmap@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" @@ -3003,6 +3266,13 @@ is-weakset@^2.0.3: call-bind "^1.0.7" get-intrinsic "^1.2.4" +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + isarray@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" @@ -3124,6 +3394,11 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= +jsonc-parser@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4" + integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== + jsonc-parser@~2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz#db73cd59d78cce28723199466b2a03d1be1df2bc" @@ -3143,6 +3418,66 @@ jsonpointer@^5.0.0: resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== +jsonwebtoken@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^7.5.4" + +jszip@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" + integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + setimmediate "^1.0.5" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jwa@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" + integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +jws@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" + integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== + dependencies: + jwa "^2.0.0" + safe-buffer "^5.0.1" + keytar@^7.7.0: version "7.9.0" resolved "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz" @@ -3169,17 +3504,19 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -linkify-it@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz" - integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== dependencies: - uc.micro "^1.0.1" + immediate "~3.0.5" -listenercount@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz" - integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= +linkify-it@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" + integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== + dependencies: + uc.micro "^1.0.1" loader-runner@^4.2.0: version "4.3.0" @@ -3208,6 +3545,41 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + lodash.topath@^4.5.2: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.topath/-/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009" @@ -3230,6 +3602,14 @@ log-symbols@4.0.0: dependencies: chalk "^4.0.0" +log-symbols@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" + integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== + dependencies: + chalk "^5.0.0" + is-unicode-supported "^1.1.0" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -3249,21 +3629,21 @@ make-error@^1.1.1: resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -markdown-it@^10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz" - integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== +markdown-it@^12.3.2: + version "12.3.2" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" + integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== dependencies: - argparse "^1.0.7" - entities "~2.0.0" - linkify-it "^2.0.0" + argparse "^2.0.1" + entities "~2.1.0" + linkify-it "^3.0.1" mdurl "^1.0.1" uc.micro "^1.0.5" mdurl@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== media-typer@0.3.0: version "0.3.0" @@ -3370,7 +3750,7 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -"mkdirp@>=0.5 0", mkdirp@^0.5.1: +mkdirp@^0.5.1: version "0.5.5" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -3434,7 +3814,7 @@ ms@2.1.2, ms@^2.1.1: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -3604,13 +3984,22 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.2: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" +open@^8.0.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + optionator@^0.9.1: version "0.9.1" resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" @@ -3623,23 +4012,20 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.3: - version "0.1.5" - resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" +ora@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-7.0.1.tgz#cdd530ecd865fe39e451a0e7697865669cb11930" + integrity sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw== + dependencies: + chalk "^5.3.0" + cli-cursor "^4.0.0" + cli-spinners "^2.9.0" + is-interactive "^2.0.0" + is-unicode-supported "^1.3.0" + log-symbols "^5.1.0" + stdin-discarder "^0.1.0" + string-width "^6.1.0" + strip-ansi "^7.1.0" p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" @@ -3681,6 +4067,11 @@ p-try@^2.0.0: resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pako@~1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" @@ -3921,7 +4312,7 @@ read@^1.0.7: dependencies: mute-stream "~0.0.4" -readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@~2.3.6: +readable-stream@^2.0.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -4057,18 +4448,19 @@ resolve@^1.17.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + reusify@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@2: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@2.6.3: version "2.6.3" resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" @@ -4076,7 +4468,7 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -4160,7 +4552,7 @@ semver@^7.2.1, semver@^7.3.4, semver@^7.3.5: dependencies: lru-cache "^6.0.0" -semver@^7.3.2, semver@^7.3.7: +semver@^7.3.2, semver@^7.3.7, semver@^7.5.2, semver@^7.5.4, semver@^7.6.2: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -4235,10 +4627,10 @@ set-function-name@^2.0.2: functions-have-names "^1.2.3" has-property-descriptors "^1.0.2" -setimmediate@~1.0.4: +setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== setprototypeof@1.2.0: version "1.2.0" @@ -4283,7 +4675,7 @@ side-channel@^1.0.4, side-channel@^1.0.6: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -signal-exit@^3.0.0, signal-exit@^3.0.3: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -4356,6 +4748,18 @@ statuses@2.0.1: resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +stdin-discarder@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21" + integrity sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ== + dependencies: + bl "^5.0.0" + +stoppable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" + integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== + string-width@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" @@ -4391,6 +4795,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-6.1.0.tgz#96488d6ed23f9ad5d82d13522af9e4c4c3fd7518" + integrity sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^10.2.1" + strip-ansi "^7.0.1" + string.prototype.trim@^1.2.9: version "1.2.9" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" @@ -4466,6 +4879,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1, strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" @@ -4590,11 +5010,9 @@ through2@^2.0.1: xtend "~4.0.1" tmp@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== to-regex-range@^5.0.1: version "5.0.1" @@ -4613,11 +5031,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -"traverse@>=0.3.0 <0.4": - version "0.3.9" - resolved "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz" - integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= - ts-loader@^9.5.1: version "9.5.1" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.1.tgz#63d5912a86312f1fbe32cef0859fb8b2193d9b89" @@ -4645,7 +5058,7 @@ tslib@^1.14.1, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.2.0, tslib@^2.6.0, tslib@^2.8.1: +tslib@^2.0.1, tslib@^2.2.0, tslib@^2.6.0, tslib@^2.6.2, tslib@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -4755,7 +5168,7 @@ typescript@beta: uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" - resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== unbox-primitive@^1.0.2: @@ -4793,22 +5206,6 @@ untildify@^4.0.0: resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -unzipper@^0.10.11: - version "0.10.11" - resolved "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz" - integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw== - dependencies: - big-integer "^1.6.17" - binary "~0.3.0" - bluebird "~3.4.1" - buffer-indexof-polyfill "~1.0.0" - duplexer2 "~0.1.4" - fstream "^1.0.12" - graceful-fs "^4.2.2" - listenercount "~1.0.1" - readable-stream "~2.3.6" - setimmediate "~1.0.4" - update-browserslist-db@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" @@ -4829,10 +5226,10 @@ urijs@^1.19.11: resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc" integrity sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ== -url-join@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz" - integrity sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg= +url-join@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" + integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" @@ -4849,6 +5246,11 @@ utils-merge@1.0.1: resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + v8-compile-cache@^2.0.3: version "2.1.1" resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz" @@ -4866,41 +5268,12 @@ vary@~1.1.2: resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vsce@^1.103.1: - version "1.103.1" - resolved "https://registry.npmjs.org/vsce/-/vsce-1.103.1.tgz" - integrity sha512-98oKQKKRp7J/vTIk1cuzom5cezZpYpRHs3WlySdsrTCrAEipB/HvaPTc4VZ3hGZHzHXS9P5p2L0IllntJeXwiQ== - dependencies: - azure-devops-node-api "^11.0.1" - chalk "^2.4.2" - cheerio "^1.0.0-rc.9" - commander "^6.1.0" - denodeify "^1.2.1" - glob "^7.0.6" - hosted-git-info "^4.0.2" - keytar "^7.7.0" - leven "^3.1.0" - lodash "^4.17.15" - markdown-it "^10.0.0" - mime "^1.3.4" - minimatch "^3.0.3" - osenv "^0.1.3" - parse-semver "^1.1.1" - read "^1.0.7" - semver "^5.1.0" - tmp "^0.2.1" - typed-rest-client "^1.8.4" - url-join "^1.1.0" - xml2js "^0.4.23" - yauzl "^2.3.1" - yazl "^2.2.2" - vscode-jsonrpc@8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz#f43dfa35fb51e763d17cd94dcca0c9458f35abf9" integrity sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA== -vscode-languageclient@9.0.1: +vscode-languageclient@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz#cdfe20267726c8d4db839dc1e9d1816e1296e854" integrity sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA== @@ -4934,16 +5307,6 @@ vscode-languageserver@^9.0.1: dependencies: vscode-languageserver-protocol "3.17.5" -vscode-test@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/vscode-test/-/vscode-test-1.5.0.tgz" - integrity sha512-svwE/mhBBqrB77C1U7pkUKfUmxnkzg0dLGi1vEmitsleu88oNsqZEhG3ANZrL/Ia4m0CW0oYEKRw2EojpFxLlQ== - dependencies: - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - rimraf "^3.0.2" - unzipper "^0.10.11" - vscode-uri@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8" @@ -5152,10 +5515,10 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -xml2js@^0.4.23: - version "0.4.23" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== +xml2js@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7" + integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA== dependencies: sax ">=0.6.0" xmlbuilder "~11.0.0"