diff --git a/package.json b/package.json index 1e8852c..b9cdeca 100644 --- a/package.json +++ b/package.json @@ -26,19 +26,20 @@ "license": "Apache-2.0", "peerDependencies": { "@emotion/css": "11.1.3", - "@grafana/data": "^9.2.0", - "@grafana/runtime": "^9.2.0", - "@grafana/ui": "^9.2.0", + "@grafana/data": "^10.0.0", + "@grafana/runtime": "^10.0.0", + "@grafana/ui": "^10.0.0", "react": "17.0.2", "react-dom": "17.0.2", - "react-select": "^5.2.1" + "react-select": "^5.2.1", + "rxjs": "7.8.0" }, "devDependencies": { - "@grafana/data": "^9.2.0", - "@grafana/eslint-config": "^5.1.0", - "@grafana/runtime": "^9.2.0", - "@grafana/tsconfig": "^1.2.0-rc1", - "@grafana/ui": "^9.2.0", + "@grafana/data": "^10.0.0", + "@grafana/eslint-config": "^6.0.0", + "@grafana/runtime": "^10.0.0", + "@grafana/tsconfig": "^1.3.0-rc1", + "@grafana/ui": "^10.0.0", "@rollup/plugin-node-resolve": "15.0.1", "@swc/core": "^1.3.56", "@swc/jest": "^0.2.26", diff --git a/src/index.ts b/src/index.ts index 9e0488d..42e219a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,4 @@ +export * as llms from './llms'; export * from './sql-editor'; export * from './QueryEditor'; export * from './ConfigEditor'; diff --git a/src/llms/index.ts b/src/llms/index.ts new file mode 100644 index 0000000..e7e2e80 --- /dev/null +++ b/src/llms/index.ts @@ -0,0 +1 @@ +export * as openai from './openai'; diff --git a/src/llms/openai.ts b/src/llms/openai.ts new file mode 100644 index 0000000..3b3c9b9 --- /dev/null +++ b/src/llms/openai.ts @@ -0,0 +1,345 @@ +/** + * OpenAI API client. + * + * This module contains functions used to make requests to the OpenAI API via + * the Grafana LLM app plugin. That plugin must be installed, enabled and configured + * in order for these functions to work. + * + * The {@link enabled} function can be used to check if the plugin is enabled and configured. + */ + +import { isLiveChannelMessageEvent, LiveChannelAddress, LiveChannelMessageEvent, LiveChannelScope } from "@grafana/data"; +import { getBackendSrv, getGrafanaLiveSrv, logDebug } from "@grafana/runtime"; + +import { pipe, Observable, UnaryFunction } from "rxjs"; +import { filter, map, scan, takeWhile } from "rxjs/operators"; + +const LLM_PLUGIN_ID = 'grafana-llm-app'; +const LLM_PLUGIN_ROUTE = `/api/plugins/${LLM_PLUGIN_ID}`; +const OPENAI_CHAT_COMPLETIONS_PATH = 'openai/v1/chat/completions'; + +/** The role of a message's author. */ +export type Role = 'system' | 'user' | 'assistant' | 'function'; + +/** A message in a conversation. */ +export interface Message { + /** The role of the message's author. */ + role: Role; + + /** The contents of the message. content is required for all messages, and may be null for assistant messages with function calls. */ + content: string; + + /** + * The name of the author of this message. + * + * This is required if role is 'function', and it should be the name of the function whose response is in the content. + * + * May contain a-z, A-Z, 0-9, and underscores, with a maximum length of 64 characters. + */ + name?: string; + + /** + * The name and arguments of a function that should be called, as generated by the model. + */ + function_call?: Object; +} + +/** A function the model may generate JSON inputs for. */ +export interface Function { + /** + * The name of the function to be called. + * + * Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. + */ + name: string; + /** + * A description of what the function does, used by the model to choose when and how to call the function. + */ + description?: string; + /* + * The parameters the functions accepts, described as a JSON Schema object. See the OpenAI guide for examples, and the JSON Schema reference for documentation about the format. + * + * To describe a function that accepts no parameters, provide the value {"type": "object", "properties": {}}. + */ + parameters: Object; +} + +export interface ChatCompletionsRequest { + /** + * ID of the model to use. + * + * See the model endpoint compatibility table for details on which models work with the Chat Completions API. + */ + model: string; + /** A list of messages comprising the conversation so far. */ + messages: Message[]; + /** A list of functions the model may generate JSON inputs for. */ + functions?: Function[]; + /** + * Controls how the model responds to function calls. + * + * "none" means the model does not call a function, and responds to the end-user. + * "auto" means the model can pick between an end-user or calling a function. + * Specifying a particular function via {"name": "my_function"} forces the model to call that function. + * + * "none" is the default when no functions are present. "auto" is the default if functions are present. + */ + function_call?: 'none' | 'auto' | { name: string }; + /** + * What sampling temperature to use, between 0 and 2. + * Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. + * + * We generally recommend altering this or top_p but not both. + */ + temperature?: number; + /** + * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + * So 0.1 means only the tokens comprising the top 10% probability mass are considered. + * + * We generally recommend altering this or temperature but not both. + */ + top_p?: number; + /** + * How many chat completion choices to generate for each input message. + */ + n?: number; + /** + * Up to 4 sequences where the API will stop generating further tokens. + */ + stop?: string | string[]; + /** + * The maximum number of tokens to generate in the chat completion. + * + * The total length of input tokens and generated tokens is limited by the model's context length. Example Python code for counting tokens. + */ + max_tokens?: number; + /** + * Number between -2.0 and 2.0. + * + * Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. + */ + presence_penalty?: number; + /** + * Number between -2.0 and 2.0. + * + * Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. + */ + frequency_penalty?: number; + /** + * Modify the likelihood of specified tokens appearing in the completion. + * + * Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. + * Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, + * but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban + * or exclusive selection of the relevant token. + */ + logit_bias?: { [key: string]: number }; + /** + * A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. + */ + user?: string; +} + +/** A completion object from an OpenAI model. */ +export interface Choice { + /** The message object generated by the model. */ + message: Message; + /** + * The reason the model stopped generating text. + * + * This may be one of: + * - stop: API returned complete message, or a message terminated by one of the stop sequences provided via the stop parameter + * - length: incomplete model output due to max_tokens parameter or token limit + * - function_call: the model decided to call a function + * - content_filter: omitted content due to a flag from our content filters + * - null: API response still in progress or incomplete + */ + finish_reason: string; + /** The index of the completion in the list of choices. */ + index: number; +} + +/** The usage statistics for a request to OpenAPI. */ +export interface Usage { + /** The number of tokens in the prompt. */ + prompt_tokens: number; + /** The number of tokens in the completion. */ + completion_tokens: number; + /** The total number of tokens. */ + total_tokens: number; +} + +/** A response from the OpenAI Chat Completions API. */ +export interface ChatCompletionsResponse { + /** The ID of the request. */ + id: string; + /** The type of object returned (e.g. 'chat.completion'). */ + object: string; + /** The timestamp of the request, as a UNIX timestamp. */ + created: number; + /** The name of the model used to generate the response. */ + model: string; + /** A list of completion objects (only one, unless `n > 1` in the request). */ + choices: T[]; + /** The number of tokens used to generate the replies, counting prompt, completion, and total. */ + usage: Usage; +} + +/** A content message returned from the model. */ +export interface ContentMessage { + /** The content of the message. */ + content: string; +} + +/** A message returned from the model indicating that it is done. */ +export interface DoneMessage { + done: boolean; +} + +/** A function call message returned from the model. */ +export interface FunctionCallMessage { + /** The name of the function to call. */ + name: string; + /** The arguments to the function call. */ + arguments: any[]; +} + +/** + * A delta returned from a stream of chat completion responses. + * + * In practice this will be either a content message or a function call; + * done messages are filtered out by the `streamChatCompletions` function. + */ +export type ChatCompletionsDelta = ContentMessage | FunctionCallMessage | DoneMessage; + +/** A chunk included in a chat completion response. */ +export interface ChatCompletionsChunk { + /** The delta since the previous chunk. */ + delta: ChatCompletionsDelta; +} + +/** Return true if the message is a 'content' message. */ +export function isContentMessage(message: any): message is ContentMessage { + return message.content != null; +} + + +/** Return true if the message is a 'done' message. */ +export function isDoneMessage(message: any): message is DoneMessage { + return message.done !== undefined +} + +/** + * An rxjs operator that extracts the content messages from a stream of chat completion responses. + * + * @returns An observable that emits the content messages. Each emission will be a string containing the + * token emitted by the model. + * @example Example of reading all tokens in a stream. + * const stream = streamChatCompletions({ model: 'gpt-3.5-turbo', messages: [ + * { role: 'system', content: 'You are a great bot.' }, + * { role: 'user', content: 'Hello, bot.' }, + * ]}).pipe(extractContent()); + * stream.subscribe(console.log); + * // Output: + * // ['Hello', '? ', 'How ', 'are ', 'you', '?'] + */ +export function extractContent(): UnaryFunction>, Observable> { + return pipe( + filter((response: ChatCompletionsResponse) => isContentMessage(response.choices[0].delta)), + // The type assertion is needed here because the type predicate above doesn't seem to propagate. + map((response: ChatCompletionsResponse) => (response.choices[0].delta as ContentMessage).content), + ) +} + +/** + * An rxjs operator that accumulates the content messages from a stream of chat completion responses. + * + * @returns An observable that emits the accumulated content messages. Each emission will be a string containing the + * content of all messages received so far. + * @example + * const stream = streamChatCompletions({ model: 'gpt-3.5-turbo', messages: [ + * { role: 'system', content: 'You are a great bot.' }, + * { role: 'user', content: 'Hello, bot.' }, + * ]}).pipe(accumulateContent()); + * stream.subscribe(console.log); + * // Output: + * // ['Hello', 'Hello! ', 'Hello! How ', 'Hello! How are ', 'Hello! How are you', 'Hello! How are you?'] + */ +export function accumulateContent(): UnaryFunction>, Observable> { + return pipe( + extractContent(), + scan((acc, curr) => acc + curr, ''), + ); +} + +/** + * Make a request to OpenAI's chat-completions API via the Grafana LLM plugin proxy. + */ +export async function chatCompletions(request: ChatCompletionsRequest): Promise { + const response = await getBackendSrv().post('/api/plugins/grafana-llm-app/resources/openai/v1/chat/completions', request, { + headers: { 'Content-Type': 'application/json' } + }); + return response; +} + +/** + * Make a streaming request to OpenAI's chat-completions API via the Grafana LLM plugin proxy. + * + * A stream of tokens will be returned as an `Observable`. Use the `extractContent` operator to + * filter the stream to only content messages, or the `accumulateContent` operator to obtain a stream of + * accumulated content messages. + * + * The 'done' message will not be emitted; the stream will simply end when this message is encountered. + * + * @example Example of reading all tokens in a stream. + * const stream = streamChatCompletions({ model: 'gpt-3.5-turbo', messages: [ + * { role: 'system', content: 'You are a great bot.' }, + * { role: 'user', content: 'Hello, bot.' }, + * ]}).pipe(extractContent()); + * stream.subscribe(console.log); + * // Output: + * // ['Hello', '? ', 'How ', 'are ', 'you', '?'] + * + * @example Example of accumulating tokens in a stream. + * const stream = streamChatCompletions({ model: 'gpt-3.5-turbo', messages: [ + * { role: 'system', content: 'You are a great bot.' }, + * { role: 'user', content: 'Hello, bot.' }, + * ]}).pipe(accumulateContent()); + * stream.subscribe(console.log); + * // Output: + * // ['Hello', 'Hello! ', 'Hello! How ', 'Hello! How are ', 'Hello! How are you', 'Hello! How are you?'] + */ +export function streamChatCompletions(request: ChatCompletionsRequest): Observable> { + const channel: LiveChannelAddress = { + scope: LiveChannelScope.Plugin, + namespace: LLM_PLUGIN_ID, + path: OPENAI_CHAT_COMPLETIONS_PATH, + data: request, + }; + const messages = getGrafanaLiveSrv() + .getStream(channel) + .pipe(filter((event) => isLiveChannelMessageEvent(event))) as Observable>> + return messages.pipe( + takeWhile((event) => !isDoneMessage(event.message.choices[0].delta)), + map((event) => event.message), + ); +} + +let loggedWarning = false; + +/** Check if the OpenAI API is enabled via the LLM plugin. */ +export const enabled = async () => { + try { + const settings = await getBackendSrv().get(`${LLM_PLUGIN_ROUTE}/settings`, undefined, undefined, { + showSuccessAlert: false, showErrorAlert: false, + }); + return settings.enabled && (settings?.secureJsonFields?.openAIKey ?? false); + } catch (e) { + if (!loggedWarning) { + logDebug(String(e)); + logDebug('Failed to check if OpenAI is enabled. This is expected if the Grafana LLM plugin is not installed, and the above error can be ignored.'); + loggedWarning = true; + } + return false; + } +} diff --git a/yarn.lock b/yarn.lock index 13b4142..f4e2fc3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -280,6 +280,13 @@ dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.12.1": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" + integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/template@^7.20.7", "@babel/template@^7.3.3": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" @@ -437,15 +444,6 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== -"@es-joy/jsdoccomment@~0.36.0": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz#c37db40da36e4b848da5fd427a74bae3b004a30f" - integrity sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg== - dependencies: - comment-parser "1.3.1" - esquery "^1.4.0" - jsdoc-type-pratt-parser "~3.1.0" - "@es-joy/jsdoccomment@~0.38.0": version "0.38.0" resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.38.0.tgz#2e74f8d824b4a4ec831eaabd4c3548fb11eae5cd" @@ -455,6 +453,15 @@ esquery "^1.5.0" jsdoc-type-pratt-parser "~4.0.0" +"@es-joy/jsdoccomment@~0.39.4": + version "0.39.4" + resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz#6b8a62e9b3077027837728818d3c4389a898b392" + integrity sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg== + dependencies: + comment-parser "1.3.1" + esquery "^1.5.0" + jsdoc-type-pratt-parser "~4.0.0" + "@esbuild/android-arm64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" @@ -577,21 +584,6 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== -"@eslint/eslintrc@^1.3.3": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" - integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.4.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - "@eslint/eslintrc@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" @@ -612,6 +604,11 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.40.0.tgz#3ba73359e11f5a7bd3e407f70b3528abfae69cec" integrity sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA== +"@eslint/js@8.42.0": + version "8.42.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" + integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== + "@floating-ui/core@^1.2.6": version "1.2.6" resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.2.6.tgz#d21ace437cc919cdd8f1640302fa8851e65e75c0" @@ -663,14 +660,15 @@ dependencies: tslib "^2.4.0" -"@grafana/data@9.5.1", "@grafana/data@^9.2.0": - version "9.5.1" - resolved "https://registry.yarnpkg.com/@grafana/data/-/data-9.5.1.tgz#1592f15850e768441bbe8693722d47e3e1ef4f5a" - integrity sha512-XXOV6cSGtBYQkSlQzVG4LaCjCdM49qacajTMU7a1wOKmDY9QJsFiKTbom7vQ1hHd+X83RqjndSJJiCFt7JX9LA== +"@grafana/data@10.0.3", "@grafana/data@^10.0.0": + version "10.0.3" + resolved "https://registry.yarnpkg.com/@grafana/data/-/data-10.0.3.tgz#648f4560daf102fe44afad35ac2b95aab29c441e" + integrity sha512-JW2A5DK+D6cmijDP1S/+/yYXz+NN0nElzvYiv1nesrNdd/4tNKPVtokX/bg0jdWgGc6Kpt3wJNv6gkxDQg8+PQ== dependencies: "@braintree/sanitize-url" "6.0.2" - "@grafana/schema" "9.5.1" + "@grafana/schema" "10.0.3" "@types/d3-interpolate" "^3.0.0" + "@types/string-hash" "1.1.1" d3-interpolate "3.0.1" date-fns "2.29.3" dompurify "^2.4.3" @@ -686,31 +684,32 @@ react-use "17.4.0" regenerator-runtime "0.13.11" rxjs "7.8.0" + string-hash "^1.1.3" tinycolor2 "1.6.0" tslib "2.5.0" uplot "1.6.24" xss "^1.0.14" -"@grafana/e2e-selectors@9.5.1": - version "9.5.1" - resolved "https://registry.yarnpkg.com/@grafana/e2e-selectors/-/e2e-selectors-9.5.1.tgz#e475771bb5f7353b6e7bc38469d9be018a57c4f1" - integrity sha512-M8W0qw+mBZVKWVWtDTos+ttu5/NEGiHxsJk75J2dT5gPG+UvhsZvKKYB7DDDUof9a0QoKhgRYjok3EHMr2/bpQ== +"@grafana/e2e-selectors@10.0.3": + version "10.0.3" + resolved "https://registry.yarnpkg.com/@grafana/e2e-selectors/-/e2e-selectors-10.0.3.tgz#e03521f0d46c4eea8daebf3eddc66e166dedb500" + integrity sha512-GknlCJ6XAjKlYH6mYAtJNSir5naTV2VUJVFeG5O7dRATtzG/bzw9PBaRljWZ0j5AC73lsxb5/A3+H0FpYP3Y1g== dependencies: "@grafana/tsconfig" "^1.2.0-rc1" tslib "2.5.0" typescript "4.8.4" -"@grafana/eslint-config@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@grafana/eslint-config/-/eslint-config-5.1.0.tgz#020d12db231bd7448401d56179376c7119d4ffae" - integrity sha512-JukObDh3hG8JVIZH2SfF3IUfLxfiL/O9kSGpLBpVyEWOzVle79KagQArCgi0r8LlMhL1m6srViY59J+B8+BTYA== - dependencies: - "@typescript-eslint/eslint-plugin" "5.42.0" - "@typescript-eslint/parser" "5.42.0" - eslint "8.26.0" - eslint-config-prettier "8.5.0" - eslint-plugin-jsdoc "39.6.2" - eslint-plugin-react "7.31.10" +"@grafana/eslint-config@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@grafana/eslint-config/-/eslint-config-6.0.0.tgz#31c639cf31cec9b2233624a7defa2d874605a867" + integrity sha512-sBXsqwEJrkQEbPbDa67KScQjGeEiXRdY/vl+sb2fSiZhbTFUEmrUGa/6CA/0bQ+8n9R+JdlJT88PHp5Lmd0kSQ== + dependencies: + "@typescript-eslint/eslint-plugin" "5.59.9" + "@typescript-eslint/parser" "5.59.9" + eslint "8.42.0" + eslint-config-prettier "8.8.0" + eslint-plugin-jsdoc "46.2.6" + eslint-plugin-react "7.32.2" eslint-plugin-react-hooks "4.6.0" typescript "4.8.4" @@ -732,15 +731,15 @@ ua-parser-js "^1.0.32" web-vitals "^3.1.1" -"@grafana/runtime@^9.2.0": - version "9.5.1" - resolved "https://registry.yarnpkg.com/@grafana/runtime/-/runtime-9.5.1.tgz#98efe73cf1c5fba5ae1f14f18770870a82e41e4d" - integrity sha512-8cnn+21JXbDaIQL7uEAPETRFMB4s0Im1TJRctL5eteafkU+xaqELwvZFHQnwXRNodkTd/MM4zCMq1R1PJBbxEA== +"@grafana/runtime@^10.0.0": + version "10.0.3" + resolved "https://registry.yarnpkg.com/@grafana/runtime/-/runtime-10.0.3.tgz#b1f25634ce48054979f3dcffd5b9b6c8988e27d0" + integrity sha512-yqab2KW67+2S+kKUscniSC8t1HRqzArvbHaYV8t/DVe1u1M3gPvCq3+770p04KZ9C/ienBTV8SnLXsqFQZsqjw== dependencies: - "@grafana/data" "9.5.1" - "@grafana/e2e-selectors" "9.5.1" + "@grafana/data" "10.0.3" + "@grafana/e2e-selectors" "10.0.3" "@grafana/faro-web-sdk" "1.0.2" - "@grafana/ui" "9.5.1" + "@grafana/ui" "10.0.3" "@sentry/browser" "6.19.7" history "4.10.1" lodash "4.17.21" @@ -748,10 +747,10 @@ systemjs "0.20.19" tslib "2.5.0" -"@grafana/schema@9.5.1": - version "9.5.1" - resolved "https://registry.yarnpkg.com/@grafana/schema/-/schema-9.5.1.tgz#bd96c7f5f4793a0573ddd1b16c7501ce8181caa3" - integrity sha512-mLLeybp4HFqwmDbbu5lrJFq8cagHIPcRlvTlFllJfUO5KFNyCAUt2wERTZo85tKsuYQUxMgcR3qFkecH0aRrBw== +"@grafana/schema@10.0.3": + version "10.0.3" + resolved "https://registry.yarnpkg.com/@grafana/schema/-/schema-10.0.3.tgz#d8aaa9aa309d0639258af787bec06ed5b75f356f" + integrity sha512-0CBAB3HamQBuNaQXpN1B27Pq7yfFs5VBf7Y1vbuUcNnYEnZg4YtbBR8IiVeCLl3v4NjauskbRIu7iTafZOcBpQ== dependencies: tslib "2.5.0" @@ -760,17 +759,22 @@ resolved "https://registry.yarnpkg.com/@grafana/tsconfig/-/tsconfig-1.2.0-rc1.tgz#10973c978ec95b0ea637511254b5f478bce04de7" integrity sha512-+SgQeBQ1pT6D/E3/dEdADqTrlgdIGuexUZ8EU+8KxQFKUeFeU7/3z/ayI2q/wpJ/Kr6WxBBNlrST6aOKia19Ag== -"@grafana/ui@9.5.1", "@grafana/ui@^9.2.0": - version "9.5.1" - resolved "https://registry.yarnpkg.com/@grafana/ui/-/ui-9.5.1.tgz#331fe2822bb3904b150be87a0f2aa63c49e8e34b" - integrity sha512-J0fA5KJnIRiQF+frlA8Az1h9onVgduoJgxvfsanc9CBeFpjM6ugCzdCgkmS7OrfEXoLnGxHfmzSKTyJ4dlMkEA== +"@grafana/tsconfig@^1.3.0-rc1": + version "1.3.0-rc1" + resolved "https://registry.yarnpkg.com/@grafana/tsconfig/-/tsconfig-1.3.0-rc1.tgz#ca5ffa03edb3cb59bd503a7e6b3a3e15ac528d77" + integrity sha512-bi+qFOptejg/a2/WmCDVxQLQtobhKd3y+B6mxFBOMmzElqgr30MPnN60THTou6dGwtfw+ExX1H5FGm9DM35Qrw== + +"@grafana/ui@10.0.3", "@grafana/ui@^10.0.0": + version "10.0.3" + resolved "https://registry.yarnpkg.com/@grafana/ui/-/ui-10.0.3.tgz#ef63fcce3e8357796cb2ef4f29b0213876c5e07f" + integrity sha512-X3Lzd4G1X5rJsqGcu9lSbF22BxxQQUjV9sVzoFTDU2losCDgZRyM3IWfeH/ASbpBv+3c9EU6OiEycscbjuWKqg== dependencies: "@emotion/css" "11.10.6" "@emotion/react" "11.10.6" - "@grafana/data" "9.5.1" - "@grafana/e2e-selectors" "9.5.1" + "@grafana/data" "10.0.3" + "@grafana/e2e-selectors" "10.0.3" "@grafana/faro-web-sdk" "1.0.2" - "@grafana/schema" "9.5.1" + "@grafana/schema" "10.0.3" "@leeoniya/ufuzzy" "1.0.6" "@monaco-editor/react" "4.4.6" "@popperjs/core" "2.11.6" @@ -799,7 +803,7 @@ monaco-editor "0.34.0" ol "7.2.2" prismjs "1.29.0" - rc-cascader "3.8.0" + rc-cascader "3.10.2" rc-drawer "6.1.3" rc-slider "10.1.1" rc-time-picker "^3.7.3" @@ -815,7 +819,7 @@ react-inlinesvg "3.0.2" react-popper "2.3.0" react-popper-tooltip "4.4.2" - react-router-dom "^5.2.0" + react-router-dom "5.3.3" react-select "5.7.0" react-select-event "^5.1.0" react-table "7.8.0" @@ -831,7 +835,16 @@ uplot "1.6.24" uuid "9.0.0" -"@humanwhocodes/config-array@^0.11.6", "@humanwhocodes/config-array@^0.11.8": +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/config-array@^0.11.8": version "0.11.8" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== @@ -1317,6 +1330,28 @@ classnames "^2.3.2" rc-util "^5.24.4" +"@rc-component/portal@^1.1.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@rc-component/portal/-/portal-1.1.2.tgz#55db1e51d784e034442e9700536faaa6ab63fc71" + integrity sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg== + dependencies: + "@babel/runtime" "^7.18.0" + classnames "^2.3.2" + rc-util "^5.24.4" + +"@rc-component/trigger@^1.5.0": + version "1.14.4" + resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-1.14.4.tgz#786cd8a3bef94ba4cd8755dba519911209b4f267" + integrity sha512-zaZm3nzVw772VdhUWsheBfmsw3UXqSPwVQQDP1apebN9QTxFjUnTxKO9oHeZB2fOKagaLGmlxMX6NRAM+U1Edw== + dependencies: + "@babel/runtime" "^7.18.3" + "@rc-component/portal" "^1.1.0" + classnames "^2.3.2" + rc-align "^4.0.0" + rc-motion "^2.0.0" + rc-resize-observer "^1.3.1" + rc-util "^5.33.0" + "@react-aria/button@3.6.1": version "3.6.1" resolved "https://registry.yarnpkg.com/@react-aria/button/-/button-3.6.1.tgz#111e296df8e171e4eb227c306f087337490bc896" @@ -2097,6 +2132,11 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== +"@types/string-hash@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/string-hash/-/string-hash-1.1.1.tgz#4c336e61d1e13ce2d3efaaa5910005fd080e106b" + integrity sha512-ijt3zdHi2DmZxQpQTmozXszzDo78V4R3EdvX0jFMfnMH2ZzQSmCbaWOMPGXFUYSzSIdStv78HDjg32m5dxc+tA== + "@types/testing-library__jest-dom@^5.9.1": version "5.14.5" resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" @@ -2140,18 +2180,19 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.0.tgz#36a8c0c379870127059889a9cc7e05c260d2aaa5" - integrity sha512-5TJh2AgL6+wpL8H/GTSjNb4WrjKoR2rqvFxR/DDTqYNk6uXn8BJMEcncLSpMbf/XV1aS0jAjYwn98uvVCiAywQ== +"@typescript-eslint/eslint-plugin@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz#2604cfaf2b306e120044f901e20c8ed926debf15" + integrity sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA== dependencies: - "@typescript-eslint/scope-manager" "5.42.0" - "@typescript-eslint/type-utils" "5.42.0" - "@typescript-eslint/utils" "5.42.0" + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/type-utils" "5.59.9" + "@typescript-eslint/utils" "5.59.9" debug "^4.3.4" + grapheme-splitter "^1.0.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" - regexpp "^3.2.0" semver "^7.3.7" tsutils "^3.21.0" @@ -2171,24 +2212,16 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.42.0.tgz#be0ffbe279e1320e3d15e2ef0ad19262f59e9240" - integrity sha512-Ixh9qrOTDRctFg3yIwrLkgf33AHyEIn6lhyf5cCfwwiGtkWhNpVKlEZApi3inGQR/barWnY7qY8FbGKBO7p3JA== +"@typescript-eslint/parser@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.9.tgz#a85c47ccdd7e285697463da15200f9a8561dd5fa" + integrity sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ== dependencies: - "@typescript-eslint/scope-manager" "5.42.0" - "@typescript-eslint/types" "5.42.0" - "@typescript-eslint/typescript-estree" "5.42.0" + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/typescript-estree" "5.59.9" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.42.0.tgz#e1f2bb26d3b2a508421ee2e3ceea5396b192f5ef" - integrity sha512-l5/3IBHLH0Bv04y+H+zlcLiEMEMjWGaCX6WyHE5Uk2YkSGAMlgdUPsT/ywTSKgu9D1dmmKMYgYZijObfA39Wow== - dependencies: - "@typescript-eslint/types" "5.42.0" - "@typescript-eslint/visitor-keys" "5.42.0" - "@typescript-eslint/scope-manager@5.59.2": version "5.59.2" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz#f699fe936ee4e2c996d14f0fdd3a7da5ba7b9a4c" @@ -2197,15 +2230,13 @@ "@typescript-eslint/types" "5.59.2" "@typescript-eslint/visitor-keys" "5.59.2" -"@typescript-eslint/type-utils@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.42.0.tgz#4206d7192d4fe903ddf99d09b41d4ac31b0b7dca" - integrity sha512-HW14TXC45dFVZxnVW8rnUGnvYyRC0E/vxXShFCthcC9VhVTmjqOmtqj6H5rm9Zxv+ORxKA/1aLGD7vmlLsdlOg== +"@typescript-eslint/scope-manager@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz#eadce1f2733389cdb58c49770192c0f95470d2f4" + integrity sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ== dependencies: - "@typescript-eslint/typescript-estree" "5.42.0" - "@typescript-eslint/utils" "5.42.0" - debug "^4.3.4" - tsutils "^3.21.0" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/visitor-keys" "5.59.9" "@typescript-eslint/type-utils@5.59.2": version "5.59.2" @@ -2217,28 +2248,25 @@ debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.42.0.tgz#5aeff9b5eced48f27d5b8139339bf1ef805bad7a" - integrity sha512-t4lzO9ZOAUcHY6bXQYRuu+3SSYdD9TS8ooApZft4WARt4/f2Cj/YpvbTe8A4GuhT4bNW72goDMOy7SW71mZwGw== +"@typescript-eslint/type-utils@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz#53bfaae2e901e6ac637ab0536d1754dfef4dafc2" + integrity sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q== + dependencies: + "@typescript-eslint/typescript-estree" "5.59.9" + "@typescript-eslint/utils" "5.59.9" + debug "^4.3.4" + tsutils "^3.21.0" "@typescript-eslint/types@5.59.2": version "5.59.2" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.2.tgz#b511d2b9847fe277c5cb002a2318bd329ef4f655" integrity sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w== -"@typescript-eslint/typescript-estree@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.0.tgz#2592d24bb5f89bf54a63384ff3494870f95b3fd8" - integrity sha512-2O3vSq794x3kZGtV7i4SCWZWCwjEtkWfVqX4m5fbUBomOsEOyd6OAD1qU2lbvV5S8tgy/luJnOYluNyYVeOTTg== - dependencies: - "@typescript-eslint/types" "5.42.0" - "@typescript-eslint/visitor-keys" "5.42.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" +"@typescript-eslint/types@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.9.tgz#3b4e7ae63718ce1b966e0ae620adc4099a6dcc52" + integrity sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw== "@typescript-eslint/typescript-estree@5.59.2": version "5.59.2" @@ -2253,19 +2281,18 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.42.0.tgz#f06bd43b9a9a06ed8f29600273240e84a53f2f15" - integrity sha512-JZ++3+h1vbeG1NUECXQZE3hg0kias9kOtcQr3+JVQ3whnjvKuMyktJAAIj6743OeNPnGBmjj7KEmiDL7qsdnCQ== +"@typescript-eslint/typescript-estree@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz#6bfea844e468427b5e72034d33c9fffc9557392b" + integrity sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA== dependencies: - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.42.0" - "@typescript-eslint/types" "5.42.0" - "@typescript-eslint/typescript-estree" "5.42.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/visitor-keys" "5.59.9" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" semver "^7.3.7" + tsutils "^3.21.0" "@typescript-eslint/utils@5.59.2": version "5.59.2" @@ -2281,13 +2308,19 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.0.tgz#ee8d62d486f41cfe646632fab790fbf0c1db5bb0" - integrity sha512-QHbu5Hf/2lOEOwy+IUw0GoSCuAzByTAWWrOTKzTzsotiUnWFpuKnXcAhC9YztAf2EElQ0VvIK+pHJUPkM0q7jg== +"@typescript-eslint/utils@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.9.tgz#adee890107b5ffe02cd46fdaa6c2125fb3c6c7c4" + integrity sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg== dependencies: - "@typescript-eslint/types" "5.42.0" - eslint-visitor-keys "^3.3.0" + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/typescript-estree" "5.59.9" + eslint-scope "^5.1.1" + semver "^7.3.7" "@typescript-eslint/visitor-keys@5.59.2": version "5.59.2" @@ -2297,6 +2330,14 @@ "@typescript-eslint/types" "5.59.2" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz#9f86ef8e95aca30fb5a705bb7430f95fc58b146d" + integrity sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q== + dependencies: + "@typescript-eslint/types" "5.59.9" + eslint-visitor-keys "^3.3.0" + "@wojtekmaj/date-utils@^1.0.2": version "1.1.3" resolved "https://registry.yarnpkg.com/@wojtekmaj/date-utils/-/date-utils-1.1.3.tgz#7be7fb33a2b987d886ff868877ee8c7908176e85" @@ -2469,7 +2510,7 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.flatmap@^1.3.0, array.prototype.flatmap@^1.3.1: +array.prototype.flatmap@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== @@ -3508,22 +3549,24 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== +eslint-config-prettier@8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== -eslint-plugin-jsdoc@39.6.2: - version "39.6.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.6.2.tgz#dcc86cec7cce47aa1a646e38debd5bdf76f63742" - integrity sha512-dvgY/W7eUFoAIIiaWHERIMI61ZWqcz9YFjEeyTzdPlrZc3TY/3aZm5aB91NUoTLWYZmO/vFlYSuQi15tF7uE5A== +eslint-plugin-jsdoc@46.2.6: + version "46.2.6" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.6.tgz#f25590d371859f20691d65b5dcd4cbe370d65564" + integrity sha512-zIaK3zbSrKuH12bP+SPybPgcHSM6MFzh3HFeaODzmsF1N8C1l8dzJ22cW1aq4g0+nayU1VMjmNf7hg0dpShLrA== dependencies: - "@es-joy/jsdoccomment" "~0.36.0" + "@es-joy/jsdoccomment" "~0.39.4" + are-docs-informative "^0.0.2" comment-parser "1.3.1" debug "^4.3.4" escape-string-regexp "^4.0.0" - esquery "^1.4.0" - semver "^7.3.8" + esquery "^1.5.0" + is-builtin-module "^3.2.1" + semver "^7.5.1" spdx-expression-parse "^3.0.1" eslint-plugin-jsdoc@^44.0.0: @@ -3545,27 +3588,7 @@ eslint-plugin-react-hooks@4.6.0, eslint-plugin-react-hooks@^4.6.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@7.31.10: - version "7.31.10" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz#6782c2c7fe91c09e715d536067644bbb9491419a" - integrity sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA== - dependencies: - array-includes "^3.1.5" - array.prototype.flatmap "^1.3.0" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.1" - object.values "^1.1.5" - prop-types "^15.8.1" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.7" - -eslint-plugin-react@^7.32.2: +eslint-plugin-react@7.32.2, eslint-plugin-react@^7.32.2: version "7.32.2" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== @@ -3594,7 +3617,7 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.1, eslint-scope@^7.2.0: +eslint-scope@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== @@ -3602,30 +3625,21 @@ eslint-scope@^7.1.1, eslint-scope@^7.2.0: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== -eslint@8.26.0: - version "8.26.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.26.0.tgz#2bcc8836e6c424c4ac26a5674a70d44d84f2181d" - integrity sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg== +eslint@8.42.0: + version "8.42.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" + integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== dependencies: - "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.11.6" + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.42.0" + "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" @@ -3634,24 +3648,22 @@ eslint@8.26.0: debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.15.0" - grapheme-splitter "^1.0.4" + globals "^13.19.0" + graphemer "^1.4.0" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -3659,7 +3671,6 @@ eslint@8.26.0: minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.1" - regexpp "^3.2.0" strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" @@ -3710,7 +3721,7 @@ eslint@^8.40.0: strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.4.0, espree@^9.5.2: +espree@^9.5.2: version "9.5.2" resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== @@ -3724,7 +3735,7 @@ esprima@^4.0.0, esprima@^4.0.1: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0, esquery@^1.4.2, esquery@^1.5.0: +esquery@^1.4.2, esquery@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== @@ -4070,7 +4081,7 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.15.0, globals@^13.19.0: +globals@^13.19.0: version "13.20.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== @@ -4113,6 +4124,11 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -4378,7 +4394,7 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-builtin-module@^3.2.0: +is-builtin-module@^3.2.0, is-builtin-module@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== @@ -5054,11 +5070,6 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdoc-type-pratt-parser@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz#a4a56bdc6e82e5865ffd9febc5b1a227ff28e67e" - integrity sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw== - jsdoc-type-pratt-parser@~4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz#136f0571a99c184d84ec84662c45c29ceff71114" @@ -5321,6 +5332,14 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +mini-create-react-context@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== + dependencies: + "@babel/runtime" "^7.12.1" + tiny-warning "^1.0.3" + minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -5456,7 +5475,7 @@ object.assign@^4.1.3, object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.5, object.entries@^1.1.6: +object.entries@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== @@ -5465,7 +5484,7 @@ object.entries@^1.1.5, object.entries@^1.1.6: define-properties "^1.1.4" es-abstract "^1.20.4" -object.fromentries@^2.0.5, object.fromentries@^2.0.6: +object.fromentries@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== @@ -5474,7 +5493,7 @@ object.fromentries@^2.0.5, object.fromentries@^2.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" -object.hasown@^1.1.1, object.hasown@^1.1.2: +object.hasown@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== @@ -5482,7 +5501,7 @@ object.hasown@^1.1.1, object.hasown@^1.1.2: define-properties "^1.1.4" es-abstract "^1.20.4" -object.values@^1.1.5, object.values@^1.1.6: +object.values@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== @@ -5855,15 +5874,15 @@ rc-animate@2.x: rc-util "^4.15.3" react-lifecycles-compat "^3.0.4" -rc-cascader@3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.8.0.tgz#5eaca8998b2e3f5692d13f16bfe2346eccc87c6a" - integrity sha512-zCz/NzsNRQ1TIfiR3rQNxjeRvgRHEkNdo0FjHQZ6Ay6n4tdCmMrM7+81ThNaf21JLQ1gS2AUG2t5uikGV78obA== +rc-cascader@3.10.2: + version "3.10.2" + resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.10.2.tgz#9e75e6b7bdd6e531d1f986cda2b68755e21e5b9e" + integrity sha512-llKIxAAJZW10BkvhqdNsOSy2AOubj0xGEJFcdo/FP09DrhVI764skhCeBH9WfIhv4X40t9/goDwTsXE8Gul9zA== dependencies: "@babel/runtime" "^7.12.5" array-tree-filter "^2.1.0" classnames "^2.3.1" - rc-select "~14.2.0" + rc-select "~14.4.0" rc-tree "~5.7.0" rc-util "^5.6.1" @@ -5897,7 +5916,7 @@ rc-overflow@^1.0.0: rc-resize-observer "^1.0.0" rc-util "^5.19.2" -rc-resize-observer@^1.0.0: +rc-resize-observer@^1.0.0, rc-resize-observer@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.3.1.tgz#b61b9f27048001243617b81f95e53d7d7d7a6a3d" integrity sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg== @@ -5907,16 +5926,16 @@ rc-resize-observer@^1.0.0: rc-util "^5.27.0" resize-observer-polyfill "^1.5.1" -rc-select@~14.2.0: - version "14.2.2" - resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.2.2.tgz#03558848b190d24fc9010a3bf1104c6dbea9b122" - integrity sha512-w+LuiYGFWgaV23PuxtdeWtXSsoxt+eCfzxu/CvRuqSRm8tn/pqvAb1xUIDAjoMMWK1FqiOW4jI/iMt7ZRG/BBg== +rc-select@~14.4.0: + version "14.4.3" + resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.4.3.tgz#68d7f1b6bcb41543f69901951facd5e097fb835d" + integrity sha512-qoz4gNqm3SN+4dYKSCRiRkxKSEEdbS3jC6gdFYoYwEjDZ9sdQFo5jHlfQbF+hhai01HOoj1Hf8Gq6tpUvU+Gmw== dependencies: "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^1.5.0" classnames "2.x" rc-motion "^2.0.1" rc-overflow "^1.0.0" - rc-trigger "^5.0.4" rc-util "^5.16.1" rc-virtual-list "^3.4.13" @@ -5974,7 +5993,7 @@ rc-trigger@^2.2.0: rc-util "^4.4.0" react-lifecycles-compat "^3.0.4" -rc-trigger@^5.0.4, rc-trigger@^5.3.1: +rc-trigger@^5.3.1: version "5.3.4" resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-5.3.4.tgz#6b4b26e32825677c837d1eb4d7085035eecf9a61" integrity sha512-mQv+vas0TwKcjAO2izNPkqR4j86OemLRmvL2nOzdP9OWNWA1ivoTt5hzFqYNW9zACwmTezRiN8bttrC7cZzYSw== @@ -6004,6 +6023,14 @@ rc-util@^5.15.0, rc-util@^5.16.1, rc-util@^5.19.2, rc-util@^5.21.0, rc-util@^5.2 "@babel/runtime" "^7.18.3" react-is "^16.12.0" +rc-util@^5.33.0: + version "5.35.0" + resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.35.0.tgz#bed1986248b7be525cc0894109e609ac60207f29" + integrity sha512-MTXlixb3EoSTEchsOc7XWsVyoUQqoCsh2Z1a2IptwNgqleMF6ZgQeY52UzUbNj5CcVBg9YljOWjuOV07jSSm4Q== + dependencies: + "@babel/runtime" "^7.18.3" + react-is "^16.12.0" + rc-virtual-list@^3.4.13, rc-virtual-list@^3.4.8: version "3.4.13" resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.4.13.tgz#20acc934b263abcf7b7c161f50ef82281b2f7e8d" @@ -6172,28 +6199,29 @@ react-redux@^7.2.0: prop-types "^15.7.2" react-is "^17.0.2" -react-router-dom@^5.2.0: - version "5.3.4" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" - integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== +react-router-dom@5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.3.tgz#8779fc28e6691d07afcaf98406d3812fe6f11199" + integrity sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng== dependencies: "@babel/runtime" "^7.12.13" history "^4.9.0" loose-envify "^1.3.1" prop-types "^15.6.2" - react-router "5.3.4" + react-router "5.3.3" tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@5.3.4: - version "5.3.4" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" - integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== +react-router@5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.3.tgz#8e3841f4089e728cf82a429d92cdcaa5e4a3a288" + integrity sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w== dependencies: "@babel/runtime" "^7.12.13" history "^4.9.0" hoist-non-react-statics "^3.1.0" loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" path-to-regexp "^1.7.0" prop-types "^15.6.2" react-is "^16.6.0" @@ -6330,11 +6358,6 @@ regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: define-properties "^1.2.0" functions-have-names "^1.2.3" -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -6393,7 +6416,7 @@ resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.3, resolve@^2.0.0-next.4: +resolve@^2.0.0-next.4: version "2.0.0-next.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== @@ -6521,13 +6544,20 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.0: +semver@^7.3.5, semver@^7.3.7, semver@^7.5.0: version "7.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== dependencies: lru-cache "^6.0.0" +semver@^7.5.1: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + set-harmonic-interval@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" @@ -6769,6 +6799,11 @@ stop-iteration-iterator@^1.0.0: dependencies: internal-slot "^1.0.4" +string-hash@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -6786,7 +6821,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.matchall@^4.0.7, string.prototype.matchall@^4.0.8: +string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== @@ -6926,7 +6961,7 @@ tiny-warning@^0.0.3: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-0.0.3.tgz#1807eb4c5f81784a6354d58ea1d5024f18c6c81f" integrity sha512-r0SSA5Y5IWERF9Xh++tFPx0jITBgGggOsRLDWWew6YRw/C2dr4uNO1fw1vanrBmHsICmPyMLNBZboTlxUmUuaA== -tiny-warning@^1.0.0: +tiny-warning@^1.0.0, tiny-warning@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==