diff --git a/.gitignore b/.gitignore index 84a60ee21..0f2a926d9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ out node_modules *.tsbuildinfo *.vsix +.vscode-test-web diff --git a/extensions/vscode-vue-language-features/.vscodeignore b/extensions/vscode-vue-language-features/.vscodeignore index 80450103c..3c0ba9076 100644 --- a/extensions/vscode-vue-language-features/.vscodeignore +++ b/extensions/vscode-vue-language-features/.vscodeignore @@ -90,6 +90,7 @@ node_modules/**/*.js !node_modules/@volar/client/out/features/*.js !node_modules/@volar/code-gen/out/*.js !node_modules/@volar/html2pug/out/*.js +!node_modules/@volar/server/*.js !node_modules/@volar/server/out/*.js !node_modules/@volar/server/out/features/*.js !node_modules/@volar/server/out/registers/*.js diff --git a/extensions/vscode-vue-language-features/package.json b/extensions/vscode-vue-language-features/package.json index 2256dd4a8..958393070 100644 --- a/extensions/vscode-vue-language-features/package.json +++ b/extensions/vscode-vue-language-features/package.json @@ -31,7 +31,8 @@ "onLanguage:typescriptreact", "onWebviewPanel:preview" ], - "main": "node_modules/@volar/client/out/extension.js", + "main": "node_modules/@volar/client/out/nodeClientMain", + "browser": "node_modules/@volar/client/out/browserClientMain", "capabilities": { "untrustedWorkspaces": { "supported": "limited", diff --git a/package.json b/package.json index 47011e9fb..caf1a77e8 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,12 @@ "release:vue-language-features": "cd extensions/vscode-vue-language-features && npm run release", "release:typescript-vue-plugin": "cd extensions/vscode-typescript-vue-plugin && npm run release", "pretest": "cd packages/vscode-vue-languageservice/testCases && yarn", - "test": "jest" + "test": "jest", + "chrome": "npm run build && vscode-test-web --browserType=chromium --extensionDevelopmentPath=./extensions/vscode-vue-language-features ../volar-starter" }, "devDependencies": { "@types/jest": "latest", + "@vscode/test-web": "latest", "jest": "latest", "lerna": "latest", "ts-jest": "latest", diff --git a/packages/client/src/browserClientMain.ts b/packages/client/src/browserClientMain.ts new file mode 100644 index 000000000..7bf4c131b --- /dev/null +++ b/packages/client/src/browserClientMain.ts @@ -0,0 +1,38 @@ +// import * as vscode from 'vscode'; +// import * as lsp from 'vscode-languageclient/browser'; +// import { activate as commonActivate, deactivate as commonDeactivate } from './common'; + +// export function activate(context: vscode.ExtensionContext) { +// return commonActivate(context, ( +// id, +// name, +// documentSelector, +// initOptions, +// ) => { + +// const serverMain = vscode.Uri.joinPath(context.extensionUri, 'node_modules', '@volar', 'server', 'browser'); +// const worker = new Worker(serverMain.toString()); +// const clientOptions: lsp.LanguageClientOptions = { +// documentSelector, +// initializationOptions: initOptions, +// synchronize: { +// fileEvents: vscode.workspace.createFileSystemWatcher('{**/*.vue,**/*.js,**/*.jsx,**/*.ts,**/*.tsx,**/*.json}') +// } +// }; +// const client = new lsp.LanguageClient( +// id, +// name, +// clientOptions, +// worker, +// ); +// context.subscriptions.push(client.start()); + +// return client; +// }); +// } + +// export function deactivate(): Thenable | undefined { +// return commonDeactivate(); +// } + +console.log('Language features is not support yet.') diff --git a/packages/client/src/extension.ts b/packages/client/src/common.ts similarity index 83% rename from packages/client/src/extension.ts rename to packages/client/src/common.ts index 053158440..50db90045 100644 --- a/packages/client/src/extension.ts +++ b/packages/client/src/common.ts @@ -1,7 +1,6 @@ import * as shared from '@volar/shared'; -import * as path from 'upath'; import * as vscode from 'vscode'; -import * as lsp from 'vscode-languageclient/node'; +import * as lsp from 'vscode-languageclient'; import * as activeSelection from './features/activeSelection'; import * as attrNameCase from './features/attrNameCase'; import * as callGraph from './features/callGraph'; @@ -20,12 +19,19 @@ import * as virtualFiles from './features/virtualFiles'; import * as whitelist from './features/whitelist'; import * as tsconfig from './features/tsconfig'; -let apiClient: lsp.LanguageClient; -let docClient: lsp.LanguageClient | undefined; -let htmlClient: lsp.LanguageClient; -let lowPowerMode = false; +let apiClient: lsp.CommonLanguageClient; +let docClient: lsp.CommonLanguageClient | undefined; +let htmlClient: lsp.CommonLanguageClient; -export async function activate(context: vscode.ExtensionContext) { +type CreateLanguageClient = ( + id: string, + name: string, + documentSelector: lsp.DocumentSelector, + initOptions: shared.ServerInitializationOptions, + port: number, +) => lsp.CommonLanguageClient; + +export async function activate(context: vscode.ExtensionContext, createLc: CreateLanguageClient) { const stopCheck = vscode.window.onDidChangeActiveTextEditor(tryActivate); tryActivate(); @@ -34,28 +40,28 @@ export async function activate(context: vscode.ExtensionContext) { if (!vscode.window.activeTextEditor) { // onWebviewPanel:preview - doActivate(context); + doActivate(context, createLc); stopCheck.dispose(); return; } const currentlangId = vscode.window.activeTextEditor.document.languageId; if (currentlangId === 'vue') { - doActivate(context); + doActivate(context, createLc); stopCheck.dispose(); } const takeOverMode = takeOverModeEnabled(); if (takeOverMode && ['javascript', 'typescript', 'javascriptreact', 'typescriptreact'].includes(currentlangId)) { - doActivate(context); + doActivate(context, createLc); stopCheck.dispose(); } } } -async function doActivate(context: vscode.ExtensionContext) { +async function doActivate(context: vscode.ExtensionContext, createLc: CreateLanguageClient) { - lowPowerMode = lowPowerModeEnabled(); + const lowPowerMode = lowPowerModeEnabled(); if (lowPowerMode) { vscode.window .showInformationMessage('Low Power Mode Enabled.', 'Disable') @@ -99,32 +105,26 @@ async function doActivate(context: vscode.ExtensionContext) { { language: 'vue' }, ]; - apiClient = createLanguageService( - context, - 'api', + apiClient = createLc( 'volar-api', 'Volar - API', - 6009, languageFeaturesDocumentSelector, - undefined, + getInitializationOptions(context, 'api', undefined, lowPowerMode), + 6009, ); - docClient = !lowPowerMode ? createLanguageService( - context, - 'doc', + docClient = !lowPowerMode ? createLc( 'volar-document', 'Volar - Document', - 6010, languageFeaturesDocumentSelector, - undefined, + getInitializationOptions(context, 'doc', undefined, lowPowerMode), + 6010, ) : undefined; - htmlClient = createLanguageService( - context, - 'html', + htmlClient = createLc( 'volar-html', 'Volar - HTML', - 6011, documentFeaturesDocumentSelector, - undefined, + getInitializationOptions(context, 'html', undefined, lowPowerMode), + 6011, ); const clients = [apiClient, docClient, htmlClient].filter(shared.notEmpty); @@ -206,26 +206,12 @@ function lowPowerModeEnabled() { return !!vscode.workspace.getConfiguration('volar').get('lowPowerMode'); } -function createLanguageService( +function getInitializationOptions( context: vscode.ExtensionContext, mode: 'api' | 'doc' | 'html', - id: string, - name: string, - port: number, - documentSelector: lsp.DocumentSelector, initMessage: string | undefined, + lowPowerMode: boolean, ) { - - const serverModule = context.asAbsolutePath(path.join('node_modules', '@volar', 'server', 'out', 'index.js')); - const debugOptions = { execArgv: ['--nolazy', '--inspect=' + port] }; - const serverOptions: lsp.ServerOptions = { - run: { module: serverModule, transport: lsp.TransportKind.ipc }, - debug: { - module: serverModule, - transport: lsp.TransportKind.ipc, - options: debugOptions - }, - }; const initializationOptions: shared.ServerInitializationOptions = { typescript: tsVersion.getCurrentTsPaths(context), languageFeatures: (mode === 'api' || mode === 'doc') ? { @@ -270,20 +256,5 @@ function createLanguageService( } : undefined, initializationMessage: initMessage, }; - const clientOptions: lsp.LanguageClientOptions = { - documentSelector, - initializationOptions, - synchronize: { - fileEvents: vscode.workspace.createFileSystemWatcher('{**/*.vue,**/*.js,**/*.jsx,**/*.ts,**/*.tsx,**/*.json}') - } - }; - const client = new lsp.LanguageClient( - id, - name, - serverOptions, - clientOptions, - ); - context.subscriptions.push(client.start()); - - return client; + return initializationOptions; } diff --git a/packages/client/src/features/activeSelection.ts b/packages/client/src/features/activeSelection.ts index 3b02b5c0e..f816b3211 100644 --- a/packages/client/src/features/activeSelection.ts +++ b/packages/client/src/features/activeSelection.ts @@ -1,8 +1,8 @@ import * as vscode from 'vscode'; import * as shared from '@volar/shared'; -import type { LanguageClient } from 'vscode-languageclient/node'; +import type { CommonLanguageClient } from 'vscode-languageclient'; -export async function activate(context: vscode.ExtensionContext, languageClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, languageClient: CommonLanguageClient) { await languageClient.onReady(); context.subscriptions.push(languageClient.onRequest(shared.GetEditorSelectionRequest.type, () => { const editor = vscode.window.activeTextEditor; diff --git a/packages/client/src/features/attrNameCase.ts b/packages/client/src/features/attrNameCase.ts index 2c3ec9789..2aa1e8123 100644 --- a/packages/client/src/features/attrNameCase.ts +++ b/packages/client/src/features/attrNameCase.ts @@ -1,9 +1,9 @@ import * as vscode from 'vscode'; import { userPick } from './splitEditors'; -import { LanguageClient, State } from 'vscode-languageclient/node'; +import { CommonLanguageClient, State } from 'vscode-languageclient'; import * as shared from '@volar/shared'; -export async function activate(context: vscode.ExtensionContext, languageClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, languageClient: CommonLanguageClient) { await languageClient.onReady(); await languageClient.sendRequest(shared.InitDoneRequest.type); diff --git a/packages/client/src/features/callGraph.ts b/packages/client/src/features/callGraph.ts index fbe05e9ec..f776a8473 100644 --- a/packages/client/src/features/callGraph.ts +++ b/packages/client/src/features/callGraph.ts @@ -1,8 +1,8 @@ import * as vscode from 'vscode'; import * as shared from '@volar/shared'; -import type { LanguageClient } from 'vscode-languageclient/node'; +import type { CommonLanguageClient } from 'vscode-languageclient'; -export async function activate(context: vscode.ExtensionContext, languageClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, languageClient: CommonLanguageClient) { await languageClient.onReady(); context.subscriptions.push(vscode.commands.registerCommand('volar.action.showCallGraph', async () => { const document = vscode.window.activeTextEditor?.document; diff --git a/packages/client/src/features/documentContent.ts b/packages/client/src/features/documentContent.ts index f4442caae..5cb66a7aa 100644 --- a/packages/client/src/features/documentContent.ts +++ b/packages/client/src/features/documentContent.ts @@ -1,12 +1,12 @@ import * as vscode from 'vscode'; import { ResponseError } from 'vscode-languageclient'; import * as shared from '@volar/shared'; -import type { LanguageClient } from 'vscode-languageclient/node'; +import type { CommonLanguageClient } from 'vscode-languageclient'; import * as nls from 'vscode-nls'; const localize = nls.loadMessageBundle(); -export async function activate(context: vscode.ExtensionContext, languageClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, languageClient: CommonLanguageClient) { await languageClient.onReady(); const schemaDocuments: { [uri: string]: boolean } = {}; diff --git a/packages/client/src/features/documentPrintWidth.ts b/packages/client/src/features/documentPrintWidth.ts index fb10c5aab..b13b8290e 100644 --- a/packages/client/src/features/documentPrintWidth.ts +++ b/packages/client/src/features/documentPrintWidth.ts @@ -1,8 +1,8 @@ import * as vscode from 'vscode'; import * as shared from '@volar/shared'; -import type { LanguageClient } from 'vscode-languageclient/node'; +import type { CommonLanguageClient } from 'vscode-languageclient'; -export async function activate(context: vscode.ExtensionContext, languageClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, languageClient: CommonLanguageClient) { await languageClient.onReady(); context.subscriptions.push(languageClient.onRequest(shared.GetDocumentPrintWidthRequest.type, handler => { const configs = vscode.workspace.getConfiguration('volar'); diff --git a/packages/client/src/features/documentVersion.ts b/packages/client/src/features/documentVersion.ts index eafcfb463..640532322 100644 --- a/packages/client/src/features/documentVersion.ts +++ b/packages/client/src/features/documentVersion.ts @@ -1,8 +1,8 @@ import * as vscode from 'vscode'; import * as shared from '@volar/shared'; -import type { LanguageClient } from 'vscode-languageclient/node'; +import type { CommonLanguageClient } from 'vscode-languageclient'; -export async function activate(context: vscode.ExtensionContext, languageClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, languageClient: CommonLanguageClient) { await languageClient.onReady(); context.subscriptions.push(languageClient.onRequest(shared.GetDocumentVersionRequest.type, handler => { const doc = vscode.workspace.textDocuments.find(doc => doc.uri.toString() === handler.uri); diff --git a/packages/client/src/features/showReferences.ts b/packages/client/src/features/showReferences.ts index 5b0771f99..46edc3090 100644 --- a/packages/client/src/features/showReferences.ts +++ b/packages/client/src/features/showReferences.ts @@ -1,8 +1,8 @@ import * as vscode from 'vscode'; import * as shared from '@volar/shared'; -import type { LanguageClient } from 'vscode-languageclient/node'; +import type { CommonLanguageClient } from 'vscode-languageclient'; -export async function activate(context: vscode.ExtensionContext, languageClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, languageClient: CommonLanguageClient) { await languageClient.onReady(); context.subscriptions.push(languageClient.onNotification(shared.ShowReferencesNotification.type, handler => { const uri = handler.textDocument.uri; diff --git a/packages/client/src/features/tagClosing.ts b/packages/client/src/features/tagClosing.ts index c9942a9c0..6926dd3d0 100644 --- a/packages/client/src/features/tagClosing.ts +++ b/packages/client/src/features/tagClosing.ts @@ -1,8 +1,8 @@ import * as vscode from 'vscode'; import * as shared from '@volar/shared'; -import type { LanguageClient } from 'vscode-languageclient/node'; +import type { CommonLanguageClient } from 'vscode-languageclient'; -export async function activate(context: vscode.ExtensionContext, htmlClient: LanguageClient, tsClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, htmlClient: CommonLanguageClient, tsClient: CommonLanguageClient) { await htmlClient.onReady(); context.subscriptions.push(activateTagClosing( (document, position) => { diff --git a/packages/client/src/features/tagNameCase.ts b/packages/client/src/features/tagNameCase.ts index d9fcc87fd..3c2d2c7e8 100644 --- a/packages/client/src/features/tagNameCase.ts +++ b/packages/client/src/features/tagNameCase.ts @@ -1,9 +1,9 @@ import * as vscode from 'vscode'; import { userPick } from './splitEditors'; -import { LanguageClient, State } from 'vscode-languageclient/node'; +import { CommonLanguageClient, State } from 'vscode-languageclient'; import * as shared from '@volar/shared'; -export async function activate(context: vscode.ExtensionContext, languageClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, languageClient: CommonLanguageClient) { await languageClient.onReady(); await languageClient.sendRequest(shared.InitDoneRequest.type); diff --git a/packages/client/src/features/tsVersion.ts b/packages/client/src/features/tsVersion.ts index a5d4e15ed..ba0a95b3a 100644 --- a/packages/client/src/features/tsVersion.ts +++ b/packages/client/src/features/tsVersion.ts @@ -1,11 +1,11 @@ import * as vscode from 'vscode'; -import { LanguageClient } from 'vscode-languageclient/node'; +import { CommonLanguageClient } from 'vscode-languageclient'; import * as shared from '@volar/shared'; import { userPick } from './splitEditors'; const defaultTsdk = 'node_modules/typescript/lib'; -export async function activate(context: vscode.ExtensionContext, clients: LanguageClient[]) { +export async function activate(context: vscode.ExtensionContext, clients: CommonLanguageClient[]) { const statusBar = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right); statusBar.command = 'volar.selectTypeScriptVersion'; diff --git a/packages/client/src/features/tsconfig.ts b/packages/client/src/features/tsconfig.ts index 7f04c6d40..9835bcd41 100644 --- a/packages/client/src/features/tsconfig.ts +++ b/packages/client/src/features/tsconfig.ts @@ -1,9 +1,9 @@ import * as vscode from 'vscode'; -import { LanguageClient } from 'vscode-languageclient/node'; +import { CommonLanguageClient } from 'vscode-languageclient'; import * as shared from '@volar/shared'; import * as path from 'upath'; -export async function activate(context: vscode.ExtensionContext, languageClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, languageClient: CommonLanguageClient) { await languageClient.onReady(); await languageClient.sendRequest(shared.InitDoneRequest.type); diff --git a/packages/client/src/features/verifyAll.ts b/packages/client/src/features/verifyAll.ts index 348e85c21..de5333862 100644 --- a/packages/client/src/features/verifyAll.ts +++ b/packages/client/src/features/verifyAll.ts @@ -1,8 +1,8 @@ import * as vscode from 'vscode'; import * as shared from '@volar/shared'; -import type { LanguageClient } from 'vscode-languageclient/node'; +import type { CommonLanguageClient } from 'vscode-languageclient'; -export async function activate(context: vscode.ExtensionContext, languageClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, languageClient: CommonLanguageClient) { await languageClient.onReady(); context.subscriptions.push(vscode.commands.registerCommand('volar.action.verifyAllScripts', () => { languageClient.sendNotification(shared.VerifyAllScriptsNotification.type); diff --git a/packages/client/src/features/virtualFiles.ts b/packages/client/src/features/virtualFiles.ts index 8b6196c60..5b3134318 100644 --- a/packages/client/src/features/virtualFiles.ts +++ b/packages/client/src/features/virtualFiles.ts @@ -1,8 +1,8 @@ import * as vscode from 'vscode'; import * as shared from '@volar/shared'; -import type { LanguageClient } from 'vscode-languageclient/node'; +import type { CommonLanguageClient } from 'vscode-languageclient'; -export async function activate(context: vscode.ExtensionContext, languageClient: LanguageClient) { +export async function activate(context: vscode.ExtensionContext, languageClient: CommonLanguageClient) { await languageClient.onReady(); context.subscriptions.push(vscode.commands.registerCommand('volar.action.writeTemplateLsVirtualFiles', () => { languageClient.sendNotification(shared.WriteVirtualFilesNotification.type, { lsType: 'template' }); diff --git a/packages/client/src/features/whitelist.ts b/packages/client/src/features/whitelist.ts index bde4cb3ca..ce68a267e 100644 --- a/packages/client/src/features/whitelist.ts +++ b/packages/client/src/features/whitelist.ts @@ -1,10 +1,10 @@ import * as vscode from 'vscode'; import * as path from 'path'; import * as fs from 'fs'; -import * as lsp from 'vscode-languageclient/node'; +import * as lsp from 'vscode-languageclient'; import * as shared from '@volar/shared'; -export async function activate(context: vscode.ExtensionContext, clients: lsp.LanguageClient[]) { +export async function activate(context: vscode.ExtensionContext, clients: lsp.CommonLanguageClient[]) { context.subscriptions.push(vscode.commands.registerCommand('volar.action.genWhitelist', async () => { diff --git a/packages/client/src/nodeClientMain.ts b/packages/client/src/nodeClientMain.ts new file mode 100644 index 000000000..c67f67b48 --- /dev/null +++ b/packages/client/src/nodeClientMain.ts @@ -0,0 +1,45 @@ +import * as vscode from 'vscode'; +import * as lsp from 'vscode-languageclient/node'; +import { activate as commonActivate, deactivate as commonDeactivate } from './common'; + +export function activate(context: vscode.ExtensionContext) { + return commonActivate(context, ( + id, + name, + documentSelector, + initOptions, + port, + ) => { + + const serverModule = vscode.Uri.joinPath(context.extensionUri, 'node_modules', '@volar', 'server', 'node'); + const debugOptions = { execArgv: ['--nolazy', '--inspect=' + port] }; + const serverOptions: lsp.ServerOptions = { + run: { module: serverModule.fsPath, transport: lsp.TransportKind.ipc }, + debug: { + module: serverModule.fsPath, + transport: lsp.TransportKind.ipc, + options: debugOptions + }, + }; + const clientOptions: lsp.LanguageClientOptions = { + documentSelector, + initializationOptions: initOptions, + synchronize: { + fileEvents: vscode.workspace.createFileSystemWatcher('{**/*.vue,**/*.js,**/*.jsx,**/*.ts,**/*.tsx,**/*.json}') + } + }; + const client = new lsp.LanguageClient( + id, + name, + serverOptions, + clientOptions, + ); + context.subscriptions.push(client.start()); + + return client; + }); +} + +export function deactivate(): Thenable | undefined { + return commonDeactivate(); +} diff --git a/packages/experimental/tsconfig.build-client.json b/packages/experimental/tsconfig.build-client.json index 7e95005c0..9f1012ac5 100644 --- a/packages/experimental/tsconfig.build-client.json +++ b/packages/experimental/tsconfig.build-client.json @@ -1,6 +1,10 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { + "lib": [ + "DOM", + "ES2020" + ], "target": "es5", "module": "esnext", "outDir": ".", diff --git a/packages/experimental/tsconfig.build-compiler.json b/packages/experimental/tsconfig.build-compiler.json index a0743aa8c..ea662f07f 100644 --- a/packages/experimental/tsconfig.build-compiler.json +++ b/packages/experimental/tsconfig.build-compiler.json @@ -1,6 +1,10 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { + "lib": [ + "DOM", + "ES2020" + ], "outDir": ".", "rootDir": "src", }, diff --git a/packages/experimental/tsconfig.build.json b/packages/experimental/tsconfig.json similarity index 100% rename from packages/experimental/tsconfig.build.json rename to packages/experimental/tsconfig.json diff --git a/packages/server/bin/volar-server.js b/packages/server/bin/volar-server.js index 85942705f..89720b14a 100755 --- a/packages/server/bin/volar-server.js +++ b/packages/server/bin/volar-server.js @@ -1,2 +1,2 @@ #!/usr/bin/env node -require('../out/index.js') +require('../node.js') diff --git a/packages/server/browser.d.ts b/packages/server/browser.d.ts new file mode 100644 index 000000000..088565d22 --- /dev/null +++ b/packages/server/browser.d.ts @@ -0,0 +1 @@ +export * from './out/browser'; diff --git a/packages/server/browser.js b/packages/server/browser.js new file mode 100644 index 000000000..c1cc7c9dd --- /dev/null +++ b/packages/server/browser.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./out/browser'); \ No newline at end of file diff --git a/packages/server/node.d.ts b/packages/server/node.d.ts new file mode 100644 index 000000000..f851f2ca2 --- /dev/null +++ b/packages/server/node.d.ts @@ -0,0 +1 @@ +export * from './out/index'; diff --git a/packages/server/node.js b/packages/server/node.js new file mode 100644 index 000000000..942a99f44 --- /dev/null +++ b/packages/server/node.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./out/index'); diff --git a/packages/server/src/browser.ts b/packages/server/src/browser.ts new file mode 100644 index 000000000..51ae739b2 --- /dev/null +++ b/packages/server/src/browser.ts @@ -0,0 +1,8 @@ +import * as vscode from 'vscode-languageserver/browser'; +import { createLanguageServer } from './common'; + +const messageReader = new vscode.BrowserMessageReader(self); +const messageWriter = new vscode.BrowserMessageWriter(self); +const connection = vscode.createConnection(messageReader, messageWriter); + +createLanguageServer(connection); diff --git a/packages/server/src/common.ts b/packages/server/src/common.ts new file mode 100644 index 000000000..5487e85d5 --- /dev/null +++ b/packages/server/src/common.ts @@ -0,0 +1,130 @@ +import * as shared from '@volar/shared'; +import * as fs from 'fs'; +import type * as ts from 'typescript/lib/tsserverlibrary'; +import * as path from 'upath'; +import { TextDocument } from 'vscode-languageserver-textdocument'; +import * as vscode from 'vscode-languageserver'; +import { URI } from 'vscode-uri'; +import * as vue from 'vscode-vue-languageservice'; +import { createLsConfigs } from './configs'; +import { getInferredCompilerOptions } from './inferredCompilerOptions'; +import { createProjects } from './projects'; +import * as tsConfigs from './tsConfigs'; + +export function createLanguageServer(connection: vscode.Connection) { + + connection.onInitialize(onInitialize); + connection.listen(); + + const documents = new vscode.TextDocuments(TextDocument); + documents.listen(connection); + + let inited = false; + connection.onRequest(shared.InitDoneRequest.type, async () => { + while (!inited) { + await shared.sleep(100); + } + return undefined; + }); + connection.onRequest(shared.DepsRequest.type, () => Object.keys(require.cache)); + + async function onInitialize(params: vscode.InitializeParams) { + + const options: shared.ServerInitializationOptions = params.initializationOptions; + let folders: string[] = []; + let rootUri: URI; + + if (params.capabilities.workspace?.workspaceFolders && params.workspaceFolders) { + folders = params.workspaceFolders + .map(folder => URI.parse(folder.uri)) + .filter(uri => uri.scheme === 'file') + .map(uri => uri.fsPath); + } + else if (params.rootUri && (rootUri = URI.parse(params.rootUri)).scheme === 'file') { + folders = [rootUri.fsPath]; + } + else if (params.rootPath) { + folders = [params.rootPath]; + } + + const result: vscode.InitializeResult = { + capabilities: { + textDocumentSync: vscode.TextDocumentSyncKind.Incremental, + }, + }; + const configuration = params.capabilities.workspace?.configuration ? connection.workspace : undefined; + + if (options.documentFeatures) { + + const ts = loadTypescript(options.typescript.serverPath); + const formatters = await import('./formatters'); + const noStateLs = vue.getDocumentLanguageService( + { typescript: ts }, + (document) => tsConfigs.getPreferences(configuration, document), + (document, options) => tsConfigs.getFormatOptions(configuration, document, options), + formatters.getFormatters(async (uri) => { + if (options.documentFeatures?.documentFormatting?.getDocumentPrintWidthRequest) { + const response = await connection.sendRequest(shared.GetDocumentPrintWidthRequest.type, { uri }); + if (response !== undefined) { + return response; + } + } + return options.documentFeatures?.documentFormatting?.defaultPrintWidth ?? 100; + }), + ); + + (await import('./features/documentFeatures')).register(connection, documents, noStateLs); + (await import('./registers/registerDocumentFeatures')).register(options.documentFeatures, result.capabilities); + } + + if (options.languageFeatures) { + + let projects: ReturnType | undefined; + const lsConfigs = params.capabilities.workspace?.configuration ? createLsConfigs(connection) : undefined; + + const ts = loadTypescript(options.typescript.serverPath); + + (await import('./features/customFeatures')).register(connection, documents, () => projects); + (await import('./features/languageFeatures')).register(ts, connection, configuration, documents, () => projects, options.languageFeatures, lsConfigs, params); + (await import('./registers/registerlanguageFeatures')).register(options.languageFeatures!, vue.getSemanticTokenLegend(), result.capabilities, ts.version); + + connection.onInitialized(async () => { + + const inferredCompilerOptions = await getInferredCompilerOptions(ts, configuration); + const tsLocalized = options.typescript.localizedPath ? loadTypescriptLocalized(options.typescript.localizedPath) : undefined; + + if (params.capabilities.workspace?.didChangeConfiguration?.dynamicRegistration) { // TODO + connection.client.register(vscode.DidChangeConfigurationNotification.type); + } + + projects = createProjects( + folders, + ts, + tsLocalized, + options, + documents, + connection, + lsConfigs, + inferredCompilerOptions, + ); + + inited = true; + }); + } + else { + inited = true; + } + + return result; + } +} + +function loadTypescript(tsPath: string): typeof import('typescript/lib/tsserverlibrary') { + return require(path.toUnix(tsPath)); +} + +function loadTypescriptLocalized(tsPath: string): ts.MapLike | undefined { + if (fs.existsSync(tsPath)) { + return require(path.toUnix(tsPath)); + } +} diff --git a/packages/server/src/formatters.ts b/packages/server/src/formatters.ts index 873f1abc9..3f19ffbf1 100644 --- a/packages/server/src/formatters.ts +++ b/packages/server/src/formatters.ts @@ -2,7 +2,7 @@ import * as prettyhtml from '@starptech/prettyhtml'; import * as prettier from 'prettier'; import { SassFormatter } from 'sass-formatter'; import { TextDocument } from 'vscode-languageserver-textdocument'; -import * as vscode from 'vscode-languageserver/node'; +import * as vscode from 'vscode-languageserver'; const pugBeautify = require('pug-beautify'); diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 388af40a1..d5e281c8d 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -1,128 +1,10 @@ -import * as shared from '@volar/shared'; -import * as fs from 'fs'; -import type * as ts from 'typescript/lib/tsserverlibrary'; -import * as path from 'upath'; -import { TextDocument } from 'vscode-languageserver-textdocument'; +/** + * NOTE! This file will be rename to node.ts in future + */ + import * as vscode from 'vscode-languageserver/node'; -import { URI } from 'vscode-uri'; -import * as vue from 'vscode-vue-languageservice'; -import { createLsConfigs } from './configs'; -import { getInferredCompilerOptions } from './inferredCompilerOptions'; -import { createProjects } from './projects'; -import * as tsConfigs from './tsConfigs'; +import { createLanguageServer } from './common'; const connection = vscode.createConnection(vscode.ProposedFeatures.all); -connection.onInitialize(onInitialize); -connection.listen(); - -const documents = new vscode.TextDocuments(TextDocument); -documents.listen(connection); - -let inited = false; -connection.onRequest(shared.InitDoneRequest.type, async () => { - while (!inited) { - await shared.sleep(100); - } - return undefined; -}); -connection.onRequest(shared.DepsRequest.type, () => Object.keys(require.cache)); - -async function onInitialize(params: vscode.InitializeParams) { - - const options: shared.ServerInitializationOptions = params.initializationOptions; - let folders: string[] = []; - let rootUri: URI; - - if (params.capabilities.workspace?.workspaceFolders && params.workspaceFolders) { - folders = params.workspaceFolders - .map(folder => URI.parse(folder.uri)) - .filter(uri => uri.scheme === 'file') - .map(uri => uri.fsPath); - } - else if (params.rootUri && (rootUri = URI.parse(params.rootUri)).scheme === 'file') { - folders = [rootUri.fsPath]; - } - else if (params.rootPath) { - folders = [params.rootPath]; - } - - const result: vscode.InitializeResult = { - capabilities: { - textDocumentSync: vscode.TextDocumentSyncKind.Incremental, - }, - }; - const configuration = params.capabilities.workspace?.configuration ? connection.workspace : undefined; - - if (options.documentFeatures) { - - const ts = loadTypescript(options.typescript.serverPath); - const formatters = await import('./formatters'); - const noStateLs = vue.getDocumentLanguageService( - { typescript: ts }, - (document) => tsConfigs.getPreferences(configuration, document), - (document, options) => tsConfigs.getFormatOptions(configuration, document, options), - formatters.getFormatters(async (uri) => { - if (options.documentFeatures?.documentFormatting?.getDocumentPrintWidthRequest) { - const response = await connection.sendRequest(shared.GetDocumentPrintWidthRequest.type, { uri }); - if (response !== undefined) { - return response; - } - } - return options.documentFeatures?.documentFormatting?.defaultPrintWidth ?? 100; - }), - ); - - (await import('./features/documentFeatures')).register(connection, documents, noStateLs); - (await import('./registers/registerDocumentFeatures')).register(options.documentFeatures, result.capabilities); - } - - if (options.languageFeatures) { - - let projects: ReturnType | undefined; - const lsConfigs = params.capabilities.workspace?.configuration ? createLsConfigs(connection) : undefined; - - const ts = loadTypescript(options.typescript.serverPath); - - (await import('./features/customFeatures')).register(connection, documents, () => projects); - (await import('./features/languageFeatures')).register(ts, connection, configuration, documents, () => projects, options.languageFeatures, lsConfigs, params); - (await import('./registers/registerlanguageFeatures')).register(options.languageFeatures!, vue.getSemanticTokenLegend(), result.capabilities, ts.version); - - connection.onInitialized(async () => { - - const inferredCompilerOptions = await getInferredCompilerOptions(ts, configuration); - const tsLocalized = options.typescript.localizedPath ? loadTypescriptLocalized(options.typescript.localizedPath) : undefined; - - if (params.capabilities.workspace?.didChangeConfiguration?.dynamicRegistration) { // TODO - connection.client.register(vscode.DidChangeConfigurationNotification.type); - } - - projects = createProjects( - folders, - ts, - tsLocalized, - options, - documents, - connection, - lsConfigs, - inferredCompilerOptions, - ); - - inited = true; - }); - } - else { - inited = true; - } - - return result; -} - -function loadTypescript(tsPath: string): typeof import('typescript/lib/tsserverlibrary') { - return require(path.toUnix(tsPath)); -} -function loadTypescriptLocalized(tsPath: string): ts.MapLike | undefined { - if (fs.existsSync(tsPath)) { - return require(path.toUnix(tsPath)); - } -} +createLanguageServer(connection); diff --git a/packages/vscode-typescript-languageservice/src/utils/typeConverters.ts b/packages/vscode-typescript-languageservice/src/utils/typeConverters.ts index 503a09814..f0fc7fcb4 100644 --- a/packages/vscode-typescript-languageservice/src/utils/typeConverters.ts +++ b/packages/vscode-typescript-languageservice/src/utils/typeConverters.ts @@ -7,7 +7,7 @@ * Helpers for converting FROM vscode types TO ts types */ -import * as vscode from 'vscode-languageserver/node'; +import * as vscode from 'vscode-languageserver'; import type * as Proto from '../protocol'; import * as PConst from '../protocol.const'; diff --git a/packages/vscode-vue-languageservice/src/use/useSfcStyles.ts b/packages/vscode-vue-languageservice/src/use/useSfcStyles.ts index 2d00a4424..da3628fba 100644 --- a/packages/vscode-vue-languageservice/src/use/useSfcStyles.ts +++ b/packages/vscode-vue-languageservice/src/use/useSfcStyles.ts @@ -13,7 +13,7 @@ type StylesheetNode = { end: number, length: number, offset: number, - parent: Node | null, + parent: StylesheetNode | null, type: number, }; diff --git a/packages/vscode-vue-languageservice/tests/renames/cssModules.ts b/packages/vscode-vue-languageservice/tests/renames/cssModules.ts index 535f01bcb..23e162e30 100644 --- a/packages/vscode-vue-languageservice/tests/renames/cssModules.ts +++ b/packages/vscode-vue-languageservice/tests/renames/cssModules.ts @@ -1,5 +1,5 @@ import * as path from 'upath'; -import { Position } from 'vscode-languageserver/node'; +import { Position } from 'vscode-languageserver'; import { defineRename } from '../utils/defineRename'; const file = path.resolve(__dirname, '../../testCases/renames/cssModules.vue'); diff --git a/packages/vscode-vue-languageservice/tests/renames/cssScoped.ts b/packages/vscode-vue-languageservice/tests/renames/cssScoped.ts index 89702bdaa..2d4f6df8e 100644 --- a/packages/vscode-vue-languageservice/tests/renames/cssScoped.ts +++ b/packages/vscode-vue-languageservice/tests/renames/cssScoped.ts @@ -1,5 +1,5 @@ import * as path from 'upath'; -import { Position } from 'vscode-languageserver/node'; +import { Position } from 'vscode-languageserver'; import { defineRename } from '../utils/defineRename'; const file = path.resolve(__dirname, '../../testCases/renames/cssScoped.vue'); diff --git a/packages/vscode-vue-languageservice/tests/renames/cssVars.ts b/packages/vscode-vue-languageservice/tests/renames/cssVars.ts index 32b1df9a7..627e49b81 100644 --- a/packages/vscode-vue-languageservice/tests/renames/cssVars.ts +++ b/packages/vscode-vue-languageservice/tests/renames/cssVars.ts @@ -1,5 +1,5 @@ import * as path from 'upath'; -import { Position } from 'vscode-languageserver/node'; +import { Position } from 'vscode-languageserver'; import { defineRename } from '../utils/defineRename'; const file = path.resolve(__dirname, '../../testCases/renames/cssVars.vue'); diff --git a/packages/vscode-vue-languageservice/tests/renames/dynamicProp.ts b/packages/vscode-vue-languageservice/tests/renames/dynamicProp.ts index 288f79b80..501ec61e0 100644 --- a/packages/vscode-vue-languageservice/tests/renames/dynamicProp.ts +++ b/packages/vscode-vue-languageservice/tests/renames/dynamicProp.ts @@ -1,5 +1,5 @@ import * as path from 'upath'; -import { Position } from 'vscode-languageserver/node'; +import { Position } from 'vscode-languageserver'; import { defineRename } from '../utils/defineRename'; const file = path.resolve(__dirname, '../../testCases/renames/dynamicProp.vue'); diff --git a/packages/vscode-vue-languageservice/tests/renames/emit.ts b/packages/vscode-vue-languageservice/tests/renames/emit.ts index eb2634125..8160eab6a 100644 --- a/packages/vscode-vue-languageservice/tests/renames/emit.ts +++ b/packages/vscode-vue-languageservice/tests/renames/emit.ts @@ -1,5 +1,5 @@ import * as path from 'upath'; -import { Position } from 'vscode-languageserver/node'; +import { Position } from 'vscode-languageserver'; import { defineRename } from '../utils/defineRename'; const file_from = path.resolve(__dirname, '../../testCases/renames/emit_from.vue'); diff --git a/packages/vscode-vue-languageservice/tests/renames/prop.ts b/packages/vscode-vue-languageservice/tests/renames/prop.ts index 007267222..a54033133 100644 --- a/packages/vscode-vue-languageservice/tests/renames/prop.ts +++ b/packages/vscode-vue-languageservice/tests/renames/prop.ts @@ -1,5 +1,5 @@ import * as path from 'upath'; -import { Position } from 'vscode-languageserver/node'; +import { Position } from 'vscode-languageserver'; import { defineRename } from '../utils/defineRename'; const file_from = path.resolve(__dirname, '../../testCases/renames/prop_from.vue'); diff --git a/packages/vscode-vue-languageservice/tests/renames/scriptSetup.ts b/packages/vscode-vue-languageservice/tests/renames/scriptSetup.ts index 6974ce2ad..1a614f8fd 100644 --- a/packages/vscode-vue-languageservice/tests/renames/scriptSetup.ts +++ b/packages/vscode-vue-languageservice/tests/renames/scriptSetup.ts @@ -1,5 +1,5 @@ import * as path from 'upath'; -import { Position } from 'vscode-languageserver/node'; +import { Position } from 'vscode-languageserver'; import { defineRename } from '../utils/defineRename'; const file = path.resolve(__dirname, '../../testCases/renames/scriptSetup.vue'); diff --git a/packages/vscode-vue-languageservice/tests/renames/scriptSetup_component.ts b/packages/vscode-vue-languageservice/tests/renames/scriptSetup_component.ts index 6f2b3db81..542e0a2da 100644 --- a/packages/vscode-vue-languageservice/tests/renames/scriptSetup_component.ts +++ b/packages/vscode-vue-languageservice/tests/renames/scriptSetup_component.ts @@ -1,5 +1,5 @@ import * as path from 'upath'; -import { Position } from 'vscode-languageserver/node'; +import { Position } from 'vscode-languageserver'; import { defineRename } from '../utils/defineRename'; const file = path.resolve(__dirname, '../../testCases/renames/scriptSetup_component.vue'); diff --git a/packages/vscode-vue-languageservice/tests/renames/scriptSetup_element.ts b/packages/vscode-vue-languageservice/tests/renames/scriptSetup_element.ts index 23eb610f6..bf48a487c 100644 --- a/packages/vscode-vue-languageservice/tests/renames/scriptSetup_element.ts +++ b/packages/vscode-vue-languageservice/tests/renames/scriptSetup_element.ts @@ -1,5 +1,5 @@ import * as path from 'upath'; -import { Position } from 'vscode-languageserver/node'; +import { Position } from 'vscode-languageserver'; import { defineRename } from '../utils/defineRename'; const file = path.resolve(__dirname, '../../testCases/renames/scriptSetup_element.vue'); diff --git a/packages/vscode-vue-languageservice/tests/renames/typeProp.ts b/packages/vscode-vue-languageservice/tests/renames/typeProp.ts index 87e5b8fac..5e0e09683 100644 --- a/packages/vscode-vue-languageservice/tests/renames/typeProp.ts +++ b/packages/vscode-vue-languageservice/tests/renames/typeProp.ts @@ -1,5 +1,5 @@ import * as path from 'upath'; -import { Position } from 'vscode-languageserver/node'; +import { Position } from 'vscode-languageserver'; import { defineRename } from '../utils/defineRename'; const file_from = path.resolve(__dirname, '../../testCases/renames/typeProp_from.vue'); diff --git a/packages/vscode-vue-languageservice/tests/utils/defineRename.ts b/packages/vscode-vue-languageservice/tests/utils/defineRename.ts index f2a12b68b..fd7a2277a 100644 --- a/packages/vscode-vue-languageservice/tests/utils/defineRename.ts +++ b/packages/vscode-vue-languageservice/tests/utils/defineRename.ts @@ -1,4 +1,4 @@ -import type * as vscode from 'vscode-languageserver/node'; +import type * as vscode from 'vscode-languageserver'; import * as path from 'upath'; import { createTester } from './createTester'; import { TextDocument } from 'vscode-languageserver-textdocument'; diff --git a/packages/vscode-vue-languageservice/tests/utils/defineTypeCheck.ts b/packages/vscode-vue-languageservice/tests/utils/defineTypeCheck.ts index 1764125d3..d3d44b5cb 100644 --- a/packages/vscode-vue-languageservice/tests/utils/defineTypeCheck.ts +++ b/packages/vscode-vue-languageservice/tests/utils/defineTypeCheck.ts @@ -1,4 +1,4 @@ -import type * as vscode from 'vscode-languageserver/node'; +import type * as vscode from 'vscode-languageserver'; import * as path from 'upath'; import { createTester } from './createTester'; import { TextDocument } from 'vscode-languageserver-textdocument'; diff --git a/tsconfig.base.json b/tsconfig.base.json index b48e1f6e3..31c1db69e 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -2,7 +2,7 @@ "compilerOptions": { "target": "es2019", "lib": [ - "DOM", + "WebWorker", "ES2020" ], "module": "commonjs", @@ -12,6 +12,7 @@ "declaration": true, "strict": true, "resolveJsonModule": true, + "skipLibCheck": true, "baseUrl": "./", "paths": { "vscode-pug-languageservice": [ diff --git a/tsconfig.build.json b/tsconfig.build.json index 6cca1c13e..fa51c59c8 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -12,7 +12,7 @@ "path": "./packages/vue-tsc/tsconfig.build.json" }, { - "path": "./packages/experimental/tsconfig.build.json" + "path": "./packages/experimental/tsconfig.json" }, ] } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 6746479b3..a685fb593 100644 --- a/yarn.lock +++ b/yarn.lock @@ -516,6 +516,17 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@koa/router@^10.1.1": + version "10.1.1" + resolved "https://registry.yarnpkg.com/@koa/router/-/router-10.1.1.tgz#8e5a85c9b243e0bc776802c0de564561e57a5f78" + integrity sha512-ORNjq5z4EmQPriKbR0ER3k4Gh7YGNhWDL7JBW+8wXDrHLbWYKYSJaOJ9aN06npF5tbTxe2JBOsurpJDAvjiXKw== + dependencies: + debug "^4.1.1" + http-errors "^1.7.3" + koa-compose "^4.1.0" + methods "^1.1.2" + path-to-regexp "^6.1.0" + "@lerna/add@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@lerna/add/-/add-4.0.0.tgz#c36f57d132502a57b9e7058d1548b7a565ef183f" @@ -1692,6 +1703,13 @@ dependencies: "@types/yargs-parser" "*" +"@types/yauzl@^2.9.1": + version "2.9.2" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" + integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== + dependencies: + "@types/node" "*" + "@vitejs/plugin-vue@^1.9.3": version "1.9.3" resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.9.3.tgz#93d61893ce6c723d0209af0483ec8b91a2cd811f" @@ -1709,6 +1727,24 @@ vscode-nls "^5.0.0" vscode-uri "^2.1.2" +"@vscode/test-web@latest": + version "0.0.15" + resolved "https://registry.yarnpkg.com/@vscode/test-web/-/test-web-0.0.15.tgz#8caca6d902d5b9e18b8e0c4cc0f6a69d467dd39c" + integrity sha512-jYuDcoG66xXEnZnmrHuRkOdZj4BAk/BFzsqa8c/ASFP4Rkua6bCHIDUqii7sVOdmtf2YuTbI3nSqzmn4YvTUfw== + dependencies: + "@koa/router" "^10.1.1" + decompress "^4.2.1" + decompress-targz "^4.1.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + koa "^2.13.1" + koa-morgan "^1.0.1" + koa-mount "^4.0.0" + koa-static "^5.0.0" + minimist "^1.2.5" + playwright "1.14.1" + vscode-uri "^3.0.2" + "@vue/compiler-core@3.2.21", "@vue/compiler-core@^3.2.21": version "3.2.21" resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.21.tgz#26566c32b2ad838199d471ef5df620a83846f24e" @@ -1817,6 +1853,14 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +accepts@^1.3.5: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + acorn-globals@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" @@ -2120,6 +2164,18 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +basic-auth@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -2132,6 +2188,14 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== +bl@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + boxen@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb" @@ -2191,11 +2255,42 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer@^5.2.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" @@ -2235,6 +2330,14 @@ cacache@^15.0.5, cacache@^15.2.0: tar "^6.0.2" unique-filename "^1.1.1" +cache-content-type@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" + integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== + dependencies: + mime-types "^2.1.18" + ylru "^1.2.0" + cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -2506,6 +2609,16 @@ comma-separated-tokens@^1.0.7: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== +commander@^2.8.1: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + compare-func@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" @@ -2572,6 +2685,18 @@ constantinople@^4.0.1: "@babel/parser" "^7.6.0" "@babel/types" "^7.6.1" +content-disposition@~0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + conventional-changelog-angular@^5.0.12: version "5.0.13" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" @@ -2661,6 +2786,14 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" +cookies@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== + dependencies: + depd "~2.0.0" + keygrip "~1.1.0" + core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -2760,7 +2893,14 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -2809,11 +2949,69 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" + integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" + integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + +decompress-targz@^4.0.0, decompress-targz@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" + integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" + integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + +decompress@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" + integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= +deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -2880,16 +3078,26 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@^1.1.2: +depd@^1.1.2, depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +depd@^2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== +destroy@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -3006,6 +3214,11 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + electron-to-chromium@^1.3.830: version "1.3.843" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.843.tgz#671489bd2f59fd49b76adddc1aa02c88cd38a5c0" @@ -3034,6 +3247,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +encodeurl@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + encoding@^0.1.12: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" @@ -3041,7 +3259,7 @@ encoding@^0.1.12: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -3220,6 +3438,11 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escape-html@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -3326,6 +3549,17 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" +extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -3383,6 +3617,13 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -3390,6 +3631,21 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" +file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= + +file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" + integrity sha1-LdvqfHP/42No365J3DOMBYwritY= + +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" + integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -3450,6 +3706,16 @@ format@^0.2.0: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= +fresh@~0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -3542,6 +3808,14 @@ get-port@^5.1.1: resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -3704,7 +3978,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4: +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== @@ -3867,11 +4141,40 @@ htmlparser2@^7.1.2: domutils "^2.8.0" entities "^3.0.1" +http-assert@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f" + integrity sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w== + dependencies: + deep-equal "~1.0.1" + http-errors "~1.8.0" + http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== +http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" + integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" @@ -3924,6 +4227,11 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore-walk@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" @@ -3995,11 +4303,16 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -4167,6 +4480,13 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" @@ -4197,6 +4517,11 @@ is-lambda@^1.0.1: resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" + integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= + is-negative-zero@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" @@ -4811,6 +5136,11 @@ jest@latest: import-local "^3.0.2" jest-cli "^27.2.0" +jpeg-js@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b" + integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q== + js-stringify@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" @@ -4951,6 +5281,13 @@ jstransformer@1.0.0: is-promise "^2.0.0" promise "^7.0.1" +keygrip@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== + dependencies: + tsscmp "1.0.6" + keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -4968,6 +5305,80 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +koa-compose@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" + integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== + +koa-convert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-2.0.0.tgz#86a0c44d81d40551bae22fee6709904573eea4f5" + integrity sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA== + dependencies: + co "^4.6.0" + koa-compose "^4.1.0" + +koa-morgan@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/koa-morgan/-/koa-morgan-1.0.1.tgz#08052e0ce0d839d3c43178b90a5bb3424bef1f99" + integrity sha1-CAUuDODYOdPEMXi5CluzQkvvH5k= + dependencies: + morgan "^1.6.1" + +koa-mount@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/koa-mount/-/koa-mount-4.0.0.tgz#e0265e58198e1a14ef889514c607254ff386329c" + integrity sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ== + dependencies: + debug "^4.0.1" + koa-compose "^4.1.0" + +koa-send@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79" + integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== + dependencies: + debug "^4.1.1" + http-errors "^1.7.3" + resolve-path "^1.4.0" + +koa-static@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943" + integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ== + dependencies: + debug "^3.1.0" + koa-send "^5.0.0" + +koa@^2.13.1: + version "2.13.4" + resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.4.tgz#ee5b0cb39e0b8069c38d115139c774833d32462e" + integrity sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g== + dependencies: + accepts "^1.3.5" + cache-content-type "^1.0.0" + content-disposition "~0.5.2" + content-type "^1.0.4" + cookies "~0.8.0" + debug "^4.3.2" + delegates "^1.0.0" + depd "^2.0.0" + destroy "^1.0.4" + encodeurl "^1.0.2" + escape-html "^1.0.3" + fresh "~0.5.2" + http-assert "^1.3.0" + http-errors "^1.6.3" + is-generator-function "^1.0.7" + koa-compose "^4.1.0" + koa-convert "^2.0.0" + on-finished "^2.3.0" + only "~0.0.2" + parseurl "^1.3.2" + statuses "^1.5.0" + type-is "^1.6.16" + vary "^1.1.2" + latest-version@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" @@ -5248,6 +5659,11 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7" integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + meow@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" @@ -5307,6 +5723,11 @@ merge2@^1.2.3, merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +methods@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" @@ -5320,6 +5741,11 @@ mime-db@1.49.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@1.51.0: + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== + mime-types@^2.1.12, mime-types@~2.1.19: version "2.1.32" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" @@ -5327,6 +5753,18 @@ mime-types@^2.1.12, mime-types@~2.1.19: dependencies: mime-db "1.49.0" +mime-types@^2.1.18, mime-types@~2.1.24: + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + dependencies: + mime-db "1.51.0" + +mime@^2.4.6: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -5474,6 +5912,22 @@ modify-values@^1.0.0: resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== +morgan@^1.6.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== + dependencies: + basic-auth "~2.0.1" + debug "2.6.9" + depd "~2.0.0" + on-finished "~2.3.0" + on-headers "~1.0.2" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -5515,7 +5969,7 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@^0.6.2: +negotiator@0.6.2, negotiator@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== @@ -5764,7 +6218,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -5798,6 +6252,18 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.3" es-abstract "^1.18.0-next.2" +on-finished@^2.3.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -5812,6 +6278,11 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +only@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" + integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -6031,6 +6502,11 @@ parse5@6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== +parseurl@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -6041,7 +6517,7 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: +path-is-absolute@1.0.1, path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= @@ -6066,6 +6542,11 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-to-regexp@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.0.tgz#f7b3803336104c346889adece614669230645f38" + integrity sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg== + path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -6078,6 +6559,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -6113,6 +6599,18 @@ pify@^5.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" @@ -6127,6 +6625,31 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +playwright@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.14.1.tgz#73913d3044a85a58edf13148245279231072532e" + integrity sha512-JYNjhwWcfsBkg0FMGLbFO9e58FVdmICE4k97/glIQV7cBULL7oxNjRQC7Ffe+Y70XVNnP0HSJLaA0W5SukyftQ== + dependencies: + commander "^6.1.0" + debug "^4.1.1" + extract-zip "^2.0.1" + https-proxy-agent "^5.0.0" + jpeg-js "^0.4.2" + mime "^2.4.6" + pngjs "^5.0.0" + progress "^2.0.3" + proper-lockfile "^4.1.1" + proxy-from-env "^1.1.0" + rimraf "^3.0.2" + stack-utils "^2.0.3" + ws "^7.4.6" + yazl "^2.5.1" + +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== + postcss@^8.1.10: version "8.3.6" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" @@ -6175,6 +6698,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -6210,6 +6738,15 @@ promzard@^0.3.0: dependencies: read "1" +proper-lockfile@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" + integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== + dependencies: + graceful-fs "^4.2.4" + retry "^0.12.0" + signal-exit "^3.0.2" + property-information@^5.1.0: version "5.6.0" resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" @@ -6227,6 +6764,11 @@ protocols@^1.1.0, protocols@^1.4.0: resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -6519,7 +7061,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@~2.3.6: +readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -6644,6 +7186,14 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +resolve-path@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" + integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= + dependencies: + http-errors "~1.6.2" + path-is-absolute "1.0.1" + resolve@^1.10.0, resolve@^1.15.1, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" @@ -6722,16 +7272,16 @@ s.color@0.0.15: resolved "https://registry.yarnpkg.com/s.color/-/s.color-0.0.15.tgz#6b32cd22d8dba95703a5122ddede2020a1560186" integrity sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA== -safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -6752,6 +7302,13 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" +seek-bzip@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" + integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== + dependencies: + commander "^2.8.1" + semver-diff@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" @@ -6781,6 +7338,16 @@ set-blocking@~2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -7008,6 +7575,11 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -7135,6 +7707,13 @@ strip-bom@^4.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" + integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== + dependencies: + is-natural-number "^4.0.1" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -7226,6 +7805,19 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +tar-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + tar@^4.4.12: version "4.4.19" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" @@ -7316,7 +7908,7 @@ through2@^4.0.0: dependencies: readable-stream "3" -through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6: +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -7333,6 +7925,11 @@ tmpl@1.0.x: resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -7358,6 +7955,11 @@ to-vfile@7.1.0, to-vfile@^4.0.0, to-vfile@^6.0.0: is-buffer "^2.0.0" vfile "^5.0.0" +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + token-stream@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" @@ -7421,6 +8023,11 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tsscmp@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -7480,6 +8087,14 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-is@^1.6.16: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -7522,6 +8137,14 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" +unbzip2-stream@^1.0.9: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + unified-engine@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-6.0.1.tgz#22236f1d253a6d07b6605eca83a2bcce08fc6f05" @@ -7747,6 +8370,11 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" +vary@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -8242,3 +8870,23 @@ yargs@^16.0.3, yargs@^16.2.0: string-width "^4.2.0" y18n "^5.0.5" yargs-parser "^20.2.2" + +yauzl@^2.10.0, yauzl@^2.4.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yazl@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" + integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== + dependencies: + buffer-crc32 "~0.2.3" + +ylru@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" + integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==