diff --git a/.vscode/settings.json b/.vscode/settings.json
index f3cab91..6bc0ece 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -40,5 +40,8 @@
],
"yaml.schemas": {
"https://json.schemastore.org/github-workflow.json": ".github/workflows/deploy.yml"
- }
+ },
+ "cSpell.enableFiletypes": [
+ "mdx"
+ ]
}
diff --git a/docs/tango/commands/framebuffer.mdx b/docs/api/framebuffer.mdx
similarity index 100%
rename from docs/tango/commands/framebuffer.mdx
rename to docs/api/framebuffer.mdx
diff --git a/docs/tango/commands/get-prop.md b/docs/api/get-prop.md
similarity index 100%
rename from docs/tango/commands/get-prop.md
rename to docs/api/get-prop.md
diff --git a/docs/tango/commands/index.mdx b/docs/api/index.mdx
similarity index 100%
rename from docs/tango/commands/index.mdx
rename to docs/api/index.mdx
diff --git a/docs/tango/commands/power.md b/docs/api/power.md
similarity index 100%
rename from docs/tango/commands/power.md
rename to docs/api/power.md
diff --git a/docs/tango/commands/reverse.mdx b/docs/api/reverse.mdx
similarity index 100%
rename from docs/tango/commands/reverse.mdx
rename to docs/api/reverse.mdx
diff --git a/docs/tango/commands/rm.md b/docs/api/rm.md
similarity index 100%
rename from docs/tango/commands/rm.md
rename to docs/api/rm.md
diff --git a/docs/tango/commands/subprocess.mdx b/docs/api/subprocess.mdx
similarity index 100%
rename from docs/tango/commands/subprocess.mdx
rename to docs/api/subprocess.mdx
diff --git a/docs/tango/commands/sync/_category_.yml b/docs/api/sync/_category_.yml
similarity index 100%
rename from docs/tango/commands/sync/_category_.yml
rename to docs/api/sync/_category_.yml
diff --git a/docs/tango/commands/sync/index.mdx b/docs/api/sync/index.mdx
similarity index 100%
rename from docs/tango/commands/sync/index.mdx
rename to docs/api/sync/index.mdx
diff --git a/docs/tango/commands/sync/isDirectory.md b/docs/api/sync/isDirectory.md
similarity index 100%
rename from docs/tango/commands/sync/isDirectory.md
rename to docs/api/sync/isDirectory.md
diff --git a/docs/tango/commands/sync/opendir.mdx b/docs/api/sync/opendir.mdx
similarity index 100%
rename from docs/tango/commands/sync/opendir.mdx
rename to docs/api/sync/opendir.mdx
diff --git a/docs/tango/commands/sync/read.mdx b/docs/api/sync/read.mdx
similarity index 100%
rename from docs/tango/commands/sync/read.mdx
rename to docs/api/sync/read.mdx
diff --git a/docs/tango/commands/sync/stat.md b/docs/api/sync/stat.md
similarity index 100%
rename from docs/tango/commands/sync/stat.md
rename to docs/api/sync/stat.md
diff --git a/docs/tango/commands/sync/write.md b/docs/api/sync/write.md
similarity index 100%
rename from docs/tango/commands/sync/write.md
rename to docs/api/sync/write.md
diff --git a/docs/tango/commands/tcpip.md b/docs/api/tcpip.md
similarity index 100%
rename from docs/tango/commands/tcpip.md
rename to docs/api/tcpip.md
diff --git a/docs/internal/index.md b/docs/internal/index.md
index 63f2365..f26952f 100644
--- a/docs/internal/index.md
+++ b/docs/internal/index.md
@@ -7,7 +7,7 @@ sidebar_position: 0
[ADB (Android Debugging Bridge)](https://developer.android.com/studio/command-line/adb) is the protocol for communicating with Android devices.
-This is an unofficial book about it.
+This section documents some internal mechanics in Google ADB.
## Links
diff --git a/docs/scrcpy/prepare-server.mdx b/docs/scrcpy/prepare-server.mdx
index d0a53b4..038ebe1 100644
--- a/docs/scrcpy/prepare-server.mdx
+++ b/docs/scrcpy/prepare-server.mdx
@@ -2,6 +2,9 @@
sidebar_position: 2
---
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+
# Prepare the server binary
Scrcpy server is a Java application that runs on Android devices. Tango uses the unmodified, official Scrcpy server binary, so you don't need to build it yourself.
@@ -26,8 +29,7 @@ Assume you have downloaded the server binary to `src/server.bin`, and you want t
```ts transpile
const url = new URL("./server.bin", import.meta.url);
-const server: ArrayBuffer = await fetch(url)
- .then((res) => res.arrayBuffer())
+const server: ArrayBuffer = await fetch(url).then((res) => res.arrayBuffer());
```
@@ -35,8 +37,7 @@ const server: ArrayBuffer = await fetch(url)
```ts transpile
const url = new URL("./server.bin", import.meta.url);
-const server: ArrayBuffer = await fetch(url)
- .then((res) => res.arrayBuffer())
+const server: ArrayBuffer = await fetch(url).then((res) => res.arrayBuffer());
```
@@ -46,10 +47,11 @@ const server: ArrayBuffer = await fetch(url)
import fs from "fs/promises";
const url = new URL("./server.bin", import.meta.url);
-const server: Buffer = fs.readFile(url)
+const server: Buffer = fs.readFile(url);
```
+
## Use `@yume-chan/fetch-scrcpy-server`
@@ -74,8 +76,8 @@ The server binary is written to `server.bin` and the version is written to `vers
Importing this package will give you two variables:
-* `BIN`: A URL to the server binary. It can be used in `fetch` or `fs.readFile` similar to the manual approach.
-* `VERSION`: A string containing the downloaded server version. It's required when starting the server.
+- `BIN`: A URL to the server binary. It can be used in `fetch` or `fs.readFile` similar to the manual approach.
+- `VERSION`: A string containing the downloaded server version. It's required when starting the server.
@@ -84,8 +86,7 @@ Importing this package will give you two variables:
import { BIN, VERSION } from "@yume-chan/fetch-scrcpy-server";
console.log(VERSION); // 2.1
-const server: ArrayBuffer = await fetch(BIN)
- .then((res) => res.arrayBuffer())
+const server: ArrayBuffer = await fetch(BIN).then((res) => res.arrayBuffer());
```
@@ -95,8 +96,7 @@ const server: ArrayBuffer = await fetch(BIN)
import { BIN, VERSION } from "@yume-chan/fetch-scrcpy-server";
console.log(VERSION); // 2.1
-const server: ArrayBuffer = await fetch(BIN)
- .then((res) => res.arrayBuffer())
+const server: ArrayBuffer = await fetch(BIN).then((res) => res.arrayBuffer());
```
@@ -106,10 +106,11 @@ const server: ArrayBuffer = await fetch(BIN)
import { BIN, VERSION } from "@yume-chan/fetch-scrcpy-server";
console.log(VERSION); // 2.1
-const server: Buffer = fs.readFile(BIN)
+const server: Buffer = fs.readFile(BIN);
```
+
### Run the script automatically
@@ -118,9 +119,9 @@ After installing the package, you can add it to your NPM scripts, so every time
```json
{
- "scripts": {
- "postinstall": "fetch-scrcpy-server 2.1"
- }
+ "scripts": {
+ "postinstall": "fetch-scrcpy-server 2.1"
+ }
}
```
@@ -129,9 +130,10 @@ After installing the package, you can add it to your NPM scripts, so every time
The easiest way to modify and build the server is to use [Android Studio](https://developer.android.com/studio).
1. Clone Scrcpy
- ```sh
- git clone https://github.com/Genymobile/scrcpy.git
- ```
+
+ ```sh
+ git clone https://github.com/Genymobile/scrcpy.git
+ ```
2. Open the root folder in Android Studio
3. (Optional) Change `Build Variant` to `release` from `Build` -> `Select Build Variant` menu item
diff --git a/docs/scrcpy/push-server.mdx b/docs/scrcpy/push-server.mdx
index 99d4b8c..28564b0 100644
--- a/docs/scrcpy/push-server.mdx
+++ b/docs/scrcpy/push-server.mdx
@@ -18,7 +18,7 @@ adb push scrcpy-server.jar /data/local/tmp/scrcpy-server.jar
## Using `pushServer`
-`@yume-chan/adb-scrcpy` package provides a `pushServer` function as a shortcut for the Tango [`AdbSync#write`](../tango/commands/sync/write.md) call.
+`@yume-chan/adb-scrcpy` package provides a `pushServer` function as a shortcut for the Tango [`AdbSync#write`](../api/sync/write.md) call.
```ts transpile
import type { Adb } from "@yume-chan/adb";
diff --git a/docs/tango/commands/_category_.yml b/docs/tango/commands/_category_.yml
deleted file mode 100644
index 07bfbc2..0000000
--- a/docs/tango/commands/_category_.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-position: 7
-label: 'Commands'
-collapsed: false
diff --git a/docs/tango/custom-transport.mdx b/docs/tango/custom-transport.mdx
index 3388a72..e53d5e1 100644
--- a/docs/tango/custom-transport.mdx
+++ b/docs/tango/custom-transport.mdx
@@ -82,7 +82,7 @@ Other fields:
- `maxPayloadSize`: The maximum payload size of the device. `AdbSync#write` will split data into multiple packets if it's larger than this value. If you don't know this value, use 4KB.
- `banner`: ADB banner returned from the device. It contains the list of ADB features the device supports, which is important for many command to choose the correct behavior.
- `disconnected`: A promise that resolves when the transport is disconnected.
-- `addReverseTunnel`, `removeReverseTunnel`, `clearReverseTunnels`: These methods are used to manage reverse tunnels. When a reverse tunnel is created, Tango sends the correct command to ADB daemon via `connect` method, but also calls `addReverseTunnel` method. The transport should register the reverse tunnel, so when ADB daemon creates a socket to the tunnel address, the `handler` method will be invoked. If the transport doesn't support reverse tunnel, it should throw an error from `addReverseTunnel` method. See [Reverse Tunnel](./commands/reverse.mdx) for more details.
+- `addReverseTunnel`, `removeReverseTunnel`, `clearReverseTunnels`: These methods are used to manage reverse tunnels. When a reverse tunnel is created, Tango sends the correct command to ADB daemon via `connect` method, but also calls `addReverseTunnel` method. The transport should register the reverse tunnel, so when ADB daemon creates a socket to the tunnel address, the `handler` method will be invoked. If the transport doesn't support reverse tunnel, it should throw an error from `addReverseTunnel` method. See [Reverse Tunnel](../api/reverse.mdx) for more details.
- `close`: Close the transport. It should close all sockets created by `connect` method, and resolve `disconnected` promise.
## Example
diff --git a/docs/tango/daemon/connect-device.mdx b/docs/tango/daemon/connect-device.mdx
index 3ffd426..9176ca3 100644
--- a/docs/tango/daemon/connect-device.mdx
+++ b/docs/tango/daemon/connect-device.mdx
@@ -40,6 +40,6 @@ const adb: Adb = new Adb(transport);
:::note[Next Step]
-See [commands](../commands/index.mdx) for how to use the `Adb` instance.
+See [commands](../../api/index.mdx) for how to use the `Adb` instance.
:::
diff --git a/docs/tango/daemon/custom-connection.mdx b/docs/tango/daemon/custom-connection.mdx
index a1d8fb0..ddc9e05 100644
--- a/docs/tango/daemon/custom-connection.mdx
+++ b/docs/tango/daemon/custom-connection.mdx
@@ -12,7 +12,7 @@ You may also interested in [custom transports](../custom-transport.mdx), which w
:::
-We have seen [`AdbDaemonWebUsbDevice`](./usb/get-devices.md) class in USB connection and [`AdbDaemonDirectSocketsDevice`](./tcp/create-connection.mdx#adbdaemondirectsocketsdevice) class in TCP connection, but they are high-level abstractions for managing devices. In fact, `AdbDaemonTransport` only needs a pair of [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream) and [`WriteableStream>`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream) to work, that's what the `connect` method in those `Device` classes returns.
+We have seen [`AdbDaemonWebUsbDevice`](./usb/get-devices.mdx) class in USB connection and [`AdbDaemonDirectSocketsDevice`](./tcp/create-connection.mdx#adbdaemondirectsocketsdevice) class in TCP connection, but they are high-level abstractions for managing devices. In fact, `AdbDaemonTransport` only needs a pair of [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream) and [`WriteableStream>`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream) to work, that's what the `connect` method in those `Device` classes returns.
:::note
diff --git a/docs/tango/daemon/tcp/enable.md b/docs/tango/daemon/tcp/enable.md
index d2ea410..36e1377 100644
--- a/docs/tango/daemon/tcp/enable.md
+++ b/docs/tango/daemon/tcp/enable.md
@@ -40,6 +40,6 @@ On non-rooted devices with Android 10 and below, enabling ADB over WiFi requires
`5555` is the port ADB daemon will listen at, and can be freely changed.
-- To enable ADB over WiFI using Tango, use the [`tcpip` command](../../commands/tcpip.md).
+- To enable ADB over WiFI using Tango, use the [`tcpip` command](../../../api/tcpip.md).
When device is restarted, ADB over WiFi will be disabled. To re-enable it, connect the device using a USB cable and follow the steps above again.
diff --git a/docs/tango/daemon/usb/get-devices.md b/docs/tango/daemon/usb/get-devices.mdx
similarity index 64%
rename from docs/tango/daemon/usb/get-devices.md
rename to docs/tango/daemon/usb/get-devices.mdx
index 833fae8..e0b8921 100644
--- a/docs/tango/daemon/usb/get-devices.md
+++ b/docs/tango/daemon/usb/get-devices.mdx
@@ -7,22 +7,26 @@ import TabItem from "@theme/TabItem";
# Get all connected devices
-## Get devices
-
-WebUSB's [`USB#getDevices`](https://developer.mozilla.org/en-US/docs/Web/API/USB/getDevices) method returns all devices that are currently connected and have been granted permission to access by the user.
+After the user has granted permission to access the device, the next time the user visits the page, the Web app can access the device directly without asking for permission again.
-Previously, we have disabled the permission system in `usb` package's WebUSB implementation, so the [`USB#getDevices`](https://developer.mozilla.org/en-US/docs/Web/API/USB/getDevices) method returns all devices that are currently connected.
+Previously, we have disabled the permission system in `usb` package's WebUSB implementation, so it will return all devices that are currently connected.
-`USB#getDevices` returns all connected devices, including those that are not ADB devices. So `AdbDaemonWebUsbDeviceManager#getDevices` method calls `USB#getDevices`, picks ADB devices from the results, and wraps them to `AdbDaemonWebUsbDevice` instances.
+The app can get all connected devices by calling `AdbDaemonWebUsbDeviceManager#getDevices` method. It can then connect to multiple devices at the same time, or let the user choose one device to connect to.
+
+## Get devices
+
+`AdbDaemonWebUsbDeviceManager#getDevices` method calls WebUSB's `USB#getDevices` method to get all connected devices.
+
+But since `USB#getDevices` returns all connected devices, including those that are not ADB devices, `AdbDaemonWebUsbDeviceManager#getDevices` accepts a `filters` option (same as `AdbDaemonWebUsbDeviceManager#requestDevice`) to filter out incompatible devices.
```ts
interface AdbDeviceFilter {
@@ -39,6 +43,18 @@ declare class AdbDaemonWebUsbDeviceManager {
}
```
+The `filters` option is optional and defaults to `ADB_DEFAULT_DEVICE_FILTER`, which picks common ADB devices:
+
+```ts
+export const ADB_DEFAULT_DEVICE_FILTER = {
+ classCode: 0xff,
+ subclassCode: 0x42,
+ protocolCode: 1,
+} as const satisfies AdbDeviceFilter;
+```
+
+So in many cases, you can just call `AdbDaemonWebUsbDeviceManager#getDevices` without any arguments:
+
```ts transpile
import { AdbDaemonWebUsbDevice } from "@yume-chan/adb-daemon-webusb";
@@ -53,17 +69,7 @@ const device: AdbDaemonWebUsbDevice = devices[0];
## Filter connected devices
-By default, `AdbDaemonWebUsbDeviceManager#getDevices` method uses a filter that matches the ADB interface:
-
-```ts
-export const ADB_DEFAULT_DEVICE_FILTER = {
- classCode: 0xff,
- subclassCode: 0x42,
- protocolCode: 1,
-} as const satisfies AdbDeviceFilter;
-```
-
-But it also accepts custom filters to limit which devices will be returned. Each filter is an object with the following fields:
+To limit which devices will be returned, you can specify multiple custom filters. Each filter is an object with the following fields:
- `classCode`: (Required) The class code of the ADB interface.
- `subclassCode`: (Required) The subclass code of the ADB interface.
@@ -82,11 +88,7 @@ Some lazy manufacturers use the same `serialNumber` for all devices. So even if
:::
-To say a device matches a filter, the device must match all specified fields in the filter.
-
-To say a device matches multiple filters, the device must match at least one of them.
-
-For example, to only allow a specific manufacturer/model:
+If a filter has multiple fields, the device must match all fields to be returned. For example, this filter only allows a specific manufacturer/model:
```ts transpile
import {
@@ -103,7 +105,7 @@ const devices: AdbDaemonWebUsbDevice[] = await Manager.getDevices([
]);
```
-And to allow multiple manufacturers/models:
+If multiple filters are specified, any device matching at least one filter will be returned. So, to allow multiple manufacturers/models:
```ts transpile
import {
diff --git a/docs/tango/daemon/usb/monitor-devices.mdx b/docs/tango/daemon/usb/monitor-devices.mdx
index 5483253..b23665b 100644
--- a/docs/tango/daemon/usb/monitor-devices.mdx
+++ b/docs/tango/daemon/usb/monitor-devices.mdx
@@ -28,4 +28,4 @@ const watcher = new AdbDaemonWebUsbDeviceWatcher(
watcher.dispose();
```
-Generally, the handler should reload the device list using [`AdbDaemonWebUsbDeviceManager#getDevices`](./get-devices.md) and update the UI.
+Generally, the handler should reload the device list using [`AdbDaemonWebUsbDeviceManager#getDevices`](./get-devices.mdx) and update the UI.
diff --git a/docs/tango/daemon/usb/request-device.md b/docs/tango/daemon/usb/request-device.md
deleted file mode 100644
index 0273f97..0000000
--- a/docs/tango/daemon/usb/request-device.md
+++ /dev/null
@@ -1,132 +0,0 @@
----
-sidebar_position: 2
----
-
-import Tabs from "@theme/Tabs";
-import TabItem from "@theme/TabItem";
-
-# Request device permission
-
-:::note
-
-This page only applies to browsers. For Node.js, you can skip to the [next step](./get-devices.md).
-
-:::
-
-## Request permission
-
-In Web browsers, each website needs to request the permission to access each device separately using WebUSB's [`USB#requestDevice`](https://developer.mozilla.org/en-US/docs/Web/API/USB/requestDevice) method. The `AdbDaemonWebUsbDeviceManager#requestDevice` method calls `USB#requestDevice` and wraps the result to an `AdbDaemonWebUsbDevice` instance.
-
-```ts
-interface AdbDeviceFilter {
- classCode: number;
- subclassCode: number;
- protocolCode: number;
- vendorId?: number;
- productId?: number;
- serialNumber?: string;
-}
-
-declare class AdbDaemonWebUsbDeviceManager {
- requestDevice(
- filters?: AdbDeviceFilter[],
- ): Promise;
-}
-```
-
-`USB#requestDevice` method requires [user activation](https://developer.mozilla.org/en-US/docs/Web/Security/User_activation), which means it can only be called in response to a mouse click or keyboard press event.
-
-```ts transpile
-import { AdbDaemonWebUsbDevice } from "@yume-chan/adb-daemon-webusb";
-
-document.getElementById("button").addEventListener("click", () => {
- const device: AdbDaemonWebUsbDevice | undefined =
- await Manager.requestDevice();
- if (!device) {
- alert("No device selected");
- return;
- }
-});
-```
-
-When calling `USB#requestDevice`, the browser shows a list of connected devices to the user. The user can pick one device from the list, and `requestDevice` will return that device. If the user closes the picker without selecting any device, `requestDevice` will return `undefined`.
-
-The permission is persisted by the browser, so from next time, the website can access that device without calling `requestDevice` again. However, the user can revoke the permission in "Settings -> Site Permissions -> USB devices" at any time.
-
-## Filter devices to be chosen from
-
-`USB#requestDevice` method takes a list of filters to limit which devices will appear in the browser presented list. By default, `AdbDaemonWebUsbDeviceManager#requestDevice` method uses a filter that matches the ADB interface:
-
-```ts
-export const ADB_DEFAULT_DEVICE_FILTER = {
- classCode: 0xff,
- subclassCode: 0x42,
- protocolCode: 1,
-} as const satisfies AdbDeviceFilter;
-```
-
-But it also accepts custom filters. Each filter is an object with the following fields:
-
-- `classCode`: (Required) The class code of the ADB interface.
-- `subclassCode`: (Required) The subclass code of the ADB interface.
-- `protocolCode`: (Required) The protocol code of the ADB interface.
-- `vendorId`: The USB vendor ID of the device.
-- `productId`: The USB product ID of the device.
-- `serialNumber`: The serial number of the device.
-
-`classCode`, `subclassCode` and `protocolCode` fields are required to ensure the device is an ADB device. They can be different from `ADB_DEFAULT_DEVICE_FILTER` if your device has a different configuration. Tango will use these fields to select the correct interface to communicate with.
-
-`venderId`, `productId` and `serialNumber` fields can be used to select a specific manufacturer, a specific model, or a specific device.
-
-To say a device matches a filter, the device must match all specified fields in the filter.
-
-To say a device matches multiple filters, the device must match at least one of them.
-
-For example, to only allow a specific manufacturer/model:
-
-```ts transpile
-import {
- AdbDaemonWebUsbDevice,
- ADB_DEFAULT_DEVICE_FILTER,
-} from "@yume-chan/adb-daemon-webusb";
-
-const device: AdbDaemonWebUsbDevice | undefined = await Manager.requestDevice([
- {
- ...ADB_DEFAULT_DEVICE_FILTER,
- vendorId: 0x18d1,
- productId: 0x4ee2,
- },
-]);
-```
-
-And to allow multiple manufacturers/models:
-
-```ts transpile
-import {
- AdbDaemonWebUsbDevice,
- ADB_DEFAULT_DEVICE_FILTER,
-} from "@yume-chan/adb-daemon-webusb";
-
-const device: AdbDaemonWebUsbDevice | undefined = await Manager.requestDevice([
- {
- ...ADB_DEFAULT_DEVICE_FILTER,
- vendorId: 0x18d1,
- productId: 0x4ee2,
- },
- {
- ...ADB_DEFAULT_DEVICE_FILTER,
- vendorId: 0x04e8,
- productId: 0x6860,
- },
-]);
-```
-
-## Drop permission
-
-If a device is connected and the permission to access it was granted, but you don't want to access it anymore, you can drop the permission.
-
-```ts transpile
-device.raw.forget();
-```
-
-Because there is no way to retrieve permission-granted but disconnected devices (unless you got the `device` before it was disconnected), it's also not possible to drop permissions for them. (See https://github.com/WICG/webusb/issues/166)
diff --git a/docs/tango/daemon/usb/request-device.mdx b/docs/tango/daemon/usb/request-device.mdx
new file mode 100644
index 0000000..8401ea8
--- /dev/null
+++ b/docs/tango/daemon/usb/request-device.mdx
@@ -0,0 +1,207 @@
+---
+sidebar_position: 2
+---
+
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+
+# Request device permission
+
+:::note
+
+This page only applies to browsers. For Node.js, you can skip to the [next step](./get-devices.mdx).
+
+:::
+
+## Request permission in WebUSB
+
+In Web browsers, each website needs to request the permission to access each device separately using WebUSB's [`USB#requestDevice`](https://developer.mozilla.org/en-US/docs/Web/API/USB/requestDevice) method.
+
+`USB#requestDevice` method requires [user activation](https://developer.mozilla.org/en-US/docs/Web/Security/User_activation), which means it can only be called in response to a mouse click or keyboard press event.
+
+After calling `USB#requestDevice`, the browser shows a list of connected devices to the user. The user can select one (and only one) device from the list, or cancel the picker without selecting any device.
+
+It will return an `USBDevice` instance representing the selected device, or throws an `DOMException` with `name` set to `NotFoundError` if the user cancelled the picker.
+
+```ts transpile
+document.getElementById("button").addEventListener("click", () => {
+ try {
+ const device: USBDevice = await navigator.usb.requestDevice({
+ filters: [
+ {
+ classCode: 0xff,
+ subclassCode: 0x42,
+ protocolCode: 1,
+ },
+ ],
+ });
+ alert(`Selected device: ${device.serialNumber}`);
+ } catch (e) {
+ if (e instanceof DOMException && e.name === "NotFoundError") {
+ alert("No device selected");
+ return;
+ }
+
+ throw e;
+ }
+});
+```
+
+The permission will be persisted by the browser, so from next time, the website can access that device without calling `requestDevice` again. The user can revoke the permission in "Settings -> Site Permissions -> USB devices" at any time.
+
+## Android USB mode affects permissions
+
+In USB specification, one device can have multiple **interfaces**. Each interface represents a self-contained feature. For example, a USB headset can have one interface for audio input and one interface for audio output.
+
+One device can also have multiple **configurations**. Each configuration is a set of interfaces. It can turn on or off some features by switching between configurations.
+
+Android devices have multiple interfaces, like MTP mode for file transfer, ADB mode for debugging, and so on. And each interface can be turned on or off in its system UI. However, Android devices doesn't use multiple USB configurations.
+
+This might partially because Windows doesn't support switching USB configurations unless a custom driver is installed. So, when switching USB modes, Android devices will disconnect and reconnect to the computer, and tell the computer that it's a different device with different interfaces.
+
+:::note
+
+In contrast, Apple mobile devices (iPods, iPhones and iPads) use multiple USB configurations. In the default configuration, they only have one interface for transferring files using MTP, Only when iTunes and its special driver is installed, they can switch to another configuration with an extra interface for syncing with iTunes.
+
+:::
+
+As a result, in Web browsers, each USB modes of an Android device has separate permissions. After switching to a new USB mode, the website needs to request permission again.
+
+## Request permission in Tango
+
+Tango represents each device as an `AdbDaemonWebUsbDevice` instance, which includes the `USBDevice` instance and some additional information.
+
+You can manually construct an `AdbDaemonWebUsbDevice` instance from a `USBDevice` instance, but it's easier to use the `AdbDaemonWebUsbDeviceManager#requestDevice` method that does it for you.
+
+```ts
+declare class AdbDaemonWebUsbDeviceManager {
+ requestDevice(): Promise;
+}
+```
+
+Same as `USB#requestDevice`, it requires user activation. However, it returns `undefined` instead of throwing an error if the user cancelled the picker.
+
+```ts transpile
+import { AdbDaemonWebUsbDevice } from "@yume-chan/adb-daemon-webusb";
+
+document.getElementById("button").addEventListener("click", () => {
+ const device: AdbDaemonWebUsbDevice | undefined =
+ await Manager.requestDevice();
+ if (!device) {
+ alert("No device selected");
+ return;
+ }
+});
+```
+
+## Filter devices in the picker
+
+By default, `USB#requestDevice` method shows all connected devices in the picker. To limit which devices will appear in the picker, it accepts one list of inclusive filters and one list of exclusive filters.
+
+:::note
+
+Support for exclusive filters was added in Chrome 105. It will be ignored in older browsers.
+
+:::
+
+`AdbDaemonWebUsbDeviceManager#requestDevice` also has an `options` parameter:
+
+```ts
+interface AdbDeviceFilter {
+ classCode: number;
+ subclassCode: number;
+ protocolCode: number;
+ vendorId?: number;
+ productId?: number;
+ serialNumber?: string;
+}
+
+namespace AdbDaemonWebUsbDeviceManager {
+ interface RequestDeviceOptions {
+ filters?: AdbDeviceFilter[] | undefined;
+ exclusionFilters?: USBDeviceFilter[] | undefined;
+ }
+}
+
+declare class AdbDaemonWebUsbDeviceManager {
+ requestDevice(
+ options?: AdbDaemonWebUsbDeviceManager.RequestDeviceOptions
+ ): Promise;
+}
+```
+
+If `filters` is omitted, it will use `ADB_DEFAULT_DEVICE_FILTER` which matches the ADB interface.
+
+```ts
+export const ADB_DEFAULT_DEVICE_FILTER = {
+ classCode: 0xff,
+ subclassCode: 0x42,
+ protocolCode: 1,
+} as const satisfies AdbDeviceFilter;
+```
+
+Each filter is an object with the following fields:
+
+- `classCode`: (Required) The class code of the ADB interface.
+- `subclassCode`: (Required) The subclass code of the ADB interface.
+- `protocolCode`: (Required) The protocol code of the ADB interface.
+- `vendorId`: The USB vendor ID of the device.
+- `productId`: The USB product ID of the device.
+- `serialNumber`: The serial number of the device.
+
+`classCode`, `subclassCode` and `protocolCode` fields are required to ensure the device is an ADB device. They can be different from `ADB_DEFAULT_DEVICE_FILTER` if your device has a different configuration. Tango will use these fields to select the correct interface to communicate with.
+
+`venderId`, `productId` and `serialNumber` fields can be used to select a specific manufacturer, a specific model, or a specific device.
+
+If a filter has multiple fields, the device must match all fields to be included or excluded. For example, this filter only allows a specific manufacturer/model:
+
+```ts transpile
+import {
+ AdbDaemonWebUsbDevice,
+ ADB_DEFAULT_DEVICE_FILTER,
+} from "@yume-chan/adb-daemon-webusb";
+
+const device: AdbDaemonWebUsbDevice | undefined = await Manager.requestDevice({
+ filters: [
+ {
+ ...ADB_DEFAULT_DEVICE_FILTER,
+ vendorId: 0x18d1,
+ productId: 0x4ee2,
+ },
+ ],
+});
+```
+
+If multiple filters are specified, any device matching at least one filter will be returned. So, to allow multiple manufacturers/models:
+
+```ts transpile
+import {
+ AdbDaemonWebUsbDevice,
+ ADB_DEFAULT_DEVICE_FILTER,
+} from "@yume-chan/adb-daemon-webusb";
+
+const device: AdbDaemonWebUsbDevice | undefined = await Manager.requestDevice({
+ filters: [
+ {
+ ...ADB_DEFAULT_DEVICE_FILTER,
+ vendorId: 0x18d1,
+ productId: 0x4ee2,
+ },
+ {
+ ...ADB_DEFAULT_DEVICE_FILTER,
+ vendorId: 0x04e8,
+ productId: 0x6860,
+ },
+ ],
+});
+```
+
+## Drop permission
+
+If a device is connected and the permission to access it was granted, but you don't want to access it anymore, you can drop the permission.
+
+```ts transpile
+device.raw.forget();
+```
+
+Because there is no way to retrieve permission-granted but disconnected devices (unless you got the `device` before it was disconnected), it's also not possible to drop permissions for them. (See https://github.com/WICG/webusb/issues/166)
diff --git a/docs/tango/index.mdx b/docs/tango/index.mdx
index 8519440..5673529 100644
--- a/docs/tango/index.mdx
+++ b/docs/tango/index.mdx
@@ -3,9 +3,16 @@ sidebar_position: 1
slug: /
---
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+
# Quick Start
-Tango is separated into many packages. Generally, you need at least three things:
+Tango is a TypeScript re-implementation of [Android Debug Bridge](https://developer.android.com/studio/command-line/adb) (ADB) client. It works in both Node.js and Web browser by using different packages.
+
+## Installation
+
+Tango is split into multiple packages to handle different runtimes. You need to install at least two packages to use Tango
1. [`@yume-chan/adb`](https://www.npmjs.com/package/@yume-chan/adb): The core package
2. [`@yume-chan/stream-extra`](https://www.npmjs.com/package/@yume-chan/stream-extra): Polyfill for [Web Streams API](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) and utilities for streams
@@ -24,7 +31,7 @@ This mode is suitable for running on end-users' devices where Google ADB is not
`AdbDaemonTransport` class from `@yume-chan/adb` package provides this mode. Because the API for connecting to devices varies by platform and connection type, `AdbDaemonTransport` accepts a custom connection object.
-
+
:::note[Next Step]
@@ -32,8 +39,8 @@ This mode is suitable for running on end-users' devices where Google ADB is not
:::
-
-
+
+
:::note[Next Step]
@@ -41,7 +48,8 @@ This mode is suitable for running on end-users' devices where Google ADB is not
:::
-
+
+
:::note[Next Step]
diff --git a/docs/tango/server/client.mdx b/docs/tango/server/client.mdx
index 54840c3..e12ea7c 100644
--- a/docs/tango/server/client.mdx
+++ b/docs/tango/server/client.mdx
@@ -78,7 +78,7 @@ Because `AdbServerDevice` objects have a `transportId` field, it can also be use
:::note[Next Step]
-See [commands](../commands/index.mdx) for how to use the `Adb` instance.
+See [commands](../../api/index.mdx) for how to use the `Adb` instance.
:::
diff --git a/docs/tango/server/commands.mdx b/docs/tango/server/commands.mdx
index 1e249e3..400cc4f 100644
--- a/docs/tango/server/commands.mdx
+++ b/docs/tango/server/commands.mdx
@@ -154,7 +154,7 @@ declare class AdbServerClient {
Gets the ADB features supported by the device. It's required for Tango to coordinate the behavior of ADB commands with the device.
-For example, if [Shell protocol](../commands/subprocess.mdx#none-protocol-vs-shell-protocol) is not supported by the device, using `AdbSubprocessShellProtocol` will immediately throw an error.
+For example, if [Shell protocol](../../api/subprocess.mdx#none-protocol-vs-shell-protocol) is not supported by the device, using `AdbSubprocessShellProtocol` will immediately throw an error.
Usually you don't need to call this method directly, the `AdbServerClient#createTransport` method uses it to create a `AdbTransport` object.
diff --git a/docusaurus.config.js b/docusaurus.config.js
index c6fb625..66bb3a0 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -181,8 +181,8 @@ export default {
mermaid: true,
},
- title: "Unofficial ADB Book",
- tagline: "Deep-dive into ADB",
+ title: "Tango ADB",
+ tagline: "Documentation for Tango ADB",
url: "https://tango-adb.github.io",
baseUrl: "/docs/",
onBrokenLinks: "throw",
@@ -204,7 +204,7 @@ export default {
],
themeConfig: {
navbar: {
- title: "Unofficial ADB Book",
+ title: "Tango ADB",
logo: {
alt: "Tango Logo",
src: "img/logo.svg",
@@ -214,7 +214,13 @@ export default {
type: "doc",
docId: "tango/index",
position: "left",
- label: "Tango",
+ label: "Guide",
+ },
+ {
+ type: "doc",
+ docId: "api/index",
+ position: "left",
+ label: "API",
},
{
type: "doc",
@@ -237,7 +243,38 @@ export default {
},
footer: {
style: "dark",
- links: [],
+ links: [
+ {
+ title: "Links",
+ items: [
+ {
+ label: "Tango Web App",
+ href: "https://app.tangoapp.dev",
+ },
+ {
+ label: "OpenCollective",
+ href: "https://opencollective.com/ya-webadb",
+ },
+ ],
+ },
+ {
+ title: "Community",
+ items: [
+ {
+ label: "GitHub",
+ href: "https://github.com/yume-chan/ya-webadb",
+ },
+ {
+ label: "Reddit",
+ href: "https://www.reddit.com/r/tango_adb",
+ },
+ {
+ label: "Discord",
+ href: "https://discord.gg/26k3ttC2PN",
+ },
+ ],
+ },
+ ],
copyright: `Copyright © 2021-${new Date().getFullYear()} Tango ADB. Built with Docusaurus.`,
},
prism: {
@@ -254,17 +291,15 @@ export default {
routeBasePath: "/",
// Please change this to your repo.
editUrl: "https://github.com/tango-adb/docs/edit/main/",
- remarkPlugins: [
- ts2js,
- [remarkPluginNpm2yarn, { sync: true }],
- ],
+ remarkPlugins: [ts2js, [remarkPluginNpm2yarn, { sync: true }]],
+ showLastUpdateTime: true,
},
theme: {
customCss: resolve("./src/css/custom.css"),
},
gtag: {
- trackingID: 'GTM-WLPBQBK4'
- }
+ trackingID: "GTM-WLPBQBK4",
+ },
},
],
],
diff --git a/package.json b/package.json
index cf6ff12..9bcf523 100644
--- a/package.json
+++ b/package.json
@@ -18,10 +18,10 @@
"@docusaurus/preset-classic": "^3.0.1",
"@docusaurus/remark-plugin-npm2yarn": "^3.0.1",
"@docusaurus/theme-mermaid": "^3.0.1",
- "@easyops-cn/docusaurus-search-local": "^0.38.1",
+ "@easyops-cn/docusaurus-search-local": "^0.40.1",
"@mdx-js/react": "^3.0.0",
"@svgr/webpack": "^8.1.0",
- "clsx": "^2.0.0",
+ "clsx": "^2.1.0",
"file-loader": "^6.2.0",
"prettier": "^3.1.1",
"react": "^18.2.0",
@@ -47,10 +47,8 @@
"@docusaurus/tsconfig": "^3.0.1",
"@docusaurus/types": "^3.0.1",
"@types/mdast": "^4.0.3",
- "@types/node": "^20.10.4",
- "mini-svg-data-uri": "^1.3.3",
- "plantuml-encoder": "^1.4.0",
- "prism-react-renderer": "^2.3.0",
+ "@types/node": "^20.10.6",
+ "prism-react-renderer": "^2.3.1",
"unist-util-visit": "^5.0.0"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b238ab9..c14f92d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -7,10 +7,10 @@ settings:
dependencies:
'@docusaurus/core':
specifier: ^3.0.1
- version: 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ version: 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/preset-classic':
specifier: ^3.0.1
- version: 3.0.1(@algolia/client-search@4.21.0)(@types/react@18.2.43)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.3.3)
+ version: 3.0.1(@algolia/client-search@4.22.0)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.3.3)
'@docusaurus/remark-plugin-npm2yarn':
specifier: ^3.0.1
version: 3.0.1
@@ -18,17 +18,17 @@ dependencies:
specifier: ^3.0.1
version: 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@easyops-cn/docusaurus-search-local':
- specifier: ^0.38.1
- version: 0.38.1(@docusaurus/theme-common@3.0.1)(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ specifier: ^0.40.1
+ version: 0.40.1(@docusaurus/theme-common@3.0.1)(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@mdx-js/react':
specifier: ^3.0.0
- version: 3.0.0(@types/react@18.2.43)(react@18.2.0)
+ version: 3.0.0(@types/react@18.2.46)(react@18.2.0)
'@svgr/webpack':
specifier: ^8.1.0
version: 8.1.0(typescript@5.3.3)
clsx:
- specifier: ^2.0.0
- version: 2.0.0
+ specifier: ^2.1.0
+ version: 2.1.0
file-loader:
specifier: ^6.2.0
version: 6.2.0(webpack@5.89.0)
@@ -54,7 +54,7 @@ devDependencies:
version: 3.0.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/theme-classic':
specifier: ^3.0.1
- version: 3.0.1(@types/react@18.2.43)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ version: 3.0.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/tsconfig':
specifier: ^3.0.1
version: 3.0.1
@@ -65,64 +65,58 @@ devDependencies:
specifier: ^4.0.3
version: 4.0.3
'@types/node':
- specifier: ^20.10.4
- version: 20.10.4
- mini-svg-data-uri:
- specifier: ^1.3.3
- version: 1.4.4
- plantuml-encoder:
- specifier: ^1.4.0
- version: 1.4.0
+ specifier: ^20.10.6
+ version: 20.10.6
prism-react-renderer:
- specifier: ^2.3.0
- version: 2.3.0(react@18.2.0)
+ specifier: ^2.3.1
+ version: 2.3.1(react@18.2.0)
unist-util-visit:
specifier: ^5.0.0
version: 5.0.0
packages:
- /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.21.0)(algoliasearch@4.21.0)(search-insights@2.13.0):
+ /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.21.0)(search-insights@2.13.0):
resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==}
dependencies:
- '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.21.0)(algoliasearch@4.21.0)(search-insights@2.13.0)
- '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.21.0)(algoliasearch@4.21.0)
+ '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.21.0)(search-insights@2.13.0)
+ '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.21.0)
transitivePeerDependencies:
- '@algolia/client-search'
- algoliasearch
- search-insights
dev: false
- /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.21.0)(algoliasearch@4.21.0)(search-insights@2.13.0):
+ /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.21.0)(search-insights@2.13.0):
resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
peerDependencies:
search-insights: '>= 1 < 3'
dependencies:
- '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.21.0)(algoliasearch@4.21.0)
+ '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.21.0)
search-insights: 2.13.0
transitivePeerDependencies:
- '@algolia/client-search'
- algoliasearch
dev: false
- /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.21.0)(algoliasearch@4.21.0):
+ /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.21.0):
resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
peerDependencies:
'@algolia/client-search': '>= 4.9.1 < 6'
algoliasearch: '>= 4.9.1 < 6'
dependencies:
- '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.21.0)(algoliasearch@4.21.0)
- '@algolia/client-search': 4.21.0
+ '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.21.0)
+ '@algolia/client-search': 4.22.0
algoliasearch: 4.21.0
dev: false
- /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.21.0)(algoliasearch@4.21.0):
+ /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.21.0):
resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
peerDependencies:
'@algolia/client-search': '>= 4.9.1 < 6'
algoliasearch: '>= 4.9.1 < 6'
dependencies:
- '@algolia/client-search': 4.21.0
+ '@algolia/client-search': 4.22.0
algoliasearch: 4.21.0
dev: false
@@ -136,6 +130,10 @@ packages:
resolution: {integrity: sha512-++qQGJHcankmMEBQ43Ey7D0fCN/wFYlgujSw+wkmyfu4a7zlXA4xtS+nCspBMBSivA7HeHurCvy/q2ZUzLAJTQ==}
dev: false
+ /@algolia/cache-common@4.22.0:
+ resolution: {integrity: sha512-TPwUMlIGPN16eW67qamNQUmxNiGHg/WBqWcrOoCddhqNTqGDPVqmgfaM85LPbt24t3r1z0zEz/tdsmuq3Q6oaA==}
+ dev: false
+
/@algolia/cache-in-memory@4.21.0:
resolution: {integrity: sha512-7PVIRsAPZCUuYe5I5z1srI+14VfRoJh0/ySCTX1WwFEC6N8vLGWhZeZPrtn+a44/wshi8xNaGW8bpjq97Dq0Sg==}
dependencies:
@@ -166,6 +164,13 @@ packages:
'@algolia/transporter': 4.21.0
dev: false
+ /@algolia/client-common@4.22.0:
+ resolution: {integrity: sha512-BlbkF4qXVWuwTmYxVWvqtatCR3lzXwxx628p1wj1Q7QP2+LsTmGt1DiUYRuy9jG7iMsnlExby6kRMOOlbhv2Ag==}
+ dependencies:
+ '@algolia/requester-common': 4.22.0
+ '@algolia/transporter': 4.22.0
+ dev: false
+
/@algolia/client-personalization@4.21.0:
resolution: {integrity: sha512-QGpFwthu6GWRGd+XManntwOEoDZ7qzpve/0t1Eo9/CqQNCNUrlIjt8TSfo4eOJeeeCP2i6DJTsnItq1wXxtrSA==}
dependencies:
@@ -182,6 +187,14 @@ packages:
'@algolia/transporter': 4.21.0
dev: false
+ /@algolia/client-search@4.22.0:
+ resolution: {integrity: sha512-bn4qQiIdRPBGCwsNuuqB8rdHhGKKWIij9OqidM1UkQxnSG8yzxHdb7CujM30pvp5EnV7jTqDZRbxacbjYVW20Q==}
+ dependencies:
+ '@algolia/client-common': 4.22.0
+ '@algolia/requester-common': 4.22.0
+ '@algolia/transporter': 4.22.0
+ dev: false
+
/@algolia/events@4.0.1:
resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
dev: false
@@ -190,6 +203,10 @@ packages:
resolution: {integrity: sha512-4SJotYjwzR6ZVEfTz71o3bjtn4zOHtnrr0IX+bn4jgK8UmrfOAHHYuAlV3NMJFFzEshrabQTA/3lsV/OyF6J4Q==}
dev: false
+ /@algolia/logger-common@4.22.0:
+ resolution: {integrity: sha512-HMUQTID0ucxNCXs5d1eBJ5q/HuKg8rFVE/vOiLaM4Abfeq1YnTtGV3+rFEhOPWhRQxNDd+YHa4q864IMc0zHpQ==}
+ dev: false
+
/@algolia/logger-console@4.21.0:
resolution: {integrity: sha512-LOUwr6DFww2ABGviumO9mjBtLIkFMf7jN3KN1y0DOaZZE4QV8SbG9JaI+koZybIc4bK+AUS6AXz1erpbuI6Jog==}
dependencies:
@@ -206,6 +223,10 @@ packages:
resolution: {integrity: sha512-+YoGR9t0v3ksTmYucJ37IWqVoOOWO/yFVPQmBx2ajI1h4ZDJVW8cspD1DIYsPYcMdA2E3pvn3/XhVuomnjhBaw==}
dev: false
+ /@algolia/requester-common@4.22.0:
+ resolution: {integrity: sha512-Y9cEH/cKjIIZgzvI1aI0ARdtR/xRrOR13g5psCxkdhpgRN0Vcorx+zePhmAa4jdQNqexpxtkUdcKYugBzMZJgQ==}
+ dev: false
+
/@algolia/requester-node-http@4.21.0:
resolution: {integrity: sha512-kmABh1hWSm08b+6n6GbOrUWbqbWznQYylNRmFtuKnPBIRy5KiqrES31TBe+XsVityEav/iCIzpEEdanmoLaSVg==}
dependencies:
@@ -220,6 +241,14 @@ packages:
'@algolia/requester-common': 4.21.0
dev: false
+ /@algolia/transporter@4.22.0:
+ resolution: {integrity: sha512-ieO1k8x2o77GNvOoC+vAkFKppydQSVfbjM3YrSjLmgywiBejPTvU1R1nEvG59JIIUvtSLrZsLGPkd6vL14zopA==}
+ dependencies:
+ '@algolia/cache-common': 4.22.0
+ '@algolia/logger-common': 4.22.0
+ '@algolia/requester-common': 4.22.0
+ dev: false
+
/@ampproject/remapping@2.2.1:
resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
engines: {node: '>=6.0.0'}
@@ -491,21 +520,6 @@ packages:
transitivePeerDependencies:
- supports-color
- /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.5):
- resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==}
- peerDependencies:
- '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- dependencies:
- '@babel/core': 7.23.5
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-plugin-utils': 7.22.5
- debug: 4.3.4
- lodash.debounce: 4.0.8
- resolve: 1.22.8
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.6):
resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==}
peerDependencies:
@@ -2842,23 +2856,6 @@ packages:
'@babel/core': 7.23.6
'@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-runtime@7.23.4(@babel/core@7.23.5):
- resolution: {integrity: sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.5
- '@babel/helper-module-imports': 7.22.15
- '@babel/helper-plugin-utils': 7.22.5
- babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.5)
- babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.5)
- babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.5)
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/@babel/plugin-transform-runtime@7.23.6(@babel/core@7.23.6):
resolution: {integrity: sha512-kF1Zg62aPseQ11orDhFRw+aPG/eynNQtI+TyY+m33qJa2cJ5EEvza2P2BNTIA9E5MyqFABHEyY6CPHwgdy9aNg==}
engines: {node: '>=6.9.0'}
@@ -3564,14 +3561,6 @@ packages:
/@babel/regjsgen@0.8.0:
resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
- /@babel/runtime-corejs3@7.23.5:
- resolution: {integrity: sha512-7+ziVclejQTLYhXl+Oi1f6gTGD1XDCeLa4R472TNGQxb08zbEJ0OdNoh5Piz+57Ltmui6xR88BXR4gS3/Toslw==}
- engines: {node: '>=6.9.0'}
- dependencies:
- core-js-pure: 3.34.0
- regenerator-runtime: 0.14.0
- dev: false
-
/@babel/runtime-corejs3@7.23.6:
resolution: {integrity: sha512-Djs/ZTAnpyj0nyg7p1J6oiE/tZ9G2stqAFlLGZynrW+F3k2w2jGK2mLOBxzYIOcZYA89+c3d3wXKpYLcpwcU6w==}
engines: {node: '>=6.9.0'}
@@ -3699,7 +3688,7 @@ packages:
resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==}
dev: false
- /@docsearch/react@3.5.2(@algolia/client-search@4.21.0)(@types/react@18.2.43)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0):
+ /@docsearch/react@3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0):
resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==}
peerDependencies:
'@types/react': '>= 16.8.0 < 19.0.0'
@@ -3716,10 +3705,10 @@ packages:
search-insights:
optional: true
dependencies:
- '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.21.0)(algoliasearch@4.21.0)(search-insights@2.13.0)
- '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.21.0)(algoliasearch@4.21.0)
+ '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.21.0)(search-insights@2.13.0)
+ '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.21.0)
'@docsearch/css': 3.5.2
- '@types/react': 18.2.43
+ '@types/react': 18.2.46
algoliasearch: 4.21.0
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -3728,106 +3717,7 @@ packages:
- '@algolia/client-search'
dev: false
- /@docusaurus/core@3.0.0(@docusaurus/types@3.0.0)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3):
- resolution: {integrity: sha512-bHWtY55tJTkd6pZhHrWz1MpWuwN4edZe0/UWgFF7PW/oJeDZvLSXKqwny3L91X1/LGGoypBGkeZn8EOuKeL4yQ==}
- engines: {node: '>=18.0'}
- hasBin: true
- peerDependencies:
- react: ^18.0.0
- react-dom: ^18.0.0
- dependencies:
- '@babel/core': 7.23.5
- '@babel/generator': 7.23.5
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5)
- '@babel/plugin-transform-runtime': 7.23.4(@babel/core@7.23.5)
- '@babel/preset-env': 7.23.5(@babel/core@7.23.5)
- '@babel/preset-react': 7.23.3(@babel/core@7.23.5)
- '@babel/preset-typescript': 7.23.3(@babel/core@7.23.5)
- '@babel/runtime': 7.23.5
- '@babel/runtime-corejs3': 7.23.5
- '@babel/traverse': 7.23.5
- '@docusaurus/cssnano-preset': 3.0.0
- '@docusaurus/logger': 3.0.0
- '@docusaurus/mdx-loader': 3.0.0(@docusaurus/types@3.0.0)(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/react-loadable': 5.5.2(react@18.2.0)
- '@docusaurus/utils': 3.0.0(@docusaurus/types@3.0.0)
- '@docusaurus/utils-common': 3.0.0(@docusaurus/types@3.0.0)
- '@docusaurus/utils-validation': 3.0.0(@docusaurus/types@3.0.0)
- '@slorber/static-site-generator-webpack-plugin': 4.0.7
- '@svgr/webpack': 6.5.1
- autoprefixer: 10.4.16(postcss@8.4.32)
- babel-loader: 9.1.3(@babel/core@7.23.5)(webpack@5.89.0)
- babel-plugin-dynamic-import-node: 2.3.3
- boxen: 6.2.1
- chalk: 4.1.2
- chokidar: 3.5.3
- clean-css: 5.3.2
- cli-table3: 0.6.3
- combine-promises: 1.2.0
- commander: 5.1.0
- copy-webpack-plugin: 11.0.0(webpack@5.89.0)
- core-js: 3.33.3
- css-loader: 6.8.1(webpack@5.89.0)
- css-minimizer-webpack-plugin: 4.2.2(clean-css@5.3.2)(webpack@5.89.0)
- cssnano: 5.1.15(postcss@8.4.32)
- del: 6.1.1
- detect-port: 1.5.1
- escape-html: 1.0.3
- eta: 2.2.0
- file-loader: 6.2.0(webpack@5.89.0)
- fs-extra: 11.2.0
- html-minifier-terser: 7.2.0
- html-tags: 3.3.1
- html-webpack-plugin: 5.5.3(webpack@5.89.0)
- leven: 3.1.0
- lodash: 4.17.21
- mini-css-extract-plugin: 2.7.6(webpack@5.89.0)
- postcss: 8.4.32
- postcss-loader: 7.3.3(postcss@8.4.32)(typescript@5.3.3)(webpack@5.89.0)
- prompts: 2.4.2
- react: 18.2.0
- react-dev-utils: 12.0.1(typescript@5.3.3)(webpack@5.89.0)
- react-dom: 18.2.0(react@18.2.0)
- react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
- react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
- react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.89.0)
- react-router: 5.3.4(react@18.2.0)
- react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0)
- react-router-dom: 5.3.4(react@18.2.0)
- rtl-detect: 1.1.2
- semver: 7.5.4
- serve-handler: 6.1.5
- shelljs: 0.8.5
- terser-webpack-plugin: 5.3.9(webpack@5.89.0)
- tslib: 2.6.2
- update-notifier: 6.0.2
- url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.89.0)
- wait-on: 7.2.0(debug@4.3.4)
- webpack: 5.89.0
- webpack-bundle-analyzer: 4.10.1
- webpack-dev-server: 4.15.1(debug@4.3.4)(webpack@5.89.0)
- webpack-merge: 5.10.0
- webpackbar: 5.0.2(webpack@5.89.0)
- transitivePeerDependencies:
- - '@docusaurus/types'
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/core@3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3):
+ /@docusaurus/core@3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3):
resolution: {integrity: sha512-CXrLpOnW+dJdSv8M5FAJ3JBwXtL6mhUWxFA8aS0ozK6jBG/wgxERk5uvH28fCeFxOGbAT9v1e9dOMo1X2IEVhQ==}
engines: {node: '>=18.0'}
hasBin: true
@@ -3924,16 +3814,6 @@ packages:
- vue-template-compiler
- webpack-cli
- /@docusaurus/cssnano-preset@3.0.0:
- resolution: {integrity: sha512-FHiRfwmVvIVdIGsHcijUOaX7hMn0mugVYB7m4GkpYI6Mi56zwQV4lH5p7DxcW5CUYNWMVxz2loWSCiWEm5ikwA==}
- engines: {node: '>=18.0'}
- dependencies:
- cssnano-preset-advanced: 5.3.10(postcss@8.4.32)
- postcss: 8.4.32
- postcss-sort-media-queries: 4.4.1(postcss@8.4.32)
- tslib: 2.6.2
- dev: false
-
/@docusaurus/cssnano-preset@3.0.1:
resolution: {integrity: sha512-wjuXzkHMW+ig4BD6Ya1Yevx9UJadO4smNZCEljqBoQfIQrQskTswBs7lZ8InHP7mCt273a/y/rm36EZhqJhknQ==}
engines: {node: '>=18.0'}
@@ -3943,14 +3823,6 @@ packages:
postcss-sort-media-queries: 4.4.1(postcss@8.4.32)
tslib: 2.6.2
- /@docusaurus/logger@3.0.0:
- resolution: {integrity: sha512-6eX0eOfioMQCk+qgCnHvbLLuyIAA+r2lSID6d6JusiLtDKmYMfNp3F4yyE8bnb0Abmzt2w68XwptEFYyALSAXw==}
- engines: {node: '>=18.0'}
- dependencies:
- chalk: 4.1.2
- tslib: 2.6.2
- dev: false
-
/@docusaurus/logger@3.0.1:
resolution: {integrity: sha512-I5L6Nk8OJzkVA91O2uftmo71LBSxe1vmOn9AMR6JRCzYeEBrqneWMH02AqMvjJ2NpMiviO+t0CyPjyYV7nxCWQ==}
engines: {node: '>=18.0'}
@@ -3958,50 +3830,6 @@ packages:
chalk: 4.1.2
tslib: 2.6.2
- /@docusaurus/mdx-loader@3.0.0(@docusaurus/types@3.0.0)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-JkGge6WYDrwjNgMxwkb6kNQHnpISt5L1tMaBWFDBKeDToFr5Kj29IL35MIQm0RfrnoOfr/29RjSH4aRtvlAR0A==}
- engines: {node: '>=18.0'}
- peerDependencies:
- react: ^18.0.0
- react-dom: ^18.0.0
- dependencies:
- '@babel/parser': 7.23.5
- '@babel/traverse': 7.23.5
- '@docusaurus/logger': 3.0.0
- '@docusaurus/utils': 3.0.0(@docusaurus/types@3.0.0)
- '@docusaurus/utils-validation': 3.0.0(@docusaurus/types@3.0.0)
- '@mdx-js/mdx': 3.0.0
- '@slorber/remark-comment': 1.0.0
- escape-html: 1.0.3
- estree-util-value-to-estree: 3.0.1
- file-loader: 6.2.0(webpack@5.89.0)
- fs-extra: 11.2.0
- image-size: 1.0.2
- mdast-util-mdx: 3.0.0
- mdast-util-to-string: 4.0.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- rehype-raw: 7.0.0
- remark-directive: 3.0.0
- remark-emoji: 4.0.1
- remark-frontmatter: 5.0.0
- remark-gfm: 4.0.0
- stringify-object: 3.3.0
- tslib: 2.6.2
- unified: 11.0.4
- unist-util-visit: 5.0.0
- url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.89.0)
- vfile: 6.0.1
- webpack: 5.89.0
- transitivePeerDependencies:
- - '@docusaurus/types'
- - '@swc/core'
- - esbuild
- - supports-color
- - uglify-js
- - webpack-cli
- dev: false
-
/@docusaurus/mdx-loader@3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-ldnTmvnvlrONUq45oKESrpy+lXtbnTcTsFkOTIDswe5xx5iWJjt6eSa0f99ZaWlnm24mlojcIGoUWNCS53qVlQ==}
engines: {node: '>=18.0'}
@@ -4045,29 +3873,6 @@ packages:
- uglify-js
- webpack-cli
- /@docusaurus/module-type-aliases@3.0.0(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-CfC6CgN4u/ce+2+L1JdsHNyBd8yYjl4De2B2CBj2a9F7WuJ5RjV1ciuU7KDg8uyju+NRVllRgvJvxVUjCdkPiw==}
- peerDependencies:
- react: '*'
- react-dom: '*'
- dependencies:
- '@docusaurus/react-loadable': 5.5.2(react@18.2.0)
- '@docusaurus/types': 3.0.0(react-dom@18.2.0)(react@18.2.0)
- '@types/history': 4.7.11
- '@types/react': 18.2.43
- '@types/react-router-config': 5.0.10
- '@types/react-router-dom': 5.3.3
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-helmet-async: 2.0.3(react-dom@18.2.0)(react@18.2.0)
- react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
- transitivePeerDependencies:
- - '@swc/core'
- - esbuild
- - uglify-js
- - webpack-cli
- dev: false
-
/@docusaurus/module-type-aliases@3.0.1(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==}
peerDependencies:
@@ -4097,7 +3902,7 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/logger': 3.0.1
'@docusaurus/mdx-loader': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
@@ -4133,56 +3938,14 @@ packages:
- vue-template-compiler
- webpack-cli
- /@docusaurus/plugin-content-docs@3.0.0(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3):
- resolution: {integrity: sha512-MFZsOSwmeJ6rvoZMLieXxPuJsA9M9vn7/mUZmfUzSUTeHAeq+fEqvLltFOxcj4DVVDTYlQhgWYd+PISIWgamKw==}
- engines: {node: '>=18.0'}
- peerDependencies:
- react: ^18.0.0
- react-dom: ^18.0.0
- dependencies:
- '@docusaurus/core': 3.0.0(@docusaurus/types@3.0.0)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
- '@docusaurus/logger': 3.0.0
- '@docusaurus/mdx-loader': 3.0.0(@docusaurus/types@3.0.0)(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/module-type-aliases': 3.0.0(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/types': 3.0.0(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/utils': 3.0.0(@docusaurus/types@3.0.0)
- '@docusaurus/utils-validation': 3.0.0(@docusaurus/types@3.0.0)
- '@types/react-router-config': 5.0.10
- combine-promises: 1.2.0
- fs-extra: 11.2.0
- js-yaml: 4.1.0
- lodash: 4.17.21
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- tslib: 2.6.2
- utility-types: 3.10.0
- webpack: 5.89.0
- transitivePeerDependencies:
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/plugin-content-docs@3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3):
+ /@docusaurus/plugin-content-docs@3.0.1(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3):
resolution: {integrity: sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==}
engines: {node: '>=18.0'}
peerDependencies:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/logger': 3.0.1
'@docusaurus/mdx-loader': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/module-type-aliases': 3.0.1(react-dom@18.2.0)(react@18.2.0)
@@ -4223,7 +3986,7 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/mdx-loader': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils': 3.0.1(@docusaurus/types@3.0.1)
@@ -4257,7 +4020,7 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils': 3.0.1(@docusaurus/types@3.0.1)
fs-extra: 11.2.0
@@ -4290,7 +4053,7 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils-validation': 3.0.1(@docusaurus/types@3.0.1)
react: 18.2.0
@@ -4321,7 +4084,7 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils-validation': 3.0.1(@docusaurus/types@3.0.1)
'@types/gtag.js': 0.0.12
@@ -4353,7 +4116,7 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils-validation': 3.0.1(@docusaurus/types@3.0.1)
react: 18.2.0
@@ -4384,7 +4147,7 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/logger': 3.0.1
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils': 3.0.1(@docusaurus/types@3.0.1)
@@ -4413,25 +4176,25 @@ packages:
- webpack-cli
dev: false
- /@docusaurus/preset-classic@3.0.1(@algolia/client-search@4.21.0)(@types/react@18.2.43)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.3.3):
+ /@docusaurus/preset-classic@3.0.1(@algolia/client-search@4.22.0)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.3.3):
resolution: {integrity: sha512-il9m9xZKKjoXn6h0cRcdnt6wce0Pv1y5t4xk2Wx7zBGhKG1idu4IFHtikHlD0QPuZ9fizpXspXcTzjL5FXc1Gw==}
engines: {node: '>=18.0'}
peerDependencies:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/plugin-content-blog': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
- '@docusaurus/plugin-content-docs': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/plugin-content-docs': 3.0.1(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/plugin-content-pages': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/plugin-debug': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/plugin-google-analytics': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/plugin-google-gtag': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/plugin-google-tag-manager': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/plugin-sitemap': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
- '@docusaurus/theme-classic': 3.0.1(@types/react@18.2.43)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/theme-classic': 3.0.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/theme-common': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
- '@docusaurus/theme-search-algolia': 3.0.1(@algolia/client-search@4.21.0)(@docusaurus/types@3.0.1)(@types/react@18.2.43)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.3.3)
+ '@docusaurus/theme-search-algolia': 3.0.1(@algolia/client-search@4.22.0)(@docusaurus/types@3.0.1)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.3.3)
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -4478,18 +4241,18 @@ packages:
- supports-color
dev: false
- /@docusaurus/theme-classic@3.0.1(@types/react@18.2.43)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3):
+ /@docusaurus/theme-classic@3.0.1(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3):
resolution: {integrity: sha512-XD1FRXaJiDlmYaiHHdm27PNhhPboUah9rqIH0lMpBt5kYtsGjJzhqa27KuZvHLzOP2OEpqd2+GZ5b6YPq7Q05Q==}
engines: {node: '>=18.0'}
peerDependencies:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/mdx-loader': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/module-type-aliases': 3.0.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/plugin-content-blog': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
- '@docusaurus/plugin-content-docs': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/plugin-content-docs': 3.0.1(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/plugin-content-pages': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/theme-common': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/theme-translations': 3.0.1
@@ -4497,14 +4260,14 @@ packages:
'@docusaurus/utils': 3.0.1(@docusaurus/types@3.0.1)
'@docusaurus/utils-common': 3.0.1(@docusaurus/types@3.0.1)
'@docusaurus/utils-validation': 3.0.1(@docusaurus/types@3.0.1)
- '@mdx-js/react': 3.0.0(@types/react@18.2.43)(react@18.2.0)
- clsx: 2.0.0
+ '@mdx-js/react': 3.0.0(@types/react@18.2.46)(react@18.2.0)
+ clsx: 2.1.0
copy-text-to-clipboard: 3.2.0
infima: 0.2.0-alpha.43
lodash: 4.17.21
nprogress: 0.2.0
postcss: 8.4.32
- prism-react-renderer: 2.3.0(react@18.2.0)
+ prism-react-renderer: 2.3.1(react@18.2.0)
prismjs: 1.29.0
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -4540,16 +4303,16 @@ packages:
'@docusaurus/mdx-loader': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/module-type-aliases': 3.0.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/plugin-content-blog': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
- '@docusaurus/plugin-content-docs': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/plugin-content-docs': 3.0.1(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/plugin-content-pages': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/utils': 3.0.1(@docusaurus/types@3.0.1)
'@docusaurus/utils-common': 3.0.1(@docusaurus/types@3.0.1)
'@types/history': 4.7.11
'@types/react': 18.2.43
'@types/react-router-config': 5.0.11
- clsx: 2.0.0
+ clsx: 2.1.0
parse-numeric-range: 1.3.0
- prism-react-renderer: 2.3.0(react@18.2.0)
+ prism-react-renderer: 2.3.1(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
tslib: 2.6.2
@@ -4579,7 +4342,7 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/module-type-aliases': 3.0.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/theme-common': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
@@ -4601,250 +4364,93 @@ packages:
- supports-color
- typescript
- uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/theme-search-algolia@3.0.1(@algolia/client-search@4.21.0)(@docusaurus/types@3.0.1)(@types/react@18.2.43)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.3.3):
- resolution: {integrity: sha512-DDiPc0/xmKSEdwFkXNf1/vH1SzJPzuJBar8kMcBbDAZk/SAmo/4lf6GU2drou4Ae60lN2waix+jYWTWcJRahSA==}
- engines: {node: '>=18.0'}
- peerDependencies:
- react: ^18.0.0
- react-dom: ^18.0.0
- dependencies:
- '@docsearch/react': 3.5.2(@algolia/client-search@4.21.0)(@types/react@18.2.43)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)
- '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
- '@docusaurus/logger': 3.0.1
- '@docusaurus/plugin-content-docs': 3.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
- '@docusaurus/theme-common': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
- '@docusaurus/theme-translations': 3.0.1
- '@docusaurus/utils': 3.0.1(@docusaurus/types@3.0.1)
- '@docusaurus/utils-validation': 3.0.1(@docusaurus/types@3.0.1)
- algoliasearch: 4.21.0
- algoliasearch-helper: 3.16.0(algoliasearch@4.21.0)
- clsx: 2.0.0
- eta: 2.2.0
- fs-extra: 11.2.0
- lodash: 4.17.21
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- tslib: 2.6.2
- utility-types: 3.10.0
- transitivePeerDependencies:
- - '@algolia/client-search'
- - '@docusaurus/types'
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - '@types/react'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - search-insights
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/theme-translations@3.0.0:
- resolution: {integrity: sha512-p/H3+5LdnDtbMU+csYukA6601U1ld2v9knqxGEEV96qV27HsHfP63J9Ta2RBZUrNhQAgrwFzIc9GdDO8P1Baag==}
- engines: {node: '>=18.0'}
- dependencies:
- fs-extra: 11.2.0
- tslib: 2.6.2
- dev: false
-
- /@docusaurus/theme-translations@3.0.1:
- resolution: {integrity: sha512-6UrbpzCTN6NIJnAtZ6Ne9492vmPVX+7Fsz4kmp+yor3KQwA1+MCzQP7ItDNkP38UmVLnvB/cYk/IvehCUqS3dg==}
- engines: {node: '>=18.0'}
- dependencies:
- fs-extra: 11.2.0
- tslib: 2.6.2
-
- /@docusaurus/tsconfig@3.0.1:
- resolution: {integrity: sha512-hT2HCdNE3pWTzXV/7cSsowfmaOxXVOTFOXmkqaYjBWjaxjJ3FO0nHbdJ8rF6Da7PvWmIPbUekdP5gep1XCJ7Vg==}
- dev: true
-
- /@docusaurus/types@3.0.0(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-Qb+l/hmCOVemReuzvvcFdk84bUmUFyD0Zi81y651ie3VwMrXqC7C0E7yZLKMOsLj/vkqsxHbtkAuYMI89YzNzg==}
- peerDependencies:
- react: ^18.0.0
- react-dom: ^18.0.0
- dependencies:
- '@types/history': 4.7.11
- '@types/react': 18.2.43
- commander: 5.1.0
- joi: 17.11.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
- utility-types: 3.10.0
- webpack: 5.89.0
- webpack-merge: 5.10.0
- transitivePeerDependencies:
- - '@swc/core'
- - esbuild
- - uglify-js
- - webpack-cli
- dev: false
-
- /@docusaurus/types@3.0.1(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-plyX2iU1tcUsF46uQ01pAd4JhexR7n0iiQ5MSnBFX6M6NSJgDYdru/i1/YNPKOnQHBoXGLHv0dNT6OAlDWNjrg==}
- peerDependencies:
- react: ^18.0.0
- react-dom: ^18.0.0
- dependencies:
- '@types/history': 4.7.11
- '@types/react': 18.2.43
- commander: 5.1.0
- joi: 17.11.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
- utility-types: 3.10.0
- webpack: 5.89.0
- webpack-merge: 5.10.0
- transitivePeerDependencies:
- - '@swc/core'
- - esbuild
- - uglify-js
- - webpack-cli
-
- /@docusaurus/utils-common@3.0.0(@docusaurus/types@3.0.0):
- resolution: {integrity: sha512-7iJWAtt4AHf4PFEPlEPXko9LZD/dbYnhLe0q8e3GRK1EXZyRASah2lznpMwB3lLmVjq/FR6ZAKF+E0wlmL5j0g==}
- engines: {node: '>=18.0'}
- peerDependencies:
- '@docusaurus/types': '*'
- peerDependenciesMeta:
- '@docusaurus/types':
- optional: true
- dependencies:
- '@docusaurus/types': 3.0.0(react-dom@18.2.0)(react@18.2.0)
- tslib: 2.6.2
- dev: false
-
- /@docusaurus/utils-common@3.0.0(@docusaurus/types@3.0.1):
- resolution: {integrity: sha512-7iJWAtt4AHf4PFEPlEPXko9LZD/dbYnhLe0q8e3GRK1EXZyRASah2lznpMwB3lLmVjq/FR6ZAKF+E0wlmL5j0g==}
- engines: {node: '>=18.0'}
- peerDependencies:
- '@docusaurus/types': '*'
- peerDependenciesMeta:
- '@docusaurus/types':
- optional: true
- dependencies:
- '@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
- tslib: 2.6.2
- dev: false
-
- /@docusaurus/utils-common@3.0.1(@docusaurus/types@3.0.1):
- resolution: {integrity: sha512-W0AxD6w6T8g6bNro8nBRWf7PeZ/nn7geEWM335qHU2DDDjHuV4UZjgUGP1AQsdcSikPrlIqTJJbKzer1lRSlIg==}
- engines: {node: '>=18.0'}
- peerDependencies:
- '@docusaurus/types': '*'
- peerDependenciesMeta:
- '@docusaurus/types':
- optional: true
- dependencies:
- '@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
- tslib: 2.6.2
-
- /@docusaurus/utils-validation@3.0.0(@docusaurus/types@3.0.0):
- resolution: {integrity: sha512-MlIGUspB/HBW5CYgHvRhmkZbeMiUWKbyVoCQYvbGN8S19SSzVgzyy97KRpcjCOYYeEdkhmRCUwFBJBlLg3IoNQ==}
- engines: {node: '>=18.0'}
- dependencies:
- '@docusaurus/logger': 3.0.0
- '@docusaurus/utils': 3.0.0(@docusaurus/types@3.0.0)
- joi: 17.11.0
- js-yaml: 4.1.0
- tslib: 2.6.2
- transitivePeerDependencies:
- - '@docusaurus/types'
- - '@swc/core'
- - esbuild
- - supports-color
- - uglify-js
- - webpack-cli
- dev: false
-
- /@docusaurus/utils-validation@3.0.0(@docusaurus/types@3.0.1):
- resolution: {integrity: sha512-MlIGUspB/HBW5CYgHvRhmkZbeMiUWKbyVoCQYvbGN8S19SSzVgzyy97KRpcjCOYYeEdkhmRCUwFBJBlLg3IoNQ==}
- engines: {node: '>=18.0'}
- dependencies:
- '@docusaurus/logger': 3.0.0
- '@docusaurus/utils': 3.0.0(@docusaurus/types@3.0.1)
- joi: 17.11.0
- js-yaml: 4.1.0
- tslib: 2.6.2
- transitivePeerDependencies:
- - '@docusaurus/types'
- - '@swc/core'
- - esbuild
- - supports-color
- - uglify-js
+ - utf-8-validate
+ - vue-template-compiler
- webpack-cli
dev: false
- /@docusaurus/utils-validation@3.0.1(@docusaurus/types@3.0.1):
- resolution: {integrity: sha512-ujTnqSfyGQ7/4iZdB4RRuHKY/Nwm58IIb+41s5tCXOv/MBU2wGAjOHq3U+AEyJ8aKQcHbxvTKJaRchNHYUVUQg==}
+ /@docusaurus/theme-search-algolia@3.0.1(@algolia/client-search@4.22.0)(@docusaurus/types@3.0.1)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-DDiPc0/xmKSEdwFkXNf1/vH1SzJPzuJBar8kMcBbDAZk/SAmo/4lf6GU2drou4Ae60lN2waix+jYWTWcJRahSA==}
engines: {node: '>=18.0'}
+ peerDependencies:
+ react: ^18.0.0
+ react-dom: ^18.0.0
dependencies:
+ '@docsearch/react': 3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)
+ '@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/logger': 3.0.1
+ '@docusaurus/plugin-content-docs': 3.0.1(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/theme-common': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/theme-translations': 3.0.1
'@docusaurus/utils': 3.0.1(@docusaurus/types@3.0.1)
- joi: 17.11.0
- js-yaml: 4.1.0
+ '@docusaurus/utils-validation': 3.0.1(@docusaurus/types@3.0.1)
+ algoliasearch: 4.21.0
+ algoliasearch-helper: 3.16.0(algoliasearch@4.21.0)
+ clsx: 2.1.0
+ eta: 2.2.0
+ fs-extra: 11.2.0
+ lodash: 4.17.21
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
tslib: 2.6.2
+ utility-types: 3.10.0
transitivePeerDependencies:
+ - '@algolia/client-search'
- '@docusaurus/types'
+ - '@parcel/css'
- '@swc/core'
+ - '@swc/css'
+ - '@types/react'
+ - bufferutil
+ - csso
+ - debug
- esbuild
+ - eslint
+ - lightningcss
+ - search-insights
- supports-color
+ - typescript
- uglify-js
+ - utf-8-validate
+ - vue-template-compiler
- webpack-cli
+ dev: false
- /@docusaurus/utils@3.0.0(@docusaurus/types@3.0.0):
- resolution: {integrity: sha512-JwGjh5mtjG9XIAESyPxObL6CZ6LO/yU4OSTpq7Q0x+jN25zi/AMbvLjpSyZzWy+qm5uQiFiIhqFaOxvy+82Ekg==}
+ /@docusaurus/theme-translations@3.0.1:
+ resolution: {integrity: sha512-6UrbpzCTN6NIJnAtZ6Ne9492vmPVX+7Fsz4kmp+yor3KQwA1+MCzQP7ItDNkP38UmVLnvB/cYk/IvehCUqS3dg==}
engines: {node: '>=18.0'}
- peerDependencies:
- '@docusaurus/types': '*'
- peerDependenciesMeta:
- '@docusaurus/types':
- optional: true
dependencies:
- '@docusaurus/logger': 3.0.0
- '@docusaurus/types': 3.0.0(react-dom@18.2.0)(react@18.2.0)
- '@svgr/webpack': 6.5.1
- escape-string-regexp: 4.0.0
- file-loader: 6.2.0(webpack@5.89.0)
fs-extra: 11.2.0
- github-slugger: 1.5.0
- globby: 11.1.0
- gray-matter: 4.0.3
- jiti: 1.21.0
- js-yaml: 4.1.0
- lodash: 4.17.21
- micromatch: 4.0.5
- resolve-pathname: 3.0.0
- shelljs: 0.8.5
tslib: 2.6.2
- url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.89.0)
+
+ /@docusaurus/tsconfig@3.0.1:
+ resolution: {integrity: sha512-hT2HCdNE3pWTzXV/7cSsowfmaOxXVOTFOXmkqaYjBWjaxjJ3FO0nHbdJ8rF6Da7PvWmIPbUekdP5gep1XCJ7Vg==}
+ dev: true
+
+ /@docusaurus/types@3.0.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-plyX2iU1tcUsF46uQ01pAd4JhexR7n0iiQ5MSnBFX6M6NSJgDYdru/i1/YNPKOnQHBoXGLHv0dNT6OAlDWNjrg==}
+ peerDependencies:
+ react: ^18.0.0
+ react-dom: ^18.0.0
+ dependencies:
+ '@types/history': 4.7.11
+ '@types/react': 18.2.43
+ commander: 5.1.0
+ joi: 17.11.0
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
+ utility-types: 3.10.0
webpack: 5.89.0
+ webpack-merge: 5.10.0
transitivePeerDependencies:
- '@swc/core'
- esbuild
- - supports-color
- uglify-js
- webpack-cli
- dev: false
- /@docusaurus/utils@3.0.0(@docusaurus/types@3.0.1):
- resolution: {integrity: sha512-JwGjh5mtjG9XIAESyPxObL6CZ6LO/yU4OSTpq7Q0x+jN25zi/AMbvLjpSyZzWy+qm5uQiFiIhqFaOxvy+82Ekg==}
+ /@docusaurus/utils-common@3.0.1(@docusaurus/types@3.0.1):
+ resolution: {integrity: sha512-W0AxD6w6T8g6bNro8nBRWf7PeZ/nn7geEWM335qHU2DDDjHuV4UZjgUGP1AQsdcSikPrlIqTJJbKzer1lRSlIg==}
engines: {node: '>=18.0'}
peerDependencies:
'@docusaurus/types': '*'
@@ -4852,31 +4458,25 @@ packages:
'@docusaurus/types':
optional: true
dependencies:
- '@docusaurus/logger': 3.0.0
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
- '@svgr/webpack': 6.5.1
- escape-string-regexp: 4.0.0
- file-loader: 6.2.0(webpack@5.89.0)
- fs-extra: 11.2.0
- github-slugger: 1.5.0
- globby: 11.1.0
- gray-matter: 4.0.3
- jiti: 1.21.0
+ tslib: 2.6.2
+
+ /@docusaurus/utils-validation@3.0.1(@docusaurus/types@3.0.1):
+ resolution: {integrity: sha512-ujTnqSfyGQ7/4iZdB4RRuHKY/Nwm58IIb+41s5tCXOv/MBU2wGAjOHq3U+AEyJ8aKQcHbxvTKJaRchNHYUVUQg==}
+ engines: {node: '>=18.0'}
+ dependencies:
+ '@docusaurus/logger': 3.0.1
+ '@docusaurus/utils': 3.0.1(@docusaurus/types@3.0.1)
+ joi: 17.11.0
js-yaml: 4.1.0
- lodash: 4.17.21
- micromatch: 4.0.5
- resolve-pathname: 3.0.0
- shelljs: 0.8.5
tslib: 2.6.2
- url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.89.0)
- webpack: 5.89.0
transitivePeerDependencies:
+ - '@docusaurus/types'
- '@swc/core'
- esbuild
- supports-color
- uglify-js
- webpack-cli
- dev: false
/@docusaurus/utils@3.0.1(@docusaurus/types@3.0.1):
resolution: {integrity: sha512-TwZ33Am0q4IIbvjhUOs+zpjtD/mXNmLmEgeTGuRq01QzulLHuPhaBTTAC/DHu6kFx3wDgmgpAlaRuCHfTcXv8g==}
@@ -4919,20 +4519,20 @@ packages:
immediate: 3.3.0
dev: false
- /@easyops-cn/docusaurus-search-local@0.38.1(@docusaurus/theme-common@3.0.1)(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3):
- resolution: {integrity: sha512-8CG/hRxkuk8dPuhjHIOLUHMWQGTsva1c6G3S/TYIH8y04Offzl9dPqLoss7289/VxpeX2VAhon0dFTu/QUPREA==}
+ /@easyops-cn/docusaurus-search-local@0.40.1(@docusaurus/theme-common@3.0.1)(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-4HMFZMpKKdd5qq1nFB8cvrAkgzZ1kNxphVciI64YHtmDYGIthVGZVG6+Ci7AAhzCR+ixLJkYwtVekvuMLjr2ZQ==}
engines: {node: '>=12'}
peerDependencies:
'@docusaurus/theme-common': ^2 || ^3
react: ^16.14.0 || ^17 || ^18
react-dom: ^16.14.0 || 17 || ^18
dependencies:
- '@docusaurus/plugin-content-docs': 3.0.0(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
+ '@docusaurus/plugin-content-docs': 3.0.1(debug@4.3.4)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
'@docusaurus/theme-common': 3.0.1(@docusaurus/types@3.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
- '@docusaurus/theme-translations': 3.0.0
- '@docusaurus/utils': 3.0.0(@docusaurus/types@3.0.1)
- '@docusaurus/utils-common': 3.0.0(@docusaurus/types@3.0.1)
- '@docusaurus/utils-validation': 3.0.0(@docusaurus/types@3.0.1)
+ '@docusaurus/theme-translations': 3.0.1
+ '@docusaurus/utils': 3.0.1(@docusaurus/types@3.0.1)
+ '@docusaurus/utils-common': 3.0.1(@docusaurus/types@3.0.1)
+ '@docusaurus/utils-validation': 3.0.1(@docusaurus/types@3.0.1)
'@easyops-cn/autocomplete.js': 0.38.1
'@node-rs/jieba': 1.7.2
cheerio: 1.0.0-rc.12
@@ -4985,7 +4585,7 @@ packages:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
'@types/yargs': 17.0.32
chalk: 4.1.2
@@ -5058,14 +4658,14 @@ packages:
transitivePeerDependencies:
- supports-color
- /@mdx-js/react@3.0.0(@types/react@18.2.43)(react@18.2.0):
+ /@mdx-js/react@3.0.0(@types/react@18.2.46)(react@18.2.0):
resolution: {integrity: sha512-nDctevR9KyYFyV+m+/+S4cpzCWHqj+iHDHq3QrsWezcC+B17uZdIWgCguESUkwFhM3n/56KxWVE3V6EokrmONQ==}
peerDependencies:
'@types/react': '>=16'
react: '>=16'
dependencies:
'@types/mdx': 2.0.10
- '@types/react': 18.2.43
+ '@types/react': 18.2.46
react: 18.2.0
/@node-rs/jieba-android-arm-eabi@1.7.2:
@@ -5595,23 +5195,23 @@ packages:
resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
dependencies:
'@types/connect': 3.4.38
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
/@types/bonjour@3.5.13:
resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
dependencies:
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
/@types/connect-history-api-fallback@1.5.4:
resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
dependencies:
'@types/express-serve-static-core': 4.17.41
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
/@types/connect@3.4.38:
resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
dependencies:
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
/@types/d3-scale-chromatic@3.0.3:
resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==}
@@ -5655,7 +5255,7 @@ packages:
/@types/express-serve-static-core@4.17.41:
resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==}
dependencies:
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
'@types/qs': 6.9.10
'@types/range-parser': 1.2.7
'@types/send': 0.17.4
@@ -5692,7 +5292,7 @@ packages:
/@types/http-proxy@1.17.14:
resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
dependencies:
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
/@types/istanbul-lib-coverage@2.0.6:
resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
@@ -5739,14 +5339,14 @@ packages:
/@types/node-forge@1.3.10:
resolution: {integrity: sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==}
dependencies:
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
/@types/node@17.0.45:
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
dev: false
- /@types/node@20.10.4:
- resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==}
+ /@types/node@20.10.6:
+ resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==}
dependencies:
undici-types: 5.26.5
@@ -5765,14 +5365,6 @@ packages:
/@types/range-parser@1.2.7:
resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
- /@types/react-router-config@5.0.10:
- resolution: {integrity: sha512-Wn6c/tXdEgi9adCMtDwx8Q2vGty6TsPTc/wCQQ9kAlye8UqFxj0vGFWWuhywNfkwqth+SOgJxQTLTZukrqDQmQ==}
- dependencies:
- '@types/history': 4.7.11
- '@types/react': 18.2.43
- '@types/react-router': 5.1.20
- dev: false
-
/@types/react-router-config@5.0.11:
resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==}
dependencies:
@@ -5800,13 +5392,20 @@ packages:
'@types/scheduler': 0.16.8
csstype: 3.1.3
+ /@types/react@18.2.46:
+ resolution: {integrity: sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w==}
+ dependencies:
+ '@types/prop-types': 15.7.11
+ '@types/scheduler': 0.16.8
+ csstype: 3.1.3
+
/@types/retry@0.12.0:
resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
/@types/sax@1.2.7:
resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
dependencies:
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
dev: false
/@types/scheduler@0.16.8:
@@ -5816,7 +5415,7 @@ packages:
resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
dependencies:
'@types/mime': 1.3.5
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
/@types/serve-index@1.9.4:
resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
@@ -5828,12 +5427,12 @@ packages:
dependencies:
'@types/http-errors': 2.0.4
'@types/mime': 3.0.4
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
/@types/sockjs@0.3.36:
resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
dependencies:
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
/@types/unist@2.0.10:
resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
@@ -5844,7 +5443,7 @@ packages:
/@types/ws@8.5.10:
resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
dependencies:
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
/@types/yargs-parser@21.0.3:
resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
@@ -6131,10 +5730,6 @@ packages:
resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
hasBin: true
- /asynckit@0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
- dev: false
-
/at-least-node@1.0.0:
resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
engines: {node: '>= 4.0.0'}
@@ -6154,29 +5749,6 @@ packages:
postcss: 8.4.32
postcss-value-parser: 4.2.0
- /axios@1.6.2(debug@4.3.4):
- resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==}
- dependencies:
- follow-redirects: 1.15.3(debug@4.3.4)
- form-data: 4.0.0
- proxy-from-env: 1.1.0
- transitivePeerDependencies:
- - debug
- dev: false
-
- /babel-loader@9.1.3(@babel/core@7.23.5)(webpack@5.89.0):
- resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
- engines: {node: '>= 14.15.0'}
- peerDependencies:
- '@babel/core': ^7.12.0
- webpack: '>=5'
- dependencies:
- '@babel/core': 7.23.5
- find-cache-dir: 4.0.0
- schema-utils: 4.2.0
- webpack: 5.89.0
- dev: false
-
/babel-loader@9.1.3(@babel/core@7.23.6)(webpack@5.89.0):
resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
engines: {node: '>= 14.15.0'}
@@ -6219,19 +5791,6 @@ packages:
transitivePeerDependencies:
- supports-color
- /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.5):
- resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==}
- peerDependencies:
- '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/core': 7.23.5
- '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.5)
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.6):
resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==}
peerDependencies:
@@ -6267,18 +5826,6 @@ packages:
transitivePeerDependencies:
- supports-color
- /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.5):
- resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==}
- peerDependencies:
- '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- dependencies:
- '@babel/core': 7.23.5
- '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.5)
- core-js-compat: 3.34.0
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.6):
resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==}
peerDependencies:
@@ -6311,17 +5858,6 @@ packages:
transitivePeerDependencies:
- supports-color
- /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.5):
- resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==}
- peerDependencies:
- '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- dependencies:
- '@babel/core': 7.23.5
- '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.5)
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.6):
resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==}
peerDependencies:
@@ -6584,13 +6120,6 @@ packages:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
- /clean-css@5.3.2:
- resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==}
- engines: {node: '>= 10.0'}
- dependencies:
- source-map: 0.6.1
- dev: false
-
/clean-css@5.3.3:
resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
engines: {node: '>= 10.0'}
@@ -6626,8 +6155,8 @@ packages:
engines: {node: '>=6'}
dev: false
- /clsx@2.0.0:
- resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
+ /clsx@2.1.0:
+ resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
engines: {node: '>=6'}
/collapse-white-space@2.1.0:
@@ -6660,13 +6189,6 @@ packages:
resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
engines: {node: '>=10'}
- /combined-stream@1.0.8:
- resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
- engines: {node: '>= 0.8'}
- dependencies:
- delayed-stream: 1.0.0
- dev: false
-
/comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
@@ -6800,11 +6322,6 @@ packages:
resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==}
requiresBuild: true
- /core-js@3.33.3:
- resolution: {integrity: sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw==}
- requiresBuild: true
- dev: false
-
/core-js@3.34.0:
resolution: {integrity: sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==}
requiresBuild: true
@@ -6897,41 +6414,6 @@ packages:
semver: 7.5.4
webpack: 5.89.0
- /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.2)(webpack@5.89.0):
- resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
- engines: {node: '>= 14.15.0'}
- peerDependencies:
- '@parcel/css': '*'
- '@swc/css': '*'
- clean-css: '*'
- csso: '*'
- esbuild: '*'
- lightningcss: '*'
- webpack: ^5.0.0
- peerDependenciesMeta:
- '@parcel/css':
- optional: true
- '@swc/css':
- optional: true
- clean-css:
- optional: true
- csso:
- optional: true
- esbuild:
- optional: true
- lightningcss:
- optional: true
- dependencies:
- clean-css: 5.3.2
- cssnano: 5.1.15(postcss@8.4.32)
- jest-worker: 29.7.0
- postcss: 8.4.32
- schema-utils: 4.2.0
- serialize-javascript: 6.0.1
- source-map: 0.6.1
- webpack: 5.89.0
- dev: false
-
/css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(webpack@5.89.0):
resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
engines: {node: '>= 14.15.0'}
@@ -7502,11 +6984,6 @@ packages:
robust-predicates: 3.0.2
dev: false
- /delayed-stream@1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- engines: {node: '>=0.4.0'}
- dev: false
-
/depd@1.1.2:
resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
engines: {node: '>= 0.6'}
@@ -7801,7 +7278,7 @@ packages:
resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
engines: {node: '>= 0.8'}
dependencies:
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
require-like: 0.1.2
/eventemitter3@4.0.7:
@@ -8025,15 +7502,6 @@ packages:
resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
engines: {node: '>= 14.17'}
- /form-data@4.0.0:
- resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
- engines: {node: '>= 6'}
- dependencies:
- asynckit: 0.4.0
- combined-stream: 1.0.8
- mime-types: 2.1.35
- dev: false
-
/format@0.2.2:
resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
engines: {node: '>=0.4.x'}
@@ -8434,20 +7902,6 @@ packages:
/html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
- /html-webpack-plugin@5.5.3(webpack@5.89.0):
- resolution: {integrity: sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==}
- engines: {node: '>=10.13.0'}
- peerDependencies:
- webpack: ^5.20.0
- dependencies:
- '@types/html-minifier-terser': 6.1.0
- html-minifier-terser: 6.1.0
- lodash: 4.17.21
- pretty-error: 4.0.0
- tapable: 2.2.1
- webpack: 5.89.0
- dev: false
-
/html-webpack-plugin@5.5.4(webpack@5.89.0):
resolution: {integrity: sha512-3wNSaVVxdxcu0jd4FpQFoICdqgxs4zIQQvj+2yQKFfBOnLETQ6X5CDWdeasuGlSsooFlMkEioWDTqBv1wvw5Iw==}
engines: {node: '>=10.13.0'}
@@ -8815,7 +8269,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -8825,7 +8279,7 @@ packages:
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
engines: {node: '>= 10.13.0'}
dependencies:
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -8833,7 +8287,7 @@ packages:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@types/node': 20.10.4
+ '@types/node': 20.10.6
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -9891,11 +9345,6 @@ packages:
schema-utils: 4.2.0
webpack: 5.89.0
- /mini-svg-data-uri@1.4.4:
- resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
- hasBin: true
- dev: true
-
/minimalistic-assert@1.0.1:
resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
@@ -10254,10 +9703,6 @@ packages:
dependencies:
find-up: 3.0.0
- /plantuml-encoder@1.4.0:
- resolution: {integrity: sha512-sxMwpDw/ySY1WB2CE3+IdMuEcWibJ72DDOsXLkSmEaSzwEUaYBT6DWgOfBiHGCux4q433X6+OEFWjlVqp7gL6g==}
- dev: true
-
/postcss-calc@8.2.4(postcss@8.4.32):
resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
peerDependencies:
@@ -10644,13 +10089,13 @@ packages:
resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
engines: {node: '>=4'}
- /prism-react-renderer@2.3.0(react@18.2.0):
- resolution: {integrity: sha512-UYRg2TkVIaI6tRVHC5OJ4/BxqPUxJkJvq/odLT/ykpt1zGYXooNperUxQcCvi87LyRnR4nCh81ceOA+e7nrydg==}
+ /prism-react-renderer@2.3.1(react@18.2.0):
+ resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
peerDependencies:
react: '>=16.0.0'
dependencies:
'@types/prismjs': 1.26.3
- clsx: 2.0.0
+ clsx: 2.1.0
react: 18.2.0
/prismjs@1.29.0:
@@ -10687,10 +10132,6 @@ packages:
forwarded: 0.2.0
ipaddr.js: 1.9.1
- /proxy-from-env@1.1.0:
- resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
- dev: false
-
/punycode@1.4.1:
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
@@ -11169,12 +10610,6 @@ packages:
resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==}
dev: false
- /rxjs@7.8.1:
- resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
- dependencies:
- tslib: 2.6.2
- dev: false
-
/sade@1.8.1:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
engines: {node: '>=6'}
@@ -11973,20 +11408,6 @@ packages:
unist-util-stringify-position: 4.0.0
vfile-message: 4.0.2
- /wait-on@7.2.0(debug@4.3.4):
- resolution: {integrity: sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==}
- engines: {node: '>=12.0.0'}
- hasBin: true
- dependencies:
- axios: 1.6.2(debug@4.3.4)
- joi: 17.11.0
- lodash: 4.17.21
- minimist: 1.2.8
- rxjs: 7.8.1
- transitivePeerDependencies:
- - debug
- dev: false
-
/watchpack@2.4.0:
resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
engines: {node: '>=10.13.0'}
diff --git a/sidebars.js b/sidebars.js
index a23a55e..9839bc8 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -11,6 +11,7 @@
module.exports = {
tango: [{ type: 'autogenerated', dirName: 'tango' }],
+ api: [{ type: 'autogenerated', dirName: 'api' }],
scrcpy: [{ type: 'autogenerated', dirName: 'scrcpy' }],
internal: [{ type: 'autogenerated', dirName: 'internal' }],
};