From 644778cf63814c9f215c1cf6bdde9bdb6d92733f Mon Sep 17 00:00:00 2001 From: gudzpoz Date: Mon, 27 May 2024 23:39:45 +0800 Subject: [PATCH] Add more doc on LuaValue --- README.md | 6 +- docs/.vuepress/config.ts | 21 +- docs/c-api.md | 179 ++ docs/examples/java.md | 201 -- docs/index.md | 2 +- docs/java.md | 119 ++ docs/package.json | 11 +- docs/pnpm-lock.yaml | 1864 ++++++++++------- .../luajava/docs/JavaApiExampleTest.java | 61 + 9 files changed, 1514 insertions(+), 950 deletions(-) create mode 100644 docs/c-api.md delete mode 100644 docs/examples/java.md create mode 100644 docs/java.md diff --git a/README.md b/README.md index 54380411..d7dbd370 100644 --- a/README.md +++ b/README.md @@ -90,13 +90,13 @@ Optionally, you may include `party.iroiro.luajava:jsr223` to provide JSR 223 fun ### Examples Here is a simple example on how to correctly initialize new Lua instance. -This example will push `message` variable to Lua with value `Hello World from Lua`, then prints it using the Java `println`. +This example will push `message` variable to Lua with value `Hello World from Lua`, +and then print it using the Java `println`. ```java public static void main(String[] args) { try (Lua L = new Lua51()) { - L.push("Hello World from LuaJava"); - L.setGlobal("message"); + L.set("message", "Hello World from LuaJava"); L.run("java.import('java.lang.System').out:println(message)"); } } diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts index bd0c9444..4c6262d8 100644 --- a/docs/.vuepress/config.ts +++ b/docs/.vuepress/config.ts @@ -1,6 +1,10 @@ -import { defineUserConfig, defaultTheme } from 'vuepress' -const { registerComponentsPlugin } = require('@vuepress/plugin-register-components') -const { path } = require('@vuepress/utils') +import { defineUserConfig } from 'vuepress' +import { viteBundler } from '@vuepress/bundler-vite' +import { defaultTheme } from '@vuepress/theme-default' +import { registerComponentsPlugin } from '@vuepress/plugin-register-components' +import { path } from '@vuepress/utils' + +import markdownItFootnote from 'markdown-it-footnote' export default defineUserConfig({ lang: 'en-US', @@ -8,6 +12,7 @@ export default defineUserConfig({ description: 'Lua for Java', base: '/luajava/', head: [['link', { rel: 'icon', href: '/luajava/favicon.png' }]], + bundler: viteBundler(), theme: defaultTheme({ logo: '/lua-java.svg', repo: 'https://github.com/gudzpoz/luajava', @@ -44,10 +49,16 @@ export default defineUserConfig({ '/threadsafety.md', ] }, + { + text: 'Java API', + children: [ + '/java.md', + '/c-api.md', + ], + }, { text: 'Examples', children: [ - '/examples/java.md', '/examples/compat.md', '/examples/hello-world.md', '/examples/hello-world-mod.md', @@ -71,7 +82,7 @@ export default defineUserConfig({ }, }, extendsMarkdown (md) { - md.use(require('markdown-it-footnote')) + md.use(markdownItFootnote) }, plugins: [ registerComponentsPlugin({ diff --git a/docs/c-api.md b/docs/c-api.md new file mode 100644 index 00000000..2c146a2a --- /dev/null +++ b/docs/c-api.md @@ -0,0 +1,179 @@ +# Lua Stack-based C API + +The [`party.iroiro.luajava.Lua`](../javadoc/party/iroiro/luajava/Lua.html) interface +is a wrapper around the `lua_State` pointer. +Besides [`LuaValue`-relevant methods](./java.md), +it also provides the common parts from the C APIs of Lua 5.1 ~ 5.4 and LuaJIT. +(You are recommended to use [the `LuaValue` API](./java.md) though.) +You may refer to the Javadoc for more information. + +## `Lua` interface + +The Java API is mostly a wrapper around +[The Application Program Interface of Lua](https://www.lua.org/manual/5.1/manual.html). +Some common patterns are listed below to help you get started. + +### Setting a global value + +Lua API bases on a Lua stack. You need to push the value onto the stack before assigning it +to a global value with [`setGlobal`](../javadoc/party/iroiro/luajava/Lua.html#setGlobal(java.lang.String)). + + +@[code{112-120} java{6-7}](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +### Getting a global value + +Similarly, [`getGlobal`](../javadoc/party/iroiro/luajava/Lua.html#getGlobal(java.lang.String)) +pushes a value onto the stack, instead of returning it. + + +@[code{125-132} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +### Querying a table + +We need to make use of +[`getField`](../javadoc/party/iroiro/luajava/Lua.html#getField(int,java.lang.String)), +[`getTable`](../javadoc/party/iroiro/luajava/Lua.html#getTable(int)), +[`rawGet`](../javadoc/party/iroiro/luajava/Lua.html#rawGetI(int,int)) +or [`rawGetI`](../javadoc/party/iroiro/luajava/Lua.html#rawGetI(int,int)). + +:::: code-group +::: code-group-item getField + + +@[code{137-141} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: +::: code-group-item rawGetI + + +@[code{146-150} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: +::: code-group-item getTable + + +@[code{155-160} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: +::: code-group-item rawGet + + +@[code{165-170} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: +:::: + +### Updating a table + +Similarly, we have +[`setField`](../javadoc/party/iroiro/luajava/Lua.html#setField(int,java.lang.String)) +[`setTable`](../javadoc/party/iroiro/luajava/Lua.html#setTable(int)) +[`rawSet`](../javadoc/party/iroiro/luajava/Lua.html#rawSet(int)) +and [`rawSetI`](../javadoc/party/iroiro/luajava/Lua.html#rawSetI(int,int)). + +:::: code-group +::: code-group-item setField + + +@[code{175-179} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: +::: code-group-item rawSetI + + +@[code{184-188} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: +::: code-group-item setTable + + +@[code{193-198} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: +::: code-group-item rawSet + + +@[code{203-208} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: +:::: + +### Creating references + +A reference is a unique integer key: `table[reference] = referredValue`. Lua provides a convenient way to store values into a table, returning the generated reference key. + +See +[`ref()`](../javadoc/party/iroiro/luajava/Lua.html#ref()) +[`ref(int)`](../javadoc/party/iroiro/luajava/Lua.html#ref(int)) +[`refGet(int)`](../javadoc/party/iroiro/luajava/Lua.html#refGet(int)) +[`unref(int)`](../javadoc/party/iroiro/luajava/Lua.html#unref(int)) +and [`unRef(int, int)`](../javadoc/party/iroiro/luajava/Lua.html#unRef(int,int)) for more info. + +### Pre-compiled chunks + +According to the Lua reference manual: + +> Chunks can also be pre-compiled into binary form; +> see program luac for details. +> Programs in source and compiled forms are interchangeable; +> Lua automatically detects the file type and acts accordingly. + +Replacing Lua source files with pre-compiled chunks speeds up loading. +However, according to `luac` manual: + +> Precompiled chunks are *not* portable across different architectures. +> Moreover, the internal format of precompiled chunks is likely to change +> when a new version of Lua is released. Make sure you save the source +> files of all Lua programs that you precompile. + +Binary chunks compiled on one platform may not run on another. +Since we are using Java / JVM-based languages, this is absolutely not desirable. +To work around this, you may either: +1. Provide precompiled chunks for all your target platforms; +2. Or compile them at runtime for once and just reuse the compiled binaries. + +Here is a tiny example for the second approach: + +:::: code-group +::: code-group-item Use lua_dump + + +@[code{221-228} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: +::: code-group-item Use `string.dump` + + +@[code{233-240} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: +:::: + +Dumping functions involves some more Lua knowledge such as up-values and environments. +What these terms mean might differ between versions and is not a topic of this document. + +## `LuaNatives` interface + +The [`LuaNatives`](../javadoc/party/iroiro/luajava/LuaNatives.html) interface +exposes common JNI bindings of the C API of Lua 5.1 ~ Lua 5.4. +Use with caution. + +- Get an instance of `LuaValue` with [`LuaValue::getLuaNatives()`](../javadoc/party/iroiro/luajava/Lua.html#getLuaNatives()). +- Get the pointer to a `Lua` state with [`Lua::getPointer()`](../javadoc/party/iroiro/luajava/Lua.html#getPointer()). + +If you want to use C API functions specific to a Lua version, +simply cast them to the corresponding `LuaNatives` implementation: + +- [`Lua51Natives`](../javadoc/party/iroiro/luajava/lua51/Lua51Natives.html) +- [`Lua52Natives`](../javadoc/party/iroiro/luajava/lua52/Lua52Natives.html) +- [`Lua53Natives`](../javadoc/party/iroiro/luajava/lua53/Lua53Natives.html) +- [`Lua54Natives`](../javadoc/party/iroiro/luajava/lua54/Lua54Natives.html) +- [`LuaJitNatives`](../javadoc/party/iroiro/luajava/luajit/LuaJitNatives.html) +- [`LuaJNatives`](../javadoc/party/iroiro/luajava/luaj/LuaJNatives.html) + +::: tip +`LuaJNatives`, which uses LuaJ, a Lua implementation in Java, +is actually implemented in Java to provide a consistent API. +It should not differ too much from other implementations though. +::: diff --git a/docs/examples/java.md b/docs/examples/java.md deleted file mode 100644 index cc71edda..00000000 --- a/docs/examples/java.md +++ /dev/null @@ -1,201 +0,0 @@ -# Java API - -The Java API is mostly a wrapper around [The Application Program Interface of Lua](https://www.lua.org/manual/5.1/manual.html). - -## `LuaValue` interface - -The [`party.iroiro.luajava.value.LuaValue`](../javadoc/party/iroiro/luajava/value/LuaValue.html) interface is a wrapper around a Lua value. - - -@[code{16-22} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -Internally, for complex values (for example, Lua tables), it uses [references](#creating-references) to refer to the Lua value. - -### `LuaValue` interface features - -- A `Map` implementation to allow direct manipulation of Lua tables. -- Garbage collected references to avoid memory leaks on the Lua side. -- Proxy creation with [`LuaValue::toProxy`](../javadoc/party/iroiro/luajava/value/LuaValue.html#toProxy(java.lang.Class)) - -### Obtaining a `LuaValue` - -- [`Lua::get(java.lang.String)`](../javadoc/party/iroiro/luajava/Lua.html#get(java.lang.String)): - Returns a global variable of the supplied name as a `LuaValue` -- [`Lua::eval(java.lang.String)`](../javadoc/party/iroiro/luajava/Lua.html#eval(java.lang.String)): - Executes the supplied Lua code and returns the returned value or values. - - ::: tip - With `Lua::eval`, you will need an explicit Lua `return` statement to have `Lua::eval` return the values. - - - @[code{27-33} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - ::: - -## `Lua` interface - -The [`party.iroiro.luajava.Lua`](../javadoc/party/iroiro/luajava/Lua.html) interface is a wrapper around the `lua_State` pointer. It extracts the common parts from APIs of Lua 5.1 ~ 5.4 and LuaJIT. You may refer to the Javadoc for more information. - -Some common patterns are listed below to help you get started. - -### Closing the state - -Just like the C API, you will need to [`close`](../javadoc/party/iroiro/luajava/Lua.html#close()) the state after you are done with it: - - -@[code{39-46} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -::: warning -Currently the sub-threads (created with [`mainState.newThread()`](../javadoc/party/iroiro/luajava/Lua.html#newThread())) -are only cleaned up after you close the main state. -This shouldn't be a problem unless you have millions of sub-threads. -::: - -### Open libraries - -You need to explicitly open the libraries you use. - -- [openLibraries](../javadoc/party/iroiro/luajava/Lua.html#openLibraries()): - Opens all available libraries. - -- [openLibrary](../javadoc/party/iroiro/luajava/Lua.html#openLibrary(java.lang.String)): - Opens a specific library. - -### Setting a global value - -Lua API bases on a Lua stack. You need to push the value onto the stack before assigning it -to a global value with [`setGlobal`](../javadoc/party/iroiro/luajava/Lua.html#setGlobal(java.lang.String)). - - -@[code{51-59} java{6-7}](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -### Getting a global value - -Similarly, [`getGlobal`](../javadoc/party/iroiro/luajava/Lua.html#getGlobal(java.lang.String)) -pushes a value onto the stack, instead of returning it. - - -@[code{64-71} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -### Querying a table - -We need to make use of -[`getField`](../javadoc/party/iroiro/luajava/Lua.html#getField(int,java.lang.String)), -[`getTable`](../javadoc/party/iroiro/luajava/Lua.html#getTable(int)), -[`rawGet`](../javadoc/party/iroiro/luajava/Lua.html#rawGetI(int,int)) -or [`rawGetI`](../javadoc/party/iroiro/luajava/Lua.html#rawGetI(int,int)). - -:::: code-group -::: code-group-item getField - - -@[code{76-80} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -::: -::: code-group-item rawGetI - - -@[code{85-89} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -::: -::: code-group-item getTable - - -@[code{94-99} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -::: -::: code-group-item rawGet - - -@[code{104-109} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -::: -:::: - -### Updating a table - -Similarly, we have -[`setField`](../javadoc/party/iroiro/luajava/Lua.html#setField(int,java.lang.String)) -[`setTable`](../javadoc/party/iroiro/luajava/Lua.html#setTable(int)) -[`rawSet`](../javadoc/party/iroiro/luajava/Lua.html#rawSet(int)) -and [`rawSetI`](../javadoc/party/iroiro/luajava/Lua.html#rawSetI(int,int)). - -:::: code-group -::: code-group-item setField - - -@[code{114-118} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -::: -::: code-group-item rawSetI - - -@[code{123-127} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -::: -::: code-group-item setTable - - -@[code{132-137} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -::: -::: code-group-item rawSet - - -@[code{142-147} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -::: -:::: - -### Creating references - -A reference is a unique integer key: `table[reference] = referredValue`. Lua provides a convenient way to store values into a table, returning the generated reference key. - -See -[`ref()`](../javadoc/party/iroiro/luajava/Lua.html#ref()) -[`ref(int)`](../javadoc/party/iroiro/luajava/Lua.html#ref(int)) -[`refGet(int)`](../javadoc/party/iroiro/luajava/Lua.html#refGet(int)) -[`unref(int)`](../javadoc/party/iroiro/luajava/Lua.html#unref(int)) -and [`unRef(int, int)`](../javadoc/party/iroiro/luajava/Lua.html#unRef(int,int)) for more info. - -### Pre-compiled chunks - -According to the Lua reference manual: - -> Chunks can also be pre-compiled into binary form; -> see program luac for details. -> Programs in source and compiled forms are interchangeable; -> Lua automatically detects the file type and acts accordingly. - -Replacing Lua source files with pre-compiled chunks speeds up loading. -However, according to `luac` manual: - -> Precompiled chunks are *not* portable across different architectures. -> Moreover, the internal format of precompiled chunks is likely to change -> when a new version of Lua is released. Make sure you save the source -> files of all Lua programs that you precompile. - -Binary chunks compiled on one platform may not run on another. -Since we are using Java / JVM-based languages, this is absolutely not desirable. -To work around this, you may either: -1. Provide precompiled chunks for all your target platforms; -2. Or compile them at runtime for once and just reuse the compiled binaries. - -Here is a tiny example for the second approach: - -:::: code-group -::: code-group-item Use lua_dump - - -@[code{160-167} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -::: -::: code-group-item Use `string.dump` - - -@[code{172-179} java](../../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) - -::: -:::: - -Dumping functions involves some more Lua knowledge such as up-values and environments. -What these terms mean might differ between versions and is not a topic of this document. diff --git a/docs/index.md b/docs/index.md index a9962d1a..ae3628b4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -50,7 +50,7 @@ This library includes two sets of Java API: Additionally, if you are not satisfied with the API (which is an intersection between Lua 5.* versions), you can use the Lua C API bindings directly via [`Lua#getLuaNatives`](./javadoc/party/iroiro/luajava/Lua.html#getLuaNatives()). -2. A more Java-ish API. This requires significantly less Lua knowledge. See [Java API](./examples/java.md). +2. A more Java-ish API. This requires significantly less Lua knowledge. See [Java API](./java.md). ## Supported Lua Versions diff --git a/docs/java.md b/docs/java.md new file mode 100644 index 00000000..5bc36611 --- /dev/null +++ b/docs/java.md @@ -0,0 +1,119 @@ +# Java API + +The Java API is mostly designed around +the [`party.iroiro.luajava.Lua`](../javadoc/party/iroiro/luajava/Lua.html) interface +and the [`party.iroiro.luajava.value.LuaValue`](../javadoc/party/iroiro/luajava/value/LuaValue.html) interface. + +To start, simply acquire a `Lua` state with any of the following constructors: +- [`new Lua51()`](../javadoc/party/iroiro/luajava/lua51/Lua51.html) +- [`new Lua52()`](../javadoc/party/iroiro/luajava/lua52/Lua52.html) +- [`new Lua53()`](../javadoc/party/iroiro/luajava/lua53/Lua53.html) +- [`new Lua54()`](../javadoc/party/iroiro/luajava/lua54/Lua54.html) +- [`new LuaJit()`](../javadoc/party/iroiro/luajava/luajit/LuaJit.html) +- [`new LuaJ()`](../javadoc/party/iroiro/luajava/luaj/LuaJ.html) + +## Close the state + +Just like the C API, you will need to [`close`](../javadoc/party/iroiro/luajava/Lua.html#close()) the state after you are done with it: + + +@[code{100-107} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: warning +Currently the sub-threads (created with [`mainState.newThread()`](../javadoc/party/iroiro/luajava/Lua.html#newThread())) +are only cleaned up after you close the main state. +This shouldn't be a problem unless you have millions of sub-threads. +::: + +## Open libraries + +By default, the `Lua` state is only loaded with the [`java`](./api.md) library. +To use Lua libraries like `string`, `table` or `coroutine`, you will need to explicitly open the libraries: + +- [openLibraries](../javadoc/party/iroiro/luajava/Lua.html#openLibraries()): + Opens all available libraries. + +- [openLibrary](../javadoc/party/iroiro/luajava/Lua.html#openLibrary(java.lang.String)): + Opens a specific library. + +## Interact with Lua values + +To interact with Lua values, you can use the [`LuaValue`](#luavalue-interface) interface +or [make use of the Lua C API bindings directly](./c-api.md). + +## `LuaValue` interface + +The [`party.iroiro.luajava.value.LuaValue`](../javadoc/party/iroiro/luajava/value/LuaValue.html) interface +is a wrapper around a Lua value. +Internally, for complex values (for example, Lua tables), +it uses [references](#creating-references) to refer to the Lua value, +garbage collected after the `LuaValue` instance becomes a phantom reference. + + +@[code{17-23} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +[The JavaDoc of `LuaValue`](../javadoc/party/iroiro/luajava/value/LuaValue.html) should be quite self-explanatory. +The following texts list several commonly used patterns to help you get familiar with the API. + +### Get global variables + +Every `Lua` state implementation implements +the [`LuaThread`](../javadoc/party/iroiro/luajava/value/LuaThread.html) interface, +providing a convenient way to retrieve and use `LuaValues`: + +To obtain a `LuaValue` from a Lua global variable, +use [`Lua::get(String)`](../javadoc/party/iroiro/luajava/value/LuaThread.html#get(java.lang.String)): + + +@[code{28-30} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +### Set global variables + +To set a Lua global variable to any `LuaValue` or any arbitrary Java object, +use [`Lua::set(String, Object)`](../javadoc/party/iroiro/luajava/value/LuaThread.html#set(java.lang.String,java.lang.Object)): + + +@[code{35-44} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +### `LuaValues` from Java values + +To create a `LuaValue` from a simple Java value, +use [`Lua::from(boolean/double/long/String)`](../javadoc/party/iroiro/luajava/value/LuaThread.html#from(boolean)) +or `Lua::fromNull()`. + + +@[code{35-44} java{2}](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +### `LuaValues` from Lua evaluation + +To run Lua code and obtain the returned values, +use [`Lua::eval(String)`](../javadoc/party/iroiro/luajava/value/LuaThread.html#eval(java.lang.String)): + + +@[code{49-55} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +::: tip +With `Lua::eval`, you will need an explicit Lua `return` statement to have `Lua::eval` return the values. +::: + +### Manipulate Lua tables + +`LuaValue`s implements the Java `Map` interface and allow direct manipulation of Lua tables. + + +@[code{60-73} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +### Call Lua functions + +Use [`LuaValue::call(...)`](../javadoc/party/iroiro/luajava/value/LuaValue.html#call(java.lang.Object...)) +to call a function `LuaValue` and receive its return values as `LuaValue`s: + + +@[code{78-83} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) + +### Create Java proxies + +Create proxies with [`LuaValue::toProxy`](../javadoc/party/iroiro/luajava/value/LuaValue.html#toProxy(java.lang.Class)): + + +@[code{88-94} java](../example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java) diff --git a/docs/package.json b/docs/package.json index 39f7fb9c..de5b79c4 100644 --- a/docs/package.json +++ b/docs/package.json @@ -11,12 +11,15 @@ "author": "gudzpoz", "license": "MIT", "devDependencies": { - "@vuepress/client": "2.0.0-beta.48", - "@vuepress/plugin-external-link-icon": "2.0.0-beta.48", - "@vuepress/plugin-register-components": "2.0.0-beta.48", + "@vuepress/bundler-vite": "2.0.0-rc.12", + "@vuepress/client": "2.0.0-rc.12", + "@vuepress/plugin-external-link-icon": "2.0.0-rc.28", + "@vuepress/plugin-register-components": "2.0.0-rc.31", + "@vuepress/theme-default": "2.0.0-rc.32", + "@vuepress/utils": "2.0.0-rc.12", "asciinema-player": "^3.7.1", "markdown-it-footnote": "^3.0.3", "vue": "^3.4.27", - "vuepress": "2.0.0-beta.48" + "vuepress": "2.0.0-rc.12" } } diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index 647026aa..e93a914d 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -5,15 +5,24 @@ settings: excludeLinksFromLockfile: false devDependencies: + '@vuepress/bundler-vite': + specifier: 2.0.0-rc.12 + version: 2.0.0-rc.12 '@vuepress/client': - specifier: 2.0.0-beta.48 - version: 2.0.0-beta.48 + specifier: 2.0.0-rc.12 + version: 2.0.0-rc.12 '@vuepress/plugin-external-link-icon': - specifier: 2.0.0-beta.48 - version: 2.0.0-beta.48 + specifier: 2.0.0-rc.28 + version: 2.0.0-rc.28(vuepress@2.0.0-rc.12) '@vuepress/plugin-register-components': - specifier: 2.0.0-beta.48 - version: 2.0.0-beta.48 + specifier: 2.0.0-rc.31 + version: 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/theme-default': + specifier: 2.0.0-rc.32 + version: 2.0.0-rc.32(vuepress@2.0.0-rc.12) + '@vuepress/utils': + specifier: 2.0.0-rc.12 + version: 2.0.0-rc.12 asciinema-player: specifier: ^3.7.1 version: 3.7.1 @@ -24,47 +33,146 @@ devDependencies: specifier: ^3.4.27 version: 3.4.27 vuepress: - specifier: 2.0.0-beta.48 - version: 2.0.0-beta.48(@vuepress/client@2.0.0-beta.48)(vue@3.4.27) + specifier: 2.0.0-rc.12 + version: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) packages: - /@babel/helper-string-parser@7.24.1: - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + /@babel/helper-string-parser@7.24.6: + resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier@7.24.5: - resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} + /@babel/helper-validator-identifier@7.24.6: + resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} engines: {node: '>=6.9.0'} dev: true - /@babel/parser@7.24.5: - resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} + /@babel/parser@7.24.6: + resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 dev: true - /@babel/runtime@7.24.5: - resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} + /@babel/runtime@7.24.6: + resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true - /@babel/types@7.24.5: - resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} + /@babel/types@7.24.6: + resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-string-parser': 7.24.6 + '@babel/helper-validator-identifier': 7.24.6 to-fast-properties: 2.0.0 dev: true - /@esbuild/linux-loong64@0.14.54: - resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -72,10 +180,172 @@ packages: dev: true optional: true + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true + /@mdit-vue/plugin-component@2.1.3: + resolution: {integrity: sha512-9AG17beCgpEw/4ldo/M6Y/1Rh4E1bqMmr/rCkWKmCAxy9tJz3lzY7HQJanyHMJufwsb3WL5Lp7Om/aPcQTZ9SA==} + dependencies: + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + dev: true + + /@mdit-vue/plugin-frontmatter@2.1.3: + resolution: {integrity: sha512-KxsSCUVBEmn6sJcchSTiI5v9bWaoRxe68RBYRDGcSEY1GTnfQ5gQPMIsM48P4q1luLEIWurVGGrRu7u93//LDQ==} + dependencies: + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + gray-matter: 4.0.3 + markdown-it: 14.1.0 + dev: true + + /@mdit-vue/plugin-headers@2.1.3: + resolution: {integrity: sha512-AcL7a7LHQR3ISINhfjGJNE/bHyM0dcl6MYm1Sr//zF7ZgokPGwD/HhD7TzwmrKA9YNYCcO9P3QmF/RN9XyA6CA==} + dependencies: + '@mdit-vue/shared': 2.1.3 + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + dev: true + + /@mdit-vue/plugin-sfc@2.1.3: + resolution: {integrity: sha512-Ezl0dNvQNS639Yl4siXm+cnWtQvlqHrg+u+lnau/OHpj9Xh3LVap/BSQVugKIV37eR13jXXYf3VaAOP1fXPN+w==} + dependencies: + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + dev: true + + /@mdit-vue/plugin-title@2.1.3: + resolution: {integrity: sha512-XWVOQoZqczoN97xCDrnQicmXKoqwOjIymIm9HQnRXhHnYKOgJPW1CxSGhkcOGzvDU1v0mD/adojVyyj/s6ggWw==} + dependencies: + '@mdit-vue/shared': 2.1.3 + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + dev: true + + /@mdit-vue/plugin-toc@2.1.3: + resolution: {integrity: sha512-41Q+iXpLHZt0zJdApVwoVt7WF6za/xUjtjEPf90Z3KLzQO01TXsv48Xp9BsrFHPcPcm8tiZ0+O1/ICJO80V/MQ==} + dependencies: + '@mdit-vue/shared': 2.1.3 + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + dev: true + + /@mdit-vue/shared@2.1.3: + resolution: {integrity: sha512-27YI8b0VVZsAlNwaWoaOCWbr4eL8B04HxiYk/y2ktblO/nMcOEOLt4p0RjuobvdyUyjHvGOS09RKhq7qHm1CHQ==} + dependencies: + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + dev: true + + /@mdit-vue/types@2.1.0: + resolution: {integrity: sha512-TMBB/BQWVvwtpBdWD75rkZx4ZphQ6MN0O4QB2Bc0oI5PC2uE57QerhNxdRZ7cvBHE2iY2C+BUNUziCfJbjIRRA==} + dev: true + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -97,14 +367,171 @@ packages: fastq: 1.17.1 dev: true + /@rollup/rollup-android-arm-eabi@4.18.0: + resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.18.0: + resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.18.0: + resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.18.0: + resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.18.0: + resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.18.0: + resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.18.0: + resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.18.0: + resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-powerpc64le-gnu@4.18.0: + resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.18.0: + resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.18.0: + resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.18.0: + resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.18.0: + resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.18.0: + resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.18.0: + resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.18.0: + resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@sec-ant/readable-stream@0.4.1: + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + dev: true + + /@sindresorhus/merge-streams@2.3.0: + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + dev: true + + /@sindresorhus/merge-streams@4.0.0: + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + dev: true + /@types/debug@4.1.12: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: '@types/ms': 0.7.34 dev: true - /@types/fs-extra@9.0.13: - resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + + /@types/fs-extra@11.0.4: + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 20.12.12 + dev: true + + /@types/hash-sum@1.0.2: + resolution: {integrity: sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==} + dev: true + + /@types/jsonfile@6.1.4: + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: '@types/node': 20.12.12 dev: true @@ -113,8 +540,14 @@ packages: resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} dev: true - /@types/markdown-it@12.2.3: - resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} + /@types/markdown-it-emoji@3.0.1: + resolution: {integrity: sha512-cz1j8R35XivBqq9mwnsrP2fsz2yicLhB8+PDtuVkKOExwEdsVBNI+ROL3sbhtR5occRZ66vT0QnwFZCqdjf3pA==} + dependencies: + '@types/markdown-it': 14.1.1 + dev: true + + /@types/markdown-it@14.1.1: + resolution: {integrity: sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==} dependencies: '@types/linkify-it': 5.0.0 '@types/mdurl': 2.0.0 @@ -128,31 +561,41 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true + /@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + dev: true + /@types/node@20.12.12: resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} dependencies: undici-types: 5.26.5 dev: true - /@types/web-bluetooth@0.0.14: - resolution: {integrity: sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==} + /@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + dependencies: + '@types/node': 20.12.12 + dev: true + + /@types/web-bluetooth@0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} dev: true - /@vitejs/plugin-vue@2.3.4(vite@2.9.18)(vue@3.4.27): - resolution: {integrity: sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==} - engines: {node: '>=12.0.0'} + /@vitejs/plugin-vue@5.0.4(vite@5.2.11)(vue@3.4.27): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - vite: ^2.5.10 + vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 2.9.18 + vite: 5.2.11 vue: 3.4.27 dev: true /@vue/compiler-core@3.4.27: resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} dependencies: - '@babel/parser': 7.24.5 + '@babel/parser': 7.24.6 '@vue/shared': 3.4.27 entities: 4.5.0 estree-walker: 2.0.2 @@ -169,7 +612,7 @@ packages: /@vue/compiler-sfc@3.4.27: resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} dependencies: - '@babel/parser': 7.24.5 + '@babel/parser': 7.24.6 '@vue/compiler-core': 3.4.27 '@vue/compiler-dom': 3.4.27 '@vue/compiler-ssr': 3.4.27 @@ -226,326 +669,366 @@ packages: resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} dev: true - /@vuepress/bundler-vite@2.0.0-beta.48: - resolution: {integrity: sha512-ORT1cY2ScBWVuN/oCa5z0GqkbpdDmy6Pf0oe3GdiPA/w0kUbKeUPrWGDGHINqrSyvN0h5GbmLbvw6jSeUr2gAQ==} + /@vuepress/bundler-vite@2.0.0-rc.12: + resolution: {integrity: sha512-h6DSC4iITYU1JuM8UezcwnXZydyV3TNSMswHpNcdaLIo1gBlDOqYxW1zg86wjrxDJjg1t7JqGxBVSaqrBWv/5Q==} dependencies: - '@vitejs/plugin-vue': 2.3.4(vite@2.9.18)(vue@3.4.27) - '@vuepress/client': 2.0.0-beta.48 - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/shared': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 + '@vitejs/plugin-vue': 5.0.4(vite@5.2.11)(vue@3.4.27) + '@vuepress/client': 2.0.0-rc.12 + '@vuepress/core': 2.0.0-rc.12 + '@vuepress/shared': 2.0.0-rc.12 + '@vuepress/utils': 2.0.0-rc.12 autoprefixer: 10.4.19(postcss@8.4.38) - connect-history-api-fallback: 1.6.0 + connect-history-api-fallback: 2.0.0 postcss: 8.4.38 - rollup: 2.79.1 - vite: 2.9.18 + postcss-load-config: 5.1.0(postcss@8.4.38) + rollup: 4.18.0 + vite: 5.2.11 vue: 3.4.27 vue-router: 4.3.2(vue@3.4.27) transitivePeerDependencies: + - '@types/node' + - jiti - less + - lightningcss - sass - stylus + - sugarss - supports-color + - terser + - tsx - typescript dev: true - /@vuepress/cli@2.0.0-beta.48: - resolution: {integrity: sha512-nsLTNyQqKpwZXNrP0rJnDfvoBHm0KtdgLUIq5mfib9DTMic0ziaBUlfUvavcz18ovg3MwtLSUQbSjIsQskdaIw==} + /@vuepress/cli@2.0.0-rc.12: + resolution: {integrity: sha512-79GVDrfzA84aV1n3ML6mItRabLSBbEwyBuWf9/7SHT9YjIytjgR1FZ3urgUIvbeziiubFQsgNm2uWyDUhsKpSg==} hasBin: true dependencies: - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/shared': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 + '@vuepress/core': 2.0.0-rc.12 + '@vuepress/shared': 2.0.0-rc.12 + '@vuepress/utils': 2.0.0-rc.12 cac: 6.7.14 chokidar: 3.6.0 envinfo: 7.13.0 - esbuild: 0.14.54 + esbuild: 0.20.2 transitivePeerDependencies: - supports-color - typescript dev: true - /@vuepress/client@2.0.0-beta.48: - resolution: {integrity: sha512-XqTmoNqgJuO5IpiEQl3xZOFVZ/oXxCk5LNg+432/4hOTz92VdzOn1KNIQFmWxZaQ6s+8v6BimqRi0ZxMCwQ+Pg==} + /@vuepress/client@2.0.0-rc.12: + resolution: {integrity: sha512-S5xfPT/9XRpI5UAky5hS6GD9YcXkuWpLwsYTLgUVBIOgQ2MI+QyPPNr0fKHG2EXfJ7YfdSZBlcJ9BTfZ9jnyZg==} dependencies: '@vue/devtools-api': 6.6.1 - '@vuepress/shared': 2.0.0-beta.48 + '@vuepress/shared': 2.0.0-rc.12 vue: 3.4.27 vue-router: 4.3.2(vue@3.4.27) transitivePeerDependencies: - typescript dev: true - /@vuepress/core@2.0.0-beta.48: - resolution: {integrity: sha512-J9fge3oV5amAkx2g8TOPp8EpHyFgm6jy/FbCkYIGCBkKiERn91iz5aGCgoUF4O8AToLekbKpLwdZtNKF+wxAew==} + /@vuepress/core@2.0.0-rc.12: + resolution: {integrity: sha512-0NsrcqgnGAI1tMXBScueZMeAZLImMrbNU6QW55FDlt12IrV8/nZz/FDcBnUHn6+30PlsrzAX2jyXlCBM9Z+KxA==} dependencies: - '@vuepress/client': 2.0.0-beta.48 - '@vuepress/markdown': 2.0.0-beta.48 - '@vuepress/shared': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 - gray-matter: 4.0.3 - toml: 3.0.0 + '@vuepress/client': 2.0.0-rc.12 + '@vuepress/markdown': 2.0.0-rc.12 + '@vuepress/shared': 2.0.0-rc.12 + '@vuepress/utils': 2.0.0-rc.12 vue: 3.4.27 transitivePeerDependencies: - supports-color - typescript dev: true - /@vuepress/markdown@2.0.0-beta.48: - resolution: {integrity: sha512-gbrVAgJRsQ5hxJM7yyoNv5NbtlgxW/YVyfhFG28aac5gyQ6p3WTOJjpH//F1H431gDVqXS+q+Umhb/vH2QWalg==} + /@vuepress/helper@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-mnYN0nceTYXJRXsWv+//+UQaDUGooLmOfRxnqJOQ2G9ZMgaeKC1vjUWOiOjQ3SeG/qEoth+TXyy5GcuT6K4HaQ==} + peerDependencies: + vuepress: 2.0.0-rc.12 dependencies: - '@types/markdown-it': 12.2.3 - '@vuepress/shared': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 - markdown-it: 13.0.2 - markdown-it-anchor: 8.6.7(@types/markdown-it@12.2.3)(markdown-it@13.0.2) - markdown-it-emoji: 2.0.2 - mdurl: 1.0.1 + '@vue/shared': 3.4.27 + cheerio: 1.0.0-rc.12 + fflate: 0.8.2 + gray-matter: 4.0.3 + vue: 3.4.27 + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/markdown@2.0.0-rc.12: + resolution: {integrity: sha512-t4GwrN5LDy+uyGvCR/ds7Zj0teGPrM/NWQWmeWbTwdAOcd+IxPhPnfOlEFPzbEXIZER2GOpDSI19r7LochmobQ==} + dependencies: + '@mdit-vue/plugin-component': 2.1.3 + '@mdit-vue/plugin-frontmatter': 2.1.3 + '@mdit-vue/plugin-headers': 2.1.3 + '@mdit-vue/plugin-sfc': 2.1.3 + '@mdit-vue/plugin-title': 2.1.3 + '@mdit-vue/plugin-toc': 2.1.3 + '@mdit-vue/shared': 2.1.3 + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + '@types/markdown-it-emoji': 3.0.1 + '@vuepress/shared': 2.0.0-rc.12 + '@vuepress/utils': 2.0.0-rc.12 + markdown-it: 14.1.0 + markdown-it-anchor: 9.0.1(@types/markdown-it@14.1.1)(markdown-it@14.1.0) + markdown-it-emoji: 3.0.0 + mdurl: 2.0.0 transitivePeerDependencies: - supports-color dev: true - /@vuepress/plugin-active-header-links@2.0.0-beta.48: - resolution: {integrity: sha512-xNR3qTk9ECmYf5mvXhv2DpZu2VIxd6iVQ5Kvkw29zDjZc42uxo7QU9uIhAg6BOy0hNDFyn33DUxqlj7abpUf4w==} + /@vuepress/plugin-active-header-links@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-sw1mB9v7u7QOLGlR2hSMbpt4N+nWhlyewMoT7lVWLOlWRf3c1Ub15MejD5Meh5rew/bya7p61MlCjd/HsQK6MQ==} + peerDependencies: + vuepress: 2.0.0-rc.12 dependencies: - '@vuepress/client': 2.0.0-beta.48 - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 - ts-debounce: 4.0.0 + '@vueuse/core': 10.10.0(vue@3.4.27) vue: 3.4.27 - vue-router: 4.3.2(vue@3.4.27) + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) transitivePeerDependencies: - - supports-color + - '@vue/composition-api' - typescript dev: true - /@vuepress/plugin-back-to-top@2.0.0-beta.48: - resolution: {integrity: sha512-TYmtNnE+WoKbI1DnUzKGEprp5CVfvisuZCOi0coEA4g1jrSoEX6hgO4i+k8621ZBmpIdmIhI2+saoVdqN2duUw==} + /@vuepress/plugin-back-to-top@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-GWaGOgJyjib5+muxROQWy2W0nHGdbWvYaJqjj15+ylm877Sal4aAhQ5lQ5yNbQqq1fLUVefedg4LwKoc00xKdw==} + peerDependencies: + vuepress: 2.0.0-rc.12 dependencies: - '@vuepress/client': 2.0.0-beta.48 - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 - ts-debounce: 4.0.0 + '@vuepress/helper': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vueuse/core': 10.10.0(vue@3.4.27) vue: 3.4.27 + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) transitivePeerDependencies: - - supports-color + - '@vue/composition-api' - typescript dev: true - /@vuepress/plugin-container@2.0.0-beta.48: - resolution: {integrity: sha512-EdPXZRmhjbfZdTMGCzyj5G3xbZEjh2VWuFNbNYy5K195OnF+gO/GOJmIso1fnqmRdBgkHQkwdOqz/bZ6CuJP/g==} + /@vuepress/plugin-copy-code@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-NEyqochtol8jgIOzs0TDi8DDyl2syNyu3dm4Qvfgz72nPHg8FOp3AFK/THgxVfvEPUuOAv7uwwXaNoVtuEceAQ==} + peerDependencies: + vuepress: 2.0.0-rc.12 dependencies: - '@types/markdown-it': 12.2.3 - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/markdown': 2.0.0-beta.48 - '@vuepress/shared': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 - markdown-it: 13.0.2 - markdown-it-container: 3.0.0 + '@vuepress/helper': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vueuse/core': 10.10.0(vue@3.4.27) + vue: 3.4.27 + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) transitivePeerDependencies: - - supports-color + - '@vue/composition-api' - typescript dev: true - /@vuepress/plugin-external-link-icon@2.0.0-beta.48: - resolution: {integrity: sha512-RXENrUGpE8L32bsRxrxepRclvz/RVRA6Wj1NLTBweitxpbJukRNTsCX9mD/8KwQWc3Rkf+Zv+k6NDe5rDPoLeg==} + /@vuepress/plugin-external-link-icon@2.0.0-rc.28(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-VEEQEaMZzGOh8q1oR9u18gIBK7pbkCSx02vEN0k/cvRbfKbMdayEOTk4x+5Sy/A/fUcBPRbyw8O+/nDVzLn4pg==} + peerDependencies: + vuepress: 2.0.0-rc.9 dependencies: - '@vuepress/client': 2.0.0-beta.48 - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/markdown': 2.0.0-beta.48 - '@vuepress/shared': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 vue: 3.4.27 + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) transitivePeerDependencies: - - supports-color - typescript dev: true - /@vuepress/plugin-git@2.0.0-beta.48: - resolution: {integrity: sha512-ycNGAl+O1kHErsPt7uWGsR0S/o09b7JZnssM2WxWJPA9E+MtSgm6YzQcV8uK22GF2OCrwtv2z/6cNLkGz+NDfA==} + /@vuepress/plugin-git@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-zKSuyEQqSUcmV/kBTeyxb3g3WSvvIGJkKbzC65uVtWcFJvsplY1YdqmEvYauZN4N8JlXkQ6ciSGESlJ771oBoQ==} + peerDependencies: + vuepress: 2.0.0-rc.12 + dependencies: + execa: 9.1.0 + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) + dev: true + + /@vuepress/plugin-links-check@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-+0V16tj3bhB4ggS+5nJb/R+mSIN8HleJUdv/TlihbKv016jFx8Y6EfM5K0qUQq8wylPH4hHPXxTqzusZFEd1bA==} + peerDependencies: + vuepress: 2.0.0-rc.12 dependencies: - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 - execa: 5.1.1 + '@vuepress/helper': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) transitivePeerDependencies: - - supports-color - typescript dev: true - /@vuepress/plugin-medium-zoom@2.0.0-beta.48: - resolution: {integrity: sha512-CQIJo/ndHYjrOBwyzp4TP6AfwNGi1aae9BATlIyXl/xxFqX4hD7DN6JqYJ78tbgPMCU5I3H5UY1RNd6dfV4T+A==} + /@vuepress/plugin-markdown-container@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-9/0XhDkcL8/y4sLSWWz7cFVmc6Z5zks1IdJniw3079j43UNO9ih8Gix1hhc2cQcIH1vEQOlh5xyCQo12+QwapQ==} + peerDependencies: + vuepress: 2.0.0-rc.12 + dependencies: + '@types/markdown-it': 14.1.1 + markdown-it-container: 4.0.0 + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) + dev: true + + /@vuepress/plugin-medium-zoom@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-CgcjfcFErrubUIL1mnIVXegZySL/oK3OU1RrJ7ZNKP0zX9FsY86X4gljoPNIe0Dfa+e+93+TnyrwPv9a7FPkGg==} + peerDependencies: + vuepress: 2.0.0-rc.12 dependencies: - '@vuepress/client': 2.0.0-beta.48 - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 + '@vuepress/helper': 2.0.0-rc.31(vuepress@2.0.0-rc.12) medium-zoom: 1.1.0 vue: 3.4.27 + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) transitivePeerDependencies: - - supports-color - typescript dev: true - /@vuepress/plugin-nprogress@2.0.0-beta.48: - resolution: {integrity: sha512-qA6SZ/R9ufnMR6qQbTAqWGxtNOIzxrA3gopOaNuD8T+hGJVTnYeGwDFk2S30G5HuqgbECsYDQfomo6SOjyREZQ==} + /@vuepress/plugin-nprogress@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-ZTAR7gqk6yGvX1ZajK3HI33sCX9cxFlqLzSkbce25K91R564JwIwohR75WmCM6bxxniJ0uNIf4tfopJ6eBaMBQ==} + peerDependencies: + vuepress: 2.0.0-rc.12 dependencies: - '@vuepress/client': 2.0.0-beta.48 - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 vue: 3.4.27 - vue-router: 4.3.2(vue@3.4.27) + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) transitivePeerDependencies: - - supports-color - typescript dev: true - /@vuepress/plugin-palette@2.0.0-beta.48: - resolution: {integrity: sha512-zqWk2NV1gInPLqlHGgu7YO7dsRMJz28pMzcL7Z/SuI+rGu/MKqCSk6IBC/Fz7xO09XA+Ke8a+zxfVINnhpdH8Q==} + /@vuepress/plugin-palette@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-WjC0JBES5eE2c10qocg8u/toML9l4YvpKBgYBYrEgFfGs1KpaTNl9Tq348YO3gEjRqo84BsUxwcgkYyUFsh30w==} + peerDependencies: + vuepress: 2.0.0-rc.12 dependencies: - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 chokidar: 3.6.0 - transitivePeerDependencies: - - supports-color - - typescript + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) dev: true - /@vuepress/plugin-prismjs@2.0.0-beta.48: - resolution: {integrity: sha512-xTdk3DEJmzuzeRcm0fZfJFLs6/oN2T/sm+KtSh7whVbHcgEKFdj0vHkiWswp3bnNWE3FHUwO1UQq9K21zEwpUw==} + /@vuepress/plugin-prismjs@2.0.0-rc.32(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-on9OCH6eUi8xS2uw1zKR5mDnAtCDYglOeltSD8LHYXopHz3Lku87/n4GG/BisCunsoTXQ5fUt0xca/0jvtdQtg==} + peerDependencies: + vuepress: 2.0.0-rc.12 dependencies: - '@vuepress/core': 2.0.0-beta.48 prismjs: 1.29.0 + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) + dev: true + + /@vuepress/plugin-register-components@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-s6/HkXmN+2WUCBvWS+hLy082qYNupzJeDlCll265S6+CAUExZp8sfOopZX5IAfLrZQDR221KlAESn2rdJjdjbQ==} + peerDependencies: + vuepress: 2.0.0-rc.12 + dependencies: + chokidar: 3.6.0 + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) + dev: true + + /@vuepress/plugin-seo@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-KQuFPwfRFcg2T7OkE4poY8V2d0RnqrOYU5lek3HR3LmleCQvF5A5k5vlQ21h/owxvD6cZnjnNGPZadTRxzq/Ug==} + peerDependencies: + vuepress: 2.0.0-rc.12 + dependencies: + '@vuepress/helper': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) transitivePeerDependencies: - - supports-color - typescript dev: true - /@vuepress/plugin-register-components@2.0.0-beta.48: - resolution: {integrity: sha512-JufzTmhCt2vKvyh0Ogk+Y/Ql4OCROHaDrQxcX1uE/G3qpvR/5o7LGPDJlo/O0zNzEz5LXMZN3FtI3tFxV6hbxg==} + /@vuepress/plugin-sitemap@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-X5z57vqTETX9XdAGLdeNy0amd38wBOR1wMtrHTyVe6ZKC/gf1G9KOrTDiL1d1vsgoADUoBx4fcz8P+NytKbRWg==} + peerDependencies: + vuepress: 2.0.0-rc.12 dependencies: - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 - chokidar: 3.6.0 + '@vuepress/helper': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + sitemap: 8.0.0 + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) transitivePeerDependencies: - - supports-color - typescript dev: true - /@vuepress/plugin-theme-data@2.0.0-beta.48: - resolution: {integrity: sha512-7DH/tKiPg63wA77C9xNVF5Le5r1Apmd9mvz4NEeG0dhmuSPr456oM8aApE0s1XkY+vrmIXsTUjDK8+HvF8irUQ==} + /@vuepress/plugin-theme-data@2.0.0-rc.31(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-jyc5Lw4LNToT60+KEWZc79+mhQYSkmzv7OJMm4ZxdSYevn3FmvJdwT3QhgCtD+8ex2CnOp+suevC5E6OkLMtaQ==} + peerDependencies: + vuepress: 2.0.0-rc.12 dependencies: '@vue/devtools-api': 6.6.1 - '@vuepress/client': 2.0.0-beta.48 - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/shared': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 vue: 3.4.27 + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) transitivePeerDependencies: - - supports-color - typescript dev: true - /@vuepress/shared@2.0.0-beta.48: - resolution: {integrity: sha512-0i3lklFroOAtaHWfCjyvwBe8u5Jl668C/aMe9MWrsQI2qv40LiExgm82nNxc3tD2hoKKVpIxRvWaKXbJI1VXjg==} + /@vuepress/shared@2.0.0-rc.12: + resolution: {integrity: sha512-JPBygsjmtP9I4I7ESsQrebW6PXIxKktWAFWGDG85RCIiUFklEN792vEJ2XbDZvF5XaU/8H8fadApb6xqRB7Lww==} dependencies: - '@vue/shared': 3.4.27 + '@mdit-vue/types': 2.1.0 dev: true - /@vuepress/theme-default@2.0.0-beta.48: - resolution: {integrity: sha512-dJfqO1XW23es7d84B/iEOzKfwNtB0+UoG1PNOhDua2rPpDreOcO1sI2DntmOClYaRR/SB7zSdiSEynzRC5Nwrw==} + /@vuepress/theme-default@2.0.0-rc.32(vuepress@2.0.0-rc.12): + resolution: {integrity: sha512-Kc57FFGLmEV1OerLXvxN7zMQB+dbWeKQvfVpIy3EZyV/fXpGrNJWhmHefVdwAyIUhcJ9LRzJ69/4gpC6TIdzLw==} peerDependencies: - sass-loader: ^13.0.0 + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.12 peerDependenciesMeta: sass-loader: optional: true dependencies: - '@vuepress/client': 2.0.0-beta.48 - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/plugin-active-header-links': 2.0.0-beta.48 - '@vuepress/plugin-back-to-top': 2.0.0-beta.48 - '@vuepress/plugin-container': 2.0.0-beta.48 - '@vuepress/plugin-external-link-icon': 2.0.0-beta.48 - '@vuepress/plugin-git': 2.0.0-beta.48 - '@vuepress/plugin-medium-zoom': 2.0.0-beta.48 - '@vuepress/plugin-nprogress': 2.0.0-beta.48 - '@vuepress/plugin-palette': 2.0.0-beta.48 - '@vuepress/plugin-prismjs': 2.0.0-beta.48 - '@vuepress/plugin-theme-data': 2.0.0-beta.48 - '@vuepress/shared': 2.0.0-beta.48 - '@vuepress/utils': 2.0.0-beta.48 - '@vueuse/core': 8.9.4(vue@3.4.27) + '@vuepress/helper': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-active-header-links': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-back-to-top': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-copy-code': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-git': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-links-check': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-markdown-container': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-medium-zoom': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-nprogress': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-palette': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-prismjs': 2.0.0-rc.32(vuepress@2.0.0-rc.12) + '@vuepress/plugin-seo': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-sitemap': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vuepress/plugin-theme-data': 2.0.0-rc.31(vuepress@2.0.0-rc.12) + '@vueuse/core': 10.10.0(vue@3.4.27) sass: 1.77.2 vue: 3.4.27 - vue-router: 4.3.2(vue@3.4.27) + vuepress: 2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27) transitivePeerDependencies: - '@vue/composition-api' - - supports-color - typescript dev: true - /@vuepress/utils@2.0.0-beta.48: - resolution: {integrity: sha512-Y0e3j0SHkPHMWnNlZZOcdN3G4zhdTIs63Ywy4IULFsrpKAihRIUcSe4Yry6lCJyYCCS/gebwc1fQYAmPuNkijg==} + /@vuepress/utils@2.0.0-rc.12: + resolution: {integrity: sha512-ChItNTdPdpXZyMkxHWNcH6JWVBzOyKPYZvFkr8eWhOcT2uLEE8B8Ypkj6kvEzCsqmNWgj8iQzEa4hcUubO5vgg==} dependencies: '@types/debug': 4.1.12 - '@types/fs-extra': 9.0.13 - '@vuepress/shared': 2.0.0-beta.48 - chalk: 4.1.2 + '@types/fs-extra': 11.0.4 + '@types/hash-sum': 1.0.2 + '@vuepress/shared': 2.0.0-rc.12 debug: 4.3.4 - fs-extra: 10.1.0 - globby: 11.1.0 + fs-extra: 11.2.0 + globby: 14.0.1 hash-sum: 2.0.0 - ora: 5.4.1 + ora: 8.0.1 + picocolors: 1.0.1 upath: 2.0.1 transitivePeerDependencies: - supports-color dev: true - /@vueuse/core@8.9.4(vue@3.4.27): - resolution: {integrity: sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==} - peerDependencies: - '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue: - optional: true + /@vueuse/core@10.10.0(vue@3.4.27): + resolution: {integrity: sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==} dependencies: - '@types/web-bluetooth': 0.0.14 - '@vueuse/metadata': 8.9.4 - '@vueuse/shared': 8.9.4(vue@3.4.27) - vue: 3.4.27 + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.10.0 + '@vueuse/shared': 10.10.0(vue@3.4.27) vue-demi: 0.14.7(vue@3.4.27) + transitivePeerDependencies: + - '@vue/composition-api' + - vue dev: true - /@vueuse/metadata@8.9.4: - resolution: {integrity: sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==} + /@vueuse/metadata@10.10.0: + resolution: {integrity: sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug==} dev: true - /@vueuse/shared@8.9.4(vue@3.4.27): - resolution: {integrity: sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==} - peerDependencies: - '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue: - optional: true + /@vueuse/shared@10.10.0(vue@3.4.27): + resolution: {integrity: sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og==} dependencies: - vue: 3.4.27 vue-demi: 0.14.7(vue@3.4.27) + transitivePeerDependencies: + - '@vue/composition-api' + - vue dev: true - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} dev: true /anymatch@3.1.3: @@ -556,6 +1039,10 @@ packages: picomatch: 2.3.1 dev: true + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -566,15 +1053,10 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - /asciinema-player@3.7.1: resolution: {integrity: sha512-zDJteGjBzNQhHEnD0aG7GqV3E53sOyKb1WCxKNRm2PquU70Lq3s4xxb91wyDS0hBJ3J/TB8aY3y8gjGPN+T23A==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 solid-js: 1.8.17 dev: true @@ -586,7 +1068,7 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001621 + caniuse-lite: 1.0.30001623 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.1 @@ -594,21 +1076,13 @@ packages: postcss-value-parser: 4.2.0 dev: true - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true - /binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} dev: true - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true /braces@3.0.3: @@ -623,34 +1097,48 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001621 - electron-to-chromium: 1.4.782 + caniuse-lite: 1.0.30001623 + electron-to-chromium: 1.4.783 node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.0) dev: true - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} dev: true - /caniuse-lite@1.0.30001621: - resolution: {integrity: sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==} + /caniuse-lite@1.0.30001623: + resolution: {integrity: sha512-X/XhAVKlpIxWPpgRTnlgZssJrF0m6YtRA0QDWgsBNT12uZM6LPRydR7ip405Y3t1LamD8cP2TZFEDZFBf5ApcA==} dev: true - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + dev: true + + /cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + htmlparser2: 8.0.2 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 dev: true /chokidar@3.6.0: @@ -668,304 +1156,138 @@ packages: fsevents: 2.3.3 dev: true - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - restore-cursor: 3.1.0 + restore-cursor: 4.0.0 dev: true /cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - dev: true - - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: true - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - - /connect-history-api-fallback@1.6.0: - resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} - engines: {node: '>=0.8'} - dev: true - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - dev: true - - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: true - - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /electron-to-chromium@1.4.782: - resolution: {integrity: sha512-JUfU61e8tr+i5Y1FKXcKs+Xe+rJ+CEqm4cgv1kMihPE2EvYHmYyVr3Im/+1+Z5B29Be2EEGCZCwAc6Tazdl1Yg==} - dev: true - - /entities@3.0.1: - resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} - engines: {node: '>=0.12'} - dev: true - - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - dev: true - - /envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /esbuild-android-64@0.14.54: - resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64@0.14.54: - resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64@0.14.54: - resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64@0.14.54: - resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64@0.14.54: - resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64@0.14.54: - resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true + engines: {node: '>=6'} dev: true - optional: true - /esbuild-linux-32@0.14.54: - resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true + /connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} dev: true - optional: true - /esbuild-linux-64@0.14.54: - resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 dev: true - optional: true - /esbuild-linux-arm64@0.14.54: - resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 dev: true - optional: true - /esbuild-linux-arm@0.14.54: - resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} dev: true - optional: true - /esbuild-linux-mips64le@0.14.54: - resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} dev: true - optional: true - /esbuild-linux-ppc64le@0.14.54: - resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 dev: true - optional: true - /esbuild-linux-riscv64@0.14.54: - resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 dev: true - optional: true - /esbuild-linux-s390x@0.14.54: - resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true - optional: true - /esbuild-netbsd-64@0.14.54: - resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 dev: true - optional: true - /esbuild-openbsd-64@0.14.54: - resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 dev: true - optional: true - /esbuild-sunos-64@0.14.54: - resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true + /electron-to-chromium@1.4.783: + resolution: {integrity: sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==} dev: true - optional: true - /esbuild-windows-32@0.14.54: - resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} dev: true - optional: true - /esbuild-windows-64@0.14.54: - resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} dev: true - optional: true - /esbuild-windows-arm64@0.14.54: - resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true + /envinfo@7.13.0: + resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} + engines: {node: '>=4'} + hasBin: true dev: true - optional: true - /esbuild@0.14.54: - resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/linux-loong64': 0.14.54 - esbuild-android-64: 0.14.54 - esbuild-android-arm64: 0.14.54 - esbuild-darwin-64: 0.14.54 - esbuild-darwin-arm64: 0.14.54 - esbuild-freebsd-64: 0.14.54 - esbuild-freebsd-arm64: 0.14.54 - esbuild-linux-32: 0.14.54 - esbuild-linux-64: 0.14.54 - esbuild-linux-arm: 0.14.54 - esbuild-linux-arm64: 0.14.54 - esbuild-linux-mips64le: 0.14.54 - esbuild-linux-ppc64le: 0.14.54 - esbuild-linux-riscv64: 0.14.54 - esbuild-linux-s390x: 0.14.54 - esbuild-netbsd-64: 0.14.54 - esbuild-openbsd-64: 0.14.54 - esbuild-sunos-64: 0.14.54 - esbuild-windows-32: 0.14.54 - esbuild-windows-64: 0.14.54 - esbuild-windows-arm64: 0.14.54 + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 dev: true /escalade@3.1.2: @@ -983,19 +1305,22 @@ packages: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + /execa@9.1.0: + resolution: {integrity: sha512-lSgHc4Elo2m6bUDhc3Hl/VxvUDJdQWI40RZ4KMY9bKRc+hgMOT7II/JjbNDhI8VnMtrCb7U/fhpJIkLORZozWw==} + engines: {node: '>=18'} dependencies: + '@sindresorhus/merge-streams': 4.0.0 cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 7.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 5.3.0 + pretty-ms: 9.0.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.0.2 dev: true /extend-shallow@2.0.1: @@ -1022,6 +1347,17 @@ packages: reusify: 1.0.4 dev: true + /fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + dev: true + + /figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + dependencies: + is-unicode-supported: 2.0.0 + dev: true + /fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -1033,9 +1369,9 @@ packages: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true - /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 @@ -1050,13 +1386,17 @@ packages: dev: true optional: true - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} dev: true - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + /get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 dev: true /glob-parent@5.1.2: @@ -1066,16 +1406,16 @@ packages: is-glob: 4.0.3 dev: true - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + /globby@14.0.1: + resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} + engines: {node: '>=18'} dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 + '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 dev: true /graceful-fs@4.2.11: @@ -1092,29 +1432,22 @@ packages: strip-bom-string: 1.0.0 dev: true - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true - /hash-sum@2.0.0: resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} dev: true - /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} dependencies: - function-bind: 1.1.2 - dev: true - - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 dev: true - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + /human-signals@7.0.0: + resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==} + engines: {node: '>=18.18.0'} dev: true /ignore@5.3.1: @@ -1126,10 +1459,6 @@ packages: resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} dev: true - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -1137,12 +1466,6 @@ packages: binary-extensions: 2.3.0 dev: true - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.2 - dev: true - /is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -1160,9 +1483,9 @@ packages: is-extglob: 2.1.1 dev: true - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} dev: true /is-number@7.0.0: @@ -1170,14 +1493,24 @@ packages: engines: {node: '>=0.12.0'} dev: true - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} dev: true - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + /is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + dev: true + + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: true + + /is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} dev: true /isexe@2.0.0: @@ -1205,18 +1538,23 @@ packages: engines: {node: '>=0.10.0'} dev: true - /linkify-it@4.0.1: - resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + dev: true + + /linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} dependencies: - uc.micro: 1.0.6 + uc.micro: 2.1.0 dev: true - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + /log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 + chalk: 5.3.0 + is-unicode-supported: 1.3.0 dev: true /magic-string@0.30.10: @@ -1225,51 +1563,48 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /markdown-it-anchor@8.6.7(@types/markdown-it@12.2.3)(markdown-it@13.0.2): - resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} + /markdown-it-anchor@9.0.1(@types/markdown-it@14.1.1)(markdown-it@14.1.0): + resolution: {integrity: sha512-cBt7aAzmkfX8X7FqAe8EBryiKmToXgMQEEMqkXzWCm0toDtfDYIGboKeTKd8cpNJArJtutrf+977wFJTsvNGmQ==} peerDependencies: '@types/markdown-it': '*' markdown-it: '*' dependencies: - '@types/markdown-it': 12.2.3 - markdown-it: 13.0.2 + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 dev: true - /markdown-it-container@3.0.0: - resolution: {integrity: sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==} + /markdown-it-container@4.0.0: + resolution: {integrity: sha512-HaNccxUH0l7BNGYbFbjmGpf5aLHAMTinqRZQAEQbMr2cdD3z91Q6kIo1oUn1CQndkT03jat6ckrdRYuwwqLlQw==} dev: true - /markdown-it-emoji@2.0.2: - resolution: {integrity: sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==} + /markdown-it-emoji@3.0.0: + resolution: {integrity: sha512-+rUD93bXHubA4arpEZO3q80so0qgoFJEKRkRbjKX8RTdca89v2kfyF+xR3i2sQTwql9tpPZPOQN5B+PunspXRg==} dev: true /markdown-it-footnote@3.0.3: resolution: {integrity: sha512-YZMSuCGVZAjzKMn+xqIco9d1cLGxbELHZ9do/TSYVzraooV8ypsppKNmUJ0fVH5ljkCInQAtFpm8Rb3eXSrt5w==} dev: true - /markdown-it@13.0.2: - resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==} + /markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true dependencies: argparse: 2.0.1 - entities: 3.0.1 - linkify-it: 4.0.1 - mdurl: 1.0.1 - uc.micro: 1.0.6 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 dev: true - /mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + /mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} dev: true /medium-zoom@1.1.0: resolution: {integrity: sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==} dev: true - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1312,11 +1647,17 @@ packages: engines: {node: '>=0.10.0'} dev: true - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - path-key: 3.1.1 + path-key: 4.0.0 + dev: true + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 dev: true /onetime@5.1.2: @@ -1326,19 +1667,37 @@ packages: mimic-fn: 2.1.0 dev: true - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + /ora@8.0.1: + resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==} + engines: {node: '>=18'} dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 + chalk: 5.3.0 + cli-cursor: 4.0.0 cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 + is-interactive: 2.0.0 + is-unicode-supported: 2.0.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.1.0 + strip-ansi: 7.1.0 + dev: true + + /parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + dev: true + + /parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 + dev: true + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 dev: true /path-key@3.1.1: @@ -1346,13 +1705,14 @@ packages: engines: {node: '>=8'} dev: true - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} dev: true - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + /path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} dev: true /picocolors@1.0.1: @@ -1364,6 +1724,26 @@ packages: engines: {node: '>=8.6'} dev: true + /postcss-load-config@5.1.0(postcss@8.4.38): + resolution: {integrity: sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + dependencies: + lilconfig: 3.1.1 + postcss: 8.4.38 + yaml: 2.4.2 + dev: true + /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true @@ -1377,22 +1757,25 @@ packages: source-map-js: 1.2.0 dev: true + /pretty-ms@9.0.0: + resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} + engines: {node: '>=18'} + dependencies: + parse-ms: 4.0.0 + dev: true + /prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} dev: true - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} dev: true - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true /readdirp@3.6.0: @@ -1406,18 +1789,9 @@ packages: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: true - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 @@ -1428,19 +1802,29 @@ packages: engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rollup@2.77.3: - resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} - engines: {node: '>=10.0.0'} + /rollup@4.18.0: + resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + dependencies: + '@types/estree': 1.0.5 optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.18.0 + '@rollup/rollup-android-arm64': 4.18.0 + '@rollup/rollup-darwin-arm64': 4.18.0 + '@rollup/rollup-darwin-x64': 4.18.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 + '@rollup/rollup-linux-arm-musleabihf': 4.18.0 + '@rollup/rollup-linux-arm64-gnu': 4.18.0 + '@rollup/rollup-linux-arm64-musl': 4.18.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 + '@rollup/rollup-linux-riscv64-gnu': 4.18.0 + '@rollup/rollup-linux-s390x-gnu': 4.18.0 + '@rollup/rollup-linux-x64-gnu': 4.18.0 + '@rollup/rollup-linux-x64-musl': 4.18.0 + '@rollup/rollup-win32-arm64-msvc': 4.18.0 + '@rollup/rollup-win32-ia32-msvc': 4.18.0 + '@rollup/rollup-win32-x64-msvc': 4.18.0 fsevents: 2.3.3 dev: true @@ -1450,10 +1834,6 @@ packages: queue-microtask: 1.2.3 dev: true - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true - /sass@1.77.2: resolution: {integrity: sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==} engines: {node: '>=14.0.0'} @@ -1464,6 +1844,10 @@ packages: source-map-js: 1.2.0 dev: true + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + dev: true + /section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -1502,9 +1886,25 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /sitemap@8.0.0: + resolution: {integrity: sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==} + engines: {node: '>=14.0.0', npm: '>=6.0.0'} + hasBin: true + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.3.0 + dev: true + + /slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} dev: true /solid-js@1.8.17: @@ -1524,17 +1924,25 @@ packages: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + /stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + dev: true + + /string-width@7.1.0: + resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} + engines: {node: '>=18'} dependencies: - safe-buffer: 5.2.1 + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 dev: true - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} dependencies: - ansi-regex: 5.0.1 + ansi-regex: 6.0.1 dev: true /strip-bom-string@1.0.0: @@ -1542,21 +1950,9 @@ packages: engines: {node: '>=0.10.0'} dev: true - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + /strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} dev: true /to-fast-properties@2.0.0: @@ -1571,22 +1967,19 @@ packages: is-number: 7.0.0 dev: true - /toml@3.0.0: - resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} - dev: true - - /ts-debounce@4.0.0: - resolution: {integrity: sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg==} - dev: true - - /uc.micro@1.0.6: - resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} + /uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} dev: true /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true + /unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + dev: true + /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -1608,30 +2001,37 @@ packages: picocolors: 1.0.1 dev: true - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true - - /vite@2.9.18: - resolution: {integrity: sha512-sAOqI5wNM9QvSEE70W3UGMdT8cyEn0+PmJMTFvTB8wB0YbYUWw3gUbY62AOyrXosGieF2htmeLATvNxpv/zNyQ==} - engines: {node: '>=12.2.0'} + /vite@5.2.11: + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 less: '*' + lightningcss: ^1.21.0 sass: '*' stylus: '*' + sugarss: '*' + terser: ^5.4.0 peerDependenciesMeta: + '@types/node': + optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: optional: true + sugarss: + optional: true + terser: + optional: true dependencies: - esbuild: 0.14.54 + esbuild: 0.20.2 postcss: 8.4.38 - resolve: 1.22.8 - rollup: 2.77.3 + rollup: 4.18.0 optionalDependencies: fsevents: 2.3.3 dev: true @@ -1675,50 +2075,31 @@ packages: '@vue/shared': 3.4.27 dev: true - /vuepress-vite@2.0.0-beta.48(@vuepress/client@2.0.0-beta.48)(vue@3.4.27): - resolution: {integrity: sha512-1TKEXg26W7VlTBU9J6BcJTW/NFtzkAveM33jccVs6HieYgvK7lyTpbhs5eRu9fUWawGR8ULa+b5kdk0dSLpjew==} + /vuepress@2.0.0-rc.12(@vuepress/bundler-vite@2.0.0-rc.12)(vue@3.4.27): + resolution: {integrity: sha512-yYAt5le/J8mbyxYAbp/jMg7GMVDYKMRxjWfunJrSYMwqzvrcPCSZZkEgDyOD8AlPIzsuieXROytytvDn/5M4wQ==} + engines: {node: '>=18.16.0'} hasBin: true peerDependencies: - '@vuepress/client': ^2.0.0-beta.42 - vue: ^3.2.36 - dependencies: - '@vuepress/bundler-vite': 2.0.0-beta.48 - '@vuepress/cli': 2.0.0-beta.48 - '@vuepress/client': 2.0.0-beta.48 - '@vuepress/core': 2.0.0-beta.48 - '@vuepress/theme-default': 2.0.0-beta.48 - vue: 3.4.27 - transitivePeerDependencies: - - '@vue/composition-api' - - less - - sass - - sass-loader - - stylus - - supports-color - - typescript - dev: true - - /vuepress@2.0.0-beta.48(@vuepress/client@2.0.0-beta.48)(vue@3.4.27): - resolution: {integrity: sha512-m1CzjgMrHdrOzNr3eMoFrdqHlp3wK23TBIHZJtm9tDnwg4OF59FG6y6gGoBLo+zpfzVOwi/V8FR13ehiQwG/3A==} - hasBin: true + '@vuepress/bundler-vite': 2.0.0-rc.12 + '@vuepress/bundler-webpack': 2.0.0-rc.12 + vue: ^3.4.0 + peerDependenciesMeta: + '@vuepress/bundler-vite': + optional: true + '@vuepress/bundler-webpack': + optional: true dependencies: - vuepress-vite: 2.0.0-beta.48(@vuepress/client@2.0.0-beta.48)(vue@3.4.27) + '@vuepress/bundler-vite': 2.0.0-rc.12 + '@vuepress/cli': 2.0.0-rc.12 + '@vuepress/client': 2.0.0-rc.12 + '@vuepress/core': 2.0.0-rc.12 + '@vuepress/markdown': 2.0.0-rc.12 + '@vuepress/shared': 2.0.0-rc.12 + '@vuepress/utils': 2.0.0-rc.12 + vue: 3.4.27 transitivePeerDependencies: - - '@vue/composition-api' - - '@vuepress/client' - - less - - sass - - sass-loader - - stylus - supports-color - typescript - - vue - dev: true - - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - dependencies: - defaults: 1.0.4 dev: true /which@2.0.2: @@ -1728,3 +2109,14 @@ packages: dependencies: isexe: 2.0.0 dev: true + + /yaml@2.4.2: + resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} + engines: {node: '>= 14'} + hasBin: true + dev: true + + /yoctocolors@2.0.2: + resolution: {integrity: sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==} + engines: {node: '>=18'} + dev: true diff --git a/example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java b/example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java index 1c5ad3e7..16c88070 100644 --- a/example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java +++ b/example/src/test/java/party/iroiro/luajava/docs/JavaApiExampleTest.java @@ -6,6 +6,7 @@ import party.iroiro.luajava.lua54.Lua54; import party.iroiro.luajava.value.LuaValue; +import java.math.BigDecimal; import java.nio.ByteBuffer; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -22,6 +23,27 @@ public void luaValueTest() { } } + @Test + public void luaValueFromGlobalTest() { +try (Lua L = new Lua54()) { + assertEquals("Lua 5.4", L.get("_VERSION").toString()); +} + } + + @Test + public void setGlobalTest() { +try (Lua L = new Lua54()) { + LuaValue value = L.from(1); + L.set("a", value); // LuaValue + L.set("b", 2); // Java Integer + L.set("c", new BigDecimal(3)); // Any Java object + assertEquals( + 6, + L.eval("return a + b + c:longValue()")[0].toInteger() + ); +} + } + @Test public void luaValueEvalTest() { try (Lua L = new Lua54()) { @@ -33,6 +55,45 @@ public void luaValueEvalTest() { } } + @Test + public void luaValueTableTest() { +try (Lua L = new Lua54()) { + L.run("t = { text = 'abc', children = { 'a', 'b', 'c' } }"); + LuaValue table = L.eval("return t")[0]; + // Get-calls return LuaValues. + assertEquals("abc", table.get("text").toString()); + LuaValue children = table.get("children"); + // Indices are 1-based. + assertEquals("a", children.get(1).toString()); + assertEquals(3, children.size()); + // Set-calls accept LuaValues or any Java object. + children.set(4, "d"); + // Changes are done in the Lua side. + L.run("assert(t.children[4] == 'd')"); +} + } + + @Test + public void luaValueCallTest() { +try (Lua L = new Lua54()) { + L.openLibrary("string"); + LuaValue gsub = L.eval("return string.gsub")[0]; + LuaValue luaJava = gsub.call("Lua", "a", "aJava")[0]; + assertEquals("LuaJava", luaJava.toString()); +} + } + + @Test + public void luaValueProxyTest() throws InterruptedException { +try (Lua L = new Lua54()) { + LuaValue runnable = L.eval("return { run = function() print('running...') end }")[0]; + Runnable r = runnable.toProxy(Runnable.class); + Thread t = new Thread(r); + t.start(); + t.join(); +} + } + @SuppressWarnings({"EmptyTryBlock", "unused"}) @Test public void closableTest() {