diff --git a/ThirdPartyNotices.txt b/ThirdPartyNotices.txt index 83b9aa1..c63263d 100644 --- a/ThirdPartyNotices.txt +++ b/ThirdPartyNotices.txt @@ -5,26 +5,27 @@ This project incorporates components from the projects listed below. 1. @microsoft/fast-element version 1.12.0 (https://github.com/Microsoft/fast) 2. @microsoft/fast-react-wrapper version 0.3.19 (https://github.com/Microsoft/fast) -3. @octokit/core version 4.2.4 (https://github.com/octokit/core.js) -4. @opentelemetry/api version 1.6.0 (https://github.com/open-telemetry/opentelemetry-js) -5. @opentelemetry/exporter-trace-otlp-http version 0.43.0 (https://github.com/open-telemetry/opentelemetry-js) -6. @opentelemetry/sdk-trace-base version 1.17.0 (https://github.com/open-telemetry/opentelemetry-js) -7. @vscode/codicons version 0.0.33 (https://github.com/microsoft/vscode-codicons) -8. @vscode/webview-ui-toolkit version 1.2.2 (https://github.com/microsoft/vscode-webview-ui-toolkit) -9. ansi-regex version 6.0.1 (https://github.com/chalk/ansi-regex) -10. billboard.js version 3.9.4 (https://github.com/naver/billboard.js) -11. https-proxy-agent version 5.0.1 (https://github.com/TooTallNate/node-https-proxy-agent) -12. iconv-lite version 0.6.3 (https://github.com/ashtuchkin/iconv-lite) -13. lit version 2.8.0 (https://github.com/lit/lit) -14. microsoft/vscode (https://github.com/microsoft/vscode) -15. node-fetch version 2.7.0 (https://github.com/bitinn/node-fetch) -16. os-browserify version 0.3.0 (https://github.com/CoderPuppy/os-browserify) -17. path-browserify version 1.0.1 (https://github.com/browserify/path-browserify) -18. react-dom version 16.8.4 (https://github.com/facebook/react) -19. react version 16.8.4 (https://github.com/facebook/react) -20. sindresorhus/is-fullwidth-code-point (https://github.com/sindresorhus/is-fullwidth-code-point) -21. sindresorhus/string-width (https://github.com/sindresorhus/string-width) -22. sortablejs version 1.15.0 (https://github.com/SortableJS/Sortable) +3. @octokit/graphql version 7.0.2 (https://github.com/octokit/graphql.js) +4. @octokit/request version 8.1.2 (https://github.com/octokit/request.js) +5. @opentelemetry/api version 1.6.0 (https://github.com/open-telemetry/opentelemetry-js) +6. @opentelemetry/exporter-trace-otlp-http version 0.43.0 (https://github.com/open-telemetry/opentelemetry-js) +7. @opentelemetry/sdk-trace-base version 1.17.0 (https://github.com/open-telemetry/opentelemetry-js) +8. @vscode/codicons version 0.0.33 (https://github.com/microsoft/vscode-codicons) +9. @vscode/webview-ui-toolkit version 1.2.2 (https://github.com/microsoft/vscode-webview-ui-toolkit) +10. ansi-regex version 6.0.1 (https://github.com/chalk/ansi-regex) +11. billboard.js version 3.9.4 (https://github.com/naver/billboard.js) +12. https-proxy-agent version 5.0.1 (https://github.com/TooTallNate/node-https-proxy-agent) +13. iconv-lite version 0.6.3 (https://github.com/ashtuchkin/iconv-lite) +14. lit version 2.8.0 (https://github.com/lit/lit) +15. microsoft/vscode (https://github.com/microsoft/vscode) +16. node-fetch version 2.7.0 (https://github.com/bitinn/node-fetch) +17. os-browserify version 0.3.0 (https://github.com/CoderPuppy/os-browserify) +18. path-browserify version 1.0.1 (https://github.com/browserify/path-browserify) +19. react-dom version 16.8.4 (https://github.com/facebook/react) +20. react version 16.8.4 (https://github.com/facebook/react) +21. sindresorhus/is-fullwidth-code-point (https://github.com/sindresorhus/is-fullwidth-code-point) +22. sindresorhus/string-width (https://github.com/sindresorhus/string-width) +23. sortablejs version 1.15.0 (https://github.com/SortableJS/Sortable) %% @microsoft/fast-element NOTICES AND INFORMATION BEGIN HERE ========================================= @@ -131,11 +132,11 @@ For additional wrapper settings and more information on integrating with Design ========================================= END OF @microsoft/fast-react-wrapper NOTICES AND INFORMATION -%% @octokit/core NOTICES AND INFORMATION BEGIN HERE +%% @octokit/graphql NOTICES AND INFORMATION BEGIN HERE ========================================= The MIT License -Copyright (c) 2019 Octokit contributors +Copyright (c) 2018 Octokit contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -156,7 +157,34 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ========================================= -END OF @octokit/core NOTICES AND INFORMATION +END OF @octokit/graphql NOTICES AND INFORMATION + +%% @octokit/request NOTICES AND INFORMATION BEGIN HERE +========================================= +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +========================================= +END OF @octokit/request NOTICES AND INFORMATION %% @opentelemetry/api NOTICES AND INFORMATION BEGIN HERE ========================================= diff --git a/package.json b/package.json index 017c5bd..03e3ee8 100644 --- a/package.json +++ b/package.json @@ -14792,7 +14792,8 @@ "@gitkraken/shared-web-components": "^0.1.1-rc.6", "@microsoft/fast-element": "1.12.0", "@microsoft/fast-react-wrapper": "0.3.19", - "@octokit/core": "4.2.4", + "@octokit/graphql": "7.0.2", + "@octokit/request": "8.1.2", "@opentelemetry/api": "1.6.0", "@opentelemetry/exporter-trace-otlp-http": "0.43.0", "@opentelemetry/sdk-trace-base": "1.17.0", @@ -14817,8 +14818,8 @@ "@types/react-dom": "17.0.17", "@types/sortablejs": "1.15.2", "@types/vscode": "1.80.0", - "@typescript-eslint/eslint-plugin": "6.7.2", - "@typescript-eslint/parser": "6.7.2", + "@typescript-eslint/eslint-plugin": "6.7.3", + "@typescript-eslint/parser": "6.7.3", "@vscode/test-electron": "2.3.4", "@vscode/test-web": "0.0.45", "@vscode/vsce": "2.21.0", @@ -14833,33 +14834,33 @@ "esbuild": "0.19.3", "esbuild-loader": "4.0.2", "esbuild-sass-plugin": "2.15.0", - "eslint": "8.49.0", + "eslint": "8.50.0", "eslint-cli": "1.1.1", "eslint-config-prettier": "9.0.0", - "eslint-import-resolver-typescript": "3.6.0", + "eslint-import-resolver-typescript": "3.6.1", "eslint-plugin-anti-trojan-source": "1.1.1", "eslint-plugin-import": "2.28.1", "eslint-plugin-lit": "1.9.1", - "eslint-plugin-wc": "2.0.2", + "eslint-plugin-wc": "2.0.4", "fantasticon": "1.2.3", "fork-ts-checker-webpack-plugin": "6.5.3", - "glob": "10.3.4", + "glob": "10.3.7", "html-loader": "4.2.0", "html-webpack-plugin": "5.5.3", "image-minimizer-webpack-plugin": "3.8.3", - "license-checker-rseidelsohn": "4.2.7", + "license-checker-rseidelsohn": "4.2.8", "lz-string": "1.5.0", "mini-css-extract-plugin": "2.7.6", "mocha": "10.2.0", "prettier": "3.0.3", - "sass": "1.67.0", + "sass": "1.68.0", "sass-loader": "13.3.2", "schema-utils": "4.2.0", - "sharp": "0.32.5", + "sharp": "0.32.6", "svgo": "3.0.2", "terser-webpack-plugin": "5.3.9", "ts-loader": "9.4.4", - "tsc-alias": "1.8.7", + "tsc-alias": "1.8.8", "typescript": "5.2.2", "webpack": "5.88.2", "webpack-bundle-analyzer": "4.9.1", diff --git a/src/plus/github/github.ts b/src/plus/github/github.ts index 0e9edc0..f981ce4 100644 --- a/src/plus/github/github.ts +++ b/src/plus/github/github.ts @@ -1,9 +1,9 @@ -import { Octokit } from '@octokit/core'; -import { GraphqlResponseError } from '@octokit/graphql'; +import { graphql, GraphqlResponseError } from '@octokit/graphql'; +import { request } from '@octokit/request'; import { RequestError } from '@octokit/request-error'; import type { Endpoints, OctokitResponse, RequestParameters } from '@octokit/types'; import type { HttpsProxyAgent } from 'https-proxy-agent'; -import type { Disposable, Event } from 'vscode'; +import type { CancellationToken, Disposable, Event } from 'vscode'; import { EventEmitter, Uri, window } from 'vscode'; import { fetch, getProxyAgent, wrapForForcedInsecureSSL } from '@env/fetch'; import { isWeb } from '@env/platform'; @@ -12,6 +12,7 @@ import type { Container } from '../../container'; import { AuthenticationError, AuthenticationErrorReason, + CancellationError, ProviderRequestClientError, ProviderRequestNotFoundError, ProviderRequestRateLimitError, @@ -201,7 +202,7 @@ export class GitHubApi implements Disposable { private resetCaches(): void { this._proxyAgent = null; - this._octokits.clear(); + this._defaults.clear(); this._enterpriseVersions.clear(); } @@ -648,6 +649,7 @@ export class GitHubApi implements Disposable { baseUrl?: string; avatarSize?: number; }, + cancellation?: CancellationToken, ): Promise { const scope = getLogScope(); @@ -712,6 +714,7 @@ export class GitHubApi implements Disposable { ref: ref, }, scope, + cancellation, ); // If the pr is not from a fork, keep it e.g. show root pr's on forks, otherwise, ensure the repo owners match @@ -746,6 +749,7 @@ export class GitHubApi implements Disposable { options?: { baseUrl?: string; }, + cancellation?: CancellationToken, ): Promise { const scope = getLogScope(); @@ -799,6 +803,7 @@ export class GitHubApi implements Disposable { repo: repo, }, scope, + cancellation, ); const r = rsp?.repository ?? undefined; @@ -2203,66 +2208,30 @@ export class GitHubApi implements Disposable { return version ?? undefined; } - private _octokits = new Map(); - private octokit(token: string, options?: ConstructorParameters[0]): Octokit { - let octokit = this._octokits.get(token); - if (octokit == null) { - let defaults; - if (isWeb) { - function fetchCore(url: string, options: { headers?: Record }) { - if (options.headers != null) { - // Strip out the user-agent (since it causes warnings in a webworker) - const { 'user-agent': userAgent, ...headers } = options.headers; - if (userAgent) { - options.headers = headers; - } - } - return fetch(url, options); - } - - defaults = Octokit.defaults({ - auth: `token ${token}`, - request: { fetch: fetchCore }, - }); - } else { - defaults = Octokit.defaults({ auth: `token ${token}`, request: { agent: this.proxyAgent } }); - } - - octokit = new defaults(options); - this._octokits.set(token, octokit); - - if (Logger.logLevel === LogLevel.Debug || Logger.isDebugging) { - octokit.hook.wrap('request', async (request, options) => { - const sw = maybeStopWatch(`[GITHUB] ${options.method} ${options.url}`, { log: false }); - try { - return await request(options); - } finally { - let message; - try { - if (typeof options.query === 'string') { - const match = /(^[^({\n]+)/.exec(options.query); - message = ` ${match?.[1].trim() ?? options.query}`; - } - } catch {} - sw?.stop({ message: message }); - } - }); - } - } - - return octokit; - } - private async graphql( provider: RichRemoteProvider | undefined, token: string, query: string, - variables: Record, + variables: RequestParameters, scope: LogScope | undefined, + cancellation?: CancellationToken | undefined, ): Promise { try { + let aborter: AbortController | undefined; + if (cancellation != null) { + if (cancellation.isCancellationRequested) throw new CancellationError(); + + aborter = new AbortController(); + cancellation.onCancellationRequested(() => aborter!.abort()); + + variables = { + ...variables, + request: { ...variables?.request, signal: aborter.signal }, + }; + } + return await wrapForForcedInsecureSSL(provider?.getIgnoreSSLErrors() ?? false, () => - this.octokit(token).graphql(query, variables), + this.getDefaults(token, graphql)(query, variables), ); } catch (ex) { if (ex instanceof GraphqlResponseError) { @@ -2289,7 +2258,7 @@ export class GitHubApi implements Disposable { if (Logger.isDebugging) { void window.showErrorMessage(`GitHub request failed: ${ex.errors?.[0]?.message ?? ex.message}`); } - } else if (ex instanceof RequestError) { + } else if (ex instanceof RequestError || ex.name === 'AbortError') { this.handleRequestError(provider, token, ex, scope); } else if (Logger.isDebugging) { void window.showErrorMessage(`GitHub request failed: ${ex.message}`); @@ -2307,13 +2276,30 @@ export class GitHubApi implements Disposable { | (R extends keyof Endpoints ? Endpoints[R]['parameters'] & RequestParameters : RequestParameters) | undefined, scope: LogScope | undefined, - ): Promise> { + cancellation?: CancellationToken | undefined, + ): Promise> { try { - return (await wrapForForcedInsecureSSL(provider?.getIgnoreSSLErrors() ?? false, () => - this.octokit(token).request(route, options), - )) as R extends keyof Endpoints ? Endpoints[R]['response'] : OctokitResponse; + let aborter: AbortController | undefined; + if (cancellation != null) { + if (cancellation.isCancellationRequested) throw new CancellationError(); + + aborter = new AbortController(); + cancellation.onCancellationRequested(() => aborter!.abort()); + options = { + ...options, + request: { ...options?.request, signal: aborter.signal }, + } as unknown as typeof options; + } + + return await wrapForForcedInsecureSSL( + provider?.getIgnoreSSLErrors() ?? false, + () => + this.getDefaults(token, request)(route, options) as unknown as Promise< + R extends keyof Endpoints ? Endpoints[R]['response'] : OctokitResponse + >, + ); } catch (ex) { - if (ex instanceof RequestError) { + if (ex instanceof RequestError || ex.name === 'AbortError') { this.handleRequestError(provider, token, ex, scope); } else if (Logger.isDebugging) { void window.showErrorMessage(`GitHub request failed: ${ex.message}`); @@ -2323,12 +2309,75 @@ export class GitHubApi implements Disposable { } } + private _defaults = new Map>(); + private getDefaults(token: string, rqst: typeof request): typeof request; + private getDefaults(token: string, gql: typeof graphql): typeof graphql; + private getDefaults( + token: string, + requestOrGraphQL: typeof request | typeof graphql, + ): typeof request | typeof graphql { + let map = this._defaults.get(requestOrGraphQL); + if (map == null) { + map = new Map(); + this._defaults.set(requestOrGraphQL, map); + } + + let defaults = map.get(token); + if (defaults == null) { + defaults = requestOrGraphQL.defaults({ + headers: { + authorization: `token ${token}`, + }, + request: { + agent: this.proxyAgent, + fetch: isWeb + ? (url: string, options: { headers?: Record }) => { + if (options.headers != null) { + // Strip out the user-agent (since it causes warnings in a webworker) + const { 'user-agent': userAgent, ...headers } = options.headers; + if (userAgent) { + options.headers = headers; + } + } + return fetch(url, options); + } + : fetch, + hook: + Logger.logLevel === LogLevel.Debug || Logger.isDebugging + ? async (rqst: typeof request, options: any) => { + const sw = maybeStopWatch(`[GITHUB] ${options.method} ${options.url}`, { + log: false, + }); + try { + return await rqst(options); + } finally { + let message; + try { + if (typeof options.query === 'string') { + const match = /(^[^({\n]+)/.exec(options.query); + message = ` ${match?.[1].trim() ?? options.query}`; + } + } catch {} + sw?.stop({ message: message }); + } + } + : undefined, + }, + }); + map.set(token, defaults); + } + + return defaults; + } + private handleRequestError( provider: RichRemoteProvider | undefined, token: string, - ex: RequestError, + ex: RequestError | (Error & { name: 'AbortError' }), scope: LogScope | undefined, ): void { + if (ex.name === 'AbortError') throw new CancellationError(); + switch (ex.status) { case 404: // Not found case 410: // Gone @@ -2409,7 +2458,7 @@ export class GitHubApi implements Disposable { if (result === confirm) { await provider?.reauthenticate(); - + this.resetCaches(); this._onDidReauthenticate.fire(); } } else { diff --git a/src/plus/gitlab/gitlab.ts b/src/plus/gitlab/gitlab.ts index a529fa6..1ec3d79 100644 --- a/src/plus/gitlab/gitlab.ts +++ b/src/plus/gitlab/gitlab.ts @@ -1,5 +1,5 @@ import type { HttpsProxyAgent } from 'https-proxy-agent'; -import type { Disposable } from 'vscode'; +import type { CancellationToken, Disposable } from 'vscode'; import { Uri, window } from 'vscode'; import type { RequestInit, Response } from '@env/fetch'; import { fetch, getProxyAgent, wrapForForcedInsecureSSL } from '@env/fetch'; @@ -9,6 +9,7 @@ import type { Container } from '../../container'; import { AuthenticationError, AuthenticationErrorReason, + CancellationError, ProviderFetchError, ProviderRequestClientError, ProviderRequestNotFoundError, @@ -91,10 +92,11 @@ export class GitLabApi implements Disposable { baseUrl?: string; avatarSize?: number; }, + cancellation?: CancellationToken, ): Promise { const scope = getLogScope(); - const projectId = await this.getProjectId(provider, token, owner, repo, options?.baseUrl); + const projectId = await this.getProjectId(provider, token, owner, repo, options?.baseUrl, cancellation); if (!projectId) return undefined; try { @@ -107,6 +109,7 @@ export class GitLabApi implements Disposable { method: 'GET', // ...options, }, + cancellation, scope, ); @@ -185,6 +188,7 @@ export class GitLabApi implements Disposable { options?: { baseUrl?: string; }, + cancellation?: CancellationToken, ): Promise { const scope = getLogScope(); @@ -217,6 +221,7 @@ export class GitLabApi implements Disposable { { fullPath: `${owner}/${repo}`, }, + cancellation, scope, ); @@ -244,6 +249,7 @@ export class GitLabApi implements Disposable { options?: { baseUrl?: string; }, + cancellation?: CancellationToken, ): Promise { const scope = getLogScope(); @@ -304,6 +310,7 @@ export class GitLabApi implements Disposable { fullPath: `${owner}/${repo}`, iid: String(number), }, + cancellation, scope, ); @@ -356,6 +363,7 @@ export class GitLabApi implements Disposable { avatarSize?: number; include?: GitLabMergeRequestState[]; }, + cancellation?: CancellationToken, ): Promise { const scope = getLogScope(); @@ -442,6 +450,7 @@ export class GitLabApi implements Disposable { branches: [branch], state: options?.include, }, + cancellation, scope, ); @@ -502,16 +511,16 @@ export class GitLabApi implements Disposable { baseUrl?: string; avatarSize?: number; }, + cancellation?: CancellationToken, ): Promise { const scope = getLogScope(); - const projectId = await this.getProjectId(provider, token, owner, repo, options?.baseUrl); + const projectId = await this.getProjectId(provider, token, owner, repo, options?.baseUrl, cancellation); if (!projectId) return undefined; try { const mrs = await this.request( provider, - token, options?.baseUrl, `v4/projects/${projectId}/repository/commits/${ref}/merge_requests`, @@ -519,6 +528,7 @@ export class GitLabApi implements Disposable { method: 'GET', // ...options, }, + cancellation, scope, ); if (mrs == null || mrs.length === 0) return undefined; @@ -549,16 +559,16 @@ export class GitLabApi implements Disposable { options?: { baseUrl?: string; }, + cancellation?: CancellationToken, ): Promise { const scope = getLogScope(); - const projectId = await this.getProjectId(provider, token, owner, repo, options?.baseUrl); + const projectId = await this.getProjectId(provider, token, owner, repo, options?.baseUrl, cancellation); if (!projectId) return undefined; try { const proj = await this.request( provider, - token, options?.baseUrl, `v4/projects/${projectId}`, @@ -566,6 +576,7 @@ export class GitLabApi implements Disposable { method: 'GET', // ...options, }, + cancellation, scope, ); if (proj == null) return undefined; @@ -598,6 +609,7 @@ export class GitLabApi implements Disposable { baseUrl?: string; avatarSize?: number; }, + cancellation?: CancellationToken, ): Promise { const scope = getLogScope(); @@ -641,6 +653,7 @@ $search: String! { search: search, }, + cancellation, scope, ); @@ -678,13 +691,14 @@ $search: String! token: string, group: string, repo: string, - baseUrl?: string, + baseUrl: string | undefined, + cancellation: CancellationToken | undefined, ): Promise { const key = `${token}|${group}/${repo}`; let projectId = this._projectIds.get(key); if (projectId == null) { - projectId = this.getProjectIdCore(provider, token, group, repo, baseUrl); + projectId = this.getProjectIdCore(provider, token, group, repo, baseUrl, cancellation); this._projectIds.set(key, projectId); } @@ -696,7 +710,8 @@ $search: String! token: string, group: string, repo: string, - baseUrl?: string, + baseUrl: string | undefined, + cancellation: CancellationToken | undefined, ): Promise { const scope = getLogScope(); @@ -720,6 +735,7 @@ $search: String! { fullPath: `${group}/${repo}`, }, + cancellation, scope, ); @@ -747,6 +763,7 @@ $search: String! baseUrl: string | undefined, query: string, variables: Record, + cancellation: CancellationToken | undefined, scope: LogScope | undefined, ): Promise { let rsp: Response; @@ -755,11 +772,20 @@ $search: String! const agent = this.getProxyAgent(provider); try { + let aborter: AbortController | undefined; + if (cancellation != null) { + if (cancellation.isCancellationRequested) throw new CancellationError(); + + aborter = new AbortController(); + cancellation.onCancellationRequested(() => aborter!.abort()); + } + rsp = await wrapForForcedInsecureSSL(provider.getIgnoreSSLErrors(), () => fetch(`${baseUrl ?? 'https://gitlab.com/api'}/graphql`, { method: 'POST', headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, agent: agent, + signal: aborter?.signal, body: JSON.stringify({ query: query, variables: variables }), }), ); @@ -779,7 +805,7 @@ $search: String! sw?.stop({ message: message }); } } catch (ex) { - if (ex instanceof ProviderFetchError) { + if (ex instanceof ProviderFetchError || ex.name === 'AbortError') { this.handleRequestError(provider, token, ex, scope); } else if (Logger.isDebugging) { void window.showErrorMessage(`GitLab request failed: ${ex.message}`); @@ -795,6 +821,7 @@ $search: String! baseUrl: string | undefined, route: string, options: { method: RequestInit['method'] } & Record, + cancellation: CancellationToken | undefined, scope: LogScope | undefined, ): Promise { const url = `${baseUrl ?? 'https://gitlab.com/api'}/${route}`; @@ -805,10 +832,19 @@ $search: String! const agent = this.getProxyAgent(provider); try { + let aborter: AbortController | undefined; + if (cancellation != null) { + if (cancellation.isCancellationRequested) throw new CancellationError(); + + aborter = new AbortController(); + cancellation.onCancellationRequested(() => aborter!.abort()); + } + rsp = await wrapForForcedInsecureSSL(provider.getIgnoreSSLErrors(), () => fetch(url, { headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, agent: agent, + signal: aborter?.signal, ...options, }), ); @@ -823,7 +859,7 @@ $search: String! sw?.stop(); } } catch (ex) { - if (ex instanceof ProviderFetchError) { + if (ex instanceof ProviderFetchError || ex.name === 'AbortError') { this.handleRequestError(provider, token, ex, scope); } else if (Logger.isDebugging) { void window.showErrorMessage(`GitLab request failed: ${ex.message}`); @@ -836,9 +872,11 @@ $search: String! private handleRequestError( provider: RichRemoteProvider | undefined, token: string, - ex: ProviderFetchError, + ex: ProviderFetchError | (Error & { name: 'AbortError' }), scope: LogScope | undefined, ): void { + if (ex.name === 'AbortError' || !(ex instanceof ProviderFetchError)) throw new CancellationError(); + switch (ex.status) { case 404: // Not found case 410: // Gone @@ -919,6 +957,7 @@ $search: String! if (result === confirm) { await provider.reauthenticate(); + this.resetCaches(); } } else { void window.showErrorMessage(ex.message); diff --git a/yarn.lock b/yarn.lock index fd6f267..3dca34d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42,17 +42,17 @@ js-tokens "^4.0.0" "@babel/runtime-corejs2@^7.0.0": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.22.15.tgz#3f1de780aabb51ca9bfdc857f541eb8a2a8356fd" - integrity sha512-CcAMW2o5uqgeXIXYYPrgmaYj1HOLvQb2DrBi7+bELD4nUVSKk+Sth+yYuGqSRf+aAiOv3sIZJTUiJBhoASJRLg== + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.23.1.tgz#f3a25c24d455be4e0309a56e56f0d2ef1a91c567" + integrity sha512-eY39r8IIgbcDfILJqsflwMImjccvK3QdgBRKo5v6lDPd5SiAsyfl3SJuAYWJ5hgbz7kfQmZ9ueirnhq0e9176Q== dependencies: core-js "^2.6.12" regenerator-runtime "^0.14.0" "@babel/runtime@^7.1.2", "@babel/runtime@^7.21.0", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8" - integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA== + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" + integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== dependencies: regenerator-runtime "^0.14.0" @@ -198,10 +198,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.49.0": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.49.0.tgz#86f79756004a97fa4df866835093f1df3d03c333" - integrity sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w== +"@eslint/js@8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.50.0.tgz#9e93b850f0f3fa35f5fa59adfd03adae8488e484" + integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== "@floating-ui/core@^1.4.2": version "1.5.0" @@ -430,74 +430,55 @@ dependencies: semver "^7.3.5" -"@octokit/auth-token@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" - integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== - -"@octokit/core@4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" - integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== - dependencies: - "@octokit/auth-token" "^3.0.0" - "@octokit/graphql" "^5.0.0" - "@octokit/request" "^6.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^7.0.0": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" - integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== +"@octokit/endpoint@^9.0.0": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.1.tgz#c3f69d27accddcb04a3199fcef541804288149d2" + integrity sha512-hRlOKAovtINHQPYHZlfyFwaM8OyetxeoC81lAkBy34uLb8exrZB50SQdeW3EROqiY9G9yxQTpp5OHTV54QD+vA== dependencies: - "@octokit/types" "^9.0.0" + "@octokit/types" "^12.0.0" is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^5.0.0": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248" - integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== +"@octokit/graphql@7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.0.2.tgz#3df14b9968192f9060d94ed9e3aa9780a76e7f99" + integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q== dependencies: - "@octokit/request" "^6.0.0" - "@octokit/types" "^9.0.0" + "@octokit/request" "^8.0.1" + "@octokit/types" "^12.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69" - integrity sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw== +"@octokit/openapi-types@^19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-19.0.0.tgz#0101bf62ab14c1946149a0f8385440963e1253c4" + integrity sha512-PclQ6JGMTE9iUStpzMkwLCISFn/wDeRjkZFIKALpvJQNBGwDoYYi2fFvuHwssoQ1rXI5mfh6jgTgWuddeUzfWw== -"@octokit/request-error@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" - integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== +"@octokit/request-error@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.0.1.tgz#277e3ce3b540b41525e07ba24c5ef5e868a72db9" + integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ== dependencies: - "@octokit/types" "^9.0.0" + "@octokit/types" "^12.0.0" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^6.0.0": - version "6.2.8" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" - integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== +"@octokit/request@8.1.2", "@octokit/request@^8.0.1": + version "8.1.2" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.1.2.tgz#26763e2001da1c98fa89c7df4d6414246bb1564b" + integrity sha512-A0RJJfzjlZQwb+39eDm5UM23dkxbp28WEG4p2ueH+Q2yY4p349aRK/vcUlEuIB//ggcrHJceoYYkBP/LYCoXEg== dependencies: - "@octokit/endpoint" "^7.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" + "@octokit/endpoint" "^9.0.0" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" is-plain-object "^5.0.0" - node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/types@^9.0.0": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" - integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== +"@octokit/types@^12.0.0": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.0.0.tgz#6b34309288b6f5ac9761d2589e3165cde1b95fee" + integrity sha512-EzD434aHTFifGudYAygnFlS1Tl6KhbTynEWELQXIbTY8Msvb5nEqTZIm7sbPEt4mQYLZwu3zPKVdeIrw0g7ovg== dependencies: - "@octokit/openapi-types" "^18.0.0" + "@octokit/openapi-types" "^19.0.0" "@opentelemetry/api-logs@0.43.0": version "0.43.0" @@ -618,37 +599,37 @@ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@types/d3-selection@*", "@types/d3-selection@^3.0.5": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.6.tgz#c35b5320188e921d10f77f50198705a14b8aecf6" - integrity sha512-2ACr96USZVjXR9KMD9IWi1Epo4rSDKnUtYn6q2SPhYxykvXTw9vR77lkFNruXVg4i1tzQtBxeDMx0oNvJWbF1w== + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.7.tgz#c710b42de8dfa9f8927a3ed99c38ec3ce682bb8b" + integrity sha512-qoj2O7KjfqCobmtFOth8FMvjwMVPUAAmn6xiUbLl1ld7vQCPgffvyV5BBcEFfqWdilAUm+3zciU/3P3vZrUMlg== "@types/d3-transition@^3.0.3": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.4.tgz#1515cd38bdc6d84103d7b6ccb25acdb72b5dd095" - integrity sha512-512a4uCOjUzsebydItSXsHrPeQblCVk8IKjqCUmrlvBWkkVh3donTTxmURDo1YPwIVDh5YVwCAO6gR4sgimCPQ== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.5.tgz#354e8c60650c76c2249cd7b99055b344672c71aa" + integrity sha512-dcfjP6prFxj3ziFOJrnt4W2P0oXNj/sGxsJXH8286sHtVZ4qWGbjuZj+RRCYx4YZ4C0izpeE8OqXVCtoWEtzYg== dependencies: "@types/d3-selection" "*" "@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + version "3.7.5" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.5.tgz#e28b09dbb1d9d35fdfa8a884225f00440dfc5a3e" + integrity sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.44.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a" - integrity sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg== + version "8.44.3" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.3.tgz#96614fae4875ea6328f56de38666f582d911d962" + integrity sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g== dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*", "@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" + integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== "@types/glob@^7.1.1": version "7.2.0" @@ -708,9 +689,9 @@ integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== "@types/node@*": - version "20.6.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.2.tgz#a065925409f59657022e9063275cd0b9bd7e1b12" - integrity sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw== + version "20.6.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.5.tgz#4c6a79adf59a8e8193ac87a0e522605b16587258" + integrity sha512-2qGq5LAOTh9izcc0+F+dToFigBWiK1phKPt7rNhOqJSr35y8rlIBjDwGtFSgAI6MGIhjwOVNSQZVdJsZJ2uR1w== "@types/node@16.11.47": version "16.11.47" @@ -718,9 +699,9 @@ integrity sha512-fpP+jk2zJ4VW66+wAMFoBJlx1bxmBKx4DUFf68UHgdGCOuyUTDlLWqsaNPJh7xhNDykyJ9eIzAygilP/4WoN8g== "@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "2.4.2" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.2.tgz#9b0e3e8533fe5024ad32d6637eb9589988b6fdca" + integrity sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A== "@types/parse-json@^4.0.0": version "4.0.0" @@ -728,9 +709,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prop-types@*": - version "15.7.6" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.6.tgz#bbf819813d6be21011b8f5801058498bec555572" - integrity sha512-RK/kBbYOQQHLYj9Z95eh7S6t7gq4Ojt/NT8HTk8bWVhA5DaF+5SMnxHKkP4gPNN3wAZkKP+VjAf0ebtYzf+fxg== + version "15.7.7" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.7.tgz#f9361f7b87fd5d8188b2c998db0a1f47e9fb391a" + integrity sha512-FbtmBWCcSa2J4zL781Zf1p5YUBXQomPEcep9QZCfRfQgTxz3pJWiDFLebohZ9fFntX5ibzOkSsrJ0TEew8cAog== "@types/react-dom@17.0.17": version "17.0.17" @@ -758,14 +739,14 @@ csstype "^3.0.2" "@types/scheduler@*": - version "0.16.3" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" - integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + version "0.16.4" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.4.tgz#fedc3e5b15c26dc18faae96bf1317487cb3658cf" + integrity sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ== "@types/semver@^7.5.0": - version "7.5.2" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.2.tgz#31f6eec1ed7ec23f4f05608d3a2d381df041f564" - integrity sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw== + version "7.5.3" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04" + integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw== "@types/sortablejs@1.15.2": version "1.15.2" @@ -783,27 +764,27 @@ integrity sha512-qK/CmOdS2o7ry3k6YqU4zD3R2AYlJfbwBoSbKpBoP+GpXNE+0NEgJOli4n0bm0diK5kfBnchgCEj4igQz/44Hg== "@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + version "21.0.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.1.tgz#07773d7160494d56aa882d7531aac7319ea67c3b" + integrity sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ== "@types/yargs@^17.0.8": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + version "17.0.25" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.25.tgz#3edd102803c97356fb4c805b2bbaf7dfc9ab6abc" + integrity sha512-gy7iPgwnzNvxgAEi2bXOHWCVOG6f7xsprVJH4MjlAWeBmJ7vh/Y1kwMtUrs64ztf24zVIRCpr3n/z6gm9QIkgg== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.2.tgz#f18cc75c9cceac8080a9dc2e7d166008c5207b9f" - integrity sha512-ooaHxlmSgZTM6CHYAFRlifqh1OAr3PAQEwi7lhYhaegbnXrnh7CDcHmc3+ihhbQC7H0i4JF0psI5ehzkF6Yl6Q== +"@typescript-eslint/eslint-plugin@6.7.3": + version "6.7.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.3.tgz#d98046e9f7102d49a93d944d413c6055c47fafd7" + integrity sha512-vntq452UHNltxsaaN+L9WyuMch8bMd9CqJ3zhzTPXXidwbf5mqqKCVXEuvRZUqLJSTLeWE65lQwyXsRGnXkCTA== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.7.2" - "@typescript-eslint/type-utils" "6.7.2" - "@typescript-eslint/utils" "6.7.2" - "@typescript-eslint/visitor-keys" "6.7.2" + "@typescript-eslint/scope-manager" "6.7.3" + "@typescript-eslint/type-utils" "6.7.3" + "@typescript-eslint/utils" "6.7.3" + "@typescript-eslint/visitor-keys" "6.7.3" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -811,72 +792,72 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.2.tgz#e0ae93771441b9518e67d0660c79e3a105497af4" - integrity sha512-KA3E4ox0ws+SPyxQf9iSI25R6b4Ne78ORhNHeVKrPQnoYsb9UhieoiRoJgrzgEeKGOXhcY1i8YtOeCHHTDa6Fw== +"@typescript-eslint/parser@6.7.3": + version "6.7.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.3.tgz#aaf40092a32877439e5957e18f2d6a91c82cc2fd" + integrity sha512-TlutE+iep2o7R8Lf+yoer3zU6/0EAUc8QIBB3GYBc1KGz4c4TRm83xwXUZVPlZ6YCLss4r77jbu6j3sendJoiQ== dependencies: - "@typescript-eslint/scope-manager" "6.7.2" - "@typescript-eslint/types" "6.7.2" - "@typescript-eslint/typescript-estree" "6.7.2" - "@typescript-eslint/visitor-keys" "6.7.2" + "@typescript-eslint/scope-manager" "6.7.3" + "@typescript-eslint/types" "6.7.3" + "@typescript-eslint/typescript-estree" "6.7.3" + "@typescript-eslint/visitor-keys" "6.7.3" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.2.tgz#cf59a2095d2f894770c94be489648ad1c78dc689" - integrity sha512-bgi6plgyZjEqapr7u2mhxGR6E8WCzKNUFWNh6fkpVe9+yzRZeYtDTbsIBzKbcxI+r1qVWt6VIoMSNZ4r2A+6Yw== +"@typescript-eslint/scope-manager@6.7.3": + version "6.7.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz#07e5709c9bdae3eaf216947433ef97b3b8b7d755" + integrity sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ== dependencies: - "@typescript-eslint/types" "6.7.2" - "@typescript-eslint/visitor-keys" "6.7.2" + "@typescript-eslint/types" "6.7.3" + "@typescript-eslint/visitor-keys" "6.7.3" -"@typescript-eslint/type-utils@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.2.tgz#ed921c9db87d72fa2939fee242d700561454f367" - integrity sha512-36F4fOYIROYRl0qj95dYKx6kybddLtsbmPIYNK0OBeXv2j9L5nZ17j9jmfy+bIDHKQgn2EZX+cofsqi8NPATBQ== +"@typescript-eslint/type-utils@6.7.3": + version "6.7.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.3.tgz#c2c165c135dda68a5e70074ade183f5ad68f3400" + integrity sha512-Fc68K0aTDrKIBvLnKTZ5Pf3MXK495YErrbHb1R6aTpfK5OdSFj0rVN7ib6Tx6ePrZ2gsjLqr0s98NG7l96KSQw== dependencies: - "@typescript-eslint/typescript-estree" "6.7.2" - "@typescript-eslint/utils" "6.7.2" + "@typescript-eslint/typescript-estree" "6.7.3" + "@typescript-eslint/utils" "6.7.3" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.2.tgz#75a615a6dbeca09cafd102fe7f465da1d8a3c066" - integrity sha512-flJYwMYgnUNDAN9/GAI3l8+wTmvTYdv64fcH8aoJK76Y+1FCZ08RtI5zDerM/FYT5DMkAc+19E4aLmd5KqdFyg== +"@typescript-eslint/types@6.7.3": + version "6.7.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.3.tgz#0402b5628a63f24f2dc9d4a678e9a92cc50ea3e9" + integrity sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw== -"@typescript-eslint/typescript-estree@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.2.tgz#ce5883c23b581a5caf878af641e49dd0349238c7" - integrity sha512-kiJKVMLkoSciGyFU0TOY0fRxnp9qq1AzVOHNeN1+B9erKFCJ4Z8WdjAkKQPP+b1pWStGFqezMLltxO+308dJTQ== +"@typescript-eslint/typescript-estree@6.7.3": + version "6.7.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.3.tgz#ec5bb7ab4d3566818abaf0e4a8fa1958561b7279" + integrity sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g== dependencies: - "@typescript-eslint/types" "6.7.2" - "@typescript-eslint/visitor-keys" "6.7.2" + "@typescript-eslint/types" "6.7.3" + "@typescript-eslint/visitor-keys" "6.7.3" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.2.tgz#b9ef0da6f04932167a9222cb4ac59cb187165ebf" - integrity sha512-ZCcBJug/TS6fXRTsoTkgnsvyWSiXwMNiPzBUani7hDidBdj1779qwM1FIAmpH4lvlOZNF3EScsxxuGifjpLSWQ== +"@typescript-eslint/utils@6.7.3": + version "6.7.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.3.tgz#96c655816c373135b07282d67407cb577f62e143" + integrity sha512-vzLkVder21GpWRrmSR9JxGZ5+ibIUSudXlW52qeKpzUEQhRSmyZiVDDj3crAth7+5tmN1ulvgKaCU2f/bPRCzg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.7.2" - "@typescript-eslint/types" "6.7.2" - "@typescript-eslint/typescript-estree" "6.7.2" + "@typescript-eslint/scope-manager" "6.7.3" + "@typescript-eslint/types" "6.7.3" + "@typescript-eslint/typescript-estree" "6.7.3" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.7.2": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.2.tgz#4cb2bd786f1f459731b0ad1584c9f73e1c7a4d5c" - integrity sha512-uVw9VIMFBUTz8rIeaUT3fFe8xIUx8r4ywAdlQv1ifH+6acn/XF8Y6rwJ7XNmkNMDrTW+7+vxFFPIF40nJCVsMQ== +"@typescript-eslint/visitor-keys@6.7.3": + version "6.7.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz#83809631ca12909bd2083558d2f93f5747deebb2" + integrity sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg== dependencies: - "@typescript-eslint/types" "6.7.2" + "@typescript-eslint/types" "6.7.3" eslint-visitor-keys "^3.4.1" "@vscode/codicons@0.0.33": @@ -1383,13 +1364,13 @@ atoa@1.0.0: integrity sha512-VVE1H6cc4ai+ZXo/CRWoJiHXrA1qfA31DPnx6D20+kSI547hQN5Greh51LQ1baMRMfxO5K5M4ImMtZbZt2DODQ== autoprefixer@^10.4.12: - version "10.4.15" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.15.tgz#a1230f4aeb3636b89120b34a1f513e2f6834d530" - integrity sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew== + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== dependencies: browserslist "^4.21.10" - caniuse-lite "^1.0.30001520" - fraction.js "^4.2.0" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" @@ -1429,11 +1410,6 @@ basic-auth@~2.0.1: dependencies: safe-buffer "5.1.2" -before-after-hook@^2.2.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" - integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== - big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -1521,14 +1497,14 @@ browserify-zlib@^0.1.4: pako "~0.2.0" browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.4: - version "4.21.10" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" - integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== + version "4.21.11" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.11.tgz#35f74a3e51adc4d193dcd76ea13858de7b8fecb8" + integrity sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ== dependencies: - caniuse-lite "^1.0.30001517" - electron-to-chromium "^1.4.477" + caniuse-lite "^1.0.30001538" + electron-to-chromium "^1.4.526" node-releases "^2.0.13" - update-browserslist-db "^1.0.11" + update-browserslist-db "^1.0.13" buffer-crc32@~0.2.3: version "0.2.13" @@ -1627,10 +1603,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520: - version "1.0.30001535" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001535.tgz#908a5b7ef11172f51f0b88f3d850aef1c6a3cf7b" - integrity sha512-48jLyUkiWFfhm/afF7cQPqPjaUmSraEhK4j+FCTJpgnGGEZHqyLe3hmWH7lIooZdSzXL0ReMvHz0vKDoTBsrwg== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538: + version "1.0.30001539" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001539.tgz#325a387ab1ed236df2c12dc6cd43a4fff9903a44" + integrity sha512-hfS5tE8bnNiNvEOEkm8HElUHroYwlqMMENEzELymy77+tJ6m+gA2krtHl5hxJaj71OlpC2cHZbdSMX1/YEqEkA== capital-case@^1.0.4: version "1.0.4" @@ -2610,10 +2586,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.477: - version "1.4.523" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.523.tgz#f82f99243c827df05c26776d49712cb284972df6" - integrity sha512-9AreocSUWnzNtvLcbpng6N+GkXnCcBR80IQkxRC9Dfdyg4gaWNUPBujAHUpKkiUkoSoR9UlhA4zD/IgBklmhzg== +electron-to-chromium@^1.4.526: + version "1.4.528" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.528.tgz#7c900fd73d9d2e8bb0dab0e301f25f0f4776ef2c" + integrity sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA== emoji-regex@^8.0.0: version "8.0.0" @@ -2894,10 +2870,10 @@ eslint-import-resolver-node@^0.3.7: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-import-resolver-typescript@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz#36f93e1eb65a635e688e16cae4bead54552e3bbd" - integrity sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg== +eslint-import-resolver-typescript@3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" + integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== dependencies: debug "^4.3.4" enhanced-resolve "^5.12.0" @@ -2953,10 +2929,10 @@ eslint-plugin-lit@1.9.1: parse5-htmlparser2-tree-adapter "^6.0.1" requireindex "^1.2.0" -eslint-plugin-wc@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-wc/-/eslint-plugin-wc-2.0.2.tgz#afc13b4c3f6fde54366135bd287171a90d3dbf4e" - integrity sha512-QnoqQELEW8S4O30jVvLLTWwSBtMQ6SY4DQ1rAN0xnArO1AAm9gA2D3Dd6A0SlTTw+e+Tzem3OI0dnZRxBVQk2A== +eslint-plugin-wc@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-wc/-/eslint-plugin-wc-2.0.4.tgz#1945abc2ccf484c633d0f1624294ffe91fb78314" + integrity sha512-ORu7MBv0hXIvq894EJad70m+AvHGbmrDdKT6lcgtCVVhEbuIAyxg0ilfqqqHOmsh8PfcUBeEae3y7CElKvm1KQ== dependencies: is-valid-element-name "^1.0.0" js-levenshtein-esm "^1.2.0" @@ -2982,15 +2958,15 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@8.49.0: - version "8.49.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.49.0.tgz#09d80a89bdb4edee2efcf6964623af1054bf6d42" - integrity sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ== +eslint@8.50.0: + version "8.50.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.50.0.tgz#2ae6015fee0240fcd3f83e1e25df0287f487d6b2" + integrity sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.49.0" + "@eslint/js" "8.50.0" "@humanwhocodes/config-array" "^0.11.11" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -3258,7 +3234,7 @@ fork-ts-checker-webpack-plugin@6.5.3: semver "^7.3.2" tapable "^1.0.0" -fraction.js@^4.2.0: +fraction.js@^4.3.6: version "4.3.6" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d" integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg== @@ -3380,9 +3356,9 @@ get-symbol-description@^1.0.0: get-intrinsic "^1.1.1" get-tsconfig@^4.5.0, get-tsconfig@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.0.tgz#06ce112a1463e93196aa90320c35df5039147e34" - integrity sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw== + version "4.7.2" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" + integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== dependencies: resolve-pkg-maps "^1.0.0" @@ -3410,10 +3386,10 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@10.3.4, glob@^10.2.2: - version "10.3.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.4.tgz#c85c9c7ab98669102b6defda76d35c5b1ef9766f" - integrity sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ== +glob@10.3.7, glob@^10.2.2: + version "10.3.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.7.tgz#d5bd30a529c8c9b262fb4b217941f64ad90e25ac" + integrity sha512-wCMbE1m9Nx5yD9LYtgsVWq5VhHlk5WzJirw594qZR6AIvQYuHrdDtIktUVjQItalD53y7dqoedu9xP0u0WaxIQ== dependencies: foreground-child "^3.1.0" jackspeak "^2.0.3" @@ -3446,9 +3422,9 @@ glob@^7.0.3, glob@^7.0.6, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: path-is-absolute "^1.0.0" globals@^13.19.0: - version "13.21.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571" - integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg== + version "13.22.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.22.0.tgz#0c9fcb9c48a2494fbb5edbfee644285543eba9d8" + integrity sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw== dependencies: type-fest "^0.20.2" @@ -4414,10 +4390,10 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -license-checker-rseidelsohn@4.2.7: - version "4.2.7" - resolved "https://registry.yarnpkg.com/license-checker-rseidelsohn/-/license-checker-rseidelsohn-4.2.7.tgz#514c4f7fe29861428578cf2c8d923992544efefb" - integrity sha512-Q6VjdqEXKLuLFXKE2G35kFTtJ9Ho1Ttpe9jZk8uoEof3PfNd8uGXCvgf/wWMlcvfU00MVDbvvC0meY8wDigqeA== +license-checker-rseidelsohn@4.2.8: + version "4.2.8" + resolved "https://registry.yarnpkg.com/license-checker-rseidelsohn/-/license-checker-rseidelsohn-4.2.8.tgz#dba4ef59100df8e2fe1f99c3e12473b6f8d56525" + integrity sha512-WVnHC3iJff79mAp+IfAgiBwHXF2Oey/7/XugjTHRcTcufZMSpwky9a+1wyOOOe+0Z3Qo5XK1pVRfLAoOHLOGqA== dependencies: chalk "4.1.2" debug "^4.3.4" @@ -5026,7 +5002,7 @@ node-addon-api@^6.1.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== -node-fetch@2.7.0, node-fetch@^2.6.7: +node-fetch@2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -5463,17 +5439,17 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -playwright-core@1.38.0: - version "1.38.0" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.38.0.tgz#cb8e135da1c0b1918b070642372040ed9aa7009a" - integrity sha512-f8z1y8J9zvmHoEhKgspmCvOExF2XdcxMW8jNRuX4vkQFrzV4MlZ55iwb5QeyiFQgOFCUolXiRHgpjSEnqvO48g== +playwright-core@1.38.1: + version "1.38.1" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.38.1.tgz#75a3c470aa9576b7d7c4e274de3d79977448ba08" + integrity sha512-tQqNFUKa3OfMf4b2jQ7aGLB8o9bS3bOY0yMEtldtC2+spf8QXG9zvXLTXUeRsoNuxEYMgLYR+NXfAa1rjKRcrg== playwright@^1.37.1: - version "1.38.0" - resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.38.0.tgz#0ee19d38512b7b1f961c0eb44008a6fed373d206" - integrity sha512-fJGw+HO0YY+fU/F1N57DMO+TmXHTrmr905J05zwAQE9xkuwP/QLDk63rVhmyxh03dYnEhnRbsdbH9B0UVVRB3A== + version "1.38.1" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.38.1.tgz#82ecd9bc4f4f64dbeee8a11c31793748e2528130" + integrity sha512-oRMSJmZrOu1FP5iu3UrCx8JEFRIMxLDM0c/3o4bpzU5Tz97BypefWf7TuTNPWeCe279TPal5RtPPZ+9lW/Qkow== dependencies: - playwright-core "1.38.0" + playwright-core "1.38.1" optionalDependencies: fsevents "2.3.2" @@ -5749,9 +5725,9 @@ postcss-zindex@^6.0.0: integrity sha512-lNim6f01ClwALn0J50yyoR+qOu10GXub+xucEB7+x8VwXl+iNJSj/QgXg45XpSoLsWD5HIofVrG/pPrMFcdbig== postcss@^8.4.21, postcss@^8.4.24: - version "8.4.29" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" - integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== + version "8.4.30" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.30.tgz#0e0648d551a606ef2192a26da4cabafcc09c1aa7" + integrity sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" @@ -6265,10 +6241,10 @@ sass-loader@13.3.2: dependencies: neo-async "^2.6.2" -sass@1.67.0, sass@^1.65.1: - version "1.67.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.67.0.tgz#fed84d74b9cd708db603b1380d6dc1f71bb24f6f" - integrity sha512-SVrO9ZeX/QQyEGtuZYCVxoeAL5vGlYjJ9p4i4HFuekWl8y/LtJ7tJc10Z+ck1c8xOuoBm2MYzcLfTAffD0pl/A== +sass@1.68.0, sass@^1.65.1: + version "1.68.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.68.0.tgz#0034b0cc9a50248b7d1702ac166fd25990023669" + integrity sha512-Lmj9lM/fef0nQswm1J2HJcEsBUba4wgNx2fea6yJHODREoMFnwRpZydBnX/RjyXw2REIwdkbqE4hrTo4qfDBUA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -6396,10 +6372,10 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -sharp@0.32.5: - version "0.32.5" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.5.tgz#9ddc78ead6446094f51e50355a2d4ec6e7220cd4" - integrity sha512-0dap3iysgDkNaPOaOL4X/0akdu0ma62GcdC2NBQ+93eqpePdDdr2/LM0sFdDSMmN7yS+odyZtPsb7tx/cYBKnQ== +sharp@0.32.6: + version "0.32.6" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" + integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== dependencies: color "^4.2.3" detect-libc "^2.0.2" @@ -6590,9 +6566,9 @@ spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.13" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" - integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== + version "3.0.15" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz#142460aabaca062bc7cd4cc87b7d50725ed6a4ba" + integrity sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ== spdx-ranges@^2.0.0: version "2.1.1" @@ -6902,9 +6878,9 @@ terser-webpack-plugin@5.3.9, terser-webpack-plugin@^5.3.7: terser "^5.16.8" terser@^5.10.0, terser@^5.15.1, terser@^5.16.8: - version "5.19.4" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.4.tgz#941426fa482bf9b40a0308ab2b3cd0cf7c775ebd" - integrity sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g== + version "5.20.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.20.0.tgz#ea42aea62578703e33def47d5c5b93c49772423e" + integrity sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -6996,10 +6972,10 @@ ts-loader@9.4.4: micromatch "^4.0.0" semver "^7.3.4" -tsc-alias@1.8.7: - version "1.8.7" - resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.8.7.tgz#4f8721b031a31345fa9f1fa8d3cf209d925abb88" - integrity sha512-59Q/zUQa3miTf99mLbSqaW0hi1jt4WoG8Uhe5hSZJHQpSoFW9eEwvW7jlKMHXWvT+zrzy3SN9PE/YBhQ+WVydA== +tsc-alias@1.8.8: + version "1.8.8" + resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.8.8.tgz#48696af442b7656dd7905e37ae0bc332d80be3fe" + integrity sha512-OYUOd2wl0H858NvABWr/BoSKNERw3N9GTi3rHPK8Iv4O1UyUXIrTTOAZNHsjlVpXFOhpJBVARI1s+rzwLivN3Q== dependencies: chokidar "^3.5.3" commander "^9.0.0" @@ -7220,10 +7196,10 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0"