diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..323fa5b Binary files /dev/null and b/.DS_Store differ diff --git a/devbox.json b/devbox.json index 98499e2..0591a79 100644 --- a/devbox.json +++ b/devbox.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.15.0/.schema/devbox.schema.json", + "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.17.2/.schema/devbox.schema.json", "packages": [ "nodejs@latest" ], diff --git a/docs.json b/docs.json index 9649b4d..9bc979b 100644 --- a/docs.json +++ b/docs.json @@ -14,14 +14,10 @@ }, "fonts": { "body": { - "family": "InterVariable", - "format": "woff2", - "source": "https://rsms.me/inter/font-files/InterVariable.woff2?v=4.1" + "family": "Inter" }, "heading": { - "family": "InterVariable", - "format": "woff2", - "source": "https://rsms.me/inter/font-files/InterVariable.woff2?v=4.1" + "family": "Google Sans" } }, "background": { @@ -116,6 +112,7 @@ "pages": [ "tr/boards/o1/ai/introduction", "tr/boards/o1/ai/ecosystem", + "tr/boards/o1/ai/installation", "tr/boards/o1/ai/edgeai", "tr/boards/o1/ai/edgeai-tensorlab", "tr/boards/o1/ai/data-labeling", @@ -168,6 +165,9 @@ "tr/projects/vtol", "tr/projects/swupdate", "tr/projects/mediabox", + "tr/projects/firewall", + "tr/projects/hotspot", + "tr/projects/homeassistant", { "group": "Teknofest", "pages": [ @@ -283,6 +283,7 @@ "pages": [ "en/boards/o1/ai/introduction", "en/boards/o1/ai/ecosystem", + "en/boards/o1/ai/installation", "en/boards/o1/ai/edgeai", "en/boards/o1/ai/edgeai-tensorlab", "en/boards/o1/ai/data-labeling", @@ -335,6 +336,9 @@ "en/projects/vtol", "en/projects/swupdate", "en/projects/mediabox", + "en/projects/firewall", + "en/projects/hotspot", + "en/projects/homeassistant", { "group": "Teknofest", "pages": [ @@ -391,8 +395,6 @@ }, "seo": { "metatags": { - "charset": "UTF-8", - "viewport": "width=device-width, initial-scale=1.0", "description": "T3 Gemstone Development Boards", "keywords": "t3, t3vakfi, t3gemstone, gemstone, gemstoneboard, obsidian, obsidyen, kuvars, quartz, t3foundation, embedded, realtime, iot, robotics, uav, drone, teknofest, github", "author": "T3 Foundation", @@ -401,7 +403,6 @@ "indexing": "all", "google": "notranslate", "generator": "Mintlify", - "format-detection": "telephone=no", "referrer": "origin", "refresh": "30", "rating": "general", @@ -414,9 +415,6 @@ "category": "Technology", "target": "all", "HandheldFriendly": "True", - "apple-mobile-web-app-capable": "yes", - "apple-mobile-web-app-status-bar-style": "black", - "apple-mobile-web-app-title": "T3 Gemstone", "application-name": "T3 Gemstone" } }, diff --git a/en/academy/academy.mdx b/en/academy/academy.mdx index f316feb..5677883 100644 --- a/en/academy/academy.mdx +++ b/en/academy/academy.mdx @@ -8,8 +8,8 @@ mode: "custom" export const HeroCard = ({ filename, title, description, href }) => { return ( - - + +

{title}

{description} diff --git a/en/boards/o1/ai/installation.mdx b/en/boards/o1/ai/installation.mdx new file mode 100644 index 0000000..23ebe58 --- /dev/null +++ b/en/boards/o1/ai/installation.mdx @@ -0,0 +1,75 @@ +--- +title: 'Installation' +description: 'T3 Edge AI Package Installation' +--- + +import SnippetUEnv from '/snippets/boards/o1/uenv.mdx'; +import SnippetUEnvEdit from '/snippets/boards/o1/uenv-overlay-edit-en.mdx'; + +This section provides instructions on how to install the Edge AI package on the T3 Gemstone O1 development board. +With these packages, you will be able to perform image processing operations using AI accelerators. + + + + + ```bash + sudo apt update + ``` + Keeping the system package list up to date prevents dependency errors that may occur during installation. + + + + ```bash + sudo apt install t3-gem-o1-edgeai + ``` + This command installs the Edge AI development tools and libraries in a single step. + + + + + Open the `uEnv.txt` file located in the boot directory using the `nano` text editor from the terminal interface. + + ```bash + sudo nano /boot/uEnv.txt + ``` + + + Since we are using the command with sudo, it will prompt for a password. If you have not changed it, you + must use the password you set while writing the image with Gem-Imager. + + + The `uEnv.txt` file will contain definitions such as the following: + + + + Add the `k3-am67a-t3-gem-o1-edgeai-apps.dtbo` filename to the end of the `overlays=` line, leaving a space. + + The final state of the `uEnv.txt` file will look like this. You must place the appropriate filename in the `` section. + + + + After defining the overlay file, the board must be rebooted for the changes to be applied by the system. + + ```bash + sudo reboot + ``` + + + + + + ```bash + sudo su + source /opt/t3-edgeai-env + ``` + + These commands allow you to switch to the `root` user and load the environment variables required for Edge AI. + + + Note: Due to the use of AI accelerators, operations are performed at the hardware level. Therefore, the + relevant steps must be executed under the root user. + + + + + diff --git a/en/boards/o1/ai/usage.mdx b/en/boards/o1/ai/usage.mdx index c77c80e..8cd1d5b 100644 --- a/en/boards/o1/ai/usage.mdx +++ b/en/boards/o1/ai/usage.mdx @@ -5,31 +5,220 @@ description: 'Preparing Image Processing Applications' import SnippetAIUsageE1 from '/snippets/ai/usage-e1.mdx'; -This section will provide information on how to use image processing models that you have prepared with your own dataset or acquired as pre-trained models. +This section will provide information on how to use image processing models that you have prepared with +your own dataset or acquired as pre-trained models. -## Integrating with Your Existing Python Code +```bash +sudo su +source /opt/t3-edgeai-env +``` -TensorFlow Lite runs models on the device's CPU (Central Processing Unit) by default. +These commands allow you to switch to the `root` user and load the environment variables required for Edge AI. -A "Delegate" is a mechanism that "delegates" some or all of the computations in your TFLite model to more specialized hardware instead of the CPU. To use these specialized hardware components (such as the image processing accelerators found in the T3 Gemstone O1 Development Board), you need to load the required shared library file (.so, .dll, etc.). - - + + If the environment variables file does not exist, you can install the relevant package from the + [Edge AI Installation](/en/boards/o1/ai/installation) section. + ## Edge AI GStreamer Apps -This project is a collection of open-source reference applications provided by Texas Instruments that can be used to rapidly develop AI applications on devices like the T3 Gemstone O1. It primarily operates on a GStreamer-based architecture and offers ready-made solutions for performing image processing, object detection, streaming, and other AI workflows on Texas Instruments processors and SoC hardware. +This project is a collection of open-source reference applications provided by Texas Instruments that can be used to +rapidly develop AI applications on devices like the T3 Gemstone O1. It primarily operates on a GStreamer-based +architecture and offers ready-made solutions for performing image processing, object detection, streaming, and other +AI workflows on Texas Instruments processors and SoC hardware. + +Once you have completed the Edge AI installation in the [Installation](/en/boards/o1/ai/installation) section, +you can access this project from the `/opt/edgeai-gst-apps` directory. The configs folder contains examples for multiple applications. It allows you to run the project in both Python and C++ languages. +For example, the configuration found in `configs/image_classification.yaml` is as follows: + +```yaml +title: "Image Classification" +log_level: 2 +inputs: + input0: + source: /dev/video-usb-cam0 + format: jpeg + width: 1280 + height: 720 + framerate: 30 + input1: + source: /opt/edgeai-test-data/videos/video0_1280_768.h264 + format: h264 + width: 1280 + height: 768 + framerate: 30 + loop: True + input2: + source: /opt/edgeai-test-data/images/%04d.jpg + width: 1280 + height: 720 + index: 0 + framerate: 1 + loop: True +models: + model0: + model_path: /opt/model_zoo/TVM-CL-3090-mobileNetV2-tv + topN: 5 + model1: + model_path: /opt/model_zoo/TFL-CL-0000-mobileNetV1-mlperf + topN: 5 + model2: + model_path: /opt/model_zoo/ONR-CL-6360-regNetx-200mf + topN: 5 +outputs: + output0: + sink: kmssink + width: 1920 + height: 1080 + overlay-perf-type: graph + output1: + sink: /opt/edgeai-test-data/output/output_video.mkv + width: 1920 + height: 1080 + output2: + sink: /opt/edgeai-test-data/output/output_image_%04d.jpg + width: 1920 + height: 1080 + output3: + sink: remote + width: 1920 + height: 1080 + port: 8081 + host: 127.0.0.1 + encoding: jpeg + overlay-perf-type: graph + +flows: + flow0: [input2,model1,output0,[320,150,1280,720]] +``` + +You can customize the YAML file above according to your own requirements. + + +The title of the application. Used as a reference in log outputs and the interface. + + + +Determines the log detail level. 0: minimal, 5: debug + + + +Input data sources to be processed. + + + +The path to the input source. + + + +The format of the input data. For example: jpeg, h264 + + + +Input image width (pixels) + + + +Input image height (pixels) + + + +Input frame rate (FPS) + + + +Whether to repeat in a loop. + + + +Models to be used + + + + The file path of the model. + + + + The number of top-N predictions to take from the model. + + + +Output destinations + + + +Output path + + + +Streaming resolution width (pixels) + + + +Streaming resolution height (pixels) + + + +Host IP for streaming + + + +Streaming port number + + + +Streaming image format + + + +Performance graph overlay type + + + +Defines the data flow. + + + +Defines the data flow: input → model → output. Optionally, you can specify an ROI (x, y, width, height). + + + + Before starting image processing steps, ensure that you are logged in as `root` and have loaded the environment variables! + + + ```bash Python - /opt/edgeai-gst-apps/apps_python# ./app_edgeai.py ../configs/image_classification.yaml + cd /opt/edgeai-gst-apps/apps_python && ./app_edgeai.py ../configs/image_classification.yaml ``` + ```bash C++ - # Todo: How to compile? - # After compiling the application with CMake, you can run the sample application with the following command. - /opt/edgeai-gst-apps/apps_cpp# ./bin/Release/app_edgeai ../configs/image_classification.yaml + # Compile the project + cd /opt/edgeai-gst-apps && ./scripts/compile_cpp_apps.sh + + # After compiling the application with the script, you can run the example application using the command below. + cd /opt/edgeai-gst-apps/apps_cpp && ./bin/Release/app_edgeai ../configs/image_classification.yaml ``` + -The source code is available in Texas Instruments' [edgeai-gst-apps](https://github.com/TexasInstruments/edgeai-gst-apps) repository on GitHub. +To terminate the image processing, press `CTRL + C` once. + +If you have not modified the output file in the YAML file, you can access the output at `/opt/edgeai-test-data/output/output_video.mkv`. + +## Integrating into Your Existing Python Code + +By default, TensorFlow Lite runs models on the device's CPU (Central Processing Unit). + +A "Delegate" is a mechanism that "delegates" some or all of the computations in your TFLite model from the CPU to +more specialized hardware. To use these specialized hardware accelerators (such as the image processing accelerators +on the T3 Gemstone O1 Development Board), you need to load the required shared library file (.so, .dll, etc.). + + +Before starting image processing steps, ensure that you are logged in as `root` and have loaded the environment variables! + + + diff --git a/en/boards/o1/introduction.mdx b/en/boards/o1/introduction.mdx index d375faa..86c49bc 100644 --- a/en/boards/o1/introduction.mdx +++ b/en/boards/o1/introduction.mdx @@ -171,7 +171,7 @@ High-performance development board based on Texas Instruments AM67A processor - + 24-bit barometric pressure sensor @@ -203,10 +203,6 @@ High-performance development board based on Texas Instruments AM67A processor Dedicated button for board reset functionality - - User-configurable button - - Programmable status indicators for system monitoring and user feedback diff --git a/en/boards/o1/peripherals/gpio.mdx b/en/boards/o1/peripherals/gpio.mdx index cda8172..a1b6db9 100644 --- a/en/boards/o1/peripherals/gpio.mdx +++ b/en/boards/o1/peripherals/gpio.mdx @@ -4,12 +4,13 @@ description: 'General Purpose Input Output (GPIO)' --- import SnippetExamplesGpioScript from '/snippets/boards/o1/examples/gpio-script.mdx'; +import SnippetExamplesLedScript from '/snippets/boards/o1/examples/led-script.mdx'; -By the end of this section, you will gain experience in the following topics: + By the end of this section, you will gain experience in the following topics: -- Using GPIO via Gemstone -- Preliminary preparation for the [t3gemstone/examples/gpio](https://github.com/t3gemstone/examples/tree/main/gpio) project. + - Using GPIO via Gemstone + - Preliminary preparation for the [t3gemstone/examples/gpio](https://github.com/t3gemstone/examples/tree/main/gpio) project. GPIO (General Purpose Input/Output) refers to pins used for general-purpose input and output operations in diff --git a/en/boards/o1/peripherals/i2c.mdx b/en/boards/o1/peripherals/i2c.mdx index cecec8a..7da3fa7 100644 --- a/en/boards/o1/peripherals/i2c.mdx +++ b/en/boards/o1/peripherals/i2c.mdx @@ -9,7 +9,7 @@ import SnippetDevices from '/snippets/boards/o1/i2c/devices.mdx'; import SnippetRead from '/snippets/boards/o1/i2c/read.mdx'; import SnippetWrite from '/snippets/boards/o1/i2c/write.mdx'; -The [I2C (Inter-Integrated Circuit)](https://preprod.kureansiklopedi.com/en/detay/i2c-inter-integrated-circuit-f974c) +The [I2C (Inter-Integrated Circuit)](https://kureansiklopedi.com/en/detay/i2c-inter-integrated-circuit-afd6a) protocol is a widely used communication protocol for data transmission between microcontrollers and other integrated circuits. It is preferred in applications requiring low-speed data transmission, especially for communication with sensors, memory modules, and other peripheral devices. diff --git a/en/boards/o1/peripherals/mcu.mdx b/en/boards/o1/peripherals/mcu.mdx index 50a83fa..426a2a4 100644 --- a/en/boards/o1/peripherals/mcu.mdx +++ b/en/boards/o1/peripherals/mcu.mdx @@ -105,6 +105,12 @@ connection, time synchronization, package update, and bluetooth) and starts the ## 2. MCU Software Development + + This section describes the bare-metal software development process for Cortex-R5 and C7x cores. + Software running on the relevant architectures is compiled using Texas SDK and tools and loaded + onto the development board. + + The tools required to compile MCU projects are listed below. 1. Texas Instruments Processor SDK RTOS J722S @@ -307,7 +313,7 @@ such as `Must be disabled via Device-tree. (mcu_spi0)`. To disable these; As a result of the above operations, `mcu_spi0` will now be available for use by the mcu cores. However, the `Usage Purpose in Linux` section in the table indicates that it is -`- Used for BMP390 pressure and ICM20948 imu spi`. Therefore, access to these peripherals from Linux will be +`- Used for LPS22DFTR pressure and ICM20948 imu spi`. Therefore, access to these peripherals from Linux will be closed and they will need to be driven by the MCU. ### 3.2. Example Scenario: Driving a Servo Motor from the MCU with PWM diff --git a/en/changelog.mdx b/en/changelog.mdx index c9eda54..59a6c84 100644 --- a/en/changelog.mdx +++ b/en/changelog.mdx @@ -6,6 +6,24 @@ icon: "clock-rotate-left" All software and hardware changes for the Gemstone project are summarized below. + + * T3 Gemstone O1 has been merged into the [Apache NuttX](/en/projects/nuttx) project and [published](https://nuttx.apache.org/docs/latest/platforms/arm/am67/boards/t3-gem-o1/index.html) on the official website. + + + + * [Mesa](https://github.com/t3gemstone/mesa-pvr) library integration for Wayland support [completed.](/en/roadmap#wayland-transition) + * New Wifi revision T3-GEM-O1 for Realtek RTL8822CS support [added.](https://github.com/t3gemstone/meta-gemstone/commit/2403da4aa7f42897839d99e98d9706c176a2ca77) + * New projects have been added to [the roadmap section.](https://docs.t3gemstone.org/en/roadmap) + + + + * An example of using the Gemstone development board as a Wifi Hotspot has been [added.](/en/projects/hotspot) + * A small-scale firewall project for home users has been [added.](/en/projects/firewall) + * EdgeAI studies have been [completed.](/en/boards/o1/ai/installation) + * Steps to share your computer's internet connection with your board have been [added.](/en/imager/customization#using-the-host-computer’s-internet-via-the-board) + * LLM-commanded VTOL swarm [work](https://discuss.ardupilot.org/t/swarm-with-local-llm/143195) [published!](https://github.com/t3gemstone/ardupilot?tab=readme-ov-file#ai-swarm) + + * T3 Gemstone O1 officially [listed](https://ardupilot.org/plane/docs/common-t3-gem-o1-overview.html) on Ardupilot website! diff --git a/en/development.mdx b/en/development.mdx index b4da323..7b3566a 100644 --- a/en/development.mdx +++ b/en/development.mdx @@ -46,7 +46,7 @@ communication methods like serial port, CanBUS, I2C, SPI, Ethernet, and controll and actuators. The hardware designs (PCB, etc.) of the _T3-GEM-O1_ development board are available -[at this address](http://github.com/t3gemstone/hardware). Examples of how to use the hardware on it are explained +[at this address](https://github.com/t3gemstone/hardware). Examples of how to use the hardware on it are explained in the later ([Development Boards](./boards/o1/introduction)) sections. @@ -58,7 +58,7 @@ in the later ([Development Boards](./boards/o1/introduction)) sections. Gemstone runs on a GNU/Linux operating system. It includes components such as the [Kernel](https://github.com/t3gemstone/linux), [Bootloader (U-Boot)](https://github.com/t3gemstone/u-boot), [Distribution (Distro)](https://github.com/t3gemstone/sdk/tree/main/distro), and Firmware. Tools like -[Yocto Project](https://preprod.kureansiklopedi.com/tr/detay/yocto-projesi-the-yocto-project-b9e7e) and +[Yocto Project](https://kureansiklopedi.com/en/detay/yocto-project-the-yocto-project-eeba0) and [Debootstrap](https://github.com/t3gemstone/debos) were used to assemble the system. As GNU/Linux distributions ([Distro](https://github.com/t3gemstone/sdk/tree/main/distro)), Debian, Ubuntu, @@ -221,7 +221,7 @@ After static IP is assigned, run the command below to test the connection. If yo successful. ```bash -gemstone@t3-gem-o1:~$ ping 10.0.0.2 +gemstone@t3-gem-o1:~$ ping 10.0.0.1 ``` #### 2.2.2. Clone example projects with Git @@ -258,3 +258,69 @@ gemstone@t3-gem-o1:~$ sudo ./build/magnetometer/c/magnetometer gemstone@t3-gem-o1:~$ sudo ./build/magnetometer/cpp/magnetometer gemstone@t3-gem-o1:~$ sudo ./build/magnetometer/python/magnetometer ``` + +# 3. VSCode Remote Development + +You can perform development by making a remote connection to Gemstone via VSCode installed on your operating system. +With this method, you perform code compilation processes on the board using your own computer's resources. +For your board to support this, the SSH option in the [Services](./quickstart#services) section explained in the +quickstart section must be checked during installation. + +### 3.1. Installing the Extension + +To establish a remote connection via VSCode, you need to install the "Remote - SSH" extension developed by Microsoft. + +1. Open VSCode. +2. Click on the **Extensions** icon in the left menu or press `Ctrl+Shift+X`. +3. Type `Remote - SSH` in the search bar. +4. Find the extension published by Microsoft and click the **Install** button. + + +
+ + + + + + + + + + +The planned tasks are listed in the table below. + +| | | +|:------------------------------------------------------------------------------------------------------------|-------------------------------:| +| Porting the ChibiOS HAL for the AM67a Cortex-R5 cores | Volunteer Developer Needed | +| Loading ChibiOS onto the R5 core via the remoteproc mechanism by U-Boot or Linux | Volunteer Developer Needed | +| Serial port (UART) driver support and console access | Volunteer Developer Needed | +| GPIO driver support | Volunteer Developer Needed | +| Building Ardupilot for the R5 cores using the AP_HAL_ChibiOS layer | Volunteer Developer Needed | +| Running Ardupilot as an autopilot on top of ChibiOS | Volunteer Developer Needed | +| SPI and I2C driver support (for sensors such as IMU, barometer, etc.) | Volunteer Developer Needed | +| PWM driver support (for motor and servo outputs) | Volunteer Developer Needed | +| CAN Bus (DroneCAN) driver support | Volunteer Developer Needed | +| Communication between ChibiOS running on the R5 core and Linux running on the A53 core via Texas IPC | Volunteer Developer Needed | +| Providing MAVLink telemetry and ground control station (GCS) connectivity | Volunteer Developer Needed | + ## PX4 Autopilot The goal is to run the PX4 autopilot on Gemstone Linux (without NuttX). @@ -90,7 +147,7 @@ development board. | | | |:------------------------------------------------------------------------------------------------------------|-------------------------------:| -| Adding T3-GEM-O1 configuration to Buildroot and creating a pull request to its [address](https://github.com/buildroot/buildroot) | Volunteer Developer Needed | +| Adding T3-GEM-O1 configuration to Buildroot and creating a pull request to its [address](https://github.com/t3gemstone/buildroot) | Volunteer Developer Needed | | Creating two image types named Minimal and Kiosk and similarly creating a merge request | Volunteer Developer Needed | ## Phoenix RTOS @@ -103,3 +160,36 @@ on Gemstone. + +## Wayland Transition + +The GPU (IMG BXS4-64) driver provided by TI for the AM67A SoC cannot accelerate X11 desktop environments. +Windows are currently rendered without hardware acceleration using the CPU (llvmpipe). This causes the desktop environment to run sluggishly. +The same driver includes acceleration support for Wayland. The goal is to transition to a Wayland-supported +desktop environment that is stable, low on resource usage, feature-rich, and suitable for the majority of users. + + + + + + + +| | | +|:------------------------------------------------------------------------------------------------------------|-------------------------------:| +| Compiling the [Mesa library](https://gitlab.freedesktop.org/StaticRocket/mesa) with Ubuntu 22.04 build tools and packaging it as a DEB package | `Completed` | +| Selecting a suitable Wayland desktop environment or window manager | Volunteer Developer Needed | +| Finding programs such as settings, file manager, and network manager (if not bundled with the selected environment) | Volunteer Developer Needed | +| Creating a common theme for window borders, status bar, and similar elements for interface consistency | Volunteer Developer Needed | + +## Linux Kernel Version 7 + +The goal is to run Linux kernel version 7 on the T3-GEM-O1 development board, instead of the currently used 6.12 version. +This will allow taking advantage of new hardware drivers, improvements, and bug fixes. + + + + + + + + diff --git a/en/sdk/components.mdx b/en/sdk/components.mdx index 278eb0b..b36d1f6 100644 --- a/en/sdk/components.mdx +++ b/en/sdk/components.mdx @@ -155,10 +155,10 @@ The diagrams below summarize all Task functions used by the SDK. flowchart n1["/Taskfile.yml"] style n1 fill:#D2F5DF - n1 --- n5["**[task fetch]**

Downloads Yocto studies and Texas Instruments Firmware source codes used by the SDK via vcstool."] - n1 --- n6["**[task box]**

Creates a distrobox image from the Ubuntu 22.04 Docker image used by Yocto and Debos and enters it."] - n1 --- n7["**[task permissions]**

Sets necessary permissions for using Yocto."] - n1 --- n11["**[task destroy]**

Cleans all compiled outputs and docker images."] + n1 --- n5@{ label: "**[task fetch]**

Downloads Yocto studies and Texas Instruments Firmware source codes used by the SDK via vcstool." } + n1 --- n6@{ label: "**[task box]**

Creates a distrobox image from the Ubuntu 22.04 Docker image used by Yocto and Debos and enters it." } + n1 --- n7@{ label: "**[task permissions]**

Sets necessary permissions for using Yocto." } + n1 --- n11@{ label: "**[task destroy]**

Cleans all compiled outputs and docker images." } n1@{ shape: "rounded", label: "/Taskfile.yml" } ``` @@ -170,9 +170,9 @@ flowchart flowchart n1["/yocto/Taskfile.yml"] style n1 fill:#D2F5DF - n1 --- n5["**[task yocto:build]**

Performs all Yocto building processes according to the defined machine type and creates kernel, bootloader, firmware."] - n1 --- n6["**[task yocto:local-apt-server]**

Starts a local-apt server to use Yocto packages that need to be installed on the image when the task distro:build command is run after Yocto builds are complete."] - n1 --- n7["**[task yocto:runqemu]**

Runs the operating system with QEMU after Yocto and Debos processes are completed."] + n1 --- n5@{ label: "**[task yocto:build]**

Performs all Yocto building processes according to the defined machine type and creates kernel, bootloader, firmware." } + n1 --- n6@{ label: "**[task yocto:local-apt-server]**

Starts a local-apt server to use Yocto packages that need to be installed on the image when the task distro:build command is run after Yocto builds are complete." } + n1 --- n7@{ label: "**[task yocto:runqemu]**

Runs the operating system with QEMU after Yocto and Debos processes are completed." } n1@{ shape: "rounded", label: "/yocto/Taskfile.yml" } ``` @@ -184,8 +184,8 @@ flowchart flowchart n1["/distro/Taskfile.yml"] style n1 fill:#D2F5DF - n1 --- n5["**[task distro:build]**

Performs operations to create .img extension images according to the machine and distribution scheme defined in the **distro.yaml** file via the Debos project."] - n1 --- n6["**[task distro:build:all]**

While the task distro:build command creates only one image according to the machine and image type given as a parameter, the **build:all** command compiles for all machine and distro types."] + n1 --- n5@{ label: "**[task distro:build]**

Performs operations to create .img extension images according to the machine and distribution scheme defined in the **distro.yaml** file via the Debos project." } + n1 --- n6@{ label: "**[task distro:build:all]**

While the task distro:build command creates only one image according to the machine and image type given as a parameter, the **build:all** command compiles for all machine and distro types." } n1 n1@{ shape: "rounded", label: "/distro/Taskfile.yml" } ``` diff --git a/en/sdk/debos.mdx b/en/sdk/debos.mdx index 78d42bd..746fc9c 100644 --- a/en/sdk/debos.mdx +++ b/en/sdk/debos.mdx @@ -51,7 +51,7 @@ A few parameters are summarized here. For the rest, refer to the `vars` section - `jammy` `noble` `bullseye` `bookworm` `yirmiuc-deb` + `jammy` `noble` `bullseye` `bookworm` `yirmiuc` `yirmibes` @@ -91,7 +91,11 @@ Used in projects where the current code is stable for Debian 11. The latest version of Debian. - + +Pardus 23 + + + The latest version of Pardus. diff --git a/en/troubleshoting.mdx b/en/troubleshoting.mdx index 3686ddb..f3776d4 100644 --- a/en/troubleshoting.mdx +++ b/en/troubleshoting.mdx @@ -11,6 +11,6 @@ This section describes solutions for the most common hardware and software probl If you receive errors such as `The code execution cannot continue because Qt6SerialPort.dll was not found. Reinstalling the program may fix this problem.` or `.dll not found` when starting the application, please download the latest version -from http://www.t3gemstone.org/software. If an unresolved problem persists even with the new version, you can +from https://www.t3gemstone.org/software. If an unresolved problem persists even with the new version, you can temporarily use [Balena Etcher](https://www.balena.io/) to perform the writing operation. To contribute, you can report the issue at https://github.com/t3gemstone/gem-imager/issues. diff --git a/favicon.svg b/favicon.svg deleted file mode 100644 index b785c73..0000000 --- a/favicon.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/fonts.css b/fonts.css new file mode 100644 index 0000000..13b33dd --- /dev/null +++ b/fonts.css @@ -0,0 +1,52 @@ +/* Import the same fonts used on mintlify.com */ + +/* Inter Variable Font - matching the main site */ +@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap'); + +/* Geist Mono for code - matching the main site */ +@import url('https://fonts.googleapis.com/css2?family=Geist+Mono:ital,wght@0,100..900;1,100..900&display=swap'); + +/* Override Mintlify's default font variables to match main site */ +:root { + --font-inter: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + --font-geist-mono: 'Geist Mono', 'Menlo', 'Monaco', 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace; +} + +/* Apply fonts to body and common elements with explicit OpenType features */ +body { + font-family: var(--font-inter); + font-feature-settings: normal; /* Ensure default character variants */ + font-variant-numeric: normal; + font-variant-ligatures: normal; +} + +/* Code elements */ +code, +pre, +.code, +.hljs { + font-family: var(--font-geist-mono); +} + +/* Ensure proper font weight and style support */ +.font-inter { + font-family: var(--font-inter); +} + +.font-mono { + font-family: var(--font-geist-mono); +} + +/* Fix for true italics instead of synthetic slanted text */ +em, +i, +.italic { + font-style: italic; + font-synthesis: none; /* Prevent synthetic italic generation */ +} + +/* Explicitly disable stylistic alternates that might cause character differences */ +h1, h2, h3, h4, h5, h6, p, span, div { + font-feature-settings: "ss01" 0, "ss02" 0, "ss03" 0; /* Disable common stylistic sets */ + font-variant-alternates: normal; +} \ No newline at end of file diff --git a/images/.DS_Store b/images/.DS_Store new file mode 100644 index 0000000..fc1bcde Binary files /dev/null and b/images/.DS_Store differ diff --git a/images/adguard-home-en-dashboard.png b/images/adguard-home-en-dashboard.png new file mode 100644 index 0000000..8ee875a Binary files /dev/null and b/images/adguard-home-en-dashboard.png differ diff --git a/images/adguard-home-en-login.png b/images/adguard-home-en-login.png new file mode 100644 index 0000000..b14c0ca Binary files /dev/null and b/images/adguard-home-en-login.png differ diff --git a/images/adguard-home-tr-dashboard.png b/images/adguard-home-tr-dashboard.png new file mode 100644 index 0000000..b3ebf1e Binary files /dev/null and b/images/adguard-home-tr-dashboard.png differ diff --git a/images/adguard-home-tr-login.png b/images/adguard-home-tr-login.png new file mode 100644 index 0000000..9e19f08 Binary files /dev/null and b/images/adguard-home-tr-login.png differ diff --git a/images/ardupilot.png b/images/ardupilot.png new file mode 100644 index 0000000..b71bf26 Binary files /dev/null and b/images/ardupilot.png differ diff --git a/images/bootmode/devboot-bootmode.svg b/images/bootmode/devboot-bootmode.svg index b3c6510..4c5d64c 100644 --- a/images/bootmode/devboot-bootmode.svg +++ b/images/bootmode/devboot-bootmode.svg @@ -1,3 +1 @@ - - -
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
\ No newline at end of file + \ No newline at end of file diff --git a/images/bootmode/emmc-bootmode.svg b/images/bootmode/emmc-bootmode.svg index 6ace05b..e294702 100644 --- a/images/bootmode/emmc-bootmode.svg +++ b/images/bootmode/emmc-bootmode.svg @@ -1,3 +1 @@ - - -
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
\ No newline at end of file + \ No newline at end of file diff --git a/images/bootmode/ethernet-rgmii-bootmode.svg b/images/bootmode/ethernet-rgmii-bootmode.svg index a778364..d2dca65 100644 --- a/images/bootmode/ethernet-rgmii-bootmode.svg +++ b/images/bootmode/ethernet-rgmii-bootmode.svg @@ -1,3 +1 @@ - - -
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
\ No newline at end of file + \ No newline at end of file diff --git a/images/bootmode/sd-card-bootmode.svg b/images/bootmode/sd-card-bootmode.svg index 94841b6..e585b6d 100644 --- a/images/bootmode/sd-card-bootmode.svg +++ b/images/bootmode/sd-card-bootmode.svg @@ -1,3 +1 @@ - - -
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
\ No newline at end of file + \ No newline at end of file diff --git a/images/bootmode/uart-bootmode.svg b/images/bootmode/uart-bootmode.svg index 8427f7d..e9faa65 100644 --- a/images/bootmode/uart-bootmode.svg +++ b/images/bootmode/uart-bootmode.svg @@ -1,3 +1 @@ - - -
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
\ No newline at end of file + \ No newline at end of file diff --git a/images/bootmode/usb-dfu-bootmode.svg b/images/bootmode/usb-dfu-bootmode.svg index 46935c7..d489faa 100644 --- a/images/bootmode/usb-dfu-bootmode.svg +++ b/images/bootmode/usb-dfu-bootmode.svg @@ -1,3894 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - - - - - - 3 - - - - - - - - - - - - - - - - - - - 4 - - - - - - - - - - - - - - - - - - - 5 - - - - - - - - - - - - - - - - - - - 6 - - - - - - - - - - - - - - - - - - - 7 - - - - - - - - - - - - - - - - - - - 8 - - - - - - - - - - - - - - - - - - - 9 - - - - - - - - - - - - - - - - - - - 10 - - - - - - - - - - - - - - - - - - - 11 - - - - - - - - - - - - - - - - - - - 12 - - - - - - - - - - - - - - - - - - - 13 - - - - - - - - - - - - - - - - - - - 14 - - - - - - - - - - - - - - - - - - - 15 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/chibios.png b/images/chibios.png new file mode 100644 index 0000000..98adc2d Binary files /dev/null and b/images/chibios.png differ diff --git a/images/components-dark.png b/images/components-dark.png new file mode 100644 index 0000000..9097f44 Binary files /dev/null and b/images/components-dark.png differ diff --git a/images/components.png b/images/components.png new file mode 100644 index 0000000..4fd34de Binary files /dev/null and b/images/components.png differ diff --git a/images/gem-imager/linux-chmod-a.png b/images/gem-imager/linux-chmod-a.png new file mode 100644 index 0000000..8623604 Binary files /dev/null and b/images/gem-imager/linux-chmod-a.png differ diff --git a/images/gem-imager/linux-chmod-b.png b/images/gem-imager/linux-chmod-b.png new file mode 100644 index 0000000..117d337 Binary files /dev/null and b/images/gem-imager/linux-chmod-b.png differ diff --git a/images/homeassistant/.DS_Store b/images/homeassistant/.DS_Store new file mode 100644 index 0000000..fc7b57d Binary files /dev/null and b/images/homeassistant/.DS_Store differ diff --git a/images/homeassistant/homeassistant.png b/images/homeassistant/homeassistant.png new file mode 100644 index 0000000..6062892 Binary files /dev/null and b/images/homeassistant/homeassistant.png differ diff --git a/images/homeassistant/tr/app-store-search.png b/images/homeassistant/tr/app-store-search.png new file mode 100644 index 0000000..c6f6fb6 Binary files /dev/null and b/images/homeassistant/tr/app-store-search.png differ diff --git a/images/homeassistant/tr/app-store.png b/images/homeassistant/tr/app-store.png new file mode 100644 index 0000000..58b425c Binary files /dev/null and b/images/homeassistant/tr/app-store.png differ diff --git a/images/homeassistant/tr/data-sharing.png b/images/homeassistant/tr/data-sharing.png new file mode 100644 index 0000000..7f95ac2 Binary files /dev/null and b/images/homeassistant/tr/data-sharing.png differ diff --git a/images/homeassistant/tr/esphome-add-device-homeassistant.png b/images/homeassistant/tr/esphome-add-device-homeassistant.png new file mode 100644 index 0000000..34938d8 Binary files /dev/null and b/images/homeassistant/tr/esphome-add-device-homeassistant.png differ diff --git a/images/homeassistant/tr/esphome-add-device.png b/images/homeassistant/tr/esphome-add-device.png new file mode 100644 index 0000000..b3a3ac3 Binary files /dev/null and b/images/homeassistant/tr/esphome-add-device.png differ diff --git a/images/homeassistant/tr/esphome-add-sensor.png b/images/homeassistant/tr/esphome-add-sensor.png new file mode 100644 index 0000000..fee0a2b Binary files /dev/null and b/images/homeassistant/tr/esphome-add-sensor.png differ diff --git a/images/homeassistant/tr/esphome-device-config-2.png b/images/homeassistant/tr/esphome-device-config-2.png new file mode 100644 index 0000000..5970c0f Binary files /dev/null and b/images/homeassistant/tr/esphome-device-config-2.png differ diff --git a/images/homeassistant/tr/esphome-device-config.png b/images/homeassistant/tr/esphome-device-config.png new file mode 100644 index 0000000..b0d220c Binary files /dev/null and b/images/homeassistant/tr/esphome-device-config.png differ diff --git a/images/homeassistant/tr/esphome-device-details.png b/images/homeassistant/tr/esphome-device-details.png new file mode 100644 index 0000000..d84d63a Binary files /dev/null and b/images/homeassistant/tr/esphome-device-details.png differ diff --git a/images/homeassistant/tr/esphome-device-name.png b/images/homeassistant/tr/esphome-device-name.png new file mode 100644 index 0000000..1ca6b4a Binary files /dev/null and b/images/homeassistant/tr/esphome-device-name.png differ diff --git a/images/homeassistant/tr/esphome-device-wifi.png b/images/homeassistant/tr/esphome-device-wifi.png new file mode 100644 index 0000000..fda28bb Binary files /dev/null and b/images/homeassistant/tr/esphome-device-wifi.png differ diff --git a/images/homeassistant/tr/esphome-find.png b/images/homeassistant/tr/esphome-find.png new file mode 100644 index 0000000..cacead8 Binary files /dev/null and b/images/homeassistant/tr/esphome-find.png differ diff --git a/images/homeassistant/tr/esphome-flash-log-2.png b/images/homeassistant/tr/esphome-flash-log-2.png new file mode 100644 index 0000000..729707e Binary files /dev/null and b/images/homeassistant/tr/esphome-flash-log-2.png differ diff --git a/images/homeassistant/tr/esphome-flash-log.png b/images/homeassistant/tr/esphome-flash-log.png new file mode 100644 index 0000000..6065ae7 Binary files /dev/null and b/images/homeassistant/tr/esphome-flash-log.png differ diff --git a/images/homeassistant/tr/esphome-flash-options.png b/images/homeassistant/tr/esphome-flash-options.png new file mode 100644 index 0000000..3463a96 Binary files /dev/null and b/images/homeassistant/tr/esphome-flash-options.png differ diff --git a/images/homeassistant/tr/esphome-flashing.png b/images/homeassistant/tr/esphome-flashing.png new file mode 100644 index 0000000..0fcdc5d Binary files /dev/null and b/images/homeassistant/tr/esphome-flashing.png differ diff --git a/images/homeassistant/tr/esphome-gpio-setup.png b/images/homeassistant/tr/esphome-gpio-setup.png new file mode 100644 index 0000000..6264218 Binary files /dev/null and b/images/homeassistant/tr/esphome-gpio-setup.png differ diff --git a/images/homeassistant/tr/esphome-homeassistant-name.png b/images/homeassistant/tr/esphome-homeassistant-name.png new file mode 100644 index 0000000..21142da Binary files /dev/null and b/images/homeassistant/tr/esphome-homeassistant-name.png differ diff --git a/images/homeassistant/tr/esphome-installed-2.png b/images/homeassistant/tr/esphome-installed-2.png new file mode 100644 index 0000000..5f7489d Binary files /dev/null and b/images/homeassistant/tr/esphome-installed-2.png differ diff --git a/images/homeassistant/tr/esphome-installed.png b/images/homeassistant/tr/esphome-installed.png new file mode 100644 index 0000000..adab3eb Binary files /dev/null and b/images/homeassistant/tr/esphome-installed.png differ diff --git a/images/homeassistant/tr/esphome-welcome.png b/images/homeassistant/tr/esphome-welcome.png new file mode 100644 index 0000000..95fec16 Binary files /dev/null and b/images/homeassistant/tr/esphome-welcome.png differ diff --git a/images/homeassistant/tr/esphome.png b/images/homeassistant/tr/esphome.png new file mode 100644 index 0000000..e92d797 Binary files /dev/null and b/images/homeassistant/tr/esphome.png differ diff --git a/images/homeassistant/tr/home-location.png b/images/homeassistant/tr/home-location.png new file mode 100644 index 0000000..55916d0 Binary files /dev/null and b/images/homeassistant/tr/home-location.png differ diff --git a/images/homeassistant/tr/main.png b/images/homeassistant/tr/main.png new file mode 100644 index 0000000..92337f2 Binary files /dev/null and b/images/homeassistant/tr/main.png differ diff --git a/images/homeassistant/tr/preparation.png b/images/homeassistant/tr/preparation.png new file mode 100644 index 0000000..07fb063 Binary files /dev/null and b/images/homeassistant/tr/preparation.png differ diff --git a/images/homeassistant/tr/settings-2.png b/images/homeassistant/tr/settings-2.png new file mode 100644 index 0000000..cf808de Binary files /dev/null and b/images/homeassistant/tr/settings-2.png differ diff --git a/images/homeassistant/tr/settings.png b/images/homeassistant/tr/settings.png new file mode 100644 index 0000000..dbd4db0 Binary files /dev/null and b/images/homeassistant/tr/settings.png differ diff --git a/images/homeassistant/tr/user-creation.png b/images/homeassistant/tr/user-creation.png new file mode 100644 index 0000000..8426a09 Binary files /dev/null and b/images/homeassistant/tr/user-creation.png differ diff --git a/images/homeassistant/tr/welcome.png b/images/homeassistant/tr/welcome.png new file mode 100644 index 0000000..05aa9c2 Binary files /dev/null and b/images/homeassistant/tr/welcome.png differ diff --git a/images/linux-kernel-7.png b/images/linux-kernel-7.png new file mode 100644 index 0000000..e4228a1 Binary files /dev/null and b/images/linux-kernel-7.png differ diff --git a/images/orbit-os.jpeg b/images/orbit-os.jpeg new file mode 100644 index 0000000..1f6b7a0 Binary files /dev/null and b/images/orbit-os.jpeg differ diff --git a/images/wayland-logo.svg b/images/wayland-logo.svg new file mode 100644 index 0000000..45f8d8e --- /dev/null +++ b/images/wayland-logo.svg @@ -0,0 +1,10 @@ + + +Wayland logo + + + + + + + diff --git a/logo/dark.png b/logo/dark.png index 603788c..76ec965 100644 Binary files a/logo/dark.png and b/logo/dark.png differ diff --git a/logo/dark.svg b/logo/dark.svg deleted file mode 100644 index 1e77a8a..0000000 --- a/logo/dark.svg +++ /dev/null @@ -1,295 +0,0 @@ - -Gemstone diff --git a/logo/light.png b/logo/light.png index c2c02ee..f8082d6 100644 Binary files a/logo/light.png and b/logo/light.png differ diff --git a/logo/light.svg b/logo/light.svg deleted file mode 100644 index bda34ac..0000000 --- a/logo/light.svg +++ /dev/null @@ -1,276 +0,0 @@ - -Gemstone diff --git a/logo/logo.svg b/logo/logo.svg new file mode 100644 index 0000000..5da4bbd --- /dev/null +++ b/logo/logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/package-lock.json b/package-lock.json index 89743fa..19a6f1e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "mint": "^4.2.387" + "mint": "^4.2.560" } }, "node_modules/@alcalzone/ansi-tokenize": { @@ -114,9 +114,9 @@ "license": "MIT" }, "node_modules/@emnapi/runtime": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", - "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", "license": "MIT", "optional": true, "dependencies": { @@ -131,30 +131,30 @@ "optional": true }, "node_modules/@floating-ui/core": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz", - "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", "license": "MIT", "peer": true, "dependencies": { - "@floating-ui/utils": "^0.2.10" + "@floating-ui/utils": "^0.2.11" } }, "node_modules/@floating-ui/dom": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz", - "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", "license": "MIT", "peer": true, "dependencies": { - "@floating-ui/core": "^1.7.4", - "@floating-ui/utils": "^0.2.10" + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" } }, "node_modules/@floating-ui/utils": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", - "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", "license": "MIT", "peer": true }, @@ -985,19 +985,18 @@ } }, "node_modules/@mintlify/cli": { - "version": "4.0.990", - "resolved": "https://registry.npmjs.org/@mintlify/cli/-/cli-4.0.990.tgz", - "integrity": "sha512-bm/aPADbO+lPO3igGfnn/HoRCVuw+e4tJzbCDkK/XfI4eHax8OGfTclWXS8CrD2JW3pGHxwytW1+KhLZHv4BjQ==", + "version": "4.0.1163", + "resolved": "https://registry.npmjs.org/@mintlify/cli/-/cli-4.0.1163.tgz", + "integrity": "sha512-7sGs0RD5ctviP6j0H8D9GvQUF6k5Eqflag5cHQCQl0yvC/SlS0K1Qjr+jqs5QRADSCwjBMY41ZNMyBJlE9awbQ==", "license": "Elastic-2.0", "dependencies": { "@inquirer/prompts": "7.9.0", - "@mintlify/common": "1.0.760", - "@mintlify/link-rot": "3.0.925", - "@mintlify/models": "0.0.277", - "@mintlify/prebuild": "1.0.897", - "@mintlify/previewing": "4.0.955", - "@mintlify/scraping": "4.0.622", - "@mintlify/validation": "0.1.613", + "@mintlify/common": "1.0.892", + "@mintlify/link-rot": "3.0.1071", + "@mintlify/models": "0.0.307", + "@mintlify/prebuild": "1.0.1036", + "@mintlify/previewing": "4.0.1097", + "@mintlify/validation": "0.1.698", "adm-zip": "0.5.16", "chalk": "5.2.0", "color": "4.2.3", @@ -1008,10 +1007,14 @@ "inquirer": "12.3.0", "js-yaml": "4.1.0", "mdast-util-mdx-jsx": "3.2.0", + "open": "^8.4.2", + "openid-client": "^6.8.2", + "posthog-node": "5.17.2", "react": "19.2.3", "semver": "7.7.2", "unist-util-visit": "5.0.0", - "yargs": "17.7.1" + "yargs": "17.7.1", + "zod": "^4.3.6" }, "bin": { "mint": "bin/index.js", @@ -1019,20 +1022,23 @@ }, "engines": { "node": ">=18.0.0" + }, + "optionalDependencies": { + "keytar": "^7.9.0" } }, "node_modules/@mintlify/common": { - "version": "1.0.760", - "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.760.tgz", - "integrity": "sha512-QSZ2hc9k6SLhG6L7zcAATz9yiGBO2CRDs9/w6ZJfQMBNOS3FlrS49bmRrnL6CYXnlROzZUpI487BJ/a3rKhriQ==", + "version": "1.0.892", + "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.892.tgz", + "integrity": "sha512-ijCT8lTXWaPnQq1w/sAU3uAgKp/ur3FwQIggIixR119sT4kHDKyQk5f5dNshaDDPEWcYCU/ILevN8KokMPGtvA==", "license": "ISC", "dependencies": { "@asyncapi/parser": "3.4.0", "@asyncapi/specs": "6.8.1", "@mintlify/mdx": "^3.0.4", - "@mintlify/models": "0.0.277", + "@mintlify/models": "0.0.307", "@mintlify/openapi-parser": "^0.0.8", - "@mintlify/validation": "0.1.613", + "@mintlify/validation": "0.1.698", "@sindresorhus/slugify": "2.2.0", "@types/mdast": "4.0.4", "acorn": "8.11.2", @@ -1047,7 +1053,7 @@ "hex-rgb": "5.0.0", "ignore": "7.0.5", "js-yaml": "4.1.0", - "lodash": "4.17.21", + "lodash": "4.18.1", "mdast-util-from-markdown": "2.0.2", "mdast-util-gfm": "3.0.0", "mdast-util-mdx": "3.0.0", @@ -1066,7 +1072,8 @@ "remark-parse": "11.0.0", "remark-rehype": "11.1.1", "remark-stringify": "11.0.0", - "tailwindcss": "3.4.4", + "sucrase": "^3.34.0", + "tailwindcss": "^3.4.17", "unified": "11.0.5", "unist-builder": "4.0.0", "unist-util-map": "4.0.0", @@ -1079,13 +1086,13 @@ } }, "node_modules/@mintlify/common/node_modules/@floating-ui/react-dom": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.7.tgz", - "integrity": "sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", + "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", "license": "MIT", "peer": true, "dependencies": { - "@floating-ui/dom": "^1.7.5" + "@floating-ui/dom": "^1.7.6" }, "peerDependencies": { "react": ">=16.8.0", @@ -1412,15 +1419,15 @@ } }, "node_modules/@mintlify/common/node_modules/next-mdx-remote-client": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.6.tgz", - "integrity": "sha512-O4HIpi44d6SismhfG5W78aTUfgxfbsj6FgoM4/G3o4Vtcobt0Ej439IiDPkv+IqsmtouVYG1tGAsz1DIuj9Tfg==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.7.tgz", + "integrity": "sha512-12Ap5Z/tFIETMXFSBTH2IFEhJAso7MvOJ5ICyesA4q6FM4vtAcmb+4ZKa4tV1IVQJLBVqOhaEfIESZzdwjmrQQ==", "license": "MPL 2.0", "dependencies": { "@babel/code-frame": "^7.29.0", "@mdx-js/mdx": "^3.1.1", "@mdx-js/react": "^3.1.1", - "remark-mdx-remove-esm": "^1.2.3", + "remark-mdx-remove-esm": "^1.3.1", "serialize-error": "^13.0.1", "vfile": "^6.0.3", "vfile-matter": "^5.0.1" @@ -1471,16 +1478,17 @@ } }, "node_modules/@mintlify/link-rot": { - "version": "3.0.925", - "resolved": "https://registry.npmjs.org/@mintlify/link-rot/-/link-rot-3.0.925.tgz", - "integrity": "sha512-9LGD2iC8h5v5B3eoWEAWyHOMo01CpfzKn2HjRsv7hGnP6/69l6MTlBLwHPuMSBTKtDhAtaLaCVPNxLfwqVkPqA==", + "version": "3.0.1071", + "resolved": "https://registry.npmjs.org/@mintlify/link-rot/-/link-rot-3.0.1071.tgz", + "integrity": "sha512-baHpjzKIbrn/T5e2TIA4dTyXREXq/n+JDsb9Sq9eqvJIbXow4IvRliUaAVHu4N6fq/x58/0Rbom1QWwyIbvLeg==", "license": "Elastic-2.0", "dependencies": { - "@mintlify/common": "1.0.760", - "@mintlify/prebuild": "1.0.897", - "@mintlify/previewing": "4.0.955", + "@mintlify/common": "1.0.892", + "@mintlify/models": "0.0.307", + "@mintlify/prebuild": "1.0.1036", + "@mintlify/previewing": "4.0.1097", "@mintlify/scraping": "4.0.522", - "@mintlify/validation": "0.1.613", + "@mintlify/validation": "0.1.698", "fs-extra": "11.1.0", "unist-util-visit": "4.1.2" }, @@ -1488,127 +1496,144 @@ "node": ">=18.0.0" } }, - "node_modules/@mintlify/link-rot/node_modules/@floating-ui/react-dom": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.7.tgz", - "integrity": "sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@floating-ui/dom": "^1.7.5" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } + "node_modules/@mintlify/link-rot/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/mdx": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@mintlify/mdx/-/mdx-3.0.4.tgz", - "integrity": "sha512-tJhdpnM5ReJLNJ2fuDRIEr0zgVd6id7/oAIfs26V46QlygiLsc8qx4Rz3LWIX51rUXW/cfakjj0EATxIciIw+g==", + "node_modules/@mintlify/link-rot/node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", "license": "MIT", "dependencies": { - "@shikijs/transformers": "^3.11.0", - "@shikijs/twoslash": "^3.12.2", - "arktype": "^2.1.26", - "hast-util-to-string": "^3.0.1", - "mdast-util-from-markdown": "^2.0.2", - "mdast-util-gfm": "^3.1.0", - "mdast-util-mdx-jsx": "^3.2.0", - "mdast-util-to-hast": "^13.2.0", - "next-mdx-remote-client": "^1.0.3", - "rehype-katex": "^7.0.1", - "remark-gfm": "^4.0.0", - "remark-math": "^6.0.0", - "remark-smartypants": "^3.0.2", - "shiki": "^3.11.0", - "unified": "^11.0.0", - "unist-util-visit": "^5.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, - "peerDependencies": { - "@radix-ui/react-popover": "^1.1.15", - "react": "^18.3.1", - "react-dom": "^18.3.1" + "engines": { + "node": ">=14.14" } }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/mdx/node_modules/mdast-util-gfm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", - "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "node_modules/@mintlify/link-rot/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", "license": "MIT", "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" + "@types/unist": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/mdx/node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "node_modules/@mintlify/link-rot/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", "license": "MIT", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/mdx/node_modules/unist-util-visit": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", - "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "node_modules/@mintlify/link-rot/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/models": { - "version": "0.0.255", - "resolved": "https://registry.npmjs.org/@mintlify/models/-/models-0.0.255.tgz", - "integrity": "sha512-LIUkfA7l7ypHAAuOW74ZJws/NwNRqlDRD/U466jarXvvSlGhJec/6J4/I+IEcBvWDnc9anLFKmnGO04jPKgAsg==", + "node_modules/@mintlify/models": { + "version": "0.0.307", + "resolved": "https://registry.npmjs.org/@mintlify/models/-/models-0.0.307.tgz", + "integrity": "sha512-4lJrNXst3J1PcDhiFXHwYl+RnwhQyQt4l1sM2u6JotjoUR7Rx5NN5E8QukJmim1jLd7/v4qMzeD7s7F5TbV7zw==", "license": "Elastic-2.0", "dependencies": { - "axios": "1.10.0", + "axios": "1.15.0", "openapi-types": "12.1.3" }, "engines": { "node": ">=18.0.0" } }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/scraping": { - "version": "4.0.522", - "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.522.tgz", - "integrity": "sha512-PL2k52WT5S5OAgnT2K13bP7J2El6XwiVvQlrLvxDYw5KMMV+y34YVJI8ZscKb4trjitWDgyK0UTq2KN6NQgn6g==", + "node_modules/@mintlify/openapi-parser": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@mintlify/openapi-parser/-/openapi-parser-0.0.8.tgz", + "integrity": "sha512-9MBRq9lS4l4HITYCrqCL7T61MOb20q9IdU7HWhqYMNMM1jGO1nHjXasFy61yZ8V6gMZyyKQARGVoZ0ZrYN48Og==", + "license": "MIT", + "dependencies": { + "ajv": "^8.17.1", + "ajv-draft-04": "^1.0.0", + "ajv-formats": "^3.0.1", + "jsonpointer": "^5.0.1", + "leven": "^4.0.0", + "yaml": "^2.4.5" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mintlify/openapi-parser/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@mintlify/prebuild": { + "version": "1.0.1036", + "resolved": "https://registry.npmjs.org/@mintlify/prebuild/-/prebuild-1.0.1036.tgz", + "integrity": "sha512-kuAEEv20Q3xJq18Jvwn0zsOJoEFk23wnJuXGdF+yV+mafQdhYqMrUaaXfq0zXc0a3xFldXnsOcS7EfCNLxBr5Q==", "license": "Elastic-2.0", "dependencies": { - "@mintlify/common": "1.0.661", + "@mintlify/common": "1.0.892", + "@mintlify/openapi-parser": "^0.0.8", + "@mintlify/scraping": "4.0.756", + "@mintlify/validation": "0.1.698", + "chalk": "5.3.0", + "favicons": "7.2.0", + "front-matter": "4.0.2", + "fs-extra": "11.1.0", + "js-yaml": "4.1.0", + "openapi-types": "12.1.3", + "sharp": "0.33.5", + "sharp-ico": "0.1.5", + "unist-util-visit": "4.1.2", + "uuid": "11.1.0" + } + }, + "node_modules/@mintlify/prebuild/node_modules/@mintlify/scraping": { + "version": "4.0.756", + "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.756.tgz", + "integrity": "sha512-Sm8pz053l3o0e9d32GT9298I7pdbLxkM8+QpwcE9ewlYdcQ8SWBtUlxP22pgiA8j5AbOLTcf+sCnvHs5pdUjgQ==", + "license": "Elastic-2.0", + "dependencies": { + "@mintlify/common": "1.0.892", "@mintlify/openapi-parser": "^0.0.8", "fs-extra": "11.1.1", "hast-util-to-mdast": "10.1.0", @@ -1624,7 +1649,7 @@ "unified": "11.0.5", "unist-util-visit": "5.0.0", "yargs": "17.7.1", - "zod": "3.21.4" + "zod": "3.24.0" }, "bin": { "mintlify-scrape": "bin/cli.js" @@ -1633,95 +1658,7 @@ "node": ">=18.0.0" } }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/scraping/node_modules/@mintlify/common": { - "version": "1.0.661", - "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.661.tgz", - "integrity": "sha512-/Hdiblzaomp+AWStQ4smhVMgesQhffzQjC9aYBnmLReNdh2Js+ccQFUaWL3TNIxwiS2esaZvsHSV/D+zyRS3hg==", - "license": "ISC", - "dependencies": { - "@asyncapi/parser": "3.4.0", - "@mintlify/mdx": "^3.0.4", - "@mintlify/models": "0.0.255", - "@mintlify/openapi-parser": "^0.0.8", - "@mintlify/validation": "0.1.555", - "@sindresorhus/slugify": "2.2.0", - "@types/mdast": "4.0.4", - "acorn": "8.11.2", - "acorn-jsx": "5.3.2", - "color-blend": "4.0.0", - "estree-util-to-js": "2.0.0", - "estree-walker": "3.0.3", - "front-matter": "4.0.2", - "hast-util-from-html": "2.0.3", - "hast-util-to-html": "9.0.4", - "hast-util-to-text": "4.0.2", - "hex-rgb": "5.0.0", - "ignore": "7.0.5", - "js-yaml": "4.1.0", - "lodash": "4.17.21", - "mdast-util-from-markdown": "2.0.2", - "mdast-util-gfm": "3.0.0", - "mdast-util-mdx": "3.0.0", - "mdast-util-mdx-jsx": "3.1.3", - "micromark-extension-gfm": "3.0.0", - "micromark-extension-mdx-jsx": "3.0.1", - "micromark-extension-mdxjs": "3.0.0", - "openapi-types": "12.1.3", - "postcss": "8.5.6", - "rehype-stringify": "10.0.1", - "remark": "15.0.1", - "remark-frontmatter": "5.0.0", - "remark-gfm": "4.0.0", - "remark-math": "6.0.0", - "remark-mdx": "3.1.0", - "remark-parse": "11.0.0", - "remark-rehype": "11.1.1", - "remark-stringify": "11.0.0", - "tailwindcss": "3.4.4", - "unified": "11.0.5", - "unist-builder": "4.0.0", - "unist-util-map": "4.0.0", - "unist-util-remove": "4.0.0", - "unist-util-remove-position": "5.0.0", - "unist-util-visit": "5.0.0", - "unist-util-visit-parents": "6.0.1", - "vfile": "6.0.3" - } - }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/scraping/node_modules/@mintlify/common/node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", - "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/scraping/node_modules/@mintlify/validation": { - "version": "0.1.555", - "resolved": "https://registry.npmjs.org/@mintlify/validation/-/validation-0.1.555.tgz", - "integrity": "sha512-11QVUReL4N5u8wSCgZt4RN7PA0jYQoMEBZ5IrUp5pgb5ZJBOoGV/vPsQrxPPa1cxsUDAuToNhtGxRQtOav/w8w==", - "license": "Elastic-2.0", - "dependencies": { - "@mintlify/mdx": "^3.0.4", - "@mintlify/models": "0.0.255", - "arktype": "2.1.27", - "js-yaml": "4.1.0", - "lcm": "0.0.3", - "lodash": "4.17.21", - "object-hash": "3.0.0", - "openapi-types": "12.1.3", - "uuid": "11.1.0", - "zod": "3.21.4", - "zod-to-json-schema": "3.20.4" - } - }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/scraping/node_modules/fs-extra": { + "node_modules/@mintlify/prebuild/node_modules/@mintlify/scraping/node_modules/fs-extra": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", @@ -1735,24 +1672,10 @@ "node": ">=14.14" } }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/scraping/node_modules/remark-mdx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", - "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", - "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/link-rot/node_modules/@mintlify/scraping/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "node_modules/@mintlify/prebuild/node_modules/@mintlify/scraping/node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", @@ -1764,241 +1687,19 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/link-rot/node_modules/@radix-ui/react-arrow": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", - "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-primitive": "2.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@mintlify/link-rot/node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", - "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-escape-keydown": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@mintlify/link-rot/node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", - "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@mintlify/link-rot/node_modules/@radix-ui/react-popover": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", - "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@mintlify/link-rot/node_modules/@radix-ui/react-popper": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", - "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-rect": "1.1.1", - "@radix-ui/react-use-size": "1.1.1", - "@radix-ui/rect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@mintlify/link-rot/node_modules/@radix-ui/react-portal": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", - "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@mintlify/link-rot/node_modules/@radix-ui/react-presence": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", - "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@mintlify/link-rot/node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "node_modules/@mintlify/prebuild/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@mintlify/link-rot/node_modules/axios": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz", - "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@mintlify/link-rot/node_modules/fs-extra": { + "node_modules/@mintlify/prebuild/node_modules/fs-extra": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", @@ -2012,7 +1713,7 @@ "node": ">=14.14" } }, - "node_modules/@mintlify/link-rot/node_modules/mdast-util-mdx-jsx": { + "node_modules/@mintlify/prebuild/node_modules/mdast-util-mdx-jsx": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", @@ -2036,66 +1737,21 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/link-rot/node_modules/next-mdx-remote-client": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.6.tgz", - "integrity": "sha512-O4HIpi44d6SismhfG5W78aTUfgxfbsj6FgoM4/G3o4Vtcobt0Ej439IiDPkv+IqsmtouVYG1tGAsz1DIuj9Tfg==", - "license": "MPL 2.0", + "node_modules/@mintlify/prebuild/node_modules/remark-mdx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", + "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.29.0", - "@mdx-js/mdx": "^3.1.1", - "@mdx-js/react": "^3.1.1", - "remark-mdx-remove-esm": "^1.2.3", - "serialize-error": "^13.0.1", - "vfile": "^6.0.3", - "vfile-matter": "^5.0.1" - }, - "engines": { - "node": ">=20.9.0" + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" }, - "peerDependencies": { - "react": ">= 18.3.0 < 19.0.0", - "react-dom": ">= 18.3.0 < 19.0.0" - } - }, - "node_modules/@mintlify/link-rot/node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@mintlify/link-rot/node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/@mintlify/link-rot/node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/link-rot/node_modules/unist-util-visit": { + "node_modules/@mintlify/prebuild/node_modules/unist-util-visit": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", @@ -2110,13 +1766,13 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/link-rot/node_modules/unist-util-visit/node_modules/@types/unist": { + "node_modules/@mintlify/prebuild/node_modules/unist-util-visit/node_modules/@types/unist": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "license": "MIT" }, - "node_modules/@mintlify/link-rot/node_modules/unist-util-visit/node_modules/unist-util-is": { + "node_modules/@mintlify/prebuild/node_modules/unist-util-visit/node_modules/unist-util-is": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", @@ -2129,7 +1785,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/link-rot/node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { + "node_modules/@mintlify/prebuild/node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", @@ -2143,103 +1799,54 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/link-rot/node_modules/zod": { - "version": "3.21.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", - "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", + "node_modules/@mintlify/prebuild/node_modules/zod": { + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.0.tgz", + "integrity": "sha512-Hz+wiY8yD0VLA2k/+nsg2Abez674dDGTai33SwNvMPuf9uIrBC9eFgIMQxBBbHFxVXi8W+5nX9DcAh9YNSQm/w==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/@mintlify/models": { - "version": "0.0.277", - "resolved": "https://registry.npmjs.org/@mintlify/models/-/models-0.0.277.tgz", - "integrity": "sha512-f5zfRRDVpMvoUN69jB78r8f51z1xVC12Ytv4il1ZE7D1vBKsYruTNPU3fnvVPiiEp73U1ThFAd5lGDaDrB+kbg==", - "license": "Elastic-2.0", - "dependencies": { - "axios": "1.13.2", - "openapi-types": "12.1.3" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@mintlify/openapi-parser": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@mintlify/openapi-parser/-/openapi-parser-0.0.8.tgz", - "integrity": "sha512-9MBRq9lS4l4HITYCrqCL7T61MOb20q9IdU7HWhqYMNMM1jGO1nHjXasFy61yZ8V6gMZyyKQARGVoZ0ZrYN48Og==", - "license": "MIT", - "dependencies": { - "ajv": "^8.17.1", - "ajv-draft-04": "^1.0.0", - "ajv-formats": "^3.0.1", - "jsonpointer": "^5.0.1", - "leven": "^4.0.0", - "yaml": "^2.4.5" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@mintlify/openapi-parser/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@mintlify/prebuild": { - "version": "1.0.897", - "resolved": "https://registry.npmjs.org/@mintlify/prebuild/-/prebuild-1.0.897.tgz", - "integrity": "sha512-WTrkMqS1om0eBt6U8KTzapjYE9kRuCkO04JoDkHnOVB8EiQ5Fxog17Ch1p+zMAqvgz+kI99x+ptHAOFK6IhvLg==", + "node_modules/@mintlify/previewing": { + "version": "4.0.1097", + "resolved": "https://registry.npmjs.org/@mintlify/previewing/-/previewing-4.0.1097.tgz", + "integrity": "sha512-RQiJOdCU2nz5hGBVQzxxSDZOK75veRy/y6pcFDfGOdIGaGuzb0lTpfe0RoD9942s1T2ACJwbkknXdjl0ytWJYA==", "license": "Elastic-2.0", "dependencies": { - "@mintlify/common": "1.0.760", - "@mintlify/openapi-parser": "^0.0.8", - "@mintlify/scraping": "4.0.622", - "@mintlify/validation": "0.1.613", - "chalk": "5.3.0", - "favicons": "7.2.0", + "@mintlify/common": "1.0.892", + "@mintlify/prebuild": "1.0.1036", + "@mintlify/validation": "0.1.698", + "adm-zip": "0.5.16", + "better-opn": "3.0.2", + "chalk": "5.2.0", + "chokidar": "3.5.3", + "express": "4.22.0", "front-matter": "4.0.2", "fs-extra": "11.1.0", + "got": "13.0.0", + "ink": "6.3.0", + "ink-spinner": "5.0.0", + "is-online": "10.0.0", "js-yaml": "4.1.0", "openapi-types": "12.1.3", - "sharp": "0.33.5", - "sharp-ico": "0.1.5", + "react": "19.2.3", + "socket.io": "4.8.0", + "tar": "6.1.15", "unist-util-visit": "4.1.2", - "uuid": "11.1.0" + "yargs": "17.7.1" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@mintlify/prebuild/node_modules/@types/unist": { + "node_modules/@mintlify/previewing/node_modules/@types/unist": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "license": "MIT" }, - "node_modules/@mintlify/prebuild/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@mintlify/prebuild/node_modules/fs-extra": { + "node_modules/@mintlify/previewing/node_modules/fs-extra": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", @@ -2253,7 +1860,7 @@ "node": ">=14.14" } }, - "node_modules/@mintlify/prebuild/node_modules/unist-util-is": { + "node_modules/@mintlify/previewing/node_modules/unist-util-is": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", @@ -2266,7 +1873,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/prebuild/node_modules/unist-util-visit": { + "node_modules/@mintlify/previewing/node_modules/unist-util-visit": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", @@ -2281,7 +1888,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/prebuild/node_modules/unist-util-visit-parents": { + "node_modules/@mintlify/previewing/node_modules/unist-util-visit-parents": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", @@ -2295,128 +1902,456 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/previewing": { - "version": "4.0.955", - "resolved": "https://registry.npmjs.org/@mintlify/previewing/-/previewing-4.0.955.tgz", - "integrity": "sha512-gZ7JdivXqciF1iuoe+tTubzK5OBP/M68Ry4wECpsnxCfcA/LXIgTkrV/iXJjTvf1O9J0FdJxVwrG0rh9LdmJdA==", + "node_modules/@mintlify/scraping": { + "version": "4.0.522", + "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.522.tgz", + "integrity": "sha512-PL2k52WT5S5OAgnT2K13bP7J2El6XwiVvQlrLvxDYw5KMMV+y34YVJI8ZscKb4trjitWDgyK0UTq2KN6NQgn6g==", "license": "Elastic-2.0", "dependencies": { - "@mintlify/common": "1.0.760", - "@mintlify/prebuild": "1.0.897", - "@mintlify/validation": "0.1.613", - "better-opn": "3.0.2", - "chalk": "5.2.0", - "chokidar": "3.5.3", - "express": "4.18.2", - "front-matter": "4.0.2", - "fs-extra": "11.1.0", - "got": "13.0.0", - "ink": "6.3.0", - "ink-spinner": "5.0.0", - "is-online": "10.0.0", + "@mintlify/common": "1.0.661", + "@mintlify/openapi-parser": "^0.0.8", + "fs-extra": "11.1.1", + "hast-util-to-mdast": "10.1.0", "js-yaml": "4.1.0", - "openapi-types": "12.1.3", - "react": "19.2.3", - "socket.io": "4.7.2", - "tar": "6.1.15", - "unist-util-visit": "4.1.2", - "yargs": "17.7.1" + "mdast-util-mdx-jsx": "3.1.3", + "neotraverse": "0.6.18", + "puppeteer": "22.14.0", + "rehype-parse": "9.0.1", + "remark-gfm": "4.0.0", + "remark-mdx": "3.0.1", + "remark-parse": "11.0.0", + "remark-stringify": "11.0.0", + "unified": "11.0.5", + "unist-util-visit": "5.0.0", + "yargs": "17.7.1", + "zod": "3.21.4" + }, + "bin": { + "mintlify-scrape": "bin/cli.js" }, "engines": { "node": ">=18.0.0" } }, - "node_modules/@mintlify/previewing/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/@mintlify/previewing/node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "node_modules/@mintlify/scraping/node_modules/@floating-ui/react-dom": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", + "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", "license": "MIT", + "peer": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@floating-ui/dom": "^1.7.6" }, - "engines": { - "node": ">=14.14" + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, - "node_modules/@mintlify/previewing/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "node_modules/@mintlify/scraping/node_modules/@mintlify/common": { + "version": "1.0.661", + "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.661.tgz", + "integrity": "sha512-/Hdiblzaomp+AWStQ4smhVMgesQhffzQjC9aYBnmLReNdh2Js+ccQFUaWL3TNIxwiS2esaZvsHSV/D+zyRS3hg==", + "license": "ISC", + "dependencies": { + "@asyncapi/parser": "3.4.0", + "@mintlify/mdx": "^3.0.4", + "@mintlify/models": "0.0.255", + "@mintlify/openapi-parser": "^0.0.8", + "@mintlify/validation": "0.1.555", + "@sindresorhus/slugify": "2.2.0", + "@types/mdast": "4.0.4", + "acorn": "8.11.2", + "acorn-jsx": "5.3.2", + "color-blend": "4.0.0", + "estree-util-to-js": "2.0.0", + "estree-walker": "3.0.3", + "front-matter": "4.0.2", + "hast-util-from-html": "2.0.3", + "hast-util-to-html": "9.0.4", + "hast-util-to-text": "4.0.2", + "hex-rgb": "5.0.0", + "ignore": "7.0.5", + "js-yaml": "4.1.0", + "lodash": "4.17.21", + "mdast-util-from-markdown": "2.0.2", + "mdast-util-gfm": "3.0.0", + "mdast-util-mdx": "3.0.0", + "mdast-util-mdx-jsx": "3.1.3", + "micromark-extension-gfm": "3.0.0", + "micromark-extension-mdx-jsx": "3.0.1", + "micromark-extension-mdxjs": "3.0.0", + "openapi-types": "12.1.3", + "postcss": "8.5.6", + "rehype-stringify": "10.0.1", + "remark": "15.0.1", + "remark-frontmatter": "5.0.0", + "remark-gfm": "4.0.0", + "remark-math": "6.0.0", + "remark-mdx": "3.1.0", + "remark-parse": "11.0.0", + "remark-rehype": "11.1.1", + "remark-stringify": "11.0.0", + "tailwindcss": "3.4.4", + "unified": "11.0.5", + "unist-builder": "4.0.0", + "unist-util-map": "4.0.0", + "unist-util-remove": "4.0.0", + "unist-util-remove-position": "5.0.0", + "unist-util-visit": "5.0.0", + "unist-util-visit-parents": "6.0.1", + "vfile": "6.0.3" + } + }, + "node_modules/@mintlify/scraping/node_modules/@mintlify/common/node_modules/remark-mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", + "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0" + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/previewing/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "node_modules/@mintlify/scraping/node_modules/@mintlify/mdx": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@mintlify/mdx/-/mdx-3.0.4.tgz", + "integrity": "sha512-tJhdpnM5ReJLNJ2fuDRIEr0zgVd6id7/oAIfs26V46QlygiLsc8qx4Rz3LWIX51rUXW/cfakjj0EATxIciIw+g==", "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "@shikijs/transformers": "^3.11.0", + "@shikijs/twoslash": "^3.12.2", + "arktype": "^2.1.26", + "hast-util-to-string": "^3.0.1", + "mdast-util-from-markdown": "^2.0.2", + "mdast-util-gfm": "^3.1.0", + "mdast-util-mdx-jsx": "^3.2.0", + "mdast-util-to-hast": "^13.2.0", + "next-mdx-remote-client": "^1.0.3", + "rehype-katex": "^7.0.1", + "remark-gfm": "^4.0.0", + "remark-math": "^6.0.0", + "remark-smartypants": "^3.0.2", + "shiki": "^3.11.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0" + }, + "peerDependencies": { + "@radix-ui/react-popover": "^1.1.15", + "react": "^18.3.1", + "react-dom": "^18.3.1" + } + }, + "node_modules/@mintlify/scraping/node_modules/@mintlify/mdx/node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mintlify/scraping/node_modules/@mintlify/mdx/node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/previewing/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "node_modules/@mintlify/scraping/node_modules/@mintlify/models": { + "version": "0.0.255", + "resolved": "https://registry.npmjs.org/@mintlify/models/-/models-0.0.255.tgz", + "integrity": "sha512-LIUkfA7l7ypHAAuOW74ZJws/NwNRqlDRD/U466jarXvvSlGhJec/6J4/I+IEcBvWDnc9anLFKmnGO04jPKgAsg==", + "license": "Elastic-2.0", + "dependencies": { + "axios": "1.10.0", + "openapi-types": "12.1.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@mintlify/scraping/node_modules/@mintlify/validation": { + "version": "0.1.555", + "resolved": "https://registry.npmjs.org/@mintlify/validation/-/validation-0.1.555.tgz", + "integrity": "sha512-11QVUReL4N5u8wSCgZt4RN7PA0jYQoMEBZ5IrUp5pgb5ZJBOoGV/vPsQrxPPa1cxsUDAuToNhtGxRQtOav/w8w==", + "license": "Elastic-2.0", + "dependencies": { + "@mintlify/mdx": "^3.0.4", + "@mintlify/models": "0.0.255", + "arktype": "2.1.27", + "js-yaml": "4.1.0", + "lcm": "0.0.3", + "lodash": "4.17.21", + "object-hash": "3.0.0", + "openapi-types": "12.1.3", + "uuid": "11.1.0", + "zod": "3.21.4", + "zod-to-json-schema": "3.20.4" + } + }, + "node_modules/@mintlify/scraping/node_modules/@radix-ui/react-arrow": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", + "peer": true, + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@mintlify/scraping/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@mintlify/scraping/node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@mintlify/scraping/node_modules/@radix-ui/react-popover": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@mintlify/scraping/node_modules/@radix-ui/react-popper": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@mintlify/scraping/node_modules/@radix-ui/react-portal": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@mintlify/scraping/node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@mintlify/scraping/node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", "license": "MIT", + "peer": true, "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@radix-ui/react-slot": "1.2.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@mintlify/scraping": { - "version": "4.0.622", - "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.622.tgz", - "integrity": "sha512-0OnRNVl4omxTsya+rbzm8H6O9tMl2xPfFKNzHoPjyYfUXfebvoWLlxdGzXVEIT91M7J82+7nRmKkeeS7SnyEaA==", - "license": "Elastic-2.0", + "node_modules/@mintlify/scraping/node_modules/axios": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz", + "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", + "license": "MIT", "dependencies": { - "@mintlify/common": "1.0.760", - "@mintlify/openapi-parser": "^0.0.8", - "fs-extra": "11.1.1", - "hast-util-to-mdast": "10.1.0", - "js-yaml": "4.1.0", - "mdast-util-mdx-jsx": "3.1.3", - "neotraverse": "0.6.18", - "puppeteer": "22.14.0", - "rehype-parse": "9.0.1", - "remark-gfm": "4.0.0", - "remark-mdx": "3.0.1", - "remark-parse": "11.0.0", - "remark-stringify": "11.0.0", - "unified": "11.0.5", - "unist-util-visit": "5.0.0", - "yargs": "17.7.1", - "zod": "3.24.0" - }, - "bin": { - "mintlify-scrape": "bin/cli.js" - }, - "engines": { - "node": ">=18.0.0" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/@mintlify/scraping/node_modules/fs-extra": { @@ -2433,6 +2368,33 @@ "node": ">=14.14" } }, + "node_modules/@mintlify/scraping/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@mintlify/scraping/node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@mintlify/scraping/node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, "node_modules/@mintlify/scraping/node_modules/mdast-util-mdx-jsx": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", @@ -2457,6 +2419,61 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/@mintlify/scraping/node_modules/next-mdx-remote-client": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.7.tgz", + "integrity": "sha512-12Ap5Z/tFIETMXFSBTH2IFEhJAso7MvOJ5ICyesA4q6FM4vtAcmb+4ZKa4tV1IVQJLBVqOhaEfIESZzdwjmrQQ==", + "license": "MPL 2.0", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@mdx-js/mdx": "^3.1.1", + "@mdx-js/react": "^3.1.1", + "remark-mdx-remove-esm": "^1.3.1", + "serialize-error": "^13.0.1", + "vfile": "^6.0.3", + "vfile-matter": "^5.0.1" + }, + "engines": { + "node": ">=20.9.0" + }, + "peerDependencies": { + "react": ">= 18.3.0 < 19.0.0", + "react-dom": ">= 18.3.0 < 19.0.0" + } + }, + "node_modules/@mintlify/scraping/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/@mintlify/scraping/node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@mintlify/scraping/node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, "node_modules/@mintlify/scraping/node_modules/remark-mdx": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", @@ -2471,18 +2488,131 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/@mintlify/scraping/node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@mintlify/scraping/node_modules/tailwindcss": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", + "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@mintlify/scraping/node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/@mintlify/scraping/node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/@mintlify/scraping/node_modules/zod": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", + "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/@mintlify/scraping/node_modules/zod-to-json-schema": { + "version": "3.20.4", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.20.4.tgz", + "integrity": "sha512-Un9+kInJ2Zt63n6Z7mLqBifzzPcOyX+b+Exuzf7L1+xqck9Q2EPByyTRduV3kmSPaXaRer1JCsucubpgL1fipg==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.20.0" + } + }, "node_modules/@mintlify/validation": { - "version": "0.1.613", - "resolved": "https://registry.npmjs.org/@mintlify/validation/-/validation-0.1.613.tgz", - "integrity": "sha512-eWpFbLEaQgmd96xbTz8/PDuigoY5l8Mb4uWoKOTwOg8dSGEd4d9Byf+8y+FMWkSUuYnnH5O3xnAvrL/bF6PpWg==", + "version": "0.1.698", + "resolved": "https://registry.npmjs.org/@mintlify/validation/-/validation-0.1.698.tgz", + "integrity": "sha512-iG4Wiwg4vavJMwp1TpTBugTCdzDWOLLfgpICEJHdxr5e59+ulPiUoQfHLocXoW1yO3SfI7mM71kt7PCTjp+XYw==", "license": "Elastic-2.0", "dependencies": { "@mintlify/mdx": "^3.0.4", - "@mintlify/models": "0.0.277", + "@mintlify/models": "0.0.307", "arktype": "2.1.27", "js-yaml": "4.1.0", "lcm": "0.0.3", - "lodash": "4.17.21", + "lodash": "4.18.1", + "neotraverse": "0.6.18", "object-hash": "3.0.0", "openapi-types": "12.1.3", "uuid": "11.1.0", @@ -2491,13 +2621,13 @@ } }, "node_modules/@mintlify/validation/node_modules/@floating-ui/react-dom": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.7.tgz", - "integrity": "sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", + "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", "license": "MIT", "peer": true, "dependencies": { - "@floating-ui/dom": "^1.7.5" + "@floating-ui/dom": "^1.7.6" }, "peerDependencies": { "react": ">=16.8.0", @@ -2776,15 +2906,15 @@ } }, "node_modules/@mintlify/validation/node_modules/next-mdx-remote-client": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.6.tgz", - "integrity": "sha512-O4HIpi44d6SismhfG5W78aTUfgxfbsj6FgoM4/G3o4Vtcobt0Ej439IiDPkv+IqsmtouVYG1tGAsz1DIuj9Tfg==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.7.tgz", + "integrity": "sha512-12Ap5Z/tFIETMXFSBTH2IFEhJAso7MvOJ5ICyesA4q6FM4vtAcmb+4ZKa4tV1IVQJLBVqOhaEfIESZzdwjmrQQ==", "license": "MPL 2.0", "dependencies": { "@babel/code-frame": "^7.29.0", "@mdx-js/mdx": "^3.1.1", "@mdx-js/react": "^3.1.1", - "remark-mdx-remove-esm": "^1.2.3", + "remark-mdx-remove-esm": "^1.3.1", "serialize-error": "^13.0.1", "vfile": "^6.0.3", "vfile-matter": "^5.0.1" @@ -2834,6 +2964,24 @@ "loose-envify": "^1.1.0" } }, + "node_modules/@mintlify/validation/node_modules/zod": { + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.0.tgz", + "integrity": "sha512-Hz+wiY8yD0VLA2k/+nsg2Abez674dDGTai33SwNvMPuf9uIrBC9eFgIMQxBBbHFxVXi8W+5nX9DcAh9YNSQm/w==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/@mintlify/validation/node_modules/zod-to-json-schema": { + "version": "3.20.4", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.20.4.tgz", + "integrity": "sha512-Un9+kInJ2Zt63n6Z7mLqBifzzPcOyX+b+Exuzf7L1+xqck9Q2EPByyTRduV3kmSPaXaRer1JCsucubpgL1fipg==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.20.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2878,6 +3026,15 @@ "fast-deep-equal": "^3.1.3" } }, + "node_modules/@posthog/core": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.7.1.tgz", + "integrity": "sha512-kjK0eFMIpKo9GXIbts8VtAknsoZ18oZorANdtuTj1CbgS28t4ZVq//HAWhnxEuXRTrtkd+SUJ6Ux3j2Af8NCuA==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.6" + } + }, "node_modules/@puppeteer/browsers": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.3.0.tgz", @@ -2950,6 +3107,32 @@ "node": ">=8" } }, + "node_modules/@puppeteer/browsers/node_modules/tar-fs": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz", + "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" + } + }, + "node_modules/@puppeteer/browsers/node_modules/tar-stream": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.2.0.tgz", + "integrity": "sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "bare-fs": "^4.5.5", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, "node_modules/@puppeteer/browsers/node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -3460,9 +3643,9 @@ } }, "node_modules/@stoplight/spectral-core": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-core/-/spectral-core-1.21.0.tgz", - "integrity": "sha512-oj4e/FrDLUhBRocIW+lRMKlJ/q/rDZw61HkLbTFsdMd+f/FTkli2xHNB1YC6n1mrMKjjvy7XlUuFkC7XxtgbWw==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-core/-/spectral-core-1.23.0.tgz", + "integrity": "sha512-WvdgmiiJrjiMrcw7ByxfcYtUvAXNp2MhAfcEIXP3Mn8ZOVwyAWIsFjLlsE5zRqj0LuN8+7OQM/L+BMcHj6x/BQ==", "license": "Apache-2.0", "dependencies": { "@stoplight/better-ajv-errors": "1.0.3", @@ -3474,17 +3657,17 @@ "@stoplight/types": "~13.6.0", "@types/es-aggregate-error": "^1.0.2", "@types/json-schema": "^7.0.11", - "ajv": "^8.17.1", + "ajv": "^8.18.0", "ajv-errors": "~3.0.0", "ajv-formats": "~2.1.1", "es-aggregate-error": "^1.0.7", + "expr-eval-fork": "^3.0.1", "jsonpath-plus": "^10.3.0", - "lodash": "~4.17.23", + "lodash": "^4.18.1", "lodash.topath": "^4.5.2", - "minimatch": "3.1.2", + "minimatch": "^3.1.4", "nimma": "0.2.3", "pony-cause": "^1.1.1", - "simple-eval": "1.0.1", "tslib": "^2.8.1" }, "engines": { @@ -3504,12 +3687,6 @@ "node": "^12.20 || >=14.13" } }, - "node_modules/@stoplight/spectral-core/node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", - "license": "MIT" - }, "node_modules/@stoplight/spectral-core/node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -3538,9 +3715,9 @@ "license": "0BSD" }, "node_modules/@stoplight/spectral-functions": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-functions/-/spectral-functions-1.10.1.tgz", - "integrity": "sha512-obu8ZfoHxELOapfGsCJixKZXZcffjg+lSoNuttpmUFuDzVLT3VmH8QkPXfOGOL5Pz80BR35ClNAToDkdnYIURg==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-functions/-/spectral-functions-1.10.2.tgz", + "integrity": "sha512-PIfPUgTRo8EtAnL1MIrzhHoUuojSaE8shGSMaHS3BxGyc8d079BE5+TqJa1/WLUb9YT9JQnZ0Aj4xfi8NcJOIw==", "license": "Apache-2.0", "dependencies": { "@stoplight/better-ajv-errors": "1.0.3", @@ -3548,11 +3725,11 @@ "@stoplight/spectral-core": "^1.19.4", "@stoplight/spectral-formats": "^1.8.1", "@stoplight/spectral-runtime": "^1.1.2", - "ajv": "^8.17.1", + "ajv": "^8.18.0", "ajv-draft-04": "~1.0.0", "ajv-errors": "~3.0.0", "ajv-formats": "~2.1.1", - "lodash": "~4.17.21", + "lodash": "^4.18.1", "tslib": "^2.8.1" }, "engines": { @@ -3622,16 +3799,16 @@ "license": "0BSD" }, "node_modules/@stoplight/spectral-runtime": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-runtime/-/spectral-runtime-1.1.4.tgz", - "integrity": "sha512-YHbhX3dqW0do6DhiPSgSGQzr6yQLlWybhKwWx0cqxjMwxej3TqLv3BXMfIUYFKKUqIwH4Q2mV8rrMM8qD2N0rQ==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-runtime/-/spectral-runtime-1.1.5.tgz", + "integrity": "sha512-6/HSCQBKnI4M5qonCKos2W7oggXv+U/ml+m/cAd4eJAYfIVEmaLUo03qSWIIl4cBc5ujJPmn2WnCiRrz1++P7Q==", "license": "Apache-2.0", "dependencies": { "@stoplight/json": "^3.20.1", "@stoplight/path": "^1.3.2", "@stoplight/types": "^13.6.0", "abort-controller": "^3.0.0", - "lodash": "^4.17.21", + "lodash": "^4.18.1", "node-fetch": "^2.7.0", "tslib": "^2.8.1" }, @@ -3745,12 +3922,6 @@ "@types/estree": "*" } }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "license": "MIT" - }, "node_modules/@types/cors": { "version": "2.8.19", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", @@ -3761,9 +3932,9 @@ } }, "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", "license": "MIT", "dependencies": { "@types/ms": "*" @@ -3779,9 +3950,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", "license": "MIT" }, "node_modules/@types/estree-jsx": { @@ -3851,12 +4022,12 @@ } }, "node_modules/@types/node": { - "version": "25.3.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.1.tgz", - "integrity": "sha512-hj9YIJimBCipHVfHKRMnvmHg+wfhKc0o4mTtXh9pKBjC8TLJzz0nzGmLi5UJsYAUgSvXFHgb0V2oY10DUFtImw==", + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.7.0.tgz", + "integrity": "sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg==", "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": "~7.21.0" } }, "node_modules/@types/react": { @@ -3881,6 +4052,15 @@ "integrity": "sha512-wkXrVzX5yoqLnndOwFsieJA7oKM8cNkOKJtf/3vVGSUFkWDKZvFHpIl9Pvqb/T9UsawBBFMTTD8xu7sK5MWuvg==", "license": "MIT" }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/yauzl": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", @@ -3904,9 +4084,9 @@ } }, "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", + "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==", "license": "ISC" }, "node_modules/abort-controller": { @@ -3999,9 +4179,9 @@ } }, "node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -4296,20 +4476,20 @@ } }, "node_modules/axios": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", - "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.0.tgz", + "integrity": "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" } }, "node_modules/b4a": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", - "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.1.tgz", + "integrity": "sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==", "license": "Apache-2.0", "peerDependencies": { "react-native-b4a": "*" @@ -4351,11 +4531,10 @@ } }, "node_modules/bare-fs": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.5.tgz", - "integrity": "sha512-XvwYM6VZqKoqDll8BmSww5luA5eflDzY0uEFfBJtFKe4PAAtxBjU3YIxzIBzhyaEQBy1VXEQBto4cpN5RZJw+w==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.1.tgz", + "integrity": "sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==", "license": "Apache-2.0", - "optional": true, "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", @@ -4376,11 +4555,10 @@ } }, "node_modules/bare-os": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.7.0.tgz", - "integrity": "sha512-64Rcwj8qlnTZU8Ps6JJEdSmxBEUGgI7g8l+lMtsJLl4IsfTcHMTfJ188u2iGV6P6YPRZrtv72B2kjn+hp+Yv3g==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.9.1.tgz", + "integrity": "sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ==", "license": "Apache-2.0", - "optional": true, "engines": { "bare": ">=1.14.0" } @@ -4390,26 +4568,28 @@ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", "license": "Apache-2.0", - "optional": true, "dependencies": { "bare-os": "^3.0.1" } }, "node_modules/bare-stream": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.8.0.tgz", - "integrity": "sha512-reUN0M2sHRqCdG4lUK3Fw8w98eeUIZHL5c3H7Mbhk2yVBL+oofgaIp0ieLfD5QXwPCypBpmEEKU2WZKzbAk8GA==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.1.tgz", + "integrity": "sha512-Vp0cnjYyrEC4whYTymQ+YZi6pBpfiICZO3cfRG8sy67ZNWe951urv1x4eW1BKNngw3U+3fPYb5JQvHbCtxH7Ow==", "license": "Apache-2.0", - "optional": true, "dependencies": { - "streamx": "^2.21.0", + "streamx": "^2.25.0", "teex": "^1.0.1" }, "peerDependencies": { + "bare-abort-controller": "*", "bare-buffer": "*", "bare-events": "*" }, "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + }, "bare-buffer": { "optional": true }, @@ -4419,11 +4599,10 @@ } }, "node_modules/bare-url": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz", - "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.3.tgz", + "integrity": "sha512-Kccpc7ACfXaxfeInfqKcZtW4pT5YBn1mesc4sCsun6sRwtbJ4h+sNOaksUpYEJUKfN65YWC6Bw2OJEFiKxq8nQ==", "license": "Apache-2.0", - "optional": true, "dependencies": { "bare-path": "^3.0.0" } @@ -4458,9 +4637,9 @@ } }, "node_modules/basic-ftp": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.2.0.tgz", - "integrity": "sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.3.1.tgz", + "integrity": "sha512-bopVNp6ugyA150DDuZfPFdt1KZ5a94ZDiwX4hMgZDzF+GttD80lEy8kj98kbyhLXnPvhtIo93mdnLIjpCAeeOw==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -4490,24 +4669,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz", + "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", + "bytes": "~3.1.2", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.15.1", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", @@ -4541,10 +4732,25 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -4633,14 +4839,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", "set-function-length": "^1.2.2" }, "engines": { @@ -5167,18 +5373,18 @@ } }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", "license": "MIT" }, "node_modules/cors": { @@ -5199,9 +5405,9 @@ } }, "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", + "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", "license": "MIT", "dependencies": { "env-paths": "^2.2.1", @@ -5224,6 +5430,20 @@ } } }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -5393,6 +5613,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", @@ -5617,9 +5847,9 @@ "license": "MIT" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -5635,21 +5865,21 @@ } }, "node_modules/engine.io": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", - "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.7.tgz", + "integrity": "sha512-DgOngfDKM2EviOH3Mr9m7ks1q8roetLy/IMmYthAYzbpInMbYc/GS+fWFA3rl1gvwKVsQrVV61fo5emD1y3OJQ==", "license": "MIT", "dependencies": { - "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", + "@types/ws": "^8.5.12", "accepts": "~1.3.4", "base64id": "2.0.0", - "cookie": "~0.4.1", + "cookie": "~0.7.2", "cors": "~2.8.5", - "debug": "~4.3.1", + "debug": "~4.4.1", "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" + "ws": "~8.18.3" }, "engines": { "node": ">=10.2.0" @@ -5664,36 +5894,10 @@ "node": ">=10.0.0" } }, - "node_modules/engine.io/node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/engine.io/node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -5754,9 +5958,9 @@ } }, "node_modules/es-abstract": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", - "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.2", @@ -5906,9 +6110,9 @@ } }, "node_modules/es-toolkit": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.44.0.tgz", - "integrity": "sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==", + "version": "1.46.1", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.46.1.tgz", + "integrity": "sha512-5eNtXOs3tbfxXOj04tjjseeWkRWaoCjdEI+96DgwzZoe6c9juL49pXlzAFTI72aWC9Y8p7168g6XIKjh7k6pyQ==", "license": "MIT", "workspaces": [ "docs", @@ -6154,46 +6358,69 @@ "bare-events": "^2.7.0" } }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/expr-eval-fork": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/expr-eval-fork/-/expr-eval-fork-3.0.3.tgz", + "integrity": "sha512-BhC+hbc5lIVjygr840n5DEkW3MQq7H9o+mc1/N7Z5uIiCFVyESLL5DIE7LNq4CYUNxy+XjA+3jRrL/h0Kt2xcg==", + "license": "MIT", + "engines": { + "node": ">=16.9.0" + } + }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.0.tgz", + "integrity": "sha512-c2iPh3xp5vvCLgaHK03+mWLFPhox7j1LwyxcZwFVApEv5i0X+IjPpbT50SJJwwLpdBVfp45AkK/v+AFgv/XlfQ==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "~0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "~6.14.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "~0.19.0", + "serve-static": "~1.16.2", "setprototypeof": "1.2.0", - "statuses": "2.0.1", + "statuses": "~2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express/node_modules/debug": { @@ -6287,9 +6514,9 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", "funding": [ { "type": "github", @@ -6360,17 +6587,17 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", "license": "MIT", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "statuses": "2.0.1", + "statuses": "~2.0.2", "unpipe": "~1.0.0" }, "engines": { @@ -6393,9 +6620,9 @@ "license": "MIT" }, "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "funding": [ { "type": "individual", @@ -6509,6 +6736,13 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT", + "optional": true + }, "node_modules/fs-extra": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", @@ -6624,9 +6858,9 @@ } }, "node_modules/get-east-asian-width": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", - "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", + "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", "license": "MIT", "engines": { "node": ">=18" @@ -6725,6 +6959,13 @@ "node": ">= 14" } }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT", + "optional": true + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -6863,9 +7104,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -7245,19 +7486,23 @@ "license": "BSD-2-Clause" }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/http-proxy-agent": { @@ -7394,6 +7639,13 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC", + "optional": true + }, "node_modules/ink": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/ink/-/ink-6.3.0.tgz", @@ -7561,9 +7813,9 @@ } }, "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", + "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", "license": "MIT", "engines": { "node": ">= 12" @@ -7709,12 +7961,12 @@ } }, "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "hasown": "^2.0.3" }, "engines": { "node": ">= 0.4" @@ -8146,6 +8398,12 @@ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "license": "MIT" }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, "node_modules/jiti": { "version": "1.21.7", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", @@ -8155,6 +8413,15 @@ "jiti": "bin/jiti.js" } }, + "node_modules/jose": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.3.tgz", + "integrity": "sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -8207,9 +8474,9 @@ "license": "MIT" }, "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -8246,9 +8513,9 @@ } }, "node_modules/katex": { - "version": "0.16.33", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.33.tgz", - "integrity": "sha512-q3N5u+1sY9Bu7T4nlXoiRBXWfwSefNGoKeOwekV+gw0cAXQlz2Ww6BLcmBxVDeXBMUDQv6fK5bcNaJLxob3ZQA==", + "version": "0.16.45", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.45.tgz", + "integrity": "sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -8261,6 +8528,18 @@ "katex": "cli.js" } }, + "node_modules/keytar": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", + "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-addon-api": "^4.3.0", + "prebuild-install": "^7.0.1" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -8292,12 +8571,15 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { @@ -8307,9 +8589,9 @@ "license": "MIT" }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "license": "MIT" }, "node_modules/lodash.topath": { @@ -8727,10 +9009,13 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "license": "MIT" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge2": { "version": "1.4.1", @@ -9571,9 +9856,9 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -9582,6 +9867,16 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "optional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", @@ -9617,12 +9912,12 @@ } }, "node_modules/mint": { - "version": "4.2.387", - "resolved": "https://registry.npmjs.org/mint/-/mint-4.2.387.tgz", - "integrity": "sha512-+YbeoayYeatC856pJPOhXxgq/CGDD1G8IcI4pt1JXzRLGiRo/YFezzGAAfXNc0huYVwTn90/gLDu5+v/MNUUtg==", + "version": "4.2.560", + "resolved": "https://registry.npmjs.org/mint/-/mint-4.2.560.tgz", + "integrity": "sha512-QzEgVQLYrnOQvaFrgTxP1hjFNW0Q6KFCiVmgseryfHQMDedmdf/Dz0DoEpaTBcMsmYAt2SuEowJTWZNxSb9Nng==", "license": "Elastic-2.0", "dependencies": { - "@mintlify/cli": "4.0.990" + "@mintlify/cli": "4.0.1163" }, "bin": { "mint": "index.js" @@ -9649,6 +9944,13 @@ "node": ">=10" } }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT", + "optional": true + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -9676,9 +9978,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", "funding": [ { "type": "github", @@ -9693,6 +9995,13 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "license": "MIT", + "optional": true + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -9712,9 +10021,9 @@ } }, "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.1.1.tgz", + "integrity": "sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==", "license": "MIT", "engines": { "node": ">= 0.4.0" @@ -9752,6 +10061,26 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/node-abi": { + "version": "3.92.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.92.0.tgz", + "integrity": "sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "license": "MIT", + "optional": true + }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -9805,6 +10134,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/oauth4webapi": { + "version": "3.8.6", + "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.6.tgz", + "integrity": "sha512-iwemM91xz8nryHti2yTmg5fhyEMVOkOXwHNqbvcATjyajb5oQxCQzrNOA6uElRHuMhQQTKUyFKV9y/CNyg25BQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -9901,19 +10239,19 @@ } }, "node_modules/oniguruma-parser": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", - "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", + "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==", "license": "MIT" }, "node_modules/oniguruma-to-es": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.4.tgz", - "integrity": "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz", + "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==", "license": "MIT", "dependencies": { - "oniguruma-parser": "^0.12.1", - "regex": "^6.0.1", + "oniguruma-parser": "^0.12.2", + "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, @@ -9940,6 +10278,19 @@ "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", "license": "MIT" }, + "node_modules/openid-client": { + "version": "6.8.4", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-6.8.4.tgz", + "integrity": "sha512-QSw0BA08piujetEwfZsHoTrDpMEha7GDZDicQqVwX4u0ChCjefvjDB++TZ8BTg76UpwhzIQgdvvfgfl3HpCSAw==", + "license": "MIT", + "dependencies": { + "jose": "^6.2.2", + "oauth4webapi": "^3.8.5" + }, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", @@ -10145,6 +10496,15 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -10152,9 +10512,9 @@ "license": "MIT" }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", "license": "MIT" }, "node_modules/pend": { @@ -10170,9 +10530,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "license": "MIT", "engines": { "node": ">=8.6" @@ -10288,9 +10648,9 @@ } }, "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", "funding": [ { "type": "opencollective", @@ -10303,37 +10663,32 @@ ], "license": "MIT", "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" + "lilconfig": "^3.1.1" }, "engines": { - "node": ">= 14" + "node": ">= 18" }, "peerDependencies": { + "jiti": ">=1.21.0", "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { + "jiti": { + "optional": true + }, "postcss": { "optional": true }, - "ts-node": { + "tsx": { + "optional": true + }, + "yaml": { "optional": true } } }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, "node_modules/postcss-nested": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", @@ -10378,6 +10733,46 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "license": "MIT" }, + "node_modules/posthog-node": { + "version": "5.17.2", + "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-5.17.2.tgz", + "integrity": "sha512-lz3YJOr0Nmiz0yHASaINEDHqoV+0bC3eD8aZAG+Ky292dAnVYul+ga/dMX8KCBXg8hHfKdxw0SztYD5j6dgUqQ==", + "license": "MIT", + "dependencies": { + "@posthog/core": "1.7.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -10429,12 +10824,21 @@ "node": ">= 14" } }, - "node_modules/proxy-from-env": { + "node_modules/proxy-agent/node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/public-ip": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/public-ip/-/public-ip-5.0.0.tgz", @@ -10478,9 +10882,9 @@ } }, "node_modules/pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", @@ -10524,12 +10928,12 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -10580,15 +10984,15 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" @@ -10606,6 +11010,22 @@ "node": ">=0.10.0" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, "node_modules/react": { "version": "19.2.3", "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", @@ -10732,6 +11152,21 @@ "pify": "^2.3.0" } }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -11036,9 +11471,9 @@ } }, "node_modules/remark-mdx-remove-esm": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/remark-mdx-remove-esm/-/remark-mdx-remove-esm-1.2.3.tgz", - "integrity": "sha512-n6r36SaE+7cno7pmshWbGzYolDVLxJm5EKuw67+q4SPQT6kelNJHyZAiFYYtOB0axh+/1xF4BC57Ec3jncAGXQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/remark-mdx-remove-esm/-/remark-mdx-remove-esm-1.3.1.tgz", + "integrity": "sha512-POa8abdiuicD2e+zQkclxzJa5JEGLtV8XIOFVvisnGuw4l4xd6dfQozedwqR8JTeXQmxLebvYhlbwHoQP9RWkw==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.4", @@ -11131,11 +11566,12 @@ } }, "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", "license": "MIT", "dependencies": { + "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" @@ -11321,14 +11757,14 @@ "license": "0BSD" }, "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, @@ -11405,9 +11841,9 @@ "license": "MIT" }, "node_modules/sax": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", - "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", "license": "BlueOak-1.0.0", "engines": { "node": ">=11.0.0" @@ -11432,24 +11868,24 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "range-parser": "~1.2.1", - "statuses": "2.0.1" + "statuses": "~2.0.2" }, "engines": { "node": ">= 0.8.0" @@ -11487,9 +11923,9 @@ } }, "node_modules/serialize-error/node_modules/type-fest": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.4.4.tgz", - "integrity": "sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", "license": "(MIT OR CC0-1.0)", "dependencies": { "tagged-tag": "^1.0.0" @@ -11502,15 +11938,15 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "~0.19.1" }, "engines": { "node": ">= 0.8.0" @@ -11618,6 +12054,27 @@ "sharp": "*" } }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/shiki": { "version": "3.23.0", "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.23.0.tgz", @@ -11654,13 +12111,13 @@ } }, "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" + "object-inspect": "^1.13.4" }, "engines": { "node": ">= 0.4" @@ -11718,16 +12175,51 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/simple-eval": { + "node_modules/simple-concat": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-eval/-/simple-eval-1.0.1.tgz", - "integrity": "sha512-LH7FpTAkeD+y5xQC4fzS+tFtaNlvt3Ib1zKzvhjv/Y+cioV4zIuw4IZr2yhRLu67CWL7FR9/6KXKnjRoZTvGGQ==", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", + "optional": true, "dependencies": { - "jsep": "^1.3.6" - }, - "engines": { - "node": ">=12" + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" } }, "node_modules/simple-swizzle": { @@ -11772,16 +12264,16 @@ } }, "node_modules/socket.io": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", - "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz", + "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==", "license": "MIT", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.5.2", + "engine.io": "~6.6.0", "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.4" }, @@ -11821,9 +12313,9 @@ } }, "node_modules/socket.io-parser": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.5.tgz", - "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.6.tgz", + "integrity": "sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -11851,12 +12343,12 @@ } }, "node_modules/socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", + "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", "license": "MIT", "dependencies": { - "ip-address": "^10.0.1", + "ip-address": "^10.1.1", "smart-buffer": "^4.2.0" }, "engines": { @@ -11934,9 +12426,9 @@ } }, "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -11956,9 +12448,9 @@ } }, "node_modules/streamx": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", - "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz", + "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==", "license": "MIT", "dependencies": { "events-universal": "^1.0.0", @@ -11966,6 +12458,16 @@ "text-decoder": "^1.1.0" } }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", @@ -12054,12 +12556,12 @@ } }, "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -12068,6 +12570,16 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/style-to-js": { "version": "1.1.21", "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", @@ -12142,33 +12654,33 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", - "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.3.0", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", @@ -12178,6 +12690,42 @@ "node": ">=14.0.0" } }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/tailwindcss/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -12209,28 +12757,40 @@ } }, "node_modules/tar-fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", - "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", "license": "MIT", + "optional": true, "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" + "tar-stream": "^2.1.4" } }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC", + "optional": true + }, "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "license": "MIT", + "optional": true, "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, "node_modules/teex": { @@ -12238,7 +12798,6 @@ "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", "license": "MIT", - "optional": true, "dependencies": { "streamx": "^2.12.5" } @@ -12280,13 +12839,13 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -12313,9 +12872,9 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "license": "MIT", "engines": { "node": ">=12" @@ -12399,23 +12958,36 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "license": "0BSD" }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, "node_modules/twoslash": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.3.6.tgz", - "integrity": "sha512-VuI5OKl+MaUO9UIW3rXKoPgHI3X40ZgB/j12VY6h98Ae1mCBihjPvhOPeJWlxCYcmSbmeZt5ZKkK0dsVtp+6pA==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.3.8.tgz", + "integrity": "sha512-OeDz0kDl8sqPUN3nr7gqcvOs70f5lZsdhKYTX3/SgB9OvdadzzoYJI/4SBXhXV1HG8E9fLc+e17itoRYTxmoig==", "license": "MIT", "dependencies": { - "@typescript/vfs": "^1.6.2", - "twoslash-protocol": "0.3.6" + "@typescript/vfs": "^1.6.4", + "twoslash-protocol": "0.3.8" }, "peerDependencies": { - "typescript": "^5.5.0" + "typescript": "^5.5.0 || ^6.0.0" } }, "node_modules/twoslash-protocol": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.3.6.tgz", - "integrity": "sha512-FHGsJ9Q+EsNr5bEbgG3hnbkvEBdW5STgPU824AHUjB4kw0Dn4p8tABT7Ncg1Ie6V0+mDg3Qpy41VafZXcQhWMA==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.3.8.tgz", + "integrity": "sha512-HmvAHoiEviK8LqvAQyc9/irkdvwTUiR1fHmNwH/0gq8EHxyBt4PWVPixjEXg6wJu1u6yBrILEWXGK9Kw58/8yQ==", "license": "MIT" }, "node_modules/type-fest": { @@ -12518,9 +13090,9 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "license": "Apache-2.0", "peer": true, "bin": { @@ -12560,9 +13132,9 @@ } }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.21.0.tgz", + "integrity": "sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==", "license": "MIT" }, "node_modules/unified": { @@ -12978,6 +13550,21 @@ "webidl-conversions": "^3.0.0" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/which-boxed-primitive": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", @@ -13164,9 +13751,9 @@ "license": "ISC" }, "node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz", + "integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -13244,9 +13831,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -13364,23 +13951,14 @@ "license": "MIT" }, "node_modules/zod": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.0.tgz", - "integrity": "sha512-Hz+wiY8yD0VLA2k/+nsg2Abez674dDGTai33SwNvMPuf9uIrBC9eFgIMQxBBbHFxVXi8W+5nX9DcAh9YNSQm/w==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/zod-to-json-schema": { - "version": "3.20.4", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.20.4.tgz", - "integrity": "sha512-Un9+kInJ2Zt63n6Z7mLqBifzzPcOyX+b+Exuzf7L1+xqck9Q2EPByyTRduV3kmSPaXaRer1JCsucubpgL1fipg==", - "license": "ISC", - "peerDependencies": { - "zod": "^3.20.0" - } - }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index 1c77665..f0f7751 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { "dependencies": { - "mint": "^4.2.387" + "mint": "^4.2.560" } } diff --git a/snippets/boards/o1/bootflow.mdx b/snippets/boards/o1/bootflow.mdx index 18bab40..24ca37d 100644 --- a/snippets/boards/o1/bootflow.mdx +++ b/snippets/boards/o1/bootflow.mdx @@ -1,16 +1,16 @@ ```mermaid flowchart - n1@{ shape: "rounded", label: "**2.** Boot Diagram" } --- n2["**2.1.** ROM Bootloader (RBL)"] - n2["**2.1.** ROM Bootloader (RBL)"] - n2["**2.1.** ROM Bootloader (RBL)"] --- n3["**2.2.** Secondary Boot Loader (SBL)"] - n3 --- n4["**2.3.** U-Boot"] - n4 --- n5@{ shape: "rounded", label: "**2.4.** Linux Kernel" } - n5 --- n6["**2.5.** Initial RAM Disk (Initrd)"] + n1@{ shape: "rounded", label: "**2.** Boot Diagram" } --- n2@{ label: "**2.1.** ROM Bootloader (RBL)" } + n2@{ label: "**2.1.** ROM Bootloader (RBL)" } + n2@{ label: "**2.1.** ROM Bootloader (RBL)" } --- n3@{ label: "**2.2.** Secondary Boot Loader (SBL)" } + n3@{ label: "**2.2.** Secondary Boot Loader (SBL)" } --- n4@{ label: "**2.3.** U-Boot" } + n4@{ label: "**2.3.** U-Boot" } --- n5@{ shape: "rounded", label: "**2.4.** Linux Kernel" } + n5@{ label: "**2.4.** Linux Kernel" } --- n6@{ label: "**2.5.** Initial RAM Disk (Initrd)" } style n1 color:#000000,fill:#FFDE59 - n6 --- n7["**2.6.** Root Filesystem (Rootfs)"] - n7 --- n8@{ shape: "rounded", label: "**Cortex-A53**
Linux Gemstone OS" } - n7["**2.6.** Root Filesystem (Rootfs)"] --- n9@{ shape: "rounded", label: "**Cortex R5**
Baremetal FreeRTOS Zephyr NuttX" } + n6 --- n7@{ label: "**2.6.** Root Filesystem (Rootfs)" } + n7@{ label: "**2.6.** Root Filesystem (Rootfs)" } --- n8@{ shape: "rounded", label: "**Cortex-A53**
Linux Gemstone OS" } + n7@{ label: "**2.6.** Root Filesystem (Rootfs)" } --- n9@{ shape: "rounded", label: "**Cortex R5**
Baremetal FreeRTOS Zephyr NuttX" } n8@{ shape: "rounded", label: "**Cortex-A53**
Linux Gemstone OS" } style n8 color:#000000,fill:#FFDE59 style n9 color:#000000,fill:#FFDE59 diff --git a/snippets/boards/o1/mcu/resource-table-tr.mdx b/snippets/boards/o1/mcu/resource-table-tr.mdx index 5189e5b..e0011d2 100644 --- a/snippets/boards/o1/mcu/resource-table-tr.mdx +++ b/snippets/boards/o1/mcu/resource-table-tr.mdx @@ -89,7 +89,7 @@ C11 0 -> MCU_SPI0_D1
7 -> MCU_GPIO0_4 Evet -- BMP390 basınç ve icm20948 imu spi data1
- Linux spidev ile kullanmak üzere SPI DATA1 (MOSI veya MISO olarak atanabilir) +- LPS22DFTR basınç ve icm20948 imu spi data1
- Linux spidev ile kullanmak üzere SPI DATA1 (MOSI veya MISO olarak atanabilir) Device-tree ile devre dışı bırakılmalı. (mcu_spi0) @@ -97,7 +97,7 @@ B12 0 -> MCU_SPI0_D0
7 -> MCU_GPIO0_3 Evet -- BMP390 basınç ve icm20948 imu spi data0
- Linux spidev ile kullanmak üzere SPI DATA0 (MOSI veya MISO olarak atanabilir) +- LPS22DFTR basınç ve icm20948 imu spi data0
- Linux spidev ile kullanmak üzere SPI DATA0 (MOSI veya MISO olarak atanabilir) Device-tree ile devre dışı bırakılmalı. (mcu_spi0) diff --git a/snippets/boards/o1/mcu/resource-table.mdx b/snippets/boards/o1/mcu/resource-table.mdx index 44b6414..64699fc 100644 --- a/snippets/boards/o1/mcu/resource-table.mdx +++ b/snippets/boards/o1/mcu/resource-table.mdx @@ -89,7 +89,7 @@ C11 0 → MCU_SPI0_D1
7 → MCU_GPIO0_4 Yes -- SPI DATA1 for BMP390 Pressure Sensor and ICM20948 IMU
- SPI DATA1 for Linux spidev (configurable as MOSI or MISO) +- SPI DATA1 for LPS22DFTR Pressure Sensor and ICM20948 IMU
- SPI DATA1 for Linux spidev (configurable as MOSI or MISO) Must be disabled via Device-tree (mcu_spi0). @@ -97,7 +97,7 @@ B12 0 → MCU_SPI0_D0
7 → MCU_GPIO0_3 Yes -- SPI DATA0 for BMP390 Pressure Sensor and ICM20948 IMU
- SPI DATA0 for Linux spidev (configurable as MOSI or MISO) +- SPI DATA0 for LPS22DFTR Pressure Sensor and ICM20948 IMU
- SPI DATA0 for Linux spidev (configurable as MOSI or MISO) Must be disabled via Device-tree (mcu_spi0). diff --git a/snippets/main/host/examples-run.mdx b/snippets/main/host/examples-run.mdx index 972c08f..bde3e58 100644 --- a/snippets/main/host/examples-run.mdx +++ b/snippets/main/host/examples-run.mdx @@ -10,9 +10,6 @@ MMC5603 Magnetometer Test ========================= - - Failed to open I2C device /dev/i2c-3: No such file or directory - Failed to initialize MMC5603 magnetometer ``` diff --git a/snippets/main/host/share-internet.mdx b/snippets/main/host/share-internet.mdx new file mode 100644 index 0000000..4b6b65e --- /dev/null +++ b/snippets/main/host/share-internet.mdx @@ -0,0 +1,9 @@ +```bash +INTERNET_IFACE="${1:-wlp2s0}" +OTHER_IFACE="${2:-enx02123456789a}" + +echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward +sudo iptables -A FORWARD -i $OTHER_IFACE -o $INTERNET_IFACE -j ACCEPT +sudo iptables -A FORWARD -i $INTERNET_IFACE -o $OTHER_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT +sudo iptables -t nat -A POSTROUTING -o $INTERNET_IFACE -j MASQUERADE +``` diff --git a/snippets/main/target/examples-run.mdx b/snippets/main/target/examples-run.mdx index 5d418b6..0392fdd 100644 --- a/snippets/main/target/examples-run.mdx +++ b/snippets/main/target/examples-run.mdx @@ -11,9 +11,6 @@ MMC5603 Magnetometer Test ========================= - - Failed to open I2C device /dev/i2c-3: No such file or directory - Failed to initialize MMC5603 magnetometer ``` diff --git a/snippets/main/target/share-internet.mdx b/snippets/main/target/share-internet.mdx new file mode 100644 index 0000000..ded02f1 --- /dev/null +++ b/snippets/main/target/share-internet.mdx @@ -0,0 +1,3 @@ +```bash +sudo ip route add default via 192.168.7.59 dev usb0 +``` diff --git a/tr/academy/academy.mdx b/tr/academy/academy.mdx index c14a756..4a0212d 100644 --- a/tr/academy/academy.mdx +++ b/tr/academy/academy.mdx @@ -8,8 +8,8 @@ mode: "custom" export const HeroCard = ({ filename, title, description, href }) => { return ( - - + +

{title}

{description} diff --git a/tr/boards/o1/ai/edgeai-tensorlab.mdx b/tr/boards/o1/ai/edgeai-tensorlab.mdx index 71c09df..157242d 100644 --- a/tr/boards/o1/ai/edgeai-tensorlab.mdx +++ b/tr/boards/o1/ai/edgeai-tensorlab.mdx @@ -49,11 +49,11 @@ projesi klonlandıktan sonra içerisinde bulunan `setup.sh` isimli script bu kur ```mermaid flowchart - n1@{ label: "**Projeyi indir**" } --- n2["**Gereksinimleri Kur**"] - n2 --- n3["**Devbox Shell Aktifleştir**"] - n3 --- n4["Distrobox ile Veri Etiketleme ve Model Derleme Ortamını Hazırla."] - n5["Distrobox ile EdgeAI Label Studio Paket Kurulumlarını Tamamla"] --- n6["Label Studio ile Veri Etiketle"] - n6 --- n7["Edge AI Model Maker ile Model Derle"] + n1@{ label: "**Projeyi indir**" } --- n2@{ label: "**Gereksinimleri Kur**" } + n2 --- n3@{ label: "**Devbox Shell Aktifleştir**" } + n3 --- n4@{ label: "Distrobox ile Veri Etiketleme ve Model Derleme Ortamını Hazırla." } + n5@{ label: "Distrobox ile EdgeAI Label Studio Paket Kurulumlarını Tamamla" } --- n6@{ label: "Label Studio ile Veri Etiketle" } + n6 --- n7@{ label: "Edge AI Model Maker ile Model Derle" } n4 --> n5 n1@{ shape: rounded} n3@{ shape: hex} diff --git a/tr/boards/o1/ai/installation.mdx b/tr/boards/o1/ai/installation.mdx new file mode 100644 index 0000000..421ae9f --- /dev/null +++ b/tr/boards/o1/ai/installation.mdx @@ -0,0 +1,71 @@ +--- +title: 'Kurulum' +description: 'T3 Edge AI Paketi Kurulumu' +--- + +import SnippetUEnv from '/snippets/boards/o1/uenv.mdx'; +import SnippetUEnvEdit from '/snippets/boards/o1/uenv-overlay-edit-tr.mdx'; + +Bu bölümde, T3 Gemstone O1 geliştirme kartına Edge AI paketinin nasıl kurulacağı hakkında bilgi verilecektir. +Bu paketler sayesinde yapay zeka hızlandırıcılarını kullanarak görüntü işleme işlemlerini gerçekleştirebileceksiniz. + + + + + ```bash + sudo apt update + ``` + Sistem paket listesini güncel tutmak, kurulum sırasında oluşabilecek bağımlılık hatalarını önler. + + + + ```bash + sudo apt install t3-gem-o1-edgeai + ``` + Bu komut, Edge AI geliştirme araçlarını ve kütüphanelerini tek seferde kurar. + + + + + Terminal arayüzünden `nano` isimli metin editörünü kullanarak boot klasöründe yer alan `uEnv.txt` dosyasını açınız. + + ```bash + sudo nano /boot/uEnv.txt + ``` + + + Komutu sudo ile kullandığımız için şifre soracaktır. Değiştirmediyseniz Gem-Imager ile imajı yazarken belirlemiş + olduğunuz şifreyi kullanmalısınız. + + + `uEnv.txt` dosyasının içinde bu tarz tanımlamalar bulunacaktır. + + + + `k3-am67a-t3-gem-o1-edgeai-apps.dtbo` dosya adını `overlays=` satırının sonuna boşluk bırakarak ekleyin. + + `uEnv.txt` dosyasının son hali böyle olacaktır. Uygun dosya adını `` kısmına yerleştirmeniz gerekmektedir. + + + + Overlay dosyasını tanımladıktan sonra, yapılan değişikliklerin sistem tarafından uygulanabilmesi için kartın + yeniden başlatılması gerekilmektedir. + + ```bash + sudo reboot + ``` + + + + + ```bash + sudo su + source /opt/t3-edgeai-env + ``` + Bu komutlar, `root` kullanıcısına geçmenizi ve Edge AI için gerekli olan ortam değişkenlerini yükleminizi sağlar. + + Not: Yapay zeka hızlandırıcılarının kullanılması sebebiyle işlemler donanım seviyesinde + gerçekleştirilmektedir. Bu nedenle ilgili adımların root kullanıcısı altında yürütülmesi gerekmektedir. + + + diff --git a/tr/boards/o1/ai/usage.mdx b/tr/boards/o1/ai/usage.mdx index dab7caf..37c7bf3 100644 --- a/tr/boards/o1/ai/usage.mdx +++ b/tr/boards/o1/ai/usage.mdx @@ -8,16 +8,14 @@ import SnippetAIUsageE1 from '/snippets/ai/usage-e1.mdx'; Bu bölümde, kendi veri setinizle veya hazır olarak edindiğiniz görüntü işleme modellerini nasıl kullanacağınız hakkında bilgi verilecektir. -## Mevcut Python Kodunuza Entegre Etme - -TensorFlow Lite, modelleri varsayılan olarak cihazın CPU'sunda (Merkezi İşlem Birimi) çalıştırır. +```bash +sudo su +source /opt/t3-edgeai-env +``` -"Delegate" (Temsilci/Vekil), TFLite modelinizdeki hesaplamaların bir kısmını veya tamamını CPU yerine daha -özelleşmiş bir donanıma "devretme" (delegate etme) mekanizmasıdır. Bu özel donanımları (örneğin T3 Gemstone O1 -Geliştirme Kartı içerisinde yer alan görüntü işleme hızlandırıcıları) kullanabilmek için gereken paylaşımlı -kütüphane dosyasını (.so, .dll vb.) yüklemeniz gerekmektedir. +Bu komutlar, `root` kullanıcısına geçmenizi ve Edge AI için gerekli olan ortam değişkenlerini yükleminizi sağlar. - +Ortam değişkeni dosyası yoksa [Edge AI Kurulumu](/tr/boards/o1/ai/installation) bölümünden ilgili paketi kurabilirsiniz. ## Edge AI GStreamer Apps @@ -27,20 +25,202 @@ GStreamer tabanlı bir mimariyle çalışmakta olup Texas Instruments işlemcile işleme, nesne algılama, akış (streaming) ve diğer yapay zeka iş akışlarını gerçekleştirmek için hazır çözümler sunmaktadır. +Kurulum bölümündeki Edge AI kurulumunu yaptığınız zaman `/opt/edgeai-gst-apps` klasöründen bu projeye erişebilirsiniz. + Configs klasörü içinde birden fazla uygulama için örnekler mevcuttur. Python ve C++ dillerinde projeyi çalıştırmanıza olanak sağlamaktadır. +Örneğin `configs/image_classification.yaml` içerisinde yer alan config aşağıdaki gibidir. + +```yaml +title: "Image Classification" +log_level: 2 +inputs: + input0: + source: /dev/video-usb-cam0 + format: jpeg + width: 1280 + height: 720 + framerate: 30 + input1: + source: /opt/edgeai-test-data/videos/video0_1280_768.h264 + format: h264 + width: 1280 + height: 768 + framerate: 30 + loop: True + input2: + source: /opt/edgeai-test-data/images/%04d.jpg + width: 1280 + height: 720 + index: 0 + framerate: 1 + loop: True +models: + model0: + model_path: /opt/model_zoo/TVM-CL-3090-mobileNetV2-tv + topN: 5 + model1: + model_path: /opt/model_zoo/TFL-CL-0000-mobileNetV1-mlperf + topN: 5 + model2: + model_path: /opt/model_zoo/ONR-CL-6360-regNetx-200mf + topN: 5 +outputs: + output0: + sink: kmssink + width: 1920 + height: 1080 + overlay-perf-type: graph + output1: + sink: /opt/edgeai-test-data/output/output_video.mkv + width: 1920 + height: 1080 + output2: + sink: /opt/edgeai-test-data/output/output_image_%04d.jpg + width: 1920 + height: 1080 + output3: + sink: remote + width: 1920 + height: 1080 + port: 8081 + host: 127.0.0.1 + encoding: jpeg + overlay-perf-type: graph + +flows: + flow0: [input2,model1,output0,[320,150,1280,720]] +``` + +Yukarıdaki YAML dosyasını kendi ihtiyaçlarına göre düzenleyebilirisiniz. + + +Uygulamanın başlığı. Log çıktılarında ve arayüzde referans olarak kullanılır. + + + +Log detay seviyesini belirler. 0: minimal, 5: debug + + + +İşlenecek giriş veri kaynakları. + + + +Giriş kaynağının yolu. + + + +Giriş veri formatı. Örneğin: jpeg, h264 + + + +Giriş görüntü genişliği (piksel) + + + +Giriş görüntü yüksekliği (piksel) + + + +Giriş kare hızı (FPS) + + + +Döngü ile tekrar edecek mi? + + + +Kullanılacak modeller + + + + Modelin dosya yolu. + + + + Modelden alınacak top-N tahmin sayısı. + + + +Çıkış hedefleri + + + +Çıkış yolu + + + +Streaming çözünürlüğü genişliği (piksel) + + + +Streaming çözünürlüğü yüksekliği (piksel) + + + +Streaming yapılacak host IP + + + +Streaming port numarası + + + +Streaming görüntü formatı + + + +Performans grafiği overlay türü + + + +Veri akışını tanımlar. + + + +Veri akışını tanımlar: input → model → output. Opsiyonel olarak ROI (x,y,width,height) belirtebilirsiniz. + + + + Görüntü işleme adımlarına başlamadan önce `root` olarak oturum açtığınızdan ve ortam değişkenlerini yüklediğinizden emin olunuz. + + + ```bash Python - /opt/edgeai-gst-apps/apps_python# ./app_edgeai.py ../configs/image_classification.yaml + cd /opt/edgeai-gst-apps/apps_python && ./app_edgeai.py ../configs/image_classification.yaml ``` + ```bash C++ - # Todo: Nasıl derleniyor? - # CMake ile uygulamayı derledikten sonra aşağıdaki komut ile örnek uygulamayı çalıştırabilirsiniz. - /opt/edgeai-gst-apps/apps_cpp# ./bin/Release/app_edgeai ../configs/image_classification.yaml + # Projeyi derleyiniz + cd /opt/edgeai-gst-apps && ./scripts/compile_cpp_apps.sh + + # Script ile uygulamayı derledikten sonra aşağıdaki komut ile örnek uygulamayı çalıştırabilirsiniz. + cd /opt/edgeai-gst-apps/apps_cpp && ./bin/Release/app_edgeai ../configs/image_classification.yaml ``` + -Kaynak kodları Texas Instruments'ın GitHub üzerindeki -[edgeai-gst-apps](https://github.com/TexasInstruments/edgeai-gst-apps) deposunda mevcuttur. +Görüntü işlemeyi sonra erdirmek için bir defa `CTRL + C` kombinasyonuna basarak sonlandırabilirsiniz. + +YAML dosyasında çıkış dosyasında değişiklik yapmadıysanız `/opt/edgeai-test-data/output/output_video.mkv` üzerinden +çıktıya erişebilirsiniz. + +## Mevcut Python Kodunuza Entegre Etme + +TensorFlow Lite, modelleri varsayılan olarak cihazın CPU'sunda (Merkezi İşlem Birimi) çalıştırır. + +"Delegate" (Temsilci/Vekil), TFLite modelinizdeki hesaplamaların bir kısmını veya tamamını CPU yerine daha +özelleşmiş bir donanıma "devretme" (delegate etme) mekanizmasıdır. Bu özel donanımları (örneğin T3 Gemstone O1 +Geliştirme Kartı içerisinde yer alan görüntü işleme hızlandırıcıları) kullanabilmek için gereken paylaşımlı +kütüphane dosyasını (.so, .dll vb.) yüklemeniz gerekmektedir. + + + Görüntü işleme adımlarına başlamadan önce `root` olarak oturum açtığınızdan ve ortam değişkenlerini + yüklediğinizden emin olunuz. + + + diff --git a/tr/boards/o1/introduction.mdx b/tr/boards/o1/introduction.mdx index 8609309..abec685 100644 --- a/tr/boards/o1/introduction.mdx +++ b/tr/boards/o1/introduction.mdx @@ -174,7 +174,7 @@ Texas Instruments AM67A işlemcisi tabanlı yüksek performanslı geliştirme ka - + 24-bit barometrik basınç sensörü @@ -206,10 +206,6 @@ Texas Instruments AM67A işlemcisi tabanlı yüksek performanslı geliştirme ka Kart resetleme işlevi için özel düğme - - Kullanıcı tarafından yapılandırılabilen düğme - - Sistem izleme ve kullanıcı geri bildirimi için programlanabilir durum göstergeleri diff --git a/tr/boards/o1/peripherals/gpio.mdx b/tr/boards/o1/peripherals/gpio.mdx index af18820..59ee33e 100644 --- a/tr/boards/o1/peripherals/gpio.mdx +++ b/tr/boards/o1/peripherals/gpio.mdx @@ -4,6 +4,7 @@ description: 'General Purpose Input Output (GPIO)' --- import SnippetExamplesGpioScript from '/snippets/boards/o1/examples/gpio-script.mdx'; +import SnippetExamplesLedScript from '/snippets/boards/o1/examples/led-script.mdx'; Bölüm bitiminde aşağıdaki konularda deneyim kazanacaksınız diff --git a/tr/boards/o1/peripherals/i2c.mdx b/tr/boards/o1/peripherals/i2c.mdx index 4970728..25d0cfe 100644 --- a/tr/boards/o1/peripherals/i2c.mdx +++ b/tr/boards/o1/peripherals/i2c.mdx @@ -9,7 +9,7 @@ import SnippetDevices from '/snippets/boards/o1/i2c/devices.mdx'; import SnippetRead from '/snippets/boards/o1/i2c/read.mdx'; import SnippetWrite from '/snippets/boards/o1/i2c/write.mdx'; -[I2C (Inter-Integrated Circuit)](https://preprod.kureansiklopedi.com/tr/detay/i2c-inter-integrated-circuit-8c241) +[I2C (Inter-Integrated Circuit)](https://kureansiklopedi.com/tr/detay/i2c-inter-integrated-circuit-8c241) protokolü, mikrodenetleyiciler ve diğer entegre devreler arasında veri iletimi için kullanılan yaygın bir iletişim protokolüdür. Düşük hızlı veri iletimi gerektiren uygulamalarda, özellikle sensörler, bellek modülleri ve diğer çevresel birimlerle iletişimde tercih edilmektedir. diff --git a/tr/boards/o1/peripherals/mcu.mdx b/tr/boards/o1/peripherals/mcu.mdx index aa41e4b..fcc8aa3 100644 --- a/tr/boards/o1/peripherals/mcu.mdx +++ b/tr/boards/o1/peripherals/mcu.mdx @@ -107,6 +107,11 @@ başlatır (gnome, kde, xfce). ## 2. MCU Yazılım Geliştirme + + Bu bölümde Cortex-R5 ve C7x çekirdekleri için Bare-metal yazılım geliştirme süreci anlatılmaktadır. + İlgili mimarilerde çalışacak yazılımlar Texas SDK ve araçları ile derlenerek geliştirme kartına yüklenmektedir. + + MCU projelerini derleyebilmek için gerekli araçlar aşağıda listelenmiştir. 1. Texas Instruments Processor SDK RTOS J722S @@ -314,7 +319,7 @@ Yukarıdaki işlemler sonucu istenmeyen bir durum oluşursa Yukarıdaki işlemler sonucunda artık `mcu_spi0` mcu çekirdeklerden kullanılabilir durumda olacaktır. Ancak tabloda -bulunan `Linux'ta Kullanım Amacı` bölümünde `- BMP390 basınç ve ICM20948 imu spi` için kullanıldığı belirtilmiştir. +bulunan `Linux'ta Kullanım Amacı` bölümünde `- LPS22DFTR basınç ve ICM20948 imu spi` için kullanıldığı belirtilmiştir. Dolayısıyla bu çevresel birimlere Linux'ta erişim kapatılmış olacak ve MCU tarafından sürülmesi gerekecektir. ### 3.2. Örnek Senaryo: PWM ile MCU'dan Servo Motorun Sürülmesi diff --git a/tr/changelog.mdx b/tr/changelog.mdx index ac5de4d..50a5fa7 100644 --- a/tr/changelog.mdx +++ b/tr/changelog.mdx @@ -6,6 +6,24 @@ icon: "clock-rotate-left" Gemstone projesine ait bütün yazılım ve donanım değişiklikleri özet olarak aşağıda sıralanmıştır. + + * T3 Gemstone O1, [Apache Nuttx](/tr/projects/nuttx) projesine mergelenerek resmi web sitesinde [yayınlandı.](https://nuttx.apache.org/docs/latest/platforms/arm/am67/boards/t3-gem-o1/index.html) + + + + * Wayland desteği için [mesa](https://github.com/t3gemstone/mesa-pvr) entegrasyonu [yapıldı.](/tr/roadmap#wayland-geçişi) + * Yeni Wifi revizyonlu T3-GEM-O1 için Realtek RTL8822CS desteği [eklendi.](https://github.com/t3gemstone/meta-gemstone/commit/2403da4aa7f42897839d99e98d9706c176a2ca77) + * Yol haritası bölümüne yeni [projeler eklendi.](https://docs.t3gemstone.org/tr/roadmap) + + + + * Wifi Hotspot oluşturarak Gemstone geliştirme kartını Wifi Bağlantı noktası olarak kullanma örneği [eklendi.](/tr/projects/hotspot) + * Ev kullanıcıları için küçük ölçekli bir firewall projesi [eklendi](/tr/projects/firewall) + * EdgeAI çalışmaları [tamamlandı.](/tr/boards/o1/ai/installation) + * Bilgisayarınızın internet bağlantısını kartınızla paylaşmak için gerekli adımlar [eklendi.](/tr/imager/customization#host-bilgisayarın-i̇nternetini-kart-üzerinden-kullanmak) + * LLM ile komutlanan sürü VTOL [çalışması](https://discuss.ardupilot.org/t/swarm-with-local-llm/143195) [yayınlandı!](https://github.com/t3gemstone/ardupilot?tab=readme-ov-file#ai-swarm) + + * T3Gemstone O1 resmi Ardupilot sitesinde [yayınlandı!](https://ardupilot.org/plane/docs/common-t3-gem-o1-overview.html) diff --git a/tr/development.mdx b/tr/development.mdx index 51821fe..0e5d215 100644 --- a/tr/development.mdx +++ b/tr/development.mdx @@ -55,7 +55,7 @@ kameralardan verileri aldıktan sonra işleyerek çeşitli motorların, @@ -67,7 +67,7 @@ _T3-GEM-O1_ isimli geliştirme kartının donanım tasarımları (PCB vb.) Gemstone üzerinde GNU/Linux işletim sistemi bulunmaktadır. [Çekirdek (Kernel)](https://github.com/t3gemstone/linux), [Önyükleyici (Bootloader/U-Boot)](https://github.com/t3gemstone/u-boot), [Dağıtım (Distro)](https://github.com/t3gemstone/sdk/tree/main/distro), Firmware gibi bileşenleri barındırmakta -olup; sistem bir araya getirilirken [Yocto Project](https://preprod.kureansiklopedi.com/tr/detay/yocto-projesi-the-yocto-project-b9e7e) ve +olup; sistem bir araya getirilirken [Yocto Project](https://kureansiklopedi.com/tr/detay/yocto-projesi-the-yocto-project-b9e7e) ve [Debootstrap](https://github.com/t3gemstone/debos) gibi araçlar kullanılmıştır. GNU/Linux dağıtımı ([Distro](https://github.com/t3gemstone/sdk/tree/main/distro)) olarak Debian, Ubuntu, Poky @@ -221,7 +221,7 @@ Statik IP adresi atandıktan sonra bağlantıyı test etmek için aşağıdaki k Eğer yanıt alabiliyorsanız Ethernet bağlantısı başarılıdır. ```bash -gemstone@t3-gem-o1:~$ ping 10.0.0.2 +gemstone@t3-gem-o1:~$ ping 10.0.0.1 ``` #### 2.2.2. Git clone işlemi ile örnek projeleri indir @@ -245,3 +245,74 @@ ubuntu@host:examples$ scp -r build/examples gemstone@10.0.0.1:build #### 2.2.6. Derlenmiş projeyi çalıştır + +# 3. VSCode Uzak Geliştirme (Remote Development) + +Kullanmakta olduğunuz İşletim Sisteminde kurulu olan VSCode aracılığıyla Gemstone'na uzak bağlantı yaparak +geliştirme yapabilirsiniz. Bu yöntemle kendi bilgisayarınızın kaynaklarını kullanarak kod derleme +işlemlerini kart üzerinde gerçekleştirirsiniz. Kartınızın bunu desteklemesi için hızlı başlangıç bölümünde +anlatılan [Servisler](./quickstart#servisler) bölümündeki SSH seçeneğinin işaretlenerek kurulum yapılmış olması +gerekmektedir. + +### 3.1. Eklentinin Kurulması + +VSCode üzerinden uzak bağlantı kurabilmek için Microsoft tarafından geliştirilen "Remote - SSH" eklentisini +kurmanız gerekmektedir. + +1. VSCode'u açın. +2. Sol menüdeki **Extensions** (Eklentiler) simgesine tıklayın veya `Ctrl+Shift+X` tuşlarına basın. +3. Arama çubuğuna `Remote - SSH` yazın. +4. Microsoft tarafından yayınlanan eklentiyi bulun ve **Install** (Kur) butonuna tıklayın. + + + + + +### 3.2. SSH Yapılandırması (Önerilen) + +Her defasında şifre girmeden hızlıca bağlanabilmek için SSH anahtarlarınızı (SSH Keys) yapılandırmanız +tavsiye edilir. + +#### 3.2.1. SSH Anahtarı Oluşturma + +Bilgisayarınızın terminalinde (Linux/macOS terminali veya Windows PowerShell) aşağıdaki komutu çalıştırarak bir +anahtar çifti oluşturun: + +```bash +ssh-keygen -t rsa -b 4096 +``` + +Bu komut sonrası çıkan soruları varsayılan ayarlarla (Enter tuşuna basarak) geçebilirsiniz. + +#### 3.2.2. Anahtarı Karta Kopyalama + +Oluşturduğunuz genel anahtarı (`public key`) Gemstone kartına transfer etmek için aşağıdaki komutu kullanın: + +```bash +ssh-copy-id gemstone@192.168.7.2 +``` + + + Gemstone'un IP adresini değiştirdiyseniz veya [statik IP](#2-2-1-gemstone-kartını-ve-bilgisayarınızı-ethernet-ile-birbirine-bağlayın) + atadıysanız ilgili adresi giriniz. + + +### 3.3. Hedef Cihaza Bağlanma + +Eklentiyi kurduktan ve SSH ayarlarını tamamladıktan sonra bağlantıyı başlatabilirsiniz. + +1. VSCode'un sol alt köşesinde bulunan mavi renkli **Open a Remote Window** (Uzak Pencere Aç) simgesine tıklayın. +2. Açılan menüden **Connect to Host...** seçeneğini seçin. +3. `gemstone@192.168.7.2` yazın ve `Enter` tuşuna basın. +4. Bağlantı sağlandığında, sol alt köşede **SSH: 192.168.7.2** ibaresini göreceksiniz. + +### 3.4. Proje Klasörünü Açma ve Çalışma + +Bağlantı başarılı olduktan sonra "File > Open Folder" yoluyla Gemstone üzerindeki bir klasörü seçerek +çalışmaya başlayabilirsiniz. + + + Geliştirme yaparken ihtiyacınız olan **C/C++**, **Python** veya **CMake Tools** gibi eklentileri uzak cihaza + bağlıyken tekrar kurmanız gerekebilir. Eklentiler sekmesinde "Install on SSH: 192.168.7.2" butonu ile bu + işlemi gerçekleştirebilirsiniz. + diff --git a/tr/distros/desktop.mdx b/tr/distros/desktop.mdx index bb5a8e1..3a2d056 100644 --- a/tr/distros/desktop.mdx +++ b/tr/distros/desktop.mdx @@ -3,8 +3,8 @@ title: 'Desktop' description: 'Desktop imajı' --- -Desktop dağıtımımız, istikrar ve verimlilik için tasarlanmış, hafif ancak özellik açısından zengin bir masaüstü ortamı -olan **Xfce4** üzerine kurulmuştur. Düşük kaynak kullanımı elde temek ve sorunsuz bir kullanıcı deneyimi sağlamak için +Desktop imajı hafif ancak özellik açısından zengin bir masaüstü ortamı olan **Xfce4** üzerine kurulmuştur. +Düşük kaynak kullanımı elde etmek ve sorunsuz bir kullanıcı deneyimi sağlamak için bileşenler dikkatli bir şekilde seçilmiştir. ## 1. Özellikler @@ -13,8 +13,9 @@ bileşenler dikkatli bir şekilde seçilmiştir. - **LXDE yerine Xfce**: LXDE hafif olmasına rağmen, Xfce'nin hazır olarak sunduğu sistem geneli ayar panelinden ve bazı diğer özelliklerden yoksundur. -- **Wayland yerine X11**: Wayland modern özellikler sunsa da henüz yeterince olgun değildir ve uyumluluk sorunları - yaşanabilmektedir. Birçok uygulama hala X11'e bağımlıdır. +- **Wayland yerine X11**: Wayland modern özellikler sunsa da T3 Gemstone kartlarında henüz yeterince olgun değildir + ve uyumluluk sorunları yaşanabilmektedir. (Uyarlama çalışmaları devam [etmektedir.](/tr/roadmap#wayland-geçişi)) + Birçok uygulama hala X11'e bağımlıdır. Xfce4 tabanlı dağıtımımız aşağıdaki temel bileşenleri içermektedir: diff --git a/tr/distros/minimal.mdx b/tr/distros/minimal.mdx index cfeb77e..9ea1aac 100644 --- a/tr/distros/minimal.mdx +++ b/tr/distros/minimal.mdx @@ -15,7 +15,7 @@ başlıklarını yazarak kısa bir araştırma yapınız. 1. [Real-time Application of Embedded Systems Projects](https://mth.tc/mjBS) 2. [Example of Embedded Systems](https://mth.tc/Q3ir3) 3. [Example of IoT Projects](https://mth.tc/Sm3ZS) -4. [Linux PREEMPT_RT Genel Amaçlı İşletim Sisteminden Gerçek Zamanlı Platforma Dönüşüm](https://preprod.kureansiklopedi.com/tr/detay/linux-preempt_rt-genel-amacli-isletim-sisteminden-) +4. [Linux PREEMPT_RT Genel Amaçlı İşletim Sisteminden Gerçek Zamanlı Platforma Dönüşüm](https://kureansiklopedi.com/tr/detay/linux-preempt_rt-genel-amacli-isletim-sisteminden-) Fabrika otomasyonu için robot bir kol çalışması yaptığınızı hayal ediniz. Hareketli bir üretim hattı @@ -38,10 +38,10 @@ işletim sistemleri kullanılmaktadır. Örneğin [PX4](https://mth.tc/gkgIy) is [Apache NuttX](https://github.com/t3gemstone/NuttX) işletim sistemi veya muhtelif sistemlerde [FreeRTOS](https://www.freertos.org/Documentation/00-Overview) gibi işletim sistemleri tercih edilmektedir. -Linux çekirdeği de [Tübitak GzIS](https://preprod.kureansiklopedi.com/tr/detay/tubitak-gis-gercek-zamanli-isletim-sistemi-69507), +Linux çekirdeği de [Tübitak GzIS](https://kureansiklopedi.com/tr/detay/tubitak-gis-gercek-zamanli-isletim-sistemi-69507), NuttX, FreeRTOS, vxWorks, [Zephyr](https://www.zephyrproject.org/) gibi Realtime/Gerçek Zamanlı çalışabilme özelliğine sahiptir ve sayılan bu sistemlerden farklı olarak yüzlerce açık kaynak kodlu projenin -kullanılabilmesine imkan sağladığı için çok büyük bir avantajı vardır. +kullanılabilmesine imkan sağladığı için çok büyük bir avantajı vardır. (Kritik sistemlerde kullanılmasında dezavantajları da mevcuttur.) (Örnek bir makale için [tıklayınız](https://mth.tc/jRzV)) Gemstone Minimal isimli imaj; hızlı açılabilmesi (Boot süresi) ve deterministik bir yapıda olması için optimize diff --git a/tr/imager/customization.mdx b/tr/imager/customization.mdx index e58a5bf..0fca703 100644 --- a/tr/imager/customization.mdx +++ b/tr/imager/customization.mdx @@ -3,6 +3,9 @@ title: 'Özelleştirme' description: 'Sistem özelleştirme' --- +import SnippetHostShareInternet from '/snippets/main/host/share-internet.mdx'; +import SnippetTargetShareInternet from '/snippets/main/target/share-internet.mdx'; + Bu bölümün sonunda Gemstone Imager uygulamasının özelleştirme menülerindeki alanların ne işe yaradığını öğreneceksiniz. @@ -103,3 +106,26 @@ olması gerekmektedir. Talimatlar için [tıklayınız](https://www.diodes-delig - `Ethernet` alanı eğer yazma işlemi kartın eMMCsine yapılıyorsa karta bağlı olan ethernet portu seçilmelidir. SD Karta yazma işleminde etkisizdir. + +## Host Bilgisayarın İnternetini Kart Üzerinden Kullanmak + +Gadgets (Araçlar) bölümünden `Enable Ethernet Gadget` seçeneği işaretlenmiş ise bu; kartınıza USB üzerinden +ethernet bağlantısı yapabilmenizi sağlar. İmaj yükleme işlemleri sonrası Host bilgisayarın terminalinden +`ssh gemstone@192.168.7.2` komutu ile ulaşabilmektesiniz. Fakat kartınızın içerisinde WIFI ayarları yapmadıysanız +kartınızın internete erişimi olmayacaktır. Host bilgisayarınızın internetini kartınız üzerinden kullanmak için +aşağıdaki adımları takip edebilirsiniz: + +1. Kartızın açık ve gadget ayarları ile imaj yazılmış olduğundan emin olunuz. +2. Host bilgisayarınızın internete bağlı olduğuna emin olunuz. +3. Terminali açarak aşağıdaki komutu çalıştırarak `ip a` komutu ile ağ arayüzünüzü ve Gemstone kartınızın oluşturduğu + ethernet arayüzünün isimlerini öğreniniz. Genellikle host bilgisayar arayüzünün ismi `wlp2s0` Gemstone kartınızın + oluşturduğu Gadget arayüzünün ismi ise `enx02123456789a` gibi olur. + +Aşağıdaki komutu kendi bilgisayarınızdaki Terminal'den çalıştırınız. + + + +Son olarak aşağıdaki komutu ise karta `ssh gemstone@192.168.7.2` komutu ile bağlandıktan sonra kartın +terminalinden çalıştırınız. + + diff --git a/tr/imager/emmc.mdx b/tr/imager/emmc.mdx index a36fb78..7d7e23d 100644 --- a/tr/imager/emmc.mdx +++ b/tr/imager/emmc.mdx @@ -11,14 +11,7 @@ Gemstone işletim sisteminin SD kartın yanı sıra eMMC üzerinden de boot edil eMMC, yüksek performanslı ve güvenilir bir depolama çözümüdür. SD karta kıyasla daha hızlı veri erişimi ve daha sağlam fiziksel yapı sunması nedeniyle birçok uygulamada öncelikli olarak tercih edilmektedir. -Bu bölümde eMMC'ye imaj yazmanın iki farklı yöntemi anlatılmaktadır: - -- **Yöntem 1 — USB DFU:** Bootmode switch USB DFU konumuna alınarak doğrudan USB üzerinden imaj yüklenir. -- **Yöntem 2 — Ethernet + UART:** Gem Imager uygulaması ağ üzerinden karta bağlanarak eMMC'ye imaj yazar. - ---- - -## Yöntem 1: USB DFU ile eMMC'ye İmaj Yazma +## 1. USB DFU ile eMMC'ye İmaj Yazma USB DFU (Device Firmware Upgrade), T3 Gemstone O1'in USB üzerinden doğrudan programlanmasını sağlayan standarttır. SD karta veya çalışan bir sisteme gerek kalmadan eMMC'ye imaj yazılabilir. @@ -48,7 +41,8 @@ SD karta veya çalışan bir sisteme gerek kalmadan eMMC'ye imaj yazılabilir. - Yukarıdaki görsel, bootmode switch'in kart üzerindeki fiziksel konumunu göstermek amacıyla eklenmiştir ve temsilidir. DFU modu için switch pozisyonunu aşağıdaki diyagramdan takip ediniz. + Yukarıdaki görsel, bootmode switch'in kart üzerindeki fiziksel konumunu göstermek amacıyla eklenmiştir ve temsilidir. + DFU modu için switch pozisyonunu aşağıdaki diyagramdan takip ediniz. @@ -58,65 +52,21 @@ SD karta veya çalışan bir sisteme gerek kalmadan eMMC'ye imaj yazılabilir. USB-C kablosunu kartın DFU portuna ve bilgisayarınıza takınız, ardından güç veriniz. - - - Kartın DFU cihazı olarak göründüğünü doğrulayınız. - - - - `dfu-util` isimli uygulama yüklü değilse, `sudo apt install dfu-util` komutu ile Ubuntu bilgisayarınıza yükleyiniz. - - ```bash - sudo dfu-util -l - ``` - - - `dfu-util` Windows ikili dosyasını [dfu-util ana sayfasının](http://dfu-util.sourceforge.net/) - Releases bölümünden indirip zip'i çıkartınız, ardından çalıştırınız: - - ```powershell - dfu-util.exe -l - ``` - - - Windows'ta `dfu-util.exe -l` çıktısı boş geliyorsa, cihaza **WinUSB** sürücüsünü - [Zadig](https://zadig.akeo.ie/) ile yüklemeniz gerekmektedir: - - 1. [zadig.akeo.ie](https://zadig.akeo.ie/) adresinden Zadig'i indirip çalıştırınız - (kurulum gerektirmez; UAC yönetici onayı isteyecektir) - 2. Kart listede görünmüyorsa **Options → List All Devices** seçeneğini etkinleştiriniz - 3. Açılır listeden VID `0451` / PID `6165` olan cihazı seçiniz - 4. Sürücü olarak **WinUSB**'ı seçip **Install Driver** butonuna tıklayınız - 5. Yükleme tamamlandığında sürücü adı yeşil renkte görüntülenecektir - - - - - VID:PID **0451:6165** ile `bootloader` ve `SocId` alt ayarlarını içeren bir giriş - görmeniz gerekmektedir. - - ``` - Found DFU: [0451:6165] ver=0200, devnum=9, cfg=1, intf=0, path="1-2.2", alt=1, name="SocId", serial="01.00.00.00" - Found DFU: [0451:6165] ver=0200, devnum=9, cfg=1, intf=0, path="1-2.2", alt=0, name="bootloader", serial="01.00.00.00" - ``` - - Cihaz listede görünmüyorsa 1. adımdan itibaren tekrar deneyiniz. - -### 1.2. Gem Imager ile İmaj Yükleme +### 1.2. GemImager ile İmaj Yükleme -Gem Imager tüm DFU yazma sürecini otomatik olarak yönetir — önyükleyici dosyaları işletim sistemi +GemImager tüm DFU yazma sürecini otomatik olarak yönetir — önyükleyici dosyaları işletim sistemi imajı ile birlikte gönderilir ve doğru sırayla yüklenir. - - Bilgisayarınızda **Gem Imager**'ı başlatınız ve kullanmak istediğiniz kartı seçiniz. + + Bilgisayarınızda **GemImager**'ı başlatınız ve kullanmak istediğiniz kartı seçiniz. - Gem Imager'ın USB aygıtlarına erişebilmesi için **yönetici (administrator) olarak çalıştırılması** gerekmektedir. + GemImager'ın USB aygıtlarına erişebilmesi için **yönetici (administrator) olarak çalıştırılması** gerekmektedir. @@ -140,13 +90,6 @@ imajı ile birlikte gönderilir ve doğru sırayla yüklenir. Yazma işlemi sırasında USB kablosunu çıkarmayınız veya güç bağlantısını kesmeyiniz. - Gem Imager sırasıyla şu işlemleri gerçekleştirir: - - 1. Seçilen imajı indirir veya okur - 2. Önyükleyici dosyalarını çıkarır (`tiboot3.bin`, `tispl.bin`, `u-boot.img`) - 3. Her önyükleyici aşamasını DFU üzerinden yazar - 4. Tam OS imajını eMMC'ye aktarır (`rawemmc` alt ayarı) - @@ -176,9 +119,11 @@ imajı ile birlikte gönderilir ve doğru sırayla yüklenir. -### 1.3. SDK ile Manuel İmaj Yükleme (dfu-util) +## 2. SDK ile Manuel İmaj Yükleme (dfu-util) -Bu yöntem, SDK derleme çıktılarıyla çalışan Linux kullanıcıları içindir. + + Bu yöntem, SDK derleme sistemi ile çalışan Geliştiriciler içindir. + Kaynak koddan imaj derleme hakkında daha fazla bilgi için [SDK belgelerine](/tr/sdk/introduction) bakınız. @@ -249,35 +194,55 @@ Başarılı bir SDK derlemesinin ardından gereken dosyalar iki dizinde bulunur: ---- - -## Yöntem 2: Ethernet + UART ile eMMC'ye İmaj Yazma - -Bu yöntemde kart üzerinde halihazırda çalışan bir Linux sistemi (SD kart veya eMMC) olması gerekmektedir. -Ethernet ve isteğe bağlı UART bağlantısıyla Gem Imager'ın dahili eMMC seçeneği kullanılır. - -### 2.1. Gemstone'u bilgisayara bağla - -Gemstone'a USB Type-C ve Ethernet bağlantılarını yaptıktan sonra UART0'a USB-TTL Uart dönüştürücü -bağlantısını da yapınız. - - - Eğer Linux işletim sistemini kullanıyorsanız yazma işlemini başlatmadan önce bilgisayarınızın - kablolu ağ bağlantısını kapatmanız gerekmektedir. - - -### 2.2. Yazma işleminin başlatılması - -[Hızlı Başlangıç](/tr/quickstart) sayfasındaki [İmaj yazma işlemi](/tr/quickstart#1-2-i̇maj-yazma-işlemi) -kısmında depolama aygıtı seçimi kısmına kadar gelip seçiminizi `Internal eMMC` şeklinde yapınız. - - - - - -Sonrasında **İleri** butonuna tıklayıp gerekli ayarları yaptıktan sonra eMMC'ye imaj yazma işlemini başlatınız. - -### 2.3. Gemstone işletim sistemine bağlan - -İmaj yazma işlemi bittikten sonra sistem eMMC üzerinden boot edilecektir. Seri port veya SSH aracılığıyla -Gemstone işletim sistemine bağlanabilirsiniz. +### 2.1. Doğrulama Adımı + +GemImager DFU ile yazma işlemi yapıldığında sırasıyla şu işlemleri gerçekleştirir: + +1. Seçilen imajı indirir veya okur +2. Önyükleyici dosyalarını çıkarır (`tiboot3.bin`, `tispl.bin`, `u-boot.img`) +3. Her önyükleyici aşamasını DFU üzerinden yazar +4. Tam OS imajını eMMC'ye aktarır (`rawemmc` alt ayarı) + + + Kartın DFU cihazı olarak göründüğünü doğrulayınız. + + + + `dfu-util` isimli uygulama yüklü değilse, `sudo apt install dfu-util` komutu ile Ubuntu bilgisayarınıza yükleyiniz. + + ```bash + sudo dfu-util -l + ``` + + + `dfu-util` Windows ikili dosyasını [dfu-util ana sayfasının](https://dfu-util.sourceforge.net/) + Releases bölümünden indirip zip'i çıkartınız, ardından çalıştırınız: + + ```powershell + dfu-util.exe -l + ``` + + + Windows'ta `dfu-util.exe -l` çıktısı boş geliyorsa, cihaza **WinUSB** sürücüsünü + [Zadig](https://zadig.akeo.ie/) ile yüklemeniz gerekmektedir: + + 1. [zadig.akeo.ie](https://zadig.akeo.ie/) adresinden Zadig'i indirip çalıştırınız + (kurulum gerektirmez; UAC yönetici onayı isteyecektir) + 2. Kart listede görünmüyorsa **Options → List All Devices** seçeneğini etkinleştiriniz + 3. Açılır listeden VID `0451` / PID `6165` olan cihazı seçiniz + 4. Sürücü olarak **WinUSB**'ı seçip **Install Driver** butonuna tıklayınız + 5. Yükleme tamamlandığında sürücü adı yeşil renkte görüntülenecektir + + + + + VID:PID **0451:6165** ile `bootloader` ve `SocId` alt ayarlarını içeren bir giriş + görmeniz gerekmektedir. + + ``` + Found DFU: [0451:6165] ver=0200, devnum=9, cfg=1, intf=0, path="1-2.2", alt=1, name="SocId", serial="01.00.00.00" + Found DFU: [0451:6165] ver=0200, devnum=9, cfg=1, intf=0, path="1-2.2", alt=0, name="bootloader", serial="01.00.00.00" + ``` + + Cihaz listede görünmüyorsa 1. adımdan itibaren tekrar deneyiniz. + diff --git a/tr/introduction.mdx b/tr/introduction.mdx index 8b4a4ec..c09f257 100644 --- a/tr/introduction.mdx +++ b/tr/introduction.mdx @@ -4,10 +4,10 @@ description: "T3 Gemstone Geliştirme Kartı Dokümantasyonu" icon: 'map' --- -Açık kaynak yazılım ve donanımdan oluşan [Gemstone](https://preprod.kureansiklopedi.com/tr/detay/Gemstone) geliştirme +Açık kaynak yazılım ve donanımdan oluşan [Gemstone](https://kureansiklopedi.com/tr/detay/t3-gemstone-cf747) geliştirme kartları; Teknofest yarışmalarında İnsanlı ve İnsansız Sistemler, IoT, Robotik vb. çalışmalarda kullanılmak üzere geliştirilmiş yapay zeka destekli donanımlar ve optimize edilmiş -[Gerçek Zamanlı](https://preprod.kureansiklopedi.com/tr/detay/linux-preempt_rt-genel-amacli-isletim-sisteminden-) +[Gerçek Zamanlı](https://kureansiklopedi.com/tr/detay/linux-preempt_rt-genel-amacli-isletim-sisteminden-) Debian tabanlı GNU/Linux işletim sistemine sahip bilgisayarlardır. [Türkiye Teknoloji Takımı](https://t3vakfi.org/tr/) Vakfı tarafından yarışmacılar, öğrenciler ve girişimciler için geliştirilmektedir. diff --git a/tr/projects/ardupilot.mdx b/tr/projects/ardupilot.mdx index 6acfb63..4eeba14 100644 --- a/tr/projects/ardupilot.mdx +++ b/tr/projects/ardupilot.mdx @@ -37,7 +37,7 @@ Bu kılavuz, T3 Gemstone O1 geliştirme kartlarında ArduPilot çalıştırmayı - **Harici I2C Pusula Taraması**: Etkin ### Barometre -- **Model**: Bosch BMP390 +- **Model**: STMicroelectronics LPS22DFTR - **Arayüz**: SPI ### CAN Veri Yolu diff --git a/tr/projects/firewall.mdx b/tr/projects/firewall.mdx new file mode 100644 index 0000000..d65dc38 --- /dev/null +++ b/tr/projects/firewall.mdx @@ -0,0 +1,160 @@ +--- +title: 'Firewall' +description: 'Ev kullanıcıları için küçük bir güvenlik duvarı' +--- + +github.com/t3gemstone/AdGuardHome + + +Bölüm bitiminde aşağıdaki konularda bilgi sahibi olacaksınız. + +* Gemstone geliştirme kartına Firewall kurup modem ayarlarından DNS değişikliği yaparak evinizdeki cihazların + internet erişimini kontrol altına almak, reklam engellemek ve girilen web sitelerinin isimlerini görmek. +* Bu sayede akıllı ev aletleri vb. cihazların hangi sunuculara bağlandığını görebilir ve istenmeyen bağlantıları +engelleyebilirsiniz. + + + + + + + + + + + + + + + + + + +## Kurulum + +Gemstone için yeniden derlenen AdGuard Home versiyonunu kurmak için cihazınızın terminaline aşağıdaki komutu +yapıştırın ve çalıştırın: + +```bash +curl -sSL https://raw.githubusercontent.com/t3gemstone/AdGuardHome/master/scripts/install.sh | bash +``` + +Kurulum tamamlandıktan sonra, AdGuard Home arka planda bir servis olarak çalışmaya başlayacaktır. + +## İlk Başlangıç ve Yapılandırma + +AdGuard Home kurulduktan sonra, ilk ayarları yapmak için bir web tarayıcısı üzerinden arayüze bağlanmanız gerekir. + +1. **Arayüze Erişim:** Aynı ağdaki bir bilgisayar veya telefonun tarayıcısından Gemstone cihazınızın IP adresini + ve `:3000` portunu yazarak (örneğin `http://192.168.1.100:3000` veya localhost'tan `http://127.0.0.1:3000`) yönetim + paneli kurulum sihirbazına erişin. +2. **Kurulum Sihirbazı:** Karşınıza çıkan ekranda "Başlayın" veya "Get Started" butonuna tıklayarak yapılandırmayı başlatın. +3. **Ağ Arayüzleri:** + - **Yönetim Arayüzü:** Yönetim paneline hangi arayüz ve port (varsayılan: 80) üzerinden erişileceğini belirleyin. + - **DNS Sunucusu:** DNS sunucusunun hangi arayüz ve port (varsayılan: 53) üzerinden hizmet vereceğini seçin. +4. **Yönetici Hesabı:** Panel erişimi için bir kullanıcı adı ve güçlü bir parola belirleyin. Panele girişte bunlara + ihtiyacınız olacağı için bilgileri bir kenara not edin. +5. **Cihazları Yapılandırma:** Sihirbazın bu adımında farklı cihazlar için DNS yönlendirme talimatlarını göreceksiniz. + Bu adımı şimdilik geçebilirsiniz, aşağıda da detaylıca açıklanmıştır. +6. **Panoya Geçiş:** Kurulumu tamamladıktan sonra "Panoyu Aç" butonuyla veya belirlediğiniz port üzerinden + (örneğin `http://192.168.1.100` veya doğrudan cihazda `http://127.0.0.1`) oluşturduğunuz kullanıcı adı ve şifreyle giriş yapın. + +## Cihazları Yapılandırma (DNS Yönlendirmesi) + +Ağınızdaki cihazların reklam engelleme ve güvenlik duvarı özelliklerinden faydalanabilmesi için DNS sunucu adreslerini +Gemstone cihazınızın IP adresi (AdGuard Home sunucusu) olarak değiştirmeniz gerekmektedir. + +Bunu iki şekilde yapabilirsiniz: + +### Yöntem 1: Yönlendirici (Modem) Üzerinden (Önerilen) + +Bu yöntem ile modeminize bağlı tüm cihazlar otomatik olarak Firewall korumasına alınır. İnternet Servis +Sağlayıcılarına göre sık kullanılan modem arayüzlerindeki yapılandırma adımları şu şekildedir: + + + + Türk Telekom tarafından verilen **ZTE (örn. ZXHN H298A)** veya **TP-Link (örn. TD-W9970)** modemlerde DNS ayarı için: + 1. Tarayıcıdan `http://192.168.1.1` adresine giderek modem arayüzüne giriş yapın. + 2. **Yerel Ağ (LAN)** veya **Ağ (Network)** menüsüne tıklayın. + 3. **DHCP Sunucusu** veya **LAN Ayarları** alt menüsünü bulun. + 4. **Birincil DNS Sunucusu** ve **İkincil DNS Sunucusu** kutucuklarına **Gemstone cihazınızın IP adresini** yazın. + 5. Ayarları kaydedip modemi yeniden başlatın. + > **Not:** Türk Telekom bazı yazılım güncellemeleriyle arayüzdeki DNS değiştirme menüsünü gizlemiş olabilir. + Eğer menüde değişiklik yapamıyorsanız korumayı kullanmak için Yöntem 2'deki cihaz bazlı yapılandırmaya geçebilirsiniz. + + + + Superonline'ın sağladığı **Huawei (örn. HG255s)** veya **ZTE (örn. ZXHN H267A)** fiber modemlerde DNS ayarı için: + 1. Tarayıcıdan `http://192.168.1.1` adresine gidip arayüze giriş yapın (Superonline modemlerde şifre genellikle `superonline` olarak gelir). + 2. Üst menüden **Yerel Ağ (LAN)** sekmesine tıklayın. + 3. Sol taraftaki menüden **DHCP Sunucusu** ayarlarına girin. + 4. Burada statik DNS atamaya izin veriliyorsa, **Birincil DNS** ve **İkincil DNS** alanlarına **Gemstone cihazınızın IP adresini** girin. + 5. Uygula diyerek kaydedin. + > **Not:** Superonline modemlerin birçoğunda (özellikle Huawei fiber modemlerde) DNS ayarı servis sağlayıcı + tarafından kilitlenmiştir. Arayüzde değişiklik yapmanıza izin verilmiyorsa Yöntem 2 ile cihaz bazında DNS değişikliği yapmalısınız. + + + + TurkNet kullanıcılarının sıkça kullandığı **Zyxel (örn. VMG3625-T50B veya VMG8623-T50B)** serisi modemlerde DNS ayarı için: + 1. Tarayıcıdan `http://192.168.1.1` adresinden arayüze giriş yapın (Kullanıcı adı genelde `admin`, şifre ise modem + arka etiketinde veya `turknet`'tir). + 2. Menü ikonundan (sağ üstte veya solda) **Ağ Ayarı (Network Setting)** > **Ev Ağı (Home Networking)** yolunu izleyin. + 3. Açılan sayfada **LAN Kurulumu (LAN Setup)** sekmesine geçin. + 4. Sayfayı aşağı kaydırarak **DNS Değerleri (DNS Values)** ayarını bulun ve yapıyı **Statik (Static)** olarak değiştirin. + 5. DNS Sunucusu alanlarına **Gemstone cihazınızın IP adresini** girin ve ayarları "Uygula" butonuna basarak kaydedin. + + + + Genel geçer adımlar: + 1. Tarayıcıda `http://192.168.1.1` veya `http://192.168.0.1` adresleri üzerinden modem arayüzüne giriş yapın. + 2. **DHCP / DNS Ayarları** veya **LAN Ayarları** bölümünü bulup açın. + 3. Birincil ve İkincil DNS sunucusu (DNS 1 ve DNS 2) alanlarına **Gemstone cihazınızın ağdaki IP adresini** yazın. + 4. Ayarları kaydedin ve modeminizi yeniden başlatın. + + + +### Yöntem 2: Cihaz Bazlı Yapılandırma + +Sadece belirli cihazların korumadan faydalanamasını istiyorsanız veya modeme müdahale edemiyorsanız, DNS adresini +teker teker cihazlardan değiştirebilirsiniz. + + + + 1. **Denetim Masası** > **Ağ ve İnternet** > **Ağ ve Paylaşım Merkezi** menüsüne gidin. + 2. Sol taraftan **Bağdaştırıcı ayarlarını değiştir** seçeneğine tıklayın. + 3. Etkin ağ bağlantınıza sağ tıklayıp **Özellikler**'e girin. + 4. **İnternet Protokolü Sürüm 4 (TCP/IPv4)** seçip **Özellikler**'e tıklayın. + 5. "Aşağıdaki DNS sunucu adreslerini kullan" seçeneğini işaretleyin. + 6. **Gemstone cihazınızın IP adresini** girin ve ayarları kaydedin. + + + + 1. Ekranın sol üstündeki Apple () simgesinden **Sistem Ayarları** (veya Sistem Tercihleri) > **Ağ** menüsüne gidin. + 2. Aktif bağlantınızı (Wi-Fi veya Ethernet) seçin ve **Ayrıntılar** (veya İleri Düzey) butonuna tıklayın. + 3. **DNS** sekmesine geçin. + 4. Sol alttaki `+` butonuna tıklayarak **Gemstone cihazınızın IP adresini** ekleyin ve tamam deyin. + + + + 1. **Ayarlar** > **Ağ ve İnternet** > **Wi-Fi** menüsüne gidin. + 2. Bağlı olduğunuz ağın üzerine uzun basın ve **Ağı Değiştir** veya çark (ayarlar) simgesine dokunun. + 3. **Gelişmiş** ayarlar altında IP ayarlarını **Statik** olarak değiştirin. + 4. **DNS 1** (ve gerekirse DNS 2) alanlarına **Gemstone cihazınızın IP adresini** yazın ve kaydedin. + + + + 1. **Ayarlar** > **Wi-Fi** menüsüne gidin. + 2. Bağlı olduğunuz ağın yanındaki mavi bilgi `(i)` simgesine dokunun. + 3. Aşağıya doğru kaydırıp **DNS'i Ayarla** seçeneğine dokunun. + 4. Seçeneği **Elle** olarak işaretleyin. + 5. Varsayılan sunucuları silip **Sunucu Ekle** butonuna basarak **Gemstone cihazınızın IP adresini** ekleyin ve ayarlardan çıkıp kaydedin. + + + + +Modem ayarlarınız DNS değişikliği yapmanıza izin vermiyorsa, [Hotspot](/tr/projects/hotspot) isimli bölümde anlatılan yöntemle +Gemstone geliştirme kartını bir Wifi bağlantı noktasına dönüştürerek evinizde bulunan cihazları bu wifi ağına bağlayıp +kontrol altına alabilirsiniz. + + +https://adguard-dns.io/kb/tr/adguard-home/getting-started/ diff --git a/tr/projects/homeassistant.mdx b/tr/projects/homeassistant.mdx new file mode 100644 index 0000000..beab34b --- /dev/null +++ b/tr/projects/homeassistant.mdx @@ -0,0 +1,319 @@ +--- +title: 'Home Assistant' +description: 'T3 Gemstone O1 Akıllı Ev Merkezi Yönetim Sistemi' +--- + + + Home Assistant + + + +Bölüm bitiminde aşağıdaki konularda bilgi sahibi olacaksınız. + +* T3 Gemstone O1 geliştirme kartına **Home Assistant** akıllı ev sistemi kurulumu +* Bu projeyle Deneyap Kart kullanılarak sensörlerin bağlanması ve ev otomasyonunun sağlanması ile akıllı ev uygulamalarının geliştirilmesi + + +## 1. Giriş + +Günümüzde ev otomasyonu verilerinin kontrolü ve akıllı cihazların güvenliği her zamankinden daha önemli. +Aydınlatmalarınızı, güvenlik kameralarınızı, akıllı prizlerinizi ve sensörlerinizi Amazon, Google, Xiaomi veya Tuya gibi +büyük bulut sağlayıcılarına bağımlı olmadan merkezi bir sistemde yönetmek isteyebilirsiniz. +Bunun için kendi akıllı ev sunucunuzu kendi cihazınızda barındırmanız ve cihazlarınızı yerel ağ üzerinden kontrol etmeniz gerekir. +Ancak evinizde böyle bir merkez çalıştırmak için farklı markalara ait cihazların birbiriyle haberleştirilmesi, dış dünyadan +güvenli erişim sağlayamama ve sistemi sürekli ayakta tutma gibi teknik problemleri beraberinde getirir. +Bu problemler çoğu zaman karmaşık konfigürasyonlar ve yüksek maliyetli donanımlar ile çözülür. +T3 Gemstone O1 projesi, Home Assistant entegrasyonu ile bu problemlerin kolay, maliyetsiz ve güvenli bir şekilde çözülmesini sağlar. + + +## 2. Home Assistant Kurulum + +Home Assistant, açık kaynak kodlu bir akıllı ev ve otomasyon platformudur. Sensör verilerini izleme, ışık, priz ve diğer cihazları kontrol etme, +otomatik senaryolar oluşturma ve mobil cihazlardan erişim gibi özellikleri tek bir sistemde sunar. + +Gemstone geliştirme kartına [terminal bağlantısı](/tr/quickstart/#2-gemstone’u-keşfet) yaptıktan sonra aşağıdaki +komut ile önceklikle Docker kurulumunu başlatınız. + +```bash +sudo curl -fsSL https://get.docker.com | sudo sh +``` + +Docker kurulumu tamamlandıktan sonra **Home Assistant'ı** kurabilirsiniz. + +```bash +sudo apt install t3-gem-homeassistant +``` + +Kurulum bittikten sonra Supervisor’ın tüm hizmetleri indirip ayağa kaldırması internet hızınıza bağlı olarak 5-10 dakika sürebilir. +Durumu aşağıdaki komutla takip edebilirsiniz: + +```bash +sudo docker logs -f hassio_supervisor +``` + +Ekranda `hassio_supervisor` ve `homeassistant` hizmetlerinin `Up` (Çalışıyor) durumunda olduğunu gördüğünüzde, tarayıcınızdan arayüze erişebilirsiniz: + +`http://gemstone.local:8123` veya `http://:8123` + +Ev dışından erişim sağlamak için kurulum rehberi bulunan [Tailscale](/tr/projects/cloud#3-dış-dünyadan-erişim) ağını kullanabilir, Tailscale IP adresiniz üzerinden (`http://:8123`) sisteminize güvenle bağlanabilirsiniz. + + +## 3. Home Assistant Arayüzüne Erişim ve İlk Kurulum + +Sistem hizmetleri aktif olduktan sonra tarayıcınız üzerinden `http://gemstone.local:8123` veya +`http://:8123` adresindeki arayüze ilk girişinizi yaptığınızda, +Home Assistant sizi bir kurulum sihirbazı ile karşılayacaktır. +Bu aşamada yönetici hesabınızı oluşturarak akıllı evinizin temel yapılandırmasını tamamlayabilirsiniz. +Aşağıdaki görselleri takip ederek arayüz kurulumunu kolayca bitirebilirsiniz: + + + Eğer arayüze bağlanırken bir hata alıyorsanız, adres çubuğundaki `https://` kısmını `http://` yaparak çözebilirsiniz. + + + + Hazırlanma Ekranı + + +Adrese girdiğinizde Home Assistantın hazırlanma ekranını görüyor olacaksınız. Ekran üzerinde tahmini süre bilgisi verilmektedir. + + + Hoş Geldiniz Ekranı + + +İlk defa kurulum yapıyorsanız **Akıllı Evimi Yarat** bölümünden kurulum yapabilirsiniz. +Daha öncesinde kurulum yaptıysanız ve yedekleriniz mevcutsa alt kısımda yer alan seçeneklerden ilerleyebilirsiniz. + + + Kullanıcı Oluşturma + + +Ad, kullanıcı adı ve parola bilgilerinizi girdikten sonra **Hesap Oluştur** butonuna tıklayarak hesabınızı oluşturabilirsiniz. + + + Ev Konumu + + +Cihazınınız bulunduğu lokasyonu yani **Ev Konumu**nu seçebilirsiniz. + + + Veri Paylaşımı + + +Home Assistant'ın verilerinizi kullanması için onay vermeniz gerekmektedir. Bu ayarları kapatarak devam edebilirsiniz. + + + Ana Ekran + + +Tebrikler! Kurulum adımlarını başarıyla tamamladınız ve artık Home Assistant'ın ana ekranındasınız. T3 Gemstone O1 üzerinden akıllı evinizin merkezini özgürce yapılandırmaya ve cihazlarınızı yönetmeye başlayabilirsiniz. + + +## 4. Deneyap Kart ile Sensör Entegrasyonu + +Bu bölümde, Deneyap Kart 1A V2 geliştirme kartına hareket sensörü bağlama ve bu sensörü Home Assistant platformuna entegre etme adımları ele alınacaktır. + +### 4.1 Home Assistant'a ESPHome'un Kurulması + + + Home Assistant Ana Ekran + + +Sol taraftaki menü açıldıktan sonra, Ayarlar seçeneğine tıklanır. + + + Home Assistant Ayarlar Bölümü + + +Açılan menüden Uygulamalar seçeneği seçilir. + + + Home Assistant Uygulamalar Bölümü + + +Sağ alt köşede bulunan "Uygulamayı Yükle" butonuna tıklanır. + + + Home Assistant Uygulama Mağazası + + +Açılan menüdeki arama alanına "esphome" yazılır. + + + Home Assistant Uygulama Mağazası Arama Sonucu + + +Arama sonuçlarında görüntülenen ESPHome seçeneğine tıklanır. + + + Adım f + + +Açılan menüde Kurulum seçeneğine tıklanır ve yüklemenin tamamlanması beklenir. + + + Adım g + + +Yükleme tamamlandıktan sonra görüntülenen menüde, "Show in sidebar" ve "Start on boot" seçeneklerinin +etkin olduğundan emin olunur ve ardından Başlat butonuna tıklanır. + + + Adım h + + +"Web Arayüzünü Aç" butonuna tıklanır. + + + Adım i + + +### 4.2 ESPHome'un Deneyap Kart için Konfigüre Edilmesi + +Açılan menüde "New Device" seçeneğine tıklanır. + + + Adım j + + +"Continue" butonuna tıklanarak işlem devam ettirilir. + + + Adım k + + +"New Device Setup" seçeneğine tıklanır. + + + Adım l + + +Bu adımda, karta bir **isim** konulması gerekmektedir. Ayrıca, **"Network Name"** ve **"Password"** alanlarına modeminizin **SSID** ve şifresi girilir. + + + Adım m + + +Bu adımda, "ESP32-S3" seçeneği seçilir. + + + Adım n + + +Bu aşamada, **"Skip"** seçeneğine tıklanır. Ardından, arka planda görüntülenen **Deneyap Kart** bölümünden **"Edit"** butonuna girilir. + + + Adım u + + +Bu adımda, karşınıza bir **YAML** dosyası gelir. + +* `esp32` altında yer alan **`board`** alanı, kullanılan Deneyap karta göre güncellenir. **Deneyap Kart 1A V2** için mevcut `board:` satırı silinir ve yerine **`deneyapkart1Av2`** yazılır. +* Ayrıca, **`framework`** alanı **`type: arduino`** olacak şekilde değiştirilir. + + + Adım v + + +```yaml +substitutions: + LED_PIN: GPIO48 # Kart üzerindeki RGB LED + BUTTON_PIN: GPIO0 # Boot Butonu + + # Pin Eşleştirmeleri + D0: GPIO1 + D1: GPIO2 + D4: GPIO42 + D8: GPIO38 + D9: GPIO48 + D12: GPIO10 + D13: GPIO3 + D14: GPIO8 + # I2C + SDA_PIN: GPIO47 + SCL_PIN: GPIO21 +``` +Ardından, bu bölümde yapılan **pin tanımlamaları** YAML dosyasının en alt kısmına kopyalanır. + + + Adım y + + +Bu örnekte bir hareket sensörü bağlanacağı için, aşağıdaki tanımlamalar yukarıdaki şekilde YAML dosyasının en altına yapıştırılır. + +```yaml +binary_sensor: + - platform: gpio + pin: + number: GPIO42 + mode: INPUT + inverted: false + name: "PIR Sensor" + device_class: motion + filters: + - delayed_on: 1s +``` + + + + Hareket sensörü **D4 pinine (GPIO42)** bağlanmıştır. Farklı bir pine bağladıysanız, **`number`** alanını ilgili pine göre güncellemeniz gerekir. + Gerekli pin atamaları için [Deneyap Kart Pin Rehberi](https://docs.deneyapkart.org/tr/Development_Boards) sayfasından bilgi alabilirsiniz. + + +Sağ üst köşede bulunan "Install" butonuna tıklanır. Bu adım ile yapılandırma tamamlanmış olur. + +### 4.3 ESPHome için Deneyap Kart'a Yazılım Yüklenmesi + + + Adım z + + +Öncelikle, **Deneyap Kart**, **T3 Gemstone O1** geliştirme kartınızın herhangi bir USB çıkışına bağlanır. +Açılan menüde çeşitli yükleme seçenekleri görüntülenir ancak ilk yükleme için **"Plug into the computer running ESPHome Device Builder"** seçeneğini seçmelisiniz. +Daha sonraki yüklemelerde kablosuz yükleme yapılabilir. + + + Adım a1 + + +**Port seçimi** bölümünde listelenen uygun seçenek seçilir. Eğer birden fazla port görünüyorsa, Deneyap Kart çıkarılıp yeniden takıldığında ve menü tekrar açıldığında görünmeyen port, doğru port olarak belirlenir. + + + Adım b1 + + +Yükleme işlemi başlatılır. İlk yükleme, biraz zaman alabileceği için sabırlı olunması önerilir. + + + Adım c1 + + +Yükleme tamamlandıktan sonra, ESPHome ana ekranına gidilir ve "Logs" bölümüne tıklanır. +Açılan menüde artık "Wirelessly" seçeneği kullanılabilir. +Loglar görüntülendiğinde, burada yer alan IP adresi kopyalanır. + + + Adım d1 + + +**Home Assistant** üzerinde, **Ayarlar > Cihazlar ve Hizmetler > Entegrasyon Ekle > ESPHome** bölümüne gidilir ve kopyalanan **IP adresi** yapıştırılır. +Ardından **"Atla"** ve **"Bitir"** seçeneklerine tıklanır. + + + Adım e1 + + +**ESPHome** altında yer alan **"1 cihaz"** seçeneğine tıklanır. + + + Adım f1 + + +Tebrikler! Bir hareket sensörü başarıyla **Home Assistant** platformuna entegre edilmiştir. Eklenen sensörün durumu, anlık olarak görüntülenebilir. + +## 5. Sıkça Sorulan Sorular + +**Kurulum sonrası "Unsupported System" uyarısı alıyorum, neden?** +> Home Assistant OS dışında bir işletim sistemi kullanıldığında veya sistemde manuel çalışan başka hizmetler (Nextcloud veya Tailscale gibi) olduğunda bu uyarı çıkabilir. Akıllı ev sisteminin kararlı çalışmasına engel bir durum değildir, sadece bilgilendirme amaçlıdır. + +**Eklenti (Add-on) mağazası ne zaman görünecek?** +> Kurulum tamamlandıktan hemen sonra arayüze girerseniz Eklentiler menüsü görünmeyebilir. Sistem arka planda gerekli yapılandırmaları bitirdiğinde (genellikle 5-10 dakika içinde) "Ayarlar -> Eklentiler" sekmesi otomatik olarak aktif olacaktır. diff --git a/tr/projects/hotspot.mdx b/tr/projects/hotspot.mdx new file mode 100644 index 0000000..964fe21 --- /dev/null +++ b/tr/projects/hotspot.mdx @@ -0,0 +1,68 @@ +--- +title: 'Wi-Fi Hotspot' +description: 'Gemstone kartınızı güvenli bir Wi-Fi erişim noktasından dönüştürme' +--- + +Eğer Gemstone kartınızı evinize internet sağlayan modeminize Ethernet kablosu ile bağladıysanız, kartınızın üzerindeki +Wi-Fi çipini kullanarak onu bir kablosuz erişim noktasına (Hotspot) dönüştürebilirsiniz. + +Bu sayede, evinizdeki cihazların hiçbir modem veya özel DNS ayarlarına dokunmadan doğrudan Gemstone donanımının yaydığı +kablosuz ağa (Wi-Fi) bağlanmasını sağlayabilir ve internet bağlantılarını Ethernet arayüzünden vererek otomatik olarak +AdGuard Home tabanlı güvenlik duvarı (Firewall) korumasından yararlandırabilirsiniz. + +## Wi-Fi Hotspot Oluşturma + +Cihaz terminalinden bir kablosuz ağ oluşturmak için: + +1. Kablosuz Ağ arayüzünüzün adını kontrol edin (Genellikle `wlan0`'dır). Öğrenmek için `ip a` veya `ifconfig` + komutunu kullanabilirsiniz. +2. Ağınızı oluşturmak için aşağıdaki komutu kendinize göre düzenleyerek çalıştırın: + +```bash +# Şifre (password) bölümünün en az 8 karakter olduğundan emin olun +sudo nmcli device wifi hotspot ifname wlan0 ssid "Gemstone_Guvenli_Ag" password "GucluSifrem123" +``` + +* `ssid`: Etraftaki cihazlarda görünecek ağ adınızı temsil eder. +* `password`: Ağınıza bağlanmak için gerekecek olan şifredir. + +Network Manager (`nmcli`) kullanılarak oluşturulan Hotspot bağlantıları varsayılan olarak cihazdaki interneti +(örneğin Ethernet'i) Wi-Fi üzerinden paylaşacak şekilde ayarlanır. + +## İnternet Paylaşımını (NAT) Aktifleştirme + +Cihazlar oluşturduğunuz ağa bağlanabildiği halde internete çıkış yapamıyorsa, Gemstone üzerindeki Ethernet (kablolu +internet) bağlantısını Wi-Fi ağına yönlendirmeniz (paylaştırmanız) gerekebilir. + +Hotspot bağlantınıza internet paylaştırma özelliğini atamak için aşağıdaki komutları kullanın. (Bağlantı adını +Hotspot'u oluştururken verdiğiniz `ssid` adı ile güncelleyin): + +```bash +# Bağlantının IPv4 modunu "shared" (paylaşımlı) olarak ayarlayın +sudo nmcli connection modify "Gemstone_Guvenli_Ag" ipv4.method shared + +# Değişikliklerin etkin olması için hotspot ağını yeniden başlatın +sudo nmcli connection up "Gemstone_Guvenli_Ag" +``` + +### Ek Adım: IP Yönlendirmesini (IP Forwarding) Etkinleştirmek + +Nadir durumlarda Linux çekirdeği (Kernel) seviyesinde IP yönlendirme kapalı olabilir. İnternet halen dağıtılamıyorsa +IP yönlendirmeyi aktif hale getirin: + +1. Geçici olarak aktifleştirmek için: + + ```bash + sudo sysctl -w net.ipv4.ip_forward=1 + ``` + +2. Bu ayarı kalıcı hale getirmek için `/etc/sysctl.conf` dosyasını yetkili olarak bir metin editörüyle (ör. `nano`) + açın, içerisinde bulunan `#net.ipv4.ip_forward=1` satırının başındaki `#` işaretini silin ve dosyayı kaydedin. + Değişikliklerin onaylanması için şu komutu çalıştırın: + + ```bash + sudo sysctl -p + ``` + +Kurulumdan sonra telefonunuzdan veya bilgisayarınızdan ağa bağlandığınızda trafiğiniz doğrudan Gemstone üzerinden geçecek, +reklamlar engellenecek ve internetiniz Ethernet hattından kesintisiz olarak sağlanacaktır. diff --git a/tr/projects/nuttx.mdx b/tr/projects/nuttx.mdx index 6c05195..3ac9fa1 100644 --- a/tr/projects/nuttx.mdx +++ b/tr/projects/nuttx.mdx @@ -123,6 +123,11 @@ tamamen ilk haline döndürür, bu durumda konfigürasyon işlemini tekrar yapma NuttX işletim sistemi R5F çekirdeklerinde çalışırken A53 çekirdeklerinde de Linux işletim sistemi çalışmaktadır. Linux işletim sisteminde ve U-Boot'ta yer alan `remoteproc` mekanizması ile R5F çekirdeklerine kod yüklenebilmektedir. + + U-Boot'ta `remoteproc` mekanizması ile kullanabilmek için [2.8. Derlenmiş projenin U-Boot aşamasında çalıştırılması](/tr/boards/o1/peripherals/mcu#2-8-derlenmiş-projenin-u-boot-aşamasında-çalıştırılması) + bölümünü inceleyebilirsiniz. + + Remoteproc ile çekirdeklere yüklenecek program dosyaları `/lib/firmware` dizini altına önceden tanımlı isimlerde kopyalanmalıdır. Sistem başlangıcında, remoteproc mekanizması programları ilgili çekirdeklere otomatik olarak yükleyecektir. NuttX'i remoteproc ile çalıştırmak için aşağıdaki adımları takip edin. diff --git a/tr/projects/vtol.mdx b/tr/projects/vtol.mdx index eae7e96..cd1ebea 100644 --- a/tr/projects/vtol.mdx +++ b/tr/projects/vtol.mdx @@ -3,8 +3,13 @@ title: 'VTOL' description: 'Gemstone Dikey İniş Kalkışlı İHA' --- -Yapım aşamasında.. + +Tasarımı ücretsiz ve telifsiz olan, 3 boyutlu yazıcı ile üretilebilecek, Gemstone O1 geliştirme kartının uçuş +kontrolcüsü olarak kullanılabileceğini gösteren projedir. Çalışmalar tamamlandığında duyuru yapılacaktır. + T3 Gemstone VTOL + +Yapım aşamasında.. diff --git a/tr/quickstart.mdx b/tr/quickstart.mdx index d6f1e09..c4c9dab 100644 --- a/tr/quickstart.mdx +++ b/tr/quickstart.mdx @@ -109,7 +109,7 @@ indirerek inceleyebilirsiniz. Gemstone üzerinde İşletim Sistemi, [Bootloader](https://kureansiklopedi.com/tr/detay/bootloader-13b85), [Firmware](https://kureansiklopedi.com/tr/detay/aygit-yazilimi-95889) vb. bütün çekirdek yazılımlar Gemstone Image Writer (GemImager veya Gemstone Imager) uygulaması ile yüklenmektedir. -http://www.t3gemstone.org/software adresinden bilgisayarınıza uygun (Linux, Windows veya macOS) olan +https://www.t3gemstone.org/software adresinden bilgisayarınıza uygun (Linux, Windows veya macOS) olan uygulamayı indiriniz. ![Browser](/images/browser.png) @@ -119,8 +119,19 @@ Doküman boyunca imaj/işletim sistemi yazma uygulaması için Gemstone Imager v ifadeleri kullanılacaktır. + +Yukarıdaki web sitesine ulaşılamayan durumlarda Gemstone Imager uygulamasını indirmek için +https://packages.t3gemstone.org/imager/ adresini kullanabilirsiniz. + + ### 1.2. İmaj yazma işlemi + +Sdcard kullanmak istemiyorsanız ve kartın üzerinde bulunan eMMC'ye USB ile imaj yazmak istiyorsanız +temel bilgi edinmiş olmak için bu bölümü okuyup daha sonra [eMMC'ye yazma bölümüne](/tr/imager/emmc) +geçebilirsiniz. + + #### 1.2.1. Sdcard ve okuyucuyu bilgisayara bağla Kutu içerisinden sdcard çıkmamaktadır. En az 32 GB kapasiteli herhangi bir marka ve model sdcard'ı uygun bir kart @@ -133,15 +144,33 @@ okuyucu aracılığıyla bilgisayarınıza bağladıktan sonra Gemstone Imager u #### 1.2.2. Gemstone Imager uygulamasını başlat + + + Linux işletim sistemi için **.AppImage** uzantılı dosyayı indirdikten sonra, uygulamanın çalıştırılabilir + hale getirilmesi için sağ tıklayarak Properties/Özellikler ekranını açarak "Permissions" kısmından + "Allow executing file as program" seçeneğini işaretleyiniz. + + + + + + Veya dosyayı indirdiğiniz yerde terminal açarak `chmod +x GemImager-1.1.1.AppImage` komutunu + da kullanabilirsiniz. + + + + + + + Windows işletim sistemi kullanıyorsanız indirdiğiniz **.exe** uzantılı dosyaya çift tıklayarak kurulum yaparak Masaüstünden uygulamayı başlatınız. - - Linux işletim sistemi için **.AppImage** uzantılı dosyayı indirdikten sonra sağ tıklayarak Properties/Özellikler ekranını açarak "Permissions" kısmından "Allow executing file as program" seçeneğini işaretleyiniz. - + macOS işletim sistemi için **.dmg** uzantılı dosyayı indirdikten sonra çift tıklayarak kurulum yapınız. + Uygulamayı indirdiğiniz dosya yolundan başlattığınızda aşağıdaki ekranı göreceksiniz. @@ -190,10 +219,10 @@ Ortamı (Vscode), Video Oynatıcı (VLC) gibi yazılımları barındıran, bilgi Aşağıdaki iki imaj türüne göre daha yüksek boyutludur. Çoğunlukla prototip, test vb. geliştirme faaliyetlerinde kullanılmaktadır. (Robotik çalışmalar için Minimal isimli imaj daha uygundur.) -* **Kiosk:** İçerisinde Metin Editörü veya Desktop imajında bulunan uygulamaların, masaüstü ortamının **olmadığı** -çoğunlukla dokunmatik panel gibi amaçlarla kullanılan grafik arayüzünü destekleyen imajdır. (Örneğin Tesla -otomobillerinde Medya kontrolü için kullanılan dokunmatik panel veya Teknofest yarışmalarında binek araçların -içerisinde bulunan kontrol ekranı gibi.) +* **Kiosk:** İçerisinde Desktop imajında bulunan uygulamaların (Örneğin Metin Editörü, Dosya Gezgini), +masaüstü ortamının **olmadığı** çoğunlukla dokunmatik panel gibi amaçlarla kullanılan grafik arayüzünü destekleyen +imajdır. (Örnek: Tesla otomobillerinde kullanılan dokunmatik panel veya Teknofest +yarışmalarında binek araçların içerisinde bulunan kontrol ekranı gibi.) * **Minimal:** Bu imaj ise gerçek zamanlı linux çekirdeği barındıran ve IoT, Robotik, Otopilot uygulamaları için özelleştirilmiş çok düşük boyutlu optimize edilmiş imajdır. Gömülü Yazılım Sistem geliştirme projelerinde tercih diff --git a/tr/roadmap.mdx b/tr/roadmap.mdx index 7958c35..ac8b54a 100644 --- a/tr/roadmap.mdx +++ b/tr/roadmap.mdx @@ -11,16 +11,31 @@ ziyaret edininiz. -`Devam Ediyor` `%40` + `Devam Ediyor` `%45` - -`Henüz Başlamadı` `0%` + + + `Devam Ediyor` `30%` + + + + `Devam Ediyor` `10%` - -`Henüz Başlamadı` `0%` + + + `Henüz Başlamadı` `0%` + + + `Henüz Başlamadı` `0%` + + -`Henüz Başlamadı` `0%` + `Henüz Başlamadı` `0%` + + + + `Henüz Başlamadı` `0%` ## Apache Nuttx @@ -63,6 +78,48 @@ hedeflenmektedir. Aşağıdaki tabloda güncel durum ve yapılacaklar bulunmakta | USB sürücü desteği | Gönüllü Geliştirici Bekleniyor | | SD kart ve eMMC sürücü desteği | Gönüllü Geliştirici Bekleniyor | +## ChibiOS + Ardupilot + +Ardupilot otopilotu, T3 Gemstone O1 geliştirme kartında halihazırda Linux üzerinde, yani Cortex-A53 +çekirdeklerde çalışmaktadır. Ancak gerçek zamanlı (real-time) ve düşük gecikmeli (low-latency) bir uçuş +kontrolü için otopilotun, işletim sistemi yükü olmadan ayrılmış çekirdeklerde çalışması tercih edilir. +Ardupilot'un birincil olarak desteklediği gerçek zamanlı işletim sistemi olan +[ChibiOS](https://www.chibios.org/), uçuş kontrolcü kartlarında yaygın olarak kullanılmaktadır. + +Bu projede; ChibiOS işletim sisteminin AM67a SoC üzerindeki Cortex-R5 çekirdeklerine taşınması (port +edilmesi) ve Ardupilot'un bu çekirdeklerde, ChibiOS üzerinde otopilot olarak çalıştırılması hedeflenmektedir. +Böylece Cortex-A53 çekirdeklerde çalışan Linux genel amaçlı işlerle ilgilenirken, gerçek zamanlı uçuş kontrol +döngüsü Cortex-R5 çekirdeklerinde kesintisiz olarak yürütülebilecektir. + + + +
+ + + + + + + + + + +Aşağıdaki tabloda yapılması planlanan çalışmalar bulunmaktadır. + +| | | +|:------------------------------------------------------------------------------------------------------------|-------------------------------:| +| ChibiOS HAL'ının AM67a Cortex-R5 çekirdekleri için port edilmesi | Gönüllü Geliştirici Bekleniyor | +| ChibiOS'un remoteproc mekanizması ile U-Boot ya da Linux tarafından R5 çekirdeğine yüklenmesi | Gönüllü Geliştirici Bekleniyor | +| Seri port (UART) sürücü desteği ve konsol erişimi | Gönüllü Geliştirici Bekleniyor | +| GPIO sürücü desteği | Gönüllü Geliştirici Bekleniyor | +| Ardupilot'un AP_HAL_ChibiOS katmanı kullanılarak R5 çekirdekleri için derlenmesi | Gönüllü Geliştirici Bekleniyor | +| Ardupilot'un ChibiOS üzerinde otopilot olarak çalıştırılması | Gönüllü Geliştirici Bekleniyor | +| SPI ve I2C sürücü desteği (IMU, barometre vb. sensörler için) | Gönüllü Geliştirici Bekleniyor | +| PWM sürücü desteği (motor ve servo çıkışları için) | Gönüllü Geliştirici Bekleniyor | +| CAN Bus (DroneCAN) sürücü desteği | Gönüllü Geliştirici Bekleniyor | +| R5 çekirdeğinde çalışan ChibiOS ile A53 çekirdeğinde çalışan Linux arası Texas IPC ile haberleşme | Gönüllü Geliştirici Bekleniyor | +| MAVLink telemetri ve yer kontrol istasyonu (GCS) bağlantısının sağlanması | Gönüllü Geliştirici Bekleniyor | + ## PX4 Autopilot PX4 otopilotunun Gemstone Linux üzerinde (NuttX olmadan) çalıştırılması hedeflenmektedir. @@ -92,7 +149,7 @@ yükleyebilmesidir. | | | |:------------------------------------------------------------------------------------------------------------|-------------------------------:| -| Buildroot içerisinde T3-GEM-O1 konfigürasyonu eklenerek [adresine](https://github.com/buildroot/buildroot) pull request oluşturulması | Gönüllü Geliştirici Bekleniyor | +| Buildroot içerisinde T3-GEM-O1 konfigürasyonu eklenerek [adresine](https://github.com/t3gemstone/buildroot) pull request oluşturulması | Gönüllü Geliştirici Bekleniyor | | Minimal ve Kiosk isminde iki imaj türü oluşturularak aynı şekilde merge request oluşturulması | Gönüllü Geliştirici Bekleniyor | ## Phoenix RTOS @@ -105,3 +162,37 @@ Mikrokernel mimari açık kaynak kodlu Phoenix isimli gerçek zamanlı işletim + +## Wayland Geçişi + +AM67A SoC ile gelen GPU'nun (IMG BXS4-64) TI tarafından verilen sürücüsü, X11 masaüstü ortamlarını hızlandıramamaktadır. +Halihazırda pencereler donanım hızlandırması olmaksızın CPU (llvmpipe) ile render edilmektedir. Bu durum masaüstü ortamının donarak +çalışmasına sebep olmaktadır. Aynı sürücüde Wayland için hızlandırma desteği bulunmaktadır. Stabil, +kaynak kullanımı düşük, özellik bakımından zengin ve kullanıcıların çoğunluğuna hitap eden Wayland +destekli bir masaüstü ortamına geçilmesi hedeflenmektedir. + + + + + + + +| | | +|:------------------------------------------------------------------------------------------------------------|-------------------------------:| +| [Mesa kütüphanesinin](https://gitlab.freedesktop.org/StaticRocket/mesa) Ubuntu 22.04 derleyici araçlarıyla derlenip DEB paketi haline getirilmesi | `Tamamlandı` | +| Uygun bir Wayland masaüstü ortamı ya da pencere yöneticisi seçilmesi | Gönüllü Geliştirici Bekleniyor | +| Ayarlar, dosya yöneticisi, ağ yöneticisi gibi programların bulunması (seçilen ortam ile birlikte gelmiyorsa) | Gönüllü Geliştirici Bekleniyor | +| Arayüz bütünlüğü için pencere kenarları, durum çubuğu gibi kısımlar için ortak bir tema oluşturulması | Gönüllü Geliştirici Bekleniyor | + +## Linux Kernel Versiyon 7 + +Kullanılmakta olan 6.12 sürümü yerine, Linux kernel 7'nin T3-GEM-O1 geliştirme kartında çalıştırılması hedeflenmektedir. +Bu sayede yeni donanım sürücülerinden, geliştirmelerden ve hata düzeltmelerinden faydalanılması mümkün olacaktır. + + + + + + + + diff --git a/tr/sdk/components.mdx b/tr/sdk/components.mdx index 537cc86..6cf7327 100644 --- a/tr/sdk/components.mdx +++ b/tr/sdk/components.mdx @@ -159,10 +159,10 @@ Aşağıdaki şemalarda SDK'nın kullandığı bütün Task fonksiyonlarının flowchart n1["/Taskfile.yml"] style n1 fill:#D2F5DF - n1 --- n5["**[task fetch]**

SDK'nın kullandığı yocto çalışmaları, Texas Instruments Firmware kaynak kodlarını vcstool aracılığıyla indirir."] - n1 --- n6["**[task box]**

Yocto ve Debosun kullanıldığı Ubuntu 22.04 Docker imajından distrobox görüntüsü oluşturarak içerisine girer."] - n1 --- n7["**[task permissions]**

Yocto kullanabilmek için gerekli yetkileri ayarlar."] - n1 --- n11["**[task destroy]**

Derlenen bütün çıktıları ve docker imajlarını temizler."] + n1 --- n5@{ label: "**[task fetch]**

SDK'nın kullandığı yocto çalışmaları, Texas Instruments Firmware kaynak kodlarını vcstool aracılığıyla indirir." } + n1 --- n6@{ label: "**[task box]**

Yocto ve Debosun kullanıldığı Ubuntu 22.04 Docker imajından distrobox görüntüsü oluşturarak içerisine girer." } + n1 --- n7@{ label: "**[task permissions]**

Yocto kullanabilmek için gerekli yetkileri ayarlar." } + n1 --- n11@{ label: "**[task destroy]**

Derlenen bütün çıktıları ve docker imajlarını temizler." } n1@{ shape: "rounded", label: "/Taskfile.yml" } ``` @@ -174,9 +174,9 @@ flowchart flowchart n1["/yocto/Taskfile.yml"] style n1 fill:#D2F5DF - n1 --- n5["**[task yocto:build]**

Tanımlı olan makine türüne göre bütün Yocto derleme işlemlerini yaparak kernel, bootloader, firmware oluşturur."] - n1 --- n6["**[task yocto:local-apt-server]**

Yocto derlemeleri bittikten sonra task distro:build komutu çalıştırıldığında oluşacak imaja kurulması gereken yocto paketlerini kullanabilmek için lokal-apt sunucusunu çalıştırır."] - n1 --- n7["**[task yocto:runqemu]**

Yocto ve Debos işlemleri tamamlandıktan sonra oluşan işletim sistemini QEMU ile çalıştırır."] + n1 --- n5@{ label: "**[task yocto:build]**

Tanımlı olan makine türüne göre bütün Yocto derleme işlemlerini yaparak kernel, bootloader, firmware oluşturur." } + n1 --- n6@{ label: "**[task yocto:local-apt-server]**

Yocto derlemeleri bittikten sonra task distro:build komutu çalıştırıldığında oluşacak imaja kurulması gereken yocto paketlerini kullanabilmek için lokal-apt sunucusunu çalıştırır." } + n1 --- n7@{ label: "**[task yocto:runqemu]**

Yocto ve Debos işlemleri tamamlandıktan sonra oluşan işletim sistemini QEMU ile çalıştırır." } n1@{ shape: "rounded", label: "/yocto/Taskfile.yml" } ``` @@ -188,8 +188,8 @@ flowchart flowchart n1["/distro/Taskfile.yml"] style n1 fill:#D2F5DF - n1 --- n5["**[task distro:build]**

Debos isimli proje aracılığıyla **distro.yaml** dosyasında tanımlı olan makine ve dağıtım şemasına göre .img uzantılı imaj derleme oluşturma işlemlerini yapar."] - n1 --- n6["**[task distro:build:all]**

task distro:build komutu yalnızca kendisine parametre olarak verilen makine ve imaj tipine göre tek bir imaj oluştururken, **build:all** komutu bütün makine ve distro tiplerine göre derleme yapar."] + n1 --- n5@{ label: "**[task distro:build]**

Debos isimli proje aracılığıyla **distro.yaml** dosyasında tanımlı olan makine ve dağıtım şemasına göre .img uzantılı imaj derleme oluşturma işlemlerini yapar." } + n1 --- n6@{ label: "**[task distro:build:all]**

task distro:build komutu yalnızca kendisine parametre olarak verilen makine ve imaj tipine göre tek bir imaj oluştururken, **build:all** komutu bütün makine ve distro tiplerine göre derleme yapar." } n1 n1@{ shape: "rounded", label: "/distro/Taskfile.yml" } ``` diff --git a/tr/sdk/debos.mdx b/tr/sdk/debos.mdx index 4baf1e7..512c053 100644 --- a/tr/sdk/debos.mdx +++ b/tr/sdk/debos.mdx @@ -51,7 +51,7 @@ task distro:build MACHINE=intel-corei7-64 DISTRO_TYPE=desktop DISTRO_BASE=ubuntu
-`jammy` `noble` `bullseye` `bookworm` `yirmiuc-deb` +`jammy` `noble` `bullseye` `bookworm` `yirmiuc` `yirmibes` @@ -92,7 +92,11 @@ Mevcut kodları Debian 11 için stabil olan projelerde tercih edilmektedir. Debian'ın en güncel sürümüdür. - + +Pardus 23 Sürümü + + + Pardus'un en güncel sürümüdür. diff --git a/tr/sdk/introduction.mdx b/tr/sdk/introduction.mdx index 26b568f..be05e80 100644 --- a/tr/sdk/introduction.mdx +++ b/tr/sdk/introduction.mdx @@ -73,11 +73,11 @@ flowchart n3 --- n4["**2.2.** Harici Kodları İndir"] n3 --- n5@{ label: "**2.3.** Yetkilendirme Yap" } n3@{ shape: "hex", label: "**2.1. Devbox Shell Aktifleştir**" } --- n6@{ shape: "hex", label: "**2.4.** Distrobox ile Yocto&Debos Ortamını Hazırla" } - n6@{ shape: "hex", label: "**2.4. Distrobox ile Yocto&Debos Ortamını Hazırla**" } --- n7["**2.5.** Yocto ile Çekirdek (Linux Kernel, U-Boot, Firmware, Driver) Derle"] + n6@{ shape: "hex", label: "**2.4. Distrobox ile Yocto&Debos Ortamını Hazırla**" } --- n7@{ label: "**2.5.** Yocto ile Çekirdek (Linux Kernel, U-Boot, Firmware, Driver) Derle" } n1@{ shape: "rounded", label: "**1.2. SDK'yı indir**" } - n7["**2.5.** Yocto ile Kernel, U-Boot, Firmware, Drive Derle"] - n7 --- n10["**2.6.** Debos ile İmaj Oluştur"] - n10 --- n11["**2.7.** Qemu ile İşletim Sistemini Aç"] + n7@{ label: "**2.5.** Yocto ile Kernel, U-Boot, Firmware, Driver Derle" } + n7 --- n10@{ label: "**2.6.** Debos ile İmaj Oluştur" } + n10 --- n11@{ label: "**2.7.** Qemu ile İşletim Sistemini Aç" } style n1 fill:#FFDE59 style n3 stroke-width:0.5px,stroke:#000000 style n6 fill:#FFDE59 diff --git a/tr/troubleshoting.mdx b/tr/troubleshoting.mdx index b4a4313..011bc95 100644 --- a/tr/troubleshoting.mdx +++ b/tr/troubleshoting.mdx @@ -9,7 +9,7 @@ Bu bölümde en sık karşılaşılan donanım ve yazılım sorunlarına dair ç ## GemImager başlatılamıyor Uygulama başlatılırken `Kod yürütülmesi devam edemiyor çünkü Qt6SerialPort.dll bulunamadı. Programı yeniden yüklemek bu sorunu çözebilir.` -`.dll bulunamadı` vb. hatalar alınıyorsa http://www.t3gemstone.org/software adresinden yeni sürümü indiriniz. Henüz +`.dll bulunamadı` vb. hatalar alınıyorsa https://www.t3gemstone.org/software adresinden yeni sürümü indiriniz. Henüz çözülmemiş bir problem varsa ve yeni versiyon ile de sorun düzelmezse geçici olarak [Balena Etcher](https://www.balena.io/) kullanarak yazma işlemi yapınız. Katkıda bulunmak için https://github.com/t3gemstone/gem-imager/issues adresinden sorun bildiriminde bulunabilirsiniz. diff --git a/videos/vscode-remote-ssh-ext.mp4 b/videos/vscode-remote-ssh-ext.mp4 new file mode 100644 index 0000000..0dd529b Binary files /dev/null and b/videos/vscode-remote-ssh-ext.mp4 differ