From e4a3c88b7329bd49096f27b39591dff58b0122e3 Mon Sep 17 00:00:00 2001 From: Tushar Date: Sun, 6 Aug 2023 13:20:03 +0000 Subject: [PATCH 01/36] docs: added models to README.md and modified main docs Added GenericModel to load_save_models file for the docs. Edited README.md --- README.md | 30 +++++++++++ docs/docs/load_save_models.md | 93 +++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+) diff --git a/README.md b/README.md index 5bb64ba..0056016 100644 --- a/README.md +++ b/README.md @@ -220,6 +220,36 @@ model = BaseModel.load("x/distilgpt2_lora_finetuned_alpaca")
+## Supported Models +Below is a list of all the supported models via `BaseModel` class of `xTuring` and their corresponding keys to load them. + +| Model | Key | +| -- | -- | +|Bloom | bloom| +|Cerebras | cerebras| +|DistilGPT-2 | distilgpt2| +|Falcon-7B | falcon| +|Galactica | galactica| +|GPT-J | gptj| +|GPT-2 | gpt2| +|LlaMA | llama| +|LlaMA2 | llama2| +|OPT-1.3B | opt| + +The above mentioned are the base variants of the LLMs. Below are the templates to get their `LoRA`, `INT8`, `INT8 + LoRA` and `INT4 + LoRA` versions. + +| Version | Template | +| -- | -- | +| LoRA| _lora| +| INT8| _int8| +| INT8 + LoRA| _lora_int8| + +** In order to load any model's __`INT4+LoRA`__ version, you will need to make use of `GenericLoraKbitModel` class from `xturing.models`. Below is how to use it: +```python +model = GenericLoraKbitModel('') +``` +The `model_path` can be replaced with you local directory or any HuggingFace library model like `facebook/opt-1.3b`. + ## 📈 Roadmap - [x] Support for `LLaMA`, `GPT-J`, `GPT-2`, `OPT`, `Cerebras-GPT`, `Galactica` and `Bloom` models - [x] Dataset generation using self-instruction diff --git a/docs/docs/load_save_models.md b/docs/docs/load_save_models.md index 86686a7..b31bbf8 100644 --- a/docs/docs/load_save_models.md +++ b/docs/docs/load_save_models.md @@ -6,6 +6,7 @@ sidebar_position: 6 # Load and save models +## BaseModel class ### 1. Load a pre-trained model To load a pre-trained model for the first time, run the following line of code. This will load the model with the default weights. @@ -13,8 +14,14 @@ To load a pre-trained model for the first time, run the following line of code. ```python from xturing.models.base import BaseModel +model = BaseModel.create("") + +''' +For example, model = BaseModel.create("distilgpt2_lora") +''' ``` +You can find all the supported model keys [here](../../README.md) ### 2. Save a fine-tuned model @@ -35,3 +42,89 @@ To load a saved model, you only have to run the `load` method specifying the dir ```python finetuned_model = BaseModel.load("/path/to/a/directory") ``` + +
+

Refer to the below sample code

+ +```python +## make the necessary imports +from xturing.models.base import BaseModel + +## loading the model +model = BaseModel.create("distilgpt2_lora") + +# saving the model +model.save("/path/to/a/directory") + +## loading the fine-tuned model +finetuned_model = BaseModel.load("/path/to/a/directory") +``` +
+ +## GenericModel classes +The `GenericModel` classes consists of: +1. `GenericModel` +2. `GenericInt8Model` +3. `GenericLoraModel` +4. `GenericLoraInt8Model` +5. `GenericLoraKbitModel` + +The below pieces of code will work for all of the above classes by replacing the `GenericModel` in below codes with any of the above classes. The pieces of codes presented below are very similar to that mentioned above with only slight difference. + +### 1. Load a pre-trained and/or fine-tuned model + +To load a pre-trained (or fine-tuned) model, run the following line of code. This will load the model with the default weights in the case of a pre-trained model, and the weights which were saved in the case of a fine-tuned one. +```python +from xturing.models import GenericModel + +model = GenericModel("") +''' +The can be path to a local model, for example, "./saved_model" or path from the HuggingFace library, for example, "facebook/opt-1.3b" + +For example, +model = GenericModel('./saved_model') +OR +model = GenericModel('facebook/opt-1.3b') +''' +``` + +### 2. Save a fine-tuned model + +After fine-tuning your model, you can save it as simple as: + +```python +model.save("/path/to/a/directory") +``` + +Remember that the path that you specify should be a directory. If the directory doesn't exist, it will be created. + +The model weights will be saved into 2 files. The whole model weights including based model parameters and LoRA parameters are stored in `pytorch_model.bin` file and only LoRA parameters are stored in `adapter_model.bin` file. + + +
+

Below are 2 sample codes

+ +1. To load a pre-trained model + +```python +## Make the necessary imports +from xturing.models import GenericModel + +## Loading the model +model = GenericModel("facebook/opt-1.3b") + +## Saving the model +model.save("/path/to/a/directory") +``` + +2. To load a fine-tuned model +```python +## Make the necessary imports +from xturing.models import GenericModel + +## Loading the model +model = GenericModel("./saved_model") + +``` + +
From 720ac3a67b4c6aacd4d3e57bfb13237b51ba63ba Mon Sep 17 00:00:00 2001 From: Tushar Date: Mon, 7 Aug 2023 17:35:53 +0000 Subject: [PATCH 02/36] docs: revamped quickstart Wrote the whole quickstart on lines of quicktour of HF --- docs/docs/quickstart.md | 63 +++++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/docs/docs/quickstart.md b/docs/docs/quickstart.md index 2a00ada..55a3411 100644 --- a/docs/docs/quickstart.md +++ b/docs/docs/quickstart.md @@ -1,24 +1,57 @@ --- sidebar_position: 2 -title: 🚀 Quickstart +title: 🚀 Quick Tour description: Your first fine-tuning job with xTuring --- -# Quickstart +# QuickStart **xTuring** provides fast, efficient and simple fine-tuning of LLMs, such as LLaMA, GPT-J, GPT-2, and more. It supports both single GPU and multi-GPU training. Leverage memory-efficient fine-tuning techniques like LoRA to reduce your hardware costs by up to 90% and train your models in a fraction of the time. -Here is a quick example of how to fine-tune LLaMA 7B on the Alpaca dataset using LoRA technique. +Whether you are someone who develops AI pipelines for a living or someone who just wants to leverage the power of AI, this quickstart will help you get started with `xTuring` and how to use `BaseModel` for inference, fine-tuning and saving the obtained weights. -### 1. Install +Before diving into it, make sure you have the library installed on your machine: ```bash pip install xturing ``` -### 2. Load the dataset -Download the Alpaca dataset from [here](https://d33tr4pxdm6e2j.cloudfront.net/public_content/tutorials/datasets/alpaca_data.zip) and extract it to a folder. We will load this dataset using the `InstructionDataset` class. +## BaseModel + +The `BaseModel` is the easiest way use an off-the-shelf supported model for inference and fine-tuning. +You can use `BaseModel` to load from a wide-range of supported models, the list of which is mentioned below: + +| Model | Key | +| -- | -- | +|Bloom | bloom | +|Cerebras | cerebras | +|DistilGPT-2 | distilgpt2 | +|Falcon-7B | falcon | +|Galactica | galactica | +|GPT-J | gptj | +|GPT-2 | gpt2 | +|LlaMA | llama | +|LlaMA2 | llama2 | +|OPT-1.3B | opt | +| | | +The above mentioned are the base variants of the LLMs. Below are the templates to get their `LoRA`, `INT8`, `INT8 + LoRA` and `INT4 + LoRA` versions. + +| Version | Template | +| -- | -- | +| LoRA| _lora| +| INT8| _int8| +| INT8 + LoRA| _lora_int8| + +** In order to load any model's __`INT4+LoRA`__ version, you will need to make use of `GenericLoraKbitModel` class from `xturing.models`. Below is how to use it: +```python +model = GenericLoraKbitModel('') +``` +The `model_path` can be replaced with you local directory or any HuggingFace library model like `facebook/opt-1.3b`. + +In this guide, we will be using `BaseModel` to fine-tune __LLaMA 7B__ on the __Alpaca dataset__ using __LoRA__ technique. + +Start by downloading the Alpaca dataset from [here](https://d33tr4pxdm6e2j.cloudfront.net/public_content/tutorials/datasets/alpaca_data.zip) and extract it to a folder. We will load this dataset using the `InstructionDataset` class. ```python from xturing.datasets import InstructionDataset @@ -26,8 +59,8 @@ from xturing.datasets import InstructionDataset dataset = InstructionDataset("./alpaca_data") ``` -### 3. Initialize the model -You can also load the LLaMA model without LoRA initiliazation or load one of the other models supported by xTuring. Look at the [supported models](/#models-supported) section for more details. +Next, initialize the model. +We can also load the LLaMA model without LoRA initiliazation or load one of the other models supported by xTuring. Look at the [supported models](/#basemodel) section for more details. ```python from xturing.models import BaseModel @@ -35,29 +68,29 @@ from xturing.models import BaseModel model = BaseModel.create("llama_lora") ``` -### 4. Fine-tune the model - -We will use the default configuration for the fine-tuning. +To fine-tune the model on the loaded dataset, we will use the default configuration for the fine-tuning. ```python model.finetune(dataset=dataset) ``` -### 5. Generate text +Let's test our fine-tuned model, and make some inference. ```python output = model.generate(texts=["Why LLM models are becoming so important?"]) ``` +Print the `output` variable to see the results. -### 6. Save the model -You can save the model to use it later by calling the `save` method and then passing the path to the folder where you want to save the model. +Next, we need to save our fine-tuned model using the `.save()` method. We will send the path of the directory as parameter to the method to save the fine-tuned model. ```python model.save("llama_lora_finetuned") ``` -### 7. Launch the playground +We can also see our model(s) in action with a beautiful UI by launchung the playground locally. ```python +from xturing.ui.playground import Playground + Playground().launch() ``` From 0118c529dd1a9c342f0529faaeacdeca734e9ff0 Mon Sep 17 00:00:00 2001 From: Tushar Date: Tue, 8 Aug 2023 14:40:56 +0530 Subject: [PATCH 03/36] docs: installation guide added and quickstart revamped edited quickstart, added installation --- docs/docs/contributing/_category_.json | 2 +- docs/docs/datasets/_category_.json | 2 +- docs/docs/finetune/_category_.json | 2 +- docs/docs/finetune/guide.md | 4 +- docs/docs/inference/_category_.json | 2 +- docs/docs/installation.md | 70 ++++++++++++++++++++++++++ docs/docs/playground/_category_.json | 4 +- docs/docs/quickstart.md | 11 ++-- 8 files changed, 84 insertions(+), 13 deletions(-) create mode 100644 docs/docs/installation.md diff --git a/docs/docs/contributing/_category_.json b/docs/docs/contributing/_category_.json index 4f0dcc0..a9d5ad6 100644 --- a/docs/docs/contributing/_category_.json +++ b/docs/docs/contributing/_category_.json @@ -4,5 +4,5 @@ "link": { "type": "generated-index" }, - "collapsed": true + "collapsed": false } diff --git a/docs/docs/datasets/_category_.json b/docs/docs/datasets/_category_.json index 1c3e793..860348b 100644 --- a/docs/docs/datasets/_category_.json +++ b/docs/docs/datasets/_category_.json @@ -4,5 +4,5 @@ "link": { "type": "generated-index" }, - "collapsed": true + "collapsed": false } diff --git a/docs/docs/finetune/_category_.json b/docs/docs/finetune/_category_.json index bccb814..44617cd 100644 --- a/docs/docs/finetune/_category_.json +++ b/docs/docs/finetune/_category_.json @@ -4,5 +4,5 @@ "link": { "type": "generated-index" }, - "collapsed": true + "collapsed": false } diff --git a/docs/docs/finetune/guide.md b/docs/docs/finetune/guide.md index 3f71ccd..6fb8553 100644 --- a/docs/docs/finetune/guide.md +++ b/docs/docs/finetune/guide.md @@ -3,9 +3,9 @@ title: Guide description: Fine-tuning with xTuring sidebar_position: 1 --- -import Test from './test'; + # Fine-tuning guide - + ## 1. Prepare dataset diff --git a/docs/docs/inference/_category_.json b/docs/docs/inference/_category_.json index 4ced0b3..23186df 100644 --- a/docs/docs/inference/_category_.json +++ b/docs/docs/inference/_category_.json @@ -4,5 +4,5 @@ "link": { "type": "generated-index" }, - "collapsed": true + "collapsed": false } diff --git a/docs/docs/installation.md b/docs/docs/installation.md new file mode 100644 index 0000000..0e8e9c8 --- /dev/null +++ b/docs/docs/installation.md @@ -0,0 +1,70 @@ +--- +sidebar_position: 3 +title: Installation +description: Your first time installing xTuring +--- + + +## Install via pip +You can install `xTuring` globally on your machine, but it is advised to install it inside a virtual environment. Before starting, make sure you have __Python 3.0+__ installed on your machine and have _virtualenv_ package installed as well. + +Start by creating a virtual environment in your working directory: +```bash +$ virtualenv venv +``` +Activate the virtual environment. On Unix based systems like Linux and MacOS: +```bash +$ source venv/bin/activate +``` +On Windows: +```bash +> venv\Scripts\activate +``` +Once the virtual environment is activated, you can now install `xTuring` library by running the following command on your terminal: +```bash +$ pip install xTuring +``` +This will install the latest version of xTuring available on pip. +Finally, you can test if `xTuring` has been properly installed by running the following commands on your cmd/terminal: +```bash +$ python +>>> from xturing.models import BaseModel +>>> model = BaseModel.create('opt') +>>> outputs = model.generate(texts=['Hi How are you?']) +``` +Then print the outputs variable to see what the LLM generated based on the input prompt. + +## Install from source +Install `xTuring` directly from GitHub by running the following command on your cmd/terminal: +```bash +$ pip install git+https://github.com/stochasticai/xTuring +``` +The above command will install the main version instead of the latest stable version of `xTuring`. This way of installing is a good way of being up-to-date with the latest development. There might be bugs which would be fixed in the main version but not yet rolled-out on pip. But at the same time this does not guarantee a stable version, this was of installation might break somewhere. We try our best to keep the main version free from any pitfalls and resolved of all the issues. If you run into a problem, please open up an [issue](https://github.com/stochasticai/xTuring/issues/new) and if possible, make a [contribution](https://github.com/stochasticai/xTuring/compare)! + +Finally, you can test if `xTuring` has been properly installed by running the following commands on your cmd/terminal: +```bash +$ python +>>> from xturing.models import BaseModel +>>> model = BaseModel.create('opt') +>>> outputs = model.generate(texts=['Hi How are you?']) +``` +Then print the outputs variable to see what the LLM generated based on the input prompt. + +## Editable Install +The editable install is needed when you: +1. install directly from the source +2. wish to make a contribution to the `xTuring` library. + +To do so, clone the library from _GitHub_ and install the necessary packages by running the following commands: +```bash +git clone https://github.com/stochasticai/xTuring.git +cd xTuring +pip install -e . +``` +Now you will be able to test the changes you do to the library as Python will now look at `~/xTuring/` directory in addition to the normal installation of the library. + +Next, in order to update your version, run the following command inside the `~/xTuring/` directory: +```bash +$ git pull +``` +This will fast-forward your main version to the latest developments to the library, you can freely play around and use those. diff --git a/docs/docs/playground/_category_.json b/docs/docs/playground/_category_.json index 4f67559..37bc00d 100644 --- a/docs/docs/playground/_category_.json +++ b/docs/docs/playground/_category_.json @@ -4,5 +4,5 @@ "link": { "type": "generated-index" }, - "collapsed": true -} + "collapsed": false +} diff --git a/docs/docs/quickstart.md b/docs/docs/quickstart.md index 55a3411..47045e1 100644 --- a/docs/docs/quickstart.md +++ b/docs/docs/quickstart.md @@ -4,7 +4,7 @@ title: 🚀 Quick Tour description: Your first fine-tuning job with xTuring --- -# QuickStart + **xTuring** provides fast, efficient and simple fine-tuning of LLMs, such as LLaMA, GPT-J, GPT-2, and more. It supports both single GPU and multi-GPU training. Leverage memory-efficient fine-tuning techniques like LoRA to reduce your hardware costs by up to 90% and train your models in a fraction of the time. @@ -22,6 +22,7 @@ pip install xturing The `BaseModel` is the easiest way use an off-the-shelf supported model for inference and fine-tuning. You can use `BaseModel` to load from a wide-range of supported models, the list of which is mentioned below: +### Supported Models | Model | Key | | -- | -- | |Bloom | bloom | @@ -34,14 +35,14 @@ You can use `BaseModel` to load from a wide-range of supported models, the list |LlaMA | llama | |LlaMA2 | llama2 | |OPT-1.3B | opt | -| | | + The above mentioned are the base variants of the LLMs. Below are the templates to get their `LoRA`, `INT8`, `INT8 + LoRA` and `INT4 + LoRA` versions. | Version | Template | | -- | -- | -| LoRA| _lora| -| INT8| _int8| -| INT8 + LoRA| _lora_int8| +| LoRA | _lora| +| INT8 | _int8| +| INT8 + LoRA | _lora_int8| ** In order to load any model's __`INT4+LoRA`__ version, you will need to make use of `GenericLoraKbitModel` class from `xturing.models`. Below is how to use it: ```python From e53108d873fcb179c64aaaac6e16b831458ec1e0 Mon Sep 17 00:00:00 2001 From: Tushar Date: Tue, 8 Aug 2023 17:15:48 +0530 Subject: [PATCH 04/36] docs: Added tutorials page, modified inference guide Revamped the inference guide for GenericModel, added tutorials page and added added tabs for activating env in installation --- docs/docs/finetune/guide.md | 7 +++++-- docs/docs/finetune/test.jsx | 2 +- docs/docs/inference/guide.md | 36 +++++++++++++++++++++++++++++++++--- docs/docs/installation.md | 21 ++++++++++++++++++--- docs/docs/tutorials.md | 11 +++++++++++ 5 files changed, 68 insertions(+), 9 deletions(-) create mode 100644 docs/docs/tutorials.md diff --git a/docs/docs/finetune/guide.md b/docs/docs/finetune/guide.md index 6fb8553..c135621 100644 --- a/docs/docs/finetune/guide.md +++ b/docs/docs/finetune/guide.md @@ -3,9 +3,12 @@ title: Guide description: Fine-tuning with xTuring sidebar_position: 1 --- - + +import Test from './test'; + # Fine-tuning guide - + + ## 1. Prepare dataset diff --git a/docs/docs/finetune/test.jsx b/docs/docs/finetune/test.jsx index 930bce7..540bc5f 100644 --- a/docs/docs/finetune/test.jsx +++ b/docs/docs/finetune/test.jsx @@ -1,6 +1,6 @@ import React, { useState } from 'react' import clsx from 'clsx' -import styles from './styles.module.css' +// import styles from './styles.module.css' import MDXContent from '@theme/MDXContent' import CodeBlock from '@theme/CodeBlock' diff --git a/docs/docs/inference/guide.md b/docs/docs/inference/guide.md index bd871c3..912b4e3 100644 --- a/docs/docs/inference/guide.md +++ b/docs/docs/inference/guide.md @@ -4,7 +4,9 @@ description: Inferencing guide sidebar_position: 1 --- -# Inferencing guide +# Inference Guide + +## Inference using `BaseModel` Once you have fine-tuned your model, you can run the inferences as simple as follows. @@ -13,22 +15,50 @@ Once you have fine-tuned your model, you can run the inferences as simple as fol Load your model from a checkpoint after fine-tuning it. ```python +# Make the ncessary imports from xturing.models.base import BaseModel - +# Load the desired model model = BaseModel.load("/dir/path") ``` Load your model with the default weights ```python +# Make the ncessary imports from xturing.models.base import BaseModel - +# Load the desired model model = BaseModel.create("llama_lora") ``` ### 2. Run the generate method ```python +# Make inference +output = model.generate(texts=["Why are the LLMs so important?"]) +# Print the generated outputs +print("Generated output: {}".format(output)) +``` + +## Inference using `GenericModel` + +Once you have fine-tuned your model, you can run the inferences as simple as follows. + +### 1. (Optional) Load your model + +Load your model from a checkpoint after fine-tuning it. + +```python +# Make the necessary imports +from xturing.models import GenericModel +# Load your desired model +model = GenericModel("/dir/path") +``` + +### 2. Run the generate method + +```python +# Make inference output = model.generate(texts=["Why are the LLMs so important?"]) +# Print the generated outputs print("Generated output: {}".format(output)) ``` diff --git a/docs/docs/installation.md b/docs/docs/installation.md index 0e8e9c8..dd09243 100644 --- a/docs/docs/installation.md +++ b/docs/docs/installation.md @@ -5,6 +5,9 @@ description: Your first time installing xTuring --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + ## Install via pip You can install `xTuring` globally on your machine, but it is advised to install it inside a virtual environment. Before starting, make sure you have __Python 3.0+__ installed on your machine and have _virtualenv_ package installed as well. @@ -12,14 +15,26 @@ Start by creating a virtual environment in your working directory: ```bash $ virtualenv venv ``` -Activate the virtual environment. On Unix based systems like Linux and MacOS: +Activate the virtual environment. + + + + ```bash $ source venv/bin/activate ``` -On Windows: + + + + ```bash -> venv\Scripts\activate +> venv\Scripts\Activate ``` + + + + + Once the virtual environment is activated, you can now install `xTuring` library by running the following command on your terminal: ```bash $ pip install xTuring diff --git a/docs/docs/tutorials.md b/docs/docs/tutorials.md new file mode 100644 index 0000000..7538376 --- /dev/null +++ b/docs/docs/tutorials.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 3 +title: Tutorials +description: Your first time using xTuring +--- + +Below is a list of some handy walk-throughs to make help you get kick-started with `xTuring` library. + +1. [Run inference with `BaseModel` class](/inference/guide) +2. [Run inference with `GenericModel` class](/inference/guide#inference-using-genericmodel) +3. [Fine-tune a pretrained model](/finetune/guide) \ No newline at end of file From 54818c5682105c18972a6f59ab58d756fd2abe14 Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 9 Aug 2023 13:37:42 +0530 Subject: [PATCH 05/36] docs: fixed fine-tune guide, added prepare.md and fixed quickstart prepare.md contains dataset preparation guide, fine-tune guide revamped --- docs/docs/datasets/prepare.md | 65 + docs/docs/finetune/guide.md | 173 +- docs/docs/finetune/test.jsx | 91 +- docs/docs/quickstart.md | 24 +- docs/package-lock.json | 4484 ++++++++++++++++++--------------- 5 files changed, 2593 insertions(+), 2244 deletions(-) create mode 100644 docs/docs/datasets/prepare.md diff --git a/docs/docs/datasets/prepare.md b/docs/docs/datasets/prepare.md new file mode 100644 index 0000000..f9c4007 --- /dev/null +++ b/docs/docs/datasets/prepare.md @@ -0,0 +1,65 @@ +--- +title: Prepare Dataset +description: Use self-instruction to generate a dataset +sidebar_position: 3 +--- + +## Prepare Instruction dataset + +For this tutorial you will need to prepare a dataset which contains 3 columns (instruction, text, target) for instruction fine-tuning or 2 columns (text, target) for text fine-tuning. Here, we show you how to convert Alpaca dataset to be used for instruction fine-tuning. + +1. Download Alpaca dataset from this [link](https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json) + +2. Convert it to instruction dataset format: + +```python +import json +from datasets import Dataset, DatasetDict + +alpaca_data = json.load(open('/path/to/alpaca_dataset')) +instructions = [] +inputs = [] +outputs = [] + +for data in alpaca_data: + instructions.append(data["instruction"]) + inputs.append(data["input"]) + outputs.append(data["output"]) + +data_dict = { + "train": {"instruction": instructions, "text": inputs, "target": outputs} +} + +dataset = DatasetDict() +for k, v in data_dict.items(): + dataset[k] = Dataset.from_dict(v) + +dataset.save_to_disk(str("./alpaca_data")) +``` + + + + +3. Load the prepared Dataset + +After preparing the dataset in correct format, you can use this dataset for the instruction fine-tuning. + +To load the instruction dataset + +```python +from xturing.datasets.instruction_dataset import InstructionDataset + +instruction_dataset = InstructionDataset('/path/to/instruction_converted_alpaca_dataset') +``` + + + +## Prepare Text dataset + +For this, you just need to download a sample dataset to your woring directory, or generate a custom dataset. For example, you can download the Alpaca Dataset from this [link](https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json) diff --git a/docs/docs/finetune/guide.md b/docs/docs/finetune/guide.md index c135621..07c20ec 100644 --- a/docs/docs/finetune/guide.md +++ b/docs/docs/finetune/guide.md @@ -8,164 +8,85 @@ import Test from './test'; # Fine-tuning guide - +## Instruction fine-tuning -## 1. Prepare dataset - -For this tutorial you will need to prepare a dataset which contains 3 columns (instruction, text, target) for instruction fine-tuning or 2 columns (text, target) for text fine-tuning. Here, we show you how to convert Alpaca dataset to be used for instruction fine-tuning. - -1. Download Alpaca dataset from this [link](https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json) - -2. Convert it to instruction dataset format: - -```python -import json -from datasets import Dataset, DatasetDict - -alpaca_data = json.load(open(alpaca_dataset_path)) -instructions = [] -inputs = [] -outputs = [] - -for data in alpaca_data: - instructions.append(data["instruction"]) - inputs.append(data["input"]) - outputs.append(data["output"]) - -data_dict = { - "train": {"instruction": instructions, "text": inputs, "target": outputs} -} - -dataset = DatasetDict() -for k, v in data_dict.items(): - dataset[k] = Dataset.from_dict(v) - -dataset.save_to_disk(str("./alpaca_data")) -``` - - -:::info - -- *alpaca_dataset_path*: The path where the Alpaca dataset is stored. -::: - -## 2. Instruction fine-tuning +First, make sure that you have prepared your fine-tuning dataset for instruction fine-tuning. To know how, refer [here](/datasets/prepare#prepare-instruction-dataset). After preparing the dataset in correct format, you can start the instruction fine-tuning. -1. Load the instruction dataset and initialize the model - -```python -from xturing.datasets.instruction_dataset import InstructionDataset -from xturing.models import BaseModel - -instruction_dataset = InstructionDataset(dataset_path) -model = BaseModel.create(model_name) -``` - -:::info +Start by loading the instruction dataset and initializing the model of your choice. -- *dataset_path*: The path where the converted dataset is stored. -- *model_name*: The model name you want to perform instruction fine-tuning. -::: + xTuring supports following models: -| Model name | Description | -| --------- | ---- | -| llama | LLaMA 7B model | -| llama_lora | LLaMA 7B model with LoRA technique to speed up fine-tuning | -| llama_lora_int8 | LLaMA 7B INT8 model with LoRA technique to speed up fine-tuning -| gptj | GPT-J 6B model | -| gptj_lora | GPT-J 6B model with LoRA technique to speed up fine-tuning | -| gptj_lora_int8 | GPT-J 6B INT8 model with LoRA technique to speed up fine-tuning -| gpt2 | GPT-2 model | -| gpt2_lora | GPT-2 model with LoRA technique to speed up fine-tuning | -| gpt2_lora_int8 | GPT-2 INT8 model with LoRA technique to speed up fine-tuning | -| distilgpt2 | DistilGPT-2 model | -| distilgpt2_lora | DistilGPT-2 model with LoRA technique to speed up fine-tuning | -| opt | OPT 1.3B model | -| opt_lora | OPT 1.3B model with LoRA technique to speed up fine-tuning | -| opt_lora_int8 | OPT 1.3B INT8 model with LoRA technique to speed up fine-tuning | -| cerebras | Cerebras-GPT 1.3B model | -| cerebras_lora | Cerebras-GPT 1.3B model with LoRA technique to speed up fine-tuning | -| cerebras_lora_int8 | Cerebras-GPT 1.3B INT8 model with LoRA technique to speed up fine-tuning | -| galactica | Galactica 6.7B model | -| galactica_lora | Galactica 6.7B model with LoRA technique to speed up fine-tuning | -| galactica_lora_int8 | Galactica 6.7B INT8 model with LoRA technique to speed up fine-tuning | -| bloom | Bloom 1.1B model | -| bloom_lora | Bloom 1.1B model with LoRA technique to speed up fine-tuning | -| bloom_lora_int8 | Bloom 1.1B INT8 model with LoRA technique to speed up fine-tuning | - - -2. Start the fine-tuning +| Model Name | Model Key | Description | +| ------------ | --------- | ---- | +| BLOOM | bloom | Bloom 1.1B model | +| BLOOM LoRA | bloom_lora | Bloom 1.1B model with LoRA technique to speed up fine-tuning | +| BLOOM LoRA INT8 | bloom_lora_int8 | Bloom 1.1B INT8 model with LoRA technique to speed up fine-tuning | +| Cerebras | cerebras | Cerebras-GPT 1.3B model | +| Cerebras LoRA | cerebras_lora | Cerebras-GPT 1.3B model with LoRA technique to speed up fine-tuning | +| Cerebras LoRA INT8 | cerebras_lora_int8 | Cerebras-GPT 1.3B INT8 model with LoRA technique to speed up fine-tuning | +| DistilGPT-2 | distilgpt2 | DistilGPT-2 model | +| DistilGPT-2 LoRA | distilgpt2_lora | DistilGPT-2 model with LoRA technique to speed up fine-tuning | +| Galactica | galactica | Galactica 6.7B model | +| Galactica LoRA | galactica_lora | Galactica 6.7B model with LoRA technique to speed up fine-tuning | +| Galactica LoRA INT8 | galactica_lora_int8 | Galactica 6.7B INT8 model with LoRA technique to speed up fine-tuning | +| GPT-J | gptj | GPT-J 6B model | +| GPT-J LoRA | gptj_lora | GPT-J 6B model with LoRA technique to speed up fine-tuning | +| GPT-J LoRA INT8 | gptj_lora_int8 | GPT-J 6B INT8 model with LoRA technique to speed up fine-tuning +| GPT-2 | gpt2 | GPT-2 model | +| GPT-2 LoRA | gpt2_lora | GPT-2 model with LoRA technique to speed up fine-tuning | +| GPT-2 LoRA INT8 | gpt2_lora_int8 | GPT-2 INT8 model with LoRA technique to speed up fine-tuning | +| LLaMA | llama | LLaMA 7B model | +| LLaMA LoRa | llama_lora | LLaMA 7B model with LoRA technique to speed up fine-tuning | +| LLaMA LoRA INT8 | llama_lora_int8 | LLaMA 7B INT8 model with LoRA technique to speed up fine-tuning +| OPT | opt | OPT 1.3B model | +| OPT LoRA | opt_lora | OPT 1.3B model with LoRA technique to speed up fine-tuning | +| OPT LoRA INT8 | opt_lora_int8 | OPT 1.3B INT8 model with LoRA technique to speed up fine-tuning | + + +Next, we need to start the fine-tuning ```python model.finetune(dataset=instruction_dataset) ``` -3. Generate an output text with the fine-tuned model +Finally, let us test how our fine-tuned model performs using the `.generate()` function. ```python output = model.generate(texts=["Why LLM models are becoming so important?"]) print("Generated output by the model: {}".format(output)) ``` -## 3. Text fine-tuning +## Text fine-tuning After preparing the dataset in correct format, you can start the text fine-tuning. -1. Load the text dataset and initialize the model +First, load the text dataset and initialize the model of your choice -```python -from xturing.datasets.text_dataset import TextDataset -from xturing.models import BaseModel + -instruction_dataset = TextDataset(dataset_path) -model = BaseModel.create(model_name) -``` + + -xTuring supports following models: -| Model name | Description | -| --------- | ---- | -| llama | LLaMA 7B model | -| llama_lora | LLaMA 7B model with LoRA technique to speed up fine-tuning | -| llama_lora_int8 | LLaMA 7B INT8 model with LoRA technique to speed up fine-tuning -| gptj | GPT-J 6B model | -| gptj_lora | GPT-J 6B model with LoRA technique to speed up fine-tuning | -| gptj_lora_int8 | GPT-J 6B INT8 model with LoRA technique to speed up fine-tuning -| gpt2 | GPT-2 model | -| gpt2_lora | GPT-2 model with LoRA technique to speed up fine-tuning | -| gpt2_lora_int8 | GPT-2 INT8 model with LoRA technique to speed up fine-tuning | -| distilgpt2 | DistilGPT-2 model | -| distilgpt2_lora | DistilGPT-2 model with LoRA technique to speed up fine-tuning | -| opt | OPT 1.3B model | -| opt_lora | OPT 1.3B model with LoRA technique to speed up fine-tuning | -| opt_lora_int8 | OPT 1.3B INT8 model with LoRA technique to speed up fine-tuning | -| cerebras | Cerebras-GPT 1.3B model | -| cerebras_lora | Cerebras-GPT 1.3B model with LoRA technique to speed up fine-tuning | -| cerebras_lora_int8 | Cerebras-GPT 1.3B INT8 model with LoRA technique to speed up fine-tuning | -| galactica | Galactica 6.7B model | -| galactica_lora | Galactica 6.7B model with LoRA technique to speed up fine-tuning | -| galactica_lora_int8 | Galactica 6.7B INT8 model with LoRA technique to speed up fine-tuning | -| bloom | Bloom 1.1B model | -| bloom_lora | Bloom 1.1B model with LoRA technique to speed up fine-tuning | -| bloom_lora_int8 | Bloom 1.1B INT8 model with LoRA technique to speed up fine-tuning | - - -2. Start the fine-tuning +Next, we need to start the fine-tuning ```python model.finetune(dataset=instruction_dataset) ``` -3. Generate an output text with the fine-tuned model +Finally, let us test how our fine-tuned model performs using the `.generate()` function. ```python output = model.generate(texts=["Why LLM models are becoming so important?"]) diff --git a/docs/docs/finetune/test.jsx b/docs/docs/finetune/test.jsx index 540bc5f..929ac3b 100644 --- a/docs/docs/finetune/test.jsx +++ b/docs/docs/finetune/test.jsx @@ -1,70 +1,57 @@ import React, { useState } from 'react' import clsx from 'clsx' -// import styles from './styles.module.css' import MDXContent from '@theme/MDXContent' import CodeBlock from '@theme/CodeBlock' - -export default function Test() { - const [model, setModel] = useState('LLaMa') - const [version, setVersion] = useState('LLaMa') - console.log(model, version) +export default function Test( + {instruction} +) { + const [code, setCode] = useState('llama'); return (
- + - - - - -
) diff --git a/docs/docs/quickstart.md b/docs/docs/quickstart.md index 47045e1..e93c9b8 100644 --- a/docs/docs/quickstart.md +++ b/docs/docs/quickstart.md @@ -23,18 +23,18 @@ The `BaseModel` is the easiest way use an off-the-shelf supported model for infe You can use `BaseModel` to load from a wide-range of supported models, the list of which is mentioned below: ### Supported Models -| Model | Key | -| -- | -- | -|Bloom | bloom | -|Cerebras | cerebras | -|DistilGPT-2 | distilgpt2 | -|Falcon-7B | falcon | -|Galactica | galactica | -|GPT-J | gptj | -|GPT-2 | gpt2 | -|LlaMA | llama | -|LlaMA2 | llama2 | -|OPT-1.3B | opt | +| Model | Key | Description | +| -- | -- | ---- | +|Bloom | bloom | Bloom 1.1B model | +|Cerebras | cerebras | Cerebras-GPT 1.3B model | +|DistilGPT-2 | distilgpt2 | DistilGPT-2 model | +|Falcon | falcon | Falcon 7B model | +|Galactica | galactica | Galactica 6.7B model | +|GPT-J | gptj | GPT-J 6B model | +|GPT-2 | gpt2 | GPT-2 model | +|LLaMA | llama | LLaMA 7B model | +|LlaMA2 | llama2 | LLaMA2 model | +|OPT | opt | OPT 1.3B model | The above mentioned are the base variants of the LLMs. Below are the templates to get their `LoRA`, `INT8`, `INT8 + LoRA` and `INT4 + LoRA` versions. diff --git a/docs/package-lock.json b/docs/package-lock.json index 3917be7..a2c3942 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -26,19 +26,31 @@ } }, "node_modules/@algolia/autocomplete-core": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.4.tgz", - "integrity": "sha512-daoLpQ3ps/VTMRZDEBfU8ixXd+amZcNJ4QSP3IERGyzqnL5Ch8uSRFt/4G8pUvW9c3o6GA4vtVv4I4lmnkdXyg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", + "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", + "@algolia/autocomplete-shared": "1.9.3" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", + "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", "dependencies": { - "@algolia/autocomplete-shared": "1.7.4" + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" } }, "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.4.tgz", - "integrity": "sha512-s37hrvLEIfcmKY8VU9LsAXgm2yfmkdHT3DnA3SgHaY93yjZ2qL57wzb5QweVkYuEBZkT2PIREvRoLXC2sxTbpQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", + "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", "dependencies": { - "@algolia/autocomplete-shared": "1.7.4" + "@algolia/autocomplete-shared": "1.9.3" }, "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", @@ -46,79 +58,83 @@ } }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.4.tgz", - "integrity": "sha512-2VGCk7I9tA9Ge73Km99+Qg87w0wzW4tgUruvWAn/gfey1ZXgmxZtyIRBebk35R1O8TbK77wujVtCnpsGpRy1kg==" + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", + "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.16.0.tgz", - "integrity": "sha512-jVrk0YB3tjOhD5/lhBtYCVCeLjZmVpf2kdi4puApofytf/R0scjWz0GdozlW4HhU+Prxmt/c9ge4QFjtv5OAzQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.19.1.tgz", + "integrity": "sha512-FYAZWcGsFTTaSAwj9Std8UML3Bu8dyWDncM7Ls8g+58UOe4XYdlgzXWbrIgjaguP63pCCbMoExKr61B+ztK3tw==", "dependencies": { - "@algolia/cache-common": "4.16.0" + "@algolia/cache-common": "4.19.1" } }, "node_modules/@algolia/cache-common": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.16.0.tgz", - "integrity": "sha512-4iHjkSYQYw46pITrNQgXXhvUmcekI8INz1m+SzmqLX8jexSSy4Ky4zfGhZzhhhLHXUP3+x/PK/c0qPjxEvRwKQ==" + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.19.1.tgz", + "integrity": "sha512-XGghi3l0qA38HiqdoUY+wvGyBsGvKZ6U3vTiMBT4hArhP3fOGLXpIINgMiiGjTe4FVlTa5a/7Zf2bwlIHfRqqg==" }, "node_modules/@algolia/cache-in-memory": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.16.0.tgz", - "integrity": "sha512-p7RYykvA6Ip6QENxrh99nOD77otVh1sJRivcgcVpnjoZb5sIN3t33eUY1DpB9QSBizcrW+qk19rNkdnZ43a+PQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.19.1.tgz", + "integrity": "sha512-+PDWL+XALGvIginigzu8oU6eWw+o76Z8zHbBovWYcrtWOEtinbl7a7UTt3x3lthv+wNuFr/YD1Gf+B+A9V8n5w==", "dependencies": { - "@algolia/cache-common": "4.16.0" + "@algolia/cache-common": "4.19.1" } }, "node_modules/@algolia/client-account": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.16.0.tgz", - "integrity": "sha512-eydcfpdIyuWoKgUSz5iZ/L0wE/Wl7958kACkvTHLDNXvK/b8Z1zypoJavh6/km1ZNQmFpeYS2jrmq0kUSFn02w==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.19.1.tgz", + "integrity": "sha512-Oy0ritA2k7AMxQ2JwNpfaEcgXEDgeyKu0V7E7xt/ZJRdXfEpZcwp9TOg4TJHC7Ia62gIeT2Y/ynzsxccPw92GA==", "dependencies": { - "@algolia/client-common": "4.16.0", - "@algolia/client-search": "4.16.0", - "@algolia/transporter": "4.16.0" + "@algolia/client-common": "4.19.1", + "@algolia/client-search": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/@algolia/client-analytics": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.16.0.tgz", - "integrity": "sha512-cONWXH3BfilgdlCofUm492bJRWtpBLVW/hsUlfoFtiX1u05xoBP7qeiDwh9RR+4pSLHLodYkHAf5U4honQ55Qg==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.19.1.tgz", + "integrity": "sha512-5QCq2zmgdZLIQhHqwl55ZvKVpLM3DNWjFI4T+bHr3rGu23ew2bLO4YtyxaZeChmDb85jUdPDouDlCumGfk6wOg==", "dependencies": { - "@algolia/client-common": "4.16.0", - "@algolia/client-search": "4.16.0", - "@algolia/requester-common": "4.16.0", - "@algolia/transporter": "4.16.0" + "@algolia/client-common": "4.19.1", + "@algolia/client-search": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/@algolia/client-common": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.16.0.tgz", - "integrity": "sha512-QVdR4019ukBH6f5lFr27W60trRxQF1SfS1qo0IP6gjsKhXhUVJuHxOCA6ArF87jrNkeuHEoRoDU+GlvaecNo8g==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.19.1.tgz", + "integrity": "sha512-3kAIVqTcPrjfS389KQvKzliC559x+BDRxtWamVJt8IVp7LGnjq+aVAXg4Xogkur1MUrScTZ59/AaUd5EdpyXgA==", "dependencies": { - "@algolia/requester-common": "4.16.0", - "@algolia/transporter": "4.16.0" + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/@algolia/client-personalization": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.16.0.tgz", - "integrity": "sha512-irtLafssDGPuhYqIwxqOxiWlVYvrsBD+EMA1P9VJtkKi3vSNBxiWeQ0f0Tn53cUNdSRNEssfoEH84JL97SV2SQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.19.1.tgz", + "integrity": "sha512-8CWz4/H5FA+krm9HMw2HUQenizC/DxUtsI5oYC0Jxxyce1vsr8cb1aEiSJArQT6IzMynrERif1RVWLac1m36xw==", "dependencies": { - "@algolia/client-common": "4.16.0", - "@algolia/requester-common": "4.16.0", - "@algolia/transporter": "4.16.0" + "@algolia/client-common": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/@algolia/client-search": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.16.0.tgz", - "integrity": "sha512-xsfrAE1jO/JDh1wFrRz+alVyW+aA6qnkzmbWWWZWEgVF3EaFqzIf9r1l/aDtDdBtNTNhX9H3Lg31+BRtd5izQA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.19.1.tgz", + "integrity": "sha512-mBecfMFS4N+yK/p0ZbK53vrZbL6OtWMk8YmnOv1i0LXx4pelY8TFhqKoTit3NPVPwoSNN0vdSN9dTu1xr1XOVw==", "dependencies": { - "@algolia/client-common": "4.16.0", - "@algolia/requester-common": "4.16.0", - "@algolia/transporter": "4.16.0" + "@algolia/client-common": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/@algolia/events": { @@ -127,47 +143,47 @@ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" }, "node_modules/@algolia/logger-common": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.16.0.tgz", - "integrity": "sha512-U9H8uCzSDuePJmbnjjTX21aPDRU6x74Tdq3dJmdYu2+pISx02UeBJm4kSgc9RW5jcR5j35G9gnjHY9Q3ngWbyQ==" + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.19.1.tgz", + "integrity": "sha512-i6pLPZW/+/YXKis8gpmSiNk1lOmYCmRI6+x6d2Qk1OdfvX051nRVdalRbEcVTpSQX6FQAoyeaui0cUfLYW5Elw==" }, "node_modules/@algolia/logger-console": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.16.0.tgz", - "integrity": "sha512-+qymusiM+lPZKrkf0tDjCQA158eEJO2IU+Nr/sJ9TFyI/xkFPjNPzw/Qbc8Iy/xcOXGlc6eMgmyjtVQqAWq6UA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.19.1.tgz", + "integrity": "sha512-jj72k9GKb9W0c7TyC3cuZtTr0CngLBLmc8trzZlXdfvQiigpUdvTi1KoWIb2ZMcRBG7Tl8hSb81zEY3zI2RlXg==", "dependencies": { - "@algolia/logger-common": "4.16.0" + "@algolia/logger-common": "4.19.1" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.16.0.tgz", - "integrity": "sha512-gK+kvs6LHl/PaOJfDuwjkopNbG1djzFLsVBklGBsSU6h6VjFkxIpo6Qq80IK14p9cplYZfhfaL12va6Q9p3KVQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.19.1.tgz", + "integrity": "sha512-09K/+t7lptsweRTueHnSnmPqIxbHMowejAkn9XIcJMLdseS3zl8ObnS5GWea86mu3vy4+8H+ZBKkUN82Zsq/zg==", "dependencies": { - "@algolia/requester-common": "4.16.0" + "@algolia/requester-common": "4.19.1" } }, "node_modules/@algolia/requester-common": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.16.0.tgz", - "integrity": "sha512-3Zmcs/iMubcm4zqZ3vZG6Zum8t+hMWxGMzo0/uY2BD8o9q5vMxIYI0c4ocdgQjkXcix189WtZNkgjSOBzSbkdw==" + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.19.1.tgz", + "integrity": "sha512-BisRkcWVxrDzF1YPhAckmi2CFYK+jdMT60q10d7z3PX+w6fPPukxHRnZwooiTUrzFe50UBmLItGizWHP5bDzVQ==" }, "node_modules/@algolia/requester-node-http": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.16.0.tgz", - "integrity": "sha512-L8JxM2VwZzh8LJ1Zb8TFS6G3icYsCKZsdWW+ahcEs1rGWmyk9SybsOe1MLnjonGBaqPWJkn9NjS7mRdjEmBtKA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.19.1.tgz", + "integrity": "sha512-6DK52DHviBHTG2BK/Vv2GIlEw7i+vxm7ypZW0Z7vybGCNDeWzADx+/TmxjkES2h15+FZOqVf/Ja677gePsVItA==", "dependencies": { - "@algolia/requester-common": "4.16.0" + "@algolia/requester-common": "4.19.1" } }, "node_modules/@algolia/transporter": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.16.0.tgz", - "integrity": "sha512-H9BVB2EAjT65w7XGBNf5drpsW39x2aSZ942j4boSAAJPPlLmjtj5IpAP7UAtsV8g9Beslonh0bLa1XGmE/P0BA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.19.1.tgz", + "integrity": "sha512-nkpvPWbpuzxo1flEYqNIbGz7xhfhGOKGAZS7tzC+TELgEmi7z99qRyTfNSUlW7LZmB3ACdnqAo+9A9KFBENviQ==", "dependencies": { - "@algolia/cache-common": "4.16.0", - "@algolia/logger-common": "4.16.0", - "@algolia/requester-common": "4.16.0" + "@algolia/cache-common": "4.19.1", + "@algolia/logger-common": "4.19.1", + "@algolia/requester-common": "4.19.1" } }, "node_modules/@ampproject/remapping": { @@ -183,20 +199,85 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", + "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.10", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "engines": { "node": ">=6.9.0" } @@ -231,9 +312,9 @@ } }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -266,67 +347,64 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", + "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.22.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", - "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz", + "integrity": "sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -335,13 +413,22 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", - "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -350,6 +437,14 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", @@ -367,123 +462,111 @@ } }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dependencies": { - "@babel/types": "^7.18.6" - }, + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", "dependencies": { - "@babel/types": "^7.21.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" }, "engines": { "node": ">=6.9.0" @@ -493,87 +576,86 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dependencies": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", + "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.10" }, "engines": { "node": ">=6.9.0" @@ -593,12 +675,12 @@ } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", + "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -670,9 +752,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", + "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -681,11 +763,11 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -695,13 +777,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -710,16 +792,23 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "engines": { "node": ">=6.9.0" }, @@ -727,44 +816,34 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { - "@babel/core": "^7.12.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -773,43 +852,34 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -818,13 +888,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -833,46 +902,34 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -881,73 +938,65 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=4" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -955,21 +1004,24 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { + "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -980,34 +1032,58 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz", + "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" @@ -1016,23 +1092,28 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1041,78 +1122,123 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", + "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", + "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", + "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1121,12 +1247,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", + "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1135,12 +1262,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1149,12 +1277,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", + "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1163,14 +1292,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1179,12 +1306,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1193,12 +1322,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", + "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1207,20 +1337,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1229,13 +1351,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", + "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -1244,12 +1366,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1258,13 +1380,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1273,12 +1395,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1287,13 +1411,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1302,12 +1428,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1316,28 +1443,27 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1346,12 +1472,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", + "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1360,13 +1487,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", + "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -1375,14 +1502,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", + "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1391,15 +1520,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1408,13 +1535,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", + "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1423,27 +1550,28 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz", + "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1452,13 +1580,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1467,12 +1595,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", + "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1482,11 +1613,11 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1496,11 +1627,11 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz", - "integrity": "sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz", + "integrity": "sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1510,11 +1641,11 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", + "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1524,15 +1655,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", - "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", + "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.21.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1542,11 +1673,11 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.18.6" + "@babel/plugin-transform-react-jsx": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1556,12 +1687,12 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", + "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1571,12 +1702,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1586,11 +1717,11 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1619,19 +1750,19 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1641,12 +1772,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1656,11 +1787,11 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1670,11 +1801,11 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1684,11 +1815,11 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1698,14 +1829,14 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", - "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.10.tgz", + "integrity": "sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1715,11 +1846,26 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1729,12 +1875,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1743,38 +1889,41 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", + "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1784,45 +1933,62 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.10", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.10", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.10", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.10", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.10", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1831,40 +1997,89 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/preset-react": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", + "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-react-display-name": "^7.18.6", - "@babel/plugin-transform-react-jsx": "^7.18.6", - "@babel/plugin-transform-react-jsx-development": "^7.18.6", - "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-transform-react-display-name": "^7.22.5", + "@babel/plugin-transform-react-jsx": "^7.22.5", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1874,13 +2089,15 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz", - "integrity": "sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", + "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-transform-typescript": "^7.21.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-typescript": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1918,13 +2135,13 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1951,12 +2168,12 @@ } }, "node_modules/@babel/types": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", - "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", + "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1981,18 +2198,18 @@ } }, "node_modules/@docsearch/css": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.3.3.tgz", - "integrity": "sha512-6SCwI7P8ao+se1TUsdZ7B4XzL+gqeQZnBc+2EONZlcVa0dVrk0NjETxozFKgMv0eEGH8QzP1fkN+A1rH61l4eg==" + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.1.tgz", + "integrity": "sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==" }, "node_modules/@docsearch/react": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.3.3.tgz", - "integrity": "sha512-pLa0cxnl+G0FuIDuYlW+EBK6Rw2jwLw9B1RHIeS4N4s2VhsfJ/wzeCi3CWcs5yVfxLd5ZK50t//TMA5e79YT7Q==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.1.tgz", + "integrity": "sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==", "dependencies": { - "@algolia/autocomplete-core": "1.7.4", - "@algolia/autocomplete-preset-algolia": "1.7.4", - "@docsearch/css": "3.3.3", + "@algolia/autocomplete-core": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.9.3", + "@docsearch/css": "3.5.1", "algoliasearch": "^4.0.0" }, "peerDependencies": { @@ -2013,9 +2230,9 @@ } }, "node_modules/@docusaurus/core": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.0.tgz", - "integrity": "sha512-J55/WEoIpRcLf3afO5POHPguVZosKmJEQWKBL+K7TAnfuE7i+Y0NPLlkKtnWCehagGsgTqClfQEexH/UT4kELA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.1.tgz", + "integrity": "sha512-SNsY7PshK3Ri7vtsLXVeAJGS50nJN3RgF836zkyUfAD01Fq+sAk5EwWgLw+nnm5KVNGDu7PRR2kRGDsWvqpo0g==", "dependencies": { "@babel/core": "^7.18.6", "@babel/generator": "^7.18.7", @@ -2027,13 +2244,13 @@ "@babel/runtime": "^7.18.6", "@babel/runtime-corejs3": "^7.18.6", "@babel/traverse": "^7.18.8", - "@docusaurus/cssnano-preset": "2.4.0", - "@docusaurus/logger": "2.4.0", - "@docusaurus/mdx-loader": "2.4.0", + "@docusaurus/cssnano-preset": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-common": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "@slorber/static-site-generator-webpack-plugin": "^4.0.7", "@svgr/webpack": "^6.2.1", "autoprefixer": "^10.4.7", @@ -2101,9 +2318,9 @@ } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.0.tgz", - "integrity": "sha512-RmdiA3IpsLgZGXRzqnmTbGv43W4OD44PCo+6Q/aYjEM2V57vKCVqNzuafE94jv0z/PjHoXUrjr69SaRymBKYYw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.1.tgz", + "integrity": "sha512-ka+vqXwtcW1NbXxWsh6yA1Ckii1klY9E53cJ4O9J09nkMBgrNX3iEFED1fWdv8wf4mJjvGi5RLZ2p9hJNjsLyQ==", "dependencies": { "cssnano-preset-advanced": "^5.3.8", "postcss": "^8.4.14", @@ -2115,9 +2332,9 @@ } }, "node_modules/@docusaurus/logger": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.4.0.tgz", - "integrity": "sha512-T8+qR4APN+MjcC9yL2Es+xPJ2923S9hpzDmMtdsOcUGLqpCGBbU1vp3AAqDwXtVgFkq+NsEk7sHdVsfLWR/AXw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.4.1.tgz", + "integrity": "sha512-5h5ysIIWYIDHyTVd8BjheZmQZmEgWDR54aQ1BX9pjFfpyzFo5puKXKYrYJXbjEHGyVhEzmB9UXwbxGfaZhOjcg==", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.4.0" @@ -2127,14 +2344,14 @@ } }, "node_modules/@docusaurus/mdx-loader": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.0.tgz", - "integrity": "sha512-GWoH4izZKOmFoC+gbI2/y8deH/xKLvzz/T5BsEexBye8EHQlwsA7FMrVa48N063bJBH4FUOiRRXxk5rq9cC36g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.1.tgz", + "integrity": "sha512-4KhUhEavteIAmbBj7LVFnrVYDiU51H5YWW1zY6SmBSte/YLhDutztLTBE0PQl1Grux1jzUJeaSvAzHpTn6JJDQ==", "dependencies": { "@babel/parser": "^7.18.8", "@babel/traverse": "^7.18.8", - "@docusaurus/logger": "2.4.0", - "@docusaurus/utils": "2.4.0", + "@docusaurus/logger": "2.4.1", + "@docusaurus/utils": "2.4.1", "@mdx-js/mdx": "^1.6.22", "escape-html": "^1.0.3", "file-loader": "^6.2.0", @@ -2158,12 +2375,12 @@ } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.0.tgz", - "integrity": "sha512-YEQO2D3UXs72qCn8Cr+RlycSQXVGN9iEUyuHwTuK4/uL/HFomB2FHSU0vSDM23oLd+X/KibQ3Ez6nGjQLqXcHg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.1.tgz", + "integrity": "sha512-gLBuIFM8Dp2XOCWffUDSjtxY7jQgKvYujt7Mx5s4FCTfoL5dN1EVbnrn+O2Wvh8b0a77D57qoIDY7ghgmatR1A==", "dependencies": { "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "2.4.0", + "@docusaurus/types": "2.4.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2177,17 +2394,17 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.0.tgz", - "integrity": "sha512-YwkAkVUxtxoBAIj/MCb4ohN0SCtHBs4AS75jMhPpf67qf3j+U/4n33cELq7567hwyZ6fMz2GPJcVmctzlGGThQ==", - "dependencies": { - "@docusaurus/core": "2.4.0", - "@docusaurus/logger": "2.4.0", - "@docusaurus/mdx-loader": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-common": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.1.tgz", + "integrity": "sha512-E2i7Knz5YIbE1XELI6RlTnZnGgS52cUO4BlCiCUCvQHbR+s1xeIWz4C6BtaVnlug0Ccz7nFSksfwDpVlkujg5Q==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "cheerio": "^1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^10.1.0", @@ -2207,17 +2424,17 @@ } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.0.tgz", - "integrity": "sha512-ic/Z/ZN5Rk/RQo+Io6rUGpToOtNbtPloMR2JcGwC1xT2riMu6zzfSwmBi9tHJgdXH6CB5jG+0dOZZO8QS5tmDg==", - "dependencies": { - "@docusaurus/core": "2.4.0", - "@docusaurus/logger": "2.4.0", - "@docusaurus/mdx-loader": "2.4.0", - "@docusaurus/module-type-aliases": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.1.tgz", + "integrity": "sha512-Lo7lSIcpswa2Kv4HEeUcGYqaasMUQNpjTXpV0N8G6jXgZaQurqp7E8NGYeGbDXnb48czmHWbzDL4S3+BbK0VzA==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/module-type-aliases": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "@types/react-router-config": "^5.0.6", "combine-promises": "^1.1.0", "fs-extra": "^10.1.0", @@ -2237,15 +2454,15 @@ } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.0.tgz", - "integrity": "sha512-Pk2pOeOxk8MeU3mrTU0XLIgP9NZixbdcJmJ7RUFrZp1Aj42nd0RhIT14BGvXXyqb8yTQlk4DmYGAzqOfBsFyGw==", - "dependencies": { - "@docusaurus/core": "2.4.0", - "@docusaurus/mdx-loader": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.1.tgz", + "integrity": "sha512-/UjuH/76KLaUlL+o1OvyORynv6FURzjurSjvn2lbWTFc4tpYY2qLYTlKpTCBVPhlLUQsfyFnshEJDLmPneq2oA==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "fs-extra": "^10.1.0", "tslib": "^2.4.0", "webpack": "^5.73.0" @@ -2259,13 +2476,13 @@ } }, "node_modules/@docusaurus/plugin-debug": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.4.0.tgz", - "integrity": "sha512-KC56DdYjYT7Txyux71vXHXGYZuP6yYtqwClvYpjKreWIHWus5Zt6VNi23rMZv3/QKhOCrN64zplUbdfQMvddBQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.4.1.tgz", + "integrity": "sha512-7Yu9UPzRShlrH/G8btOpR0e6INFZr0EegWplMjOqelIwAcx3PKyR8mgPTxGTxcqiYj6hxSCRN0D8R7YrzImwNA==", "dependencies": { - "@docusaurus/core": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", "fs-extra": "^10.1.0", "react-json-view": "^1.21.3", "tslib": "^2.4.0" @@ -2279,13 +2496,13 @@ } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.4.0.tgz", - "integrity": "sha512-uGUzX67DOAIglygdNrmMOvEp8qG03X20jMWadeqVQktS6nADvozpSLGx4J0xbkblhJkUzN21WiilsP9iVP+zkw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.4.1.tgz", + "integrity": "sha512-dyZJdJiCoL+rcfnm0RPkLt/o732HvLiEwmtoNzOoz9MSZz117UH2J6U2vUDtzUzwtFLIf32KkeyzisbwUCgcaQ==", "dependencies": { - "@docusaurus/core": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "tslib": "^2.4.0" }, "engines": { @@ -2297,13 +2514,13 @@ } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.4.0.tgz", - "integrity": "sha512-adj/70DANaQs2+TF/nRdMezDXFAV/O/pjAbUgmKBlyOTq5qoMe0Tk4muvQIwWUmiUQxFJe+sKlZGM771ownyOg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.4.1.tgz", + "integrity": "sha512-mKIefK+2kGTQBYvloNEKtDmnRD7bxHLsBcxgnbt4oZwzi2nxCGjPX6+9SQO2KCN5HZbNrYmGo5GJfMgoRvy6uA==", "dependencies": { - "@docusaurus/core": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "tslib": "^2.4.0" }, "engines": { @@ -2315,13 +2532,13 @@ } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.4.0.tgz", - "integrity": "sha512-E66uGcYs4l7yitmp/8kMEVQftFPwV9iC62ORh47Veqzs6ExwnhzBkJmwDnwIysHBF1vlxnzET0Fl2LfL5fRR3A==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.4.1.tgz", + "integrity": "sha512-Zg4Ii9CMOLfpeV2nG74lVTWNtisFaH9QNtEw48R5QE1KIwDBdTVaiSA18G1EujZjrzJJzXN79VhINSbOJO/r3g==", "dependencies": { - "@docusaurus/core": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "tslib": "^2.4.0" }, "engines": { @@ -2333,16 +2550,16 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.4.0.tgz", - "integrity": "sha512-pZxh+ygfnI657sN8a/FkYVIAmVv0CGk71QMKqJBOfMmDHNN1FeDeFkBjWP49ejBqpqAhjufkv5UWq3UOu2soCw==", - "dependencies": { - "@docusaurus/core": "2.4.0", - "@docusaurus/logger": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-common": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.4.1.tgz", + "integrity": "sha512-lZx+ijt/+atQ3FVE8FOHV/+X3kuok688OydDXrqKRJyXBJZKgGjA2Qa8RjQ4f27V2woaXhtnyrdPop/+OjVMRg==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "fs-extra": "^10.1.0", "sitemap": "^7.1.1", "tslib": "^2.4.0" @@ -2356,23 +2573,23 @@ } }, "node_modules/@docusaurus/preset-classic": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.4.0.tgz", - "integrity": "sha512-/5z5o/9bc6+P5ool2y01PbJhoGddEGsC0ej1MF6mCoazk8A+kW4feoUd68l7Bnv01rCnG3xy7kHUQP97Y0grUA==", - "dependencies": { - "@docusaurus/core": "2.4.0", - "@docusaurus/plugin-content-blog": "2.4.0", - "@docusaurus/plugin-content-docs": "2.4.0", - "@docusaurus/plugin-content-pages": "2.4.0", - "@docusaurus/plugin-debug": "2.4.0", - "@docusaurus/plugin-google-analytics": "2.4.0", - "@docusaurus/plugin-google-gtag": "2.4.0", - "@docusaurus/plugin-google-tag-manager": "2.4.0", - "@docusaurus/plugin-sitemap": "2.4.0", - "@docusaurus/theme-classic": "2.4.0", - "@docusaurus/theme-common": "2.4.0", - "@docusaurus/theme-search-algolia": "2.4.0", - "@docusaurus/types": "2.4.0" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.4.1.tgz", + "integrity": "sha512-P4//+I4zDqQJ+UDgoFrjIFaQ1MeS9UD1cvxVQaI6O7iBmiHQm0MGROP1TbE7HlxlDPXFJjZUK3x3cAoK63smGQ==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/plugin-content-blog": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/plugin-content-pages": "2.4.1", + "@docusaurus/plugin-debug": "2.4.1", + "@docusaurus/plugin-google-analytics": "2.4.1", + "@docusaurus/plugin-google-gtag": "2.4.1", + "@docusaurus/plugin-google-tag-manager": "2.4.1", + "@docusaurus/plugin-sitemap": "2.4.1", + "@docusaurus/theme-classic": "2.4.1", + "@docusaurus/theme-common": "2.4.1", + "@docusaurus/theme-search-algolia": "2.4.1", + "@docusaurus/types": "2.4.1" }, "engines": { "node": ">=16.14" @@ -2395,22 +2612,22 @@ } }, "node_modules/@docusaurus/theme-classic": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.4.0.tgz", - "integrity": "sha512-GMDX5WU6Z0OC65eQFgl3iNNEbI9IMJz9f6KnOyuMxNUR6q0qVLsKCNopFUDfFNJ55UU50o7P7o21yVhkwpfJ9w==", - "dependencies": { - "@docusaurus/core": "2.4.0", - "@docusaurus/mdx-loader": "2.4.0", - "@docusaurus/module-type-aliases": "2.4.0", - "@docusaurus/plugin-content-blog": "2.4.0", - "@docusaurus/plugin-content-docs": "2.4.0", - "@docusaurus/plugin-content-pages": "2.4.0", - "@docusaurus/theme-common": "2.4.0", - "@docusaurus/theme-translations": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-common": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.4.1.tgz", + "integrity": "sha512-Rz0wKUa+LTW1PLXmwnf8mn85EBzaGSt6qamqtmnh9Hflkc+EqiYMhtUJeLdV+wsgYq4aG0ANc+bpUDpsUhdnwg==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/module-type-aliases": "2.4.1", + "@docusaurus/plugin-content-blog": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/plugin-content-pages": "2.4.1", + "@docusaurus/theme-common": "2.4.1", + "@docusaurus/theme-translations": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "@mdx-js/react": "^1.6.22", "clsx": "^1.2.1", "copy-text-to-clipboard": "^3.0.1", @@ -2434,17 +2651,17 @@ } }, "node_modules/@docusaurus/theme-common": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.4.0.tgz", - "integrity": "sha512-IkG/l5f/FLY6cBIxtPmFnxpuPzc5TupuqlOx+XDN+035MdQcAh8wHXXZJAkTeYDeZ3anIUSUIvWa7/nRKoQEfg==", - "dependencies": { - "@docusaurus/mdx-loader": "2.4.0", - "@docusaurus/module-type-aliases": "2.4.0", - "@docusaurus/plugin-content-blog": "2.4.0", - "@docusaurus/plugin-content-docs": "2.4.0", - "@docusaurus/plugin-content-pages": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-common": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.4.1.tgz", + "integrity": "sha512-G7Zau1W5rQTaFFB3x3soQoZpkgMbl/SYNG8PfMFIjKa3M3q8n0m/GRf5/H/e5BqOvt8c+ZWIXGCiz+kUCSHovA==", + "dependencies": { + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/module-type-aliases": "2.4.1", + "@docusaurus/plugin-content-blog": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/plugin-content-pages": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2464,18 +2681,18 @@ } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.4.0.tgz", - "integrity": "sha512-pPCJSCL1Qt4pu/Z0uxBAuke0yEBbxh0s4fOvimna7TEcBLPq0x06/K78AaABXrTVQM6S0vdocFl9EoNgU17hqA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.4.1.tgz", + "integrity": "sha512-6BcqW2lnLhZCXuMAvPRezFs1DpmEKzXFKlYjruuas+Xy3AQeFzDJKTJFIm49N77WFCTyxff8d3E4Q9pi/+5McQ==", "dependencies": { "@docsearch/react": "^3.1.1", - "@docusaurus/core": "2.4.0", - "@docusaurus/logger": "2.4.0", - "@docusaurus/plugin-content-docs": "2.4.0", - "@docusaurus/theme-common": "2.4.0", - "@docusaurus/theme-translations": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/theme-common": "2.4.1", + "@docusaurus/theme-translations": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "algoliasearch": "^4.13.1", "algoliasearch-helper": "^3.10.0", "clsx": "^1.2.1", @@ -2494,9 +2711,9 @@ } }, "node_modules/@docusaurus/theme-translations": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.4.0.tgz", - "integrity": "sha512-kEoITnPXzDPUMBHk3+fzEzbopxLD3fR5sDoayNH0vXkpUukA88/aDL1bqkhxWZHA3LOfJ3f0vJbOwmnXW5v85Q==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.4.1.tgz", + "integrity": "sha512-T1RAGP+f86CA1kfE8ejZ3T3pUU3XcyvrGMfC/zxCtc2BsnoexuNI9Vk2CmuKCb+Tacvhxjv5unhxXce0+NKyvA==", "dependencies": { "fs-extra": "^10.1.0", "tslib": "^2.4.0" @@ -2506,9 +2723,9 @@ } }, "node_modules/@docusaurus/types": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.0.tgz", - "integrity": "sha512-xaBXr+KIPDkIaef06c+i2HeTqVNixB7yFut5fBXPGI2f1rrmEV2vLMznNGsFwvZ5XmA3Quuefd4OGRkdo97Dhw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.1.tgz", + "integrity": "sha512-0R+cbhpMkhbRXX138UOc/2XZFF8hiZa6ooZAEEJFp5scytzCw4tC1gChMFXrpa3d2tYE6AX8IrOEpSonLmfQuQ==", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", @@ -2525,11 +2742,11 @@ } }, "node_modules/@docusaurus/utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.4.0.tgz", - "integrity": "sha512-89hLYkvtRX92j+C+ERYTuSUK6nF9bGM32QThcHPg2EDDHVw6FzYQXmX6/p+pU5SDyyx5nBlE4qXR92RxCAOqfg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.4.1.tgz", + "integrity": "sha512-1lvEZdAQhKNht9aPXPoh69eeKnV0/62ROhQeFKKxmzd0zkcuE/Oc5Gpnt00y/f5bIsmOsYMY7Pqfm/5rteT5GA==", "dependencies": { - "@docusaurus/logger": "2.4.0", + "@docusaurus/logger": "2.4.1", "@svgr/webpack": "^6.2.1", "escape-string-regexp": "^4.0.0", "file-loader": "^6.2.0", @@ -2559,9 +2776,9 @@ } }, "node_modules/@docusaurus/utils-common": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.4.0.tgz", - "integrity": "sha512-zIMf10xuKxddYfLg5cS19x44zud/E9I7lj3+0bv8UIs0aahpErfNrGhijEfJpAfikhQ8tL3m35nH3hJ3sOG82A==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.4.1.tgz", + "integrity": "sha512-bCVGdZU+z/qVcIiEQdyx0K13OC5mYwxhSuDUR95oFbKVuXYRrTVrwZIqQljuo1fyJvFTKHiL9L9skQOPokuFNQ==", "dependencies": { "tslib": "^2.4.0" }, @@ -2578,12 +2795,12 @@ } }, "node_modules/@docusaurus/utils-validation": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.4.0.tgz", - "integrity": "sha512-IrBsBbbAp6y7mZdJx4S4pIA7dUyWSA0GNosPk6ZJ0fX3uYIEQgcQSGIgTeSC+8xPEx3c16o03en1jSDpgQgz/w==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.4.1.tgz", + "integrity": "sha512-unII3hlJlDwZ3w8U+pMO3Lx3RhI4YEbY3YNsQj4yzrkZzlpqZOLuAiZK2JyULnD+TKbceKU0WyWkQXtYbLNDFA==", "dependencies": { - "@docusaurus/logger": "2.4.0", - "@docusaurus/utils": "2.4.0", + "@docusaurus/logger": "2.4.1", + "@docusaurus/utils": "2.4.1", "joi": "^17.6.0", "js-yaml": "^4.1.0", "tslib": "^2.4.0" @@ -2773,9 +2990,9 @@ } }, "node_modules/@mdx-js/mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } @@ -2923,11 +3140,11 @@ } }, "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz", - "integrity": "sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -2938,11 +3155,11 @@ } }, "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz", - "integrity": "sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3254,11 +3471,11 @@ } }, "node_modules/@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.5.tgz", + "integrity": "sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg==", "dependencies": { - "@types/unist": "*" + "@types/unist": "^2" } }, "node_modules/@types/history": { @@ -3306,11 +3523,11 @@ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, "node_modules/@types/mdast": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", - "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.12.tgz", + "integrity": "sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==", "dependencies": { - "@types/unist": "*" + "@types/unist": "^2" } }, "node_modules/@types/mime": { @@ -3431,9 +3648,9 @@ } }, "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.7.tgz", + "integrity": "sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==" }, "node_modules/@types/ws": { "version": "8.5.4", @@ -3735,30 +3952,30 @@ } }, "node_modules/algoliasearch": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.16.0.tgz", - "integrity": "sha512-HAjKJ6bBblaXqO4dYygF4qx251GuJ6zCZt+qbJ+kU7sOC+yc84pawEjVpJByh+cGP2APFCsao2Giz50cDlKNPA==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.16.0", - "@algolia/cache-common": "4.16.0", - "@algolia/cache-in-memory": "4.16.0", - "@algolia/client-account": "4.16.0", - "@algolia/client-analytics": "4.16.0", - "@algolia/client-common": "4.16.0", - "@algolia/client-personalization": "4.16.0", - "@algolia/client-search": "4.16.0", - "@algolia/logger-common": "4.16.0", - "@algolia/logger-console": "4.16.0", - "@algolia/requester-browser-xhr": "4.16.0", - "@algolia/requester-common": "4.16.0", - "@algolia/requester-node-http": "4.16.0", - "@algolia/transporter": "4.16.0" + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.19.1.tgz", + "integrity": "sha512-IJF5b93b2MgAzcE/tuzW0yOPnuUyRgGAtaPv5UUywXM8kzqfdwZTO4sPJBzoGz1eOy6H9uEchsJsBFTELZSu+g==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.19.1", + "@algolia/cache-common": "4.19.1", + "@algolia/cache-in-memory": "4.19.1", + "@algolia/client-account": "4.19.1", + "@algolia/client-analytics": "4.19.1", + "@algolia/client-common": "4.19.1", + "@algolia/client-personalization": "4.19.1", + "@algolia/client-search": "4.19.1", + "@algolia/logger-common": "4.19.1", + "@algolia/logger-console": "4.19.1", + "@algolia/requester-browser-xhr": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/requester-node-http": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "node_modules/algoliasearch-helper": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.12.0.tgz", - "integrity": "sha512-/j1U3PEwdan0n6P/QqSnSpNSLC5+cEMvyljd5CnmNmUjDlGrys+vFEOwjVEnqELIiAGMHEA/Nl3CiKVFBUYqyQ==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.14.0.tgz", + "integrity": "sha512-gXDXzsSS0YANn5dHr71CUXOo84cN4azhHKUbg71vAWnH+1JBiR4jf7to3t3JHXknXkbV0F7f055vUSBKrltHLQ==", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -3991,9 +4208,9 @@ } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -4163,9 +4380,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "funding": [ { "type": "opencollective", @@ -4174,13 +4391,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" }, "bin": { "browserslist": "cli.js" @@ -4309,9 +4530,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001468", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001468.tgz", - "integrity": "sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A==", + "version": "1.0.30001519", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", + "integrity": "sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==", "funding": [ { "type": "opencollective", @@ -4320,6 +4541,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -4740,9 +4965,9 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/copy-text-to-clipboard": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.1.0.tgz", - "integrity": "sha512-PFM6BnjLnOON/lB3ta/Jg7Ywsv+l9kQGD4TWDCSlRBGmqnnTM5MrDkhAFgw+8HZt0wW6Q2BBE4cmy9sq+s9Qng==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", + "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", "engines": { "node": ">=12" }, @@ -4873,11 +5098,11 @@ } }, "node_modules/core-js-compat": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", - "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz", + "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==", "dependencies": { - "browserslist": "^4.21.5" + "browserslist": "^4.21.9" }, "funding": { "type": "opencollective", @@ -4915,11 +5140,11 @@ } }, "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", "dependencies": { - "node-fetch": "2.6.7" + "node-fetch": "^2.6.12" } }, "node_modules/cross-spawn": { @@ -5481,13 +5706,13 @@ } }, "node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" + "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" @@ -5542,9 +5767,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.333", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.333.tgz", - "integrity": "sha512-YyE8+GKyGtPEP1/kpvqsdhD6rA/TP1DUFDN4uiU/YI52NzDxmwHkEb3qjId8hLBa5siJvG0sfC3O66501jMruQ==" + "version": "1.4.488", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.488.tgz", + "integrity": "sha512-Dv4sTjiW7t/UWGL+H8ZkgIjtUAVZDgb/PwGWvMsCT7jipzUV/u5skbLXPFKb6iV0tiddVi/bcS2/kUrczeWgIQ==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -5597,9 +5822,9 @@ } }, "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "engines": { "node": ">=0.12" }, @@ -5948,9 +6173,9 @@ } }, "node_modules/fbjs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", - "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", + "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", "dependencies": { "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", @@ -5958,7 +6183,7 @@ "object-assign": "^4.1.0", "promise": "^7.1.1", "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" + "ua-parser-js": "^1.0.35" } }, "node_modules/fbjs-css-vars": { @@ -5997,9 +6222,9 @@ } }, "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -7691,9 +7916,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -8030,9 +8255,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -8057,9 +8282,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -8308,9 +8533,9 @@ } }, "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -9065,9 +9290,9 @@ } }, "node_modules/postcss-sort-media-queries": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.3.0.tgz", - "integrity": "sha512-jAl8gJM2DvuIJiI9sL1CuiHtKM4s5aEIomkU8G3LFvbP+p8i7Sz8VV63uieTgoewGqKbi+hxBTiOKJlB35upCg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz", + "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==", "dependencies": { "sort-css-media-queries": "2.1.0" }, @@ -9625,9 +9850,9 @@ } }, "node_modules/react-textarea-autosize": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz", - "integrity": "sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.2.tgz", + "integrity": "sha512-uOkyjkEl0ByEK21eCJMHDGBAAd/BoFQBawYK5XItjAmCTeSbjxghd8qnt7nzsLYzidjnoObu6M26xts0YGKsGg==", "dependencies": { "@babel/runtime": "^7.20.13", "use-composed-ref": "^1.3.0", @@ -9713,9 +9938,9 @@ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dependencies": { "@babel/runtime": "^7.8.4" } @@ -9858,19 +10083,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" }, - "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": { "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", @@ -9883,9 +10095,9 @@ } }, "node_modules/remark-mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } @@ -10305,6 +10517,15 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/search-insights": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.7.0.tgz", + "integrity": "sha512-GLbVaGgzYEKMvuJbHRhLi1qoBFnjXZGZ6l4LxOYPCp4lI2jDRB3jPU9/XNhMwv6kvnA9slTreq6pvK+b3o3aqg==", + "peer": true, + "engines": { + "node": ">=8.16.0" + } + }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", @@ -10334,9 +10555,9 @@ } }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -10359,9 +10580,9 @@ } }, "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -11300,9 +11521,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.34.tgz", - "integrity": "sha512-cJMeh/eOILyGu0ejgTKB95yKT3zOenSe9UGE3vj6WfiOwgGYnmATUsnDixMFvdU+rNMvWih83hrUP8VwhF9yXQ==", + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", + "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", "funding": [ { "type": "opencollective", @@ -11510,9 +11731,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "funding": [ { "type": "opencollective", @@ -11521,6 +11742,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -11528,7 +11753,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -11711,9 +11936,9 @@ } }, "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -12508,95 +12733,105 @@ }, "dependencies": { "@algolia/autocomplete-core": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.4.tgz", - "integrity": "sha512-daoLpQ3ps/VTMRZDEBfU8ixXd+amZcNJ4QSP3IERGyzqnL5Ch8uSRFt/4G8pUvW9c3o6GA4vtVv4I4lmnkdXyg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", + "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "requires": { + "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", + "@algolia/autocomplete-shared": "1.9.3" + } + }, + "@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", + "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", "requires": { - "@algolia/autocomplete-shared": "1.7.4" + "@algolia/autocomplete-shared": "1.9.3" } }, "@algolia/autocomplete-preset-algolia": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.4.tgz", - "integrity": "sha512-s37hrvLEIfcmKY8VU9LsAXgm2yfmkdHT3DnA3SgHaY93yjZ2qL57wzb5QweVkYuEBZkT2PIREvRoLXC2sxTbpQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", + "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", "requires": { - "@algolia/autocomplete-shared": "1.7.4" + "@algolia/autocomplete-shared": "1.9.3" } }, "@algolia/autocomplete-shared": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.4.tgz", - "integrity": "sha512-2VGCk7I9tA9Ge73Km99+Qg87w0wzW4tgUruvWAn/gfey1ZXgmxZtyIRBebk35R1O8TbK77wujVtCnpsGpRy1kg==" + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", + "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "requires": {} }, "@algolia/cache-browser-local-storage": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.16.0.tgz", - "integrity": "sha512-jVrk0YB3tjOhD5/lhBtYCVCeLjZmVpf2kdi4puApofytf/R0scjWz0GdozlW4HhU+Prxmt/c9ge4QFjtv5OAzQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.19.1.tgz", + "integrity": "sha512-FYAZWcGsFTTaSAwj9Std8UML3Bu8dyWDncM7Ls8g+58UOe4XYdlgzXWbrIgjaguP63pCCbMoExKr61B+ztK3tw==", "requires": { - "@algolia/cache-common": "4.16.0" + "@algolia/cache-common": "4.19.1" } }, "@algolia/cache-common": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.16.0.tgz", - "integrity": "sha512-4iHjkSYQYw46pITrNQgXXhvUmcekI8INz1m+SzmqLX8jexSSy4Ky4zfGhZzhhhLHXUP3+x/PK/c0qPjxEvRwKQ==" + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.19.1.tgz", + "integrity": "sha512-XGghi3l0qA38HiqdoUY+wvGyBsGvKZ6U3vTiMBT4hArhP3fOGLXpIINgMiiGjTe4FVlTa5a/7Zf2bwlIHfRqqg==" }, "@algolia/cache-in-memory": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.16.0.tgz", - "integrity": "sha512-p7RYykvA6Ip6QENxrh99nOD77otVh1sJRivcgcVpnjoZb5sIN3t33eUY1DpB9QSBizcrW+qk19rNkdnZ43a+PQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.19.1.tgz", + "integrity": "sha512-+PDWL+XALGvIginigzu8oU6eWw+o76Z8zHbBovWYcrtWOEtinbl7a7UTt3x3lthv+wNuFr/YD1Gf+B+A9V8n5w==", "requires": { - "@algolia/cache-common": "4.16.0" + "@algolia/cache-common": "4.19.1" } }, "@algolia/client-account": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.16.0.tgz", - "integrity": "sha512-eydcfpdIyuWoKgUSz5iZ/L0wE/Wl7958kACkvTHLDNXvK/b8Z1zypoJavh6/km1ZNQmFpeYS2jrmq0kUSFn02w==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.19.1.tgz", + "integrity": "sha512-Oy0ritA2k7AMxQ2JwNpfaEcgXEDgeyKu0V7E7xt/ZJRdXfEpZcwp9TOg4TJHC7Ia62gIeT2Y/ynzsxccPw92GA==", "requires": { - "@algolia/client-common": "4.16.0", - "@algolia/client-search": "4.16.0", - "@algolia/transporter": "4.16.0" + "@algolia/client-common": "4.19.1", + "@algolia/client-search": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "@algolia/client-analytics": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.16.0.tgz", - "integrity": "sha512-cONWXH3BfilgdlCofUm492bJRWtpBLVW/hsUlfoFtiX1u05xoBP7qeiDwh9RR+4pSLHLodYkHAf5U4honQ55Qg==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.19.1.tgz", + "integrity": "sha512-5QCq2zmgdZLIQhHqwl55ZvKVpLM3DNWjFI4T+bHr3rGu23ew2bLO4YtyxaZeChmDb85jUdPDouDlCumGfk6wOg==", "requires": { - "@algolia/client-common": "4.16.0", - "@algolia/client-search": "4.16.0", - "@algolia/requester-common": "4.16.0", - "@algolia/transporter": "4.16.0" + "@algolia/client-common": "4.19.1", + "@algolia/client-search": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "@algolia/client-common": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.16.0.tgz", - "integrity": "sha512-QVdR4019ukBH6f5lFr27W60trRxQF1SfS1qo0IP6gjsKhXhUVJuHxOCA6ArF87jrNkeuHEoRoDU+GlvaecNo8g==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.19.1.tgz", + "integrity": "sha512-3kAIVqTcPrjfS389KQvKzliC559x+BDRxtWamVJt8IVp7LGnjq+aVAXg4Xogkur1MUrScTZ59/AaUd5EdpyXgA==", "requires": { - "@algolia/requester-common": "4.16.0", - "@algolia/transporter": "4.16.0" + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "@algolia/client-personalization": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.16.0.tgz", - "integrity": "sha512-irtLafssDGPuhYqIwxqOxiWlVYvrsBD+EMA1P9VJtkKi3vSNBxiWeQ0f0Tn53cUNdSRNEssfoEH84JL97SV2SQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.19.1.tgz", + "integrity": "sha512-8CWz4/H5FA+krm9HMw2HUQenizC/DxUtsI5oYC0Jxxyce1vsr8cb1aEiSJArQT6IzMynrERif1RVWLac1m36xw==", "requires": { - "@algolia/client-common": "4.16.0", - "@algolia/requester-common": "4.16.0", - "@algolia/transporter": "4.16.0" + "@algolia/client-common": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "@algolia/client-search": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.16.0.tgz", - "integrity": "sha512-xsfrAE1jO/JDh1wFrRz+alVyW+aA6qnkzmbWWWZWEgVF3EaFqzIf9r1l/aDtDdBtNTNhX9H3Lg31+BRtd5izQA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.19.1.tgz", + "integrity": "sha512-mBecfMFS4N+yK/p0ZbK53vrZbL6OtWMk8YmnOv1i0LXx4pelY8TFhqKoTit3NPVPwoSNN0vdSN9dTu1xr1XOVw==", "requires": { - "@algolia/client-common": "4.16.0", - "@algolia/requester-common": "4.16.0", - "@algolia/transporter": "4.16.0" + "@algolia/client-common": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "@algolia/events": { @@ -12605,47 +12840,47 @@ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" }, "@algolia/logger-common": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.16.0.tgz", - "integrity": "sha512-U9H8uCzSDuePJmbnjjTX21aPDRU6x74Tdq3dJmdYu2+pISx02UeBJm4kSgc9RW5jcR5j35G9gnjHY9Q3ngWbyQ==" + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.19.1.tgz", + "integrity": "sha512-i6pLPZW/+/YXKis8gpmSiNk1lOmYCmRI6+x6d2Qk1OdfvX051nRVdalRbEcVTpSQX6FQAoyeaui0cUfLYW5Elw==" }, "@algolia/logger-console": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.16.0.tgz", - "integrity": "sha512-+qymusiM+lPZKrkf0tDjCQA158eEJO2IU+Nr/sJ9TFyI/xkFPjNPzw/Qbc8Iy/xcOXGlc6eMgmyjtVQqAWq6UA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.19.1.tgz", + "integrity": "sha512-jj72k9GKb9W0c7TyC3cuZtTr0CngLBLmc8trzZlXdfvQiigpUdvTi1KoWIb2ZMcRBG7Tl8hSb81zEY3zI2RlXg==", "requires": { - "@algolia/logger-common": "4.16.0" + "@algolia/logger-common": "4.19.1" } }, "@algolia/requester-browser-xhr": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.16.0.tgz", - "integrity": "sha512-gK+kvs6LHl/PaOJfDuwjkopNbG1djzFLsVBklGBsSU6h6VjFkxIpo6Qq80IK14p9cplYZfhfaL12va6Q9p3KVQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.19.1.tgz", + "integrity": "sha512-09K/+t7lptsweRTueHnSnmPqIxbHMowejAkn9XIcJMLdseS3zl8ObnS5GWea86mu3vy4+8H+ZBKkUN82Zsq/zg==", "requires": { - "@algolia/requester-common": "4.16.0" + "@algolia/requester-common": "4.19.1" } }, "@algolia/requester-common": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.16.0.tgz", - "integrity": "sha512-3Zmcs/iMubcm4zqZ3vZG6Zum8t+hMWxGMzo0/uY2BD8o9q5vMxIYI0c4ocdgQjkXcix189WtZNkgjSOBzSbkdw==" + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.19.1.tgz", + "integrity": "sha512-BisRkcWVxrDzF1YPhAckmi2CFYK+jdMT60q10d7z3PX+w6fPPukxHRnZwooiTUrzFe50UBmLItGizWHP5bDzVQ==" }, "@algolia/requester-node-http": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.16.0.tgz", - "integrity": "sha512-L8JxM2VwZzh8LJ1Zb8TFS6G3icYsCKZsdWW+ahcEs1rGWmyk9SybsOe1MLnjonGBaqPWJkn9NjS7mRdjEmBtKA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.19.1.tgz", + "integrity": "sha512-6DK52DHviBHTG2BK/Vv2GIlEw7i+vxm7ypZW0Z7vybGCNDeWzADx+/TmxjkES2h15+FZOqVf/Ja677gePsVItA==", "requires": { - "@algolia/requester-common": "4.16.0" + "@algolia/requester-common": "4.19.1" } }, "@algolia/transporter": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.16.0.tgz", - "integrity": "sha512-H9BVB2EAjT65w7XGBNf5drpsW39x2aSZ942j4boSAAJPPlLmjtj5IpAP7UAtsV8g9Beslonh0bLa1XGmE/P0BA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.19.1.tgz", + "integrity": "sha512-nkpvPWbpuzxo1flEYqNIbGz7xhfhGOKGAZS7tzC+TELgEmi7z99qRyTfNSUlW7LZmB3ACdnqAo+9A9KFBENviQ==", "requires": { - "@algolia/cache-common": "4.16.0", - "@algolia/logger-common": "4.16.0", - "@algolia/requester-common": "4.16.0" + "@algolia/cache-common": "4.19.1", + "@algolia/logger-common": "4.19.1", + "@algolia/requester-common": "4.19.1" } }, "@ampproject/remapping": { @@ -12658,17 +12893,69 @@ } }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", + "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.10", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==" + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==" }, "@babel/core": { "version": "7.21.3", @@ -12693,9 +12980,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -12723,63 +13010,78 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", + "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.22.10" } }, "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", - "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz", + "integrity": "sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + } } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", - "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + } } }, "@babel/helper-define-polyfill-provider": { @@ -12796,158 +13098,142 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "requires": { - "@babel/types": "^7.18.6" - } + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==" }, "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", "requires": { - "@babel/types": "^7.21.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" } }, "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" } }, "@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" } }, "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "requires": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.22.5" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "requires": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==" }, "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==" }, "@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", + "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.10" } }, "@babel/helpers": { @@ -12961,12 +13247,12 @@ } }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", + "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "dependencies": { @@ -13018,176 +13304,48 @@ "requires": { "has-flag": "^3.0.0" } - } - } - }, - "@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } } }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "@babel/parser": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", + "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" } }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" } }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "requires": {} + }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -13229,11 +13387,27 @@ } }, "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-json-strings": { @@ -13245,11 +13419,11 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -13317,281 +13491,425 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz", + "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==", + "requires": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", + "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", + "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" } }, "@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", + "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", + "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", + "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-transform-for-of": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "requires": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", + "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", + "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", "requires": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", "requires": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", + "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", + "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", + "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "requires": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" } }, "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", + "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz", + "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", + "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-react-constant-elements": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz", - "integrity": "sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz", + "integrity": "sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", + "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", - "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", + "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.21.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", "requires": { - "@babel/plugin-transform-react-jsx": "^7.18.6" + "@babel/plugin-transform-react-jsx": "^7.22.5" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", + "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-runtime": { @@ -13608,113 +13926,119 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-typescript": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", - "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.10.tgz", + "integrity": "sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/preset-env": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", + "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -13724,87 +14048,143 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - }, - "dependencies": { + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.10", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.10", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.10", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.10", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.10", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.2" + } + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" } }, "@babel/preset-react": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", + "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-react-display-name": "^7.18.6", - "@babel/plugin-transform-react-jsx": "^7.18.6", - "@babel/plugin-transform-react-jsx-development": "^7.18.6", - "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-transform-react-display-name": "^7.22.5", + "@babel/plugin-transform-react-jsx": "^7.22.5", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.22.5" } }, "@babel/preset-typescript": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz", - "integrity": "sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", + "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-transform-typescript": "^7.21.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-typescript": "^7.22.5" } }, "@babel/regjsgen": { @@ -13830,13 +14210,13 @@ } }, "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/traverse": { @@ -13857,12 +14237,12 @@ } }, "@babel/types": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", - "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", + "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" } }, @@ -13878,25 +14258,25 @@ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==" }, "@docsearch/css": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.3.3.tgz", - "integrity": "sha512-6SCwI7P8ao+se1TUsdZ7B4XzL+gqeQZnBc+2EONZlcVa0dVrk0NjETxozFKgMv0eEGH8QzP1fkN+A1rH61l4eg==" + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.1.tgz", + "integrity": "sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==" }, "@docsearch/react": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.3.3.tgz", - "integrity": "sha512-pLa0cxnl+G0FuIDuYlW+EBK6Rw2jwLw9B1RHIeS4N4s2VhsfJ/wzeCi3CWcs5yVfxLd5ZK50t//TMA5e79YT7Q==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.1.tgz", + "integrity": "sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==", "requires": { - "@algolia/autocomplete-core": "1.7.4", - "@algolia/autocomplete-preset-algolia": "1.7.4", - "@docsearch/css": "3.3.3", + "@algolia/autocomplete-core": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.9.3", + "@docsearch/css": "3.5.1", "algoliasearch": "^4.0.0" } }, "@docusaurus/core": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.0.tgz", - "integrity": "sha512-J55/WEoIpRcLf3afO5POHPguVZosKmJEQWKBL+K7TAnfuE7i+Y0NPLlkKtnWCehagGsgTqClfQEexH/UT4kELA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.1.tgz", + "integrity": "sha512-SNsY7PshK3Ri7vtsLXVeAJGS50nJN3RgF836zkyUfAD01Fq+sAk5EwWgLw+nnm5KVNGDu7PRR2kRGDsWvqpo0g==", "requires": { "@babel/core": "^7.18.6", "@babel/generator": "^7.18.7", @@ -13908,13 +14288,13 @@ "@babel/runtime": "^7.18.6", "@babel/runtime-corejs3": "^7.18.6", "@babel/traverse": "^7.18.8", - "@docusaurus/cssnano-preset": "2.4.0", - "@docusaurus/logger": "2.4.0", - "@docusaurus/mdx-loader": "2.4.0", + "@docusaurus/cssnano-preset": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-common": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "@slorber/static-site-generator-webpack-plugin": "^4.0.7", "@svgr/webpack": "^6.2.1", "autoprefixer": "^10.4.7", @@ -13972,9 +14352,9 @@ } }, "@docusaurus/cssnano-preset": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.0.tgz", - "integrity": "sha512-RmdiA3IpsLgZGXRzqnmTbGv43W4OD44PCo+6Q/aYjEM2V57vKCVqNzuafE94jv0z/PjHoXUrjr69SaRymBKYYw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.1.tgz", + "integrity": "sha512-ka+vqXwtcW1NbXxWsh6yA1Ckii1klY9E53cJ4O9J09nkMBgrNX3iEFED1fWdv8wf4mJjvGi5RLZ2p9hJNjsLyQ==", "requires": { "cssnano-preset-advanced": "^5.3.8", "postcss": "^8.4.14", @@ -13983,23 +14363,23 @@ } }, "@docusaurus/logger": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.4.0.tgz", - "integrity": "sha512-T8+qR4APN+MjcC9yL2Es+xPJ2923S9hpzDmMtdsOcUGLqpCGBbU1vp3AAqDwXtVgFkq+NsEk7sHdVsfLWR/AXw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.4.1.tgz", + "integrity": "sha512-5h5ysIIWYIDHyTVd8BjheZmQZmEgWDR54aQ1BX9pjFfpyzFo5puKXKYrYJXbjEHGyVhEzmB9UXwbxGfaZhOjcg==", "requires": { "chalk": "^4.1.2", "tslib": "^2.4.0" } }, "@docusaurus/mdx-loader": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.0.tgz", - "integrity": "sha512-GWoH4izZKOmFoC+gbI2/y8deH/xKLvzz/T5BsEexBye8EHQlwsA7FMrVa48N063bJBH4FUOiRRXxk5rq9cC36g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.1.tgz", + "integrity": "sha512-4KhUhEavteIAmbBj7LVFnrVYDiU51H5YWW1zY6SmBSte/YLhDutztLTBE0PQl1Grux1jzUJeaSvAzHpTn6JJDQ==", "requires": { "@babel/parser": "^7.18.8", "@babel/traverse": "^7.18.8", - "@docusaurus/logger": "2.4.0", - "@docusaurus/utils": "2.4.0", + "@docusaurus/logger": "2.4.1", + "@docusaurus/utils": "2.4.1", "@mdx-js/mdx": "^1.6.22", "escape-html": "^1.0.3", "file-loader": "^6.2.0", @@ -14016,12 +14396,12 @@ } }, "@docusaurus/module-type-aliases": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.0.tgz", - "integrity": "sha512-YEQO2D3UXs72qCn8Cr+RlycSQXVGN9iEUyuHwTuK4/uL/HFomB2FHSU0vSDM23oLd+X/KibQ3Ez6nGjQLqXcHg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.1.tgz", + "integrity": "sha512-gLBuIFM8Dp2XOCWffUDSjtxY7jQgKvYujt7Mx5s4FCTfoL5dN1EVbnrn+O2Wvh8b0a77D57qoIDY7ghgmatR1A==", "requires": { "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "2.4.0", + "@docusaurus/types": "2.4.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -14031,17 +14411,17 @@ } }, "@docusaurus/plugin-content-blog": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.0.tgz", - "integrity": "sha512-YwkAkVUxtxoBAIj/MCb4ohN0SCtHBs4AS75jMhPpf67qf3j+U/4n33cELq7567hwyZ6fMz2GPJcVmctzlGGThQ==", - "requires": { - "@docusaurus/core": "2.4.0", - "@docusaurus/logger": "2.4.0", - "@docusaurus/mdx-loader": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-common": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.1.tgz", + "integrity": "sha512-E2i7Knz5YIbE1XELI6RlTnZnGgS52cUO4BlCiCUCvQHbR+s1xeIWz4C6BtaVnlug0Ccz7nFSksfwDpVlkujg5Q==", + "requires": { + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "cheerio": "^1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^10.1.0", @@ -14054,17 +14434,17 @@ } }, "@docusaurus/plugin-content-docs": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.0.tgz", - "integrity": "sha512-ic/Z/ZN5Rk/RQo+Io6rUGpToOtNbtPloMR2JcGwC1xT2riMu6zzfSwmBi9tHJgdXH6CB5jG+0dOZZO8QS5tmDg==", - "requires": { - "@docusaurus/core": "2.4.0", - "@docusaurus/logger": "2.4.0", - "@docusaurus/mdx-loader": "2.4.0", - "@docusaurus/module-type-aliases": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.1.tgz", + "integrity": "sha512-Lo7lSIcpswa2Kv4HEeUcGYqaasMUQNpjTXpV0N8G6jXgZaQurqp7E8NGYeGbDXnb48czmHWbzDL4S3+BbK0VzA==", + "requires": { + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/module-type-aliases": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "@types/react-router-config": "^5.0.6", "combine-promises": "^1.1.0", "fs-extra": "^10.1.0", @@ -14077,100 +14457,100 @@ } }, "@docusaurus/plugin-content-pages": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.0.tgz", - "integrity": "sha512-Pk2pOeOxk8MeU3mrTU0XLIgP9NZixbdcJmJ7RUFrZp1Aj42nd0RhIT14BGvXXyqb8yTQlk4DmYGAzqOfBsFyGw==", - "requires": { - "@docusaurus/core": "2.4.0", - "@docusaurus/mdx-loader": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.1.tgz", + "integrity": "sha512-/UjuH/76KLaUlL+o1OvyORynv6FURzjurSjvn2lbWTFc4tpYY2qLYTlKpTCBVPhlLUQsfyFnshEJDLmPneq2oA==", + "requires": { + "@docusaurus/core": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "fs-extra": "^10.1.0", "tslib": "^2.4.0", "webpack": "^5.73.0" } }, "@docusaurus/plugin-debug": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.4.0.tgz", - "integrity": "sha512-KC56DdYjYT7Txyux71vXHXGYZuP6yYtqwClvYpjKreWIHWus5Zt6VNi23rMZv3/QKhOCrN64zplUbdfQMvddBQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.4.1.tgz", + "integrity": "sha512-7Yu9UPzRShlrH/G8btOpR0e6INFZr0EegWplMjOqelIwAcx3PKyR8mgPTxGTxcqiYj6hxSCRN0D8R7YrzImwNA==", "requires": { - "@docusaurus/core": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", "fs-extra": "^10.1.0", "react-json-view": "^1.21.3", "tslib": "^2.4.0" } }, "@docusaurus/plugin-google-analytics": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.4.0.tgz", - "integrity": "sha512-uGUzX67DOAIglygdNrmMOvEp8qG03X20jMWadeqVQktS6nADvozpSLGx4J0xbkblhJkUzN21WiilsP9iVP+zkw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.4.1.tgz", + "integrity": "sha512-dyZJdJiCoL+rcfnm0RPkLt/o732HvLiEwmtoNzOoz9MSZz117UH2J6U2vUDtzUzwtFLIf32KkeyzisbwUCgcaQ==", "requires": { - "@docusaurus/core": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "tslib": "^2.4.0" } }, "@docusaurus/plugin-google-gtag": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.4.0.tgz", - "integrity": "sha512-adj/70DANaQs2+TF/nRdMezDXFAV/O/pjAbUgmKBlyOTq5qoMe0Tk4muvQIwWUmiUQxFJe+sKlZGM771ownyOg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.4.1.tgz", + "integrity": "sha512-mKIefK+2kGTQBYvloNEKtDmnRD7bxHLsBcxgnbt4oZwzi2nxCGjPX6+9SQO2KCN5HZbNrYmGo5GJfMgoRvy6uA==", "requires": { - "@docusaurus/core": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "tslib": "^2.4.0" } }, "@docusaurus/plugin-google-tag-manager": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.4.0.tgz", - "integrity": "sha512-E66uGcYs4l7yitmp/8kMEVQftFPwV9iC62ORh47Veqzs6ExwnhzBkJmwDnwIysHBF1vlxnzET0Fl2LfL5fRR3A==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.4.1.tgz", + "integrity": "sha512-Zg4Ii9CMOLfpeV2nG74lVTWNtisFaH9QNtEw48R5QE1KIwDBdTVaiSA18G1EujZjrzJJzXN79VhINSbOJO/r3g==", "requires": { - "@docusaurus/core": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "tslib": "^2.4.0" } }, "@docusaurus/plugin-sitemap": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.4.0.tgz", - "integrity": "sha512-pZxh+ygfnI657sN8a/FkYVIAmVv0CGk71QMKqJBOfMmDHNN1FeDeFkBjWP49ejBqpqAhjufkv5UWq3UOu2soCw==", - "requires": { - "@docusaurus/core": "2.4.0", - "@docusaurus/logger": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-common": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.4.1.tgz", + "integrity": "sha512-lZx+ijt/+atQ3FVE8FOHV/+X3kuok688OydDXrqKRJyXBJZKgGjA2Qa8RjQ4f27V2woaXhtnyrdPop/+OjVMRg==", + "requires": { + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "fs-extra": "^10.1.0", "sitemap": "^7.1.1", "tslib": "^2.4.0" } }, "@docusaurus/preset-classic": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.4.0.tgz", - "integrity": "sha512-/5z5o/9bc6+P5ool2y01PbJhoGddEGsC0ej1MF6mCoazk8A+kW4feoUd68l7Bnv01rCnG3xy7kHUQP97Y0grUA==", - "requires": { - "@docusaurus/core": "2.4.0", - "@docusaurus/plugin-content-blog": "2.4.0", - "@docusaurus/plugin-content-docs": "2.4.0", - "@docusaurus/plugin-content-pages": "2.4.0", - "@docusaurus/plugin-debug": "2.4.0", - "@docusaurus/plugin-google-analytics": "2.4.0", - "@docusaurus/plugin-google-gtag": "2.4.0", - "@docusaurus/plugin-google-tag-manager": "2.4.0", - "@docusaurus/plugin-sitemap": "2.4.0", - "@docusaurus/theme-classic": "2.4.0", - "@docusaurus/theme-common": "2.4.0", - "@docusaurus/theme-search-algolia": "2.4.0", - "@docusaurus/types": "2.4.0" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.4.1.tgz", + "integrity": "sha512-P4//+I4zDqQJ+UDgoFrjIFaQ1MeS9UD1cvxVQaI6O7iBmiHQm0MGROP1TbE7HlxlDPXFJjZUK3x3cAoK63smGQ==", + "requires": { + "@docusaurus/core": "2.4.1", + "@docusaurus/plugin-content-blog": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/plugin-content-pages": "2.4.1", + "@docusaurus/plugin-debug": "2.4.1", + "@docusaurus/plugin-google-analytics": "2.4.1", + "@docusaurus/plugin-google-gtag": "2.4.1", + "@docusaurus/plugin-google-tag-manager": "2.4.1", + "@docusaurus/plugin-sitemap": "2.4.1", + "@docusaurus/theme-classic": "2.4.1", + "@docusaurus/theme-common": "2.4.1", + "@docusaurus/theme-search-algolia": "2.4.1", + "@docusaurus/types": "2.4.1" } }, "@docusaurus/react-loadable": { @@ -14183,22 +14563,22 @@ } }, "@docusaurus/theme-classic": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.4.0.tgz", - "integrity": "sha512-GMDX5WU6Z0OC65eQFgl3iNNEbI9IMJz9f6KnOyuMxNUR6q0qVLsKCNopFUDfFNJ55UU50o7P7o21yVhkwpfJ9w==", - "requires": { - "@docusaurus/core": "2.4.0", - "@docusaurus/mdx-loader": "2.4.0", - "@docusaurus/module-type-aliases": "2.4.0", - "@docusaurus/plugin-content-blog": "2.4.0", - "@docusaurus/plugin-content-docs": "2.4.0", - "@docusaurus/plugin-content-pages": "2.4.0", - "@docusaurus/theme-common": "2.4.0", - "@docusaurus/theme-translations": "2.4.0", - "@docusaurus/types": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-common": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.4.1.tgz", + "integrity": "sha512-Rz0wKUa+LTW1PLXmwnf8mn85EBzaGSt6qamqtmnh9Hflkc+EqiYMhtUJeLdV+wsgYq4aG0ANc+bpUDpsUhdnwg==", + "requires": { + "@docusaurus/core": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/module-type-aliases": "2.4.1", + "@docusaurus/plugin-content-blog": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/plugin-content-pages": "2.4.1", + "@docusaurus/theme-common": "2.4.1", + "@docusaurus/theme-translations": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "@mdx-js/react": "^1.6.22", "clsx": "^1.2.1", "copy-text-to-clipboard": "^3.0.1", @@ -14215,17 +14595,17 @@ } }, "@docusaurus/theme-common": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.4.0.tgz", - "integrity": "sha512-IkG/l5f/FLY6cBIxtPmFnxpuPzc5TupuqlOx+XDN+035MdQcAh8wHXXZJAkTeYDeZ3anIUSUIvWa7/nRKoQEfg==", - "requires": { - "@docusaurus/mdx-loader": "2.4.0", - "@docusaurus/module-type-aliases": "2.4.0", - "@docusaurus/plugin-content-blog": "2.4.0", - "@docusaurus/plugin-content-docs": "2.4.0", - "@docusaurus/plugin-content-pages": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-common": "2.4.0", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.4.1.tgz", + "integrity": "sha512-G7Zau1W5rQTaFFB3x3soQoZpkgMbl/SYNG8PfMFIjKa3M3q8n0m/GRf5/H/e5BqOvt8c+ZWIXGCiz+kUCSHovA==", + "requires": { + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/module-type-aliases": "2.4.1", + "@docusaurus/plugin-content-blog": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/plugin-content-pages": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -14238,18 +14618,18 @@ } }, "@docusaurus/theme-search-algolia": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.4.0.tgz", - "integrity": "sha512-pPCJSCL1Qt4pu/Z0uxBAuke0yEBbxh0s4fOvimna7TEcBLPq0x06/K78AaABXrTVQM6S0vdocFl9EoNgU17hqA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.4.1.tgz", + "integrity": "sha512-6BcqW2lnLhZCXuMAvPRezFs1DpmEKzXFKlYjruuas+Xy3AQeFzDJKTJFIm49N77WFCTyxff8d3E4Q9pi/+5McQ==", "requires": { "@docsearch/react": "^3.1.1", - "@docusaurus/core": "2.4.0", - "@docusaurus/logger": "2.4.0", - "@docusaurus/plugin-content-docs": "2.4.0", - "@docusaurus/theme-common": "2.4.0", - "@docusaurus/theme-translations": "2.4.0", - "@docusaurus/utils": "2.4.0", - "@docusaurus/utils-validation": "2.4.0", + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/theme-common": "2.4.1", + "@docusaurus/theme-translations": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", "algoliasearch": "^4.13.1", "algoliasearch-helper": "^3.10.0", "clsx": "^1.2.1", @@ -14261,18 +14641,18 @@ } }, "@docusaurus/theme-translations": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.4.0.tgz", - "integrity": "sha512-kEoITnPXzDPUMBHk3+fzEzbopxLD3fR5sDoayNH0vXkpUukA88/aDL1bqkhxWZHA3LOfJ3f0vJbOwmnXW5v85Q==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.4.1.tgz", + "integrity": "sha512-T1RAGP+f86CA1kfE8ejZ3T3pUU3XcyvrGMfC/zxCtc2BsnoexuNI9Vk2CmuKCb+Tacvhxjv5unhxXce0+NKyvA==", "requires": { "fs-extra": "^10.1.0", "tslib": "^2.4.0" } }, "@docusaurus/types": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.0.tgz", - "integrity": "sha512-xaBXr+KIPDkIaef06c+i2HeTqVNixB7yFut5fBXPGI2f1rrmEV2vLMznNGsFwvZ5XmA3Quuefd4OGRkdo97Dhw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.1.tgz", + "integrity": "sha512-0R+cbhpMkhbRXX138UOc/2XZFF8hiZa6ooZAEEJFp5scytzCw4tC1gChMFXrpa3d2tYE6AX8IrOEpSonLmfQuQ==", "requires": { "@types/history": "^4.7.11", "@types/react": "*", @@ -14285,11 +14665,11 @@ } }, "@docusaurus/utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.4.0.tgz", - "integrity": "sha512-89hLYkvtRX92j+C+ERYTuSUK6nF9bGM32QThcHPg2EDDHVw6FzYQXmX6/p+pU5SDyyx5nBlE4qXR92RxCAOqfg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.4.1.tgz", + "integrity": "sha512-1lvEZdAQhKNht9aPXPoh69eeKnV0/62ROhQeFKKxmzd0zkcuE/Oc5Gpnt00y/f5bIsmOsYMY7Pqfm/5rteT5GA==", "requires": { - "@docusaurus/logger": "2.4.0", + "@docusaurus/logger": "2.4.1", "@svgr/webpack": "^6.2.1", "escape-string-regexp": "^4.0.0", "file-loader": "^6.2.0", @@ -14308,20 +14688,20 @@ } }, "@docusaurus/utils-common": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.4.0.tgz", - "integrity": "sha512-zIMf10xuKxddYfLg5cS19x44zud/E9I7lj3+0bv8UIs0aahpErfNrGhijEfJpAfikhQ8tL3m35nH3hJ3sOG82A==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.4.1.tgz", + "integrity": "sha512-bCVGdZU+z/qVcIiEQdyx0K13OC5mYwxhSuDUR95oFbKVuXYRrTVrwZIqQljuo1fyJvFTKHiL9L9skQOPokuFNQ==", "requires": { "tslib": "^2.4.0" } }, "@docusaurus/utils-validation": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.4.0.tgz", - "integrity": "sha512-IrBsBbbAp6y7mZdJx4S4pIA7dUyWSA0GNosPk6ZJ0fX3uYIEQgcQSGIgTeSC+8xPEx3c16o03en1jSDpgQgz/w==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.4.1.tgz", + "integrity": "sha512-unII3hlJlDwZ3w8U+pMO3Lx3RhI4YEbY3YNsQj4yzrkZzlpqZOLuAiZK2JyULnD+TKbceKU0WyWkQXtYbLNDFA==", "requires": { - "@docusaurus/logger": "2.4.0", - "@docusaurus/utils": "2.4.0", + "@docusaurus/logger": "2.4.1", + "@docusaurus/utils": "2.4.1", "joi": "^17.6.0", "js-yaml": "^4.1.0", "tslib": "^2.4.0" @@ -14478,9 +14858,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "source-map": { "version": "0.5.7", @@ -14586,15 +14966,15 @@ "requires": {} }, "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz", - "integrity": "sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", "requires": {} }, "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz", - "integrity": "sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", "requires": {} }, "@svgr/babel-plugin-replace-jsx-attribute-value": { @@ -14797,11 +15177,11 @@ } }, "@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.5.tgz", + "integrity": "sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg==", "requires": { - "@types/unist": "*" + "@types/unist": "^2" } }, "@types/history": { @@ -14849,11 +15229,11 @@ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, "@types/mdast": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", - "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.12.tgz", + "integrity": "sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==", "requires": { - "@types/unist": "*" + "@types/unist": "^2" } }, "@types/mime": { @@ -14974,9 +15354,9 @@ } }, "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.7.tgz", + "integrity": "sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==" }, "@types/ws": { "version": "8.5.4", @@ -15238,30 +15618,30 @@ "requires": {} }, "algoliasearch": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.16.0.tgz", - "integrity": "sha512-HAjKJ6bBblaXqO4dYygF4qx251GuJ6zCZt+qbJ+kU7sOC+yc84pawEjVpJByh+cGP2APFCsao2Giz50cDlKNPA==", - "requires": { - "@algolia/cache-browser-local-storage": "4.16.0", - "@algolia/cache-common": "4.16.0", - "@algolia/cache-in-memory": "4.16.0", - "@algolia/client-account": "4.16.0", - "@algolia/client-analytics": "4.16.0", - "@algolia/client-common": "4.16.0", - "@algolia/client-personalization": "4.16.0", - "@algolia/client-search": "4.16.0", - "@algolia/logger-common": "4.16.0", - "@algolia/logger-console": "4.16.0", - "@algolia/requester-browser-xhr": "4.16.0", - "@algolia/requester-common": "4.16.0", - "@algolia/requester-node-http": "4.16.0", - "@algolia/transporter": "4.16.0" + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.19.1.tgz", + "integrity": "sha512-IJF5b93b2MgAzcE/tuzW0yOPnuUyRgGAtaPv5UUywXM8kzqfdwZTO4sPJBzoGz1eOy6H9uEchsJsBFTELZSu+g==", + "requires": { + "@algolia/cache-browser-local-storage": "4.19.1", + "@algolia/cache-common": "4.19.1", + "@algolia/cache-in-memory": "4.19.1", + "@algolia/client-account": "4.19.1", + "@algolia/client-analytics": "4.19.1", + "@algolia/client-common": "4.19.1", + "@algolia/client-personalization": "4.19.1", + "@algolia/client-search": "4.19.1", + "@algolia/logger-common": "4.19.1", + "@algolia/logger-console": "4.19.1", + "@algolia/requester-browser-xhr": "4.19.1", + "@algolia/requester-common": "4.19.1", + "@algolia/requester-node-http": "4.19.1", + "@algolia/transporter": "4.19.1" } }, "algoliasearch-helper": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.12.0.tgz", - "integrity": "sha512-/j1U3PEwdan0n6P/QqSnSpNSLC5+cEMvyljd5CnmNmUjDlGrys+vFEOwjVEnqELIiAGMHEA/Nl3CiKVFBUYqyQ==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.14.0.tgz", + "integrity": "sha512-gXDXzsSS0YANn5dHr71CUXOo84cN4azhHKUbg71vAWnH+1JBiR4jf7to3t3JHXknXkbV0F7f055vUSBKrltHLQ==", "requires": { "@algolia/events": "^4.0.1" } @@ -15430,9 +15810,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -15571,14 +15951,14 @@ } }, "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" } }, "buffer-from": { @@ -15670,9 +16050,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001468", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001468.tgz", - "integrity": "sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A==" + "version": "1.0.30001519", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", + "integrity": "sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==" }, "ccount": { "version": "1.1.0", @@ -15973,9 +16353,9 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "copy-text-to-clipboard": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.1.0.tgz", - "integrity": "sha512-PFM6BnjLnOON/lB3ta/Jg7Ywsv+l9kQGD4TWDCSlRBGmqnnTM5MrDkhAFgw+8HZt0wW6Q2BBE4cmy9sq+s9Qng==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", + "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==" }, "copy-webpack-plugin": { "version": "11.0.0", @@ -16058,11 +16438,11 @@ "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==" }, "core-js-compat": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", - "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz", + "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==", "requires": { - "browserslist": "^4.21.5" + "browserslist": "^4.21.9" } }, "core-js-pure": { @@ -16088,11 +16468,11 @@ } }, "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", "requires": { - "node-fetch": "2.6.7" + "node-fetch": "^2.6.12" } }, "cross-spawn": { @@ -16467,13 +16847,13 @@ } }, "domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "requires": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" + "domhandler": "^5.0.3" } }, "dot-case": { @@ -16521,9 +16901,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.333", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.333.tgz", - "integrity": "sha512-YyE8+GKyGtPEP1/kpvqsdhD6rA/TP1DUFDN4uiU/YI52NzDxmwHkEb3qjId8hLBa5siJvG0sfC3O66501jMruQ==" + "version": "1.4.488", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.488.tgz", + "integrity": "sha512-Dv4sTjiW7t/UWGL+H8ZkgIjtUAVZDgb/PwGWvMsCT7jipzUV/u5skbLXPFKb6iV0tiddVi/bcS2/kUrczeWgIQ==" }, "emoji-regex": { "version": "9.2.2", @@ -16563,9 +16943,9 @@ } }, "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" }, "error-ex": { "version": "1.3.2", @@ -16835,9 +17215,9 @@ } }, "fbjs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", - "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", + "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", "requires": { "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", @@ -16845,7 +17225,7 @@ "object-assign": "^4.1.0", "promise": "^7.1.1", "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" + "ua-parser-js": "^1.0.35" } }, "fbjs-css-vars": { @@ -16871,9 +17251,9 @@ }, "dependencies": { "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -18091,9 +18471,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -18333,9 +18713,9 @@ } }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "requires": { "whatwg-url": "^5.0.0" } @@ -18346,9 +18726,9 @@ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" }, "node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "normalize-path": { "version": "3.0.0", @@ -18516,9 +18896,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -19002,9 +19382,9 @@ } }, "postcss-sort-media-queries": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.3.0.tgz", - "integrity": "sha512-jAl8gJM2DvuIJiI9sL1CuiHtKM4s5aEIomkU8G3LFvbP+p8i7Sz8VV63uieTgoewGqKbi+hxBTiOKJlB35upCg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz", + "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==", "requires": { "sort-css-media-queries": "2.1.0" } @@ -19420,9 +19800,9 @@ } }, "react-textarea-autosize": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz", - "integrity": "sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.2.tgz", + "integrity": "sha512-uOkyjkEl0ByEK21eCJMHDGBAAd/BoFQBawYK5XItjAmCTeSbjxghd8qnt7nzsLYzidjnoObu6M26xts0YGKsGg==", "requires": { "@babel/runtime": "^7.20.13", "use-composed-ref": "^1.3.0", @@ -19487,9 +19867,9 @@ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "requires": { "@babel/runtime": "^7.8.4" } @@ -19601,16 +19981,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, "@babel/plugin-syntax-jsx": { "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", @@ -19620,9 +19990,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "source-map": { "version": "0.5.7", @@ -19912,6 +20282,12 @@ "ajv-keywords": "^3.5.2" } }, + "search-insights": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.7.0.tgz", + "integrity": "sha512-GLbVaGgzYEKMvuJbHRhLi1qoBFnjXZGZ6l4LxOYPCp4lI2jDRB3jPU9/XNhMwv6kvnA9slTreq6pvK+b3o3aqg==", + "peer": true + }, "section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", @@ -19935,9 +20311,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" }, @@ -19966,9 +20342,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -20661,9 +21037,9 @@ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" }, "ua-parser-js": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.34.tgz", - "integrity": "sha512-cJMeh/eOILyGu0ejgTKB95yKT3zOenSe9UGE3vj6WfiOwgGYnmATUsnDixMFvdU+rNMvWih83hrUP8VwhF9yXQ==" + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", + "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==" }, "unherit": { "version": "1.1.3", @@ -20793,9 +21169,9 @@ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -20921,9 +21297,9 @@ } }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", From f8bade219050987cdc7fda7bf7cbd696347e3114 Mon Sep 17 00:00:00 2001 From: Tushar Date: Thu, 10 Aug 2023 15:45:02 +0530 Subject: [PATCH 06/36] docs: added GenericModel to quickstart and modified fine-tune configure Add walkthrough for genericmodel in quickstart and changed reference to parameters in fine-tune config --- docs/docs/datasets/_category_.json | 2 +- docs/docs/finetune/configure.md | 15 +++--- docs/docs/installation.md | 6 +-- docs/docs/quickstart.md | 85 +++++++++++++++++++++++++++--- 4 files changed, 89 insertions(+), 19 deletions(-) diff --git a/docs/docs/datasets/_category_.json b/docs/docs/datasets/_category_.json index 860348b..5d24a17 100644 --- a/docs/docs/datasets/_category_.json +++ b/docs/docs/datasets/_category_.json @@ -1,6 +1,6 @@ { "label": "📂 Datasets", - "position": 3, + "position": 4, "link": { "type": "generated-index" }, diff --git a/docs/docs/finetune/configure.md b/docs/docs/finetune/configure.md index 06f88b6..439cce0 100644 --- a/docs/docs/finetune/configure.md +++ b/docs/docs/finetune/configure.md @@ -40,14 +40,7 @@ finetuning_config.weight_decay = 0.01 finetuning_config.optimizer_name = "adamw" finetuning_config.output_dir = "training_dir/" ``` - -### 4. Start the finetuning - -```python -model.finetune(dataset=instruction_dataset) -``` - -## Reference +#### Parameters - `learning_rate`: the initial learning rate for the optimizer. - `gradient_accumulation_steps`: number of updates steps to accumulate the gradients for, before performing a backward/update pass. @@ -63,3 +56,9 @@ model.finetune(dataset=instruction_dataset) - `save_total_limit`: if a value is passed, will limit the total amount of checkpoints. Deletes the older checkpoints in output_dir. - `optimizer_name`: optimizer that will be used - `output_dir`: the output directory where the model predictions and checkpoints will be written. + +### 4. Start the finetuning + +```python +model.finetune(dataset=instruction_dataset) +``` \ No newline at end of file diff --git a/docs/docs/installation.md b/docs/docs/installation.md index dd09243..fc22969 100644 --- a/docs/docs/installation.md +++ b/docs/docs/installation.md @@ -72,9 +72,9 @@ The editable install is needed when you: To do so, clone the library from _GitHub_ and install the necessary packages by running the following commands: ```bash -git clone https://github.com/stochasticai/xTuring.git -cd xTuring -pip install -e . +$ git clone https://github.com/stochasticai/xTuring.git +$ cd xTuring +$ pip install -e . ``` Now you will be able to test the changes you do to the library as Python will now look at `~/xTuring/` directory in addition to the normal installation of the library. diff --git a/docs/docs/quickstart.md b/docs/docs/quickstart.md index e93c9b8..3cec9e9 100644 --- a/docs/docs/quickstart.md +++ b/docs/docs/quickstart.md @@ -17,7 +17,7 @@ pip install xturing ``` -## BaseModel +## class `BaseModel` The `BaseModel` is the easiest way use an off-the-shelf supported model for inference and fine-tuning. You can use `BaseModel` to load from a wide-range of supported models, the list of which is mentioned below: @@ -36,7 +36,8 @@ You can use `BaseModel` to load from a wide-range of supported models, the list |LlaMA2 | llama2 | LLaMA2 model | |OPT | opt | OPT 1.3B model | -The above mentioned are the base variants of the LLMs. Below are the templates to get their `LoRA`, `INT8`, `INT8 + LoRA` and `INT4 + LoRA` versions. +### Memory-efficient versions +> The above mentioned are the base variants of the LLMs. Below are the templates to get their `LoRA`, `INT8`, `INT8 + LoRA` and `INT4 + LoRA` versions. | Version | Template | | -- | -- | @@ -44,7 +45,8 @@ The above mentioned are the base variants of the LLMs. Below are the templates t | INT8 | _int8| | INT8 + LoRA | _lora_int8| -** In order to load any model's __`INT4+LoRA`__ version, you will need to make use of `GenericLoraKbitModel` class from `xturing.models`. Below is how to use it: +### INT4 Precision model versions +> In order to load any model's __`INT4+LoRA`__ version, you will need to make use of `GenericLoraKbitModel` class from `xturing.models`. Below is how to use it: ```python model = GenericLoraKbitModel('') ``` @@ -57,16 +59,20 @@ Start by downloading the Alpaca dataset from [here](https://d33tr4pxdm6e2j.cloud ```python from xturing.datasets import InstructionDataset -dataset = InstructionDataset("./alpaca_data") +dataset_path = './alpaca_data' + +dataset = InstructionDataset(dataset_path) ``` Next, initialize the model. -We can also load the LLaMA model without LoRA initiliazation or load one of the other models supported by xTuring. Look at the [supported models](/#basemodel) section for more details. +We can also load the LLaMA model without _LoRA_ initiliazation or load one of the other models supported by xTuring. Look at the [supported models](/#basemodel) section for more details. ```python from xturing.models import BaseModel -model = BaseModel.create("llama_lora") +model_name = 'llama_lora' + +model = BaseModel.create(model_name) ``` To fine-tune the model on the loaded dataset, we will use the default configuration for the fine-tuning. @@ -85,7 +91,72 @@ Print the `output` variable to see the results. Next, we need to save our fine-tuned model using the `.save()` method. We will send the path of the directory as parameter to the method to save the fine-tuned model. ```python -model.save("llama_lora_finetuned") +finetuned_model_path = 'llama_lora_finetuned' + +model.save(finetuned_model_path) +``` + +We can also see our model(s) in action with a beautiful UI by launchung the playground locally. + +```python +from xturing.ui.playground import Playground + +Playground().launch() +``` + +## class `GenericModel` +The `GenericModel` class makes it possible to test and fine-tune the models which are not directly available via the `BaseModel` class. Apart from the base class, we can use classes mentioned below to load the models for memory-efficient computations: + +| Class Name | Description | +| ---------- | ----------- | +| `GenericModel` | Loads the normal version of the model | +| `GenericInt8Model` | Loads the model ready to fine-tune in __INT8__ precision | +| `GenericLoraModel` | Loads the model ready to fine-tune using __LoRA__ technique | +| `GenericLoraInt8Model` | Loads the model ready to fine-tune using __LoRA__ technique in __INT8__ precsion | +| `GenericLoraKbitModel` | Loads the model ready to fine-tune using __LoRA__ technique in __INT4__ precision | + +Let us circle back to the above example and see how we can replicate the results of the `BaseModel` class. + +Start by downloading the Alpaca dataset from [here](https://d33tr4pxdm6e2j.cloudfront.net/public_content/tutorials/datasets/alpaca_data.zip) and extract it to a folder. We will load this dataset using the `InstructionDataset` class. + +```python +from xturing.datasets import InstructionDataset + +dataset_path = './alpaca_data' + +dataset = InstructionDataset(dataset_path) +``` + + +To initialize the model, simply run the following 2 commands: +```python +from xturing.models import GenericModel + +model_path = 'aleksickx/llama-7b-hf' + +model = GenericLoraModel(model_name) +``` +The _'model_path'_ can be a locally saved model and/or any model available on the HuggingFace's [Model Hub](https://huggingface.co/models). + +To fine-tune the model on the loaded dataset, we will use the default configuration for the fine-tuning. + +```python +model.finetune(dataset=dataset) +``` + +Let's test our fine-tuned model, and make some inference. + +```python +output = model.generate(texts=["Why LLM models are becoming so important?"]) +``` +Print the `output` variable to see the results. + +Next, we need to save our fine-tuned model using the `.save()` method. We will send the path of the directory as parameter to the method to save the fine-tuned model. + +```python +finetuned_model_path = 'llama_lora_finetuned' + +model.save(finetuned_model_path) ``` We can also see our model(s) in action with a beautiful UI by launchung the playground locally. From d510fb28d92b50ad3be64190ff38441a6464818c Mon Sep 17 00:00:00 2001 From: Tushar Date: Fri, 11 Aug 2023 15:30:57 +0530 Subject: [PATCH 07/36] docs: modifications suggested by sarthak updated finetune guide, quickstart and load_save_models. Added supported_models. --- docs/docs/finetune/guide.md | 6 ++++-- docs/docs/load_save_models.md | 6 +++--- docs/docs/quickstart.md | 12 +++++++----- docs/docs/supported_models.md | 36 +++++++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 10 deletions(-) create mode 100644 docs/docs/supported_models.md diff --git a/docs/docs/finetune/guide.md b/docs/docs/finetune/guide.md index 07c20ec..d6c67cc 100644 --- a/docs/docs/finetune/guide.md +++ b/docs/docs/finetune/guide.md @@ -18,7 +18,9 @@ Start by loading the instruction dataset and initializing the model of your choi -xTuring supports following models: +A list of all the supported models can be found [here](/supported_models). + + Next, we need to start the fine-tuning diff --git a/docs/docs/load_save_models.md b/docs/docs/load_save_models.md index b31bbf8..68bc680 100644 --- a/docs/docs/load_save_models.md +++ b/docs/docs/load_save_models.md @@ -44,7 +44,7 @@ finetuned_model = BaseModel.load("/path/to/a/directory") ```
-

Refer to the below sample code

+

Sample code to load and save a model

```python ## make the necessary imports @@ -102,7 +102,7 @@ The model weights will be saved into 2 files. The whole model weights including
-

Below are 2 sample codes

+

Examples to load fine-tuned and pre-trained models

1. To load a pre-trained model @@ -127,4 +127,4 @@ model = GenericModel("./saved_model") ``` -
+
diff --git a/docs/docs/quickstart.md b/docs/docs/quickstart.md index 3cec9e9..73ba7c6 100644 --- a/docs/docs/quickstart.md +++ b/docs/docs/quickstart.md @@ -17,12 +17,13 @@ pip install xturing ``` -## class `BaseModel` + +## Load Supported Model The `BaseModel` is the easiest way use an off-the-shelf supported model for inference and fine-tuning. -You can use `BaseModel` to load from a wide-range of supported models, the list of which is mentioned below: +You can use `BaseModel` to load from a wide-range of supported models, the list of which is mentioned [here](/supported_models). -### Supported Models + In this guide, we will be using `BaseModel` to fine-tune __LLaMA 7B__ on the __Alpaca dataset__ using __LoRA__ technique. @@ -104,7 +105,8 @@ from xturing.ui.playground import Playground Playground().launch() ``` -## class `GenericModel` + +## Load Any Model The `GenericModel` class makes it possible to test and fine-tune the models which are not directly available via the `BaseModel` class. Apart from the base class, we can use classes mentioned below to load the models for memory-efficient computations: | Class Name | Description | diff --git a/docs/docs/supported_models.md b/docs/docs/supported_models.md new file mode 100644 index 0000000..77432ef --- /dev/null +++ b/docs/docs/supported_models.md @@ -0,0 +1,36 @@ +--- +sidebar_position: 3 +title: Supported Models +description: Models Supported by xTuring +--- + +# Models supported by xTuring + +| Model | Model Key | LoRA | INT8 | LoRA + INT8 | LoRA + INT4 | +| ------ | --- | ---| --- | --- | --- | +| BLOOM 1.1B| bloom | ✅ | ✅ | ✅ | ✅ | +| Cerebras 1.3B| cerebras | ✅ | ✅ | ✅ | ✅ | +| DistilGPT-2 | distilgpt2 | ✅ | ✅ | ✅ | ✅ | +| Falcon 7B | falcon | ✅ | ✅ | ✅ | ✅ | +| Galactica 6.7B| galactica | ✅ | ✅ | ✅ | ✅ | +| GPT-J 6B | gptj | ✅ | ✅ | ✅ | ✅ | +| GPT-2 | gpt2 | ✅ | ✅ | ✅ | ✅ | +| LLaMA 7B | llama | ✅ | ✅ | ✅ | ✅ | +| LLaMA2 | llama2 | ✅ | ✅ | ✅ | ✅ | +| OPT 1.3B | opt | ✅ | ✅ | ✅ | ✅ | + +### Memory-efficient versions +> The above mentioned are the base variants of the LLMs. Below are the templates to get their `LoRA`, `INT8`, `INT8 + LoRA` and `INT4 + LoRA` versions. + +| Version | Template | +| -- | -- | +| LoRA | _lora| +| INT8 | _int8| +| INT8 + LoRA | _lora_int8| + +### INT4 Precision model versions +> In order to load any model's __`INT4+LoRA`__ version, you will need to make use of `GenericLoraKbitModel` class from `xturing.models`. Below is how to use it: +```python +model = GenericLoraKbitModel('/path/to/model') +``` +The `/path/to/model` can be replaced with you local directory or any HuggingFace library model like `facebook/opt-1.3b`. From 5fffceaa29ef6a4ee5491ab28088857785b32487 Mon Sep 17 00:00:00 2001 From: Tushar Date: Mon, 14 Aug 2023 10:03:46 +0530 Subject: [PATCH 08/36] docs: revamped inference and load_save_models modified load_save_models supported models link rectified --- docs/docs/inference/configure.md | 76 ++++++++++++++++++++++++++------ docs/docs/inference/guide.md | 55 +++++++++++++++++------ docs/docs/load_save_models.md | 2 +- 3 files changed, 106 insertions(+), 27 deletions(-) diff --git a/docs/docs/inference/configure.md b/docs/docs/inference/configure.md index 5b659e5..e18da12 100644 --- a/docs/docs/inference/configure.md +++ b/docs/docs/inference/configure.md @@ -8,42 +8,92 @@ sidebar_position: 2 xTuring is easy to use. The library already loads the best parameters for each model by default. -For advanced usage, you can customize the `generate` method. +For advanced usage, you can customize the `.generation_config` attribute of the model. -### 1. Instantiate your model +## `BaseModel` usage + +In this tutorial, we will be loading __OPT 1.3B__ model and customizing it's generation configuration before ineferencing. To use any other model, head to [supported models](/supported_models) page for model keys to supported models of `xTuring`. + +### 1. Load the model ```python from xturing.models.base import BaseModel -model = BaseModel.create("llama_lora") +model = BaseModel.create("opt") ``` ### 2. Load the config object +```python +generation_config = model.generation_config() +``` Print the `generation_config` object to check the default configuration. +### 3. Customize the configuration + +```python +generation_config.max_new_tokens = 256 +``` + +### 4. Test the model + +```python +output = model.generate(texts=["Why are the LLM models important?"]) +``` +Print the `output` object to see the results. + +#### Parameters + +>__max_new_tokens__: the maximum numbers of tokens to generate, ignoring the number of tokens in the prompt. +> +> __penalty_alpha__: for contrastive search decoding. The values balance the model confidence and the degeneration penalty. +> +>__top_k__: for contrastive search and sampling decoding method. The number of highest probability vocabulary tokens to keep for top-k-filtering. +> +> __do_sample__: whether or not to use sampling. +> +> __top_p__: for sampling decoding method. If set to float < 1, only the smallest set of most probable tokens with probabilities that add up to top_p or higher are kept for generation. + +## `GenericModel` usage + +In this tutorial, we will be loading [__facebook/opt1.3B__](https://huggingface.co/facebook/opt-1.3b) model and customizing it's generation configuration before ineferencing. + +### 1. Load the model + +```python +from xturing.models.base import BaseModel + +model = GenericModel("facebook/opt-1.3B") +``` + +### 2. Load the config object + ```python generation_config = model.generation_config() -print(generation_config) ``` +Print the `generation_config` object to check the default configuration. -### 3. Set the config +### 3. Customize the configuration ```python generation_config.max_new_tokens = 256 ``` -### 4. Start generating text +### 4. Test the model ```python output = model.generate(texts=["Why are the LLM models important?"]) -print(output) ``` +Print the `output` object to see the results. -## Reference +#### Parameters -- `max_new_tokens`: the maximum numbers of tokens to generate, ignoring the number of tokens in the prompt. -- `penalty_alpha`: for contrastive search decoding. The values balance the model confidence and the degeneration penalty. -- `top_k`: for contrastive search and sampling decoding method. The number of highest probability vocabulary tokens to keep for top-k-filtering. -- `do_sample`: whether or not to use sampling. -- `top_p`: for sampling decoding method. If set to float < 1, only the smallest set of most probable tokens with probabilities that add up to top_p or higher are kept for generation. +> __max_new_tokens__: the maximum numbers of tokens to generate, ignoring the number of tokens in the prompt. +> +> __penalty_alpha__: for contrastive search decoding. The values balance the model confidence and the degeneration penalty. +> +> __top_k__: for contrastive search and sampling decoding method. The number of highest probability vocabulary tokens to keep for top-k-filtering. +> +> __do_sample__: whether or not to use sampling. +> +> __top_p__: for sampling decoding method. If set to float < 1, only the smallest set of most probable tokens with probabilities that add up to top_p or higher are kept for generation. diff --git a/docs/docs/inference/guide.md b/docs/docs/inference/guide.md index 912b4e3..f8c5dd3 100644 --- a/docs/docs/inference/guide.md +++ b/docs/docs/inference/guide.md @@ -6,22 +6,32 @@ sidebar_position: 1 # Inference Guide -## Inference using `BaseModel` +## Inference via `BaseModel` Once you have fine-tuned your model, you can run the inferences as simple as follows. -### 1. (Optional) Load your model +### Using a local model -Load your model from a checkpoint after fine-tuning it. +Start with loading your model from a checkpoint after fine-tuning it. ```python # Make the ncessary imports from xturing.models.base import BaseModel # Load the desired model -model = BaseModel.load("/dir/path") +model = BaseModel.load("/path/to/local/model") ``` -Load your model with the default weights +Next, we can run do the inference on our model using the `.generate()` method. + +```python +# Make inference +output = model.generate(texts=["Why are the LLMs so important?"]) +# Print the generated outputs +print("Generated output: {}".format(output)) +``` +### Using a pretrained model + +Start with loading your model with the default weights ```python # Make the ncessary imports @@ -30,7 +40,7 @@ from xturing.models.base import BaseModel model = BaseModel.create("llama_lora") ``` -### 2. Run the generate method +Next, we can run do the inference on our model using the `.generate()` method. ```python # Make inference @@ -39,22 +49,41 @@ output = model.generate(texts=["Why are the LLMs so important?"]) print("Generated output: {}".format(output)) ``` -## Inference using `GenericModel` +## Inference via `GenericModel` Once you have fine-tuned your model, you can run the inferences as simple as follows. -### 1. (Optional) Load your model +### Using a local model + +Start with loading your model from a checkpoint after fine-tuning it. + +```python +# Make the ncessary imports +from xturing.modelsimport GenericModel +# Load the desired model +model = GenericModel("/path/to/local/model") +``` + +Next, we can run do the inference on our model using the `.generate()` method. + +```python +# Make inference +output = model.generate(texts=["Why are the LLMs so important?"]) +# Print the generated outputs +print("Generated output: {}".format(output)) +``` +### Using a pretrained model -Load your model from a checkpoint after fine-tuning it. +Start with loading your model with the default weights. ```python -# Make the necessary imports +# Make the ncessary imports from xturing.models import GenericModel -# Load your desired model -model = GenericModel("/dir/path") +# Load the desired model +model = GenericModel("llama_lora") ``` -### 2. Run the generate method +Next, we can run do the inference on our model using the `.generate()` method. ```python # Make inference diff --git a/docs/docs/load_save_models.md b/docs/docs/load_save_models.md index 68bc680..b84147e 100644 --- a/docs/docs/load_save_models.md +++ b/docs/docs/load_save_models.md @@ -21,7 +21,7 @@ For example, model = BaseModel.create("distilgpt2_lora") ''' ``` -You can find all the supported model keys [here](../../README.md) +You can find all the supported model keys [here](/supported_models) ### 2. Save a fine-tuned model From 22fa832dd02b3533b5eae098bdc03c4389042c92 Mon Sep 17 00:00:00 2001 From: Tushar Date: Thu, 17 Aug 2023 11:17:48 +0530 Subject: [PATCH 09/36] revamped dropdowns in finetune guide --- docs/docs/contributing/general_rules.md | 6 +- docs/docs/finetune/test.jsx | 98 +++++++++++++++++-------- 2 files changed, 71 insertions(+), 33 deletions(-) diff --git a/docs/docs/contributing/general_rules.md b/docs/docs/contributing/general_rules.md index eb91abf..a7601fc 100644 --- a/docs/docs/contributing/general_rules.md +++ b/docs/docs/contributing/general_rules.md @@ -1,14 +1,14 @@ --- -title: Guide +title: How to contribute to xTuring? description: How to contribute to xTuring? sidebar_position: 1 --- -# Contributing guide +# Contribute to xTuring We are excited that you are interested in contributing to our open-source project. xTuring is an open-source library that is maintained by a community of developers and researchers. We welcome contributions of all kinds, including bug reports, feature requests, and code contributions. -### Getting started +### Ways to contribute To start contributing to xTuring, we recommend that you familiarize yourself with our library by reading through our documentation and exploring the codebase. Once you are comfortable with the library, you can start contributing by: 1. **Adding more models and features**: We are always looking to expand the capabilities of xTuring by adding more models and features. If you have expertise in a particular area of machine learning and would like to contribute a new model, we welcome your input. If you have an idea for a new feature, we encourage you to share your ideas with us. diff --git a/docs/docs/finetune/test.jsx b/docs/docs/finetune/test.jsx index 929ac3b..a9f9851 100644 --- a/docs/docs/finetune/test.jsx +++ b/docs/docs/finetune/test.jsx @@ -1,46 +1,86 @@ -import React, { useState } from 'react' +import React, { useEffect, useState } from 'react' import clsx from 'clsx' import MDXContent from '@theme/MDXContent' import CodeBlock from '@theme/CodeBlock' +const trainingTechniques = { + base: 'Base', + lora: 'LoRa', + lora_int8: 'LoRA INT8', + int8: 'INT8', +} + +const modelList = { + bloom: 'BLOOM', + cerebras: 'Cerebras', + distilgpt2: 'DistilGPT-2', + galactica: 'Galactica', + gptj: 'GPT-J', + gpt2: 'GPT-2', + llama: 'LLaMA', + llama2: 'LLaMA 2', + opt: 'OPT', +} + export default function Test( {instruction} ) { - const [code, setCode] = useState('llama'); + // const [code, setCode] = useState('llama'); + const [code, setCode] = useState({ + model: '', + technique: 'base', + }) + + let finalKey = '' + if (code.technique === 'base') { + finalKey = `${code.model}` + } else { + finalKey = `${code.model}_${code.technique}` + } + + useEffect(() => { + setCode({ + model: 'bloom', + technique: 'base' + }); + }, []); return (
- + + + +
) From b90806b6982dd7dc8b9100674d1fd7e14ac1a33f Mon Sep 17 00:00:00 2001 From: Tushar Date: Thu, 17 Aug 2023 12:28:44 +0530 Subject: [PATCH 10/36] contributing guide --- docs/docs/contributing/general_rules.md | 106 +++++++++++++++++++----- 1 file changed, 87 insertions(+), 19 deletions(-) diff --git a/docs/docs/contributing/general_rules.md b/docs/docs/contributing/general_rules.md index a7601fc..ccf3390 100644 --- a/docs/docs/contributing/general_rules.md +++ b/docs/docs/contributing/general_rules.md @@ -6,34 +6,62 @@ sidebar_position: 1 # Contribute to xTuring -We are excited that you are interested in contributing to our open-source project. xTuring is an open-source library that is maintained by a community of developers and researchers. We welcome contributions of all kinds, including bug reports, feature requests, and code contributions. +We are excited that you are interested in contributing to our open-source project. `xTuring` is an open-source library that is maintained by a community of developers and researchers. We welcome contributions of all kinds, including bug reports, feature requests, and code contributions. -### Ways to contribute +## Ways to contribute To start contributing to xTuring, we recommend that you familiarize yourself with our library by reading through our documentation and exploring the codebase. Once you are comfortable with the library, you can start contributing by: -1. **Adding more models and features**: We are always looking to expand the capabilities of xTuring by adding more models and features. If you have expertise in a particular area of machine learning and would like to contribute a new model, we welcome your input. If you have an idea for a new feature, we encourage you to share your ideas with us. -2. **Adding test cases**: Adding tests is an essential part of maintaining and improving the quality of our codebase. By adding test cases, you can help ensure that xTuring is robust and reliable. -3. **Maintaining code**: Maintaining code is an important part of open-source development. By helping with code maintenance, you can ensure that xTuring is up-to-date, bug-free, and user-friendly. -4. **Helping with documentation**: As an open-source project, xTuring relies on documentation to help users understand how to use the library. If you have a talent for technical writing, we welcome your contributions to our documentation. +1. **Fixing oustanding issues with existing code** +2. **Adding new models and features** +3. **Adding test cases** +4. **Maintaining code** +5. **Helping with documentation** -### How to contribute -To contribute to xTuring, follow these steps: +If you are skeptical where to start, here are some good [First Issues](https://github.com/stochasticai/xTuring/labels/good%20first%20issue) for you to go head on with. -1. Fork the repository on GitHub -2. Clone your forked repository to your local machine +### Fixing oustanding issues +If you come across some issue with the current code and have a solution to it, feel free to [contribute](https://github.com/stochasticai/xTuring/issues) and make a [Pull Request](https://github.com/stochasticai/xTuring/compare)! + + +### Adding models and features +We are always looking to expand the capabilities of xTuring by adding more models and features. If you have expertise in a particular area of machine learning and would like to contribute a new model, we welcome your input. If you have an idea for a new feature, we encourage you to share your ideas with us by submitting an [issue](https://github.com/stochasticai/xTuring/issues)! + +### Found some interesting test cases? +Adding tests is an essential part of maintaining and improving the quality of our codebase. By adding test cases, you can help ensure that xTuring is robust and reliable. + +### Want to update the existing code? +Maintaining code is an important part of open-source development. By helping with code maintenance, you can ensure that xTuring is up-to-date, bug-free, and user-friendly. + +### Wish to add to documentation? +As an open-source project, xTuring relies on documentation to help users understand how to use the library. If you have a talent for technical writing, we welcome your contributions to our documentation. + + +## Create a Pull Request +Before you make a PR, make sure to search through existing PRs and issues to make sure nobody else is already working on it. If unsure, it is best to open an issue to get some feedback. + +In order to start and meet less hurdles on the way, it would be a good idea to be have _git_ proficiency to contribute to `xTuring`. If you get stuck somewhere, type _git --help_ in a shell and find your command! + +You'll need Python 3.8 or above to contribute to __`xTuring`__. To start contributing, follow the below steps: + +1. Fork the [repository](https://github.com/stochastciai/xTuring) by clicking on the [Fork](https://github.com/stochasticai/xTuring/fork) button on repository's GitHub page. This will create a copy of the main codebase under your GitHub account. + +2. Clone your forked repository to your local machine, and add the base repository as a remote. ```bash -git clone https://github.com//xturing.git +git clone https://github.com//xTuring.git +cd xTuring +git remote add upstream https://github.com/stochastic/xTuring.git ``` 3. Create a new branch for your changes emerging from the `dev` branch. ```bash git checkout dev -git checkout -b +git checkout -b a-descriptive-name-for-your-changes ``` +🚨 **Do not** checkout from the _main_ branch or work on it. -4. Use pre-commit hooks to ensure your code is properly formatted +4. Make sure you have pre-commit hooks installed and set up to ensure your code is properly formatted before being pushed to _git_. ```bash pip install pre-commit @@ -41,19 +69,59 @@ pre-commit install pre-commit install --hook-type commit-msg ``` -5. Make your changes and commit them +5. Set up a development environment by running the following command in a virtual environment: + +```bash +pip install -e . +``` + +If `xTuring` is already installed in your virtual environment, remove it with _pip uninstall xturing_ before reinstlling it in editable mode with the _-e_ flag. +Here are the guides to setting up [virtual environment](https://www.freecodecamp.org/news/how-to-setup-virtual-environments-in-python/) and [conda environment](https://conda.io/projects/conda/en/latest/user-guide/getting-started.html). + +6. Develop features on your branch +As you work on your code, you should make sure the test suite passes. Run all the tests to make sure nothing breaks once your code is pushed to GitHub using the following command: +```bash +pytest tests/ +``` + +Once you are satisified with your changes and all the tests pass, add changed files with _git add_ and record your changes with _git commit_: + +```bash +git add +git commit -m "" +``` +Make sure to write __good commit messages__ to clearly communicate the changes you made! + +Before pushing the code to GitHub and making a PR, ensure you have your copy of code up-to-date with the main repository. To do so, rebase your branch on _upstream/branch_: ```bash -git add -git commit -m "Commit message" +git fetch upstream +git rebase upstream/dev ``` -6. Push your changes to your forked repository +7. Push your changes to your forked repository ```bash -git push origin +git push -u origin a-descriptive-name-for-your-changes ``` -7. Create a pull request to the `dev` branch with a clear description of your changes and why they are needed. We will review your changes as soon as possible and provide feedback. Once your changes have been approved, they will be merged into the dev branch. +8. Now, you can go your fork of the repository on GitHub and click on __[Pull Request](https://github.com/stochasticai/xTuring/compare)__ to open a pull request to the __dev__ branch of the original repository with a clear description of your changes and why they are needed. We will review your changes as soon as possible and provide feedback. Once your changes have been approved, they will be merged into the _dev_ branch. + +9. Maintainers might request changes, it is fine if they do, it happens to our core contributors too! So everyone can see the changes in the pull request, work in your local branch and push the changes to your fork. They will automatically appear in the pull request. We value the contributions of our community and are committed to creating an open and collaborative development environment. Thank you for considering contributing to xTuring! + +### Sync a forked repository with upstream dec (the original xTuring repository) + +To prevent triggering notifications and adding reference notes to each upstream pull request, adhere to these guidelines when making updates to the primary branch of a forked repository: + +1. Whenever feasible, bypass synchronizing with the upstream repository by merging changes directly into the _dev_ branch of the forked repository. Evade the use of a separate branch and pull request for upstream synchronization. + +2. In cases where a pull request is genuinely required, follow these steps once you've switched to your branch: + +```bash +git checkout -b your-branch-for-syncing +git pull --squash --no-commit upstream dev +git commit -m '' +git push --set-upstream origin your-branch-for-syncing +``` \ No newline at end of file From bb0d931bb3598e65198e3fd64fed99f3cecfa01c Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 23 Aug 2023 15:19:21 +0530 Subject: [PATCH 11/36] structure complete --- docs/docs/advanced/_category_.json | 9 +++++++++ docs/docs/advanced/advanced.md | 1 + docs/docs/advanced/anymodel.md | 6 ++++++ docs/docs/{datasets => advanced}/generate.md | 4 ++-- docs/docs/advanced/pythonapi.md | 7 +++++++ docs/docs/contributing/_category_.json | 2 +- .../{general_rules.md => how_to_contribute.md} | 2 +- docs/docs/contributing/model_contributing.md | 10 +++++----- docs/docs/contributing/setting_up.md | 5 +++++ docs/docs/datasets/_category_.json | 8 -------- docs/docs/finetune/_category_.json | 8 -------- docs/docs/overview/_category_.json | 9 +++++++++ docs/docs/{ => overview}/installation.md | 2 +- docs/docs/{ => overview}/intro.md | 0 docs/docs/overview/overview.md | 0 docs/docs/overview/quickstart/_category_.json | 9 +++++++++ .../quickstart/finetune_guide.md} | 4 ++-- .../guide.md => overview/quickstart/inference.md} | 4 ++-- .../{ => overview/quickstart}/load_save_models.md | 2 +- .../docs/{datasets => overview/quickstart}/prepare.md | 2 +- docs/docs/{ => overview/quickstart}/quickstart.md | 0 docs/docs/{finetune => overview/quickstart}/test.jsx | 0 docs/docs/{ => overview}/supported_models.md | 2 +- docs/docs/personalization/_category_.json | 9 +++++++++ .../finetune_configure.md} | 2 +- .../inference_configure.md} | 2 +- docs/docs/personalization/personalization.md | 1 + docs/docs/{datasets => personalization}/usage.md | 0 docs/docs/tutorials.md | 11 ----------- 29 files changed, 75 insertions(+), 46 deletions(-) create mode 100644 docs/docs/advanced/_category_.json create mode 100644 docs/docs/advanced/advanced.md create mode 100644 docs/docs/advanced/anymodel.md rename docs/docs/{datasets => advanced}/generate.md (97%) create mode 100644 docs/docs/advanced/pythonapi.md rename docs/docs/contributing/{general_rules.md => how_to_contribute.md} (97%) create mode 100644 docs/docs/contributing/setting_up.md delete mode 100644 docs/docs/datasets/_category_.json delete mode 100644 docs/docs/finetune/_category_.json create mode 100644 docs/docs/overview/_category_.json rename docs/docs/{ => overview}/installation.md (99%) rename docs/docs/{ => overview}/intro.md (100%) create mode 100644 docs/docs/overview/overview.md create mode 100644 docs/docs/overview/quickstart/_category_.json rename docs/docs/{finetune/guide.md => overview/quickstart/finetune_guide.md} (96%) rename docs/docs/{inference/guide.md => overview/quickstart/inference.md} (94%) rename docs/docs/{ => overview/quickstart}/load_save_models.md (96%) rename docs/docs/{datasets => overview/quickstart}/prepare.md (98%) rename docs/docs/{ => overview/quickstart}/quickstart.md (100%) rename docs/docs/{finetune => overview/quickstart}/test.jsx (100%) rename docs/docs/{ => overview}/supported_models.md (98%) create mode 100644 docs/docs/personalization/_category_.json rename docs/docs/{finetune/configure.md => personalization/finetune_configure.md} (96%) rename docs/docs/{inference/configure.md => personalization/inference_configure.md} (96%) create mode 100644 docs/docs/personalization/personalization.md rename docs/docs/{datasets => personalization}/usage.md (100%) delete mode 100644 docs/docs/tutorials.md diff --git a/docs/docs/advanced/_category_.json b/docs/docs/advanced/_category_.json new file mode 100644 index 0000000..27ed907 --- /dev/null +++ b/docs/docs/advanced/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "Advanced Topics", + "position": 3, + "collapsed": false, + "link": { + "type": "doc", + "id": "advanced" + } +} diff --git a/docs/docs/advanced/advanced.md b/docs/docs/advanced/advanced.md new file mode 100644 index 0000000..feca3c3 --- /dev/null +++ b/docs/docs/advanced/advanced.md @@ -0,0 +1 @@ +# Advanced Topics \ No newline at end of file diff --git a/docs/docs/advanced/anymodel.md b/docs/docs/advanced/anymodel.md new file mode 100644 index 0000000..4ad32bd --- /dev/null +++ b/docs/docs/advanced/anymodel.md @@ -0,0 +1,6 @@ +--- +title: Work with Any Model +description: Use self-instruction to generate a dataset +sidebar_position: 2 +--- +# GenericModel \ No newline at end of file diff --git a/docs/docs/datasets/generate.md b/docs/docs/advanced/generate.md similarity index 97% rename from docs/docs/datasets/generate.md rename to docs/docs/advanced/generate.md index 784bcac..462f6a4 100644 --- a/docs/docs/datasets/generate.md +++ b/docs/docs/advanced/generate.md @@ -1,7 +1,7 @@ --- title: Generate a dataset description: Use self-instruction to generate a dataset -sidebar_position: 2 +sidebar_position: 1 --- import Tabs from '@theme/Tabs'; @@ -191,4 +191,4 @@ The size of the chunk of text (in chars) that will be used to generate the instr ### num_samples_per_chunk The number of samples that will be generated for each chunk. The default value is 5. -::: +::: diff --git a/docs/docs/advanced/pythonapi.md b/docs/docs/advanced/pythonapi.md new file mode 100644 index 0000000..16c9cd9 --- /dev/null +++ b/docs/docs/advanced/pythonapi.md @@ -0,0 +1,7 @@ +--- +title: Python API Reference +description: Use self-instruction to generate a dataset +sidebar_position: 3 +--- + +## Python API \ No newline at end of file diff --git a/docs/docs/contributing/_category_.json b/docs/docs/contributing/_category_.json index a9d5ad6..3f7d073 100644 --- a/docs/docs/contributing/_category_.json +++ b/docs/docs/contributing/_category_.json @@ -1,6 +1,6 @@ { "label": "🤝 Contributing", - "position": 8, + "position": 4, "link": { "type": "generated-index" }, diff --git a/docs/docs/contributing/general_rules.md b/docs/docs/contributing/how_to_contribute.md similarity index 97% rename from docs/docs/contributing/general_rules.md rename to docs/docs/contributing/how_to_contribute.md index ccf3390..725c832 100644 --- a/docs/docs/contributing/general_rules.md +++ b/docs/docs/contributing/how_to_contribute.md @@ -1,7 +1,7 @@ --- title: How to contribute to xTuring? description: How to contribute to xTuring? -sidebar_position: 1 +sidebar_position: 2 --- # Contribute to xTuring diff --git a/docs/docs/contributing/model_contributing.md b/docs/docs/contributing/model_contributing.md index 57c6e7f..409a985 100644 --- a/docs/docs/contributing/model_contributing.md +++ b/docs/docs/contributing/model_contributing.md @@ -1,15 +1,15 @@ --- -title: Adding new models +title: Adding new model description: Guide on how to add new models to xTuring -sidebar_position: 2 +sidebar_position: 3 --- -# Adding new models +# How to add a model to _xTuring_? We appreciate your interest in contributing new models to xTuring. This guide will help you understand how to add new models and engines to the library. ## Prerequisites -Before you start, make sure you are familiar with the xTuring codebase, particularly the structure of the models and engines folders. Familiarity with PyTorch and the Hugging Face Transformers library is also essential. +Before you start, make sure you are familiar with the xTuring codebase, particularly the structure of the models and engines folders. Familiarity with _PyTorch_ and the _Hugging Face Transformers_ library is also essential. ## Steps to add a new model @@ -97,4 +97,4 @@ Before you start, make sure you are familiar with the xTuring codebase, particul Thank you for your contribution to xTuring! -> Note: For ease of review, make sure to run your model locally with a sample prompt and paste your output(s) along with the sample prompt in the description space of your pull request. +> Note: For ease of review, make sure to run your model locally with a sample prompt and paste your output(s) along with the sample prompt in the description space of your pull request. diff --git a/docs/docs/contributing/setting_up.md b/docs/docs/contributing/setting_up.md new file mode 100644 index 0000000..57c9582 --- /dev/null +++ b/docs/docs/contributing/setting_up.md @@ -0,0 +1,5 @@ +--- +title: Setting Up +description: Use self-instruction to generate a dataset +sidebar_position: 1 +--- \ No newline at end of file diff --git a/docs/docs/datasets/_category_.json b/docs/docs/datasets/_category_.json deleted file mode 100644 index 5d24a17..0000000 --- a/docs/docs/datasets/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "📂 Datasets", - "position": 4, - "link": { - "type": "generated-index" - }, - "collapsed": false -} diff --git a/docs/docs/finetune/_category_.json b/docs/docs/finetune/_category_.json deleted file mode 100644 index 44617cd..0000000 --- a/docs/docs/finetune/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "🏋 Fine-tune", - "position": 4, - "link": { - "type": "generated-index" - }, - "collapsed": false -} diff --git a/docs/docs/overview/_category_.json b/docs/docs/overview/_category_.json new file mode 100644 index 0000000..989d7dc --- /dev/null +++ b/docs/docs/overview/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "Overview", + "position": 1, + "collapsed": false, + "link": { + "type": "doc", + "id": "overview" + } +} diff --git a/docs/docs/installation.md b/docs/docs/overview/installation.md similarity index 99% rename from docs/docs/installation.md rename to docs/docs/overview/installation.md index fc22969..d04a4c9 100644 --- a/docs/docs/installation.md +++ b/docs/docs/overview/installation.md @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 2 title: Installation description: Your first time installing xTuring --- diff --git a/docs/docs/intro.md b/docs/docs/overview/intro.md similarity index 100% rename from docs/docs/intro.md rename to docs/docs/overview/intro.md diff --git a/docs/docs/overview/overview.md b/docs/docs/overview/overview.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/docs/overview/quickstart/_category_.json b/docs/docs/overview/quickstart/_category_.json new file mode 100644 index 0000000..a5b2e51 --- /dev/null +++ b/docs/docs/overview/quickstart/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "QuickStart", + "position": 3, + "collapsed": false, + "link": { + "type": "doc", + "id": "quickstart" + } +} diff --git a/docs/docs/finetune/guide.md b/docs/docs/overview/quickstart/finetune_guide.md similarity index 96% rename from docs/docs/finetune/guide.md rename to docs/docs/overview/quickstart/finetune_guide.md index d6c67cc..0b14bd3 100644 --- a/docs/docs/finetune/guide.md +++ b/docs/docs/overview/quickstart/finetune_guide.md @@ -1,7 +1,7 @@ --- -title: Guide +title: Fine-tune description: Fine-tuning with xTuring -sidebar_position: 1 +sidebar_position: 3 --- import Test from './test'; diff --git a/docs/docs/inference/guide.md b/docs/docs/overview/quickstart/inference.md similarity index 94% rename from docs/docs/inference/guide.md rename to docs/docs/overview/quickstart/inference.md index f8c5dd3..1edd2b5 100644 --- a/docs/docs/inference/guide.md +++ b/docs/docs/overview/quickstart/inference.md @@ -1,7 +1,7 @@ --- -title: Guide +title: Inference description: Inferencing guide -sidebar_position: 1 +sidebar_position: 4 --- # Inference Guide diff --git a/docs/docs/load_save_models.md b/docs/docs/overview/quickstart/load_save_models.md similarity index 96% rename from docs/docs/load_save_models.md rename to docs/docs/overview/quickstart/load_save_models.md index b84147e..5f9fc2f 100644 --- a/docs/docs/load_save_models.md +++ b/docs/docs/overview/quickstart/load_save_models.md @@ -1,7 +1,7 @@ --- title: 💾 Load and save models description: Load and save models -sidebar_position: 6 +sidebar_position: 1 --- # Load and save models diff --git a/docs/docs/datasets/prepare.md b/docs/docs/overview/quickstart/prepare.md similarity index 98% rename from docs/docs/datasets/prepare.md rename to docs/docs/overview/quickstart/prepare.md index f9c4007..cc7fa72 100644 --- a/docs/docs/datasets/prepare.md +++ b/docs/docs/overview/quickstart/prepare.md @@ -1,7 +1,7 @@ --- title: Prepare Dataset description: Use self-instruction to generate a dataset -sidebar_position: 3 +sidebar_position: 2 --- ## Prepare Instruction dataset diff --git a/docs/docs/quickstart.md b/docs/docs/overview/quickstart/quickstart.md similarity index 100% rename from docs/docs/quickstart.md rename to docs/docs/overview/quickstart/quickstart.md diff --git a/docs/docs/finetune/test.jsx b/docs/docs/overview/quickstart/test.jsx similarity index 100% rename from docs/docs/finetune/test.jsx rename to docs/docs/overview/quickstart/test.jsx diff --git a/docs/docs/supported_models.md b/docs/docs/overview/supported_models.md similarity index 98% rename from docs/docs/supported_models.md rename to docs/docs/overview/supported_models.md index 77432ef..663c940 100644 --- a/docs/docs/supported_models.md +++ b/docs/docs/overview/supported_models.md @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 4 title: Supported Models description: Models Supported by xTuring --- diff --git a/docs/docs/personalization/_category_.json b/docs/docs/personalization/_category_.json new file mode 100644 index 0000000..615aecb --- /dev/null +++ b/docs/docs/personalization/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "Personalization", + "position": 2, + "collapsed": false, + "link": { + "type": "doc", + "id": "personalization" + } +} diff --git a/docs/docs/finetune/configure.md b/docs/docs/personalization/finetune_configure.md similarity index 96% rename from docs/docs/finetune/configure.md rename to docs/docs/personalization/finetune_configure.md index 439cce0..cb98b52 100644 --- a/docs/docs/finetune/configure.md +++ b/docs/docs/personalization/finetune_configure.md @@ -1,5 +1,5 @@ --- -title: Configure +title: Fine-tune description: Fine-tuning parameters sidebar_position: 2 --- diff --git a/docs/docs/inference/configure.md b/docs/docs/personalization/inference_configure.md similarity index 96% rename from docs/docs/inference/configure.md rename to docs/docs/personalization/inference_configure.md index e18da12..7c8f134 100644 --- a/docs/docs/inference/configure.md +++ b/docs/docs/personalization/inference_configure.md @@ -1,5 +1,5 @@ --- -title: Configure +title: Inference description: Inference parameters sidebar_position: 2 --- diff --git a/docs/docs/personalization/personalization.md b/docs/docs/personalization/personalization.md new file mode 100644 index 0000000..b20546f --- /dev/null +++ b/docs/docs/personalization/personalization.md @@ -0,0 +1 @@ +# Personalization \ No newline at end of file diff --git a/docs/docs/datasets/usage.md b/docs/docs/personalization/usage.md similarity index 100% rename from docs/docs/datasets/usage.md rename to docs/docs/personalization/usage.md diff --git a/docs/docs/tutorials.md b/docs/docs/tutorials.md deleted file mode 100644 index 7538376..0000000 --- a/docs/docs/tutorials.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 3 -title: Tutorials -description: Your first time using xTuring ---- - -Below is a list of some handy walk-throughs to make help you get kick-started with `xTuring` library. - -1. [Run inference with `BaseModel` class](/inference/guide) -2. [Run inference with `GenericModel` class](/inference/guide#inference-using-genericmodel) -3. [Fine-tune a pretrained model](/finetune/guide) \ No newline at end of file From 18e5aab886c35df6dfb44a9fe3af1ba108193d65 Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 23 Aug 2023 15:43:27 +0530 Subject: [PATCH 12/36] installation done --- docs/docs/contributing/setting_up.md | 39 ++++++++++++++- docs/docs/overview/installation.md | 73 ++++++++++++++-------------- 2 files changed, 74 insertions(+), 38 deletions(-) diff --git a/docs/docs/contributing/setting_up.md b/docs/docs/contributing/setting_up.md index 57c9582..ba69033 100644 --- a/docs/docs/contributing/setting_up.md +++ b/docs/docs/contributing/setting_up.md @@ -1,5 +1,40 @@ --- title: Setting Up -description: Use self-instruction to generate a dataset +description: Setup xTuring for contribution sidebar_position: 1 ---- \ No newline at end of file +--- + +## Install from source +Install `xTuring` directly from GitHub by running the following command on your cmd/terminal: +```bash +$ pip install git+https://github.com/stochasticai/xTuring +``` +The above command will install the main version instead of the latest stable version of `xTuring`. This way of installing is a good way of being up-to-date with the latest development. There might be bugs which would be fixed in the main version but not yet rolled-out on pip. But at the same time this does not guarantee a stable version, this was of installation might break somewhere. We try our best to keep the main version free from any pitfalls and resolved of all the issues. If you run into a problem, please open up an [issue](https://github.com/stochasticai/xTuring/issues/new) and if possible, make a [contribution](https://github.com/stochasticai/xTuring/compare)! + +Finally, you can test if `xTuring` has been properly installed by running the following commands on your cmd/terminal: +```bash +$ python +>>> from xturing.models import BaseModel +>>> model = BaseModel.create('opt') +>>> outputs = model.generate(texts=['Hi How are you?']) +``` +Then print the outputs variable to see what the LLM generated based on the input prompt. + +## Editable Install +The editable install is needed when you: +1. install directly from the source +2. wish to make a contribution to the `xTuring` library. + +To do so, clone the library from _GitHub_ and install the necessary packages by running the following commands: +```bash +$ git clone https://github.com/stochasticai/xTuring.git +$ cd xTuring +$ pip install -e . +``` +Now you will be able to test the changes you do to the library as Python will now look at `~/xTuring/` directory in addition to the normal installation of the library. + +Next, in order to update your version, run the following command inside the `~/xTuring/` directory: +```bash +$ git pull +``` +This will fast-forward your main version to the latest developments to the library, you can freely play around and use those. diff --git a/docs/docs/overview/installation.md b/docs/docs/overview/installation.md index d04a4c9..ce35cba 100644 --- a/docs/docs/overview/installation.md +++ b/docs/docs/overview/installation.md @@ -3,15 +3,20 @@ sidebar_position: 2 title: Installation description: Your first time installing xTuring --- - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +You can install `xTuring` globally on your machine, but it is advised to install it inside a virtual environment. Before starting, make sure you have __Python 3.0+__ installed on your machine. + ## Install via pip -You can install `xTuring` globally on your machine, but it is advised to install it inside a virtual environment. Before starting, make sure you have __Python 3.0+__ installed on your machine and have _virtualenv_ package installed as well. +For this, ensure that you have _virtualenv_ package installed or _anaconda_ setup on your machine. Start by creating a virtual environment in your working directory: + + + + ```bash $ virtualenv venv ``` @@ -34,29 +39,44 @@ $ source venv/bin/activate - Once the virtual environment is activated, you can now install `xTuring` library by running the following command on your terminal: + + + + ```bash -$ pip install xTuring -``` -This will install the latest version of xTuring available on pip. -Finally, you can test if `xTuring` has been properly installed by running the following commands on your cmd/terminal: +$ conda create -n venv +``` +Activate the conda environment. + + + ```bash -$ python ->>> from xturing.models import BaseModel ->>> model = BaseModel.create('opt') ->>> outputs = model.generate(texts=['Hi How are you?']) +$ conda activate venv ``` -Then print the outputs variable to see what the LLM generated based on the input prompt. -## Install from source -Install `xTuring` directly from GitHub by running the following command on your cmd/terminal: + + + ```bash -$ pip install git+https://github.com/stochasticai/xTuring +> conda activate venv ``` -The above command will install the main version instead of the latest stable version of `xTuring`. This way of installing is a good way of being up-to-date with the latest development. There might be bugs which would be fixed in the main version but not yet rolled-out on pip. But at the same time this does not guarantee a stable version, this was of installation might break somewhere. We try our best to keep the main version free from any pitfalls and resolved of all the issues. If you run into a problem, please open up an [issue](https://github.com/stochasticai/xTuring/issues/new) and if possible, make a [contribution](https://github.com/stochasticai/xTuring/compare)! -Finally, you can test if `xTuring` has been properly installed by running the following commands on your cmd/terminal: + + + +Once the conda environment is activated, you can now install `xTuring` library by running the following command on your terminal: + + + + + + +```bash +$ pip install xTuring +``` +This will install the latest version of xTuring available on pip. +Finally, you can test if `xTuring` has been properly installed by running the following commands on your terminal: ```bash $ python >>> from xturing.models import BaseModel @@ -64,22 +84,3 @@ $ python >>> outputs = model.generate(texts=['Hi How are you?']) ``` Then print the outputs variable to see what the LLM generated based on the input prompt. - -## Editable Install -The editable install is needed when you: -1. install directly from the source -2. wish to make a contribution to the `xTuring` library. - -To do so, clone the library from _GitHub_ and install the necessary packages by running the following commands: -```bash -$ git clone https://github.com/stochasticai/xTuring.git -$ cd xTuring -$ pip install -e . -``` -Now you will be able to test the changes you do to the library as Python will now look at `~/xTuring/` directory in addition to the normal installation of the library. - -Next, in order to update your version, run the following command inside the `~/xTuring/` directory: -```bash -$ git pull -``` -This will fast-forward your main version to the latest developments to the library, you can freely play around and use those. From 98ee462ed8853be21ddfb24d2d0a7fbfc0222223 Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 23 Aug 2023 16:41:18 +0530 Subject: [PATCH 13/36] load and save models done --- docs/docs/advanced/anymodel.md | 133 ++++++++++++++- .../{inference => advanced}/api_server.md | 0 docs/docs/inference/_category_.json | 8 - .../overview/quickstart/load_save_models.md | 106 ++++++------ docs/docs/overview/quickstart/quickstart.md | 156 ++---------------- 5 files changed, 194 insertions(+), 209 deletions(-) rename docs/docs/{inference => advanced}/api_server.md (100%) delete mode 100644 docs/docs/inference/_category_.json diff --git a/docs/docs/advanced/anymodel.md b/docs/docs/advanced/anymodel.md index 4ad32bd..a157613 100644 --- a/docs/docs/advanced/anymodel.md +++ b/docs/docs/advanced/anymodel.md @@ -3,4 +3,135 @@ title: Work with Any Model description: Use self-instruction to generate a dataset sidebar_position: 2 --- -# GenericModel \ No newline at end of file + + + +The `GenericModel` class makes it possible to test and fine-tune the models which are not directly available via the `BaseModel` class. Apart from the base class, we can use classes mentioned below to load the models for memory-efficient computations: + +| Class Name | Description | +| ---------- | ----------- | +| `GenericModel` | Loads the normal version of the model | +| `GenericInt8Model` | Loads the model ready to fine-tune in __INT8__ precision | +| `GenericLoraModel` | Loads the model ready to fine-tune using __LoRA__ technique | +| `GenericLoraInt8Model` | Loads the model ready to fine-tune using __LoRA__ technique in __INT8__ precsion | +| `GenericLoraKbitModel` | Loads the model ready to fine-tune using __LoRA__ technique in __INT4__ precision | + +Let us circle back to the above example and see how we can replicate the results of the `BaseModel` class as shown [here](/overview/quickstart/load_save_models). + +Start by downloading the Alpaca dataset from [here](https://d33tr4pxdm6e2j.cloudfront.net/public_content/tutorials/datasets/alpaca_data.zip) and extract it to a folder. We will load this dataset using the `InstructionDataset` class. + +```python +from xturing.datasets import InstructionDataset + +dataset_path = './alpaca_data' + +dataset = InstructionDataset(dataset_path) +``` + + +To initialize the model, simply run the following 2 commands: +```python +from xturing.models import GenericModel + +model_path = 'aleksickx/llama-7b-hf' + +model = GenericLoraModel(model_name) +``` +The _'model_path'_ can be a locally saved model and/or any model available on the HuggingFace's [Model Hub](https://huggingface.co/models). + +To fine-tune the model on the loaded dataset, we will use the default configuration for the fine-tuning. + +```python +model.finetune(dataset=dataset) +``` + +Let's test our fine-tuned model, and make some inference. + +```python +output = model.generate(texts=["Why LLM models are becoming so important?"]) +``` +Print the `output` variable to see the results. + +Next, we need to save our fine-tuned model using the `.save()` method. We will send the path of the directory as parameter to the method to save the fine-tuned model. + +```python +finetuned_model_path = 'llama_lora_finetuned' + +model.save(finetuned_model_path) +``` + +We can also see our model(s) in action with a beautiful UI by launchung the playground locally. + +```python +from xturing.ui.playground import Playground + +Playground().launch() +``` + +## GenericModel classes +The `GenericModel` classes consists of: +1. `GenericModel` +2. `GenericInt8Model` +3. `GenericLoraModel` +4. `GenericLoraInt8Model` +5. `GenericLoraKbitModel` + +The below pieces of code will work for all of the above classes by replacing the `GenericModel` in below codes with any of the above classes. The pieces of codes presented below are very similar to that mentioned above with only slight difference. + +### 1. Load a pre-trained and/or fine-tuned model + +To load a pre-trained (or fine-tuned) model, run the following line of code. This will load the model with the default weights in the case of a pre-trained model, and the weights which were saved in the case of a fine-tuned one. +```python +from xturing.models import GenericModel + +model = GenericModel("") +''' +The can be path to a local model, for example, "./saved_model" or path from the HuggingFace library, for example, "facebook/opt-1.3b" + +For example, +model = GenericModel('./saved_model') +OR +model = GenericModel('facebook/opt-1.3b') +''' +``` + +### 2. Save a fine-tuned model + +After fine-tuning your model, you can save it as simple as: + +```python +model.save("/path/to/a/directory") +``` + +Remember that the path that you specify should be a directory. If the directory doesn't exist, it will be created. + +The model weights will be saved into 2 files. The whole model weights including based model parameters and LoRA parameters are stored in `pytorch_model.bin` file and only LoRA parameters are stored in `adapter_model.bin` file. + + +
+

Examples to load fine-tuned and pre-trained models

+ +1. To load a pre-trained model + +```python +## Make the necessary imports +from xturing.models import GenericModel + +## Loading the model +model = GenericModel("facebook/opt-1.3b") + +## Saving the model +model.save("/path/to/a/directory") +``` + +2. To load a fine-tuned model +```python +## Make the necessary imports +from xturing.models import GenericModel + +## Loading the model +model = GenericModel("./saved_model") + +``` + +
diff --git a/docs/docs/inference/api_server.md b/docs/docs/advanced/api_server.md similarity index 100% rename from docs/docs/inference/api_server.md rename to docs/docs/advanced/api_server.md diff --git a/docs/docs/inference/_category_.json b/docs/docs/inference/_category_.json deleted file mode 100644 index 23186df..0000000 --- a/docs/docs/inference/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "💬 Inference", - "position": 5, - "link": { - "type": "generated-index" - }, - "collapsed": false -} diff --git a/docs/docs/overview/quickstart/load_save_models.md b/docs/docs/overview/quickstart/load_save_models.md index 5f9fc2f..c858411 100644 --- a/docs/docs/overview/quickstart/load_save_models.md +++ b/docs/docs/overview/quickstart/load_save_models.md @@ -4,10 +4,10 @@ description: Load and save models sidebar_position: 1 --- -# Load and save models + -## BaseModel class -### 1. Load a pre-trained model + +### Load a pre-trained model To load a pre-trained model for the first time, run the following line of code. This will load the model with the default weights. @@ -18,12 +18,12 @@ model = BaseModel.create("") ''' For example, -model = BaseModel.create("distilgpt2_lora") +model = BaseModel.create("llama_lora") ''' ``` -You can find all the supported model keys [here](/supported_models) +You can find all the supported model keys [here](/supported_models). -### 2. Save a fine-tuned model +### Save a fine-tuned model After fine-tuning your model, you can save it as simple as: @@ -35,96 +35,86 @@ Remember that the path that you specify should be a directory. If the directory The model weights will be saved into 2 files. The whole model weights including based model parameters and LoRA parameters are stored in `pytorch_model.bin` file and only LoRA parameters are stored in `adapter_model.bin` file. -### 3. Load a fine-tuned model +### Load a model from local directory To load a saved model, you only have to run the `load` method specifying the directory where the weights were saved. ```python -finetuned_model = BaseModel.load("/path/to/a/directory") +model = BaseModel.load("/path/to/a/directory") ```
-

Sample code to load and save a model

+Sample code to load and save a model ```python -## make the necessary imports from xturing.models.base import BaseModel -## loading the model -model = BaseModel.create("distilgpt2_lora") +## Load the model +model = BaseModel.create("llama_lora") -# saving the model +# Save the model model.save("/path/to/a/directory") -## loading the fine-tuned model +## Load the fine-tuned model finetuned_model = BaseModel.load("/path/to/a/directory") ```
-## GenericModel classes -The `GenericModel` classes consists of: -1. `GenericModel` -2. `GenericInt8Model` -3. `GenericLoraModel` -4. `GenericLoraInt8Model` -5. `GenericLoraKbitModel` - -The below pieces of code will work for all of the above classes by replacing the `GenericModel` in below codes with any of the above classes. The pieces of codes presented below are very similar to that mentioned above with only slight difference. + diff --git a/docs/docs/overview/quickstart/quickstart.md b/docs/docs/overview/quickstart/quickstart.md index 73ba7c6..e92793b 100644 --- a/docs/docs/overview/quickstart/quickstart.md +++ b/docs/docs/overview/quickstart/quickstart.md @@ -11,160 +11,32 @@ description: Your first fine-tuning job with xTuring Whether you are someone who develops AI pipelines for a living or someone who just wants to leverage the power of AI, this quickstart will help you get started with `xTuring` and how to use `BaseModel` for inference, fine-tuning and saving the obtained weights. -Before diving into it, make sure you have the library installed on your machine: -```bash -pip install xturing -``` - - - -## Load Supported Model - -The `BaseModel` is the easiest way use an off-the-shelf supported model for inference and fine-tuning. -You can use `BaseModel` to load from a wide-range of supported models, the list of which is mentioned [here](/supported_models). - - - -In this guide, we will be using `BaseModel` to fine-tune __LLaMA 7B__ on the __Alpaca dataset__ using __LoRA__ technique. - -Start by downloading the Alpaca dataset from [here](https://d33tr4pxdm6e2j.cloudfront.net/public_content/tutorials/datasets/alpaca_data.zip) and extract it to a folder. We will load this dataset using the `InstructionDataset` class. +xTuring provides a solution to easily load and fine-tune some pre-trained models in less than 10 lines of code. Fine-tuning a pre-trained large language models (LLMs) comes with a lot of complexity and requires Machine Learning along with domain knowledge. Hence, it quite a non-intuitive task for beginners and business owners who lack practical knowledge in the field. This particular issue has been addressed by xTuring by providing a simple interface understandable with little to no knowledge of Python. It is as short and crisp as: ```python from xturing.datasets import InstructionDataset - -dataset_path = './alpaca_data' - -dataset = InstructionDataset(dataset_path) -``` - -Next, initialize the model. -We can also load the LLaMA model without _LoRA_ initiliazation or load one of the other models supported by xTuring. Look at the [supported models](/#basemodel) section for more details. - -```python from xturing.models import BaseModel -model_name = 'llama_lora' - -model = BaseModel.create(model_name) -``` - -To fine-tune the model on the loaded dataset, we will use the default configuration for the fine-tuning. - -```python -model.finetune(dataset=dataset) -``` - -Let's test our fine-tuned model, and make some inference. - -```python -output = model.generate(texts=["Why LLM models are becoming so important?"]) -``` -Print the `output` variable to see the results. - -Next, we need to save our fine-tuned model using the `.save()` method. We will send the path of the directory as parameter to the method to save the fine-tuned model. - -```python -finetuned_model_path = 'llama_lora_finetuned' - -model.save(finetuned_model_path) -``` - -We can also see our model(s) in action with a beautiful UI by launchung the playground locally. - -```python -from xturing.ui.playground import Playground - -Playground().launch() -``` - - -## Load Any Model -The `GenericModel` class makes it possible to test and fine-tune the models which are not directly available via the `BaseModel` class. Apart from the base class, we can use classes mentioned below to load the models for memory-efficient computations: - -| Class Name | Description | -| ---------- | ----------- | -| `GenericModel` | Loads the normal version of the model | -| `GenericInt8Model` | Loads the model ready to fine-tune in __INT8__ precision | -| `GenericLoraModel` | Loads the model ready to fine-tune using __LoRA__ technique | -| `GenericLoraInt8Model` | Loads the model ready to fine-tune using __LoRA__ technique in __INT8__ precsion | -| `GenericLoraKbitModel` | Loads the model ready to fine-tune using __LoRA__ technique in __INT4__ precision | -Let us circle back to the above example and see how we can replicate the results of the `BaseModel` class. +# Load a model of your choice +model = BaseModel.create('llama_lora') -Start by downloading the Alpaca dataset from [here](https://d33tr4pxdm6e2j.cloudfront.net/public_content/tutorials/datasets/alpaca_data.zip) and extract it to a folder. We will load this dataset using the `InstructionDataset` class. +# Prepare the training data +dataset = InstructionDataset('...') -```python -from xturing.datasets import InstructionDataset - -dataset_path = './alpaca_data' - -dataset = InstructionDataset(dataset_path) -``` - - -To initialize the model, simply run the following 2 commands: -```python -from xturing.models import GenericModel - -model_path = 'aleksickx/llama-7b-hf' - -model = GenericLoraModel(model_name) -``` -The _'model_path'_ can be a locally saved model and/or any model available on the HuggingFace's [Model Hub](https://huggingface.co/models). - -To fine-tune the model on the loaded dataset, we will use the default configuration for the fine-tuning. - -```python +# Fine-tune the model model.finetune(dataset=dataset) -``` - -Let's test our fine-tuned model, and make some inference. -```python +# Test the fine-tuned model output = model.generate(texts=["Why LLM models are becoming so important?"]) -``` -Print the `output` variable to see the results. - -Next, we need to save our fine-tuned model using the `.save()` method. We will send the path of the directory as parameter to the method to save the fine-tuned model. - -```python -finetuned_model_path = 'llama_lora_finetuned' -model.save(finetuned_model_path) +# Save the fine-tuned model +model.save("/path/to/a/directory") ``` -We can also see our model(s) in action with a beautiful UI by launchung the playground locally. - -```python -from xturing.ui.playground import Playground +Please checkout the following steps to fully understand the above code: -Playground().launch() -``` +- [Load and Save Models](/overview/quickstart/load_save_models) +- [Load and Prepare Data](/overview/quickstart/prepare) +- [Fine-Tune Models](/overview/quickstart/finetune_guide) +- [Inference](/overview/quickstart/inference) From 874815568066342e2e0f6527fff8d798171866eb Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 23 Aug 2023 16:53:03 +0530 Subject: [PATCH 14/36] dataset preparation done --- docs/docs/advanced/generate.md | 61 +++++++++++++ docs/docs/overview/quickstart/prepare.md | 110 +++++++++++++++-------- docs/docs/personalization/usage.md | 96 -------------------- 3 files changed, 136 insertions(+), 131 deletions(-) diff --git a/docs/docs/advanced/generate.md b/docs/docs/advanced/generate.md index 462f6a4..490102d 100644 --- a/docs/docs/advanced/generate.md +++ b/docs/docs/advanced/generate.md @@ -192,3 +192,64 @@ The size of the chunk of text (in chars) that will be used to generate the instr ### num_samples_per_chunk The number of samples that will be generated for each chunk. The default value is 5. ::: + + +--- + +For this tutorial you will need to prepare a dataset which contains 3 columns (instruction, text, target) for instruction fine-tuning or 2 columns (text, target) for text fine-tuning. Here, we show you how to convert Alpaca dataset to be used for instruction fine-tuning. + +1. Download Alpaca dataset from this [link](https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json) + +2. Convert it to instruction dataset format: + +```python +import json +from datasets import Dataset, DatasetDict + +alpaca_data = json.load(open('/path/to/alpaca_dataset')) +instructions = [] +inputs = [] +outputs = [] + +for data in alpaca_data: + instructions.append(data["instruction"]) + inputs.append(data["input"]) + outputs.append(data["output"]) + +data_dict = { + "train": {"instruction": instructions, "text": inputs, "target": outputs} +} + +dataset = DatasetDict() +for k, v in data_dict.items(): + dataset[k] = Dataset.from_dict(v) + +dataset.save_to_disk(str("./alpaca_data")) +``` + + + + +3. Load the prepared Dataset + +After preparing the dataset in correct format, you can use this dataset for the instruction fine-tuning. + +To load the instruction dataset + +```python +from xturing.datasets.instruction_dataset import InstructionDataset + +instruction_dataset = InstructionDataset('/path/to/instruction_converted_alpaca_dataset') +``` + + + +## Prepare Text dataset + +For this, you just need to download a sample dataset to your woring directory, or generate a custom dataset. For example, you can download the Alpaca Dataset from this [link](https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json). diff --git a/docs/docs/overview/quickstart/prepare.md b/docs/docs/overview/quickstart/prepare.md index cc7fa72..8e79b1d 100644 --- a/docs/docs/overview/quickstart/prepare.md +++ b/docs/docs/overview/quickstart/prepare.md @@ -1,65 +1,105 @@ --- -title: Prepare Dataset +title: 💽 Prepare and Save Dataset description: Use self-instruction to generate a dataset sidebar_position: 2 --- -## Prepare Instruction dataset + -For this tutorial you will need to prepare a dataset which contains 3 columns (instruction, text, target) for instruction fine-tuning or 2 columns (text, target) for text fine-tuning. Here, we show you how to convert Alpaca dataset to be used for instruction fine-tuning. -1. Download Alpaca dataset from this [link](https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json) +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + +We provide several type of datasets to use with your data. Depending on how you want to train and use your model, you can choose: +- [**InstructionDataset**](#instructiondataset) - You want the model to generate text based on an instruction/task. +- [**TextDataset**](#textdataset) - You want the model to complete your text. + +## InstructionDataset + +Here is how you can create this type of dataset: + + + + +From a python dictionary with the following keys: + +- **instruction** : List of strings representing the instructions/tasks. +- **text** : List of strings representing the input text. +- **target** : List of strings representing the target text. -2. Convert it to instruction dataset format: ```python -import json -from datasets import Dataset, DatasetDict +from xturing.datasets.instruction_dataset import InstructionDataset + +dataset = InstructionDataset({ + "text": ["first text", "second text"], + "target": ["first text", "second text"], + "instruction": ["first instruction", "second instruction"] +}) +``` -alpaca_data = json.load(open('/path/to/alpaca_dataset')) -instructions = [] -inputs = [] -outputs = [] + + -for data in alpaca_data: - instructions.append(data["instruction"]) - inputs.append(data["input"]) - outputs.append(data["output"]) +From a saved location: -data_dict = { - "train": {"instruction": instructions, "text": inputs, "target": outputs} -} -dataset = DatasetDict() -for k, v in data_dict.items(): - dataset[k] = Dataset.from_dict(v) +```python +from xturing.datasets.instruction_dataset import InstructionDataset -dataset.save_to_disk(str("./alpaca_data")) +dataset = InstructionDataset('path/to/saved/location') ``` + + + +## TextDataset - + + -3. Load the prepared Dataset +From a python dictionary with the following keys: -After preparing the dataset in correct format, you can use this dataset for the instruction fine-tuning. +- **text** : List of strings representing the input text. +- **target** : List of strings representing the target text. -To load the instruction dataset ```python -from xturing.datasets.instruction_dataset import InstructionDataset +from xturing.datasets.text_dataset import TextDataset + +dataset = TextDataset({ + "text": ["first text", "second text"], + "target": ["first text", "second text"] +}) +``` + + + + +From a saved location: + -instruction_dataset = InstructionDataset('/path/to/instruction_converted_alpaca_dataset') +```python +from xturing.datasets.text_dataset import TextDataset + +dataset = TextDataset('path/to/saved/location') ``` - +You can save a dataset to a folder using the `save` method: -## Prepare Text dataset +```python +from xturing.datasets import ... +dataset = ... + +dataset.save('path/to/a/directory') +``` -For this, you just need to download a sample dataset to your woring directory, or generate a custom dataset. For example, you can download the Alpaca Dataset from this [link](https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json) diff --git a/docs/docs/personalization/usage.md b/docs/docs/personalization/usage.md index 5f34501..442f291 100644 --- a/docs/docs/personalization/usage.md +++ b/docs/docs/personalization/usage.md @@ -3,99 +3,3 @@ title: Using datasets description: Learn how to use our datasets sidebar_position: 1 --- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -# Using datasets - -We provide several type of datasets to use with your data. Depending on how you want to train and use your model, you can choose: -- [**InstructionDataset**](#instructiondataset) - You want the model to generate text based on an instruction/task. -- [**TextDataset**](#textdataset) - You want the model to complete your text. - -## InstructionDataset - -Here is how you can create this type of dataset: - - - - -From a python dictionary with the following keys: - -- **instruction** : List of strings representing the instructions/tasks. -- **text** : List of strings representing the input text. -- **target** : List of strings representing the target text. - - -```python -from xturing.datasets.instruction_dataset import InstructionDataset - -dataset = InstructionDataset({ - "text": ["first text", "second text"], - "target": ["first text", "second text"], - "instruction": ["first instruction", "second instruction"] -}) -``` - - - - -From a saved location: - - -```python -from xturing.datasets.instruction_dataset import InstructionDataset - -dataset = InstructionDataset('path/to/saved/location') -``` - - - - -## TextDataset - -Here is how you can create this type of dataset: - - - - -From a python dictionary with the following keys: - -- **text** : List of strings representing the input text. -- **target** : List of strings representing the target text. - - -```python -from xturing.datasets.text_dataset import TextDataset - -dataset = TextDataset({ - "text": ["first text", "second text"], - "target": ["first text", "second text"] -}) -``` - - - - -From a saved location: - - -```python -from xturing.datasets.text_dataset import TextDataset - -dataset = TextDataset('path/to/saved/location') -``` - - - - -## Save a dataset - -You can save a dataset to a folder using the `save` method: - -```python -from xturing.datasets... -dataset = ... - -dataset.save('path/to/saved/location') -``` From 2c41280c847143d41db5c57d301de1bbb1942d63 Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 23 Aug 2023 17:00:43 +0530 Subject: [PATCH 15/36] fine-tune done --- .../overview/quickstart/finetune_guide.md | 94 +++++++++---------- docs/docs/overview/quickstart/test.jsx | 9 +- 2 files changed, 50 insertions(+), 53 deletions(-) diff --git a/docs/docs/overview/quickstart/finetune_guide.md b/docs/docs/overview/quickstart/finetune_guide.md index 0b14bd3..9e6c5be 100644 --- a/docs/docs/overview/quickstart/finetune_guide.md +++ b/docs/docs/overview/quickstart/finetune_guide.md @@ -1,12 +1,36 @@ --- -title: Fine-tune +title: 🔧 Fine-tune Pre-trained Models description: Fine-tuning with xTuring sidebar_position: 3 --- import Test from './test'; -# Fine-tuning guide + + +## Text fine-tuning +After preparing the dataset in correct format, you can start the text fine-tuning. + +First, load the text dataset and initialize the model of your choice + + + + +Next, we need to start the fine-tuning + +```python +model.finetune(dataset=dataset) +``` + +Finally, let us test how our fine-tuned model performs using the `.generate()` function. + +```python +output = model.generate(texts=["Why LLM models are becoming so important?"]) + +# Print the model outputs +print("Generated output by the model: {}".format(output)) +``` + ## Instruction fine-tuning @@ -20,6 +44,23 @@ Start by loading the instruction dataset and initializing the model of your choi A list of all the supported models can be found [here](/supported_models). + + +Next, we need to start the fine-tuning + +```python +model.finetune(dataset=instruction_dataset) +``` + +Finally, let us test how our fine-tuned model performs using the `.generate()` function. + +```python +output = model.generate(texts=["Why LLM models are becoming so important?"]) + +# Print the model outputs +print("Generated output by the model: {}".format(output)) +``` + - - -Next, we need to start the fine-tuning - -```python -model.finetune(dataset=instruction_dataset) -``` - -Finally, let us test how our fine-tuned model performs using the `.generate()` function. - -```python -output = model.generate(texts=["Why LLM models are becoming so important?"]) -print("Generated output by the model: {}".format(output)) -``` - -## Text fine-tuning -After preparing the dataset in correct format, you can start the text fine-tuning. - -First, load the text dataset and initialize the model of your choice - - - - - - - -Next, we need to start the fine-tuning - -```python -model.finetune(dataset=instruction_dataset) -``` - -Finally, let us test how our fine-tuned model performs using the `.generate()` function. - -```python -output = model.generate(texts=["Why LLM models are becoming so important?"]) -print("Generated output by the model: {}".format(output)) -``` +| OPT LoRA INT8 | opt_lora_int8 | OPT 1.3B INT8 model with LoRA technique to speed up fine-tuning | --> \ No newline at end of file diff --git a/docs/docs/overview/quickstart/test.jsx b/docs/docs/overview/quickstart/test.jsx index a9f9851..5a797a6 100644 --- a/docs/docs/overview/quickstart/test.jsx +++ b/docs/docs/overview/quickstart/test.jsx @@ -40,7 +40,7 @@ export default function Test( useEffect(() => { setCode({ - model: 'bloom', + model: 'llama', technique: 'base' }); }, []); @@ -60,7 +60,7 @@ export default function Test( } > {Object.keys(modelList).map((key) => ( - + ))} @@ -88,7 +88,10 @@ export default function Test( children={`from xturing.datasets import ${instruction}Dataset from xturing.models import BaseModel -dataset = ${instruction}Dataset('/path/to/dataset') +# Load the dataset +dataset = ${instruction}Dataset('...') + +# Load the model model = BaseModel.create('${finalKey}')`} /> From c3988319ce03ef38d4376e81c400fba77bc4efe1 Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 23 Aug 2023 17:08:05 +0530 Subject: [PATCH 16/36] overview section done --- docs/docs/advanced/anymodel.md | 43 +++++++++++++++ docs/docs/overview/installation.md | 2 +- docs/docs/overview/quickstart/_category_.json | 2 +- .../overview/quickstart/finetune_guide.md | 8 +-- docs/docs/overview/quickstart/inference.md | 54 +++---------------- docs/docs/overview/quickstart/quickstart.md | 2 +- 6 files changed, 58 insertions(+), 53 deletions(-) diff --git a/docs/docs/advanced/anymodel.md b/docs/docs/advanced/anymodel.md index a157613..764143e 100644 --- a/docs/docs/advanced/anymodel.md +++ b/docs/docs/advanced/anymodel.md @@ -135,3 +135,46 @@ model = GenericModel("./saved_model") ``` + +## Inference via `GenericModel` + +Once you have fine-tuned your model, you can run the inferences as simple as follows. + +### Using a local model + +Start with loading your model from a checkpoint after fine-tuning it. + +```python +# Make the ncessary imports +from xturing.modelsimport GenericModel +# Load the desired model +model = GenericModel("/path/to/local/model") +``` + +Next, we can run do the inference on our model using the `.generate()` method. + +```python +# Make inference +output = model.generate(texts=["Why are the LLMs so important?"]) +# Print the generated outputs +print("Generated output: {}".format(output)) +``` +### Using a pretrained model + +Start with loading your model with the default weights. + +```python +# Make the ncessary imports +from xturing.models import GenericModel +# Load the desired model +model = GenericModel("llama_lora") +``` + +Next, we can run do the inference on our model using the `.generate()` method. + +```python +# Make inference +output = model.generate(texts=["Why are the LLMs so important?"]) +# Print the generated outputs +print("Generated output: {}".format(output)) +``` diff --git a/docs/docs/overview/installation.md b/docs/docs/overview/installation.md index ce35cba..c0dacf7 100644 --- a/docs/docs/overview/installation.md +++ b/docs/docs/overview/installation.md @@ -1,6 +1,6 @@ --- sidebar_position: 2 -title: Installation +title: ⬇️ Installation description: Your first time installing xTuring --- diff --git a/docs/docs/overview/quickstart/_category_.json b/docs/docs/overview/quickstart/_category_.json index a5b2e51..4d21eb9 100644 --- a/docs/docs/overview/quickstart/_category_.json +++ b/docs/docs/overview/quickstart/_category_.json @@ -1,5 +1,5 @@ { - "label": "QuickStart", + "label": "🚀 QuickStart", "position": 3, "collapsed": false, "link": { diff --git a/docs/docs/overview/quickstart/finetune_guide.md b/docs/docs/overview/quickstart/finetune_guide.md index 9e6c5be..b668e74 100644 --- a/docs/docs/overview/quickstart/finetune_guide.md +++ b/docs/docs/overview/quickstart/finetune_guide.md @@ -22,14 +22,14 @@ Next, we need to start the fine-tuning model.finetune(dataset=dataset) ``` -Finally, let us test how our fine-tuned model performs using the `.generate()` function. + ## Instruction fine-tuning @@ -52,14 +52,14 @@ Next, we need to start the fine-tuning model.finetune(dataset=instruction_dataset) ``` -Finally, let us test how our fine-tuned model performs using the `.generate()` function. + -## Inference via `BaseModel` + Once you have fine-tuned your model, you can run the inferences as simple as follows. @@ -17,8 +17,9 @@ Start with loading your model from a checkpoint after fine-tuning it. ```python # Make the ncessary imports from xturing.models.base import BaseModel + # Load the desired model -model = BaseModel.load("/path/to/local/model") +model = BaseModel.load("/path/to/fine-tuned/model") ``` Next, we can run do the inference on our model using the `.generate()` method. @@ -26,9 +27,11 @@ Next, we can run do the inference on our model using the `.generate()` method. ```python # Make inference output = model.generate(texts=["Why are the LLMs so important?"]) + # Print the generated outputs print("Generated output: {}".format(output)) ``` + ### Using a pretrained model Start with loading your model with the default weights @@ -36,32 +39,9 @@ Start with loading your model with the default weights ```python # Make the ncessary imports from xturing.models.base import BaseModel -# Load the desired model -model = BaseModel.create("llama_lora") -``` - -Next, we can run do the inference on our model using the `.generate()` method. - -```python -# Make inference -output = model.generate(texts=["Why are the LLMs so important?"]) -# Print the generated outputs -print("Generated output: {}".format(output)) -``` - -## Inference via `GenericModel` - -Once you have fine-tuned your model, you can run the inferences as simple as follows. - -### Using a local model -Start with loading your model from a checkpoint after fine-tuning it. - -```python -# Make the ncessary imports -from xturing.modelsimport GenericModel # Load the desired model -model = GenericModel("/path/to/local/model") +model = BaseModel.create("llama_lora") ``` Next, we can run do the inference on our model using the `.generate()` method. @@ -69,25 +49,7 @@ Next, we can run do the inference on our model using the `.generate()` method. ```python # Make inference output = model.generate(texts=["Why are the LLMs so important?"]) -# Print the generated outputs -print("Generated output: {}".format(output)) -``` -### Using a pretrained model - -Start with loading your model with the default weights. -```python -# Make the ncessary imports -from xturing.models import GenericModel -# Load the desired model -model = GenericModel("llama_lora") -``` - -Next, we can run do the inference on our model using the `.generate()` method. - -```python -# Make inference -output = model.generate(texts=["Why are the LLMs so important?"]) # Print the generated outputs print("Generated output: {}".format(output)) ``` diff --git a/docs/docs/overview/quickstart/quickstart.md b/docs/docs/overview/quickstart/quickstart.md index e92793b..3ecfc8c 100644 --- a/docs/docs/overview/quickstart/quickstart.md +++ b/docs/docs/overview/quickstart/quickstart.md @@ -1,6 +1,6 @@ --- sidebar_position: 2 -title: 🚀 Quick Tour +title: 🚀 QuickStart description: Your first fine-tuning job with xTuring --- From 4f5f29e7cd8ab1b9ceb6ad1813f78cbaf43ccd8d Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 23 Aug 2023 20:04:55 +0530 Subject: [PATCH 17/36] link paths rectified --- docs/docs/advanced/generate.md | 2 +- docs/docs/overview/intro.md | 2 +- docs/docs/overview/quickstart/finetune_guide.md | 4 ++-- docs/docs/overview/quickstart/load_save_models.md | 2 +- docs/docs/personalization/inference_configure.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/docs/advanced/generate.md b/docs/docs/advanced/generate.md index 490102d..be0c1d9 100644 --- a/docs/docs/advanced/generate.md +++ b/docs/docs/advanced/generate.md @@ -158,7 +158,7 @@ You just need to provide the directory path where your files are located. Files :::caution - The file name is used as a context for the instruction generation. So, it is recommended to use meaningful names. - Currently only **ChatGPT** engine is supported. -- Don't forget to [**save**](/datasets/usage#save-a-dataset) the generated dataset. +- Don't forget to [**save**](/overview/quickstart/prepare#save-a-dataset) the generated dataset. ::: ### Example diff --git a/docs/docs/overview/intro.md b/docs/docs/overview/intro.md index 2acba92..7826c48 100644 --- a/docs/docs/overview/intro.md +++ b/docs/docs/overview/intro.md @@ -25,7 +25,7 @@ xTuring prioritizes: pip install xturing ``` -You can quickly get started with xTuring by following the [Quickstart](/quickstart) guide or use one of the examples below. +You can quickly get started with xTuring by following the [Quickstart](/overview/quickstart) guide or use one of the examples below. ### UI Playground diff --git a/docs/docs/overview/quickstart/finetune_guide.md b/docs/docs/overview/quickstart/finetune_guide.md index b668e74..ab569ab 100644 --- a/docs/docs/overview/quickstart/finetune_guide.md +++ b/docs/docs/overview/quickstart/finetune_guide.md @@ -34,7 +34,7 @@ print("Generated output by the model: {}".format(output)) ## Instruction fine-tuning -First, make sure that you have prepared your fine-tuning dataset for instruction fine-tuning. To know how, refer [here](/datasets/prepare#prepare-instruction-dataset). +First, make sure that you have prepared your fine-tuning dataset for instruction fine-tuning. To know how, refer [here](/overview/quickstart/prepare#instructiondataset). After preparing the dataset in correct format, you can start the instruction fine-tuning. @@ -42,7 +42,7 @@ Start by loading the instruction dataset and initializing the model of your choi -A list of all the supported models can be found [here](/supported_models). +A list of all the supported models can be found [here](/overview/supported_models). diff --git a/docs/docs/overview/quickstart/load_save_models.md b/docs/docs/overview/quickstart/load_save_models.md index c858411..fe66118 100644 --- a/docs/docs/overview/quickstart/load_save_models.md +++ b/docs/docs/overview/quickstart/load_save_models.md @@ -21,7 +21,7 @@ For example, model = BaseModel.create("llama_lora") ''' ``` -You can find all the supported model keys [here](/supported_models). +You can find all the supported model keys [here](/overview/supported_models). ### Save a fine-tuned model diff --git a/docs/docs/personalization/inference_configure.md b/docs/docs/personalization/inference_configure.md index 7c8f134..bf92557 100644 --- a/docs/docs/personalization/inference_configure.md +++ b/docs/docs/personalization/inference_configure.md @@ -12,7 +12,7 @@ For advanced usage, you can customize the `.generation_config` attribute of the ## `BaseModel` usage -In this tutorial, we will be loading __OPT 1.3B__ model and customizing it's generation configuration before ineferencing. To use any other model, head to [supported models](/supported_models) page for model keys to supported models of `xTuring`. +In this tutorial, we will be loading __OPT 1.3B__ model and customizing it's generation configuration before ineferencing. To use any other model, head to [supported models](/overview/supported_models) page for model keys to supported models of `xTuring`. ### 1. Load the model From 7c18bc3d10078f745833d780ce097e8dd6156f3e Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 23 Aug 2023 20:29:53 +0530 Subject: [PATCH 18/36] config file link --- docs/docusaurus.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 8b33e2e..77e2eb2 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -81,7 +81,7 @@ const config = { items: [ { label: 'Quickstart', - to: '/quickstart', + to: '/overview/quickstart', }, ], }, From 960baeea8ffcce93ce466ddb89dac1be38769de8 Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 23 Aug 2023 20:33:58 +0530 Subject: [PATCH 19/36] onbroken links config --- docs/docusaurus.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 77e2eb2..3892865 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -21,8 +21,8 @@ const config = { organizationName: 'stochasticai', // Usually your GitHub org/user name. projectName: 'turing-docs', // Usually your repo name. - onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', + onBrokenLinks: 'ignore', + onBrokenMarkdownLinks: 'ignore', // Even if you don't use internalization, you can use this field to set useful // metadata like html lang. For example, if your site is Chinese, you may want From 2ee8778a0df45e281714b1f5c081d6eb105846c4 Mon Sep 17 00:00:00 2001 From: Tushar Date: Thu, 24 Aug 2023 16:28:50 +0530 Subject: [PATCH 20/36] fine-tuning configuration + collapsing --- docs/docs/advanced/_category_.json | 2 +- docs/docs/contributing/_category_.json | 2 +- docs/docs/overview/_category_.json | 2 +- docs/docs/overview/supported_models.md | 6 +-- docs/docs/personalization/_category_.json | 4 +- .../personalization/finetune_configure.md | 46 ++++++++++++++++--- docs/docs/personalization/personalization.md | 2 +- .../{usage.md => usage_datsets.md} | 0 docs/docs/playground/_category_.json | 2 +- 9 files changed, 49 insertions(+), 17 deletions(-) rename docs/docs/personalization/{usage.md => usage_datsets.md} (100%) diff --git a/docs/docs/advanced/_category_.json b/docs/docs/advanced/_category_.json index 27ed907..052b5aa 100644 --- a/docs/docs/advanced/_category_.json +++ b/docs/docs/advanced/_category_.json @@ -1,7 +1,7 @@ { "label": "Advanced Topics", "position": 3, - "collapsed": false, + "collapsed": true, "link": { "type": "doc", "id": "advanced" diff --git a/docs/docs/contributing/_category_.json b/docs/docs/contributing/_category_.json index 3f7d073..08114ec 100644 --- a/docs/docs/contributing/_category_.json +++ b/docs/docs/contributing/_category_.json @@ -4,5 +4,5 @@ "link": { "type": "generated-index" }, - "collapsed": false + "collapsed": true } diff --git a/docs/docs/overview/_category_.json b/docs/docs/overview/_category_.json index 989d7dc..601fef9 100644 --- a/docs/docs/overview/_category_.json +++ b/docs/docs/overview/_category_.json @@ -1,7 +1,7 @@ { "label": "Overview", "position": 1, - "collapsed": false, + "collapsed": true, "link": { "type": "doc", "id": "overview" diff --git a/docs/docs/overview/supported_models.md b/docs/docs/overview/supported_models.md index 663c940..73780a4 100644 --- a/docs/docs/overview/supported_models.md +++ b/docs/docs/overview/supported_models.md @@ -1,11 +1,11 @@ --- sidebar_position: 4 -title: Supported Models +title: 🦾 Supported Models description: Models Supported by xTuring --- -# Models supported by xTuring - + +## Base versions | Model | Model Key | LoRA | INT8 | LoRA + INT8 | LoRA + INT4 | | ------ | --- | ---| --- | --- | --- | | BLOOM 1.1B| bloom | ✅ | ✅ | ✅ | ✅ | diff --git a/docs/docs/personalization/_category_.json b/docs/docs/personalization/_category_.json index 615aecb..5ecc6b8 100644 --- a/docs/docs/personalization/_category_.json +++ b/docs/docs/personalization/_category_.json @@ -1,7 +1,7 @@ { - "label": "Personalization", + "label": "⚙️ Personalization", "position": 2, - "collapsed": false, + "collapsed": true, "link": { "type": "doc", "id": "personalization" diff --git a/docs/docs/personalization/finetune_configure.md b/docs/docs/personalization/finetune_configure.md index cb98b52..6eb1a14 100644 --- a/docs/docs/personalization/finetune_configure.md +++ b/docs/docs/personalization/finetune_configure.md @@ -1,14 +1,14 @@ --- -title: Fine-tune +title: 🏋🏻‍♂️ Fine-tuning Configuration description: Fine-tuning parameters sidebar_position: 2 --- -# Fine-tuning configuration + xTuring is easy to use. The library already loads the best parameters for each model by default. -For advanced usage, you can customize the `finetune` method. +For advanced usage, you can customize the `finetuning_config` parameter. ### 1. Instantiate your model and dataset @@ -26,8 +26,6 @@ Print the `finetuning_config` object to check the default configuration. ```python finetuning_config = model.finetuning_config() - -print(finetuning_config) ``` ### 3. Set the config @@ -42,7 +40,7 @@ finetuning_config.output_dir = "training_dir/" ``` #### Parameters -- `learning_rate`: the initial learning rate for the optimizer. + + +| Name | Type | Range | Default | Desription | +| --- | --- | ----- | ------- | ---------- | +| learning_rate | float | >0 | 1e-5 | The initial learning rate for the optimizer. | +| gradient_accumulation_steps | int | ≥1 | 1 | The number of updates steps to accumulate the gradients for, before performing a backward/update pass. | +| batch_size | int | ≥1 | 1 | The batch size per device (GPU/TPU core/CPU…) used for training. | +| weight_decay | float | ≥0 | 0.00 | The weight decay to apply to all layers except all bias and LayerNorm weights in the optimizer. | +| warmup_steps | int | [0,learning_rate] | 50 | The number of steps used for a linear warmup from 0 to learning_rate. | +| max_length | int | ≥1 | 512 | The maximum length when tokenizing the inputs. | +| num_train_epochs | int | ≥1 | 1 | The total number of training epochs to perform. | +| eval_steps | int | ≥1 | 5000 | The number of update steps between two evaluations. | +| save_steps | int | ≥1 | 5000 | The number of update steps before two checkpoint saves. | +| logging_steps | int | ≥1 | 10 | The number of update steps between two logs. | +| max_grad_norm | float | ≥0 | 2.0 | The maximum gradient norm (for gradient clipping). | +| save_total_limit | int | ≥1 | 4 | If a value is passed, will limit the total amount of checkpoints. Deletes the older checkpoints in output_dir. | +| optimizer_name | string | N/A | adamw | The optimizer to be used. | +| output_dir | string | N/A | saved_model | The output directory where the model predictions and checkpoints will be written. | + + + + ### 4. Start the finetuning diff --git a/docs/docs/personalization/personalization.md b/docs/docs/personalization/personalization.md index b20546f..e4cd052 100644 --- a/docs/docs/personalization/personalization.md +++ b/docs/docs/personalization/personalization.md @@ -1 +1 @@ -# Personalization \ No newline at end of file +# ⚙️ Personalization diff --git a/docs/docs/personalization/usage.md b/docs/docs/personalization/usage_datsets.md similarity index 100% rename from docs/docs/personalization/usage.md rename to docs/docs/personalization/usage_datsets.md diff --git a/docs/docs/playground/_category_.json b/docs/docs/playground/_category_.json index 37bc00d..20b8929 100644 --- a/docs/docs/playground/_category_.json +++ b/docs/docs/playground/_category_.json @@ -4,5 +4,5 @@ "link": { "type": "generated-index" }, - "collapsed": false + "collapsed": true } From 8d8b57272959a23a31ef4a5557572c6d59732a71 Mon Sep 17 00:00:00 2001 From: Tushar Date: Thu, 24 Aug 2023 16:40:20 +0530 Subject: [PATCH 21/36] model selection in finetune config --- docs/docs/personalization/fine_tune_code.jsx | 94 +++++++++++++++++++ .../personalization/finetune_configure.md | 11 +-- 2 files changed, 98 insertions(+), 7 deletions(-) create mode 100644 docs/docs/personalization/fine_tune_code.jsx diff --git a/docs/docs/personalization/fine_tune_code.jsx b/docs/docs/personalization/fine_tune_code.jsx new file mode 100644 index 0000000..4d04254 --- /dev/null +++ b/docs/docs/personalization/fine_tune_code.jsx @@ -0,0 +1,94 @@ +import React, { useEffect, useState } from 'react' +import clsx from 'clsx' +import MDXContent from '@theme/MDXContent' +import CodeBlock from '@theme/CodeBlock' + +const trainingTechniques = { + base: 'Base', + lora: 'LoRa', + lora_int8: 'LoRA INT8', + int8: 'INT8', +} + +const modelList = { + bloom: 'BLOOM', + cerebras: 'Cerebras', + distilgpt2: 'DistilGPT-2', + galactica: 'Galactica', + gptj: 'GPT-J', + gpt2: 'GPT-2', + llama: 'LLaMA', + llama2: 'LLaMA 2', + opt: 'OPT', +} + +export default function FinetuneCode( +) { + const [code, setCode] = useState({ + model: '', + technique: 'base', + }) + + let finalKey = '' + if (code.technique === 'base') { + finalKey = `${code.model}` + } else { + finalKey = `${code.model}_${code.technique}` + } + + useEffect(() => { + setCode({ + model: 'llama', + technique: 'lora' + }); + }, []); + + return ( +
+ + + + + + + +
+ ) +} \ No newline at end of file diff --git a/docs/docs/personalization/finetune_configure.md b/docs/docs/personalization/finetune_configure.md index 6eb1a14..e25a20b 100644 --- a/docs/docs/personalization/finetune_configure.md +++ b/docs/docs/personalization/finetune_configure.md @@ -4,6 +4,8 @@ description: Fine-tuning parameters sidebar_position: 2 --- +import FinetuneCode from './fine_tune_code'; + xTuring is easy to use. The library already loads the best parameters for each model by default. @@ -12,13 +14,8 @@ For advanced usage, you can customize the `finetuning_config` parameter. ### 1. Instantiate your model and dataset -```python -from xturing.models.base import BaseModel -from xturing.datasets.instruction_dataset import InstructionDataset + -instruction_dataset = InstructionDataset("alpaca_data") -model = BaseModel.create("llama_lora") -``` ### 2. Load the config object @@ -61,7 +58,7 @@ finetuning_config.output_dir = "training_dir/" | gradient_accumulation_steps | int | ≥1 | 1 | The number of updates steps to accumulate the gradients for, before performing a backward/update pass. | | batch_size | int | ≥1 | 1 | The batch size per device (GPU/TPU core/CPU…) used for training. | | weight_decay | float | ≥0 | 0.00 | The weight decay to apply to all layers except all bias and LayerNorm weights in the optimizer. | -| warmup_steps | int | [0,learning_rate] | 50 | The number of steps used for a linear warmup from 0 to learning_rate. | +| warmup_steps | int | ≥0 | 50 | The number of steps used for a linear warmup from 0 to learning_rate. | | max_length | int | ≥1 | 512 | The maximum length when tokenizing the inputs. | | num_train_epochs | int | ≥1 | 1 | The total number of training epochs to perform. | | eval_steps | int | ≥1 | 5000 | The number of update steps between two evaluations. | From 34d1fd227f0ed92c0bdfcd978fc6558e6e4f374f Mon Sep 17 00:00:00 2001 From: Tushar Date: Thu, 24 Aug 2023 17:16:20 +0530 Subject: [PATCH 22/36] personalization section complete --- docs/docs/overview/_category_.json | 2 +- docs/docs/overview/overview.md | 1 + docs/docs/overview/quickstart/test.jsx | 4 +- docs/docs/personalization/fine_tune_code.jsx | 4 +- .../personalization/finetune_configure.md | 30 ++++--- docs/docs/personalization/inference_code.jsx | 90 +++++++++++++++++++ .../personalization/inference_configure.md | 58 +++++++----- docs/docs/personalization/usage_datsets.md | 5 -- 8 files changed, 153 insertions(+), 41 deletions(-) create mode 100644 docs/docs/personalization/inference_code.jsx delete mode 100644 docs/docs/personalization/usage_datsets.md diff --git a/docs/docs/overview/_category_.json b/docs/docs/overview/_category_.json index 601fef9..432f091 100644 --- a/docs/docs/overview/_category_.json +++ b/docs/docs/overview/_category_.json @@ -1,5 +1,5 @@ { - "label": "Overview", + "label": "🌄 Overview", "position": 1, "collapsed": true, "link": { diff --git a/docs/docs/overview/overview.md b/docs/docs/overview/overview.md index e69de29..f677a4a 100644 --- a/docs/docs/overview/overview.md +++ b/docs/docs/overview/overview.md @@ -0,0 +1 @@ +# 🌄 Overview \ No newline at end of file diff --git a/docs/docs/overview/quickstart/test.jsx b/docs/docs/overview/quickstart/test.jsx index 5a797a6..c738db8 100644 --- a/docs/docs/overview/quickstart/test.jsx +++ b/docs/docs/overview/quickstart/test.jsx @@ -5,7 +5,7 @@ import CodeBlock from '@theme/CodeBlock' const trainingTechniques = { base: 'Base', - lora: 'LoRa', + lora: 'LoRA', lora_int8: 'LoRA INT8', int8: 'INT8', } @@ -77,7 +77,7 @@ export default function Test( } > {Object.keys(trainingTechniques).map((key) => ( - + ))} diff --git a/docs/docs/personalization/fine_tune_code.jsx b/docs/docs/personalization/fine_tune_code.jsx index 4d04254..c082146 100644 --- a/docs/docs/personalization/fine_tune_code.jsx +++ b/docs/docs/personalization/fine_tune_code.jsx @@ -5,7 +5,7 @@ import CodeBlock from '@theme/CodeBlock' const trainingTechniques = { base: 'Base', - lora: 'LoRa', + lora: 'LoRA', lora_int8: 'LoRA INT8', int8: 'INT8', } @@ -75,7 +75,7 @@ export default function FinetuneCode( } > {Object.keys(trainingTechniques).map((key) => ( - + ))} diff --git a/docs/docs/personalization/finetune_configure.md b/docs/docs/personalization/finetune_configure.md index e25a20b..5b9b360 100644 --- a/docs/docs/personalization/finetune_configure.md +++ b/docs/docs/personalization/finetune_configure.md @@ -10,22 +10,28 @@ import FinetuneCode from './fine_tune_code'; xTuring is easy to use. The library already loads the best parameters for each model by default. -For advanced usage, you can customize the `finetuning_config` parameter. +For advanced usage, you can customize the `finetuning_config` attribute of the model object. -### 1. Instantiate your model and dataset +In this tutorial, we will be loading one of the [supported models](/overview/supported_models) and customizing it's fine-tune configuration before calibrating the model to the desired dataset. + +### Load the model and the dataset +First, we need to load the model and the dataset we want to use. -### 2. Load the config object +### Load the config object -Print the `finetuning_config` object to check the default configuration. +Next, we need to fetch model's fine-tune configuration using the below command. ```python finetuning_config = model.finetuning_config() ``` -### 3. Set the config +Print the `finetuning_config` object to check the default configuration. + +### Customize the configuration +Now, we can customize the generation configuration as we wish. All the customizable parameters are list [below](#parameters). ```python finetuning_config.batch_size = 64 @@ -35,7 +41,14 @@ finetuning_config.weight_decay = 0.01 finetuning_config.optimizer_name = "adamw" finetuning_config.output_dir = "training_dir/" ``` -#### Parameters +### Start the finetuning +Now, we can run tune-up the model on our dataset to see how our set configuration works. + +```python +model.finetune(dataset=instruction_dataset) +``` + +### Parameters -### 4. Start the finetuning - -```python -model.finetune(dataset=instruction_dataset) -``` \ No newline at end of file diff --git a/docs/docs/personalization/inference_code.jsx b/docs/docs/personalization/inference_code.jsx new file mode 100644 index 0000000..6425fcd --- /dev/null +++ b/docs/docs/personalization/inference_code.jsx @@ -0,0 +1,90 @@ +import React, { useEffect, useState } from 'react' +import clsx from 'clsx' +import CodeBlock from '@theme/CodeBlock' + +const trainingTechniques = { + base: 'Base', + lora: 'LoRA', + lora_int8: 'LoRA INT8', + int8: 'INT8', +} + +const modelList = { + bloom: 'BLOOM', + cerebras: 'Cerebras', + distilgpt2: 'DistilGPT-2', + galactica: 'Galactica', + gptj: 'GPT-J', + gpt2: 'GPT-2', + llama: 'LLaMA', + llama2: 'LLaMA 2', + opt: 'OPT', +} + +export default function InferenceCode( +) { + const [code, setCode] = useState({ + model: '', + technique: 'base', + }) + + let finalKey = '' + if (code.technique === 'base') { + finalKey = `${code.model}` + } else { + finalKey = `${code.model}_${code.technique}` + } + + useEffect(() => { + setCode({ + model: 'llama', + technique: 'lora' + }); + }, []); + + return ( +
+ + + + + + + +
+ ) +} \ No newline at end of file diff --git a/docs/docs/personalization/inference_configure.md b/docs/docs/personalization/inference_configure.md index bf92557..9267565 100644 --- a/docs/docs/personalization/inference_configure.md +++ b/docs/docs/personalization/inference_configure.md @@ -1,50 +1,55 @@ --- -title: Inference +title: 👨🏻‍🏫 Inference Configuration description: Inference parameters sidebar_position: 2 --- -# Inference configuration +import InferenceCode from './inference_code'; + + xTuring is easy to use. The library already loads the best parameters for each model by default. -For advanced usage, you can customize the `.generation_config` attribute of the model. +For advanced usage, you can customize the `generation_config` attribute of the model object. -## `BaseModel` usage + -In this tutorial, we will be loading __OPT 1.3B__ model and customizing it's generation configuration before ineferencing. To use any other model, head to [supported models](/overview/supported_models) page for model keys to supported models of `xTuring`. +In this tutorial, we will be loading one of the [supported models](/overview/supported_models) and customizing it's generation configuration before running inference. -### 1. Load the model +### Load the model -```python -from xturing.models.base import BaseModel +First, we need to load the model we want to use. -model = BaseModel.create("opt") -``` + -### 2. Load the config object +### Load the config object +Next, we need to fetch model's generation configuration using the below command. ```python generation_config = model.generation_config() ``` -Print the `generation_config` object to check the default configuration. -### 3. Customize the configuration +We can print the `generation_config` object to check the default configuration. + +### Customize the configuration + +Now, we can customize the generation configuration as we wish. All the customizable parameters are list [below](#parameters). ```python generation_config.max_new_tokens = 256 ``` -### 4. Test the model +### Test the model +Lastly, we can run inference using the below command to see how our set configuration works. ```python output = model.generate(texts=["Why are the LLM models important?"]) ``` -Print the `output` object to see the results. +We can print the `output` object to see the results. -#### Parameters +### Parameters ->__max_new_tokens__: the maximum numbers of tokens to generate, ignoring the number of tokens in the prompt. + + +| Name | Type | Range | Default | Desription | +| --- | --- | ----- | ------- | ---------- | +| max_new_tokens | int | ≥1 | 256 | The maximum numbers of tokens to generate, ignoring the number of tokens in the prompt. | +| penalty_alpha | int | [0,1) | 0.6 | For contrastive search decoding. The values balance the model confidence and the degeneration penalty. | +| top_k | float | ≥0 | 4 | For contrastive search and sampling decoding method. The number of highest probability vocabulary tokens to keep for top-k-filtering. | +| do_sample | bool | {true, false} | false | Whether or not to use sampling. | +| top_p | float | ≥0 | 0 | For sampling decoding method. If set to float < 1, only the smallest set of most probable tokens with probabilities that add up to top_p or higher are kept for generation. | + + -## `GenericModel` usage + diff --git a/docs/docs/personalization/usage_datsets.md b/docs/docs/personalization/usage_datsets.md deleted file mode 100644 index 442f291..0000000 --- a/docs/docs/personalization/usage_datsets.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Using datasets -description: Learn how to use our datasets -sidebar_position: 1 ---- From cc8c6ef2f2f1ada290b6fab407664f4bc53b6d1c Mon Sep 17 00:00:00 2001 From: Tushar Date: Thu, 24 Aug 2023 17:30:14 +0530 Subject: [PATCH 23/36] renamed the personalization section to configuration --- docs/docs/{personalization => configuration}/_category_.json | 4 ++-- docs/docs/configuration/configuration.md | 1 + .../{personalization => configuration}/fine_tune_code.jsx | 0 .../{personalization => configuration}/finetune_configure.md | 2 +- .../{personalization => configuration}/inference_code.jsx | 0 .../{personalization => configuration}/inference_configure.md | 2 +- docs/docs/personalization/personalization.md | 1 - 7 files changed, 5 insertions(+), 5 deletions(-) rename docs/docs/{personalization => configuration}/_category_.json (55%) create mode 100644 docs/docs/configuration/configuration.md rename docs/docs/{personalization => configuration}/fine_tune_code.jsx (100%) rename docs/docs/{personalization => configuration}/finetune_configure.md (96%) rename docs/docs/{personalization => configuration}/inference_code.jsx (100%) rename docs/docs/{personalization => configuration}/inference_configure.md (96%) delete mode 100644 docs/docs/personalization/personalization.md diff --git a/docs/docs/personalization/_category_.json b/docs/docs/configuration/_category_.json similarity index 55% rename from docs/docs/personalization/_category_.json rename to docs/docs/configuration/_category_.json index 5ecc6b8..3627c3c 100644 --- a/docs/docs/personalization/_category_.json +++ b/docs/docs/configuration/_category_.json @@ -1,9 +1,9 @@ { - "label": "⚙️ Personalization", + "label": "⚙️ Configuration", "position": 2, "collapsed": true, "link": { "type": "doc", - "id": "personalization" + "id": "configuration" } } diff --git a/docs/docs/configuration/configuration.md b/docs/docs/configuration/configuration.md new file mode 100644 index 0000000..78ed3f0 --- /dev/null +++ b/docs/docs/configuration/configuration.md @@ -0,0 +1 @@ +# ⚙️ Configuration diff --git a/docs/docs/personalization/fine_tune_code.jsx b/docs/docs/configuration/fine_tune_code.jsx similarity index 100% rename from docs/docs/personalization/fine_tune_code.jsx rename to docs/docs/configuration/fine_tune_code.jsx diff --git a/docs/docs/personalization/finetune_configure.md b/docs/docs/configuration/finetune_configure.md similarity index 96% rename from docs/docs/personalization/finetune_configure.md rename to docs/docs/configuration/finetune_configure.md index 5b9b360..da17466 100644 --- a/docs/docs/personalization/finetune_configure.md +++ b/docs/docs/configuration/finetune_configure.md @@ -1,5 +1,5 @@ --- -title: 🏋🏻‍♂️ Fine-tuning Configuration +title: 🏋🏻‍♂️ Fine-tuning description: Fine-tuning parameters sidebar_position: 2 --- diff --git a/docs/docs/personalization/inference_code.jsx b/docs/docs/configuration/inference_code.jsx similarity index 100% rename from docs/docs/personalization/inference_code.jsx rename to docs/docs/configuration/inference_code.jsx diff --git a/docs/docs/personalization/inference_configure.md b/docs/docs/configuration/inference_configure.md similarity index 96% rename from docs/docs/personalization/inference_configure.md rename to docs/docs/configuration/inference_configure.md index 9267565..4339d72 100644 --- a/docs/docs/personalization/inference_configure.md +++ b/docs/docs/configuration/inference_configure.md @@ -1,5 +1,5 @@ --- -title: 👨🏻‍🏫 Inference Configuration +title: 👨🏻‍🏫 Inference description: Inference parameters sidebar_position: 2 --- diff --git a/docs/docs/personalization/personalization.md b/docs/docs/personalization/personalization.md deleted file mode 100644 index e4cd052..0000000 --- a/docs/docs/personalization/personalization.md +++ /dev/null @@ -1 +0,0 @@ -# ⚙️ Personalization From d91a1ddf28e873c4a2fbff49c1241956c5df285c Mon Sep 17 00:00:00 2001 From: Tushar Date: Tue, 29 Aug 2023 12:03:36 +0530 Subject: [PATCH 24/36] added data usage and done with advanced topics --- docs/docs/advanced/_category_.json | 2 +- docs/docs/advanced/advanced.md | 2 +- docs/docs/advanced/anymodel.md | 26 +-- docs/docs/advanced/api_server.md | 15 +- docs/docs/advanced/generate.md | 204 +++++++++--------- docs/docs/advanced/pythonapi.md | 4 +- docs/docs/overview/quickstart/data_usage.md | 71 ++++++ .../overview/quickstart/finetune_guide.md | 2 +- docs/docs/overview/quickstart/inference.md | 2 +- 9 files changed, 209 insertions(+), 119 deletions(-) create mode 100644 docs/docs/overview/quickstart/data_usage.md diff --git a/docs/docs/advanced/_category_.json b/docs/docs/advanced/_category_.json index 052b5aa..8b1cd1e 100644 --- a/docs/docs/advanced/_category_.json +++ b/docs/docs/advanced/_category_.json @@ -1,5 +1,5 @@ { - "label": "Advanced Topics", + "label": "🧗🏻 Advanced Topics", "position": 3, "collapsed": true, "link": { diff --git a/docs/docs/advanced/advanced.md b/docs/docs/advanced/advanced.md index feca3c3..0f062c2 100644 --- a/docs/docs/advanced/advanced.md +++ b/docs/docs/advanced/advanced.md @@ -1 +1 @@ -# Advanced Topics \ No newline at end of file +# 🧗🏻 Advanced Topics \ No newline at end of file diff --git a/docs/docs/advanced/anymodel.md b/docs/docs/advanced/anymodel.md index 764143e..c4e9b16 100644 --- a/docs/docs/advanced/anymodel.md +++ b/docs/docs/advanced/anymodel.md @@ -1,5 +1,5 @@ --- -title: Work with Any Model +title: 🌦️ Work with Any Model description: Use self-instruction to generate a dataset sidebar_position: 2 --- @@ -16,17 +16,17 @@ The `GenericModel` class makes it possible to test and fine-tune the models whic | `GenericLoraInt8Model` | Loads the model ready to fine-tune using __LoRA__ technique in __INT8__ precsion | | `GenericLoraKbitModel` | Loads the model ready to fine-tune using __LoRA__ technique in __INT4__ precision | -Let us circle back to the above example and see how we can replicate the results of the `BaseModel` class as shown [here](/overview/quickstart/load_save_models). + -Start by downloading the Alpaca dataset from [here](https://d33tr4pxdm6e2j.cloudfront.net/public_content/tutorials/datasets/alpaca_data.zip) and extract it to a folder. We will load this dataset using the `InstructionDataset` class. + -```python + To initialize the model, simply run the following 2 commands: @@ -35,29 +35,29 @@ from xturing.models import GenericModel model_path = 'aleksickx/llama-7b-hf' -model = GenericLoraModel(model_name) +model = GenericLoraModel(model_path) ``` The _'model_path'_ can be a locally saved model and/or any model available on the HuggingFace's [Model Hub](https://huggingface.co/models). -To fine-tune the model on the loaded dataset, we will use the default configuration for the fine-tuning. +To fine-tune the model on a dataset, we will use the default configuration for the fine-tuning. ```python model.finetune(dataset=dataset) ``` +In order to see how to load a pre-defined dataset, go [here](/overview/quickstart/prepare), and to see how to generate a dataset, refer [this](/advanced/generate) page. + Let's test our fine-tuned model, and make some inference. ```python output = model.generate(texts=["Why LLM models are becoming so important?"]) ``` -Print the `output` variable to see the results. +We can print the `output` variable to see the results. Next, we need to save our fine-tuned model using the `.save()` method. We will send the path of the directory as parameter to the method to save the fine-tuned model. ```python -finetuned_model_path = 'llama_lora_finetuned' - -model.save(finetuned_model_path) +model.save('/path/to/a/directory/') ``` We can also see our model(s) in action with a beautiful UI by launchung the playground locally. @@ -68,7 +68,7 @@ from xturing.ui.playground import Playground Playground().launch() ``` -## GenericModel classes + diff --git a/docs/docs/advanced/api_server.md b/docs/docs/advanced/api_server.md index ccca83e..516fcdc 100644 --- a/docs/docs/advanced/api_server.md +++ b/docs/docs/advanced/api_server.md @@ -4,19 +4,24 @@ description: FastAPI inference server sidebar_position: 3 --- -Once you have fine-tuned your model, you can run the inference using a FastAPI server. +# Running Model Inference with FastAPI Server -### 1. Launch API server from CLI + +After successfully fine-tuning your model, you can perform inference using a FastAPI server. The following steps guide you through launching and utilizing the API server for your fine-tuned model. + +### 1. Launch API server from Command Line Interface (CLI) + +To initiate the API server, execute the following command in your command line interface: ```sh xturing api -m "/path/to/the/model" ``` :::info -Model path should be a directory containing a valid `xturing.json` config file. +Ensure that the model path you provide is a directory containing a valid xturing.json configuration file. ::: -### 2. Health check API +### 2. Health Check API - ### Request @@ -69,3 +74,5 @@ Model path should be a directory containing a valid `xturing.json` config file. "response": ["JP Morgan is multinational investment bank and financial service headquartered in New York city."] } ``` + +By following these steps, you can effectively run your fine-tuned model for text generation through the FastAPI server, facilitating seamless inference with structured requests and responses. \ No newline at end of file diff --git a/docs/docs/advanced/generate.md b/docs/docs/advanced/generate.md index be0c1d9..0c41b19 100644 --- a/docs/docs/advanced/generate.md +++ b/docs/docs/advanced/generate.md @@ -1,5 +1,5 @@ --- -title: Generate a dataset +title: 📚 Generate a dataset description: Use self-instruction to generate a dataset sidebar_position: 1 --- @@ -7,46 +7,52 @@ sidebar_position: 1 import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Dataset generation + -To generate a dataset we make use of **engines** that consist of third party APIs. These are the currently supported ones: +To generate a dataset we will make use of **engines** that consist of third party APIs. The below ones are the currently supported ones: - + OpenAI api key can be obtained [here](https://beta.openai.com/account/api-keys) - ```python - from xturing.model_apis.openai import Davinci, ChatGPT - engine = Davinci("your-api-key") - # engine = ChatGPT("your-api-key") - ``` - - + +```python +from xturing.model_apis.openai import ChatGPT, Davinci +engine = ChatGPT("your-api-key") +# or +engine = Davinci("your-api-key") +``` + + + + ```python from xturing.model_apis.cohere import Medium engine = Medium("your-api-key") ``` - - + + + ```python from xturing.model_apis.ai21 import J2Grande engine = J2Grande("your-api-key") ``` - + + ## From no data -Even if you have no data, you can write a *.jsonl* file that contains the tasks/use cases you would like your model to perform well in. Continue reading to learn this file structure. +Even if we have no data, we can write a `.jsonl` file that contains the tasks/use cases we would like your model to perform well in. Continue reading to learn this file structure. -### Write your tasks.jsonl +### Write your `tasks.jsonl` -Each line of this file needs to be a JSON object with the following fields: +Each line of this file needs to be a _JSON_ object with the following fields: -> ##### id (string, required) + + +| Name | Type | Desription | +| --- | --- | ---------- | +| __id__ | string | A unique identifier for the seed task. This can be any string that is unique within the set of seed tasks you are generating a dataset for. | +| __name__ | string | A name for the seed task that describes what it is. This can be any string that helps you identify the task. | +| __instruction__ | string | A natural language instruction or question that defines the task. This should be a clear and unambiguous description of what the task is asking the model to do. | +| __instances__ | List[Dict[str,str]] | A list of input-output pairs that provide examples of what the model should output for this task. Each input-output pair is an object with two fields: __input__ and __output__. | +| __is_classification__ | boolean | A flag that indicates whether this is a classification task or not. If this flag is set to true, the output should be a single label (e.g. a category or class), otherwise the output can be any text. The default value is false. | -Here's an example of a task in this format: +Here's an example of a task in the above mentioned format: ```json { @@ -82,27 +96,54 @@ Here's an example of a task in this format: } ``` -Here is an example of a tasks.jsonl file: +Here is how an sample `tasks.jsonl` file should like: ```json -{"id": "seed_task_0", "name": "breakfast_suggestion", "instruction": "Is there anything I can eat for a breakfast that doesn't include eggs, yet includes protein, and has roughly 700-1000 calories?", "instances": [{"input": "", "output": "Yes, you can have 1 oatmeal banana protein shake and 4 strips of bacon. The oatmeal banana protein shake may contain 1/2 cup oatmeal, 60 grams whey protein powder, 1/2 medium banana, 1tbsp flaxseed oil and 1/2 cup watter, totalling about 550 calories. The 4 strips of bacon contains about 200 calories."}], "is_classification": false} -{"id": "seed_task_1", "name": "antonym_relation", "instruction": "What is the relation between the given pairs?", "instances": [{"input": "Night : Day :: Right : Left", "output": "The relation between the given pairs is that they are opposites."}], "is_classification": false} +{ + "id": "seed_task_0", + "name": "breakfast_suggestion", + "instruction": "Is there anything I can eat for a breakfast that doesn't include eggs, yet includes protein, and has roughly 700-1000 calories?", + "instances": [{"input": "", "output": "Yes, you can have 1 oatmeal banana protein shake and 4 strips of bacon. The oatmeal banana protein shake may contain 1/2 cup oatmeal, 60 grams whey protein powder, 1/2 medium banana, 1tbsp flaxseed oil and 1/2 cup watter, totalling about 550 calories. The 4 strips of bacon contains about 200 calories."}], + "is_classification": false +} +{ + "id": "seed_task_1", + "name": "antonym_relation", + "instruction": "What is the relation between the given pairs?", + "instances": [{"input": "Night : Day :: Right : Left", "output": "The relation between the given pairs is that they are opposites."}], "is_classification": false +} ``` +### Save the dataset + +In order to use the dataset we just generated and not waste time again next we need it, we can simply save our instance like shown [here](/overview/quickstart/prepare#save-a-dataset). ### Example -Using generate method you can generate a dataset from a list of tasks/use cases. If the generation gets interrupted, since we are caching the results, you can resume the generation by passing the same list of tasks. If you don't want to load the cached result delete the created folder in your current directory. +Using `.generate_dataset()` method we can generate a dataset from a list of tasks/use cases. If the generation gets interrupted, since the results are being cached, we can resume the generation just by passing the same list of tasks. If we don't want to load the cached result, then we will just delete the created folder from our working directory. ```python from xturing.datasets import InstructionDataset from xturing.model_apis.openai import Davinci +## Load the required engine engine = Davinci("your-api-key") + +## Generate the dataset dataset = InstructionDataset.generate_dataset(path="./tasks.jsonl", engine=engine) + +## Save the dataset instance +dataset.save('/path/to/directory') ``` -:::info +Following parameters can be used to control the extent of generation: + +| Name | Type| Default | Desription | +| --- | --- | ----- | ---------- | +| __num_instructions_for_finetuning__ | int | 5 | The size of the generated dataset. If this number is much bigger than the number of lines in tasks.jsonl we can expect a more diverse dataset. Keep in mind that the __bigger the number__ you set, **more the credits** are going to be used from your engine. | +| __num_instructions__ | int | 10 | A cap on the size of the dataset, this can help to create a more diverse dataset. If you don't want to apply a cap, set this to the same value as *num_instructions_for_finetuning*.| + + + +## From custom data -## From your data +We can also generate a dataset from our own files. -You can also generate a dataset from your own files. The files can be of one of the formats: +
+ + The files can be of one of the following formats: + -> .csv .doc .docx .eml .epub .gif .jpg .jpeg .json .html .htm .mp3 .msg .odt .ogg .pdf .png .pptx .rtf .tiff .tif .txt .wav .xlsx .xls + > .csv .doc .docx .eml .epub .gif .jpg .jpeg .json .html .htm .mp3 .msg .odt .ogg .pdf .png .pptx .rtf .tiff .tif .txt .wav .xlsx .xls -### Setting up the environment -Before going ahead you need to install some libraries that we use to support the text extraction. +
+ +### Set up your environment +First, we need to make sure that all the necessary libraries are installed on our system. For this, we need to run the below commands: + @@ -151,15 +200,21 @@ Before going ahead you need to install some libraries that we use to support the -### Preparing your files +### Prepare the files + +Next, we just need to provide the directory path where our files are located. Files from sub-directories will also be discovered automatically. -You just need to provide the directory path where your files are located. Files from sub-directories will also be discovered automatically. +### Save the dataset -:::caution +In order to use the dataset we just generated and not waste time again next time we need it, we can simply save our instance like shown [here](/overview/quickstart/prepare#save-a-dataset). + + + ### Example @@ -167,13 +222,27 @@ You just need to provide the directory path where your files are located. Files from xturing.datasets import InstructionDataset from xturing.model_apis.openai import ChatGPT +# Load the required engine engine = ChatGPT("your-api-key") -dataset = InstructionDataset.generate_dataset_from_dir(path="path/to/directory", engine=engine) + +## Generate the dataset +dataset = InstructionDataset.generate_dataset_from_dir(path="/path/to/directory", engine=engine) + +## Save the dataset instance dataset.save("./my_generated_dataset") -[print(i) for i in dataset] # print the generated dataset ``` + + +Following parameters can be used to customise data generation. + +| Name | Type| Default | Desription | +| --- | --- | ----- | ---------- | +| __use_self_instruct__ | bool | False| When _True_ the dataset will be augmented with self-instructions (more samples, more diverse). In this case, you also have control hover the same parameters of *generate_dataset()* method: *num_instructions*, *num_instructions_for_finetuning*. | +| __chunk_size__ | int | 8000 | The size of the chunk of text (in chars) that will be used to generate the instructions. We recommend values below 10000, but it depends on the model (engine) you are using. | +| __num_samples_per_chunk__ | int | 5 | The number of samples that will be generated for each chunk. | + -:::info + -3. Load the prepared Dataset - -After preparing the dataset in correct format, you can use this dataset for the instruction fine-tuning. - -To load the instruction dataset - -```python -from xturing.datasets.instruction_dataset import InstructionDataset - -instruction_dataset = InstructionDataset('/path/to/instruction_converted_alpaca_dataset') -``` - - -## Prepare Text dataset + -For this, you just need to download a sample dataset to your woring directory, or generate a custom dataset. For example, you can download the Alpaca Dataset from this [link](https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json). diff --git a/docs/docs/advanced/pythonapi.md b/docs/docs/advanced/pythonapi.md index 16c9cd9..9114800 100644 --- a/docs/docs/advanced/pythonapi.md +++ b/docs/docs/advanced/pythonapi.md @@ -1,7 +1,7 @@ --- -title: Python API Reference +title: 🐍 Python API Reference description: Use self-instruction to generate a dataset sidebar_position: 3 --- -## Python API \ No newline at end of file + \ No newline at end of file diff --git a/docs/docs/overview/quickstart/data_usage.md b/docs/docs/overview/quickstart/data_usage.md new file mode 100644 index 0000000..21a1ba6 --- /dev/null +++ b/docs/docs/overview/quickstart/data_usage.md @@ -0,0 +1,71 @@ +--- +title: 📜 Data Usage +description: Using a an existing dataset +sidebar_position: 3 +--- + + + + +Certainly, when we're looking to utilize an existing dataset for tasks like fine-tuning or model testing, it becomes crucial to ensure that the dataset is in a format compatible with `xTuring`. This ensures smooth functionality when working with the `xTuring` platform. However, there might be instances where the chosen dataset isn't in the format that `xTuring` expects. In such cases, there's a method we can follow to rectify this issue. Let's explore the process: + +1. **Selecting the Dataset**: The first step involves choosing a dataset that suits our requirements for fine-tuning or testing the model. + +2. **Format Alignment**: It's essential to verify whether the chosen dataset is in the format that `xTuring` accepts. If it's not, we need to proceed with some adjustments. + +3. **Format Adjustment**: To align the dataset with `xTuring`'s expectations, we should reformat it according to the accepted structure. This ensures that the platform can seamlessly work with the data. + +4. **Ensuring Coherency**: The reformatted text should maintain coherency and clarity. It should effectively convey the message while adhering to proper grammar and organization. + +By following these steps, we ensure that the chosen dataset is transformed into a compatible format for `xTuring`, enabling efficient usage and optimal results. + +We know __what__ all we need to do to make format the dataset, below is the __how__ behind it! + +## Instruction Dataset Format +For this tutorial we will need to prepare a dataset which contains 3 columns (instruction, text, target) for instruction fine-tuning or 2 columns (text, target) for text fine-tuning. Here, we will see how to convert Alpaca dataset to be used for instruction fine-tuning. Before starting, make sure you have downloaded the [Alpaca dataset](https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json) in your working directory. + + +### Convert the dataset to _Instruction Dataset_ format +This is the main step where we our knowledge of the existing dataset, we convert it to a format understandable by `xTuring`'s _InstructionDataset_ class. + +```python +import json +from datasets import Dataset, DatasetDict + +alpaca_data = json.load(open('/path/to/alpaca_dataset')) +instructions = [] +inputs = [] +outputs = [] + +for data in alpaca_data: + instructions.append(data["instruction"]) + inputs.append(data["input"]) + outputs.append(data["output"]) + +data_dict = { + "train": {"instruction": instructions, "text": inputs, "target": outputs} +} + +dataset = DatasetDict() +for k, v in data_dict.items(): + dataset[k] = Dataset.from_dict(v) + +dataset.save_to_disk(str("./alpaca_data")) +``` + + +### Load the prepared Dataset + +After preparing the dataset in correct format, you can use this dataset for the instruction fine-tuning. + +To load the instruction dataset + +```python +from xturing.datasets.instruction_dataset import InstructionDataset + +instruction_dataset = InstructionDataset('/path/to/instruction_converted_alpaca_dataset') +``` + +## Text Dataset Format + +The datasets that we find on the internet are formatted in a way which is accepted by the `xTuring`'s `TextDataset` class, so we need not worry text fine-tuning and just use those datasets as is. \ No newline at end of file diff --git a/docs/docs/overview/quickstart/finetune_guide.md b/docs/docs/overview/quickstart/finetune_guide.md index ab569ab..1f6768d 100644 --- a/docs/docs/overview/quickstart/finetune_guide.md +++ b/docs/docs/overview/quickstart/finetune_guide.md @@ -1,7 +1,7 @@ --- title: 🔧 Fine-tune Pre-trained Models description: Fine-tuning with xTuring -sidebar_position: 3 +sidebar_position: 4 --- import Test from './test'; diff --git a/docs/docs/overview/quickstart/inference.md b/docs/docs/overview/quickstart/inference.md index 853b2e0..68fea68 100644 --- a/docs/docs/overview/quickstart/inference.md +++ b/docs/docs/overview/quickstart/inference.md @@ -1,7 +1,7 @@ --- title: 🗣️ Inference description: Inferencing guide -sidebar_position: 4 +sidebar_position: 5 --- From fec2bf6cd18388d189c0de0fa9b1783cdb583ead Mon Sep 17 00:00:00 2001 From: Tushar Date: Tue, 29 Aug 2023 12:39:16 +0530 Subject: [PATCH 25/36] contributing guide done --- docs/docs/contributing/how_to_contribute.md | 94 ++++++------- docs/docs/contributing/model_contributing.md | 133 ++++++++++--------- docs/docs/contributing/setting_up.md | 5 +- 3 files changed, 124 insertions(+), 108 deletions(-) diff --git a/docs/docs/contributing/how_to_contribute.md b/docs/docs/contributing/how_to_contribute.md index 725c832..67aa2a2 100644 --- a/docs/docs/contributing/how_to_contribute.md +++ b/docs/docs/contributing/how_to_contribute.md @@ -1,10 +1,10 @@ --- -title: How to contribute to xTuring? +title: ❓How to contribute to xTuring❓ description: How to contribute to xTuring? sidebar_position: 2 --- -# Contribute to xTuring + We are excited that you are interested in contributing to our open-source project. `xTuring` is an open-source library that is maintained by a community of developers and researchers. We welcome contributions of all kinds, including bug reports, feature requests, and code contributions. @@ -47,63 +47,65 @@ You'll need Python 3.8 or above to contribute to __`xTuring`__. To start contrib 2. Clone your forked repository to your local machine, and add the base repository as a remote. -```bash -git clone https://github.com//xTuring.git -cd xTuring -git remote add upstream https://github.com/stochastic/xTuring.git -``` + ```bash + git clone https://github.com//xTuring.git + cd xTuring + git remote add upstream https://github.com/stochastic/xTuring.git + ``` 3. Create a new branch for your changes emerging from the `dev` branch. -```bash -git checkout dev -git checkout -b a-descriptive-name-for-your-changes -``` -🚨 **Do not** checkout from the _main_ branch or work on it. + ```bash + git checkout dev + git checkout -b a-descriptive-name-for-your-changes + ``` + 🚨 **Do not** checkout from the _main_ branch or work on it. 4. Make sure you have pre-commit hooks installed and set up to ensure your code is properly formatted before being pushed to _git_. -```bash -pip install pre-commit -pre-commit install -pre-commit install --hook-type commit-msg -``` + ```bash + pip install pre-commit + pre-commit install + pre-commit install --hook-type commit-msg + ``` 5. Set up a development environment by running the following command in a virtual environment: -```bash -pip install -e . -``` + Here are the guides to setting up [virtual environment](https://www.freecodecamp.org/news/how-to-setup-virtual-environments-in-python/) and [conda environment](https://conda.io/projects/conda/en/latest/user-guide/getting-started.html). -If `xTuring` is already installed in your virtual environment, remove it with _pip uninstall xturing_ before reinstlling it in editable mode with the _-e_ flag. + ```bash + pip install -e . + ``` -Here are the guides to setting up [virtual environment](https://www.freecodecamp.org/news/how-to-setup-virtual-environments-in-python/) and [conda environment](https://conda.io/projects/conda/en/latest/user-guide/getting-started.html). + If `xTuring` is already installed in your virtual environment, remove it with _pip uninstall xturing_ before reinstlling it in editable mode with the _-e_ flag. + + To get a detailed version of installing the required libraries and `xTuring` for development, refer [here](/contributing/setting_up#editable-install). 6. Develop features on your branch -As you work on your code, you should make sure the test suite passes. Run all the tests to make sure nothing breaks once your code is pushed to GitHub using the following command: -```bash -pytest tests/ -``` + As you work on your code, you should make sure the test suite passes. Run all the tests to make sure nothing breaks once your code is pushed to GitHub using the following command: + ```bash + pytest tests/ + ``` -Once you are satisified with your changes and all the tests pass, add changed files with _git add_ and record your changes with _git commit_: + Once you are satisified with your changes and all the tests pass, add changed files with _git add_ and record your changes with _git commit_: -```bash -git add -git commit -m "" -``` -Make sure to write __good commit messages__ to clearly communicate the changes you made! + ```bash + git add + git commit -m "" + ``` + Make sure to write __good commit messages__ to clearly communicate the changes you made! -Before pushing the code to GitHub and making a PR, ensure you have your copy of code up-to-date with the main repository. To do so, rebase your branch on _upstream/branch_: -```bash -git fetch upstream -git rebase upstream/dev -``` + Before pushing the code to GitHub and making a PR, ensure you have your copy of code up-to-date with the main repository. To do so, rebase your branch on _upstream/branch_: + ```bash + git fetch upstream + git rebase upstream/dev + ``` 7. Push your changes to your forked repository -```bash -git push -u origin a-descriptive-name-for-your-changes -``` + ```bash + git push -u origin a-descriptive-name-for-your-changes + ``` 8. Now, you can go your fork of the repository on GitHub and click on __[Pull Request](https://github.com/stochasticai/xTuring/compare)__ to open a pull request to the __dev__ branch of the original repository with a clear description of your changes and why they are needed. We will review your changes as soon as possible and provide feedback. Once your changes have been approved, they will be merged into the _dev_ branch. @@ -119,9 +121,9 @@ To prevent triggering notifications and adding reference notes to each upstream 2. In cases where a pull request is genuinely required, follow these steps once you've switched to your branch: -```bash -git checkout -b your-branch-for-syncing -git pull --squash --no-commit upstream dev -git commit -m '' -git push --set-upstream origin your-branch-for-syncing -``` \ No newline at end of file + ```bash + git checkout -b your-branch-for-syncing + git pull --squash --no-commit upstream dev + git commit -m '' + git push --set-upstream origin your-branch-for-syncing + ``` \ No newline at end of file diff --git a/docs/docs/contributing/model_contributing.md b/docs/docs/contributing/model_contributing.md index 409a985..28b8737 100644 --- a/docs/docs/contributing/model_contributing.md +++ b/docs/docs/contributing/model_contributing.md @@ -1,99 +1,110 @@ --- -title: Adding new model +title: 🤖 Adding new model description: Guide on how to add new models to xTuring sidebar_position: 3 --- -# How to add a model to _xTuring_? +# 🤖 How to add a model to _xTuring_? We appreciate your interest in contributing new models to xTuring. This guide will help you understand how to add new models and engines to the library. ## Prerequisites -Before you start, make sure you are familiar with the xTuring codebase, particularly the structure of the models and engines folders. Familiarity with _PyTorch_ and the _Hugging Face Transformers_ library is also essential. +Before we start, we need to make sure that we are familiar with the `xTuring` codebase, particularly the structure of the [__models__](https://github.com/stochasticai/xTuring/tree/main/src/xturing/models) and [__engines__](https://github.com/stochasticai/xTuring/tree/main/src/xturing/engines) folders. Familiarity with _PyTorch_ and the _Hugging Face Transformers_ library is also essential. ## Steps to add a new model -1. **Create a new engine**: In the `engines` folder, create a new file with the name of your engine (e.g., `my_engine.py`). Define a new engine class that inherits from an appropriate base engine class (e.g., `CausalEngine` for causal models, for `Seq2Seq` you need to add base class first). Implement necessary methods and attributes, following the structure of existing engines (e.g., `gptj_engine.py`). +### 1. First, create a new engine +In the `engines` folder, we are required to create a new file with the name of our engine (e.g., `my_engine.py`). Define a new engine class that inherits from an appropriate base engine class (e.g., `CausalEngine` for causal models, for `Seq2Seq` you need to add base class first). Implement necessary methods and attributes, following the structure of existing engine. We can refer [gptj_engine.py](https://github.com/stochasticai/xTuring/blob/main/src/xturing/engines/gptj_engine.py). - ```python - from xturing.engines.causal import CausalEngine +```python +from xturing.engines.causal import CausalEngine - class MyEngine(CausalEngine): - config_name: str = "my_engine" +class MyEngine(CausalEngine): + config_name: str = "my_engine" - def __init__(self, model_name: str, weights_path: Optional[Union[str, Path]] = None): - super().__init__(model_name, weights_path) - ``` + def __init__(self, model_name: str, weights_path: Optional[Union[str, Path]] = None): + super().__init__(model_name, weights_path) +``` -2. **Create a new model**: In the `models` folder, create a new file with the name of your model (e.g., `my_model.py`). Define a new model class that inherits from an appropriate base model class (e.g., `CausalModel` for causal models, for `Seq2Seq` you need to add base class first). Implement necessary methods and attributes, following the structure of existing models (e.g., `gptj.py`). +### 2. Next, create a new model +In the `models` folder, we need to create a new file with the name of our model (e.g., `my_model.py`). First, define a new model class that inherits from an appropriate base model class (e.g., `CausalModel` for causal models, for `Seq2Seq` you need to add base class first). Then, implement necessary methods and attributes, following the structure of existing models. We can refer [gptj.py](https://github.com/stochasticai/xTuring/blob/main/src/xturing/models/gptj.py). - ```python - from xturing.models.causal import CausalModel - from xturing.engines.my_engine import MyEngine +```python +from xturing.models.causal import CausalModel +from xturing.engines.my_engine import MyEngine - class MyModel(CausalModel): - config_name: str = "my_model" +class MyModel(CausalModel): + config_name: str = "my_model" - def __init__(self, weights_path: Optional[str] = None): - super().__init__(MyEngine.config_name, weights_path) - ``` + def __init__(self, weights_path: Optional[str] = None): + super().__init__(MyEngine.config_name, weights_path) +``` -3. **Update the model and engine registries**: Add your new model to the `model` and `engine` registry in `xturing.{models|engines}.__init__.py`. This will allow users to create instances of your model using the `BaseModel.create('')` method. +### 3. Then, update the model and engine registries +We have to add our new model to the [`model`](https://github.com/stochasticai/xTuring/blob/main/src/xturing/models/__init__.py) and [`engine`](https://github.com/stochasticai/xTuring/blob/main/src/xturing/engines/__init__.py) registries in `xturing.{models|engines}.__init__.py`. This will allow users to create instances of your model using the `BaseModel.create('')` method. -4. **Update the config files**: In the `config` folder, add your new model key and their respective hyperparameters to be run by default in `finetuning_config.yaml` and `generation_config.yaml` files. - ```yaml - # finetuning_config.yaml - my_model: - learning_rate: 1e-4 - weight_decay: 0.01 - num_train_epochs: 3 - batch_size: 8 - max_length: 256 +### 4. Alongside, Update the config files +In the `config` folder, we need to add our new model key and their respective hyperparameters to be run by default in `finetuning_config.yaml` and `generation_config.yaml` files. +```yaml +# finetuning_config.yaml +my_model: + learning_rate: 1e-4 + weight_decay: 0.01 + num_train_epochs: 3 + batch_size: 8 + max_length: 256 - # generation_config.yaml - my_model: - max_new_tokens: 256 - do_sample: false +# generation_config.yaml +my_model: + max_new_tokens: 256 + do_sample: false - ``` +``` -5. **Add tests**: If your model is small enough you can add tests for your new model in the `tests` folder. You can use existing tests as a reference. If your model is too large to be included in the tests, you can add a notebook in the `examples` folder to demonstrate how to use your model. +### 5. Do not forget to Add tests +If our model is small enough we can add tests for our new model in the [_tests/_](https://github.com/stochasticai/xTuring/tree/main/tests/xturing) folder. We can use existing tests as a reference. If our model is too large to be included in the tests, we can add a notebook in the [_examples/_](https://github.com/stochasticai/xTuring/tree/main/examples) folder to demonstrate how to use our model. -6. **Update the documentation**: Update the documentation to include your new model and engine. Add a new Markdown file in the docs folder with a tutorial on how to use your model. +### 6. Update the documentation +We should not forget to update the documentation to include our new model and engine. We can do so by adding a new _Markdown_ file in the [_examples/_](https://github.com/stochasticai/xTuring/tree/main/examples) folder with a tutorial on how to use our model. -7. **Submit a pull request**: Once you have completed the above steps, submit a pull request to the `dev` branch. Provide a clear description of your changes and why they are needed. We will review your changes as soon as possible and provide feedback. Once your changes have been approved, they will be merged into the `dev` branch. +### 7. At last, submit a pull request +Once we have completed the above steps, we are ready to submit a pull request to the `dev` branch. For that, we should provide a clear description of our changes and why they are needed. Then the seasoned contributors will review our changes as soon as possible and provide feedback. Once our changes have been approved, they will be merged into the `dev` branch. ## Steps to add a LoRA model -1. **Create a new engine**: analogously to the steps above, create a new engine in the `engines` folder. The new engine should inherit from the `CausalLoraEngine` base class. You can use `gptj_engine.py` file as a reference. - ```python - from xturing.engines.causal import CausalLoraEngine +### 1. First, Create a new engine +Analogous to the steps above, create a new engine in the `engines` folder. The new engine should inherit from the `CausalLoraEngine` base class. We can use [`gptj_engine.py`](https://github.com/stochasticai/xTuring/blob/main/src/xturing/engines/gpt2_engine.py) file as a reference. - class MyLoraEngine(CausalLoraEngine): - config_name: str = "my_engine_lora" +```python +from xturing.engines.causal import CausalLoraEngine - def __init__(self, weights_path: Optional[Union[str, Path]] = None): - super().__init__( - model_name, - weights_path, - target_modules=[], - ) - ``` - The `target_modules` parameter is the list of identifiers used to denote attention layers of your model. For example, for *GPTJ* model, the attention layers are denoted with `q_proj` and `v_proj`. +class MyLoraEngine(CausalLoraEngine): + config_name: str = "my_engine_lora" -2. **Create a new model**: analogously to the steps above, create a new model in the `models` folder. The new model should inherit from the `CausalLoraModel` base class. You can use the `gptj.py` file as a reference. - ```python - from xturing.models.causal import CausalLoraModel - from xturing.engines.my_engine import MyLoraEngine + def __init__(self, weights_path: Optional[Union[str, Path]] = None): + super().__init__( + model_name, + weights_path, + target_modules=[], + ) +``` - class MyModelLora(CausalLoraModel): - config_name: str = "my_model_lora" +The `target_modules` parameter is the list of identifiers used to denote attention layers of your model. For example, for *GPTJ* model, the attention layers are denoted with `q_proj` and `v_proj`. - def __init__(self, weights_path: Optional[str] = None): - super().__init__(MyLoraEngine.config_name, weights_path) - ``` +### 2. Next, Create a new model +Analogous to the steps above, create a new model in the `models` folder. The new model should inherit from the `CausalLoraModel` base class. We can use the [`gptj.py`](https://github.com/stochasticai/xTuring/blob/main/src/xturing/models/gptj.py) file as a reference. +```python +from xturing.models.causal import CausalLoraModel +from xturing.engines.my_engine import MyLoraEngine - Next, follow steps 3 through 7 as mentioned in the above steps +class MyModelLora(CausalLoraModel): + config_name: str = "my_model_lora" + + def __init__(self, weights_path: Optional[str] = None): + super().__init__(MyLoraEngine.config_name, weights_path) +``` + +### Next, follow steps 3 through 7 as mentioned in the above steps Thank you for your contribution to xTuring! diff --git a/docs/docs/contributing/setting_up.md b/docs/docs/contributing/setting_up.md index ba69033..24b4610 100644 --- a/docs/docs/contributing/setting_up.md +++ b/docs/docs/contributing/setting_up.md @@ -1,9 +1,12 @@ --- -title: Setting Up +title: 🍽️ Setting Up description: Setup xTuring for contribution sidebar_position: 1 --- +Before we can start contributing to `xTuring`, we need to make sure we have all the neccessary code available to us in our working diretory and up-to-date. Moreover, to be able to test our changes, we need to do something more than just install the latest stable version of the library from _pip_. + +To just get the latest version of developments on `xTuring`, we need to [install from source](#install-from-source). But in order to test our changes we did locally, we need to go a step ahead and do something called an [editable install](#editable-install). Let's dive into them right away! ## Install from source Install `xTuring` directly from GitHub by running the following command on your cmd/terminal: ```bash From 6a8b981fba0bd3b38052dc4b6dd92678018a9469 Mon Sep 17 00:00:00 2001 From: Tushar Date: Tue, 29 Aug 2023 13:06:51 +0530 Subject: [PATCH 26/36] playground section complete and introduction in progress --- docs/docs/about.md | 15 ++-------- docs/docs/overview/intro.md | 15 ++++++++-- docs/docs/playground/CLI.md | 29 ++++++++++++++----- docs/docs/playground/UI.md | 58 +++++++++++++++++++++++++++++-------- 4 files changed, 82 insertions(+), 35 deletions(-) diff --git a/docs/docs/about.md b/docs/docs/about.md index 4fd8bfe..dad8fea 100644 --- a/docs/docs/about.md +++ b/docs/docs/about.md @@ -1,17 +1,6 @@ --- -title: 👤 About -description: Meet the team behind the xTuring library +title: FAQs +description: Some common issues one might have sidebar_position: 9 --- -# About - -Welcome to xTuring, an open-source AI personalization software created by Stochastic. Our mission is to make AI more accessible to everyone, regardless of their technical background. We believe that democratizing AI will lead to a more equitable and innovative future. - -At Stochastic, we are committed to building effortless AI development, optimization and deployment to enable anyone to ship state-of-the-art AI models with production-grade performance. Our team includes top researchers and engineers who share the same vision of democratizing AI through advancements in efficient machine learning and computing. - -We are passionate about making AI accessible and approachable, and we believe that the xTuring library is an important step towards achieving that goal. With xTuring, building and controlling LLMs has never been easier. Our simple interface allows you to personalize LLMs to your own data and application, making it possible for anyone to create and deploy AI models without extensive technical expertise. - -At Stochastic, we value transparency, collaboration, and continuous improvement. We are proud to be a distributed team, working together from different parts of the world to create an open-source tool that empowers others to harness the power of AI. We believe that by working together and sharing our knowledge, we can build a more inclusive and equitable future for AI. - -Thank you for choosing xTuring. We are committed to supporting our users and ensuring that AI is accessible to all. diff --git a/docs/docs/overview/intro.md b/docs/docs/overview/intro.md index 7826c48..673dd33 100644 --- a/docs/docs/overview/intro.md +++ b/docs/docs/overview/intro.md @@ -27,13 +27,13 @@ pip install xturing You can quickly get started with xTuring by following the [Quickstart](/overview/quickstart) guide or use one of the examples below. -### UI Playground + ### Models supported @@ -55,3 +55,14 @@ xTuring is licensed under [Apache 2.0](https://github.com/stochasticai/xturing/b ### Support [💬 Join Community Discord](https://discord.gg/YxHuQq8b)
[@stochasticai](https://twitter.com/stochasticai) + +### About the team +Welcome to xTuring, an open-source AI personalization software created by Stochastic. Our mission is to make AI more accessible to everyone, regardless of their technical background. We believe that democratizing AI will lead to a more equitable and innovative future. + +At Stochastic, we are committed to building effortless AI development, optimization and deployment to enable anyone to ship state-of-the-art AI models with production-grade performance. Our team includes top researchers and engineers who share the same vision of democratizing AI through advancements in efficient machine learning and computing. + +We are passionate about making AI accessible and approachable, and we believe that the xTuring library is an important step towards achieving that goal. With xTuring, building and controlling LLMs has never been easier. Our simple interface allows you to personalize LLMs to your own data and application, making it possible for anyone to create and deploy AI models without extensive technical expertise. + +At Stochastic, we value transparency, collaboration, and continuous improvement. We are proud to be a distributed team, working together from different parts of the world to create an open-source tool that empowers others to harness the power of AI. We believe that by working together and sharing our knowledge, we can build a more inclusive and equitable future for AI. + +Thank you for choosing xTuring. We are committed to supporting our users and ensuring that AI is accessible to all. diff --git a/docs/docs/playground/CLI.md b/docs/docs/playground/CLI.md index 45f98b9..1c4a15d 100644 --- a/docs/docs/playground/CLI.md +++ b/docs/docs/playground/CLI.md @@ -1,27 +1,40 @@ --- -title: CLI +title: 🧑🏻‍💻 CLI description: CLI Playground sidebar_position: 2 --- -# CLI Playground +# 🧑🏻‍💻 CLI Playground: Engage with the Power of xTuring +To harness the capabilities of xTuring's CLI playground, follow these steps to install and utilize the tool effectively. -Be sure to have the latest version of xturing installed: +### Prerequisites: Installing the Latest xTuring Version +Ensure that you have the most recent version of xTuring installed by executing the following command: + + ```sh pip install xturing --upgrade ``` -### 1. Launch the playground + +### 1. Launching the Playground +Get ready to dive into an immersive chat experience powered by xTuring. Simply initiate the playground by executing the subsequent command in your command-line interface: -From the CLI run the following command to start the chat: + ```sh xturing chat -m "/path/to/the/model" ``` -### 2. Chat + + +### 2. Engage in a Dynamic Chat +Once the model is successfully loaded, you'll be prompted to provide your input. Unleash your creativity and curiosity as you interact with the model through the CLI playground. + + + +![Playground CLI Demo](/img/playground/cli-playground.gif) -If the model loads successfully you will be then asked to enter your prompt. +In this engaging chat interface, your interactions with the model come to life, opening the door to intriguing and insightful conversations. -![Playground CLI Demo](/img/playground/cli-playground.gif) +By following these steps, you can seamlessly access and utilize the xTuring CLI playground, experiencing firsthand the model's impressive text generation capabilities. Let your imagination run wild and explore the realms of AI-powered communication! \ No newline at end of file diff --git a/docs/docs/playground/UI.md b/docs/docs/playground/UI.md index 55387a5..864c791 100644 --- a/docs/docs/playground/UI.md +++ b/docs/docs/playground/UI.md @@ -5,9 +5,14 @@ sidebar_position: 1 --- -# UI Playground +# Exploring the UI Playground: A First-Person Experience -Be sure to have the latest version of xturing installed: +To embark on an interactive journey with the xTuring UI Playground, here's your guide to installation, setup, and seamless engagement with this fascinating tool. + +### Prerequisites: Ensuring the Latest xTuring Version + + +Begin by guaranteeing that you're equipped with the most up-to-date xTuring version. Execute the subsequent command to ensure the latest update: ```sh pip install xturing --upgrade @@ -15,9 +20,20 @@ pip install xturing --upgrade ![Playground UI Demo](/img/playground/ui-playground.gif) -### 1. Launch the playground + +### 1. Launching the Playground Interface + +To immerse yourself in the world of the UI Playground, you have two equally effective methods: + +#### Option 1: Command-Line Interface (CLI) + +Execute the command xturing ui in your terminal to launch the UI Playground. + +#### Option 2: Integration in a Script + +Alternatively, in a Python script, you can utilize the following code snippet to launch the Playground interface: -To launch the playground interface, you can either run `xturing ui` on the CLI or in a script as follows: + ```python from xturing.ui.playground import Playground @@ -26,30 +42,48 @@ Playground().launch() ``` :::info -`Playground` constructor accepts the following argument: + +For enhanced customization, the Playground constructor accepts the argument model_path, allowing you to specify the model path when launching the Playground: ``` Playground(model_path="...").launch() ``` ::: -### 2. Load the model +### 2. Loading the model -You can load the model by specifying the model path in the step 1 or by providing the path in the input field. +Load your desired model effortlessly using one of two methods: + + + +#### Method 1: Path Specification (Step 1) + +During the launch process, provide the model path in Step 1 to initiate model loading. + +#### Method 2: Input Field (Load Model Section) + +Alternatively, you can input the model path directly in the provided field within the UI Playground interface. ![Load model section](/img/playground/load-model.png) -When you press the load button, model loading will start. Once the model is loaded successfully the chat section is enabled. + +Upon clicking the "Load" button, the model loading process commences. Once the model is successfully loaded, the chat section becomes active. :::info -Model path should be a directory containing a valid `xturing.json` config file. + +Ensure that the model path points to a directory containing a valid `xturing.json` configuration file. ::: ### 3. Chat with your model -Enter the prompt and start chatting with the model. Use the `Clear chat` to start a new chat. + +With the loaded model at your fingertips, enter prompts and initiate engaging conversations with the AI. To start anew, use the "Clear Chat" button for a fresh chat session. + +### 4. Tweaking Model Behavior -### 4. Change the parameters + -We provide some configuration parameters to change the behavior of the model: `Top-p sampling`, `Contrastive search`. You can change the parameters by using the input fields in the `Parameters` section. +The UI Playground offers configuration parameters that enable you to tailor the model's behavior to your preference. In the "Parameters" section, you can adjust settings such as Top-p Sampling and Contrastive Search. ![Parameters section](/img/playground/parameters.png) + +Through these intuitive steps, you can readily experience the xTuring UI Playground as if you were navigating it yourself. Uncover the wonders of AI-driven communication and creativity in an interactive, user-friendly environment. \ No newline at end of file From c98aa0b582189e49e4623af2f811a8334067a22b Mon Sep 17 00:00:00 2001 From: Tushar Date: Tue, 29 Aug 2023 17:03:30 +0530 Subject: [PATCH 27/36] installation and introduction final --- docs/docs/{about.md => faqs.md} | 0 docs/docs/overview/installation.md | 12 ++--- docs/docs/overview/intro.md | 58 ++++++++++++++++++--- docs/docs/overview/quickstart/data_usage.md | 2 +- 4 files changed, 57 insertions(+), 15 deletions(-) rename docs/docs/{about.md => faqs.md} (100%) diff --git a/docs/docs/about.md b/docs/docs/faqs.md similarity index 100% rename from docs/docs/about.md rename to docs/docs/faqs.md diff --git a/docs/docs/overview/installation.md b/docs/docs/overview/installation.md index c0dacf7..3ae1111 100644 --- a/docs/docs/overview/installation.md +++ b/docs/docs/overview/installation.md @@ -7,12 +7,12 @@ description: Your first time installing xTuring import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -You can install `xTuring` globally on your machine, but it is advised to install it inside a virtual environment. Before starting, make sure you have __Python 3.0+__ installed on your machine. +We can install `xTuring` globally on our machine, but it is advised to install it inside a virtual environment. Before starting, we have to make sure we have __Python 3.0+__ installed on our machine. ## Install via pip -For this, ensure that you have _virtualenv_ package installed or _anaconda_ setup on your machine. +For this, we have to ensure that we have _virtualenv_ package installed or _anaconda_ setup on our machine. -Start by creating a virtual environment in your working directory: +Start by creating a virtual environment in our working directory: @@ -39,7 +39,7 @@ $ source venv/bin/activate -Once the virtual environment is activated, you can now install `xTuring` library by running the following command on your terminal: +Once the virtual environment is activated, we can now install `xTuring` library by running the following command on your terminal:
@@ -65,7 +65,7 @@ $ conda activate venv
-Once the conda environment is activated, you can now install `xTuring` library by running the following command on your terminal: +Once the conda environment is activated, we can now install `xTuring` library by running the following command on your terminal: @@ -76,7 +76,7 @@ Once the conda environment is activated, you can now install `xTuring` library b $ pip install xTuring ``` This will install the latest version of xTuring available on pip. -Finally, you can test if `xTuring` has been properly installed by running the following commands on your terminal: +Finally, we can test if `xTuring` has been properly installed by running the following commands on our terminal: ```bash $ python >>> from xturing.models import BaseModel diff --git a/docs/docs/overview/intro.md b/docs/docs/overview/intro.md index 673dd33..e9ed300 100644 --- a/docs/docs/overview/intro.md +++ b/docs/docs/overview/intro.md @@ -7,7 +7,7 @@ slug: / # xTuring -**xTuring** is an open-source AI personalization software. xTuring makes it easy to build and control + + + +**Welcome to xTuring: Personalize AI Your Way** + +In the realm of AI, personalization is the key to unlocking its true potential. Enter xTuring — an open-source AI personalization software that empowers you to shape and command Large Language Models (LLMs) with unparalleled ease. With a simple interface designed for personalizing LLMs to your unique data and applications, xTuring puts the reins of AI personalization firmly in your hands. + + + +## The xTuring Advantage + +At xTuring, we prioritize three core principles that drive every facet of our software: + +1. **Simplicity and Productivity**: xTuring is engineered to simplify complex AI tasks, making them accessible to both newcomers and seasoned developers. Productivity thrives in our intuitive interface. + +2. **Efficiency of Compute and Memory**: We understand that time and resources are valuable. xTuring optimizes both compute and memory, ensuring your AI projects run smoothly and efficiently. + +3. **Agility and Customizability**: In the ever-evolving AI landscape, flexibility matters. xTuring empowers you to customize and adapt LLMs to your specific needs, fostering agility and innovation. + + + +As you dive into the world of xTuring, think of it as your personal AI atelier. From enhancing pre-trained models' performance to crafting high-quality embeddings for diverse applications, xTuring stands ready to be your AI partner. + +Ready for AI with a personal touch? Welcome to **xTuring** — a journey of innovation, simplicity, and boundless possibilities. It's time to unleash the true potential of AI, tailored to your vision. You can quickly get started with xTuring by following the [Quickstart](/overview/quickstart) guide or use one of the examples below. @@ -35,7 +61,7 @@ You can quickly get started with xTuring by following the [Quickstart](/overview ![Playground CLI Demo](/img/playground/cli-playground.gif) --> -### Models supported +## Models' Examples | Model | Examples | | --- | --- | @@ -52,12 +78,14 @@ You can quickly get started with xTuring by following the [Quickstart](/overview xTuring is licensed under [Apache 2.0](https://github.com/stochasticai/xturing/blob/main/LICENSE) -### Support -[💬 Join Community Discord](https://discord.gg/YxHuQq8b)
-[@stochasticai](https://twitter.com/stochasticai) +## Support +💬 Join our [Discord community](https://discord.gg/YxHuQq8b) and chat with other community members about ideas. + +🕊️ Follow us on Twitter +[@stochasticai](https://twitter.com/stochasticai). -### About the team -Welcome to xTuring, an open-source AI personalization software created by Stochastic. Our mission is to make AI more accessible to everyone, regardless of their technical background. We believe that democratizing AI will lead to a more equitable and innovative future. +## About the team + + +**Meet the Minds Behind xTuring: Crafting AI Possibilities** + +The architects of xTuring hail from the innovative hub of Stochastic. Our team embodies a shared vision: to redefine AI's landscape, making it accessible to all. With a deep commitment to innovation and inclusion, we're shaping the future of AI—one line of code at a time. + +**United by Expertise**: From researchers to engineers, each team member brings a unique blend of skills to the table. Our collective expertise spans machine learning, computing, and AI application, forming the foundation of xTuring's brilliance. + +**Boundless Innovation**: At Stochastic, we're driven by the pursuit of making AI simpler, smarter, and more impactful. Our global team—collaborating seamlessly across geographical borders—imbues xTuring with a diverse spectrum of insights and ideas. + +**Crafting Simplicity**: In a world of complexity, we prioritize simplicity. xTuring's user-friendly interface and powerful capabilities reflect this commitment, ensuring that AI's potential is within reach for everyone. + +**Committed to Your Success**: Our dedication doesn't end with the creation of xTuring. We're here to support you on your AI journey, ensuring that our tool empowers you to navigate the dynamic world of AI with confidence. + +Join us in shaping the AI landscape of tomorrow. With xTuring, innovation knows no bounds. We are committed to supporting our users and ensuring that AI is accessible to all. diff --git a/docs/docs/overview/quickstart/data_usage.md b/docs/docs/overview/quickstart/data_usage.md index 21a1ba6..cccbce6 100644 --- a/docs/docs/overview/quickstart/data_usage.md +++ b/docs/docs/overview/quickstart/data_usage.md @@ -1,5 +1,5 @@ --- -title: 📜 Data Usage +title: 📜 Dataset Usage description: Using a an existing dataset sidebar_position: 3 --- From 954058b5cd8e69cf5ec46391e8ee3d7ec8487d08 Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 30 Aug 2023 13:27:28 +0530 Subject: [PATCH 28/36] faqs --- docs/docs/advanced/api_server.md | 4 ++-- docs/docs/faqs.md | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/docs/docs/advanced/api_server.md b/docs/docs/advanced/api_server.md index 516fcdc..55b98ce 100644 --- a/docs/docs/advanced/api_server.md +++ b/docs/docs/advanced/api_server.md @@ -1,10 +1,10 @@ --- -title: FastAPI server +title: ⚡️ FastAPI server description: FastAPI inference server sidebar_position: 3 --- -# Running Model Inference with FastAPI Server +# ⚡️ Running Model Inference with FastAPI Server After successfully fine-tuning your model, you can perform inference using a FastAPI server. The following steps guide you through launching and utilizing the API server for your fine-tuned model. diff --git a/docs/docs/faqs.md b/docs/docs/faqs.md index dad8fea..6827029 100644 --- a/docs/docs/faqs.md +++ b/docs/docs/faqs.md @@ -4,3 +4,28 @@ description: Some common issues one might have sidebar_position: 9 --- +**How to fine-tune a LLM?** + +You can refer [here](/overview/quickstart/finetune_guide) for a tutorial on how to fine-tune any model of your choice. The list of all the supported model can be found on [this page](/overview/supported_models). + +**How to load a model not there in the [supported models](/overview/supported_models)?** + +If you cannot find the model you want to use in the support models' list, then you can refer to [this guide](/advanced/anymodel) on how to load any other model of your choice with ease. + +**How to use an existing dataset for instruction fine-tuning?** + +A tutorial on this can be found [here](/overview/quickstart/data_usage), where you will see how to load Alpaca Dataset and prepare it in instruction fine-tuning format. + +**How to setup xTuring to start contributing?** + +To setup the environment ready to contribute to xTuring, you need to do an _editable install_ of the source on your machine. The steps for the same are mentioned [here](/contributing/setting_up#editable-install). + +**Which all fine-tuning memory-efficient techniques are supported by xTuring and how to use them with models not on the supported models' list?** + +Other than normal LLM fine-tuning, xTuring supports: +- Low-Rank Adaption (LoRA), +- 8-bit precision, +- LoRA with 8-bit precision and +- LoRA with 4bit precision + +techniques optimized for low-resource fine-tuning. To use any model not mentioned on the [supported models' list](/overview/suppported_models), you can refer [this page](/advanced/anymodel) to fine-tune a model of your choice with the preferred technique. \ No newline at end of file From eb42fac0c622a4c1830cfc273b38f2cc2e5d3523 Mon Sep 17 00:00:00 2001 From: Tushar Date: Fri, 1 Sep 2023 11:25:50 +0530 Subject: [PATCH 29/36] python api reference --- docs/docs/advanced/pythonapi.md | 7 -- docs/docs/contributing/pythonapi.md | 123 ++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+), 7 deletions(-) delete mode 100644 docs/docs/advanced/pythonapi.md create mode 100644 docs/docs/contributing/pythonapi.md diff --git a/docs/docs/advanced/pythonapi.md b/docs/docs/advanced/pythonapi.md deleted file mode 100644 index 9114800..0000000 --- a/docs/docs/advanced/pythonapi.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: 🐍 Python API Reference -description: Use self-instruction to generate a dataset -sidebar_position: 3 ---- - - \ No newline at end of file diff --git a/docs/docs/contributing/pythonapi.md b/docs/docs/contributing/pythonapi.md new file mode 100644 index 0000000..7d72c10 --- /dev/null +++ b/docs/docs/contributing/pythonapi.md @@ -0,0 +1,123 @@ +--- +title: 🐍 Python API +description: Developers' guide for API +sidebar_position: 4 +--- + + + +This section includes the API documentation from the Finetuner codebase, as extracted from the [docstrings](https://peps.python.org/pep-0257/) in the code. + +## `BaseModel` + +`BaseModel.load(weights_dir_or_model_name)` +> Load a model from your local machine or xTuring Hub. +> +> **Parameters**: +> - **weights_dir_or_model_name** *(str)*: Path to a local model to be load or a model from `xTuring` Hub. + + + +## `GenericModel` + +`model.finetune(dataset, logger = True)` +> Fine-tune the in-memory model on the desired dataset. +> +> **Parameters**: +> - **dataset** *(Union[TextDataset, InstructionDataset])*: The object of either of the 2 dataset classes specified in the library. If not passed, will throw an error. +> - **logger** *(Union[Logger, Iterable[Logger], bool])*: If you want to log the progress in the default logger, pass nothing explicitly. Else, you can pass your own logger. + +`model.generate(texts = None ,dataset = None, batch_size = 1)` +> Use the in-memory model to generate outputs by passing either a `dataset` as an argument or `texts` as an argument which would be a list of strings. +> +> **Parameters**: +> - **texts** *(Optional[Union[List[str], str]])*: Can be a single string or a list of strings on which you want to test your in-memory model. +> - **dataset** *(Optional[Union[TextDataset, InstructionDataset]])*: The object of either of the 2 dataset classes specified in the library. +> - **batch_size** *(Optional[int])*: For faster processing given your machine constraints, you can configure the batch size of the model. Higher the batch size, more the parallel compute, faster you will get your result. + +`model.evaluate(dataset, batch_size = 1)` +> Evaluate the in-memory model. +> +> **Parameters**: +> - **dataset** *(Optional[Union[TextDataset, InstructionDataset]])*: The object of either of the 2 dataset classes specified in the library. +> - **batch_size** *(Optional[int])*: For faster processing given your machine constraints, you can configure the batch size of the model. Higher the batch size, more the parallel compute, faster you will get your result. + +`model.save(path)` +> Save your in-memory model. +> +> **Parameters**: +> - **path** *(Union[str, Path])*: The path to the directory where you want to save your in-memory model. Can either be a string or a `Path` object (class found in _pathlib_). + + +## `InstructionDataset` + +`dataset.from_jsonl` +> Get an instruction data from a `.jsonl` file where each line is a json object with keys _text_, _instruction_ and _target_. +> +> **Parameters**: +> - **path** *(Path)*: the path to the _.jsonl_ file. Should be an object of the class `Path` from the _pathlib_. + +`InstructionDataset.generate_dataset` +> Generate your custom dataset given the HuggingFace engine. +> +> **Parameters**: +> - **path** *(str)*: a string of the path where you want to save the generated dataset. +> - **engine** *(TextGenerationAPI)*: should be an object of one of the classes mentioned in the [*model_apis*](https://github.com/stochasticai/xTuring/tree/main/src/xturing/model_apis) directory. +> - **num_instructions** *(Optinoal[int])*: a cap on the size of sample set to be generated. Helps you create a more diverse dataset. +> - **num_instructions_for_finetuning** *(Optinoal[int])*: size of the sample set to be generated. Uses up the credits from your account. _Use this number very carefully._ + + + + + \ No newline at end of file From 58654802919bce373be97e7b789764999a5013de Mon Sep 17 00:00:00 2001 From: Tushar Date: Fri, 1 Sep 2023 17:13:23 +0530 Subject: [PATCH 30/36] required changes as suggested by Roman --- docs/docs/advanced/advanced.md | 13 ++++++++++++- docs/docs/configuration/configuration.md | 4 ++++ docs/docs/contributing/_category_.json | 5 +++-- docs/docs/contributing/contributing.md | 5 +++++ docs/docs/contributing/model_contributing.md | 4 ++-- docs/docs/faqs.md | 2 +- docs/docs/overview/intro.md | 2 +- docs/docs/overview/overview.md | 6 +++++- docs/docs/overview/supported_models.md | 2 +- docs/docs/playground/UI.md | 4 ++-- docs/docs/playground/_category_.json | 3 ++- docs/docs/playground/playground.md | 5 +++++ 12 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 docs/docs/contributing/contributing.md create mode 100644 docs/docs/playground/playground.md diff --git a/docs/docs/advanced/advanced.md b/docs/docs/advanced/advanced.md index 0f062c2..1385afa 100644 --- a/docs/docs/advanced/advanced.md +++ b/docs/docs/advanced/advanced.md @@ -1 +1,12 @@ -# 🧗🏻 Advanced Topics \ No newline at end of file +--- +sidebar_position: 3 +title: 🧗🏻 Advanced Topics +description: Guide for people who want to customise xTuring even further. +--- + +import DocCardList from '@theme/DocCardList'; + + +# 🧗🏻 Advanced Topics + + \ No newline at end of file diff --git a/docs/docs/configuration/configuration.md b/docs/docs/configuration/configuration.md index 78ed3f0..4818542 100644 --- a/docs/docs/configuration/configuration.md +++ b/docs/docs/configuration/configuration.md @@ -1 +1,5 @@ +import DocCardList from '@theme/DocCardList'; + # ⚙️ Configuration + + diff --git a/docs/docs/contributing/_category_.json b/docs/docs/contributing/_category_.json index 08114ec..bc9b01c 100644 --- a/docs/docs/contributing/_category_.json +++ b/docs/docs/contributing/_category_.json @@ -1,8 +1,9 @@ { "label": "🤝 Contributing", "position": 4, - "link": { - "type": "generated-index" + "link": { + "type": "doc", + "id": "contributing" }, "collapsed": true } diff --git a/docs/docs/contributing/contributing.md b/docs/docs/contributing/contributing.md new file mode 100644 index 0000000..e8dabd5 --- /dev/null +++ b/docs/docs/contributing/contributing.md @@ -0,0 +1,5 @@ +import DocCardList from '@theme/DocCardList'; + +# 🤝 Contributing + + \ No newline at end of file diff --git a/docs/docs/contributing/model_contributing.md b/docs/docs/contributing/model_contributing.md index 28b8737..d630be6 100644 --- a/docs/docs/contributing/model_contributing.md +++ b/docs/docs/contributing/model_contributing.md @@ -62,10 +62,10 @@ my_model: ``` ### 5. Do not forget to Add tests -If our model is small enough we can add tests for our new model in the [_tests/_](https://github.com/stochasticai/xTuring/tree/main/tests/xturing) folder. We can use existing tests as a reference. If our model is too large to be included in the tests, we can add a notebook in the [_examples/_](https://github.com/stochasticai/xTuring/tree/main/examples) folder to demonstrate how to use our model. +If our model is small enough we can add tests for our new model in the [tests/](https://github.com/stochasticai/xTuring/tree/main/tests/xturing) folder. We can use existing tests as a reference. If our model is too large to be included in the tests, we can add a notebook in the [examples/](https://github.com/stochasticai/xTuring/tree/main/examples) folder to demonstrate how to use our model. ### 6. Update the documentation -We should not forget to update the documentation to include our new model and engine. We can do so by adding a new _Markdown_ file in the [_examples/_](https://github.com/stochasticai/xTuring/tree/main/examples) folder with a tutorial on how to use our model. +We should not forget to update the documentation to include our new model and engine. We can do so by adding a new _Markdown_ file in the [examples/](https://github.com/stochasticai/xTuring/tree/main/examples) folder with a tutorial on how to use our model. ### 7. At last, submit a pull request Once we have completed the above steps, we are ready to submit a pull request to the `dev` branch. For that, we should provide a clear description of our changes and why they are needed. Then the seasoned contributors will review our changes as soon as possible and provide feedback. Once our changes have been approved, they will be merged into the `dev` branch. diff --git a/docs/docs/faqs.md b/docs/docs/faqs.md index 6827029..428e5a6 100644 --- a/docs/docs/faqs.md +++ b/docs/docs/faqs.md @@ -1,5 +1,5 @@ --- -title: FAQs +title: 🤔 FAQs description: Some common issues one might have sidebar_position: 9 --- diff --git a/docs/docs/overview/intro.md b/docs/docs/overview/intro.md index e9ed300..600982e 100644 --- a/docs/docs/overview/intro.md +++ b/docs/docs/overview/intro.md @@ -107,4 +107,4 @@ The architects of xTuring hail from the innovative hub of Stochastic. Our team e **Committed to Your Success**: Our dedication doesn't end with the creation of xTuring. We're here to support you on your AI journey, ensuring that our tool empowers you to navigate the dynamic world of AI with confidence. -Join us in shaping the AI landscape of tomorrow. With xTuring, innovation knows no bounds. We are committed to supporting our users and ensuring that AI is accessible to all. +[Join us](/contributing) in shaping the AI landscape of tomorrow. With xTuring, innovation knows no bounds. We are committed to supporting our users and ensuring that AI is accessible to all. diff --git a/docs/docs/overview/overview.md b/docs/docs/overview/overview.md index f677a4a..362e470 100644 --- a/docs/docs/overview/overview.md +++ b/docs/docs/overview/overview.md @@ -1 +1,5 @@ -# 🌄 Overview \ No newline at end of file +import DocCardList from '@theme/DocCardList'; + +# 🌄 Overview + + \ No newline at end of file diff --git a/docs/docs/overview/supported_models.md b/docs/docs/overview/supported_models.md index 73780a4..2833c31 100644 --- a/docs/docs/overview/supported_models.md +++ b/docs/docs/overview/supported_models.md @@ -7,7 +7,7 @@ description: Models Supported by xTuring ## Base versions | Model | Model Key | LoRA | INT8 | LoRA + INT8 | LoRA + INT4 | -| ------ | --- | ---| --- | --- | --- | +| ------ | --- | :---: | :---: | :---: | :---: | | BLOOM 1.1B| bloom | ✅ | ✅ | ✅ | ✅ | | Cerebras 1.3B| cerebras | ✅ | ✅ | ✅ | ✅ | | DistilGPT-2 | distilgpt2 | ✅ | ✅ | ✅ | ✅ | diff --git a/docs/docs/playground/UI.md b/docs/docs/playground/UI.md index 864c791..506adbb 100644 --- a/docs/docs/playground/UI.md +++ b/docs/docs/playground/UI.md @@ -1,11 +1,11 @@ --- -title: UI +title: 👁️‍🗨️ UI description: UI Playground sidebar_position: 1 --- -# Exploring the UI Playground: A First-Person Experience +# 👁️‍🗨️ Exploring the UI Playground: A First-Person Experience To embark on an interactive journey with the xTuring UI Playground, here's your guide to installation, setup, and seamless engagement with this fascinating tool. diff --git a/docs/docs/playground/_category_.json b/docs/docs/playground/_category_.json index 20b8929..361e5f0 100644 --- a/docs/docs/playground/_category_.json +++ b/docs/docs/playground/_category_.json @@ -2,7 +2,8 @@ "label": "🎮 Playground", "position": 7, "link": { - "type": "generated-index" + "type": "doc", + "id": "playground" }, "collapsed": true } diff --git a/docs/docs/playground/playground.md b/docs/docs/playground/playground.md new file mode 100644 index 0000000..74f5ac3 --- /dev/null +++ b/docs/docs/playground/playground.md @@ -0,0 +1,5 @@ +import DocCardList from '@theme/DocCardList'; + +# Playground + + \ No newline at end of file From 6c597ce65a06d86146db58f70924e9a848de0379 Mon Sep 17 00:00:00 2001 From: Tushar Date: Fri, 1 Sep 2023 23:31:28 +0530 Subject: [PATCH 31/36] permalinks and unification of bash codes --- docs/docs/advanced/api_server.md | 2 +- docs/docs/advanced/generate.md | 10 +++--- docs/docs/contributing/how_to_contribute.md | 38 ++++++++++----------- docs/docs/contributing/pythonapi.md | 16 ++++----- docs/docs/playground/CLI.md | 4 +-- docs/docs/playground/UI.md | 2 +- 6 files changed, 36 insertions(+), 36 deletions(-) diff --git a/docs/docs/advanced/api_server.md b/docs/docs/advanced/api_server.md index 55b98ce..d615e62 100644 --- a/docs/docs/advanced/api_server.md +++ b/docs/docs/advanced/api_server.md @@ -14,7 +14,7 @@ After successfully fine-tuning your model, you can perform inference using a Fas To initiate the API server, execute the following command in your command line interface: ```sh -xturing api -m "/path/to/the/model" +$ xturing api -m "/path/to/the/model" ``` :::info diff --git a/docs/docs/advanced/generate.md b/docs/docs/advanced/generate.md index 0c41b19..945f773 100644 --- a/docs/docs/advanced/generate.md +++ b/docs/docs/advanced/generate.md @@ -184,17 +184,17 @@ First, we need to make sure that all the necessary libraries are installed on ou This rely on you having [homebrew](http://brew.sh/) installed ```bash - brew install caskroom/cask/brew-cask - brew cask install xquartz - brew install poppler antiword unrtf tesseract swig + $ brew install caskroom/cask/brew-cask + $ brew cask install xquartz + $ brew install poppler antiword unrtf tesseract swig ``` ```bash - apt-get update - apt-get install python-dev libxml2-dev libxslt1-dev antiword unrtf poppler-utils pstotext tesseract-ocr flac ffmpeg lame libmad0 libsox-fmt-mp3 sox libjpeg-dev swig + $ apt-get update + $ apt-get install python-dev libxml2-dev libxslt1-dev antiword unrtf poppler-utils pstotext tesseract-ocr flac ffmpeg lame libmad0 libsox-fmt-mp3 sox libjpeg-dev swig ``` diff --git a/docs/docs/contributing/how_to_contribute.md b/docs/docs/contributing/how_to_contribute.md index 67aa2a2..f8de796 100644 --- a/docs/docs/contributing/how_to_contribute.md +++ b/docs/docs/contributing/how_to_contribute.md @@ -48,25 +48,25 @@ You'll need Python 3.8 or above to contribute to __`xTuring`__. To start contrib 2. Clone your forked repository to your local machine, and add the base repository as a remote. ```bash - git clone https://github.com//xTuring.git - cd xTuring - git remote add upstream https://github.com/stochastic/xTuring.git + $ git clone https://github.com//xTuring.git + $ cd xTuring + $ git remote add upstream https://github.com/stochastic/xTuring.git ``` 3. Create a new branch for your changes emerging from the `dev` branch. ```bash - git checkout dev - git checkout -b a-descriptive-name-for-your-changes + $ git checkout dev + $ git checkout -b a-descriptive-name-for-your-changes ``` 🚨 **Do not** checkout from the _main_ branch or work on it. 4. Make sure you have pre-commit hooks installed and set up to ensure your code is properly formatted before being pushed to _git_. ```bash - pip install pre-commit - pre-commit install - pre-commit install --hook-type commit-msg + $ pip install pre-commit + $ pre-commit install + $ pre-commit install --hook-type commit-msg ``` 5. Set up a development environment by running the following command in a virtual environment: @@ -74,7 +74,7 @@ You'll need Python 3.8 or above to contribute to __`xTuring`__. To start contrib Here are the guides to setting up [virtual environment](https://www.freecodecamp.org/news/how-to-setup-virtual-environments-in-python/) and [conda environment](https://conda.io/projects/conda/en/latest/user-guide/getting-started.html). ```bash - pip install -e . + $ pip install -e . ``` If `xTuring` is already installed in your virtual environment, remove it with _pip uninstall xturing_ before reinstlling it in editable mode with the _-e_ flag. @@ -84,27 +84,27 @@ You'll need Python 3.8 or above to contribute to __`xTuring`__. To start contrib 6. Develop features on your branch As you work on your code, you should make sure the test suite passes. Run all the tests to make sure nothing breaks once your code is pushed to GitHub using the following command: ```bash - pytest tests/ + $ pytest tests/ ``` Once you are satisified with your changes and all the tests pass, add changed files with _git add_ and record your changes with _git commit_: ```bash - git add - git commit -m "" + $ git add + $ git commit -m "" ``` Make sure to write __good commit messages__ to clearly communicate the changes you made! Before pushing the code to GitHub and making a PR, ensure you have your copy of code up-to-date with the main repository. To do so, rebase your branch on _upstream/branch_: ```bash - git fetch upstream - git rebase upstream/dev + $ git fetch upstream + $ git rebase upstream/dev ``` 7. Push your changes to your forked repository ```bash - git push -u origin a-descriptive-name-for-your-changes + $ git push -u origin a-descriptive-name-for-your-changes ``` 8. Now, you can go your fork of the repository on GitHub and click on __[Pull Request](https://github.com/stochasticai/xTuring/compare)__ to open a pull request to the __dev__ branch of the original repository with a clear description of your changes and why they are needed. We will review your changes as soon as possible and provide feedback. Once your changes have been approved, they will be merged into the _dev_ branch. @@ -122,8 +122,8 @@ To prevent triggering notifications and adding reference notes to each upstream 2. In cases where a pull request is genuinely required, follow these steps once you've switched to your branch: ```bash - git checkout -b your-branch-for-syncing - git pull --squash --no-commit upstream dev - git commit -m '' - git push --set-upstream origin your-branch-for-syncing + $ git checkout -b your-branch-for-syncing + $ git pull --squash --no-commit upstream dev + $ git commit -m '' + $ git push --set-upstream origin your-branch-for-syncing ``` \ No newline at end of file diff --git a/docs/docs/contributing/pythonapi.md b/docs/docs/contributing/pythonapi.md index 7d72c10..ea993f9 100644 --- a/docs/docs/contributing/pythonapi.md +++ b/docs/docs/contributing/pythonapi.md @@ -15,7 +15,7 @@ This section includes the API documentation from the Finetuner codebase, as extr Load a model from your local machine or xTuring Hub. --> -`BaseModel.load(weights_dir_or_model_name)` +[`BaseModel.load(weights_dir_or_model_name)`](https://github.com/stochasticai/xTuring/blob/9b98c68af8391c7a0f48a141178b70a1a8e47c06/src/xturing/models/base.py#L15) > Load a model from your local machine or xTuring Hub. > > **Parameters**: @@ -25,16 +25,16 @@ This section includes the API documentation from the Finetuner codebase, as extr | --------- | ----------- | |`BaseModel.load` | Load a model from your local machine or xTuring Hub. | --> -## `GenericModel` +## `CausalModel` -`model.finetune(dataset, logger = True)` +[`model.finetune(dataset, logger = True)`](https://github.com/stochasticai/xTuring/blob/9b98c68af8391c7a0f48a141178b70a1a8e47c06/src/xturing/models/causal.py#L116) > Fine-tune the in-memory model on the desired dataset. > > **Parameters**: > - **dataset** *(Union[TextDataset, InstructionDataset])*: The object of either of the 2 dataset classes specified in the library. If not passed, will throw an error. > - **logger** *(Union[Logger, Iterable[Logger], bool])*: If you want to log the progress in the default logger, pass nothing explicitly. Else, you can pass your own logger. -`model.generate(texts = None ,dataset = None, batch_size = 1)` +[`model.generate(texts = None ,dataset = None, batch_size = 1)`](https://github.com/stochasticai/xTuring/blob/9b98c68af8391c7a0f48a141178b70a1a8e47c06/src/xturing/models/causal.py#L158) > Use the in-memory model to generate outputs by passing either a `dataset` as an argument or `texts` as an argument which would be a list of strings. > > **Parameters**: @@ -42,14 +42,14 @@ This section includes the API documentation from the Finetuner codebase, as extr > - **dataset** *(Optional[Union[TextDataset, InstructionDataset]])*: The object of either of the 2 dataset classes specified in the library. > - **batch_size** *(Optional[int])*: For faster processing given your machine constraints, you can configure the batch size of the model. Higher the batch size, more the parallel compute, faster you will get your result. -`model.evaluate(dataset, batch_size = 1)` +[`model.evaluate(dataset, batch_size = 1)`](https://github.com/stochasticai/xTuring/blob/9b98c68af8391c7a0f48a141178b70a1a8e47c06/src/xturing/models/causal.py#L312) > Evaluate the in-memory model. > > **Parameters**: > - **dataset** *(Optional[Union[TextDataset, InstructionDataset]])*: The object of either of the 2 dataset classes specified in the library. > - **batch_size** *(Optional[int])*: For faster processing given your machine constraints, you can configure the batch size of the model. Higher the batch size, more the parallel compute, faster you will get your result. -`model.save(path)` +[`model.save(path)`](https://github.com/stochasticai/xTuring/blob/9b98c68af8391c7a0f48a141178b70a1a8e47c06/src/xturing/models/causal.py#L212) > Save your in-memory model. > > **Parameters**: @@ -58,13 +58,13 @@ This section includes the API documentation from the Finetuner codebase, as extr ## `InstructionDataset` -`dataset.from_jsonl` +[`dataset.from_jsonl`](https://github.com/stochasticai/xTuring/blob/9b98c68af8391c7a0f48a141178b70a1a8e47c06/src/xturing/datasets/instruction_dataset.py#L80) > Get an instruction data from a `.jsonl` file where each line is a json object with keys _text_, _instruction_ and _target_. > > **Parameters**: > - **path** *(Path)*: the path to the _.jsonl_ file. Should be an object of the class `Path` from the _pathlib_. -`InstructionDataset.generate_dataset` +[`InstructionDataset.generate_dataset`](https://github.com/stochasticai/xTuring/blob/9b98c68af8391c7a0f48a141178b70a1a8e47c06/src/xturing/datasets/instruction_dataset.py#L127) > Generate your custom dataset given the HuggingFace engine. > > **Parameters**: diff --git a/docs/docs/playground/CLI.md b/docs/docs/playground/CLI.md index 1c4a15d..7249832 100644 --- a/docs/docs/playground/CLI.md +++ b/docs/docs/playground/CLI.md @@ -13,7 +13,7 @@ Ensure that you have the most recent version of xTuring installed by executing t ```sh -pip install xturing --upgrade +$ pip install xturing --upgrade ``` @@ -23,7 +23,7 @@ Get ready to dive into an immersive chat experience powered by xTuring. Simply i ```sh -xturing chat -m "/path/to/the/model" +$ xturing chat -m "/path/to/the/model" ``` diff --git a/docs/docs/playground/UI.md b/docs/docs/playground/UI.md index 506adbb..853468b 100644 --- a/docs/docs/playground/UI.md +++ b/docs/docs/playground/UI.md @@ -15,7 +15,7 @@ To embark on an interactive journey with the xTuring UI Playground, here's your Begin by guaranteeing that you're equipped with the most up-to-date xTuring version. Execute the subsequent command to ensure the latest update: ```sh -pip install xturing --upgrade +$ pip install xturing --upgrade ``` ![Playground UI Demo](/img/playground/ui-playground.gif) From 5fadbac331b1e116af325e319b1e0721f8161b40 Mon Sep 17 00:00:00 2001 From: Tushar Date: Tue, 5 Sep 2023 19:58:23 +0530 Subject: [PATCH 32/36] simplified language in intro --- docs/docs/overview/intro.md | 56 +++++++++++-------------------------- 1 file changed, 17 insertions(+), 39 deletions(-) diff --git a/docs/docs/overview/intro.md b/docs/docs/overview/intro.md index 600982e..bb74aeb 100644 --- a/docs/docs/overview/intro.md +++ b/docs/docs/overview/intro.md @@ -29,39 +29,27 @@ pip install xturing **Welcome to xTuring: Personalize AI Your Way** -In the realm of AI, personalization is the key to unlocking its true potential. Enter xTuring — an open-source AI personalization software that empowers you to shape and command Large Language Models (LLMs) with unparalleled ease. With a simple interface designed for personalizing LLMs to your unique data and applications, xTuring puts the reins of AI personalization firmly in your hands. +In the world of AI, personalization is incredibly important for making AI truly powerful. This is where xTuring comes in – it's a special open-source software that helps you make AI models, called Large Language Models (LLMs), work exactly the way you want them to. - +What's great about xTuring is that it's super easy to use. It has a simple interface that's designed to help you customize LLMs for your specific needs, whether it's for your own data or applications. Basically, xTuring gives you complete control over personalizing AI, making it work just the way you need it to. ## The xTuring Advantage -At xTuring, we prioritize three core principles that drive every facet of our software: - -1. **Simplicity and Productivity**: xTuring is engineered to simplify complex AI tasks, making them accessible to both newcomers and seasoned developers. Productivity thrives in our intuitive interface. - -2. **Efficiency of Compute and Memory**: We understand that time and resources are valuable. xTuring optimizes both compute and memory, ensuring your AI projects run smoothly and efficiently. - -3. **Agility and Customizability**: In the ever-evolving AI landscape, flexibility matters. xTuring empowers you to customize and adapt LLMs to your specific needs, fostering agility and innovation. - - +At xTuring, we have three important principles that guide everything we do: -As you dive into the world of xTuring, think of it as your personal AI atelier. From enhancing pre-trained models' performance to crafting high-quality embeddings for diverse applications, xTuring stands ready to be your AI partner. +1. **Simplicity and Productivity**: We want to make AI tasks easy to understand and do. Whether you're new to AI or an experienced developer, xTuring is designed to be simple and user-friendly. It helps you get things done efficiently. -Ready for AI with a personal touch? Welcome to **xTuring** — a journey of innovation, simplicity, and boundless possibilities. It's time to unleash the true potential of AI, tailored to your vision. +2. **Efficiency of Compute and Memory**: We know that time and resources are precious. xTuring is built to make the most of your computer's power and memory. This means your AI projects will run smoothly and won't use up too much of your computer's resources. -You can quickly get started with xTuring by following the [Quickstart](/overview/quickstart) guide or use one of the examples below. +3. **Agility and Customizability**: AI is always changing and evolving. That's why xTuring allows you to change and customize AI models to fit your needs. This helps you stay flexible and creative in the world of AI. - - -## Models' Examples +## Model Examples | Model | Examples | | --- | --- | @@ -80,31 +68,21 @@ xTuring is licensed under [Apache 2.0](https://github.com/stochasticai/xturing/b ## Support 💬 Join our [Discord community](https://discord.gg/YxHuQq8b) and chat with other community members about ideas. - 🕊️ Follow us on Twitter [@stochasticai](https://twitter.com/stochasticai). ## About the team - -**Meet the Minds Behind xTuring: Crafting AI Possibilities** +**Meet the Team Behind xTuring: Making AI Simple and Accessible** -The architects of xTuring hail from the innovative hub of Stochastic. Our team embodies a shared vision: to redefine AI's landscape, making it accessible to all. With a deep commitment to innovation and inclusion, we're shaping the future of AI—one line of code at a time. +The people who created xTuring come from a place called Stochastic, where lots of smart and creative minds work together. We all share a big idea: we want to change the way AI works so that everyone can use it. -**United by Expertise**: From researchers to engineers, each team member brings a unique blend of skills to the table. Our collective expertise spans machine learning, computing, and AI application, forming the foundation of xTuring's brilliance. +**Experts Working Together**: Our team is made up of different kinds of experts, like researchers and engineers. Each person has special skills in things like machines that learn, computers, and using AI in real life. These skills are what make xTuring so amazing. -**Boundless Innovation**: At Stochastic, we're driven by the pursuit of making AI simpler, smarter, and more impactful. Our global team—collaborating seamlessly across geographical borders—imbues xTuring with a diverse spectrum of insights and ideas. +**Always Thinking of New Ideas**: We're always thinking about how to make AI easier to use and more helpful. Our team is spread out all over the world, but we work together really well. This means xTuring has lots of cool ideas from people everywhere. -**Crafting Simplicity**: In a world of complexity, we prioritize simplicity. xTuring's user-friendly interface and powerful capabilities reflect this commitment, ensuring that AI's potential is within reach for everyone. +**Keeping Things Simple**: Even though AI can be very complicated, we believe it should be easy for everyone to use. That's why xTuring is simple to understand and can do powerful things. We want everyone to be able to use AI and make it work for them. -**Committed to Your Success**: Our dedication doesn't end with the creation of xTuring. We're here to support you on your AI journey, ensuring that our tool empowers you to navigate the dynamic world of AI with confidence. +**Here to Help You Succeed**: Our job doesn't stop with making xTuring. We're here to help you learn and use AI in the best way possible. We want you to feel confident using our tool in the fast-changing world of AI. -[Join us](/contributing) in shaping the AI landscape of tomorrow. With xTuring, innovation knows no bounds. We are committed to supporting our users and ensuring that AI is accessible to all. +[Come Work with Us](/contributing) and be part of the future of AI with xTuring. We're all about new ideas and making AI better for everyone. We're here to help you every step of the way. \ No newline at end of file From 18063ba76fde4e5e4a53edc5e53adad7c49ca91e Mon Sep 17 00:00:00 2001 From: Tushar Date: Tue, 5 Sep 2023 20:04:20 +0530 Subject: [PATCH 33/36] installation tab unification --- docs/docs/overview/installation.md | 71 +++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 5 deletions(-) diff --git a/docs/docs/overview/installation.md b/docs/docs/overview/installation.md index 3ae1111..2919bb5 100644 --- a/docs/docs/overview/installation.md +++ b/docs/docs/overview/installation.md @@ -28,6 +28,21 @@ Activate the virtual environment. ```bash $ source venv/bin/activate ``` +Once the virtual environment is activated, we can now install `xTuring` library by running the following command on your terminal: + +```bash +$ pip install xTuring +``` +This will install the latest version of xTuring available on pip. +Finally, we can test if `xTuring` has been properly installed by running the following commands on our terminal: +```bash +$ python +>>> from xturing.models import BaseModel +>>> model = BaseModel.create('opt') +>>> outputs = model.generate(texts=['Hi How are you?']) +``` +Then print the outputs variable to see what the LLM generated based on the input prompt. + @@ -36,10 +51,25 @@ $ source venv/bin/activate > venv\Scripts\Activate ``` +Once the virtual environment is activated, we can now install `xTuring` library by running the following command on your terminal: + +```bash +> pip install xTuring +``` +This will install the latest version of xTuring available on pip. +Finally, we can test if `xTuring` has been properly installed by running the following commands on our terminal: +```bash +> python +>>> from xturing.models import BaseModel +>>> model = BaseModel.create('opt') +>>> outputs = model.generate(texts=['Hi How are you?']) +``` +Then print the outputs variable to see what the LLM generated based on the input prompt. + + -Once the virtual environment is activated, we can now install `xTuring` library by running the following command on your terminal: @@ -55,6 +85,23 @@ Activate the conda environment. $ conda activate venv ``` + +Once the conda environment is activated, we can now install `xTuring` library by running the following command on your terminal: + +```bash +$ pip install xTuring +``` +This will install the latest version of xTuring available on pip. +Finally, we can test if `xTuring` has been properly installed by running the following commands on our terminal: +```bash +$ python +>>> from xturing.models import BaseModel +>>> model = BaseModel.create('opt') +>>> outputs = model.generate(texts=['Hi How are you?']) +``` +Then print the outputs variable to see what the LLM generated based on the input prompt. + + @@ -62,17 +109,31 @@ $ conda activate venv > conda activate venv ``` - - Once the conda environment is activated, we can now install `xTuring` library by running the following command on your terminal: +```bash +> pip install xTuring +``` +This will install the latest version of xTuring available on pip. +Finally, we can test if `xTuring` has been properly installed by running the following commands on our terminal: +```bash +> python +>>> from xturing.models import BaseModel +>>> model = BaseModel.create('opt') +>>> outputs = model.generate(texts=['Hi How are you?']) +``` +Then print the outputs variable to see what the LLM generated based on the input prompt. + + + + -```bash + From e5386d5610c59791e59a22f54ab8e15496970068 Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 6 Sep 2023 02:00:25 +0530 Subject: [PATCH 34/36] headings --- docs/docs/advanced/advanced.md | 2 +- docs/docs/advanced/anymodel.md | 2 +- docs/docs/advanced/api_server.md | 4 ++-- docs/docs/configuration/finetune_configure.md | 2 +- docs/docs/contributing/how_to_contribute.md | 4 ++-- docs/docs/contributing/model_contributing.md | 6 +++--- docs/docs/contributing/setting_up.md | 2 +- docs/docs/overview/intro.md | 6 +++--- docs/docs/overview/quickstart/data_usage.md | 8 ++++---- docs/docs/overview/quickstart/finetune_guide.md | 2 +- docs/docs/overview/quickstart/prepare.md | 2 +- docs/docs/overview/quickstart/quickstart.md | 2 +- docs/docs/overview/supported_models.md | 2 +- docs/docs/playground/CLI.md | 8 ++++---- docs/docs/playground/UI.md | 14 +++++++------- 15 files changed, 33 insertions(+), 33 deletions(-) diff --git a/docs/docs/advanced/advanced.md b/docs/docs/advanced/advanced.md index 1385afa..ce1490a 100644 --- a/docs/docs/advanced/advanced.md +++ b/docs/docs/advanced/advanced.md @@ -1,6 +1,6 @@ --- sidebar_position: 3 -title: 🧗🏻 Advanced Topics +title: 🧗🏻 Advanced topics description: Guide for people who want to customise xTuring even further. --- diff --git a/docs/docs/advanced/anymodel.md b/docs/docs/advanced/anymodel.md index c4e9b16..e85bfbc 100644 --- a/docs/docs/advanced/anymodel.md +++ b/docs/docs/advanced/anymodel.md @@ -1,5 +1,5 @@ --- -title: 🌦️ Work with Any Model +title: 🌦️ Work with any model description: Use self-instruction to generate a dataset sidebar_position: 2 --- diff --git a/docs/docs/advanced/api_server.md b/docs/docs/advanced/api_server.md index d615e62..5de413d 100644 --- a/docs/docs/advanced/api_server.md +++ b/docs/docs/advanced/api_server.md @@ -4,7 +4,7 @@ description: FastAPI inference server sidebar_position: 3 --- -# ⚡️ Running Model Inference with FastAPI Server +# ⚡️ Running model inference with FastAPI Ssrver After successfully fine-tuning your model, you can perform inference using a FastAPI server. The following steps guide you through launching and utilizing the API server for your fine-tuned model. @@ -21,7 +21,7 @@ $ xturing api -m "/path/to/the/model" Ensure that the model path you provide is a directory containing a valid xturing.json configuration file. ::: -### 2. Health Check API +### 2. Health check API - ### Request diff --git a/docs/docs/configuration/finetune_configure.md b/docs/docs/configuration/finetune_configure.md index da17466..6f91dbf 100644 --- a/docs/docs/configuration/finetune_configure.md +++ b/docs/docs/configuration/finetune_configure.md @@ -41,7 +41,7 @@ finetuning_config.weight_decay = 0.01 finetuning_config.optimizer_name = "adamw" finetuning_config.output_dir = "training_dir/" ``` -### Start the finetuning +### Start the fine-tuning Now, we can run tune-up the model on our dataset to see how our set configuration works. ```python diff --git a/docs/docs/contributing/how_to_contribute.md b/docs/docs/contributing/how_to_contribute.md index f8de796..ce09598 100644 --- a/docs/docs/contributing/how_to_contribute.md +++ b/docs/docs/contributing/how_to_contribute.md @@ -1,5 +1,5 @@ --- -title: ❓How to contribute to xTuring❓ +title: How to contribute to xTuring? description: How to contribute to xTuring? sidebar_position: 2 --- @@ -36,7 +36,7 @@ Maintaining code is an important part of open-source development. By helping wit As an open-source project, xTuring relies on documentation to help users understand how to use the library. If you have a talent for technical writing, we welcome your contributions to our documentation. -## Create a Pull Request +## Create a pull request Before you make a PR, make sure to search through existing PRs and issues to make sure nobody else is already working on it. If unsure, it is best to open an issue to get some feedback. In order to start and meet less hurdles on the way, it would be a good idea to be have _git_ proficiency to contribute to `xTuring`. If you get stuck somewhere, type _git --help_ in a shell and find your command! diff --git a/docs/docs/contributing/model_contributing.md b/docs/docs/contributing/model_contributing.md index d630be6..a64e779 100644 --- a/docs/docs/contributing/model_contributing.md +++ b/docs/docs/contributing/model_contributing.md @@ -43,7 +43,7 @@ class MyModel(CausalModel): ### 3. Then, update the model and engine registries We have to add our new model to the [`model`](https://github.com/stochasticai/xTuring/blob/main/src/xturing/models/__init__.py) and [`engine`](https://github.com/stochasticai/xTuring/blob/main/src/xturing/engines/__init__.py) registries in `xturing.{models|engines}.__init__.py`. This will allow users to create instances of your model using the `BaseModel.create('')` method. -### 4. Alongside, Update the config files +### 4. Alongside, update the config files In the `config` folder, we need to add our new model key and their respective hyperparameters to be run by default in `finetuning_config.yaml` and `generation_config.yaml` files. ```yaml # finetuning_config.yaml @@ -61,7 +61,7 @@ my_model: ``` -### 5. Do not forget to Add tests +### 5. Do not forget to add tests If our model is small enough we can add tests for our new model in the [tests/](https://github.com/stochasticai/xTuring/tree/main/tests/xturing) folder. We can use existing tests as a reference. If our model is too large to be included in the tests, we can add a notebook in the [examples/](https://github.com/stochasticai/xTuring/tree/main/examples) folder to demonstrate how to use our model. ### 6. Update the documentation @@ -91,7 +91,7 @@ class MyLoraEngine(CausalLoraEngine): The `target_modules` parameter is the list of identifiers used to denote attention layers of your model. For example, for *GPTJ* model, the attention layers are denoted with `q_proj` and `v_proj`. -### 2. Next, Create a new model +### 2. Next, create a new model Analogous to the steps above, create a new model in the `models` folder. The new model should inherit from the `CausalLoraModel` base class. We can use the [`gptj.py`](https://github.com/stochasticai/xTuring/blob/main/src/xturing/models/gptj.py) file as a reference. ```python from xturing.models.causal import CausalLoraModel diff --git a/docs/docs/contributing/setting_up.md b/docs/docs/contributing/setting_up.md index 24b4610..22903a9 100644 --- a/docs/docs/contributing/setting_up.md +++ b/docs/docs/contributing/setting_up.md @@ -1,5 +1,5 @@ --- -title: 🍽️ Setting Up +title: 🍽️ Setting up description: Setup xTuring for contribution sidebar_position: 1 --- diff --git a/docs/docs/overview/intro.md b/docs/docs/overview/intro.md index bb74aeb..bfac097 100644 --- a/docs/docs/overview/intro.md +++ b/docs/docs/overview/intro.md @@ -27,13 +27,13 @@ pip install xturing --> -**Welcome to xTuring: Personalize AI Your Way** +**Welcome to xTuring: Personalize AI your way** In the world of AI, personalization is incredibly important for making AI truly powerful. This is where xTuring comes in – it's a special open-source software that helps you make AI models, called Large Language Models (LLMs), work exactly the way you want them to. What's great about xTuring is that it's super easy to use. It has a simple interface that's designed to help you customize LLMs for your specific needs, whether it's for your own data or applications. Basically, xTuring gives you complete control over personalizing AI, making it work just the way you need it to. -## The xTuring Advantage +## The xTuring advantage At xTuring, we have three important principles that guide everything we do: @@ -49,7 +49,7 @@ So, if you're ready to add a personal touch to AI, welcome to xTuring. It's a jo To get started with xTuring, check out the [Quickstart](/overview/quickstart) guide or try some of the examples below. -## Model Examples +## Model examples | Model | Examples | | --- | --- | diff --git a/docs/docs/overview/quickstart/data_usage.md b/docs/docs/overview/quickstart/data_usage.md index cccbce6..294596a 100644 --- a/docs/docs/overview/quickstart/data_usage.md +++ b/docs/docs/overview/quickstart/data_usage.md @@ -1,5 +1,5 @@ --- -title: 📜 Dataset Usage +title: 📜 Use datasets description: Using a an existing dataset sidebar_position: 3 --- @@ -21,7 +21,7 @@ By following these steps, we ensure that the chosen dataset is transformed into We know __what__ all we need to do to make format the dataset, below is the __how__ behind it! -## Instruction Dataset Format +## Instruction dataset format For this tutorial we will need to prepare a dataset which contains 3 columns (instruction, text, target) for instruction fine-tuning or 2 columns (text, target) for text fine-tuning. Here, we will see how to convert Alpaca dataset to be used for instruction fine-tuning. Before starting, make sure you have downloaded the [Alpaca dataset](https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json) in your working directory. @@ -54,7 +54,7 @@ dataset.save_to_disk(str("./alpaca_data")) ``` -### Load the prepared Dataset +### Load the prepared dataset After preparing the dataset in correct format, you can use this dataset for the instruction fine-tuning. @@ -66,6 +66,6 @@ from xturing.datasets.instruction_dataset import InstructionDataset instruction_dataset = InstructionDataset('/path/to/instruction_converted_alpaca_dataset') ``` -## Text Dataset Format +## Text dataset format The datasets that we find on the internet are formatted in a way which is accepted by the `xTuring`'s `TextDataset` class, so we need not worry text fine-tuning and just use those datasets as is. \ No newline at end of file diff --git a/docs/docs/overview/quickstart/finetune_guide.md b/docs/docs/overview/quickstart/finetune_guide.md index 1f6768d..f5a4b62 100644 --- a/docs/docs/overview/quickstart/finetune_guide.md +++ b/docs/docs/overview/quickstart/finetune_guide.md @@ -1,5 +1,5 @@ --- -title: 🔧 Fine-tune Pre-trained Models +title: 🔧 Fine-tune pre-trained models description: Fine-tuning with xTuring sidebar_position: 4 --- diff --git a/docs/docs/overview/quickstart/prepare.md b/docs/docs/overview/quickstart/prepare.md index 8e79b1d..91c6356 100644 --- a/docs/docs/overview/quickstart/prepare.md +++ b/docs/docs/overview/quickstart/prepare.md @@ -1,5 +1,5 @@ --- -title: 💽 Prepare and Save Dataset +title: 💽 Prepare and save dataset description: Use self-instruction to generate a dataset sidebar_position: 2 --- diff --git a/docs/docs/overview/quickstart/quickstart.md b/docs/docs/overview/quickstart/quickstart.md index 3ecfc8c..33676b4 100644 --- a/docs/docs/overview/quickstart/quickstart.md +++ b/docs/docs/overview/quickstart/quickstart.md @@ -1,6 +1,6 @@ --- sidebar_position: 2 -title: 🚀 QuickStart +title: 🚀 Quickstart description: Your first fine-tuning job with xTuring --- diff --git a/docs/docs/overview/supported_models.md b/docs/docs/overview/supported_models.md index 2833c31..02932dd 100644 --- a/docs/docs/overview/supported_models.md +++ b/docs/docs/overview/supported_models.md @@ -1,6 +1,6 @@ --- sidebar_position: 4 -title: 🦾 Supported Models +title: 🦾 Supported models description: Models Supported by xTuring --- diff --git a/docs/docs/playground/CLI.md b/docs/docs/playground/CLI.md index 7249832..0de8386 100644 --- a/docs/docs/playground/CLI.md +++ b/docs/docs/playground/CLI.md @@ -4,10 +4,10 @@ description: CLI Playground sidebar_position: 2 --- -# 🧑🏻‍💻 CLI Playground: Engage with the Power of xTuring +# 🧑🏻‍💻 CLI playground: Engage with the power of xTuring To harness the capabilities of xTuring's CLI playground, follow these steps to install and utilize the tool effectively. -### Prerequisites: Installing the Latest xTuring Version +### Prerequisites: installing the latest xTuring version Ensure that you have the most recent version of xTuring installed by executing the following command: @@ -17,7 +17,7 @@ $ pip install xturing --upgrade ``` -### 1. Launching the Playground +### 1. Launching the playground Get ready to dive into an immersive chat experience powered by xTuring. Simply initiate the playground by executing the subsequent command in your command-line interface: @@ -28,7 +28,7 @@ $ xturing chat -m "/path/to/the/model" -### 2. Engage in a Dynamic Chat +### 2. Engage in a dynamic chat Once the model is successfully loaded, you'll be prompted to provide your input. Unleash your creativity and curiosity as you interact with the model through the CLI playground. diff --git a/docs/docs/playground/UI.md b/docs/docs/playground/UI.md index 853468b..7ca55bc 100644 --- a/docs/docs/playground/UI.md +++ b/docs/docs/playground/UI.md @@ -5,11 +5,11 @@ sidebar_position: 1 --- -# 👁️‍🗨️ Exploring the UI Playground: A First-Person Experience +# 👁️‍🗨️ Exploring the UI playground: a first-person experience To embark on an interactive journey with the xTuring UI Playground, here's your guide to installation, setup, and seamless engagement with this fascinating tool. -### Prerequisites: Ensuring the Latest xTuring Version +### Prerequisites: Ensuring the latest xTuring version Begin by guaranteeing that you're equipped with the most up-to-date xTuring version. Execute the subsequent command to ensure the latest update: @@ -21,7 +21,7 @@ $ pip install xturing --upgrade ![Playground UI Demo](/img/playground/ui-playground.gif) -### 1. Launching the Playground Interface +### 1. Launching the playground Interface To immerse yourself in the world of the UI Playground, you have two equally effective methods: @@ -29,7 +29,7 @@ To immerse yourself in the world of the UI Playground, you have two equally effe Execute the command xturing ui in your terminal to launch the UI Playground. -#### Option 2: Integration in a Script +#### Option 2: Integration in a script Alternatively, in a Python script, you can utilize the following code snippet to launch the Playground interface: @@ -55,11 +55,11 @@ Load your desired model effortlessly using one of two methods: -#### Method 1: Path Specification (Step 1) +#### Method 1: Path specification (step 1) During the launch process, provide the model path in Step 1 to initiate model loading. -#### Method 2: Input Field (Load Model Section) +#### Method 2: Input field (load model section) Alternatively, you can input the model path directly in the provided field within the UI Playground interface. @@ -78,7 +78,7 @@ Ensure that the model path points to a directory containing a valid `xturing.jso With the loaded model at your fingertips, enter prompts and initiate engaging conversations with the AI. To start anew, use the "Clear Chat" button for a fresh chat session. -### 4. Tweaking Model Behavior +### 4. Tweaking model behavior From b3266b92b45dac9f79876a8c612670b76df9a854 Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 6 Sep 2023 21:28:44 +0530 Subject: [PATCH 35/36] logo change --- docs/static/img/favicon.ico | Bin 1764 -> 3774 bytes docs/static/img/stochastic_minimal.svg | 687 ++++++++++++++++++++++++- 2 files changed, 676 insertions(+), 11 deletions(-) diff --git a/docs/static/img/favicon.ico b/docs/static/img/favicon.ico index 9f467642cbc2f2db363c1ddc58027605cbbec625..8c2d447d1aa42fe5909f2e618da9ec11191b559c 100644 GIT binary patch literal 3774 zcmb7{32c*P7{}jkj0uQaxD0_XNDLA+Ix(UW1dW;)jS-C|hHG3CX6l!T}OB{&q3;_P>H-Clq1_qC;+l%wQfrQ5z=p7;NM{?CgL z4*rZDEBJe?XuL;=5kiOw)M)A%N_}p<_}-nq^oj#Quh>WJAF5aE&DSe;|E5@e}}ir zsLdZ^__hh7Zru%^bE^-v(h{MSlsh!9`ytI+Tn6tN{Yky@J*ig}SvN!t;QY-&J>J{%tc)Q^3 zkT!2KybY4Rq*1@hG#m0hHXD~cYc?(JXErTK$~3)IBIx!}H3Nd~>Nhk`#aHmc^d~t} zsaw2#@b=K(t}e8@VAK@!7=C!Q`S8{%o-`ZYm1g78zu_G=n{&sTN8S=<%Yp=Mu()0X ziyKpduDZvAE`I~OAZIDH(o$*j4#7J>fBVAlzJT`{+KorMJ!tobQM(@A8fn(AjPRC7 zvw4v;TNeHlYMq-GYMVVY)S4qgZL=(Hu()9eRRFJ({v>BAZC(jH7yT*T{&Vow!W*u< zYSe6|wx*)pWO!|8r<)Bc=xw<)o8E!Rsann zylQwAu;6*!$KgD!l^^IwkI8Vc&*=;9G6&jaqn!_47uqRKwEp7#6Y#w7!gxgnJ@8^) zv9!CwSsp^O`TeJhNE2(+FiE264g%e4l1wU&AmU9 zE35VD!eRJRFn`H#*5`2WxdH5ew%^G!Mo~v#uyp!;HZLdVi06Y#=)c$fM2B)pwIaj%oIOmG>EA={sS878xk2$wD=&~MY4{V((5`XmAher>S5Bc_Pm($R2TmC^hT{ImUDNBL+=J0>9y{SQ z+Vx()Yew&W>aMxrD)ZnWS02QlQ{Wwer>i-K$1Ei5^KPDhoO+4suUPRf@=JuO$dd8{ zW7w~SXxE8$(VYM*;qG?<-eq`^Tv^!n{&1G(FQbMiPG43$SM6~6OF_Fy{6C=y?KI9Z zx)YM!{i1Wuj+=Rq=ikTIn{wirMy0*O@#FxsdlTN*Xx9_j3EVZKcR!UY*4@v*D<9#N zX|Vc*+GfT-?zZ0>{w?I?Ms?r37wz)d3FqQ=g1T$=!21qw=D-`w{8{_&wgE|gQ0;JX z+CfG?Mn<=jV+K1R0IwL{IHQ4lYgw4&w-Y~>9R&d?rUk+xBVdTszaIE7dt?iQIM ziz?_4qTsv`S%wf9Vc|@rM3{%Coz_!*Fk$Ay1iBsIYvG-YOp{Msv-Wmhl1|@#q_gL{6U156gcx;$Jo;f)P zI*pzh9lwi}hJXlQO@46yr;dha9Zf&&DlsR)Y!(5DjvQ?o!1m` zpN&{26bKIH;b$)L415xO4^WoWT;KE2Hp3@b!s#hCzEi>k)c6S|{8>eW3Ki#A8q{8|eGuc|gVokGvMQY%+#N_S!{!CXg12m8LehycUK6O2Uk z`GH4!57Qjzp^xJlh{jnuIGk%`?jGhpQeW|b#TC#`&Eu?SSKInf*mjvwHE z0eL`7h_-`zCoXW{9v3?BG-`5=Lrw}UwC=r$TY&U>sI&-y^>rf@`wp++@lFCDuS8QH zK0uc7I?#MrsO}0DnaME(ka|MKu1SN3bYYC;w#2$vlX-(It@*|xuy%A500@{Pn1?#m z_63c}F_v1*nX)r^aO{*c1jO=11X8`e9PzLK@*XckJmh`a1?RkH?UBZ(|D|P&mYNai zb^yd6WI}W5&Sc3{h}r~z{~_XOnhCtPF&tU~fdw^{>wrQpR_0`rS6N!Nw4U$}zfJpO zl8|K$IC|Ud{r$xCI-*qC4CJhyq!>es0IuJEk;cliIQ1q()mDQT_Z>a3sy5n5xz)!S zUzz4&ahbE>4C;jmEIJTwZ9I)J*#)j83M@?*T)c#&atzv?K(-n^u)6c*lmX#@HNjf} zOI@M~wZckhn*h+C4K3d8*uV^iB-PFnE2kJ@NlJ62 zm@9ukW1v>vb<1uYs5s+P^pG|h;|ozLP^e;i6i8KoTqVey2#3ZP5r$P3R4QEkZS!iC zB8Jl7QR^WhbwWpT{q)VTjh@^)xeTW+gP1N^FALGqAJgIzX7`qptJr9%*Eu~rfqLcj0cvp&RJ+$AB`QV1IdtP-w^>d7v|gw zbw|KDf0w)BTo-if-rxGU)EgnnpGCZ|u9T~Xq2K+`W(#5!X_KOdW5HOcIU3M~!53pk z1k5?r%o?dHsbxZ{GNDC++qGfg7$*M4&TE47KZCiuk*}>1{fNJBAmd3Obqe-6h40f4 z`dd7N&UI6eFX5y{uwMY$!B3@Qn*?HeA;e}RjTOKS)r`K}In=kAW=RSzn$HuR3AD%c?5^NI${+AgAKiu6X+<{uRSJ z^gqbLvwGNeM?i9zLXMaBO#FalNWu0VWpf*2pxM%x#L^|^Q5JxR{l~}IVDq(Yk~EI+zf{_1!DeA2 - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 85cf772fdb8fb7d9acd1fe10719026834fd65f00 Mon Sep 17 00:00:00 2001 From: Tushar Date: Wed, 6 Sep 2023 21:43:01 +0530 Subject: [PATCH 36/36] .github logo --- .github/stochastic_logo_dark.svg | 1156 +++++++++++++++++++++++++- .github/stochastic_logo_light.svg | 1255 ++++++++++++++++++++++++++++- 2 files changed, 2387 insertions(+), 24 deletions(-) diff --git a/.github/stochastic_logo_dark.svg b/.github/stochastic_logo_dark.svg index 089dcbc..4755e26 100644 --- a/.github/stochastic_logo_dark.svg +++ b/.github/stochastic_logo_dark.svg @@ -1,12 +1,1144 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.github/stochastic_logo_light.svg b/.github/stochastic_logo_light.svg index 1550508..6a387dd 100644 --- a/.github/stochastic_logo_light.svg +++ b/.github/stochastic_logo_light.svg @@ -1,12 +1,1243 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file