From 12f1897e27595079dbca74ce8ac5d5d960094e30 Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Mon, 20 Nov 2023 13:50:13 +0900 Subject: [PATCH 01/11] docs: update installation guide --- docs/docs/install/linux.md | 77 ++++-------------------- docs/docs/install/mac.md | 106 +++++++++++----------------------- docs/docs/install/overview.md | 43 ++++++++++++++ docs/docs/install/windows.md | 81 ++++---------------------- docs/sidebars.js | 2 +- 5 files changed, 100 insertions(+), 209 deletions(-) create mode 100644 docs/docs/install/overview.md diff --git a/docs/docs/install/linux.md b/docs/docs/install/linux.md index a1020858a..09162b60f 100644 --- a/docs/docs/install/linux.md +++ b/docs/docs/install/linux.md @@ -2,76 +2,21 @@ title: Linux --- -# Installing Jan on Linux +# Jan on Linux ## Installation -### Step 1: Download the Installer -To begin using 👋Jan.ai on your Windows computer, follow these steps: - -1. Visit [Jan.ai](https://jan.ai/). -2. Click on the "Download for Windows" button to download the Jan Installer. - -![Jan Installer](/img/jan-download.png) - -:::tip - -For faster results, you should enable your NVIDIA GPU. Make sure to have the CUDA toolkit installed. You can download it from your Linux distro's package manager or from here: [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads). - -::: - +1. To download the lastest version of Jan on Linux, please visit the [Jan's homepage](https://jan.ai/). +2. For Debian/Ubuntu-based distributions, the recommended installation method is through the `.deb` package (64-bit). This can be done either through the graphical software center, if available, or via the command line using the following: ```bash -apt install nvidia-cuda-toolkit +sudo apt install ./jan-linux-amd64-.deb +# sudo apt install ./jan-linux-arm64-0.3.1.deb ``` -Check the installation by - +## Uninstall Jan +To uninstall VS Code on Linux, you should use your package manager's uninstall or remove option. For Debian/Ubuntu-based distributions, if you installed Jan via the `.deb` package, you can uninstall Jan using the following command: ```bash -nvidia-smi -``` - -:::tip - -For AMD GPU. You can download it from your Linux distro's package manager or from here: [ROCm Quick Start (Linux)](https://rocm.docs.amd.com/en/latest/deploy/linux/quick_start.html). - -::: - -### Step 2: Download your first model -Now, let's get your first model: - -1. After installation, you'll find the 👋Jan application icon on your desktop. Double-click to open it. - -2. Welcome to the Jan homepage. Click on "Explore Models" to see the Model catalog. - -![Explore models](/img/explore-model.png) - -3. You can also see different quantized versions by clicking on "Show Available Versions." - -![Model versions](/img/model-version.png) - -> Note: Choose a model that matches your computer's memory and RAM. - -4. Select your preferred model and click "Download." - -![Downloading](/img/downloading.png) - -### Step 3: Start the model -Once your model is downloaded. Go to "My Models" and then click "Start Model." - -![Start model](/img/start-model.png) - - -### Step 4: Start the conversations -Now you're ready to start using 👋Jan.ai for conversations: - -Click "Chat" and begin your first conversation by selecting "New conversation." - -You can also check the CPU and Memory usage of the computer. - -![Chat](/img/chat.png) - -That's it! Enjoy using Large Language Models (LLMs) with 👋Jan.ai. - -## Uninstallation - -## Troubleshooting \ No newline at end of file +sudo apt-get remove jan` +# where jan is the name of Jan package +``` +In case you wish to completely remove all user data associated with Jan after uninstallation, you can delete the user data folders located at `$HOME/.config/Jan` and ~/.jan. This will return your system to its state prior to the installation of Jan. This method can also be used to reset all settings if you are experiencing any issues with Jan. \ No newline at end of file diff --git a/docs/docs/install/mac.md b/docs/docs/install/mac.md index 11d499708..5e4f0ef48 100644 --- a/docs/docs/install/mac.md +++ b/docs/docs/install/mac.md @@ -1,84 +1,44 @@ --- -title: Mac +title: Mac --- +# Jan on MacOS + ## Installation +1. To download the lastest version of Jan on MacOS, please visit the [Jan's homepage](https://jan.ai/). +2. On the homepage, please choose the appropriate release version for your system architecture as follows: + - Intel Mac: `jan-mac-x64-.dmg` + - Apple Silicon Mac: `jan-mac-arm64-.dmg` -### Step 1: Download the Installer -To begin using 👋Jan.ai on your Windows computer, follow these steps: - -1. Visit [Jan.ai](https://jan.ai/). -2. Click on the "Download for Windows" button to download the Jan Installer. - -![Jan Installer](/img/jan-download.png) - -### Step 2: Download your first model -Now, let's get your first model: - -1. After installation, you'll find the 👋Jan application icon on your desktop. Open it. - -2. Welcome to the Jan homepage. Click on "Explore Models" to see the Model catalog. - -![Explore models](/img/explore-model.png) - -3. You can also see different quantized versions by clicking on "Show Available Versions." - -![Model versions](/img/model-version.png) - -> Note: Choose a model that matches your computer's memory and RAM. - -4. Select your preferred model and click "Download." - -![Downloading](/img/downloading.png) - -### Step 3: Start the model -Once your model is downloaded. Go to "My Models" and then click "Start Model." - -![Start model](/img/start-model.png) - -### Step 4: Start the conversations -Now you're ready to start using 👋Jan.ai for conversations: - -Click "Chat" and begin your first conversation by selecting "New conversation." - -You can also check the CPU and Memory usage of the computer. - -![Chat](/img/chat.png) - -That's it! Enjoy using Large Language Models (LLMs) with 👋Jan.ai. - -## Uninstallation - -As Jan is development mode, you might get stuck on a broken build. - -To reset your installation: - +## Uninstall Jan +As Jan is development mode, you might get stuck on a broken build +To reset your installation 1. Delete Jan from your `/Applications` folder +2. Delete Application data +```bash +# Newer versions +rm -rf /Users/$(whoami)/Library/Application\ Support/jan -2. Delete Application data: - ```sh - # Newer versions - rm -rf /Users/$(whoami)/Library/Application\ Support/jan - - # Versions 0.2.0 and older - rm -rf /Users/$(whoami)/Library/Application\ Support/jan-electron - ``` - -3. Clear Application cache: - ```sh - rm -rf /Users/$(whoami)/Library/Caches/jan* - ``` - +# Versions 0.2.0 and older +rm -rf /Users/$(whoami)/Library/Application\ Support/jan-electron +``` +3. Clear Application cache +```bash +rm -rf /Users/$(whoami)/Library/Caches/jan* +``` 4. Use the following commands to remove any dangling backend processes: +```bash +ps aux | grep nitro +``` +Look for processes like "nitro" and "nitro_arm_64," and kill them one by one with: +```bash +kill -9 +``` - ```sh - ps aux | grep nitro - ``` +## Common Questions - Look for processes like "nitro" and "nitro_arm_64," and kill them one by one with: +### Does Jan run on Apple Silicon machines? +Yes, Jan supports MacOS Arm64 builds that can run on Macs with the Apple Silicon chipsets. You can install Jan on your Apple Silicon Mac by downloading the `jan-mac-arm64-.dmg` file from the [Jan's homepage](https://jan.ai/). - ```sh - kill -9 - ``` - -## FAQs +### Which package should I download for my Mac? +Jan supports both Intel and Apple Silicon Macs. To find which appropriate package to download for your Mac, please follow this official guide from Apple: [Get system information about your Mac - Apple Support](https://support.apple.com/guide/mac-help/syspr35536/mac). \ No newline at end of file diff --git a/docs/docs/install/overview.md b/docs/docs/install/overview.md new file mode 100644 index 000000000..067eb55f2 --- /dev/null +++ b/docs/docs/install/overview.md @@ -0,0 +1,43 @@ +--- +title: Overview +--- + +Getting up and running open-source AI models on your own computer with Jan is quick and easy. Jan is lightweight and can run on a variety of hardware and platform versions. Specific requirements tailored to your platform are outlined below. + +## Cross platform +A free, open-source alternative to OpenAI that runs on the Linux, macOS, and Windows operating systems. Please refer to the specific guides below for your platform +- [Linux](/install/linux) +- [MacOS (Mac Intel Chip and Mac Apple Silicon Chip)](/install/mac) +- [Windows](/install/windows) + +## Requirements for Jan + +### Hardware +Jan is a lightweight platform designed for seamless download, storage, and execution of open-source Large Language Models (LLMs). With a small download size of less than 200 MB and a disk footprint of under 300 MB, Jan is optimized for efficiency and should run smoothly on modern hardware. + +To ensure optimal performance while using Jan and handling LLM models, it is recommended to meet the following system requirements: + +#### Disk space +- Minimum requirement + - At least 5 GB of free disk space is required to accommodate the download, storage, and management of open-source LLM models. +- Recommended + - For an optimal experience and to run most available open-source LLM models on Jan, it is recommended to have 10 GB of free disk space. + +#### Random Access Memory (RAM) and Graphics Processing Unit Video Random Access Memory (GPU VRAM) +The amount of RAM on your system plays a crucial role in determining the size and complexity of LLM models you can effectively run. Jan can be utilized on traditional computers where RAM is a key resource. For enhanced performance, Jan also supports GPU acceleration, utilizing the VRAM of your graphics card. + +#### Relationship between RAM and VRAM Sizes in Relation to LLM Models +The RAM and GPU VRAM requirements are dependent on the size and complexity of the LLM models you intend to run. The following are some general guidelines to help you determine the amount of RAM or VRAM you need to run LLM models on Jan +- 8 GB of RAM: Suitable for running smaller models like 3B models or quantized 7B models +- 16 GB of RAM(recommended): This is considered the "minimum usable models" threshold, particularly for 7B models (e.g Mistral 7B, etc) +- Beyond 16GB of RAM: Required for handling larger and more sophisticated model, such as 70B models. + +### Architecture +Jan is designed to run on muptiple architectures, versatility and widespread usability. The supported architectures include: +#### CPU +- x86: Jan is well-suited for systems with x86 architecture, which is commonly found in traditional desktops and laptops. It ensures smooth performance on a variety of devices using x86 processors. +- ARM: Jan is optimized to run efficiently on ARM-based systems, extending compatibility to a broad range of devices using ARM processors. +#### GPU +- NVIDIA: Jan optimizes the computational capabilities of NVIDIA GPUs, achieving efficiency through the utilization of llama.cpp. This strategic integration enhances the performance of Jan, particularly in resource-intensive Language Model (LLM) tasks. Users can expect accelerated processing and improved responsiveness when leveraging the processing capabilities inherent in NVIDIA GPUs. +- AMD: Users with AMD GPUs can seamlessly integrate Jan's GPU acceleration, offering a comprehensive solution for diverse hardware configurations and preferences. +- ARM64 Mac: Jan seamlessly supports ARM64 architecture on Mac systems, leveraging Metal for efficient GPU operations. This ensures a smooth and efficient experience for users with Apple Silicon Chips, utilizing the power of Metal for optimal performance on ARM64 Mac devices. diff --git a/docs/docs/install/windows.md b/docs/docs/install/windows.md index 0eafc03dd..9ab24f34e 100644 --- a/docs/docs/install/windows.md +++ b/docs/docs/install/windows.md @@ -2,76 +2,19 @@ title: Windows --- -# Installing Jan on Windows - -## Step 1: Download the Installer -To begin using 👋Jan.ai on your Windows computer, follow these steps: - -1. Visit [Jan.ai](https://jan.ai/). -2. Click on the "Download for Windows" button to download the Jan Installer. - -![Jan Installer](/img/jan-download.png) - -## Step 2: Proceed the Windows Defender - -When you run the Jan Installer, Windows Defender may display a warning. Here's what to do: - -1. Click "Run away" to accept and install 👋Jan.ai. - -![Accept Jan](/img/window-defender.png) - -1. Wait for the 👋Jan.ai installation to complete. - -![Setting up](/img/set-up.png) - -:::tip - -For faster results, you should enable your NVIDIA GPU. Make sure to have the CUDA toolkit installed. You can download it from here: [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) or [CUDA Installation guide](https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#verify-you-have-a-cuda-capable-gpu). - -::: - -Check the installation by +# Jan on Windows +## Installation +1. To download the lastest version of Jan on Windows, please visit the [Jan's homepage](https://jan.ai/). +2. Once Jan installer (jan-win-x64-{version}.exe) is downloaded, run the installer. The installation process is expected to take around a minute. +3. By default, Jan is installed under this directory ```bash -nvidia-smi +C:\Users\{username}\AppData\Local\Programs\Jan ``` -:::tip +## Uninstall Jan +If you have installed Jan on your Windows computer, either as a User or System installation, you can easily uninstall it by going to the Windows Control Panel. +In case you wish to completely remove all user data associated with Jan after uninstallation, you can delete the user data folders located at `%APPDATA%\Jan`. This will return your system to its state prior to the installation of Jan. This method can also be used to reset all settings if you are experiencing any issues with Jan. -For AMD GPU, you should use [WSLv2](https://learn.microsoft.com/en-us/windows/wsl/install). You can download it from here: [ROCm Quick Start (Linux)](https://rocm.docs.amd.com/en/latest/deploy/linux/quick_start.html). - -::: - -## Step 3: Download your first model -Now, let's get your first model: - -1. After installation, you'll find the 👋Jan application icon on your desktop. Double-click to open it. - -2. Welcome to the Jan homepage. Click on "Explore Models" to see the Model catalog. - -![Explore models](/img/explore-model.png) - -1. You can also see different quantized versions by clicking on "Show Available Versions." - -![Model versions](/img/model-version.png) - -> Note: Choose a model that matches your computer's memory and RAM. - -1. Select your preferred model and click "Download." - -![Downloading](/img/downloading.png) - -## Step 4: Start the model -Once your model is downloaded. Go to "My Models" and then click "Start Model." - -![Start model](/img/start-model.png) - -## Step 5: Start the conversations -Now you're ready to start using 👋Jan.ai for conversations: - -Click "Chat" and begin your first conversation by selecting "New conversation." - -You can also check the CPU and Memory usage of the computer. - -![Chat](/img/chat.png) - -That's it! Enjoy using Large Language Models (LLMs) with 👋Jan.ai. \ No newline at end of file +## Common Questions +### Windows Defender Warning +When initiating the Jan Installer, be aware that Windows Defender may display a warning due to the application not originating from the Microsoft Store. This warning is a standard security measure, as the installer will make changes to the system. To proceed with the installation, navigate through the warning options, typically found in "More info" section and select the appropriate option to continue with the installation. \ No newline at end of file diff --git a/docs/sidebars.js b/docs/sidebars.js index aa05c4117..cc482715b 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -27,7 +27,7 @@ const sidebars = { label: "Installation", collapsible: true, collapsed: true, - items: ["install/windows", "install/mac", "install/linux"], + items: ["install/overview","install/windows", "install/mac", "install/linux"], }, { type: "category", From e5d5488523499793a23823ed61241b8fce9089c8 Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Mon, 20 Nov 2023 14:16:28 +0900 Subject: [PATCH 02/11] docs: add build from source --- docs/docs/install/from-source.md | 64 ++++++++++++++++++++++++++++++++ docs/sidebars.js | 2 +- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 docs/docs/install/from-source.md diff --git a/docs/docs/install/from-source.md b/docs/docs/install/from-source.md new file mode 100644 index 000000000..961e7fc85 --- /dev/null +++ b/docs/docs/install/from-source.md @@ -0,0 +1,64 @@ +--- +title: From Source +--- + +# Install Jan from Source + +## Installation + +### Pre-requisites +Before proceeding with the installation of Jan from source, ensure that the following software versions are installed on your system: +- Node.js version 20.0.0 or higher +- Yarn version 1.22.0 or higher + +### Instructions +> **_Note:_** This instruction is tested on MacOS only. + +1. Clone the Jan repository from GitHub +```bash +git clone https://github.com/janhq/jan +git checkout DESIRED_BRANCH +cd jan +``` +2. Install the required dependencies using Yarn +```bash +yarn install + +# Build core module +yarn build:core + +# Packing base plugins +yarn build:plugins + +# Packing uikit +yarn build:uikit +``` +3. Run development and using Jan +```bash +yarn dev +``` +This will start the development server and open the desktop app. During this step, you may encounter notifications about installing base plugins. Simply click `OK` and `Next` to continue. + +#### For production build +Build the app for macOS M1/M2 for production and place the result in the dist folder + +```bash +# Do step 1 and 2 in previous section +git clone https://github.com/janhq/jan +cd jan +yarn install + +# Build core module +yarn build:core + +# Package base plugins +yarn build:plugins + +# Packing uikit +yarn build:uikit + +# Build the app +yarn build +``` + +This completes the installation process for Jan from source. The production-ready app for macOS can be found in the dist folder. \ No newline at end of file diff --git a/docs/sidebars.js b/docs/sidebars.js index cc482715b..477b82a54 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -27,7 +27,7 @@ const sidebars = { label: "Installation", collapsible: true, collapsed: true, - items: ["install/overview","install/windows", "install/mac", "install/linux"], + items: ["install/overview","install/windows", "install/mac", "install/linux", "install/from-source"], }, { type: "category", From 6fc5c8ab4f3dc0e048c9fb44f5dc06120bea5fdc Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Mon, 20 Nov 2023 17:01:36 +0900 Subject: [PATCH 03/11] docs: remove small path --- docs/docs/install/windows.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/install/windows.md b/docs/docs/install/windows.md index 9ab24f34e..2c3d434a0 100644 --- a/docs/docs/install/windows.md +++ b/docs/docs/install/windows.md @@ -17,4 +17,4 @@ In case you wish to completely remove all user data associated with Jan after un ## Common Questions ### Windows Defender Warning -When initiating the Jan Installer, be aware that Windows Defender may display a warning due to the application not originating from the Microsoft Store. This warning is a standard security measure, as the installer will make changes to the system. To proceed with the installation, navigate through the warning options, typically found in "More info" section and select the appropriate option to continue with the installation. \ No newline at end of file +When initiating the Jan Installer, be aware that Windows Defender may display a warning. This warning is a standard security measure, as the installer will make changes to the system. To proceed with the installation, navigate through the warning options, typically found in "More info" section and select the appropriate option to continue with the installation. \ No newline at end of file From 104b41932a2acfca0ea209df452115a7f71adc0a Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Mon, 20 Nov 2023 17:08:57 +0900 Subject: [PATCH 04/11] docs: update clear title --- docs/docs/install/windows.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/install/windows.md b/docs/docs/install/windows.md index 2c3d434a0..00a30a199 100644 --- a/docs/docs/install/windows.md +++ b/docs/docs/install/windows.md @@ -16,5 +16,5 @@ If you have installed Jan on your Windows computer, either as a User or System i In case you wish to completely remove all user data associated with Jan after uninstallation, you can delete the user data folders located at `%APPDATA%\Jan`. This will return your system to its state prior to the installation of Jan. This method can also be used to reset all settings if you are experiencing any issues with Jan. ## Common Questions -### Windows Defender Warning +### Microsoft Defender SmartScreen prevented an unrecognized app from starting When initiating the Jan Installer, be aware that Windows Defender may display a warning. This warning is a standard security measure, as the installer will make changes to the system. To proceed with the installation, navigate through the warning options, typically found in "More info" section and select the appropriate option to continue with the installation. \ No newline at end of file From 8a01a6e00c4f3c3d7c33dfebebf4b10c71907077 Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Mon, 20 Nov 2023 20:26:02 +0900 Subject: [PATCH 05/11] feat: update package --- docs/docusaurus.config.js | 2 +- docs/package.json | 5 +- docs/redocly.yaml | 18 +++++ docs/yarn.lock | 159 ++++++++++++++++++++++++++++---------- 4 files changed, 139 insertions(+), 45 deletions(-) create mode 100644 docs/redocly.yaml diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 09757c67a..372200057 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -104,7 +104,7 @@ const config = { specs: [ { spec: "openapi/jan.yaml", // can be local file, url, or parsed json object - route: "/api-reference", // path where to render docs + route: "/api-reference/", // path where to render docs }, ], theme: { diff --git a/docs/package.json b/docs/package.json index c5b9ba06f..79880aeda 100644 --- a/docs/package.json +++ b/docs/package.json @@ -21,6 +21,7 @@ "@headlessui/react": "^1.7.17", "@heroicons/react": "^2.0.18", "@mdx-js/react": "^1.6.22", + "@redocly/cli": "^1.4.1", "autoprefixer": "^10.4.16", "axios": "^1.5.1", "clsx": "^1.2.1", @@ -31,8 +32,8 @@ "postcss": "^8.4.30", "posthog-docusaurus": "^2.0.0", "prism-react-renderer": "^1.3.5", - "react": "^17.0.2", - "react-dom": "^17.0.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", "react-icons": "^4.11.0", "redocusaurus": "^2.0.0", "sass": "^1.69.3", diff --git a/docs/redocly.yaml b/docs/redocly.yaml new file mode 100644 index 000000000..fc8c6bc5b --- /dev/null +++ b/docs/redocly.yaml @@ -0,0 +1,18 @@ +# NOTE: Only supports options marked as "Supported in Redoc CE" +# See https://redocly.com/docs/cli/configuration/ for more information. + +extends: + - recommended + +rules: + no-unused-components: error + +theme: + # See https://redocly.com/docs/api-reference-docs/configuration/functionality/ + openapi: + disableSearch: true + # See https://redocly.com/docs/api-reference-docs/configuration/theming/ + theme: + colors: + primary: + main: '#32329f' diff --git a/docs/yarn.lock b/docs/yarn.lock index 45d9b6a07..557f3c140 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -1927,6 +1927,28 @@ require-from-string "^2.0.2" uri-js "^4.2.2" +"@redocly/cli@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@redocly/cli/-/cli-1.4.1.tgz#6ca3a02a272d0fa33b687ec0a964bca5d4c4c3c7" + integrity sha512-c0v8SYyqC1QvImJrGhw6+wIPXn10Zhp1sUGmvXIIXZQzS7fL15+qBH4f19nh3ChpSdO4x0EdBFvvTovrupV4sQ== + dependencies: + "@redocly/openapi-core" "1.4.1" + chokidar "^3.5.1" + colorette "^1.2.0" + core-js "^3.32.1" + get-port-please "^3.0.1" + glob "^7.1.6" + handlebars "^4.7.6" + mobx "^6.0.4" + node-fetch "^2.6.1" + react "^17.0.0 || ^18.2.0" + react-dom "^17.0.0 || ^18.2.0" + redoc "~2.1.2" + semver "^7.5.2" + simple-websocket "^9.0.0" + styled-components "^6.0.7" + yargs "17.0.1" + "@redocly/openapi-core@1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.4.0.tgz#d1ce8e391b32452082f754315c8eb265690b784f" @@ -1943,7 +1965,7 @@ pluralize "^8.0.0" yaml-ast-parser "0.0.43" -"@redocly/openapi-core@^1.0.0-rc.2": +"@redocly/openapi-core@1.4.1", "@redocly/openapi-core@^1.0.0-rc.2": version "1.4.1" resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.4.1.tgz#0620a5e204159626a1d99b88f758e23ef0cb5740" integrity sha512-oAhnG8MKocM9LuP++NGFxdniNKWSLA7hzHPQoOK92LIP/DdvXx8pEeZ68UTNxIXhKonoUcO6s86I3L0zj143zg== @@ -3135,7 +3157,7 @@ cheerio@^1.0.0-rc.12: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.2, chokidar@^3.5.3: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -3461,26 +3483,26 @@ copyfiles@^2.4.1: yargs "^16.1.0" core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.33.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.2.tgz#3ea4563bfd015ad4e4b52442865b02c62aba5085" - integrity sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw== + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.3.tgz#ec678b772c5a2d8a7c60a91c3a81869aa704ae01" + integrity sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow== dependencies: browserslist "^4.22.1" core-js-pure@^3.30.2: - version "3.33.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.2.tgz#644830db2507ef84d068a70980ccd99c275f5fa6" - integrity sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q== + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.3.tgz#cbf9180ac4c4653823d784862bfb5c77eac0bf98" + integrity sha512-taJ00IDOP+XYQEA2dAe4ESkmHt1fL8wzYDo3mRWQey8uO9UojlBFMneA65kMyxfYP7106c6LzWaq7/haDT6BCQ== core-js@^2.4.1: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.23.3: - version "3.33.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.2.tgz#312bbf6996a3a517c04c99b9909cdd27138d1ceb" - integrity sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ== +core-js@^3.23.3, core-js@^3.32.1: + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.3.tgz#3c644a323f0f533a0d360e9191e37f7fc059088d" + integrity sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw== core-util-is@~1.0.0: version "1.0.3" @@ -4003,7 +4025,7 @@ debug@2.6.9, debug@^2.6.0: dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -4816,6 +4838,11 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== +get-port-please@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.1.tgz#2556623cddb4801d823c0a6a15eec038abb483be" + integrity sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA== + get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -4985,6 +5012,18 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== +handlebars@^4.7.6: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -5773,11 +5812,16 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.1.0: +lilconfig@^2.0.3, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== +lilconfig@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" + integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -6128,7 +6172,7 @@ mobx-react@^7.2.0: dependencies: mobx-react-lite "^3.4.0" -mobx@^6.10.2: +mobx@^6.0.4, mobx@^6.10.2: version "6.11.0" resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.11.0.tgz#8a748b18c140892d1d0f28b71315f1f639180006" integrity sha512-qngYCmr0WJiFRSAtYe82DB7SbzvbhehkJjONs8ydynUwoazzUQHZdAlaJqUfks5j4HarhWsZrMRhV7HtSO9HOQ== @@ -6740,12 +6784,12 @@ postcss-js@^4.0.1: camelcase-css "^2.0.1" postcss-load-config@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" - integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== dependencies: - lilconfig "^2.0.5" - yaml "^2.1.1" + lilconfig "^3.0.0" + yaml "^2.3.4" postcss-loader@^7.0.0: version "7.3.3" @@ -7199,14 +7243,13 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" -react-dom@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== +"react-dom@^17.0.0 || ^18.2.0", react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" + scheduler "^0.23.0" react-error-overlay@^6.0.11: version "6.0.11" @@ -7331,13 +7374,12 @@ react-textarea-autosize@^8.3.2: use-composed-ref "^1.3.0" use-latest "^1.2.1" -react@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== +"react@^17.0.0 || ^18.2.0", react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" read-cache@^1.0.0: version "1.0.0" @@ -7359,7 +7401,7 @@ readable-stream@^2.0.1, readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6: +readable-stream@^3.0.6, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -7404,7 +7446,7 @@ recursive-readdir@^2.2.2: dependencies: minimatch "^3.0.5" -redoc@2.1.3: +redoc@2.1.3, redoc@~2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/redoc/-/redoc-2.1.3.tgz#612c9fed744993d5fc99cbf39fe9056bd1034fa5" integrity sha512-d7F9qLLxaiFW4GC03VkwlX9wuRIpx9aiIIf3o6mzMnqPfhxrn2IRKGndrkJeVdItgCfmg9jXZiFEowm60f1meQ== @@ -7752,13 +7794,12 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" schema-utils@2.7.0: version "2.7.0" @@ -7835,7 +7876,7 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.4, semver@^7.3.7, semver@^7.3.8: +semver@^7.3.2, semver@^7.3.4, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -8026,6 +8067,17 @@ signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +simple-websocket@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/simple-websocket/-/simple-websocket-9.1.0.tgz#91cbb39eafefbe7e66979da6c639109352786a7f" + integrity sha512-8MJPnjRN6A8UCp1I+H/dSFyjwJhp6wta4hsVRhjf8w9qBHRzxYt14RaOcjvQnhD1N4yKOddEjflwMnQM4VtXjQ== + dependencies: + debug "^4.3.1" + queue-microtask "^1.2.2" + randombytes "^2.1.0" + readable-stream "^3.6.0" + ws "^7.4.2" + sirv@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.3.tgz#ca5868b87205a74bef62a469ed0296abceccd446" @@ -8257,7 +8309,7 @@ style-to-object@0.3.0, style-to-object@^0.3.0: dependencies: inline-style-parser "0.1.1" -styled-components@^6.1.0: +styled-components@^6.0.7, styled-components@^6.1.0: version "6.1.1" resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.1.1.tgz#a5414ada07fb1c17b96a26a05369daa4e2ad55e5" integrity sha512-cpZZP5RrKRIClBW5Eby4JM1wElLVP4NQrJbJ0h10TidTyJf4SIIwa3zLXOoPb4gJi8MsJ8mjq5mu2IrEhZIAcQ== @@ -8557,6 +8609,11 @@ ua-parser-js@^1.0.35: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + undici-types@~5.26.4: version "5.26.5" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" @@ -9066,6 +9123,11 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -9099,7 +9161,7 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@^7.3.1: +ws@^7.3.1, ws@^7.4.2: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== @@ -9151,7 +9213,7 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.1.1: +yaml@^2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== @@ -9166,6 +9228,19 @@ yargs-parser@^21.1.1: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== +yargs@17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz#6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb" + integrity sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yargs@^16.1.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" From eedc520155d7ad6f2c2a64cc56f0197aa9669087 Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Tue, 21 Nov 2023 11:51:56 +0900 Subject: [PATCH 06/11] fix: scroll issue --- docs/redocly.yaml | 18 ------------------ docs/src/styles/base.scss | 3 --- 2 files changed, 21 deletions(-) delete mode 100644 docs/redocly.yaml diff --git a/docs/redocly.yaml b/docs/redocly.yaml deleted file mode 100644 index fc8c6bc5b..000000000 --- a/docs/redocly.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# NOTE: Only supports options marked as "Supported in Redoc CE" -# See https://redocly.com/docs/cli/configuration/ for more information. - -extends: - - recommended - -rules: - no-unused-components: error - -theme: - # See https://redocly.com/docs/api-reference-docs/configuration/functionality/ - openapi: - disableSearch: true - # See https://redocly.com/docs/api-reference-docs/configuration/theming/ - theme: - colors: - primary: - main: '#32329f' diff --git a/docs/src/styles/base.scss b/docs/src/styles/base.scss index 27f85cb28..a59df6f73 100644 --- a/docs/src/styles/base.scss +++ b/docs/src/styles/base.scss @@ -1,7 +1,4 @@ @layer base { - html { - @apply scroll-smooth; - } html[data-theme="light"] { --ifm-background-color: white; --ifm-color-primary: #2563eb; /* New Primary Blue */ From 5983984414866839a234e5acf0bf32ae43651e31 Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Tue, 21 Nov 2023 11:56:26 +0900 Subject: [PATCH 07/11] Revert "fix: scroll issue" This reverts commit eedc520155d7ad6f2c2a64cc56f0197aa9669087. --- docs/redocly.yaml | 18 ++++++++++++++++++ docs/src/styles/base.scss | 3 +++ 2 files changed, 21 insertions(+) create mode 100644 docs/redocly.yaml diff --git a/docs/redocly.yaml b/docs/redocly.yaml new file mode 100644 index 000000000..fc8c6bc5b --- /dev/null +++ b/docs/redocly.yaml @@ -0,0 +1,18 @@ +# NOTE: Only supports options marked as "Supported in Redoc CE" +# See https://redocly.com/docs/cli/configuration/ for more information. + +extends: + - recommended + +rules: + no-unused-components: error + +theme: + # See https://redocly.com/docs/api-reference-docs/configuration/functionality/ + openapi: + disableSearch: true + # See https://redocly.com/docs/api-reference-docs/configuration/theming/ + theme: + colors: + primary: + main: '#32329f' diff --git a/docs/src/styles/base.scss b/docs/src/styles/base.scss index a59df6f73..27f85cb28 100644 --- a/docs/src/styles/base.scss +++ b/docs/src/styles/base.scss @@ -1,4 +1,7 @@ @layer base { + html { + @apply scroll-smooth; + } html[data-theme="light"] { --ifm-background-color: white; --ifm-color-primary: #2563eb; /* New Primary Blue */ From 2c7b694a89c2c8f344236db1649a19e60a8156c7 Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Tue, 21 Nov 2023 12:00:22 +0900 Subject: [PATCH 08/11] feat: add redocly language support --- docs/redocly.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/redocly.yaml b/docs/redocly.yaml index fc8c6bc5b..3f07f9b99 100644 --- a/docs/redocly.yaml +++ b/docs/redocly.yaml @@ -8,11 +8,11 @@ rules: no-unused-components: error theme: - # See https://redocly.com/docs/api-reference-docs/configuration/functionality/ openapi: - disableSearch: true - # See https://redocly.com/docs/api-reference-docs/configuration/theming/ - theme: - colors: - primary: - main: '#32329f' + schemaExpansionLevel: 2 + generateCodeSamples: + languages: + - lang: curl + - lang: Python + - lang: JavaScript + - lang: Node.js \ No newline at end of file From 411816ab7044cdaf5e5da423b7e7fe90ee7d08fb Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Tue, 21 Nov 2023 13:25:52 +0900 Subject: [PATCH 09/11] chore/add-mermaid --- docs/docusaurus.config.js | 9 +- docs/package.json | 3 +- docs/yarn.lock | 298 ++++++++++++++++++++------------------ 3 files changed, 165 insertions(+), 145 deletions(-) diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 09757c67a..f5bf78153 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -33,6 +33,10 @@ const config = { defaultLocale: "en", locales: ["en"], }, + + markdown: { + mermaid: true, + }, // Plugins we added plugins: [ @@ -58,7 +62,7 @@ const config = { ], ], - themes: ["@docusaurus/theme-live-codeblock"], + // The classic preset will relay each option entry to the respective sub plugin/theme. presets: [ @@ -173,6 +177,7 @@ const config = { respectPrefersColorScheme: false, }, }, + themes: ["@docusaurus/theme-live-codeblock", "@docusaurus/theme-mermaid"], }; -module.exports = config; +module.exports = config; \ No newline at end of file diff --git a/docs/package.json b/docs/package.json index c5b9ba06f..c41386f7f 100644 --- a/docs/package.json +++ b/docs/package.json @@ -24,6 +24,7 @@ "autoprefixer": "^10.4.16", "axios": "^1.5.1", "clsx": "^1.2.1", + "@docusaurus/plugin-content-docs": "2.4.3", "docusaurus-plugin-redoc": "^2.0.0", "docusaurus-plugin-sass": "^0.2.5", "docusaurus-theme-redoc": "^2.0.0", @@ -58,4 +59,4 @@ "engines": { "node": ">=16.14" } -} +} \ No newline at end of file diff --git a/docs/yarn.lock b/docs/yarn.lock index 45d9b6a07..74e4d578e 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -151,12 +151,12 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.8.3": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4", "@babel/code-frame@^7.8.3": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" + integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== dependencies: - "@babel/highlight" "^7.22.13" + "@babel/highlight" "^7.23.4" chalk "^2.4.2" "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3": @@ -207,12 +207,12 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.3.tgz#86e6e83d95903fbe7613f448613b8b319f330a8e" - integrity sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg== +"@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.23.3", "@babel/generator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" + integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== dependencies: - "@babel/types" "^7.23.3" + "@babel/types" "^7.23.4" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -378,10 +378,10 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" @@ -403,27 +403,27 @@ "@babel/types" "^7.22.19" "@babel/helpers@^7.12.5", "@babel/helpers@^7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" - integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.4.tgz#7d2cfb969aa43222032193accd7329851facf3c1" + integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" + "@babel/traverse" "^7.23.4" + "@babel/types" "^7.23.4" -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.12.7", "@babel/parser@^7.18.8", "@babel/parser@^7.22.15", "@babel/parser@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9" - integrity sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw== +"@babel/parser@^7.12.7", "@babel/parser@^7.18.8", "@babel/parser@^7.22.15", "@babel/parser@^7.23.3", "@babel/parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" + integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" @@ -533,7 +533,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.23.3": +"@babel/plugin-syntax-jsx@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== @@ -619,9 +619,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-async-generator-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.3.tgz#9df2627bad7f434ed13eef3e61b2b65cafd4885b" - integrity sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" + integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -645,9 +645,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-block-scoping@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.3.tgz#e99a3ff08f58edd28a8ed82481df76925a4ffca7" - integrity sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -660,9 +660,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-class-static-block@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.3.tgz#56f2371c7e5bf6ff964d84c5dc4d4db5536b5159" - integrity sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" @@ -714,9 +714,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-dynamic-import@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.3.tgz#82625924da9ed5fb11a428efb02e43bc9a3ab13e" - integrity sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" @@ -730,9 +730,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-export-namespace-from@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.3.tgz#dcd066d995f6ac6077e5a4ccb68322a01e23ac49" - integrity sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" @@ -754,9 +754,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-json-strings@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.3.tgz#489724ab7d3918a4329afb4172b2fd2cf3c8d245" - integrity sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -769,9 +769,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-logical-assignment-operators@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.3.tgz#3a406d6083feb9487083bca6d2334a3c9b6c4808" - integrity sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" @@ -834,25 +834,25 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-nullish-coalescing-operator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.3.tgz#8a613d514b521b640344ed7c56afeff52f9413f8" - integrity sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-transform-numeric-separator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.3.tgz#2f8da42b75ba89e5cfcd677afd0856d52c0c2e68" - integrity sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-transform-object-rest-spread@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.3.tgz#509373753b5f7202fe1940e92fd075bd7874955f" - integrity sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" + integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== dependencies: "@babel/compat-data" "^7.23.3" "@babel/helper-compilation-targets" "^7.22.15" @@ -869,17 +869,17 @@ "@babel/helper-replace-supers" "^7.22.20" "@babel/plugin-transform-optional-catch-binding@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.3.tgz#362c0b545ee9e5b0fa9d9e6fe77acf9d4c480027" - integrity sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-transform-optional-chaining@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.3.tgz#92fc83f54aa3adc34288933fa27e54c13113f4be" - integrity sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" + integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" @@ -901,9 +901,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-private-property-in-object@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.3.tgz#5cd34a2ce6f2d008cc8f91d8dcc29e2c41466da6" - integrity sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-create-class-features-plugin" "^7.22.15" @@ -939,15 +939,15 @@ "@babel/plugin-transform-react-jsx" "^7.22.5" "@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" - integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" + integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/types" "^7.23.4" "@babel/plugin-transform-react-pure-annotations@^7.23.3": version "7.23.3" @@ -973,9 +973,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.18.6": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.3.tgz#0aa7485862b0b5cb0559c1a5ec08b4923743ee3b" - integrity sha512-XcQ3X58CKBdBnnZpPaQjgVMePsXtSZzHoku70q9tUAQp02ggPQNM04BF3RvlW1GSM/McbSOQAzEK4MXbS7/JFg== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz#5132b388580002fc5cb7c84eccfb968acdc231cb" + integrity sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw== dependencies: "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" @@ -1021,9 +1021,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-typescript@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.3.tgz#ce806e6cb485d468c48c4f717696719678ab0138" - integrity sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.4.tgz#da12914d17b3c4b307f32c5fd91fbfdf17d56f86" + integrity sha512-39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-create-class-features-plugin" "^7.22.15" @@ -1185,17 +1185,17 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime-corejs3@^7.18.6": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.23.2.tgz#a5cd9d8b408fb946b2f074b21ea40c04e516795c" - integrity sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.23.4.tgz#ae5aa568d1320c23459aef5893dc970f6711d02c" + integrity sha512-zQyB4MJGM+rvd4pM58n26kf3xbiitw9MHzL8oLiBMKb8MCtVDfV5nDzzJWWzLMtbvKI9wN6XwJYl479qF4JluQ== dependencies: core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.8.4": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" - integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e" + integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg== dependencies: regenerator-runtime "^0.14.0" @@ -1208,28 +1208,28 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.12.9", "@babel/traverse@^7.18.8", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.3.tgz#26ee5f252e725aa7aca3474aa5b324eaf7908b5b" - integrity sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ== +"@babel/traverse@^7.12.9", "@babel/traverse@^7.18.8", "@babel/traverse@^7.23.3", "@babel/traverse@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" + integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.3" + "@babel/code-frame" "^7.23.4" + "@babel/generator" "^7.23.4" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.3" - "@babel/types" "^7.23.3" + "@babel/parser" "^7.23.4" + "@babel/types" "^7.23.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.12.7", "@babel/types@^7.20.0", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.4.4": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" - integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== +"@babel/types@^7.12.7", "@babel/types@^7.20.0", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4", "@babel/types@^7.4.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" + integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== dependencies: - "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" @@ -2129,9 +2129,9 @@ "@types/node" "*" "@types/connect-history-api-fallback@^1.3.5": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.3.tgz#7793aa2160cef7db0ce5fe2b8aab621200f1a470" - integrity sha512-6mfQ6iNvhSKCZJoY6sIG3m0pKkdUcweVNOLuBBKvoWGzl2yRxOJcYOTRyLKt3nxXvBLJWa6QkW//tgbIwJehmA== + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" @@ -2255,16 +2255,16 @@ integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== "@types/node-forge@^1.3.0": - version "1.3.9" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.9.tgz#0fe4a7ba69c0b173f56e6de65d0eae2c1dd4bbfe" - integrity sha512-meK88cx/sTalPSLSoCzkiUB4VPIFHmxtXm5FaaqRDqBX2i/Sy8bJ4odsan0b20RBjPh06dAQ+OTTdnyQyhJZyQ== + version "1.3.10" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.10.tgz#62a19d4f75a8b03290578c2b04f294b1a5a71b07" + integrity sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw== dependencies: "@types/node" "*" "@types/node@*": - version "20.9.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.2.tgz#002815c8e87fe0c9369121c78b52e800fadc0ac6" - integrity sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg== + version "20.9.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.3.tgz#e089e1634436f676ff299596c9531bd2b59fffc6" + integrity sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw== dependencies: undici-types "~5.26.4" @@ -2289,9 +2289,9 @@ integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== "@types/prop-types@*": - version "15.7.10" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.10.tgz#892afc9332c4d62a5ea7e897fe48ed2085bbb08a" - integrity sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A== + version "15.7.11" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" + integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== "@types/qs@*": version "6.9.10" @@ -2330,9 +2330,9 @@ "@types/react" "*" "@types/react@*": - version "18.2.37" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.37.tgz#0f03af69e463c0f19a356c2660dbca5d19c44cae" - integrity sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw== + version "18.2.38" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.38.tgz#3605ca41d3daff2c434e0b98d79a2469d4c2dd52" + integrity sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -2351,9 +2351,9 @@ "@types/node" "*" "@types/scheduler@*": - version "0.16.6" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.6.tgz#eb26db6780c513de59bee0b869ef289ad3068711" - integrity sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA== + version "0.16.7" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.7.tgz#d62f1bd54724c84089f51f9218393930ba4abcf4" + integrity sha512-8g25Nl3AuB1KulTlSUsUhUo/oBgBU6XIXQ+XURpeioEbEJvkO7qI4vDfREv3vJYHHzqXjcAHvoJy4pTtSQNZtA== "@types/send@*": version "0.17.4" @@ -2397,9 +2397,9 @@ integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== "@types/ws@^8.5.5": - version "8.5.9" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.9.tgz#384c489f99c83225a53f01ebc3eddf3b8e202a8c" - integrity sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg== + version "8.5.10" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" + integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== dependencies: "@types/node" "*" @@ -2409,9 +2409,9 @@ integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^17.0.8": - version "17.0.31" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.31.tgz#8fd0089803fd55d8a285895a18b88cb71a99683c" - integrity sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg== + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== dependencies: "@types/yargs-parser" "*" @@ -3461,16 +3461,16 @@ copyfiles@^2.4.1: yargs "^16.1.0" core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.33.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.2.tgz#3ea4563bfd015ad4e4b52442865b02c62aba5085" - integrity sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw== + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.3.tgz#ec678b772c5a2d8a7c60a91c3a81869aa704ae01" + integrity sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow== dependencies: browserslist "^4.22.1" core-js-pure@^3.30.2: - version "3.33.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.2.tgz#644830db2507ef84d068a70980ccd99c275f5fa6" - integrity sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q== + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.3.tgz#cbf9180ac4c4653823d784862bfb5c77eac0bf98" + integrity sha512-taJ00IDOP+XYQEA2dAe4ESkmHt1fL8wzYDo3mRWQey8uO9UojlBFMneA65kMyxfYP7106c6LzWaq7/haDT6BCQ== core-js@^2.4.1: version "2.6.12" @@ -3478,9 +3478,9 @@ core-js@^2.4.1: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.23.3: - version "3.33.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.2.tgz#312bbf6996a3a517c04c99b9909cdd27138d1ceb" - integrity sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ== + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.3.tgz#3c644a323f0f533a0d360e9191e37f7fc059088d" + integrity sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw== core-util-is@~1.0.0: version "1.0.3" @@ -4314,9 +4314,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.535: - version "1.4.588" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz#d553f3c008e73488fb181fdf2601fdb0b1ffbb78" - integrity sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w== + version "1.4.589" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.589.tgz#3fc83c284ed8f1f58e0cb3c664c8ebcb4d0b42fb" + integrity sha512-zF6y5v/YfoFIgwf2dDfAqVlPPsyQeWNpEWXbAlDUS8Ax4Z2VoiiZpAPC0Jm9hXEkJm2vIZpwB6rc4KnLTQffbQ== elkjs@^0.8.2: version "0.8.2" @@ -5773,11 +5773,16 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.1.0: +lilconfig@^2.0.3, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== +lilconfig@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" + integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -6740,12 +6745,12 @@ postcss-js@^4.0.1: camelcase-css "^2.0.1" postcss-load-config@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" - integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== dependencies: - lilconfig "^2.0.5" - yaml "^2.1.1" + lilconfig "^3.0.0" + yaml "^2.3.4" postcss-loader@^7.0.0: version "7.3.3" @@ -7213,12 +7218,21 @@ react-error-overlay@^6.0.11: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== -react-fast-compare@^3.2.0: +react-fast-compare@^3.2.0, react-fast-compare@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== -react-helmet-async@*, react-helmet-async@^1.3.0: +react-helmet-async@*: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-2.0.0.tgz#730c07280fb1f2392768a780fa56058057137803" + integrity sha512-pYYyVtyNkPuCENuHZkIy8CWmlINWO3oeh8HCBAw80CY4+rOc/pJwGgay5EUMSGBy5ii123Q8rncKvi+Jpt1scw== + dependencies: + invariant "^2.2.4" + react-fast-compare "^3.2.2" + shallowequal "^1.1.0" + +react-helmet-async@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz#7bd5bf8c5c69ea9f02f6083f14ce33ef545c222e" integrity sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg== @@ -9151,7 +9165,7 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.1.1: +yaml@^2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== From f03b13b9e870a80d39639098be7ff4c11cd5becd Mon Sep 17 00:00:00 2001 From: hiro Date: Tue, 21 Nov 2023 12:44:33 +0700 Subject: [PATCH 10/11] feat(spec-model): Update based on team discussion on Nov 20 --- docs/docs/specs/models.md | 436 +++++++++++++------------------------- 1 file changed, 142 insertions(+), 294 deletions(-) diff --git a/docs/docs/specs/models.md b/docs/docs/specs/models.md index c214f7557..063dc5124 100644 --- a/docs/docs/specs/models.md +++ b/docs/docs/specs/models.md @@ -1,9 +1,4 @@ ---- -title: Models ---- - -import ApiSchema from '@theme/ApiSchema'; - +# Models Spec v1 :::warning Draft Specification: functionality has not been implemented yet. @@ -21,161 +16,151 @@ Jan's Model API aims to be as similar as possible to [OpenAI's Models API](https - Users can download, import and delete models - Users can use remote models (e.g. OpenAI, OpenRouter) - Users can start/stop models and use them in a thread (or via Chat Completions API) -- User can configure default model parameters at the model level (to be overridden later at message or thread level) +- User can configure default model parameters at the model level (to be overridden later at `chat/completions` or `assistant`/`thread` level) -## Models Folder +## Design Principle +- Don't go for simplicity yet +- Underlying abstractions are changing very frequently (e.g. ggufv3) +- Provide a minimalist framework over the abstractions that takes care of coordination between tools +- Show direct system state for now -Models in Jan are stored in the `/models` folder. +## KIVs to Model Spec v2 +- OpenAI and Azure OpenAI +- Importing via URL +- Multiple Partitions -Models are stored and organized by folders, which are atomic representations of a model for easy packaging and version control. - -A model's folder name is its `model.id` and contains: - -- `.json`, i.e. the [Model Object](#model-object) -- Binaries (may be downloaded later) - -```shell -/jan # Jan root folder - /models - # GGUF model - /llama2-70b - llama2-70b.json - llama2-70b-q4_k_m.gguf - - # Recommended Model (yet to be downloaded) - /mistral-7b - mistral-7b.json # Contains download instructions - # Note: mistral-7b-*.gguf binaries not downloaded yet - - # Remote model - /azure-openai-gpt3-5 - azure-openai-gpt3-5.json - # Note: No binaries - - # Multiple Binaries - # COMING SOON - - # Multiple Quantizations - # COMING SOON - - # Imported model (autogenerated .json) +## Models folder structure +- Models in Jan are stored in the `/models` folder. +- Models are stored and organized by folders, which are atomic representations of a model for easy packaging and version control. +```sh +/jan/ # Jan root folder + /models/ + llama2-70b-q4_k_m/ + model-binary-1.gguf + model.json + mistral-7b-gguf-q3_k_l/ + model.json + mistral-7b-q3-K-L.gguf + mistral-7b-gguf-q8_k_m./ + model.json + mistral-7b-q8_k_k.gguf + random-model-q4_k_m/ random-model-q4_k_m.bin - # Note: will be moved into a autogenerated folder - # /random-model-q4_k_m - # random-model-q4_k_m.bin - # random-model-q4_k_m.json (autogenerated) + random-model-q4_k_m.json # (autogenerated) ``` -### Importing Models +## Model Object +- Jan represents models as `json`-based Model Object files, known colloquially as `model.json`. +-Jan aims for rough equivalence with [OpenAI's Model Object](https://platform.openai.com/docs/api-reference/models/object) with additional properties to support local models. +- Jan's models follow a `model.json` naming convention, and are built to be extremely lightweight, with the only mandatory field being a `source_url` to download the model binaries. + +### Types of Models + +There are 3 types of models. + +- [x] Local model, yet-to-be downloaded (we have the URL) +- [x] Local model (downloaded) + +## Examples +### Local Model + +- Model has 1 binary `model-zephyr-7B.json` +- See [source](https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/) + +#### `model.json` +```json +"type": "model", +"version": "1", +"id": "zephyr-7b" // used in chat-completions model_name, matches folder name +"name": "Zephyr 7B" +"owned_by": "" // OpenAI compatibility +"created": 1231231 // unix timestamp +"description": "..." +"state": enum[null, "downloading", "available"] +// KIV: remote: // Subsequent +// KIV: type: "llm" // For future where there are different types +"format": "ggufv3", // State format, rather than engine +"source_url": "https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/blob/main/zephyr-7b-beta.Q4_K_M.gguf", +"settings" { + "ctx_len": "2048", + "ngl": "100", + "embedding": "true", + "n_parallel": "4", + // KIV: "pre_prompt": "A chat between a curious user and an artificial intelligence", + // KIV:"user_prompt": "USER: ", + // KIV: "ai_prompt": "ASSISTANT: " +} +"parameters": { + "temperature": "0.7", + "token_limit": "2048", + "top_k": "0", + "top_p": "1", + "stream": "true" + }, + "metadata": {} + "assets": [ + "file://.../zephyr-7b-q4_k_m.bin", + "https://huggin" + ] +``` + +### Deferred Download +```sh +models/ + mistral-7b/ + model.json + hermes-7b/ + model.json +``` +- Jan ships with a default model folders containing recommended models +- Only the Model Object `json` files are included +- Users must later explicitly download the model binaries + +### Multiple model partitions + +```sh +llava-ggml-Q5/ + model.json + mmprj.bin + model_q5.ggml +``` + +### Locally fine-tuned/ custom imported model + +```sh +llama-70b-finetune/ + llama-70b-finetune-q5.json + .bin +``` + +## Models API + +| Method | API Call | OpenAI-equivalent | +| -------------- | ------------------------------- | ----------------- | +| List Models | GET /v1/models | true | +| Get Model | GET /v1/models/{model_id} | true | +| Delete Model | DELETE /v1/models/{model_id} | true | +| Start Model | PUT /v1/models/{model_id}/start | no | +| Stop Model | PUT /v1/models/{model_id}/start | no | +| Download Model | POST /v1/models/ | no | + +## Importing Models :::warning - This has not been confirmed -- Dan's view: Jan should auto-detect and create folders automatically +- Jan should auto-detect and create folders automatically - Jan's UI will allow users to rename folders and add metadata ::: You can import a model by just dragging it into the `/models` folder, similar to Oobabooga. -- Jan will detect and generate a corresponding `model-filename.json` file based on filename +- Jan will detect and generate a corresponding `model.json` file based on model asset filename - Jan will move it into its own `/model-id` folder once you define a `model-id` via the UI -- Jan will populate the model's `model-id.json` as you add metadata through the UI +- Jan will populate the model's `/model-id/model.json` as you add metadata through the UI -## Model Object - -:::warning - -- This is currently not finalized -- Dan's view: I think the current JSON is extremely clunky - - We should move `init` to top-level (e.g. "settings"?) - - We should move `runtime` to top-level (e.g. "parameters"?) - - `metadata` is extremely overloaded and should be refactored -- Dan's view: we should make a model object very extensible - - A `GGUF` model would "extend" a common model object with extra fields (at top level) -- Dan's view: State is extremely badly named - - Recommended: `downloaded`, `started`, `stopped`, null (for yet-to-download) - - We should also note that this is only for local models (not remote) - -::: - -Jan represents models as `json`-based Model Object files, known colloquially as `model.jsons`. Jan aims for rough equivalence with [OpenAI's Model Object](https://platform.openai.com/docs/api-reference/models/object) with additional properties to support local models. - -Jan's models follow a `model_id.json` naming convention, and are built to be extremely lightweight, with the only mandatory field being a `source_url` to download the model binaries. - - - -### Types of Models - -:::warning - -- This is currently not in the Model Object, and requires further discussion. -- Dan's view: we should have a field to differentiate between `local` and `remote` models - -::: - -There are 3 types of models. - -- Local model -- Local model, yet-to-be downloaded (we have the URL) -- Remote model (i.e. OpenAI API) - -#### Local Models - -:::warning - -- This is currently not finalized -- Dan's view: we should have `download_url` and `local_url` for local models (and possibly more) - -::: - -A `model.json` for a local model should always reference the following fields: - -- `download_url`: the original download source of the model -- `local_url`: the current location of the model binaries (may be array of multiple binaries) - -```json -// ./models/llama2/llama2-7bn-gguf.json -"local_url": "~/Downloads/llama-2-7bn-q5-k-l.gguf", -``` - -#### Remote Models - -:::warning - -- This is currently not finalized -- Dan's view: each cloud model should be provided via a syste module, or define its own params field on the `model` or `model.init` object - -::: - -A `model.json` for a remote model should always reference the following fields: - -- `api_url`: the API endpoint of the model -- Any authentication parameters - -```json -// Dan's view: This needs to be refactored pretty significantly -"source_url": "https://docs-test-001.openai.azure.com/openai.azure.com/docs-test-001/gpt4-turbo", -"parameters": { - "init" { - "API-KEY": "", - "DEPLOYMENT-NAME": "", - "api-version": "2023-05-15" - }, - "runtime": { - "temperature": "0.7", - "max_tokens": "2048", - "presence_penalty": "0", - "top_p": "1", - "stream": "true" - } -} -"metadata": { - "engine": "api", // Dan's view: this should be a `type` field -} -``` - -### Importers +### Jan Model Importers extension :::caution @@ -192,154 +177,17 @@ Currently, pasting a TheBloke Huggingface link in the Explore Models page will f - Nicely-formatted model card - Fully-annotated `model.json` file -### Multiple Binaries - -:::warning - -- This is currently not finalized -- Dan's view: having these fields under `model.metadata` is not maintainable -- We should explore some sort of `local_url` structure - -::: - -- Model has multiple binaries `model-llava-1.5-ggml.json` -- See [source](https://huggingface.co/mys/ggml_llava-v1.5-13b) - -```json -"source_url": "https://huggingface.co/mys/ggml_llava-v1.5-13b", -"parameters": {"init": {}, "runtime": {}} -"metadata": { - "mmproj_binary": "https://huggingface.co/mys/ggml_llava-v1.5-13b/blob/main/mmproj-model-f16.gguf", - "ggml_binary": "https://huggingface.co/mys/ggml_llava-v1.5-13b/blob/main/ggml-model-q5_k.gguf", - "engine": "llamacpp", - "quantization": "Q5_K" -} -``` - -## Models API - -:::warning - -- We should use the OpenAPI spec to discuss APIs -- Dan's view: This needs @louis and App Pod to review as they are more familiar with this -- Dan's view: Start/Stop model should have some UI indicator (show state, block input) - -::: - -See http://localhost:3001/api-reference#tag/Models. - -| Method | API Call | OpenAI-equivalent | -| -------------- | ------------------------------- | ----------------- | -| List Models | GET /v1/models | true | -| Get Model | GET /v1/models/{model_id} | true | -| Delete Model | DELETE /v1/models/{model_id} | true | -| Start Model | PUT /v1/models/{model_id}/start | | -| Stop Model | PUT /v1/models/{model_id}/start | | -| Download Model | POST /v1/models/ | | - -## Examples - -### Local Model - -- Model has 1 binary `model-zephyr-7B.json` -- See [source](https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/) - -```json -// ./models/zephr/zephyr-7b-beta-Q4_K_M.json -// Note: Default fields omitted for brevity -"source_url": "https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/blob/main/zephyr-7b-beta.Q4_K_M.gguf", -"parameters": { - "init": { - "ctx_len": "2048", - "ngl": "100", - "embedding": "true", - "n_parallel": "4", - "pre_prompt": "A chat between a curious user and an artificial intelligence", - "user_prompt": "USER: ", - "ai_prompt": "ASSISTANT: " - }, - "runtime": { - "temperature": "0.7", - "token_limit": "2048", - "top_k": "0", - "top_p": "1", - "stream": "true" - } -}, -"metadata": { - "engine": "llamacpp", - "quantization": "Q3_K_L", - "size": "7B", -} -``` - -### Remote Model - -- Using a remote API to access model `model-azure-openai-gpt4-turbo.json` -- See [source](https://learn.microsoft.com/en-us/azure/ai-services/openai/quickstart?tabs=command-line%2Cpython&pivots=rest-api) - -```json -"source_url": "https://docs-test-001.openai.azure.com/openai.azure.com/docs-test-001/gpt4-turbo", -"parameters": { - "init" { - "API-KEY": "", - "DEPLOYMENT-NAME": "", - "api-version": "2023-05-15" - }, - "runtime": { - "temperature": "0.7", - "max_tokens": "2048", - "presence_penalty": "0", - "top_p": "1", - "stream": "true" - } -} -"metadata": { - "engine": "api", -} -``` - -### Deferred Download - -- Jan ships with a default model folders containing recommended models -- Only the Model Object `json` files are included -- Users must later explicitly download the model binaries -- -```sh -models/ - mistral-7b/ - mistral-7b.json - hermes-7b/ - hermes-7b.json -``` - -### Multiple quantizations - -- Each quantization has its own `Jan Model Object` file -- TODO: `model.json`? - -```sh -llama2-7b-gguf/ - llama2-7b-gguf-Q2.json - llama2-7b-gguf-Q3_K_L.json - .bin -``` - -### Multiple model partitions - -- A Model that is partitioned into several binaries use just 1 file - -```sh -llava-ggml/ - llava-ggml-Q5.json - .proj - ggml -``` - -### Locally fine-tuned model - -```sh -llama-70b-finetune/ - llama-70b-finetune-q5.json - .bin -``` \ No newline at end of file +### ADR +- `.json`, i.e. the [Model Object](#model-object) +- Why multiple folders? + - Model Partitions (e.g. Llava in the future) +- Why a folder and config file for each quantization? + - Differently quantized models are completely different models +- Milestone -1st December: + - Catalogue of recommended models, anything else = mutate the filesystem +- [@linh] Should we have an API to help quantize models? + - Could be a really cool feature to have (i.e. import from HF, quantize model, run on CPU) +- We should have a helper function to handle hardware compatibility + - POST model/{model-id}/compatibility +- [louis] We are combining states & manifest + - Need to think through \ No newline at end of file From 384947d37a3be89d1ab286e45f97e4b4529c22e1 Mon Sep 17 00:00:00 2001 From: 0xSage Date: Tue, 21 Nov 2023 19:50:00 +0800 Subject: [PATCH 11/11] docs: polish models spec --- docs/docs/specs/models.md | 221 ++++++++++++-------------------------- 1 file changed, 67 insertions(+), 154 deletions(-) diff --git a/docs/docs/specs/models.md b/docs/docs/specs/models.md index 063dc5124..851626431 100644 --- a/docs/docs/specs/models.md +++ b/docs/docs/specs/models.md @@ -1,193 +1,106 @@ -# Models Spec v1 -:::warning +--- +title: Models +--- -Draft Specification: functionality has not been implemented yet. +:::caution -Feedback: [HackMD: Models Spec](https://hackmd.io/ulO3uB1AQCqLa5SAAMFOQw) +Draft Specification: functionality has not been implemented yet. ::: ## Overview -Jan's Model API aims to be as similar as possible to [OpenAI's Models API](https://platform.openai.com/docs/api-reference/models), with additional methods for managing and running models locally. +In Jan, models are primary entities with the following capabilities: -### Objectives +- Users can import, configure, and run models locally. +- An [OpenAI Model API](https://platform.openai.com/docs/api-reference/models) compatible endpoint at `localhost:3000/v1/models`. +- Supported model formats: `ggufv3`, and more. -- Users can download, import and delete models -- Users can use remote models (e.g. OpenAI, OpenRouter) -- Users can start/stop models and use them in a thread (or via Chat Completions API) -- User can configure default model parameters at the model level (to be overridden later at `chat/completions` or `assistant`/`thread` level) +## Folder Structure -## Design Principle -- Don't go for simplicity yet -- Underlying abstractions are changing very frequently (e.g. ggufv3) -- Provide a minimalist framework over the abstractions that takes care of coordination between tools -- Show direct system state for now +- Models are stored in the `/models` folder. +- Models are organized by individual folders, each containing the binaries and configurations needed to run the model. This makes for easy packaging and sharing. +- Model folder names are unique and used as `model_id` default values. -## KIVs to Model Spec v2 -- OpenAI and Azure OpenAI -- Importing via URL -- Multiple Partitions - -## Models folder structure -- Models in Jan are stored in the `/models` folder. -- Models are stored and organized by folders, which are atomic representations of a model for easy packaging and version control. -```sh -/jan/ # Jan root folder - /models/ - llama2-70b-q4_k_m/ - model-binary-1.gguf +```bash +jan/ # Jan root folder + models/ + llama2-70b-q4_k_m/ # Example: standard GGUF model model.json - mistral-7b-gguf-q3_k_l/ + model-binary-1.gguf + mistral-7b-gguf-q3_k_l/ # Example: quantizations are separate folders model.json mistral-7b-q3-K-L.gguf - mistral-7b-gguf-q8_k_m./ + mistral-7b-gguf-q8_k_m/ # Example: quantizations are separate folders model.json mistral-7b-q8_k_k.gguf - random-model-q4_k_m/ - random-model-q4_k_m.bin - random-model-q4_k_m.json # (autogenerated) + llava-ggml-Q5/ # Example: model with many partitions + model.json + mmprj.bin + model_q5.ggml ``` -## Model Object -- Jan represents models as `json`-based Model Object files, known colloquially as `model.json`. --Jan aims for rough equivalence with [OpenAI's Model Object](https://platform.openai.com/docs/api-reference/models/object) with additional properties to support local models. -- Jan's models follow a `model.json` naming convention, and are built to be extremely lightweight, with the only mandatory field being a `source_url` to download the model binaries. +## `model.json` -### Types of Models +- Each `model` folder contains a `model.json` file, which is a representation of a model. +- `model.json` contains metadata and default parameters used to run a model. +- The only required field is `source_url`. -There are 3 types of models. +### GGUF Example -- [x] Local model, yet-to-be downloaded (we have the URL) -- [x] Local model (downloaded) +Here's a standard example `model.json` for a GGUF model. -## Examples -### Local Model +- `source_url`: https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/. -- Model has 1 binary `model-zephyr-7B.json` -- See [source](https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/) - -#### `model.json` ```json -"type": "model", -"version": "1", -"id": "zephyr-7b" // used in chat-completions model_name, matches folder name -"name": "Zephyr 7B" -"owned_by": "" // OpenAI compatibility -"created": 1231231 // unix timestamp -"description": "..." -"state": enum[null, "downloading", "available"] -// KIV: remote: // Subsequent -// KIV: type: "llm" // For future where there are different types -"format": "ggufv3", // State format, rather than engine "source_url": "https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/blob/main/zephyr-7b-beta.Q4_K_M.gguf", -"settings" { - "ctx_len": "2048", - "ngl": "100", - "embedding": "true", - "n_parallel": "4", - // KIV: "pre_prompt": "A chat between a curious user and an artificial intelligence", - // KIV:"user_prompt": "USER: ", - // KIV: "ai_prompt": "ASSISTANT: " +"type": "model", // Defaults to "model" +"version": "1", // Defaults to 1 +"id": "zephyr-7b" // Defaults to foldername +"name": "Zephyr 7B" // Defaults to foldername +"owned_by": "you" // Defaults to you +"created": 1231231 // Defaults to file creation time +"description": "" +"state": enum[null, "downloading", "ready", "starting", "stopping", ...] +"format": "ggufv3", // Defaults to "ggufv3" +"settings": { // Models are initialized with these settings + "ctx_len": "2048", + "ngl": "100", + "embedding": "true", + "n_parallel": "4", + // KIV: "pre_prompt": "A chat between a curious user and an artificial intelligence", + // KIV:"user_prompt": "USER: ", + // KIV: "ai_prompt": "ASSISTANT: " } -"parameters": { - "temperature": "0.7", - "token_limit": "2048", - "top_k": "0", - "top_p": "1", - "stream": "true" - }, - "metadata": {} - "assets": [ - "file://.../zephyr-7b-q4_k_m.bin", - "https://huggin" - ] +"parameters": { // Models are called with these parameters + "temperature": "0.7", + "token_limit": "2048", + "top_k": "0", + "top_p": "1", + "stream": "true" +}, +"metadata": {} // Defaults to {} +"assets": [ // Filepaths to model binaries; Defaults to current dir + "file://.../zephyr-7b-q4_k_m.bin", +] ``` -### Deferred Download -```sh -models/ - mistral-7b/ - model.json - hermes-7b/ - model.json -``` -- Jan ships with a default model folders containing recommended models -- Only the Model Object `json` files are included -- Users must later explicitly download the model binaries +## API Reference -### Multiple model partitions +Jan's Model API is compatible with [OpenAI's Models API](https://platform.openai.com/docs/api-reference/models), with additional methods for managing and running models locally. -```sh -llava-ggml-Q5/ - model.json - mmprj.bin - model_q5.ggml -``` - -### Locally fine-tuned/ custom imported model - -```sh -llama-70b-finetune/ - llama-70b-finetune-q5.json - .bin -``` - -## Models API - -| Method | API Call | OpenAI-equivalent | -| -------------- | ------------------------------- | ----------------- | -| List Models | GET /v1/models | true | -| Get Model | GET /v1/models/{model_id} | true | -| Delete Model | DELETE /v1/models/{model_id} | true | -| Start Model | PUT /v1/models/{model_id}/start | no | -| Stop Model | PUT /v1/models/{model_id}/start | no | -| Download Model | POST /v1/models/ | no | +See [Jan Models API](https://jan.ai/api-reference#tag/Models) ## Importing Models -:::warning - -- This has not been confirmed -- Jan should auto-detect and create folders automatically -- Jan's UI will allow users to rename folders and add metadata - -::: - -You can import a model by just dragging it into the `/models` folder, similar to Oobabooga. - -- Jan will detect and generate a corresponding `model.json` file based on model asset filename -- Jan will move it into its own `/model-id` folder once you define a `model-id` via the UI -- Jan will populate the model's `/model-id/model.json` as you add metadata through the UI - -### Jan Model Importers extension - :::caution -- This is only an idea, has not been confirmed as part of spec +This is current under development. ::: -Jan builds "importers" for users to seamlessly import models from a single URL. +You can import a model by dragging the model binary or gguf file into the `/models` folder. -We currently only provide this for [TheBloke models on Huggingface](https://huggingface.co/TheBloke) (i.e. one of the patron saints of llama.cpp), but we plan to add more in the future. - -Currently, pasting a TheBloke Huggingface link in the Explore Models page will fire an importer, resulting in an: - -- Nicely-formatted model card -- Fully-annotated `model.json` file - -### ADR -- `.json`, i.e. the [Model Object](#model-object) -- Why multiple folders? - - Model Partitions (e.g. Llava in the future) -- Why a folder and config file for each quantization? - - Differently quantized models are completely different models -- Milestone -1st December: - - Catalogue of recommended models, anything else = mutate the filesystem -- [@linh] Should we have an API to help quantize models? - - Could be a really cool feature to have (i.e. import from HF, quantize model, run on CPU) -- We should have a helper function to handle hardware compatibility - - POST model/{model-id}/compatibility -- [louis] We are combining states & manifest - - Need to think through \ No newline at end of file +- Jan automatically generates a corresponding `model.json` file based on the binary filename. +- Jan automatically organizes it into its own `/models/model-id` folder. +- Jan automatically populates the `model.json` properties, which you can subsequently modify.