diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..8567aa0
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# REF: https://docs.github.com/zh/get-started/getting-started-with-git/configuring-git-to-handle-line-endings
+* text eol=lf
diff --git a/.gitignore b/.gitignore
index 9f11b75..3013fc9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
.idea/
+node_modules/
+docs/html/
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100644
index 0000000..d284e89
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,8 @@
+pnpm run docs:build
+pnpm run docs:format
+
+pnpm run format
+
+git add ./docs
+
+exit 0
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8e95011..dd4ff42 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,12 @@
+
+
# Changelog
-## v1.0.3 2024-06
+- Add `eslint` formatting configuration
+- Add `cSpell` spelling check configuration
+- Add `typedoc` documentation generation configuration
+- Add documentation
+- Adjust `typedoc-plugin-markdown` configuration
## v1.0.2 2024-06-04
@@ -70,7 +76,7 @@
## 0.8.7 2023-10-24
* [Deprecated `loaded-protyle` use `loaded-protyle-static` instead](https://github.com/siyuan-note/siyuan/issues/9468)
-* [Fix event defail for `loaded-protyle`](https://github.com/siyuan-note/petal/pull/18)
+* [Fix event defined for `loaded-protyle`](https://github.com/siyuan-note/petal/pull/18)
* [Add plugin event bus `paste`](https://github.com/siyuan-note/siyuan/issues/9452)
## 0.8.6 2023-10-17
diff --git a/README.md b/README.md
index a424bc3..4ca6ae1 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,13 @@
# SiYuan Plugin API
-Here is the API declaration of SiYuan Plugin System, usages please refer to [SiYuan plugin sample](https://github.com/siyuan-note/plugin-sample).
+Here is the Plugin API declaration of [SiYuan](https://github.com/siyuan-note/siyuan), usages please refer to [SiYuan plugin sample](https://github.com/siyuan-note/plugin-sample).
+
+## Installation
+
+```shell
+> npm install siyuan --save-dev
+```
+
+## Documentation
+
+Please visit the [petal/docs/markdown at main · siyuan-note/petal](https://github.com/siyuan-note/petal/tree/main/docs/markdown) for comprehensive documentation.
diff --git a/cspell.config.yaml b/cspell.config.yaml
new file mode 100644
index 0000000..8d1ea8b
--- /dev/null
+++ b/cspell.config.yaml
@@ -0,0 +1,60 @@
+$schema: https://raw.githubusercontent.com/streetsidesoftware/cspell/main/packages/cspell-types/cspell.schema.json
+version: "0.2"
+ignorePaths:
+ - ./package.json
+ - ./pnpm-lock.yaml
+dictionaryDefinitions: []
+dictionaries: []
+words:
+ - AIAPI
+ - antfu
+ - backlink
+ - backlinks
+ - backmention
+ - blockicon
+ - blockref
+ - breadcrumbmore
+ - codelang
+ - dailynoteid
+ - docinfo
+ - doctree
+ - dprint
+ - editorcontent
+ - editortitleicon
+ - exportimg
+ - exportpdf
+ - exportword
+ - fileannotationref
+ - filetree
+ - focusfirst
+ - fontstyles
+ - FSRS
+ - fullwidth
+ - historynoteid
+ - IAPI
+ - katex
+ - Keymap
+ - Mindmap
+ - newwindow
+ - nolist
+ - noneditableblock
+ - Pandoc
+ - pdftheme
+ - plugintopunpin
+ - protyle
+ - rootscroll
+ - searchasset
+ - searchdata
+ - searchkeys
+ - Setext
+ - setid
+ - siyuan
+ - unchangeid
+ - unreviewed
+ - unundo
+ - webdav
+ - wechat
+ignoreWords: []
+ignoreRegExpList:
+ - \d{14}-[0-9a-z]{7}
+import: []
diff --git a/docs/markdown/README.md b/docs/markdown/README.md
new file mode 100644
index 0000000..99fe411
--- /dev/null
+++ b/docs/markdown/README.md
@@ -0,0 +1,93 @@
+**SiYuan Plugin API v1.0.2** • **Docs**
+
+---
+
+# SiYuan Plugin API v1.0.2
+
+## Namespaces
+
+| Namespace | Description |
+| ------------------------------------- | ----------- |
+| [Config](namespaces/Config/README.md) | - |
+
+## Classes
+
+| Class | Description |
+| --------------------------------- | ------------------------------------------------------- |
+| [App](classes/App.md) | The context of the SiYuan plugin
思源插件的上下文 |
+| [Constants](classes/Constants.md) | - |
+| [Dialog](classes/Dialog.md) | - |
+| [EventBus](classes/EventBus.md) | - |
+| [EventMenu](classes/EventMenu.md) | - |
+| [Lute](classes/Lute.md) | - |
+| [Menu](classes/Menu.md) | - |
+| [Plugin](classes/Plugin.md) | - |
+| [Protyle](classes/Protyle.md) | - |
+| [Setting](classes/Setting.md) | - |
+| [Toolbar](classes/Toolbar.md) | - |
+
+## Interfaces
+
+| Interface | Description |
+| ------------------------------------------------ | ----------- |
+| [Global](interfaces/Global.md) | - |
+| [I18N](interfaces/I18N.md) | - |
+| [ICard](interfaces/ICard.md) | - |
+| [ICardData](interfaces/ICardData.md) | - |
+| [ICommandOption](interfaces/ICommandOption.md) | - |
+| [ICustomModel](interfaces/ICustomModel.md) | - |
+| [IDockModel](interfaces/IDockModel.md) | - |
+| [IEventBusMap](interfaces/IEventBusMap.md) | - |
+| [IGetDocInfo](interfaces/IGetDocInfo.md) | - |
+| [IGetTreeStat](interfaces/IGetTreeStat.md) | - |
+| [IKeymap](interfaces/IKeymap.md) | - |
+| [IKeymapItem](interfaces/IKeymapItem.md) | - |
+| [ILuteNode](interfaces/ILuteNode.md) | - |
+| [IMenuBaseDetail](interfaces/IMenuBaseDetail.md) | - |
+| [IMenuItemOption](interfaces/IMenuItemOption.md) | - |
+| [IModel](interfaces/IModel.md) | - |
+| [IObject](interfaces/IObject.md) | - |
+| [IOperation](interfaces/IOperation.md) | - |
+| [IPluginDockTab](interfaces/IPluginDockTab.md) | - |
+| [IPosition](interfaces/IPosition.md) | - |
+| [IProtyle](interfaces/IProtyle.md) | - |
+| [IProtyleOption](interfaces/IProtyleOption.md) | - |
+| [ISearchOption](interfaces/ISearchOption.md) | - |
+| [ISiyuan](interfaces/ISiyuan.md) | - |
+| [ITab](interfaces/ITab.md) | - |
+| [ITabModel](interfaces/ITabModel.md) | - |
+| [IToolbarItem](interfaces/IToolbarItem.md) | - |
+| [IWebSocketData](interfaces/IWebSocketData.md) | - |
+
+## Type Aliases
+
+| Type alias | Description |
+| -------------------------------------------------- | ----------- |
+| [TAVCol](type-aliases/TAVCol.md) | - |
+| [TBackendEnv](type-aliases/TBackendEnv.md) | - |
+| [TCardType](type-aliases/TCardType.md) | - |
+| [TEditorMode](type-aliases/TEditorMode.md) | - |
+| [TEventBus](type-aliases/TEventBus.md) | - |
+| [TFrontendEnv](type-aliases/TFrontendEnv.md) | - |
+| [TOperation](type-aliases/TOperation.md) | - |
+| [TProtyleAction](type-aliases/TProtyleAction.md) | - |
+| [TTurnInto](type-aliases/TTurnInto.md) | - |
+| [TTurnIntoOne](type-aliases/TTurnIntoOne.md) | - |
+| [TTurnIntoOneSub](type-aliases/TTurnIntoOneSub.md) | - |
+
+## Functions
+
+| Function | Description |
+| ----------------------------------------------------- | ----------- |
+| [adaptHotkey](functions/adaptHotkey.md) | - |
+| [confirm](functions/confirm.md) | - |
+| [fetchGet](functions/fetchGet.md) | - |
+| [fetchPost](functions/fetchPost.md) | - |
+| [fetchSyncPost](functions/fetchSyncPost.md) | - |
+| [getBackend](functions/getBackend.md) | - |
+| [getFrontend](functions/getFrontend.md) | - |
+| [lockScreen](functions/lockScreen.md) | - |
+| [openMobileFileById](functions/openMobileFileById.md) | - |
+| [openTab](functions/openTab.md) | - |
+| [openWindow](functions/openWindow.md) | - |
+| [showMessage](functions/showMessage.md) | - |
diff --git a/docs/markdown/classes/App.md b/docs/markdown/classes/App.md
new file mode 100644
index 0000000..1642a1b
--- /dev/null
+++ b/docs/markdown/classes/App.md
@@ -0,0 +1,41 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / App
+
+# Class: App
+
+The context of the SiYuan plugin
+
+思源插件的上下文
+
+## Constructors
+
+### new App()
+
+> **new App**(): [`App`](App.md)
+
+#### Returns
+
+[`App`](App.md)
+
+## Properties
+
+### appId
+
+> **appId**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:536](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L536)
+
+---
+
+### plugins
+
+> **plugins**: [`Plugin`](Plugin.md)[]
+
+#### Defined in
+
+[siyuan.d.ts:535](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L535)
diff --git a/docs/markdown/classes/Constants.md b/docs/markdown/classes/Constants.md
new file mode 100644
index 0000000..72df2f1
--- /dev/null
+++ b/docs/markdown/classes/Constants.md
@@ -0,0 +1,1047 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / Constants
+
+# Class: `abstract` Constants
+
+## Constructors
+
+### new Constants()
+
+> **new Constants**(): [`Constants`](Constants.md)
+
+#### Returns
+
+[`Constants`](Constants.md)
+
+## Properties
+
+### ALIAS\_CODE\_LANGUAGES
+
+> `readonly` `static` **ALIAS\_CODE\_LANGUAGES**: `string`[]
+
+#### Defined in
+
+[types/constants.ts:544](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L544)
+
+---
+
+### ANALYTICS\_EVT\_ON\_GET\_CONFIG
+
+> `readonly` `static` **ANALYTICS\_EVT\_ON\_GET\_CONFIG**: `string` = `"siyuan.onGetConfig"`
+
+#### Defined in
+
+[types/constants.ts:554](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L554)
+
+---
+
+### ASSETS\_ADDRESS
+
+> `readonly` `static` **ASSETS\_ADDRESS**: `string` = `"https://assets.b3logfile.com/siyuan/"`
+
+#### Defined in
+
+[types/constants.ts:11](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L11)
+
+---
+
+### BLOCK\_HINT\_CLOSE\_KEYS
+
+> `readonly` `static` **BLOCK\_HINT\_CLOSE\_KEYS**: [`IObject`](../interfaces/IObject.md)
+
+#### Defined in
+
+[types/constants.ts:541](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L541)
+
+---
+
+### BLOCK\_HINT\_KEYS
+
+> `readonly` `static` **BLOCK\_HINT\_KEYS**: `string`[]
+
+#### Defined in
+
+[types/constants.ts:540](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L540)
+
+---
+
+### CB\_GET\_ALL
+
+> `readonly` `static` **CB\_GET\_ALL**: `"cb-get-all"` = `"cb-get-all"`
+
+#### Defined in
+
+[types/constants.ts:69](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L69)
+
+---
+
+### CB\_GET\_APPEND
+
+> `readonly` `static` **CB\_GET\_APPEND**: `"cb-get-append"` = `"cb-get-append"`
+
+#### Defined in
+
+[types/constants.ts:62](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L62)
+
+---
+
+### CB\_GET\_BACKLINK
+
+> `readonly` `static` **CB\_GET\_BACKLINK**: `"cb-get-backlink"` = `"cb-get-backlink"`
+
+#### Defined in
+
+[types/constants.ts:70](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L70)
+
+---
+
+### CB\_GET\_BEFORE
+
+> `readonly` `static` **CB\_GET\_BEFORE**: `"cb-get-before"` = `"cb-get-before"`
+
+#### Defined in
+
+[types/constants.ts:63](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L63)
+
+---
+
+### CB\_GET\_CONTEXT
+
+> `readonly` `static` **CB\_GET\_CONTEXT**: `"cb-get-context"` = `"cb-get-context"`
+
+#### Defined in
+
+[types/constants.ts:73](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L73)
+
+---
+
+### CB\_GET\_FOCUS
+
+> `readonly` `static` **CB\_GET\_FOCUS**: `"cb-get-focus"` = `"cb-get-focus"`
+
+#### Defined in
+
+[types/constants.ts:66](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L66)
+
+---
+
+### CB\_GET\_FOCUSFIRST
+
+> `readonly` `static` **CB\_GET\_FOCUSFIRST**: `"cb-get-focusfirst"` = `"cb-get-focusfirst"`
+
+#### Defined in
+
+[types/constants.ts:67](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L67)
+
+---
+
+### CB\_GET\_HISTORY
+
+> `readonly` `static` **CB\_GET\_HISTORY**: `"cb-get-history"` = `"cb-get-history"`
+
+#### Defined in
+
+[types/constants.ts:76](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L76)
+
+---
+
+### CB\_GET\_HL
+
+> `readonly` `static` **CB\_GET\_HL**: `"cb-get-hl"` = `"cb-get-hl"`
+
+#### Defined in
+
+[types/constants.ts:65](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L65)
+
+---
+
+### CB\_GET\_HTML
+
+> `readonly` `static` **CB\_GET\_HTML**: `"cb-get-html"` = `"cb-get-html"`
+
+#### Defined in
+
+[types/constants.ts:75](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L75)
+
+---
+
+### CB\_GET\_ROOTSCROLL
+
+> `readonly` `static` **CB\_GET\_ROOTSCROLL**: `"cb-get-rootscroll"` = `"cb-get-rootscroll"`
+
+#### Defined in
+
+[types/constants.ts:74](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L74)
+
+---
+
+### CB\_GET\_SCROLL
+
+> `readonly` `static` **CB\_GET\_SCROLL**: `"cb-get-scroll"` = `"cb-get-scroll"`
+
+#### Defined in
+
+[types/constants.ts:72](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L72)
+
+---
+
+### CB\_GET\_SETID
+
+> `readonly` `static` **CB\_GET\_SETID**: `"cb-get-setid"` = `"cb-get-setid"`
+
+#### Defined in
+
+[types/constants.ts:68](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L68)
+
+---
+
+### CB\_GET\_UNCHANGEID
+
+> `readonly` `static` **CB\_GET\_UNCHANGEID**: `"cb-get-unchangeid"` = `"cb-get-unchangeid"`
+
+#### Defined in
+
+[types/constants.ts:64](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L64)
+
+---
+
+### CB\_GET\_UNUNDO
+
+> `readonly` `static` **CB\_GET\_UNUNDO**: `"cb-get-unundo"` = `"cb-get-unundo"`
+
+#### Defined in
+
+[types/constants.ts:71](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L71)
+
+---
+
+### CB\_MOUNT\_REMOVE
+
+> `readonly` `static` **CB\_MOUNT\_REMOVE**: `"cb-mount-remove"` = `"cb-mount-remove"`
+
+#### Defined in
+
+[types/constants.ts:61](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L61)
+
+---
+
+### CB\_MOVE\_NOLIST
+
+> `readonly` `static` **CB\_MOVE\_NOLIST**: `"cb-move-nolist"` = `"cb-move-nolist"`
+
+#### Defined in
+
+[types/constants.ts:60](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L60)
+
+---
+
+### CUSTOM\_REMINDER\_WECHAT
+
+> `readonly` `static` **CUSTOM\_REMINDER\_WECHAT**: `string` = `"custom-reminder-wechat"`
+
+#### Defined in
+
+[types/constants.ts:47](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L47)
+
+---
+
+### CUSTOM\_RIFF\_DECKS
+
+> `readonly` `static` **CUSTOM\_RIFF\_DECKS**: `string` = `"custom-riff-decks"`
+
+#### Defined in
+
+[types/constants.ts:48](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L48)
+
+---
+
+### CUSTOM\_SY\_FULLWIDTH
+
+> `readonly` `static` **CUSTOM\_SY\_FULLWIDTH**: `string` = `"custom-sy-fullwidth"`
+
+#### Defined in
+
+[types/constants.ts:46](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L46)
+
+---
+
+### CUSTOM\_SY\_READONLY
+
+> `readonly` `static` **CUSTOM\_SY\_READONLY**: `string` = `"custom-sy-readonly"`
+
+#### Defined in
+
+[types/constants.ts:45](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L45)
+
+---
+
+### HELP\_PATH
+
+> `readonly` `static` **HELP\_PATH**: `object`
+
+#### en\_US
+
+> **en\_US**: `string` = `"20210808180117-6v0mkxr"`
+
+#### fr\_FR
+
+> **fr\_FR**: `string` = `"20210808180117-6v0mkxr"`
+
+#### zh\_CHT
+
+> **zh\_CHT**: `string` = `"20211226090932-5lcq56f"`
+
+#### zh\_CN
+
+> **zh\_CN**: `string` = `"20210808180117-czj9bvb"`
+
+#### Defined in
+
+[types/constants.ts:106](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L106)
+
+---
+
+### INLINE\_TYPE
+
+> `readonly` `static` **INLINE\_TYPE**: `string`[]
+
+#### Defined in
+
+[types/constants.ts:539](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L539)
+
+---
+
+### KEYCODELIST
+
+> `readonly` `static` **KEYCODELIST**: `object`
+
+#### Index Signature
+
+\[`key`: `number`\]: `string`
+
+#### Defined in
+
+[types/constants.ts:115](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L115)
+
+---
+
+### LOCAL\_AI
+
+> `readonly` `static` **LOCAL\_AI**: `"local-ai"` = `"local-ai"`
+
+#### Defined in
+
+[types/constants.ts:94](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L94)
+
+---
+
+### LOCAL\_BAZAAR
+
+> `readonly` `static` **LOCAL\_BAZAAR**: `"local-bazaar"` = `"local-bazaar"`
+
+#### Defined in
+
+[types/constants.ts:91](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L91)
+
+---
+
+### LOCAL\_CODELANG
+
+> `readonly` `static` **LOCAL\_CODELANG**: `"local-codelang"` = `"local-codelang"`
+
+#### Defined in
+
+[types/constants.ts:86](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L86)
+
+---
+
+### LOCAL\_DAILYNOTEID
+
+> `readonly` `static` **LOCAL\_DAILYNOTEID**: `"local-dailynoteid"` = `"local-dailynoteid"`
+
+#### Defined in
+
+[types/constants.ts:84](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L84)
+
+---
+
+### LOCAL\_DOCINFO
+
+> `readonly` `static` **LOCAL\_DOCINFO**: `"local-docinfo"` = `"local-docinfo"`
+
+#### Defined in
+
+[types/constants.ts:83](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L83)
+
+---
+
+### LOCAL\_EXPORTIMG
+
+> `readonly` `static` **LOCAL\_EXPORTIMG**: `"local-exportimg"` = `"local-exportimg"`
+
+#### Defined in
+
+[types/constants.ts:90](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L90)
+
+---
+
+### LOCAL\_EXPORTPDF
+
+> `readonly` `static` **LOCAL\_EXPORTPDF**: `"local-exportpdf"` = `"local-exportpdf"`
+
+#### Defined in
+
+[types/constants.ts:88](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L88)
+
+---
+
+### LOCAL\_EXPORTWORD
+
+> `readonly` `static` **LOCAL\_EXPORTWORD**: `"local-exportword"` = `"local-exportword"`
+
+#### Defined in
+
+[types/constants.ts:89](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L89)
+
+---
+
+### LOCAL\_FLASHCARD
+
+> `readonly` `static` **LOCAL\_FLASHCARD**: `"local-flashcard"` = `"local-flashcard"`
+
+#### Defined in
+
+[types/constants.ts:96](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L96)
+
+---
+
+### LOCAL\_FONTSTYLES
+
+> `readonly` `static` **LOCAL\_FONTSTYLES**: `"local-fontstyles"` = `"local-fontstyles"`
+
+#### Defined in
+
+[types/constants.ts:87](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L87)
+
+---
+
+### LOCAL\_HISTORYNOTEID
+
+> `readonly` `static` **LOCAL\_HISTORYNOTEID**: `"local-historynoteid"` = `"local-historynoteid"`
+
+#### Defined in
+
+[types/constants.ts:85](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L85)
+
+---
+
+### LOCAL\_LAYOUTS
+
+> `readonly` `static` **LOCAL\_LAYOUTS**: `"local-layouts"` = `"local-layouts"`
+
+#### Defined in
+
+[types/constants.ts:93](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L93)
+
+---
+
+### LOCAL\_PDFTHEME
+
+> `readonly` `static` **LOCAL\_PDFTHEME**: `"local-pdftheme"` = `"local-pdftheme"`
+
+#### Defined in
+
+[types/constants.ts:92](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L92)
+
+---
+
+### LOCAL\_PLUGINTOPUNPIN
+
+> `readonly` `static` **LOCAL\_PLUGINTOPUNPIN**: `"local-plugintopunpin"` = `"local-plugintopunpin"`
+
+#### Defined in
+
+[types/constants.ts:95](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L95)
+
+---
+
+### LOCAL\_SEARCHASSET
+
+> `readonly` `static` **LOCAL\_SEARCHASSET**: `"local-searchasset"` = `"local-searchasset"`
+
+#### Defined in
+
+[types/constants.ts:82](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L82)
+
+---
+
+### LOCAL\_SEARCHDATA
+
+> `readonly` `static` **LOCAL\_SEARCHDATA**: `"local-searchdata"` = `"local-searchdata"`
+
+#### Defined in
+
+[types/constants.ts:80](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L80)
+
+---
+
+### LOCAL\_SEARCHKEYS
+
+> `readonly` `static` **LOCAL\_SEARCHKEYS**: `"local-searchkeys"` = `"local-searchkeys"`
+
+#### Defined in
+
+[types/constants.ts:81](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L81)
+
+---
+
+### LOCAL\_ZOOM
+
+> `readonly` `static` **LOCAL\_ZOOM**: `"local-zoom"` = `"local-zoom"`
+
+#### Defined in
+
+[types/constants.ts:79](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L79)
+
+---
+
+### NODE\_ENV
+
+> `readonly` `static` **NODE\_ENV**: `string`
+
+#### Defined in
+
+[types/constants.ts:7](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L7)
+
+---
+
+### PROTYLE\_CDN
+
+> `readonly` `static` **PROTYLE\_CDN**: `string` = `"/stage/protyle"`
+
+#### Defined in
+
+[types/constants.ts:12](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L12)
+
+---
+
+### QUICK\_DECK\_ID
+
+> `readonly` `static` **QUICK\_DECK\_ID**: `"20230218211946-2kw8jgx"` = `"20230218211946-2kw8jgx"`
+
+#### Defined in
+
+[types/constants.ts:113](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L113)
+
+---
+
+### SERVICE\_WORKER\_PATH
+
+> `readonly` `static` **SERVICE\_WORKER\_PATH**: `string` = `"/service-worker.js"`
+
+#### Defined in
+
+[types/constants.ts:14](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L14)
+
+---
+
+### SIYUAN\_APPID
+
+> `readonly` `static` **SIYUAN\_APPID**: `string`
+
+#### Defined in
+
+[types/constants.ts:8](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L8)
+
+---
+
+### SIYUAN\_ASSETS\_AUDIO
+
+> `readonly` `static` **SIYUAN\_ASSETS\_AUDIO**: `string`[]
+
+#### Defined in
+
+[types/constants.ts:527](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L527)
+
+---
+
+### SIYUAN\_ASSETS\_EXTS
+
+> `readonly` `static` **SIYUAN\_ASSETS\_EXTS**: `string`[]
+
+#### Defined in
+
+[types/constants.ts:529](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L529)
+
+---
+
+### SIYUAN\_ASSETS\_IMAGE
+
+> `readonly` `static` **SIYUAN\_ASSETS\_IMAGE**: `string`[]
+
+#### Defined in
+
+[types/constants.ts:526](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L526)
+
+---
+
+### SIYUAN\_ASSETS\_SEARCH
+
+> `readonly` `static` **SIYUAN\_ASSETS\_SEARCH**: `string`[]
+
+#### Defined in
+
+[types/constants.ts:530](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L530)
+
+---
+
+### SIYUAN\_ASSETS\_VIDEO
+
+> `readonly` `static` **SIYUAN\_ASSETS\_VIDEO**: `string`[]
+
+#### Defined in
+
+[types/constants.ts:528](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L528)
+
+---
+
+### SIYUAN\_AUTO\_LAUNCH
+
+> `readonly` `static` **SIYUAN\_AUTO\_LAUNCH**: `string` = `"siyuan-auto-launch"`
+
+#### Defined in
+
+[types/constants.ts:33](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L33)
+
+---
+
+### SIYUAN\_CMD
+
+> `readonly` `static` **SIYUAN\_CMD**: `string` = `"siyuan-cmd"`
+
+#### Defined in
+
+[types/constants.ts:23](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L23)
+
+---
+
+### SIYUAN\_CONFIG\_APPEARANCE\_DARK\_CODE
+
+> `readonly` `static` **SIYUAN\_CONFIG\_APPEARANCE\_DARK\_CODE**: `string`[]
+
+#### Defined in
+
+[types/constants.ts:533](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L533)
+
+---
+
+### SIYUAN\_CONFIG\_APPEARANCE\_LIGHT\_CODE
+
+> `readonly` `static` **SIYUAN\_CONFIG\_APPEARANCE\_LIGHT\_CODE**: `string`[]
+
+#### Defined in
+
+[types/constants.ts:536](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L536)
+
+---
+
+### SIYUAN\_CONFIG\_TRAY
+
+> `readonly` `static` **SIYUAN\_CONFIG\_TRAY**: `string` = `"siyuan-config-tray"`
+
+#### Defined in
+
+[types/constants.ts:27](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L27)
+
+---
+
+### SIYUAN\_DROP\_EDITOR
+
+> `readonly` `static` **SIYUAN\_DROP\_EDITOR**: `string` = `"application/siyuan-editor"`
+
+#### Defined in
+
+[types/constants.ts:20](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L20)
+
+---
+
+### SIYUAN\_DROP\_FILE
+
+> `readonly` `static` **SIYUAN\_DROP\_FILE**: `string` = `"application/siyuan-file"`
+
+#### Defined in
+
+[types/constants.ts:17](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L17)
+
+---
+
+### SIYUAN\_DROP\_GUTTER
+
+> `readonly` `static` **SIYUAN\_DROP\_GUTTER**: `string` = `"application/siyuan-gutter"`
+
+#### Defined in
+
+[types/constants.ts:18](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L18)
+
+---
+
+### SIYUAN\_DROP\_TAB
+
+> `readonly` `static` **SIYUAN\_DROP\_TAB**: `string` = `"application/siyuan-tab"`
+
+#### Defined in
+
+[types/constants.ts:19](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L19)
+
+---
+
+### SIYUAN\_EMPTY\_LAYOUT
+
+> `readonly` `static` **SIYUAN\_EMPTY\_LAYOUT**: `Record`\<`string`, `unknown`\>
+
+#### Defined in
+
+[types/constants.ts:381](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L381)
+
+---
+
+### SIYUAN\_EVENT
+
+> `readonly` `static` **SIYUAN\_EVENT**: `string` = `"siyuan-event"`
+
+#### Defined in
+
+[types/constants.ts:25](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L25)
+
+---
+
+### SIYUAN\_EXPORT\_NEWWINDOW
+
+> `readonly` `static` **SIYUAN\_EXPORT\_NEWWINDOW**: `string` = `"siyuan-export-newwindow"`
+
+#### Defined in
+
+[types/constants.ts:42](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L42)
+
+---
+
+### SIYUAN\_EXPORT\_PDF
+
+> `readonly` `static` **SIYUAN\_EXPORT\_PDF**: `string` = `"siyuan-export-pdf"`
+
+#### Defined in
+
+[types/constants.ts:41](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L41)
+
+---
+
+### SIYUAN\_GET
+
+> `readonly` `static` **SIYUAN\_GET**: `string` = `"siyuan-get"`
+
+#### Defined in
+
+[types/constants.ts:24](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L24)
+
+---
+
+### SIYUAN\_HOTKEY
+
+> `readonly` `static` **SIYUAN\_HOTKEY**: `string` = `"siyuan-hotkey"`
+
+#### Defined in
+
+[types/constants.ts:29](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L29)
+
+---
+
+### SIYUAN\_IMAGE\_FILE
+
+> `readonly` `static` **SIYUAN\_IMAGE\_FILE**: `string` = `"1f4c4"`
+
+#### Defined in
+
+[types/constants.ts:521](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L521)
+
+---
+
+### SIYUAN\_IMAGE\_FOLDER
+
+> `readonly` `static` **SIYUAN\_IMAGE\_FOLDER**: `string` = `"1f4d1"`
+
+#### Defined in
+
+[types/constants.ts:523](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L523)
+
+---
+
+### SIYUAN\_IMAGE\_NOTE
+
+> `readonly` `static` **SIYUAN\_IMAGE\_NOTE**: `string` = `"1f5c3"`
+
+#### Defined in
+
+[types/constants.ts:522](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L522)
+
+---
+
+### SIYUAN\_IMAGE\_VIP
+
+> `readonly` `static` **SIYUAN\_IMAGE\_VIP**: `string`
+
+#### Defined in
+
+[types/constants.ts:513](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L513)
+
+---
+
+### SIYUAN\_INIT
+
+> `readonly` `static` **SIYUAN\_INIT**: `string` = `"siyuan-init"`
+
+#### Defined in
+
+[types/constants.ts:30](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L30)
+
+---
+
+### SIYUAN\_KEYMAP
+
+> `readonly` `static` **SIYUAN\_KEYMAP**: [`IKeymap`](../interfaces/IKeymap.md)
+
+#### Defined in
+
+[types/constants.ts:224](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L224)
+
+---
+
+### SIYUAN\_OPEN\_FILE
+
+> `readonly` `static` **SIYUAN\_OPEN\_FILE**: `string` = `"siyuan-open-file"`
+
+#### Defined in
+
+[types/constants.ts:39](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L39)
+
+---
+
+### SIYUAN\_OPEN\_FOLDER
+
+> `readonly` `static` **SIYUAN\_OPEN\_FOLDER**: `string` = `"siyuan-open-folder"`
+
+#### Defined in
+
+[types/constants.ts:38](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L38)
+
+---
+
+### SIYUAN\_OPEN\_URL
+
+> `readonly` `static` **SIYUAN\_OPEN\_URL**: `string` = `"siyuan-open-url"`
+
+#### Defined in
+
+[types/constants.ts:36](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L36)
+
+---
+
+### SIYUAN\_OPEN\_WINDOW
+
+> `readonly` `static` **SIYUAN\_OPEN\_WINDOW**: `string` = `"siyuan-open-window"`
+
+#### Defined in
+
+[types/constants.ts:37](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L37)
+
+---
+
+### SIYUAN\_OPEN\_WORKSPACE
+
+> `readonly` `static` **SIYUAN\_OPEN\_WORKSPACE**: `string` = `"siyuan-open-workspace"`
+
+#### Defined in
+
+[types/constants.ts:35](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L35)
+
+---
+
+### SIYUAN\_QUIT
+
+> `readonly` `static` **SIYUAN\_QUIT**: `string` = `"siyuan-quit"`
+
+#### Defined in
+
+[types/constants.ts:28](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L28)
+
+---
+
+### SIYUAN\_SAVE\_CLOSE
+
+> `readonly` `static` **SIYUAN\_SAVE\_CLOSE**: `string` = `"siyuan-save-close"`
+
+#### Defined in
+
+[types/constants.ts:32](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L32)
+
+---
+
+### SIYUAN\_SEND\_WINDOWS
+
+> `readonly` `static` **SIYUAN\_SEND\_WINDOWS**: `string` = `"siyuan-send-windows"`
+
+#### Defined in
+
+[types/constants.ts:31](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L31)
+
+---
+
+### SIYUAN\_VERSION
+
+> `readonly` `static` **SIYUAN\_VERSION**: `string`
+
+#### Defined in
+
+[types/constants.ts:6](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L6)
+
+---
+
+### SIZE\_EDITOR\_WIDTH
+
+> `readonly` `static` **SIZE\_EDITOR\_WIDTH**: `760` = `760`
+
+#### Defined in
+
+[types/constants.ts:56](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L56)
+
+---
+
+### SIZE\_GET\_MAX
+
+> `readonly` `static` **SIZE\_GET\_MAX**: `102400` = `102400`
+
+#### Defined in
+
+[types/constants.ts:53](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L53)
+
+---
+
+### SIZE\_LINK\_TEXT\_MAX
+
+> `readonly` `static` **SIZE\_LINK\_TEXT\_MAX**: `number` = `24`
+
+#### Defined in
+
+[types/constants.ts:51](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L51)
+
+---
+
+### SIZE\_TITLE
+
+> `readonly` `static` **SIZE\_TITLE**: `512` = `512`
+
+#### Defined in
+
+[types/constants.ts:55](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L55)
+
+---
+
+### SIZE\_TOOLBAR\_HEIGHT
+
+> `readonly` `static` **SIZE\_TOOLBAR\_HEIGHT**: `number`
+
+#### Defined in
+
+[types/constants.ts:52](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L52)
+
+---
+
+### SIZE\_UNDO
+
+> `readonly` `static` **SIZE\_UNDO**: `64` = `64`
+
+#### Defined in
+
+[types/constants.ts:54](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L54)
+
+---
+
+### SIZE\_ZOOM
+
+> `readonly` `static` **SIZE\_ZOOM**: `number`[]
+
+#### Defined in
+
+[types/constants.ts:57](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L57)
+
+---
+
+### TIMEOUT\_COUNT
+
+> `readonly` `static` **TIMEOUT\_COUNT**: `1000` = `1000`
+
+#### Defined in
+
+[types/constants.ts:103](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L103)
+
+---
+
+### TIMEOUT\_DBLCLICK
+
+> `readonly` `static` **TIMEOUT\_DBLCLICK**: `190` = `190`
+
+#### Defined in
+
+[types/constants.ts:99](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L99)
+
+---
+
+### TIMEOUT\_INPUT
+
+> `readonly` `static` **TIMEOUT\_INPUT**: `256` = `256`
+
+#### Defined in
+
+[types/constants.ts:100](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L100)
+
+---
+
+### TIMEOUT\_LOAD
+
+> `readonly` `static` **TIMEOUT\_LOAD**: `300` = `300`
+
+#### Defined in
+
+[types/constants.ts:101](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L101)
+
+---
+
+### TIMEOUT\_TRANSITION
+
+> `readonly` `static` **TIMEOUT\_TRANSITION**: `300` = `300`
+
+#### Defined in
+
+[types/constants.ts:102](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L102)
+
+---
+
+### UPLOAD\_ADDRESS
+
+> `readonly` `static` **UPLOAD\_ADDRESS**: `string` = `"/upload"`
+
+#### Defined in
+
+[types/constants.ts:13](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L13)
+
+---
+
+### ZWSP
+
+> `readonly` `static` **ZWSP**: `string` = `"\u200B"`
+
+#### Defined in
+
+[types/constants.ts:538](https://github.com/siyuan-note/petal/tree/main/types/constants.ts#L538)
diff --git a/docs/markdown/classes/Dialog.md b/docs/markdown/classes/Dialog.md
new file mode 100644
index 0000000..7de5939
--- /dev/null
+++ b/docs/markdown/classes/Dialog.md
@@ -0,0 +1,113 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / Dialog
+
+# Class: Dialog
+
+## Constructors
+
+### new Dialog()
+
+> **new Dialog**(`options`): [`Dialog`](Dialog.md)
+
+#### Parameters
+
+| Parameter | Type |
+| --------------------------- | ---------------------- |
+| `options` | `object` |
+| `options.content` | `string` |
+| `options.destroyCallback`? | (`options`?) => `void` |
+| `options.disableAnimation`? | `boolean` |
+| `options.disableClose`? | `boolean` |
+| `options.height`? | `string` |
+| `options.hideCloseIcon`? | `boolean` |
+| `options.positionId`? | `string` |
+| `options.resizeCallback`? | (`type`) => `void` |
+| `options.title`? | `string` |
+| `options.transparent`? | `boolean` |
+| `options.width`? | `string` |
+
+#### Returns
+
+[`Dialog`](Dialog.md)
+
+#### Defined in
+
+[siyuan.d.ts:688](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L688)
+
+## Properties
+
+### data
+
+> **data**: `any`
+
+#### Defined in
+
+[siyuan.d.ts:686](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L686)
+
+---
+
+### editors
+
+> **editors**: `object`
+
+#### Index Signature
+
+\[`key`: `string`\]: [`Protyle`](Protyle.md)
+
+#### Defined in
+
+[siyuan.d.ts:685](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L685)
+
+---
+
+### element
+
+> **element**: `HTMLElement`
+
+#### Defined in
+
+[siyuan.d.ts:684](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L684)
+
+## Methods
+
+### bindInput()
+
+> **bindInput**(`inputElement`, `enterEvent`?): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| -------------- | ------------------------------------------- |
+| `inputElement` | `HTMLInputElement` \| `HTMLTextAreaElement` |
+| `enterEvent`? | () => `void` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:704](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L704)
+
+---
+
+### destroy()
+
+> **destroy**(`options`?): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ---------- | ------------------------------------- |
+| `options`? | [`IObject`](../interfaces/IObject.md) |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:702](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L702)
diff --git a/docs/markdown/classes/EventBus.md b/docs/markdown/classes/EventBus.md
new file mode 100644
index 0000000..c333e2a
--- /dev/null
+++ b/docs/markdown/classes/EventBus.md
@@ -0,0 +1,129 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / EventBus
+
+# Class: EventBus
+
+## Constructors
+
+### new EventBus()
+
+> **new EventBus**(): [`EventBus`](EventBus.md)
+
+#### Returns
+
+[`EventBus`](EventBus.md)
+
+## Methods
+
+### emit()
+
+> **emit**\<`K`, `D`\>(`type`, `detail`?): `boolean`
+
+#### Type Parameters
+
+| Type Parameter | Default type |
+| ------------------------------------------------------------------- | ------------------------------------------------------ |
+| `K` _extends_ keyof [`IEventBusMap`](../interfaces/IEventBusMap.md) | - |
+| `D` | [`IEventBusMap`](../interfaces/IEventBusMap.md)\[`K`\] |
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ---- |
+| `type` | `K` |
+| `detail`? | `D` |
+
+#### Returns
+
+`boolean`
+
+#### Defined in
+
+[siyuan.d.ts:677](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L677)
+
+---
+
+### off()
+
+> **off**\<`K`, `D`\>(`type`, `listener`): `void`
+
+#### Type Parameters
+
+| Type Parameter | Default type |
+| ------------------------------------------------------------------- | ------------------------------------------------------ |
+| `K` _extends_ keyof [`IEventBusMap`](../interfaces/IEventBusMap.md) | - |
+| `D` | [`IEventBusMap`](../interfaces/IEventBusMap.md)\[`K`\] |
+
+#### Parameters
+
+| Parameter | Type |
+| ---------- | ------------------ |
+| `type` | `K` |
+| `listener` | (`event`) => `any` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:672](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L672)
+
+---
+
+### on()
+
+> **on**\<`K`, `D`\>(`type`, `listener`): `void`
+
+#### Type Parameters
+
+| Type Parameter | Default type |
+| ------------------------------------------------------------------- | ------------------------------------------------------ |
+| `K` _extends_ keyof [`IEventBusMap`](../interfaces/IEventBusMap.md) | - |
+| `D` | [`IEventBusMap`](../interfaces/IEventBusMap.md)\[`K`\] |
+
+#### Parameters
+
+| Parameter | Type |
+| ---------- | ------------------ |
+| `type` | `K` |
+| `listener` | (`event`) => `any` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:662](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L662)
+
+---
+
+### once()
+
+> **once**\<`K`, `D`\>(`type`, `listener`): `void`
+
+#### Type Parameters
+
+| Type Parameter | Default type |
+| ------------------------------------------------------------------- | ------------------------------------------------------ |
+| `K` _extends_ keyof [`IEventBusMap`](../interfaces/IEventBusMap.md) | - |
+| `D` | [`IEventBusMap`](../interfaces/IEventBusMap.md)\[`K`\] |
+
+#### Parameters
+
+| Parameter | Type |
+| ---------- | ------------------ |
+| `type` | `K` |
+| `listener` | (`event`) => `any` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:667](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L667)
diff --git a/docs/markdown/classes/EventMenu.md b/docs/markdown/classes/EventMenu.md
new file mode 100644
index 0000000..745dd02
--- /dev/null
+++ b/docs/markdown/classes/EventMenu.md
@@ -0,0 +1,71 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / EventMenu
+
+# Class: EventMenu
+
+## Constructors
+
+### new EventMenu()
+
+> **new EventMenu**(): [`EventMenu`](EventMenu.md)
+
+#### Returns
+
+[`EventMenu`](EventMenu.md)
+
+#### Defined in
+
+[siyuan.d.ts:731](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L731)
+
+## Properties
+
+### menus
+
+> **menus**: [`IMenuItemOption`](../interfaces/IMenuItemOption.md)[]
+
+#### Defined in
+
+[siyuan.d.ts:729](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L729)
+
+## Methods
+
+### addItem()
+
+> **addItem**(`menu`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ----------------------------------------------------- |
+| `menu` | [`IMenuItemOption`](../interfaces/IMenuItemOption.md) |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:735](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L735)
+
+---
+
+### addSeparator()
+
+> **addSeparator**(`index`?): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `index`? | `number` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:733](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L733)
diff --git a/docs/markdown/classes/Lute.md b/docs/markdown/classes/Lute.md
new file mode 100644
index 0000000..f58e32a
--- /dev/null
+++ b/docs/markdown/classes/Lute.md
@@ -0,0 +1,1006 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / Lute
+
+# Class: Lute
+
+## Properties
+
+### Caret
+
+> `static` **Caret**: `string`
+
+#### Defined in
+
+[types/protyle.d.ts:214](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L214)
+
+---
+
+### Version
+
+> `static` **Version**: `string`
+
+#### Defined in
+
+[types/protyle.d.ts:213](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L213)
+
+---
+
+### WalkContinue
+
+> `static` **WalkContinue**: `number`
+
+#### Defined in
+
+[types/protyle.d.ts:212](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L212)
+
+---
+
+### WalkSkipChildren
+
+> `static` **WalkSkipChildren**: `number`
+
+#### Defined in
+
+[types/protyle.d.ts:211](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L211)
+
+---
+
+### WalkStop
+
+> `static` **WalkStop**: `number`
+
+#### Defined in
+
+[types/protyle.d.ts:210](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L210)
+
+## Methods
+
+### BlockDOM2Content()
+
+> **BlockDOM2Content**(`text`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `text` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:234](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L234)
+
+---
+
+### BlockDOM2EscapeMarkerContent()
+
+> **BlockDOM2EscapeMarkerContent**(`text`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `text` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:236](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L236)
+
+---
+
+### BlockDOM2HTML()
+
+> **BlockDOM2HTML**(`html`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `html` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:312](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L312)
+
+---
+
+### BlockDOM2InlineBlockDOM()
+
+> **BlockDOM2InlineBlockDOM**(`html`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `html` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:310](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L310)
+
+---
+
+### BlockDOM2Md()
+
+> **BlockDOM2Md**(`html`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `html` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:260](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L260)
+
+---
+
+### BlockDOM2StdMd()
+
+> **BlockDOM2StdMd**(`html`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `html` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:262](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L262)
+
+---
+
+### IsValidLinkDest()
+
+> **IsValidLinkDest**(`text`): `boolean`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `text` | `string` |
+
+#### Returns
+
+`boolean`
+
+#### Defined in
+
+[types/protyle.d.ts:308](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L308)
+
+---
+
+### MarkdownStr()
+
+> **MarkdownStr**(`name`, `md`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `name` | `string` |
+| `md` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:306](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L306)
+
+---
+
+### Md2BlockDOM()
+
+> **Md2BlockDOM**(`html`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `html` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:302](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L302)
+
+---
+
+### PutEmojis()
+
+> **PutEmojis**(`emojis`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ------------------------------------- |
+| `emojis` | [`IObject`](../interfaces/IObject.md) |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:298](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L298)
+
+---
+
+### SetBlockRef()
+
+> **SetBlockRef**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:276](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L276)
+
+---
+
+### SetChineseParagraphBeginningSpace()
+
+> **SetChineseParagraphBeginningSpace**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:252](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L252)
+
+---
+
+### SetEmojiSite()
+
+> **SetEmojiSite**(`emojiSite`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ----------- | -------- |
+| `emojiSite` | `string` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:296](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L296)
+
+---
+
+### SetFileAnnotationRef()
+
+> **SetFileAnnotationRef**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:246](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L246)
+
+---
+
+### SetFootnotes()
+
+> **SetFootnotes**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:292](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L292)
+
+---
+
+### SetGitConflict()
+
+> **SetGitConflict**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:264](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L264)
+
+---
+
+### SetHeadingAnchor()
+
+> **SetHeadingAnchor**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:280](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L280)
+
+---
+
+### SetHeadingID()
+
+> **SetHeadingID**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:240](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L240)
+
+---
+
+### SetImageLazyLoading()
+
+> **SetImageLazyLoading**(`imagePath`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ----------- | -------- |
+| `imagePath` | `string` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:282](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L282)
+
+---
+
+### SetImgPathAllowSpace()
+
+> **SetImgPathAllowSpace**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:256](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L256)
+
+---
+
+### SetIndentCodeBlock()
+
+> **SetIndentCodeBlock**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:288](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L288)
+
+---
+
+### SetInlineMathAllowDigitAfterOpenMarker()
+
+> **SetInlineMathAllowDigitAfterOpenMarker**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:284](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L284)
+
+---
+
+### SetKramdownIAL()
+
+> **SetKramdownIAL**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:258](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L258)
+
+---
+
+### SetLinkRef()
+
+> **SetLinkRef**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:294](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L294)
+
+---
+
+### SetMark()
+
+> **SetMark**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:270](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L270)
+
+---
+
+### SetParagraphBeginningSpace()
+
+> **SetParagraphBeginningSpace**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:290](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L290)
+
+---
+
+### SetProtyleMarkNetImg()
+
+> **SetProtyleMarkNetImg**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:242](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L242)
+
+---
+
+### SetProtyleWYSIWYG()
+
+> **SetProtyleWYSIWYG**(`wysiwyg`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `wysiwyg` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:304](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L304)
+
+---
+
+### SetRenderListStyle()
+
+> **SetRenderListStyle**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:254](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L254)
+
+---
+
+### SetSanitize()
+
+> **SetSanitize**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:278](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L278)
+
+---
+
+### SetSetext()
+
+> **SetSetext**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:248](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L248)
+
+---
+
+### SetSpellcheck()
+
+> **SetSpellcheck**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:244](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L244)
+
+---
+
+### SetSub()
+
+> **SetSub**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:272](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L272)
+
+---
+
+### SetSup()
+
+> **SetSup**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:274](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L274)
+
+---
+
+### SetSuperBlock()
+
+> **SetSuperBlock**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:266](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L266)
+
+---
+
+### SetTag()
+
+> **SetTag**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:268](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L268)
+
+---
+
+### SetTextMark()
+
+> **SetTextMark**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:238](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L238)
+
+---
+
+### SetToC()
+
+> **SetToC**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:286](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L286)
+
+---
+
+### SetYamlFrontMatter()
+
+> **SetYamlFrontMatter**(`enable`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `enable` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:250](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L250)
+
+---
+
+### SpinBlockDOM()
+
+> **SpinBlockDOM**(`html`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `html` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:300](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L300)
+
+---
+
+### BlockDOM2Content()
+
+> `static` **BlockDOM2Content**(`html`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `html` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:230](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L230)
+
+---
+
+### EChartsMindmapStr()
+
+> `static` **EChartsMindmapStr**(`text`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `text` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:218](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L218)
+
+---
+
+### EscapeHTMLStr()
+
+> `static` **EscapeHTMLStr**(`str`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `str` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:224](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L224)
+
+---
+
+### GetHeadingID()
+
+> `static` **GetHeadingID**(`node`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ----------------------------------------- |
+| `node` | [`ILuteNode`](../interfaces/ILuteNode.md) |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:228](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L228)
+
+---
+
+### New()
+
+> `static` **New**(): [`Lute`](Lute.md)
+
+#### Returns
+
+[`Lute`](Lute.md)
+
+#### Defined in
+
+[types/protyle.d.ts:216](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L216)
+
+---
+
+### NewNodeID()
+
+> `static` **NewNodeID**(): `string`
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:220](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L220)
+
+---
+
+### Sanitize()
+
+> `static` **Sanitize**(`html`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `html` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:222](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L222)
+
+---
+
+### UnEscapeHTMLStr()
+
+> `static` **UnEscapeHTMLStr**(`str`): `string`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `str` | `string` |
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[types/protyle.d.ts:226](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L226)
diff --git a/docs/markdown/classes/Menu.md b/docs/markdown/classes/Menu.md
new file mode 100644
index 0000000..42d0916
--- /dev/null
+++ b/docs/markdown/classes/Menu.md
@@ -0,0 +1,157 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / Menu
+
+# Class: Menu
+
+## Constructors
+
+### new Menu()
+
+> **new Menu**(`id`?, `closeCallback`?): [`Menu`](Menu.md)
+
+#### Parameters
+
+| Parameter | Type |
+| ---------------- | ------------ |
+| `id`? | `string` |
+| `closeCallback`? | () => `void` |
+
+#### Returns
+
+[`Menu`](Menu.md)
+
+#### Defined in
+
+[siyuan.d.ts:708](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L708)
+
+## Properties
+
+### element
+
+> **element**: `HTMLElement`
+
+#### Defined in
+
+[siyuan.d.ts:710](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L710)
+
+## Methods
+
+### addItem()
+
+> **addItem**(`options`): `HTMLElement`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ----------------------------------------------------- |
+| `options` | [`IMenuItemOption`](../interfaces/IMenuItemOption.md) |
+
+#### Returns
+
+`HTMLElement`
+
+#### Defined in
+
+[siyuan.d.ts:714](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L714)
+
+---
+
+### addSeparator()
+
+> **addSeparator**(`index`?): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `index`? | `number` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:716](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L716)
+
+---
+
+### close()
+
+> **close**(): `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:725](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L725)
+
+---
+
+### fullscreen()
+
+> **fullscreen**(`position`?): `void`
+
+#### Parameters
+
+| Parameter | Type | Description |
+| ----------- | --------------------- | ----------- |
+| `position`? | `"bottom"` \| `"all"` | |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:723](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L723)
+
+---
+
+### open()
+
+> **open**(`options`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ----------------- | --------- |
+| `options` | `object` |
+| `options.h`? | `number` |
+| `options.isLeft`? | `boolean` |
+| `options.w`? | `number` |
+| `options.x` | `number` |
+| `options.y` | `number` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:718](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L718)
+
+---
+
+### showSubMenu()
+
+> **showSubMenu**(`subMenuElement`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ---------------- | ------------- |
+| `subMenuElement` | `HTMLElement` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:712](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L712)
diff --git a/docs/markdown/classes/Plugin.md b/docs/markdown/classes/Plugin.md
new file mode 100644
index 0000000..5c223dd
--- /dev/null
+++ b/docs/markdown/classes/Plugin.md
@@ -0,0 +1,479 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / Plugin
+
+# Class: `abstract` Plugin
+
+## Constructors
+
+### new Plugin()
+
+> **new Plugin**(`options`): [`Plugin`](Plugin.md)
+
+#### Parameters
+
+| Parameter | Type |
+| -------------- | ------------------------------- |
+| `options` | `object` |
+| `options.app` | [`App`](App.md) |
+| `options.i18n` | [`I18N`](../interfaces/I18N.md) |
+| `options.name` | `string` |
+
+#### Returns
+
+[`Plugin`](Plugin.md)
+
+#### Defined in
+
+[siyuan.d.ts:557](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L557)
+
+## Properties
+
+### app
+
+> **app**: [`App`](App.md)
+
+#### Defined in
+
+[siyuan.d.ts:545](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L545)
+
+---
+
+### commands
+
+> **commands**: [`ICommandOption`](../interfaces/ICommandOption.md)[]
+
+#### Defined in
+
+[siyuan.d.ts:546](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L546)
+
+---
+
+### data
+
+> **data**: `any`
+
+#### Defined in
+
+[siyuan.d.ts:542](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L542)
+
+---
+
+### displayName
+
+> **displayName**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:543](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L543)
+
+---
+
+### eventBus
+
+> **eventBus**: [`EventBus`](EventBus.md)
+
+#### Defined in
+
+[siyuan.d.ts:540](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L540)
+
+---
+
+### i18n
+
+> **i18n**: [`I18N`](../interfaces/I18N.md)
+
+#### Defined in
+
+[siyuan.d.ts:541](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L541)
+
+---
+
+### name
+
+> `readonly` **name**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:544](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L544)
+
+---
+
+### protyleOptions
+
+> **protyleOptions**: [`IProtyleOption`](../interfaces/IProtyleOption.md)
+
+#### Defined in
+
+[siyuan.d.ts:555](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L555)
+
+---
+
+### protyleSlash
+
+> **protyleSlash**: `object`[]
+
+#### Defined in
+
+[siyuan.d.ts:548](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L548)
+
+---
+
+### setting
+
+> **setting**: [`Setting`](Setting.md)
+
+#### Defined in
+
+[siyuan.d.ts:547](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L547)
+
+## Methods
+
+### addCommand()
+
+> **addCommand**(`options`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------------------------------------------------- |
+| `options` | [`ICommandOption`](../interfaces/ICommandOption.md) |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:629](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L629)
+
+---
+
+### addDock()
+
+> **addDock**(`options`): `object`
+
+Must be executed before the synchronous function.
+
+#### Parameters
+
+| Parameter | Type |
+| ------------------ | --------------------------------------------------- |
+| `options` | `object` |
+| `options.config` | [`IPluginDockTab`](../interfaces/IPluginDockTab.md) |
+| `options.data` | `any` |
+| `options.destroy`? | (`this`) => `void` |
+| `options.init` | (`this`, `dock`) => `void` |
+| `options.resize`? | (`this`) => `void` |
+| `options.type` | `string` |
+| `options.update`? | (`this`) => `void` |
+
+#### Returns
+
+`object`
+
+##### config
+
+> **config**: [`IPluginDockTab`](../interfaces/IPluginDockTab.md)
+
+##### model
+
+> **model**: [`IDockModel`](../interfaces/IDockModel.md)
+
+#### Defined in
+
+[siyuan.d.ts:619](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L619)
+
+---
+
+### addFloatLayer()
+
+> **addFloatLayer**(`options`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ------------------------ | ------------- |
+| `options` | `object` |
+| `options.defIds`? | `string`[] |
+| `options.ids` | `string`[] |
+| `options.targetElement`? | `HTMLElement` |
+| `options.x`? | `number` |
+| `options.y`? | `number` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:631](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L631)
+
+---
+
+### addIcons()
+
+> **addIcons**(`svg`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `svg` | `string` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:600](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L600)
+
+---
+
+### addStatusBar()
+
+> **addStatusBar**(`options`): `HTMLElement`
+
+Must be executed before the synchronous function.
+
+#### Parameters
+
+| Parameter | Type | Description |
+| ------------------- | --------------------- | ----------- |
+| `options` | `object` | - |
+| `options.element` | `HTMLElement` | - |
+| `options.position`? | `"left"` \| `"right"` | |
+
+#### Returns
+
+`HTMLElement`
+
+#### Defined in
+
+[siyuan.d.ts:587](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L587)
+
+---
+
+### addTab()
+
+> **addTab**(`options`): () => [`ITabModel`](../interfaces/ITabModel.md)
+
+Must be executed before the synchronous function.
+
+#### Parameters
+
+| Parameter | Type |
+| ------------------------ | ------------------ |
+| `options` | `object` |
+| `options.beforeDestroy`? | (`this`) => `void` |
+| `options.destroy`? | (`this`) => `void` |
+| `options.init` | (`this`) => `void` |
+| `options.resize`? | (`this`) => `void` |
+| `options.type` | `string` |
+| `options.update`? | (`this`) => `void` |
+
+#### Returns
+
+`Function`
+
+##### Returns
+
+[`ITabModel`](../interfaces/ITabModel.md)
+
+#### Defined in
+
+[siyuan.d.ts:607](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L607)
+
+---
+
+### addTopBar()
+
+> **addTopBar**(`options`): `HTMLElement`
+
+Must be executed before the synchronous function.
+
+#### Parameters
+
+| Parameter | Type | Description |
+| ------------------- | --------------------- | -------------------------- |
+| `options` | `object` | - |
+| `options.callback` | (`event`) => `void` | - |
+| `options.icon` | `string` | Support svg id or svg tag. |
+| `options.position`? | `"left"` \| `"right"` | |
+| `options.title` | `string` | - |
+
+#### Returns
+
+`HTMLElement`
+
+#### Defined in
+
+[siyuan.d.ts:576](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L576)
+
+---
+
+### getOpenedTab()
+
+> **getOpenedTab**(): `object`
+
+#### Returns
+
+`object`
+
+#### Defined in
+
+[siyuan.d.ts:602](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L602)
+
+---
+
+### loadData()
+
+> **loadData**(`storageName`): `Promise`\<`any`\>
+
+#### Parameters
+
+| Parameter | Type |
+| ------------- | -------- |
+| `storageName` | `string` |
+
+#### Returns
+
+`Promise`\<`any`\>
+
+#### Defined in
+
+[siyuan.d.ts:594](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L594)
+
+---
+
+### onLayoutReady()
+
+> **onLayoutReady**(): `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:569](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L569)
+
+---
+
+### onload()
+
+> **onload**(): `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:563](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L563)
+
+---
+
+### onunload()
+
+> **onunload**(): `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:565](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L565)
+
+---
+
+### openSetting()
+
+> **openSetting**(): `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:592](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L592)
+
+---
+
+### removeData()
+
+> **removeData**(`storageName`): `Promise`\<`any`\>
+
+#### Parameters
+
+| Parameter | Type |
+| ------------- | -------- |
+| `storageName` | `string` |
+
+#### Returns
+
+`Promise`\<`any`\>
+
+#### Defined in
+
+[siyuan.d.ts:598](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L598)
+
+---
+
+### saveData()
+
+> **saveData**(`storageName`, `content`): `Promise`\<`void`\>
+
+#### Parameters
+
+| Parameter | Type |
+| ------------- | -------- |
+| `storageName` | `string` |
+| `content` | `any` |
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[siyuan.d.ts:596](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L596)
+
+---
+
+### uninstall()
+
+> **uninstall**(): `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:567](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L567)
+
+---
+
+### updateCards()
+
+> **updateCards**(`options`): [`ICardData`](../interfaces/ICardData.md) \| `Promise`\<[`ICardData`](../interfaces/ICardData.md)\>
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ----------------------------------------- |
+| `options` | [`ICardData`](../interfaces/ICardData.md) |
+
+#### Returns
+
+[`ICardData`](../interfaces/ICardData.md) \| `Promise`\<[`ICardData`](../interfaces/ICardData.md)\>
+
+#### Defined in
+
+[siyuan.d.ts:639](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L639)
diff --git a/docs/markdown/classes/Protyle.md b/docs/markdown/classes/Protyle.md
new file mode 100644
index 0000000..1528ac2
--- /dev/null
+++ b/docs/markdown/classes/Protyle.md
@@ -0,0 +1,296 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / Protyle
+
+# Class: Protyle
+
+## Constructors
+
+### new Protyle()
+
+> **new Protyle**(`app`, `element`, `options`?): [`Protyle`](Protyle.md)
+
+#### Parameters
+
+| Parameter | Type |
+| ---------- | --------------------------------------------------- |
+| `app` | [`App`](App.md) |
+| `element` | `HTMLElement` |
+| `options`? | [`IProtyleOption`](../interfaces/IProtyleOption.md) |
+
+#### Returns
+
+[`Protyle`](Protyle.md)
+
+#### Defined in
+
+[types/protyle.d.ts:133](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L133)
+
+## Properties
+
+### protyle
+
+> **protyle**: [`IProtyle`](../interfaces/IProtyle.md)
+
+#### Defined in
+
+[types/protyle.d.ts:131](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L131)
+
+## Methods
+
+### destroy()
+
+> **destroy**(): `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:137](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L137)
+
+---
+
+### focusBlock()
+
+> **focusBlock**(`element`, `toStart`?): `false` \| `Range`
+
+#### Parameters
+
+| Parameter | Type | Description |
+| ---------- | --------- | ----------- |
+| `element` | `Element` | - |
+| `toStart`? | `boolean` | |
+
+#### Returns
+
+`false` \| `Range`
+
+#### Defined in
+
+[types/protyle.d.ts:176](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L176)
+
+---
+
+### getRange()
+
+> **getRange**(`element`): `Range`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `element` | `Element` |
+
+#### Returns
+
+`Range`
+
+#### Defined in
+
+[types/protyle.d.ts:169](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L169)
+
+---
+
+### hasClosestBlock()
+
+> **hasClosestBlock**(`element`): `false` \| `HTMLElement`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ------ |
+| `element` | `Node` |
+
+#### Returns
+
+`false` \| `HTMLElement`
+
+#### Defined in
+
+[types/protyle.d.ts:171](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L171)
+
+---
+
+### insert()
+
+> **insert**(`html`, `isBlock`?, `useProtyleRange`?): `void`
+
+#### Parameters
+
+| Parameter | Type | Description |
+| ------------------ | --------- | ----------- |
+| `html` | `string` | - |
+| `isBlock`? | `boolean` | |
+| `useProtyleRange`? | `boolean` | |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:147](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L147)
+
+---
+
+### isUploading()
+
+> **isUploading**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+#### Defined in
+
+[types/protyle.d.ts:135](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L135)
+
+---
+
+### reload()
+
+> **reload**(`focus`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------- |
+| `focus` | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:141](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L141)
+
+---
+
+### resize()
+
+> **resize**(): `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:139](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L139)
+
+---
+
+### transaction()
+
+> **transaction**(`doOperations`, `undoOperations`?): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ----------------- | --------------------------------------------- |
+| `doOperations` | [`IOperation`](../interfaces/IOperation.md)[] |
+| `undoOperations`? | [`IOperation`](../interfaces/IOperation.md)[] |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:149](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L149)
+
+---
+
+### turnIntoOneTransaction()
+
+> **turnIntoOneTransaction**(`selectsElement`, `type`, `subType`?): `void`
+
+多个块转换为一个块
+
+#### Parameters
+
+| Parameter | Type | Description |
+| ---------------- | ------------------------------------------------------- | -------------------------------------- |
+| `selectsElement` | `Element`[] | - |
+| `type` | [`TTurnIntoOne`](../type-aliases/TTurnIntoOne.md) | - |
+| `subType`? | [`TTurnIntoOneSub`](../type-aliases/TTurnIntoOneSub.md) | type 为 "BlocksMergeSuperBlock" 时必传 |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:155](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L155)
+
+---
+
+### turnIntoTransaction()
+
+> **turnIntoTransaction**(`nodeElement`?, `type`?, `subType`?): `void`
+
+多个块转换
+
+#### Parameters
+
+| Parameter | Type | Description |
+| -------------- | ------------------------------------------- | -------------------------------------------------------------------- |
+| `nodeElement`? | `Element` | 优先使用包含 protyle-wysiwyg--select 的块,否则使用 nodeElement 单块 |
+| `type`? | [`TTurnInto`](../type-aliases/TTurnInto.md) | |
+| `subType`? | `number` | type 为 "Blocks2Hs" 时必传 |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:163](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L163)
+
+---
+
+### updateBatchTransaction()
+
+> **updateBatchTransaction**(`nodeElements`, `cb`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| -------------- | --------------- |
+| `nodeElements` | `Element`[] |
+| `cb` | (`e`) => `void` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:167](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L167)
+
+---
+
+### updateTransaction()
+
+> **updateTransaction**(`id`, `newHTML`, `html`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `id` | `string` |
+| `newHTML` | `string` |
+| `html` | `string` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:165](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L165)
diff --git a/docs/markdown/classes/Setting.md b/docs/markdown/classes/Setting.md
new file mode 100644
index 0000000..5fb4064
--- /dev/null
+++ b/docs/markdown/classes/Setting.md
@@ -0,0 +1,76 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / Setting
+
+# Class: Setting
+
+## Constructors
+
+### new Setting()
+
+> **new Setting**(`options`): [`Setting`](Setting.md)
+
+#### Parameters
+
+| Parameter | Type |
+| -------------------------- | ------------ |
+| `options` | `object` |
+| `options.confirmCallback`? | () => `void` |
+| `options.destroyCallback`? | () => `void` |
+| `options.height`? | `string` |
+| `options.width`? | `string` |
+
+#### Returns
+
+[`Setting`](Setting.md)
+
+#### Defined in
+
+[siyuan.d.ts:643](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L643)
+
+## Methods
+
+### addItem()
+
+> **addItem**(`options`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ------------------------------ | --------------------- |
+| `options` | `object` |
+| `options.actionElement`? | `HTMLElement` |
+| `options.createActionElement`? | () => `HTMLElement` |
+| `options.description`? | `string` |
+| `options.direction`? | `"column"` \| `"row"` |
+| `options.title` | `string` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:650](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L650)
+
+---
+
+### open()
+
+> **open**(`name`): `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `name` | `string` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:658](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L658)
diff --git a/docs/markdown/classes/Toolbar.md b/docs/markdown/classes/Toolbar.md
new file mode 100644
index 0000000..08286c5
--- /dev/null
+++ b/docs/markdown/classes/Toolbar.md
@@ -0,0 +1,270 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / Toolbar
+
+# Class: Toolbar
+
+## Constructors
+
+### new Toolbar()
+
+> **new Toolbar**(`protyle`): [`Toolbar`](Toolbar.md)
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------------------------------------- |
+| `protyle` | [`IProtyle`](../interfaces/IProtyle.md) |
+
+#### Returns
+
+[`Toolbar`](Toolbar.md)
+
+#### Defined in
+
+[types/protyle.d.ts:185](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L185)
+
+## Properties
+
+### element
+
+> **element**: `HTMLElement`
+
+#### Defined in
+
+[types/protyle.d.ts:180](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L180)
+
+---
+
+### range
+
+> **range**: `Range`
+
+#### Defined in
+
+[types/protyle.d.ts:183](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L183)
+
+---
+
+### subElement
+
+> **subElement**: `HTMLElement`
+
+#### Defined in
+
+[types/protyle.d.ts:181](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L181)
+
+---
+
+### subElementCloseCB()
+
+> **subElementCloseCB**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:182](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L182)
+
+## Methods
+
+### getCurrentType()
+
+> **getCurrentType**(`range`): `string`[]
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ------- |
+| `range` | `Range` |
+
+#### Returns
+
+`string`[]
+
+#### Defined in
+
+[types/protyle.d.ts:204](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L204)
+
+---
+
+### render()
+
+> **render**(`protyle`, `range`, `event`?): `any`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | --------------------------------------- |
+| `protyle` | [`IProtyle`](../interfaces/IProtyle.md) |
+| `range` | `Range` |
+| `event`? | `KeyboardEvent` |
+
+#### Returns
+
+`any`
+
+#### Defined in
+
+[types/protyle.d.ts:187](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L187)
+
+---
+
+### setInlineMark()
+
+> **setInlineMark**(`protyle`, `type`, `action`, `textObj`?): `any`
+
+#### Parameters
+
+| Parameter | Type |
+| ---------------- | --------------------------------------- |
+| `protyle` | [`IProtyle`](../interfaces/IProtyle.md) |
+| `type` | `string` |
+| `action` | `"range"` \| `"toolbar"` |
+| `textObj`? | `object` |
+| `textObj.color`? | `string` |
+| `textObj.type`? | `string` |
+
+#### Returns
+
+`any`
+
+#### Defined in
+
+[types/protyle.d.ts:199](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L199)
+
+---
+
+### showAssets()
+
+> **showAssets**(`protyle`, `position`, `avCB`?): `any`
+
+#### Parameters
+
+| Parameter | Type |
+| ---------- | ----------------------------------------- |
+| `protyle` | [`IProtyle`](../interfaces/IProtyle.md) |
+| `position` | [`IPosition`](../interfaces/IPosition.md) |
+| `avCB`? | (`url`) => `void` |
+
+#### Returns
+
+`any`
+
+#### Defined in
+
+[types/protyle.d.ts:206](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L206)
+
+---
+
+### showCodeLanguage()
+
+> **showCodeLanguage**(`protyle`, `languageElement`): `any`
+
+#### Parameters
+
+| Parameter | Type |
+| ----------------- | --------------------------------------- |
+| `protyle` | [`IProtyle`](../interfaces/IProtyle.md) |
+| `languageElement` | `HTMLElement` |
+
+#### Returns
+
+`any`
+
+#### Defined in
+
+[types/protyle.d.ts:195](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L195)
+
+---
+
+### showContent()
+
+> **showContent**(`protyle`, `range`, `nodeElement`): `any`
+
+#### Parameters
+
+| Parameter | Type |
+| ------------- | --------------------------------------- |
+| `protyle` | [`IProtyle`](../interfaces/IProtyle.md) |
+| `range` | `Range` |
+| `nodeElement` | `Element` |
+
+#### Returns
+
+`any`
+
+#### Defined in
+
+[types/protyle.d.ts:189](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L189)
+
+---
+
+### showRender()
+
+> **showRender**(`protyle`, `renderElement`, `updateElements`?, `oldHTML`?): `any`
+
+#### Parameters
+
+| Parameter | Type |
+| ----------------- | --------------------------------------- |
+| `protyle` | [`IProtyle`](../interfaces/IProtyle.md) |
+| `renderElement` | `Element` |
+| `updateElements`? | `Element`[] |
+| `oldHTML`? | `string` |
+
+#### Returns
+
+`any`
+
+#### Defined in
+
+[types/protyle.d.ts:197](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L197)
+
+---
+
+### showTpl()
+
+> **showTpl**(`protyle`, `nodeElement`, `range`): `any`
+
+#### Parameters
+
+| Parameter | Type |
+| ------------- | --------------------------------------- |
+| `protyle` | [`IProtyle`](../interfaces/IProtyle.md) |
+| `nodeElement` | `HTMLElement` |
+| `range` | `Range` |
+
+#### Returns
+
+`any`
+
+#### Defined in
+
+[types/protyle.d.ts:193](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L193)
+
+---
+
+### showWidget()
+
+> **showWidget**(`protyle`, `nodeElement`, `range`): `any`
+
+#### Parameters
+
+| Parameter | Type |
+| ------------- | --------------------------------------- |
+| `protyle` | [`IProtyle`](../interfaces/IProtyle.md) |
+| `nodeElement` | `HTMLElement` |
+| `range` | `Range` |
+
+#### Returns
+
+`any`
+
+#### Defined in
+
+[types/protyle.d.ts:191](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L191)
diff --git a/docs/markdown/functions/adaptHotkey.md b/docs/markdown/functions/adaptHotkey.md
new file mode 100644
index 0000000..ddc89f7
--- /dev/null
+++ b/docs/markdown/functions/adaptHotkey.md
@@ -0,0 +1,23 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / adaptHotkey
+
+# Function: adaptHotkey()
+
+> **adaptHotkey**(`hotkey`): `string`
+
+## Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `hotkey` | `string` |
+
+## Returns
+
+`string`
+
+## Defined in
+
+[siyuan.d.ts:509](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L509)
diff --git a/docs/markdown/functions/confirm.md b/docs/markdown/functions/confirm.md
new file mode 100644
index 0000000..64e7ca5
--- /dev/null
+++ b/docs/markdown/functions/confirm.md
@@ -0,0 +1,26 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / confirm
+
+# Function: confirm()
+
+> **confirm**(`title`, `text`, `confirmCallback`?, `cancelCallback`?): `void`
+
+## Parameters
+
+| Parameter | Type |
+| ------------------ | -------------------- |
+| `title` | `string` |
+| `text` | `string` |
+| `confirmCallback`? | (`dialog`) => `void` |
+| `cancelCallback`? | (`dialog`) => `void` |
+
+## Returns
+
+`void`
+
+## Defined in
+
+[siyuan.d.ts:511](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L511)
diff --git a/docs/markdown/functions/fetchGet.md b/docs/markdown/functions/fetchGet.md
new file mode 100644
index 0000000..3ae0629
--- /dev/null
+++ b/docs/markdown/functions/fetchGet.md
@@ -0,0 +1,24 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / fetchGet
+
+# Function: fetchGet()
+
+> **fetchGet**(`url`, `callback`): `void`
+
+## Parameters
+
+| Parameter | Type |
+| ---------- | ---------------------- |
+| `url` | `string` |
+| `callback` | (`response`) => `void` |
+
+## Returns
+
+`void`
+
+## Defined in
+
+[siyuan.d.ts:453](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L453)
diff --git a/docs/markdown/functions/fetchPost.md b/docs/markdown/functions/fetchPost.md
new file mode 100644
index 0000000..a00a4b5
--- /dev/null
+++ b/docs/markdown/functions/fetchPost.md
@@ -0,0 +1,26 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / fetchPost
+
+# Function: fetchPost()
+
+> **fetchPost**(`url`, `data`?, `callback`?, `headers`?): `void`
+
+## Parameters
+
+| Parameter | Type |
+| ----------- | ------------------------------------- |
+| `url` | `string` |
+| `data`? | `any` |
+| `callback`? | (`response`) => `void` |
+| `headers`? | [`IObject`](../interfaces/IObject.md) |
+
+## Returns
+
+`void`
+
+## Defined in
+
+[siyuan.d.ts:449](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L449)
diff --git a/docs/markdown/functions/fetchSyncPost.md b/docs/markdown/functions/fetchSyncPost.md
new file mode 100644
index 0000000..ff51d97
--- /dev/null
+++ b/docs/markdown/functions/fetchSyncPost.md
@@ -0,0 +1,24 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / fetchSyncPost
+
+# Function: fetchSyncPost()
+
+> **fetchSyncPost**(`url`, `data`?): `Promise`\<[`IWebSocketData`](../interfaces/IWebSocketData.md)\>
+
+## Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `url` | `string` |
+| `data`? | `any` |
+
+## Returns
+
+`Promise`\<[`IWebSocketData`](../interfaces/IWebSocketData.md)\>
+
+## Defined in
+
+[siyuan.d.ts:451](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L451)
diff --git a/docs/markdown/functions/getBackend.md b/docs/markdown/functions/getBackend.md
new file mode 100644
index 0000000..3ac0b2b
--- /dev/null
+++ b/docs/markdown/functions/getBackend.md
@@ -0,0 +1,17 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / getBackend
+
+# Function: getBackend()
+
+> **getBackend**(): [`TBackendEnv`](../type-aliases/TBackendEnv.md)
+
+## Returns
+
+[`TBackendEnv`](../type-aliases/TBackendEnv.md)
+
+## Defined in
+
+[siyuan.d.ts:507](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L507)
diff --git a/docs/markdown/functions/getFrontend.md b/docs/markdown/functions/getFrontend.md
new file mode 100644
index 0000000..cca9d27
--- /dev/null
+++ b/docs/markdown/functions/getFrontend.md
@@ -0,0 +1,17 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / getFrontend
+
+# Function: getFrontend()
+
+> **getFrontend**(): [`TFrontendEnv`](../type-aliases/TFrontendEnv.md)
+
+## Returns
+
+[`TFrontendEnv`](../type-aliases/TFrontendEnv.md)
+
+## Defined in
+
+[siyuan.d.ts:503](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L503)
diff --git a/docs/markdown/functions/lockScreen.md b/docs/markdown/functions/lockScreen.md
new file mode 100644
index 0000000..6d4cc4d
--- /dev/null
+++ b/docs/markdown/functions/lockScreen.md
@@ -0,0 +1,23 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / lockScreen
+
+# Function: lockScreen()
+
+> **lockScreen**(`app`): `void`
+
+## Parameters
+
+| Parameter | Type |
+| --------- | -------------------------- |
+| `app` | [`App`](../classes/App.md) |
+
+## Returns
+
+`void`
+
+## Defined in
+
+[siyuan.d.ts:505](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L505)
diff --git a/docs/markdown/functions/openMobileFileById.md b/docs/markdown/functions/openMobileFileById.md
new file mode 100644
index 0000000..d5c5c0e
--- /dev/null
+++ b/docs/markdown/functions/openMobileFileById.md
@@ -0,0 +1,25 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / openMobileFileById
+
+# Function: openMobileFileById()
+
+> **openMobileFileById**(`app`, `id`, `action`?): `void`
+
+## Parameters
+
+| Parameter | Type |
+| --------- | -------------------------- |
+| `app` | [`App`](../classes/App.md) |
+| `id` | `string` |
+| `action`? | `string`[] |
+
+## Returns
+
+`void`
+
+## Defined in
+
+[siyuan.d.ts:468](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L468)
diff --git a/docs/markdown/functions/openTab.md b/docs/markdown/functions/openTab.md
new file mode 100644
index 0000000..2d94dc5
--- /dev/null
+++ b/docs/markdown/functions/openTab.md
@@ -0,0 +1,48 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / openTab
+
+# Function: openTab()
+
+> **openTab**(`options`): `Promise`\<[`ITab`](../interfaces/ITab.md)\>
+
+## Parameters
+
+| Parameter | Type |
+| --------------------------- | ------------------------------------------------------- |
+| `options` | `object` |
+| `options.afterOpen`? | () => `void` |
+| `options.app` | [`App`](../classes/App.md) |
+| `options.asset`? | `object` |
+| `options.asset.path` | `string` |
+| `options.card`? | `object` |
+| `options.card.id`? | `string` |
+| `options.card.title`? | `string` |
+| `options.card.type` | [`TCardType`](../type-aliases/TCardType.md) |
+| `options.custom`? | `object` |
+| `options.custom.data`? | `any` |
+| `options.custom.icon` | `string` |
+| `options.custom.id` | `string` |
+| `options.custom.title` | `string` |
+| `options.doc`? | `object` |
+| `options.doc.action`? | [`TProtyleAction`](../type-aliases/TProtyleAction.md)[] |
+| `options.doc.id` | `string` |
+| `options.doc.zoomIn`? | `boolean` |
+| `options.keepCursor`? | `boolean` |
+| `options.pdf`? | `object` |
+| `options.pdf.id`? | `string` |
+| `options.pdf.page`? | `number` |
+| `options.pdf.path` | `string` |
+| `options.position`? | `"right"` \| `"bottom"` |
+| `options.removeCurrentTab`? | `boolean` |
+| `options.search`? | [`ISearchOption`](../interfaces/ISearchOption.md) |
+
+## Returns
+
+`Promise`\<[`ITab`](../interfaces/ITab.md)\>
+
+## Defined in
+
+[siyuan.d.ts:470](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L470)
diff --git a/docs/markdown/functions/openWindow.md b/docs/markdown/functions/openWindow.md
new file mode 100644
index 0000000..ed8f4fe
--- /dev/null
+++ b/docs/markdown/functions/openWindow.md
@@ -0,0 +1,31 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / openWindow
+
+# Function: openWindow()
+
+> **openWindow**(`options`): `void`
+
+## Parameters
+
+| Parameter | Type |
+| -------------------- | ------------------------------- |
+| `options` | `object` |
+| `options.doc`? | `object` |
+| `options.doc.id` | `string` |
+| `options.height`? | `number` |
+| `options.position`? | `object` |
+| `options.position.x` | `number` |
+| `options.position.y` | `number` |
+| `options.tab`? | [`ITab`](../interfaces/ITab.md) |
+| `options.width`? | `number` |
+
+## Returns
+
+`void`
+
+## Defined in
+
+[siyuan.d.ts:455](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L455)
diff --git a/docs/markdown/functions/showMessage.md b/docs/markdown/functions/showMessage.md
new file mode 100644
index 0000000..8299cac
--- /dev/null
+++ b/docs/markdown/functions/showMessage.md
@@ -0,0 +1,26 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / showMessage
+
+# Function: showMessage()
+
+> **showMessage**(`text`, `timeout`?, `type`?, `id`?): `void`
+
+## Parameters
+
+| Parameter | Type | Description |
+| ---------- | --------------------- | ------------------------------------------------------------------ |
+| `text` | `string` | Message text
消息文本 |
+| `timeout`? | `number` | Timeout in milliseconds
超时时间(毫秒) - `0`: manual close |
+| `type`? | `"error"` \| `"info"` | - |
+| `id`? | `string` | - |
+
+## Returns
+
+`void`
+
+## Defined in
+
+[siyuan.d.ts:526](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L526)
diff --git a/docs/markdown/interfaces/Global.md b/docs/markdown/interfaces/Global.md
new file mode 100644
index 0000000..0bdf13f
--- /dev/null
+++ b/docs/markdown/interfaces/Global.md
@@ -0,0 +1,27 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / Global
+
+# Interface: Global
+
+## Properties
+
+### Lute
+
+> **Lute**: _typeof_ [`Lute`](../classes/Lute.md)
+
+#### Defined in
+
+[siyuan.d.ts:110](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L110)
+
+---
+
+### siyuan
+
+> **siyuan**: [`ISiyuan`](ISiyuan.md)
+
+#### Defined in
+
+[siyuan.d.ts:111](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L111)
diff --git a/docs/markdown/interfaces/I18N.md b/docs/markdown/interfaces/I18N.md
new file mode 100644
index 0000000..b9f2daa
--- /dev/null
+++ b/docs/markdown/interfaces/I18N.md
@@ -0,0 +1,11 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / I18N
+
+# Interface: I18N
+
+## Indexable
+
+\[`key`: `string`\]: `any`
diff --git a/docs/markdown/interfaces/ICard.md b/docs/markdown/interfaces/ICard.md
new file mode 100644
index 0000000..c7b427d
--- /dev/null
+++ b/docs/markdown/interfaces/ICard.md
@@ -0,0 +1,47 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / ICard
+
+# Interface: ICard
+
+## Properties
+
+### blockID
+
+> **blockID**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:438](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L438)
+
+---
+
+### cardID
+
+> **cardID**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:437](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L437)
+
+---
+
+### deckID
+
+> **deckID**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:436](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L436)
+
+---
+
+### nextDues
+
+> **nextDues**: [`IObject`](IObject.md)
+
+#### Defined in
+
+[siyuan.d.ts:439](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L439)
diff --git a/docs/markdown/interfaces/ICardData.md b/docs/markdown/interfaces/ICardData.md
new file mode 100644
index 0000000..0c2432b
--- /dev/null
+++ b/docs/markdown/interfaces/ICardData.md
@@ -0,0 +1,47 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / ICardData
+
+# Interface: ICardData
+
+## Properties
+
+### cards
+
+> **cards**: [`ICard`](ICard.md)[]
+
+#### Defined in
+
+[siyuan.d.ts:443](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L443)
+
+---
+
+### unreviewedCount
+
+> **unreviewedCount**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:444](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L444)
+
+---
+
+### unreviewedNewCardCount
+
+> **unreviewedNewCardCount**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:445](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L445)
+
+---
+
+### unreviewedOldCardCount
+
+> **unreviewedOldCardCount**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:446](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L446)
diff --git a/docs/markdown/interfaces/ICommandOption.md b/docs/markdown/interfaces/ICommandOption.md
new file mode 100644
index 0000000..19155fd
--- /dev/null
+++ b/docs/markdown/interfaces/ICommandOption.md
@@ -0,0 +1,144 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / ICommandOption
+
+# Interface: ICommandOption
+
+## Properties
+
+### callback()?
+
+> `optional` **callback**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:406](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L406)
+
+---
+
+### customHotkey?
+
+> `optional` **customHotkey**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:405](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L405)
+
+---
+
+### dockCallback()?
+
+> `optional` **dockCallback**: (`element`) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ------------- |
+| `element` | `HTMLElement` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:410](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L410)
+
+---
+
+### editorCallback()?
+
+> `optional` **editorCallback**: (`protyle`) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ----- |
+| `protyle` | `any` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:409](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L409)
+
+---
+
+### fileTreeCallback()?
+
+> `optional` **fileTreeCallback**: (`file`) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ----- |
+| `file` | `any` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:408](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L408)
+
+---
+
+### globalCallback()?
+
+> `optional` **globalCallback**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:407](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L407)
+
+---
+
+### hotkey
+
+> **hotkey**: `string`
+
+目前需使用 MacOS 符号标识,顺序按照 ⌥⇧⌘,入 ⌥⇧⌘A
+"Ctrl": "⌘",
+"Shift": "⇧",
+"Alt": "⌥",
+"Tab": "⇥",
+"Backspace": "⌫",
+"Delete": "⌦",
+"Enter": "↩",
+
+#### Defined in
+
+[siyuan.d.ts:404](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L404)
+
+---
+
+### langKey
+
+> **langKey**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:392](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L392)
+
+---
+
+### langText?
+
+> `optional` **langText**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:393](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L393)
diff --git a/docs/markdown/interfaces/ICustomModel.md b/docs/markdown/interfaces/ICustomModel.md
new file mode 100644
index 0000000..be2d8c5
--- /dev/null
+++ b/docs/markdown/interfaces/ICustomModel.md
@@ -0,0 +1,217 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / ICustomModel
+
+# Interface: ICustomModel
+
+## Extends
+
+- [`IModel`](IModel.md)
+
+## Extended by
+
+- [`ITabModel`](ITabModel.md)
+
+## Properties
+
+### app
+
+> **app**: [`App`](../classes/App.md)
+
+#### Inherited from
+
+[`IModel`](IModel.md).[`app`](IModel.md#app)
+
+#### Defined in
+
+[siyuan.d.ts:264](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L264)
+
+---
+
+### beforeDestroy()?
+
+> `optional` **beforeDestroy**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:284](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L284)
+
+---
+
+### data
+
+> **data**: `any`
+
+#### Defined in
+
+[siyuan.d.ts:273](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L273)
+
+---
+
+### destroy()?
+
+> `optional` **destroy**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:286](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L286)
+
+---
+
+### editors
+
+> **editors**: [`Protyle`](../classes/Protyle.md)[]
+
+#### Defined in
+
+[siyuan.d.ts:276](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L276)
+
+---
+
+### element
+
+> **element**: `HTMLElement`
+
+#### Defined in
+
+[siyuan.d.ts:275](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L275)
+
+---
+
+### init()
+
+> **init**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:278](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L278)
+
+---
+
+### parent
+
+> **parent**: `any`
+
+#### Inherited from
+
+[`IModel`](IModel.md).[`parent`](IModel.md#parent)
+
+#### Defined in
+
+[siyuan.d.ts:266](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L266)
+
+---
+
+### reqId
+
+> **reqId**: `number`
+
+#### Inherited from
+
+[`IModel`](IModel.md).[`reqId`](IModel.md#reqid)
+
+#### Defined in
+
+[siyuan.d.ts:265](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L265)
+
+---
+
+### resize()?
+
+> `optional` **resize**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:282](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L282)
+
+---
+
+### send()
+
+> **send**: (`cmd`, `param`, `process`?) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ---------- | ------------------------------- |
+| `cmd` | `string` |
+| `param` | `Record`\<`string`, `unknown`\> |
+| `process`? | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`IModel`](IModel.md).[`send`](IModel.md#send)
+
+#### Defined in
+
+[siyuan.d.ts:268](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L268)
+
+---
+
+### tab
+
+> **tab**: [`ITab`](ITab.md)
+
+#### Defined in
+
+[siyuan.d.ts:272](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L272)
+
+---
+
+### type
+
+> **type**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:274](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L274)
+
+---
+
+### update()?
+
+> `optional` **update**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:280](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L280)
+
+---
+
+### ws
+
+> **ws**: `WebSocket`
+
+#### Inherited from
+
+[`IModel`](IModel.md).[`ws`](IModel.md#ws)
+
+#### Defined in
+
+[siyuan.d.ts:263](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L263)
diff --git a/docs/markdown/interfaces/IDockModel.md b/docs/markdown/interfaces/IDockModel.md
new file mode 100644
index 0000000..1187086
--- /dev/null
+++ b/docs/markdown/interfaces/IDockModel.md
@@ -0,0 +1,235 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IDockModel
+
+# Interface: IDockModel
+
+## Extends
+
+- `Omit`\<[`ICustomModel`](ICustomModel.md), `"beforeDestroy"`\>
+
+## Properties
+
+### app
+
+> **app**: [`App`](../classes/App.md)
+
+#### Inherited from
+
+`Omit.app`
+
+#### Defined in
+
+[siyuan.d.ts:264](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L264)
+
+---
+
+### data
+
+> **data**: `any`
+
+#### Inherited from
+
+`Omit.data`
+
+#### Defined in
+
+[siyuan.d.ts:273](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L273)
+
+---
+
+### destroy()?
+
+> `optional` **destroy**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+`Omit.destroy`
+
+#### Defined in
+
+[siyuan.d.ts:286](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L286)
+
+---
+
+### editors
+
+> **editors**: [`Protyle`](../classes/Protyle.md)[]
+
+#### Inherited from
+
+`Omit.editors`
+
+#### Defined in
+
+[siyuan.d.ts:276](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L276)
+
+---
+
+### element
+
+> **element**: `HTMLElement`
+
+#### Inherited from
+
+`Omit.element`
+
+#### Defined in
+
+[siyuan.d.ts:275](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L275)
+
+---
+
+### init()
+
+> **init**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+`Omit.init`
+
+#### Defined in
+
+[siyuan.d.ts:278](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L278)
+
+---
+
+### parent
+
+> **parent**: `any`
+
+#### Inherited from
+
+`Omit.parent`
+
+#### Defined in
+
+[siyuan.d.ts:266](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L266)
+
+---
+
+### reqId
+
+> **reqId**: `number`
+
+#### Inherited from
+
+`Omit.reqId`
+
+#### Defined in
+
+[siyuan.d.ts:265](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L265)
+
+---
+
+### resize()?
+
+> `optional` **resize**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+`Omit.resize`
+
+#### Defined in
+
+[siyuan.d.ts:282](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L282)
+
+---
+
+### send()
+
+> **send**: (`cmd`, `param`, `process`?) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ---------- | ------------------------------- |
+| `cmd` | `string` |
+| `param` | `Record`\<`string`, `unknown`\> |
+| `process`? | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+`Omit.send`
+
+#### Defined in
+
+[siyuan.d.ts:268](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L268)
+
+---
+
+### tab
+
+> **tab**: [`ITab`](ITab.md)
+
+#### Inherited from
+
+`Omit.tab`
+
+#### Defined in
+
+[siyuan.d.ts:272](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L272)
+
+---
+
+### type
+
+> **type**: `string`
+
+#### Inherited from
+
+`Omit.type`
+
+#### Defined in
+
+[siyuan.d.ts:274](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L274)
+
+---
+
+### update()?
+
+> `optional` **update**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+`Omit.update`
+
+#### Defined in
+
+[siyuan.d.ts:280](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L280)
+
+---
+
+### ws
+
+> **ws**: `WebSocket`
+
+#### Inherited from
+
+`Omit.ws`
+
+#### Defined in
+
+[siyuan.d.ts:263](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L263)
diff --git a/docs/markdown/interfaces/IEventBusMap.md b/docs/markdown/interfaces/IEventBusMap.md
new file mode 100644
index 0000000..80ede32
--- /dev/null
+++ b/docs/markdown/interfaces/IEventBusMap.md
@@ -0,0 +1,503 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IEventBusMap
+
+# Interface: IEventBusMap
+
+## Properties
+
+### click-blockicon
+
+> **click-blockicon**: `object`
+
+#### blockElements
+
+> **blockElements**: `HTMLElement`[]
+
+#### menu
+
+> **menu**: [`EventMenu`](../classes/EventMenu.md)
+
+#### protyle
+
+> **protyle**: [`IProtyle`](IProtyle.md)
+
+#### Defined in
+
+[siyuan.d.ts:152](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L152)
+
+---
+
+### click-editorcontent
+
+> **click-editorcontent**: `object`
+
+#### event
+
+> **event**: `MouseEvent`
+
+#### protyle
+
+> **protyle**: [`IProtyle`](IProtyle.md)
+
+#### Defined in
+
+[siyuan.d.ts:157](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L157)
+
+---
+
+### click-editortitleicon
+
+> **click-editortitleicon**: `object`
+
+#### data
+
+> **data**: [`IGetDocInfo`](IGetDocInfo.md)
+
+#### menu
+
+> **menu**: [`EventMenu`](../classes/EventMenu.md)
+
+#### protyle
+
+> **protyle**: [`IProtyle`](IProtyle.md)
+
+#### Defined in
+
+[siyuan.d.ts:161](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L161)
+
+---
+
+### click-flashcard-action
+
+> **click-flashcard-action**: `object`
+
+#### card
+
+> **card**: [`ICard`](ICard.md)
+
+#### type
+
+> **type**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:148](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L148)
+
+---
+
+### click-pdf
+
+> **click-pdf**: `object`
+
+#### event
+
+> **event**: `MouseEvent`
+
+#### Defined in
+
+[siyuan.d.ts:166](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L166)
+
+---
+
+### destroy-protyle
+
+> **destroy-protyle**: `object`
+
+#### protyle
+
+> **protyle**: [`IProtyle`](IProtyle.md)
+
+#### Defined in
+
+[siyuan.d.ts:169](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L169)
+
+---
+
+### input-search
+
+> **input-search**: `object`
+
+#### config
+
+> **config**: [`ISearchOption`](ISearchOption.md)
+
+#### protyle
+
+> **protyle**: [`Protyle`](../classes/Protyle.md)
+
+#### searchElement
+
+> **searchElement**: `HTMLInputElement`
+
+#### Defined in
+
+[siyuan.d.ts:172](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L172)
+
+---
+
+### loaded-protyle-dynamic
+
+> **loaded-protyle-dynamic**: `object`
+
+#### position
+
+> **position**: `"afterend"` \| `"beforebegin"`
+
+#### protyle
+
+> **protyle**: [`IProtyle`](IProtyle.md)
+
+#### Defined in
+
+[siyuan.d.ts:177](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L177)
+
+---
+
+### loaded-protyle-static
+
+> **loaded-protyle-static**: `object`
+
+#### protyle
+
+> **protyle**: [`IProtyle`](IProtyle.md)
+
+#### Defined in
+
+[siyuan.d.ts:181](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L181)
+
+---
+
+### lock-screen
+
+> **lock-screen**: `void`
+
+#### Defined in
+
+[siyuan.d.ts:234](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L234)
+
+---
+
+### mobile-keyboard-hide
+
+> **mobile-keyboard-hide**: `void`
+
+#### Defined in
+
+[siyuan.d.ts:236](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L236)
+
+---
+
+### mobile-keyboard-show
+
+> **mobile-keyboard-show**: `void`
+
+#### Defined in
+
+[siyuan.d.ts:235](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L235)
+
+---
+
+### open-menu-av
+
+> **open-menu-av**: [`IMenuBaseDetail`](IMenuBaseDetail.md) & `object`
+
+#### Type declaration
+
+##### selectRowElements
+
+> **selectRowElements**: `HTMLElement`[]
+
+#### Defined in
+
+[siyuan.d.ts:187](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L187)
+
+---
+
+### open-menu-blockref
+
+> **open-menu-blockref**: [`IMenuBaseDetail`](IMenuBaseDetail.md)
+
+#### Defined in
+
+[siyuan.d.ts:188](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L188)
+
+---
+
+### open-menu-breadcrumbmore
+
+> **open-menu-breadcrumbmore**: `object`
+
+#### data
+
+> **data**: [`IGetTreeStat`](IGetTreeStat.md)
+
+#### menu
+
+> **menu**: [`EventMenu`](../classes/EventMenu.md)
+
+#### protyle
+
+> **protyle**: [`IProtyle`](IProtyle.md)
+
+#### Defined in
+
+[siyuan.d.ts:189](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L189)
+
+---
+
+### open-menu-content
+
+> **open-menu-content**: [`IMenuBaseDetail`](IMenuBaseDetail.md) & `object`
+
+#### Type declaration
+
+##### range
+
+> **range**: `Range`
+
+#### Defined in
+
+[siyuan.d.ts:194](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L194)
+
+---
+
+### open-menu-doctree
+
+> **open-menu-doctree**: `object`
+
+#### elements
+
+> **elements**: `NodeListOf`\<`HTMLElement`\>
+
+#### menu
+
+> **menu**: [`EventMenu`](../classes/EventMenu.md)
+
+#### type
+
+> **type**: `"doc"` \| `"notebook"` \| `"docs"`
+
+#### Defined in
+
+[siyuan.d.ts:199](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L199)
+
+---
+
+### open-menu-fileannotationref
+
+> **open-menu-fileannotationref**: [`IMenuBaseDetail`](IMenuBaseDetail.md)
+
+#### Defined in
+
+[siyuan.d.ts:195](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L195)
+
+---
+
+### open-menu-image
+
+> **open-menu-image**: [`IMenuBaseDetail`](IMenuBaseDetail.md)
+
+#### Defined in
+
+[siyuan.d.ts:196](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L196)
+
+---
+
+### open-menu-inbox
+
+> **open-menu-inbox**: `object`
+
+#### element
+
+> **element**: `HTMLElement`
+
+#### ids
+
+> **ids**: `string`[]
+
+#### menu
+
+> **menu**: [`EventMenu`](../classes/EventMenu.md)
+
+#### Defined in
+
+[siyuan.d.ts:204](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L204)
+
+---
+
+### open-menu-link
+
+> **open-menu-link**: [`IMenuBaseDetail`](IMenuBaseDetail.md)
+
+#### Defined in
+
+[siyuan.d.ts:197](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L197)
+
+---
+
+### open-menu-tag
+
+> **open-menu-tag**: [`IMenuBaseDetail`](IMenuBaseDetail.md)
+
+#### Defined in
+
+[siyuan.d.ts:198](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L198)
+
+---
+
+### open-noneditableblock
+
+> **open-noneditableblock**: `object`
+
+#### protyle
+
+> **protyle**: [`IProtyle`](IProtyle.md)
+
+#### toolbar
+
+> **toolbar**: [`Toolbar`](../classes/Toolbar.md)
+
+#### Defined in
+
+[siyuan.d.ts:209](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L209)
+
+---
+
+### open-siyuan-url-block
+
+> **open-siyuan-url-block**: `object`
+
+#### exist
+
+> **exist**: `boolean`
+
+#### focus
+
+> **focus**: `boolean`
+
+#### id
+
+> **id**: `string`
+
+#### url
+
+> **url**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:213](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L213)
+
+---
+
+### open-siyuan-url-plugin
+
+> **open-siyuan-url-plugin**: `object`
+
+#### url
+
+> **url**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:219](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L219)
+
+---
+
+### paste
+
+> **paste**: `object`
+
+#### files
+
+> **files**: `DataTransferItemList` \| `FileList`
+
+#### protyle
+
+> **protyle**: [`IProtyle`](IProtyle.md)
+
+#### resolve()
+
+> **resolve**: \<`T`\>(`value`) => `void`
+
+##### Parameters
+
+| Parameter | Type |
+| --------- | --------------------------- |
+| `value` | `T` \| `PromiseLike`\<`T`\> |
+
+##### Returns
+
+`void`
+
+#### siyuanHTML
+
+> **siyuanHTML**: `string`
+
+#### textHTML
+
+> **textHTML**: `string`
+
+#### textPlain
+
+> **textPlain**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:222](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L222)
+
+---
+
+### switch-protyle
+
+> **switch-protyle**: `object`
+
+#### protyle
+
+> **protyle**: [`IProtyle`](IProtyle.md)
+
+#### Defined in
+
+[siyuan.d.ts:184](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L184)
+
+---
+
+### sync-end
+
+> **sync-end**: [`IWebSocketData`](IWebSocketData.md)
+
+#### Defined in
+
+[siyuan.d.ts:232](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L232)
+
+---
+
+### sync-fail
+
+> **sync-fail**: [`IWebSocketData`](IWebSocketData.md)
+
+#### Defined in
+
+[siyuan.d.ts:233](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L233)
+
+---
+
+### sync-start
+
+> **sync-start**: [`IWebSocketData`](IWebSocketData.md)
+
+#### Defined in
+
+[siyuan.d.ts:231](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L231)
+
+---
+
+### ws-main
+
+> **ws-main**: [`IWebSocketData`](IWebSocketData.md)
+
+#### Defined in
+
+[siyuan.d.ts:230](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L230)
diff --git a/docs/markdown/interfaces/IGetDocInfo.md b/docs/markdown/interfaces/IGetDocInfo.md
new file mode 100644
index 0000000..b694d11
--- /dev/null
+++ b/docs/markdown/interfaces/IGetDocInfo.md
@@ -0,0 +1,87 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IGetDocInfo
+
+# Interface: IGetDocInfo
+
+## Properties
+
+### ial
+
+> **ial**: [`IObject`](IObject.md)
+
+#### Defined in
+
+[types/response.d.ts:4](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L4)
+
+---
+
+### icon
+
+> **icon**: `string`
+
+#### Defined in
+
+[types/response.d.ts:5](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L5)
+
+---
+
+### id
+
+> **id**: `string`
+
+#### Defined in
+
+[types/response.d.ts:6](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L6)
+
+---
+
+### name
+
+> **name**: `string`
+
+#### Defined in
+
+[types/response.d.ts:7](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L7)
+
+---
+
+### refCount
+
+> **refCount**: `number`
+
+#### Defined in
+
+[types/response.d.ts:8](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L8)
+
+---
+
+### refIDs
+
+> **refIDs**: `string`[]
+
+#### Defined in
+
+[types/response.d.ts:9](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L9)
+
+---
+
+### rootID
+
+> **rootID**: `string`
+
+#### Defined in
+
+[types/response.d.ts:10](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L10)
+
+---
+
+### subFileCount
+
+> **subFileCount**: `number`
+
+#### Defined in
+
+[types/response.d.ts:11](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L11)
diff --git a/docs/markdown/interfaces/IGetTreeStat.md b/docs/markdown/interfaces/IGetTreeStat.md
new file mode 100644
index 0000000..7f6b6e6
--- /dev/null
+++ b/docs/markdown/interfaces/IGetTreeStat.md
@@ -0,0 +1,57 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IGetTreeStat
+
+# Interface: IGetTreeStat
+
+## Properties
+
+### imageCount
+
+> **imageCount**: `number`
+
+#### Defined in
+
+[types/response.d.ts:15](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L15)
+
+---
+
+### linkCount
+
+> **linkCount**: `number`
+
+#### Defined in
+
+[types/response.d.ts:16](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L16)
+
+---
+
+### refCount
+
+> **refCount**: `number`
+
+#### Defined in
+
+[types/response.d.ts:17](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L17)
+
+---
+
+### runeCount
+
+> **runeCount**: `number`
+
+#### Defined in
+
+[types/response.d.ts:18](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L18)
+
+---
+
+### wordCount
+
+> **wordCount**: `number`
+
+#### Defined in
+
+[types/response.d.ts:19](https://github.com/siyuan-note/petal/tree/main/types/response.d.ts#L19)
diff --git a/docs/markdown/interfaces/IKeymap.md b/docs/markdown/interfaces/IKeymap.md
new file mode 100644
index 0000000..d81eb2d
--- /dev/null
+++ b/docs/markdown/interfaces/IKeymap.md
@@ -0,0 +1,85 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IKeymap
+
+# Interface: IKeymap
+
+## Properties
+
+### editor
+
+> **editor**: `object`
+
+#### general
+
+> **general**: `object`
+
+##### Index Signature
+
+\[`key`: `string`\]: [`IKeymapItem`](IKeymapItem.md)
+
+#### heading
+
+> **heading**: `object`
+
+##### Index Signature
+
+\[`key`: `string`\]: [`IKeymapItem`](IKeymapItem.md)
+
+#### insert
+
+> **insert**: `object`
+
+##### Index Signature
+
+\[`key`: `string`\]: [`IKeymapItem`](IKeymapItem.md)
+
+#### list
+
+> **list**: `object`
+
+##### Index Signature
+
+\[`key`: `string`\]: [`IKeymapItem`](IKeymapItem.md)
+
+#### table
+
+> **table**: `object`
+
+##### Index Signature
+
+\[`key`: `string`\]: [`IKeymapItem`](IKeymapItem.md)
+
+#### Defined in
+
+[siyuan.d.ts:128](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L128)
+
+---
+
+### general
+
+> **general**: `object`
+
+#### Index Signature
+
+\[`key`: `string`\]: [`IKeymapItem`](IKeymapItem.md)
+
+#### Defined in
+
+[siyuan.d.ts:125](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L125)
+
+---
+
+### plugin
+
+> **plugin**: `object`
+
+#### Index Signature
+
+\[`key`: `string`\]: `object`
+
+#### Defined in
+
+[siyuan.d.ts:120](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L120)
diff --git a/docs/markdown/interfaces/IKeymapItem.md b/docs/markdown/interfaces/IKeymapItem.md
new file mode 100644
index 0000000..f3791f9
--- /dev/null
+++ b/docs/markdown/interfaces/IKeymapItem.md
@@ -0,0 +1,27 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IKeymapItem
+
+# Interface: IKeymapItem
+
+## Properties
+
+### custom
+
+> **custom**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:116](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L116)
+
+---
+
+### default
+
+> **default**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:115](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L115)
diff --git a/docs/markdown/interfaces/ILuteNode.md b/docs/markdown/interfaces/ILuteNode.md
new file mode 100644
index 0000000..af90ef5
--- /dev/null
+++ b/docs/markdown/interfaces/ILuteNode.md
@@ -0,0 +1,43 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / ILuteNode
+
+# Interface: ILuteNode
+
+## Properties
+
+### TokensStr()
+
+> **TokensStr**: () => `string`
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[siyuan.d.ts:304](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L304)
+
+---
+
+### \_\_internal\_object\_\_
+
+> **\_\_internal\_object\_\_**: `object`
+
+#### HeadingLevel
+
+> **HeadingLevel**: `string`
+
+#### Parent
+
+> **Parent**: `object`
+
+#### Parent.Type
+
+> **Type**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:305](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L305)
diff --git a/docs/markdown/interfaces/IMenuBaseDetail.md b/docs/markdown/interfaces/IMenuBaseDetail.md
new file mode 100644
index 0000000..91771b8
--- /dev/null
+++ b/docs/markdown/interfaces/IMenuBaseDetail.md
@@ -0,0 +1,37 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IMenuBaseDetail
+
+# Interface: IMenuBaseDetail
+
+## Properties
+
+### element
+
+> **element**: `HTMLElement`
+
+#### Defined in
+
+[types/events.d.ts:7](https://github.com/siyuan-note/petal/tree/main/types/events.d.ts#L7)
+
+---
+
+### menu
+
+> **menu**: [`EventMenu`](../classes/EventMenu.md)
+
+#### Defined in
+
+[types/events.d.ts:5](https://github.com/siyuan-note/petal/tree/main/types/events.d.ts#L5)
+
+---
+
+### protyle
+
+> **protyle**: [`IProtyle`](IProtyle.md)
+
+#### Defined in
+
+[types/events.d.ts:6](https://github.com/siyuan-note/petal/tree/main/types/events.d.ts#L6)
diff --git a/docs/markdown/interfaces/IMenuItemOption.md b/docs/markdown/interfaces/IMenuItemOption.md
new file mode 100644
index 0000000..12011f5
--- /dev/null
+++ b/docs/markdown/interfaces/IMenuItemOption.md
@@ -0,0 +1,178 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IMenuItemOption
+
+# Interface: IMenuItemOption
+
+## Properties
+
+### accelerator?
+
+> `optional` **accelerator**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:378](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L378)
+
+---
+
+### action?
+
+> `optional` **action**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:379](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L379)
+
+---
+
+### bind()?
+
+> `optional` **bind**: (`element`) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ------------- |
+| `element` | `HTMLElement` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:386](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L386)
+
+---
+
+### click()?
+
+> `optional` **click**: (`element`, `event`) => `boolean` \| `void` \| `Promise`\<`boolean` \| `void`\>
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ------------- |
+| `element` | `HTMLElement` |
+| `event` | `MouseEvent` |
+
+#### Returns
+
+`boolean` \| `void` \| `Promise`\<`boolean` \| `void`\>
+
+#### Defined in
+
+[siyuan.d.ts:373](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L373)
+
+---
+
+### current?
+
+> `optional` **current**: `boolean`
+
+#### Defined in
+
+[siyuan.d.ts:385](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L385)
+
+---
+
+### disabled?
+
+> `optional` **disabled**: `boolean`
+
+#### Defined in
+
+[siyuan.d.ts:382](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L382)
+
+---
+
+### element?
+
+> `optional` **element**: `HTMLElement`
+
+#### Defined in
+
+[siyuan.d.ts:388](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L388)
+
+---
+
+### icon?
+
+> `optional` **icon**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:383](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L383)
+
+---
+
+### iconClass?
+
+> `optional` **iconClass**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:371](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L371)
+
+---
+
+### iconHTML?
+
+> `optional` **iconHTML**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:384](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L384)
+
+---
+
+### id?
+
+> `optional` **id**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:380](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L380)
+
+---
+
+### index?
+
+> `optional` **index**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:387](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L387)
+
+---
+
+### label?
+
+> `optional` **label**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:372](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L372)
+
+---
+
+### submenu?
+
+> `optional` **submenu**: [`IMenuItemOption`](IMenuItemOption.md)[]
+
+#### Defined in
+
+[siyuan.d.ts:381](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L381)
+
+---
+
+### type?
+
+> `optional` **type**: `"readonly"` \| `"separator"` \| `"submenu"`
+
+#### Defined in
+
+[siyuan.d.ts:374](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L374)
diff --git a/docs/markdown/interfaces/IModel.md b/docs/markdown/interfaces/IModel.md
new file mode 100644
index 0000000..a6a57c6
--- /dev/null
+++ b/docs/markdown/interfaces/IModel.md
@@ -0,0 +1,73 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IModel
+
+# Interface: IModel
+
+## Extended by
+
+- [`ICustomModel`](ICustomModel.md)
+
+## Properties
+
+### app
+
+> **app**: [`App`](../classes/App.md)
+
+#### Defined in
+
+[siyuan.d.ts:264](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L264)
+
+---
+
+### parent
+
+> **parent**: `any`
+
+#### Defined in
+
+[siyuan.d.ts:266](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L266)
+
+---
+
+### reqId
+
+> **reqId**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:265](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L265)
+
+---
+
+### send()
+
+> **send**: (`cmd`, `param`, `process`?) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ---------- | ------------------------------- |
+| `cmd` | `string` |
+| `param` | `Record`\<`string`, `unknown`\> |
+| `process`? | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:268](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L268)
+
+---
+
+### ws
+
+> **ws**: `WebSocket`
+
+#### Defined in
+
+[siyuan.d.ts:263](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L263)
diff --git a/docs/markdown/interfaces/IObject.md b/docs/markdown/interfaces/IObject.md
new file mode 100644
index 0000000..ebdaeae
--- /dev/null
+++ b/docs/markdown/interfaces/IObject.md
@@ -0,0 +1,11 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IObject
+
+# Interface: IObject
+
+## Indexable
+
+\[`key`: `string`\]: `string`
diff --git a/docs/markdown/interfaces/IOperation.md b/docs/markdown/interfaces/IOperation.md
new file mode 100644
index 0000000..18d97ec
--- /dev/null
+++ b/docs/markdown/interfaces/IOperation.md
@@ -0,0 +1,197 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IOperation
+
+# Interface: IOperation
+
+## Properties
+
+### action
+
+> **action**: [`TOperation`](../type-aliases/TOperation.md)
+
+#### Defined in
+
+[siyuan.d.ts:414](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L414)
+
+---
+
+### avID?
+
+> `optional` **avID**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:418](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L418)
+
+---
+
+### backRelationKeyID?
+
+> `optional` **backRelationKeyID**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:417](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L417)
+
+---
+
+### blockIDs?
+
+> `optional` **blockIDs**: `string`[]
+
+#### Defined in
+
+[siyuan.d.ts:432](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L432)
+
+---
+
+### data?
+
+> `optional` **data**: `any`
+
+#### Defined in
+
+[siyuan.d.ts:422](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L422)
+
+---
+
+### deckID?
+
+> `optional` **deckID**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:431](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L431)
+
+---
+
+### format?
+
+> `optional` **format**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:419](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L419)
+
+---
+
+### id?
+
+> `optional` **id**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:415](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L415)
+
+---
+
+### isDetached?
+
+> `optional` **isDetached**: `boolean`
+
+#### Defined in
+
+[siyuan.d.ts:427](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L427)
+
+---
+
+### isTwoWay?
+
+> `optional` **isTwoWay**: `boolean`
+
+#### Defined in
+
+[siyuan.d.ts:416](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L416)
+
+---
+
+### keyID?
+
+> `optional` **keyID**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:420](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L420)
+
+---
+
+### name?
+
+> `optional` **name**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:429](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L429)
+
+---
+
+### nextID?
+
+> `optional` **nextID**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:426](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L426)
+
+---
+
+### parentID?
+
+> `optional` **parentID**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:423](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L423)
+
+---
+
+### previousID?
+
+> `optional` **previousID**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:424](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L424)
+
+---
+
+### retData?
+
+> `optional` **retData**: `any`
+
+#### Defined in
+
+[siyuan.d.ts:425](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L425)
+
+---
+
+### rowID?
+
+> `optional` **rowID**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:421](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L421)
+
+---
+
+### srcIDs?
+
+> `optional` **srcIDs**: `string`[]
+
+#### Defined in
+
+[siyuan.d.ts:428](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L428)
+
+---
+
+### type?
+
+> `optional` **type**: [`TAVCol`](../type-aliases/TAVCol.md)
+
+#### Defined in
+
+[siyuan.d.ts:430](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L430)
diff --git a/docs/markdown/interfaces/IPluginDockTab.md b/docs/markdown/interfaces/IPluginDockTab.md
new file mode 100644
index 0000000..b731ba4
--- /dev/null
+++ b/docs/markdown/interfaces/IPluginDockTab.md
@@ -0,0 +1,85 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IPluginDockTab
+
+# Interface: IPluginDockTab
+
+## Properties
+
+### hotkey?
+
+> `optional` **hotkey**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:364](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L364)
+
+---
+
+### icon
+
+> **icon**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:363](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L363)
+
+---
+
+### index?
+
+> `optional` **index**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:366](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L366)
+
+---
+
+### position
+
+> **position**: `"BottomLeft"` \| `"BottomRight"` \| `"LeftBottom"` \| `"LeftTop"` \| `"RightBottom"` \| `"RightTop"`
+
+#### Defined in
+
+[siyuan.d.ts:352](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L352)
+
+---
+
+### show?
+
+> `optional` **show**: `boolean`
+
+#### Defined in
+
+[siyuan.d.ts:367](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L367)
+
+---
+
+### size
+
+> **size**: `object`
+
+#### height
+
+> **height**: `number`
+
+#### width
+
+> **width**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:359](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L359)
+
+---
+
+### title
+
+> **title**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:365](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L365)
diff --git a/docs/markdown/interfaces/IPosition.md b/docs/markdown/interfaces/IPosition.md
new file mode 100644
index 0000000..d2d7f2c
--- /dev/null
+++ b/docs/markdown/interfaces/IPosition.md
@@ -0,0 +1,57 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IPosition
+
+# Interface: IPosition
+
+## Properties
+
+### h?
+
+> `optional` **h**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:243](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L243)
+
+---
+
+### isLeft?
+
+> `optional` **isLeft**: `boolean`
+
+#### Defined in
+
+[siyuan.d.ts:244](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L244)
+
+---
+
+### w?
+
+> `optional` **w**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:242](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L242)
+
+---
+
+### x
+
+> **x**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:240](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L240)
+
+---
+
+### y
+
+> **y**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:241](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L241)
diff --git a/docs/markdown/interfaces/IProtyle.md b/docs/markdown/interfaces/IProtyle.md
new file mode 100644
index 0000000..104b6cc
--- /dev/null
+++ b/docs/markdown/interfaces/IProtyle.md
@@ -0,0 +1,357 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IProtyle
+
+# Interface: IProtyle
+
+## Properties
+
+### app
+
+> **app**: [`App`](../classes/App.md)
+
+#### Defined in
+
+[types/protyle.d.ts:79](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L79)
+
+---
+
+### background?
+
+> `optional` **background**: `object`
+
+#### element
+
+> **element**: `HTMLElement`
+
+#### ial
+
+> **ial**: `Record`\<`string`, `string`\>
+
+#### iconElement
+
+> **iconElement**: `HTMLElement`
+
+#### imgElement
+
+> **imgElement**: `HTMLElement`
+
+#### tagsElement
+
+> **tagsElement**: `HTMLElement`
+
+#### transparentData
+
+> **transparentData**: `string`
+
+#### Defined in
+
+[types/protyle.d.ts:111](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L111)
+
+---
+
+### block
+
+> **block**: `object`
+
+#### action?
+
+> `optional` **action**: `string`[]
+
+#### blockCount?
+
+> `optional` **blockCount**: `number`
+
+#### id?
+
+> `optional` **id**: `string`
+
+#### mode?
+
+> `optional` **mode**: `number`
+
+#### parent2ID?
+
+> `optional` **parent2ID**: `string`
+
+#### parentID?
+
+> `optional` **parentID**: `string`
+
+#### rootID?
+
+> `optional` **rootID**: `string`
+
+#### scroll?
+
+> `optional` **scroll**: `boolean`
+
+#### showAll?
+
+> `optional` **showAll**: `boolean`
+
+#### Defined in
+
+[types/protyle.d.ts:82](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L82)
+
+---
+
+### breadcrumb?
+
+> `optional` **breadcrumb**: `object`
+
+#### element
+
+> **element**: `HTMLElement`
+
+#### id
+
+> **id**: `string`
+
+#### Defined in
+
+[types/protyle.d.ts:103](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L103)
+
+---
+
+### contentElement?
+
+> `optional` **contentElement**: `HTMLElement`
+
+#### Defined in
+
+[types/protyle.d.ts:119](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L119)
+
+---
+
+### disabled
+
+> **disabled**: `boolean`
+
+#### Defined in
+
+[types/protyle.d.ts:93](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L93)
+
+---
+
+### element
+
+> **element**: `HTMLElement`
+
+#### Defined in
+
+[types/protyle.d.ts:100](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L100)
+
+---
+
+### getInstance()
+
+> **getInstance**: () => [`Protyle`](../classes/Protyle.md)
+
+#### Returns
+
+[`Protyle`](../classes/Protyle.md)
+
+#### Defined in
+
+[types/protyle.d.ts:78](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L78)
+
+---
+
+### gutter?
+
+> `optional` **gutter**: `any`
+
+#### Defined in
+
+[types/protyle.d.ts:102](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L102)
+
+---
+
+### hint?
+
+> `optional` **hint**: `any`
+
+#### Defined in
+
+[types/protyle.d.ts:124](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L124)
+
+---
+
+### id
+
+> **id**: `string`
+
+#### Defined in
+
+[types/protyle.d.ts:81](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L81)
+
+---
+
+### lute?
+
+> `optional` **lute**: [`Lute`](../classes/Lute.md)
+
+#### Defined in
+
+[types/protyle.d.ts:121](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L121)
+
+---
+
+### model?
+
+> `optional` **model**: `any`
+
+#### Defined in
+
+[types/protyle.d.ts:98](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L98)
+
+---
+
+### notebookId?
+
+> `optional` **notebookId**: `string`
+
+#### Defined in
+
+[types/protyle.d.ts:96](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L96)
+
+---
+
+### options
+
+> **options**: `any`
+
+#### Defined in
+
+[types/protyle.d.ts:120](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L120)
+
+---
+
+### path?
+
+> `optional` **path**: `string`
+
+#### Defined in
+
+[types/protyle.d.ts:97](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L97)
+
+---
+
+### preview?
+
+> `optional` **preview**: `any`
+
+#### Defined in
+
+[types/protyle.d.ts:123](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L123)
+
+---
+
+### scroll?
+
+> `optional` **scroll**: `any`
+
+#### Defined in
+
+[types/protyle.d.ts:101](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L101)
+
+---
+
+### selectElement?
+
+> `optional` **selectElement**: `HTMLElement`
+
+#### Defined in
+
+[types/protyle.d.ts:94](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L94)
+
+---
+
+### title?
+
+> `optional` **title**: `object`
+
+#### editElement
+
+> **editElement**: `HTMLElement`
+
+#### element
+
+> **element**: `HTMLElement`
+
+#### Defined in
+
+[types/protyle.d.ts:107](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L107)
+
+---
+
+### toolbar?
+
+> `optional` **toolbar**: [`Toolbar`](../classes/Toolbar.md)
+
+#### Defined in
+
+[types/protyle.d.ts:122](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L122)
+
+---
+
+### transactionTime
+
+> **transactionTime**: `number`
+
+#### Defined in
+
+[types/protyle.d.ts:80](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L80)
+
+---
+
+### undo?
+
+> `optional` **undo**: `any`
+
+#### Defined in
+
+[types/protyle.d.ts:126](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L126)
+
+---
+
+### updated
+
+> **updated**: `boolean`
+
+#### Defined in
+
+[types/protyle.d.ts:99](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L99)
+
+---
+
+### upload?
+
+> `optional` **upload**: `any`
+
+#### Defined in
+
+[types/protyle.d.ts:125](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L125)
+
+---
+
+### ws?
+
+> `optional` **ws**: `any`
+
+#### Defined in
+
+[types/protyle.d.ts:95](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L95)
+
+---
+
+### wysiwyg?
+
+> `optional` **wysiwyg**: `any`
+
+#### Defined in
+
+[types/protyle.d.ts:127](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L127)
diff --git a/docs/markdown/interfaces/IProtyleOption.md b/docs/markdown/interfaces/IProtyleOption.md
new file mode 100644
index 0000000..2654521
--- /dev/null
+++ b/docs/markdown/interfaces/IProtyleOption.md
@@ -0,0 +1,173 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IProtyleOption
+
+# Interface: IProtyleOption
+
+## Properties
+
+### action?
+
+> `optional` **action**: [`TProtyleAction`](../type-aliases/TProtyleAction.md)[]
+
+#### Defined in
+
+[types/protyle.d.ts:47](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L47)
+
+---
+
+### after()?
+
+> `optional` **after**: (`protyle`) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ---------------------------------- |
+| `protyle` | [`Protyle`](../classes/Protyle.md) |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:73](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L73)
+
+---
+
+### blockId?
+
+> `optional` **blockId**: `string`
+
+#### Defined in
+
+[types/protyle.d.ts:50](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L50)
+
+---
+
+### defId?
+
+> `optional` **defId**: `string`
+
+#### Defined in
+
+[types/protyle.d.ts:62](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L62)
+
+---
+
+### key?
+
+> `optional` **key**: `string`
+
+#### Defined in
+
+[types/protyle.d.ts:51](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L51)
+
+---
+
+### mode?
+
+> `optional` **mode**: [`TEditorMode`](../type-aliases/TEditorMode.md)
+
+#### Defined in
+
+[types/protyle.d.ts:48](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L48)
+
+---
+
+### render?
+
+> `optional` **render**: `object`
+
+#### background?
+
+> `optional` **background**: `boolean`
+
+#### breadcrumb?
+
+> `optional` **breadcrumb**: `boolean`
+
+#### breadcrumbDocName?
+
+> `optional` **breadcrumbDocName**: `boolean`
+
+#### gutter?
+
+> `optional` **gutter**: `boolean`
+
+#### scroll?
+
+> `optional` **scroll**: `boolean`
+
+#### title?
+
+> `optional` **title**: `boolean`
+
+#### Defined in
+
+[types/protyle.d.ts:63](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L63)
+
+---
+
+### scrollAttr?
+
+> `optional` **scrollAttr**: `object`
+
+#### endId
+
+> **endId**: `string`
+
+#### focusEnd?
+
+> `optional` **focusEnd**: `number`
+
+#### focusId?
+
+> `optional` **focusId**: `string`
+
+#### focusStart?
+
+> `optional` **focusStart**: `number`
+
+#### rootId
+
+> **rootId**: `string`
+
+#### scrollTop
+
+> **scrollTop**: `number`
+
+#### startId
+
+> **startId**: `string`
+
+#### zoomInId?
+
+> `optional` **zoomInId**: `string`
+
+#### Defined in
+
+[types/protyle.d.ts:52](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L52)
+
+---
+
+### toolbar?
+
+> `optional` **toolbar**: (`string` \| [`IToolbarItem`](IToolbarItem.md))[]
+
+#### Defined in
+
+[types/protyle.d.ts:49](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L49)
+
+---
+
+### typewriterMode?
+
+> `optional` **typewriterMode**: `boolean`
+
+#### Defined in
+
+[types/protyle.d.ts:71](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L71)
diff --git a/docs/markdown/interfaces/ISearchOption.md b/docs/markdown/interfaces/ISearchOption.md
new file mode 100644
index 0000000..1d9bb48
--- /dev/null
+++ b/docs/markdown/interfaces/ISearchOption.md
@@ -0,0 +1,179 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / ISearchOption
+
+# Interface: ISearchOption
+
+## Properties
+
+### group?
+
+> `optional` **group**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:318](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L318)
+
+---
+
+### hPath?
+
+> `optional` **hPath**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:321](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L321)
+
+---
+
+### hasReplace?
+
+> `optional` **hasReplace**: `boolean`
+
+#### Defined in
+
+[siyuan.d.ts:319](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L319)
+
+---
+
+### idPath?
+
+> `optional` **idPath**: `string`[]
+
+#### Defined in
+
+[siyuan.d.ts:322](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L322)
+
+---
+
+### k
+
+> **k**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:323](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L323)
+
+---
+
+### method?
+
+> `optional` **method**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:320](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L320)
+
+---
+
+### name?
+
+> `optional` **name**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:316](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L316)
+
+---
+
+### page?
+
+> `optional` **page**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:314](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L314)
+
+---
+
+### r?
+
+> `optional` **r**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:324](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L324)
+
+---
+
+### removed?
+
+> `optional` **removed**: `boolean`
+
+#### Defined in
+
+[siyuan.d.ts:315](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L315)
+
+---
+
+### sort?
+
+> `optional` **sort**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:317](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L317)
+
+---
+
+### types?
+
+> `optional` **types**: `object`
+
+#### blockquote
+
+> **blockquote**: `boolean`
+
+#### codeBlock
+
+> **codeBlock**: `boolean`
+
+#### databaseBlock
+
+> **databaseBlock**: `boolean`
+
+#### document
+
+> **document**: `boolean`
+
+#### embedBlock
+
+> **embedBlock**: `boolean`
+
+#### heading
+
+> **heading**: `boolean`
+
+#### htmlBlock
+
+> **htmlBlock**: `boolean`
+
+#### list
+
+> **list**: `boolean`
+
+#### listItem
+
+> **listItem**: `boolean`
+
+#### mathBlock
+
+> **mathBlock**: `boolean`
+
+#### paragraph
+
+> **paragraph**: `boolean`
+
+#### superBlock
+
+> **superBlock**: `boolean`
+
+#### table
+
+> **table**: `boolean`
+
+#### Defined in
+
+[siyuan.d.ts:325](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L325)
diff --git a/docs/markdown/interfaces/ISiyuan.md b/docs/markdown/interfaces/ISiyuan.md
new file mode 100644
index 0000000..492ae14
--- /dev/null
+++ b/docs/markdown/interfaces/ISiyuan.md
@@ -0,0 +1,17 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / ISiyuan
+
+# Interface: ISiyuan
+
+## Properties
+
+### config
+
+> **config**: [`IConf`](../namespaces/Config/interfaces/IConf.md)
+
+#### Defined in
+
+[siyuan.d.ts:106](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L106)
diff --git a/docs/markdown/interfaces/ITab.md b/docs/markdown/interfaces/ITab.md
new file mode 100644
index 0000000..1f62e00
--- /dev/null
+++ b/docs/markdown/interfaces/ITab.md
@@ -0,0 +1,159 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / ITab
+
+# Interface: ITab
+
+## Properties
+
+### close()
+
+> **close**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:259](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L259)
+
+---
+
+### docIcon
+
+> **docIcon**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:254](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L254)
+
+---
+
+### headElement
+
+> **headElement**: `HTMLElement`
+
+#### Defined in
+
+[siyuan.d.ts:249](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L249)
+
+---
+
+### icon
+
+> **icon**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:253](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L253)
+
+---
+
+### id
+
+> **id**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:248](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L248)
+
+---
+
+### model
+
+> **model**: [`IModel`](IModel.md)
+
+#### Defined in
+
+[siyuan.d.ts:251](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L251)
+
+---
+
+### panelElement
+
+> **panelElement**: `HTMLElement`
+
+#### Defined in
+
+[siyuan.d.ts:250](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L250)
+
+---
+
+### pin()
+
+> **pin**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:256](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L256)
+
+---
+
+### setDocIcon()
+
+> **setDocIcon**: (`icon`) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `icon` | `string` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:258](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L258)
+
+---
+
+### title
+
+> **title**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:252](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L252)
+
+---
+
+### unpin()
+
+> **unpin**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:257](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L257)
+
+---
+
+### updateTitle()
+
+> **updateTitle**: (`title`) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | -------- |
+| `title` | `string` |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[siyuan.d.ts:255](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L255)
diff --git a/docs/markdown/interfaces/ITabModel.md b/docs/markdown/interfaces/ITabModel.md
new file mode 100644
index 0000000..8498a44
--- /dev/null
+++ b/docs/markdown/interfaces/ITabModel.md
@@ -0,0 +1,253 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / ITabModel
+
+# Interface: ITabModel
+
+## Extends
+
+- [`ICustomModel`](ICustomModel.md)
+
+## Properties
+
+### app
+
+> **app**: [`App`](../classes/App.md)
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`app`](ICustomModel.md#app)
+
+#### Defined in
+
+[siyuan.d.ts:264](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L264)
+
+---
+
+### beforeDestroy()?
+
+> `optional` **beforeDestroy**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`beforeDestroy`](ICustomModel.md#beforedestroy)
+
+#### Defined in
+
+[siyuan.d.ts:284](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L284)
+
+---
+
+### data
+
+> **data**: `any`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`data`](ICustomModel.md#data)
+
+#### Defined in
+
+[siyuan.d.ts:273](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L273)
+
+---
+
+### destroy()?
+
+> `optional` **destroy**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`destroy`](ICustomModel.md#destroy)
+
+#### Defined in
+
+[siyuan.d.ts:286](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L286)
+
+---
+
+### editors
+
+> **editors**: [`Protyle`](../classes/Protyle.md)[]
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`editors`](ICustomModel.md#editors)
+
+#### Defined in
+
+[siyuan.d.ts:276](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L276)
+
+---
+
+### element
+
+> **element**: `HTMLElement`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`element`](ICustomModel.md#element)
+
+#### Defined in
+
+[siyuan.d.ts:275](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L275)
+
+---
+
+### init()
+
+> **init**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`init`](ICustomModel.md#init)
+
+#### Defined in
+
+[siyuan.d.ts:278](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L278)
+
+---
+
+### parent
+
+> **parent**: `any`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`parent`](ICustomModel.md#parent)
+
+#### Defined in
+
+[siyuan.d.ts:266](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L266)
+
+---
+
+### reqId
+
+> **reqId**: `number`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`reqId`](ICustomModel.md#reqid)
+
+#### Defined in
+
+[siyuan.d.ts:265](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L265)
+
+---
+
+### resize()?
+
+> `optional` **resize**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`resize`](ICustomModel.md#resize)
+
+#### Defined in
+
+[siyuan.d.ts:282](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L282)
+
+---
+
+### send()
+
+> **send**: (`cmd`, `param`, `process`?) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| ---------- | ------------------------------- |
+| `cmd` | `string` |
+| `param` | `Record`\<`string`, `unknown`\> |
+| `process`? | `boolean` |
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`send`](ICustomModel.md#send)
+
+#### Defined in
+
+[siyuan.d.ts:268](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L268)
+
+---
+
+### tab
+
+> **tab**: [`ITab`](ITab.md)
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`tab`](ICustomModel.md#tab)
+
+#### Defined in
+
+[siyuan.d.ts:272](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L272)
+
+---
+
+### type
+
+> **type**: `string`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`type`](ICustomModel.md#type)
+
+#### Defined in
+
+[siyuan.d.ts:274](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L274)
+
+---
+
+### update()?
+
+> `optional` **update**: () => `void`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`update`](ICustomModel.md#update)
+
+#### Defined in
+
+[siyuan.d.ts:280](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L280)
+
+---
+
+### ws
+
+> **ws**: `WebSocket`
+
+#### Inherited from
+
+[`ICustomModel`](ICustomModel.md).[`ws`](ICustomModel.md#ws)
+
+#### Defined in
+
+[siyuan.d.ts:263](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L263)
diff --git a/docs/markdown/interfaces/IToolbarItem.md b/docs/markdown/interfaces/IToolbarItem.md
new file mode 100644
index 0000000..7e2a572
--- /dev/null
+++ b/docs/markdown/interfaces/IToolbarItem.md
@@ -0,0 +1,87 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IToolbarItem
+
+# Interface: IToolbarItem
+
+## Properties
+
+### click()?
+
+> `optional` **click**: (`protyle`) => `void`
+
+#### Parameters
+
+| Parameter | Type |
+| --------- | ---------------------------------- |
+| `protyle` | [`Protyle`](../classes/Protyle.md) |
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[types/protyle.d.ts:39](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L39)
+
+---
+
+### hotkey?
+
+> `optional` **hotkey**: `string`
+
+快捷键
+
+#### Defined in
+
+[types/protyle.d.ts:36](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L36)
+
+---
+
+### icon
+
+> **icon**: `string`
+
+svg 图标
+
+#### Defined in
+
+[types/protyle.d.ts:34](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L34)
+
+---
+
+### name
+
+> **name**: `string`
+
+唯一标示
+
+#### Defined in
+
+[types/protyle.d.ts:30](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L30)
+
+---
+
+### tip?
+
+> `optional` **tip**: `string`
+
+提示
+
+#### Defined in
+
+[types/protyle.d.ts:32](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L32)
+
+---
+
+### tipPosition
+
+> **tipPosition**: `string`
+
+提示位置
+
+#### Defined in
+
+[types/protyle.d.ts:38](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L38)
diff --git a/docs/markdown/interfaces/IWebSocketData.md b/docs/markdown/interfaces/IWebSocketData.md
new file mode 100644
index 0000000..707b21e
--- /dev/null
+++ b/docs/markdown/interfaces/IWebSocketData.md
@@ -0,0 +1,67 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / IWebSocketData
+
+# Interface: IWebSocketData
+
+## Properties
+
+### callback?
+
+> `optional` **callback**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:344](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L344)
+
+---
+
+### cmd
+
+> **cmd**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:343](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L343)
+
+---
+
+### code
+
+> **code**: `number`
+
+#### Defined in
+
+[siyuan.d.ts:347](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L347)
+
+---
+
+### data
+
+> **data**: `any`
+
+#### Defined in
+
+[siyuan.d.ts:345](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L345)
+
+---
+
+### msg
+
+> **msg**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:346](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L346)
+
+---
+
+### sid
+
+> **sid**: `string`
+
+#### Defined in
+
+[siyuan.d.ts:348](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L348)
diff --git a/docs/markdown/namespaces/Config/README.md b/docs/markdown/namespaces/Config/README.md
new file mode 100644
index 0000000..b180136
--- /dev/null
+++ b/docs/markdown/namespaces/Config/README.md
@@ -0,0 +1,92 @@
+[**SiYuan Plugin API v1.0.2**](../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../README.md) / Config
+
+# Config
+
+## Index
+
+### Interfaces
+
+| Interface | Description |
+| ------------------------------------------------------------------------------------------ | -------------------------------------------------- |
+| [IAI](interfaces/IAI.md) | Artificial Intelligence (AI) related configuration |
+| [IAPI](interfaces/IAPI.md) | SiYuan API related configuration |
+| [IAccount](interfaces/IAccount.md) | Account configuration |
+| [IAppearance](interfaces/IAppearance.md) | SiYuan appearance related configuration |
+| [IBazaar](interfaces/IBazaar.md) | SiYuan bazaar related configuration |
+| [IConf](interfaces/IConf.md) | Configuration object |
+| [IEditor](interfaces/IEditor.md) | SiYuan editor related configuration |
+| [IExport](interfaces/IExport.md) | SiYuan export related configuration |
+| [IFileTree](interfaces/IFileTree.md) | Document tree related configuration |
+| [IFlashCard](interfaces/IFlashCard.md) | Flashcard related configuration |
+| [IGraph](interfaces/IGraph.md) | SiYuan graph related configuration |
+| [IGraphD3](interfaces/IGraphD3.md) | d3.js graph configuration |
+| [IGraphGlobal](interfaces/IGraphGlobal.md) | Global graph configuration |
+| [IGraphLocal](interfaces/IGraphLocal.md) | Local graph configuration |
+| [IGraphType](interfaces/IGraphType.md) | SiYuan node type filter |
+| [IKey](interfaces/IKey.md) | SiYuan shortcut key |
+| [IKeymap](interfaces/IKeymap.md) | SiYuan keymap related configuration |
+| [IKeymapEditor](interfaces/IKeymapEditor.md) | SiYuan editor shortcut keys |
+| [IKeymapEditorGeneral](interfaces/IKeymapEditorGeneral.md) | SiYuan editor general shortcut keys |
+| [IKeymapEditorHeading](interfaces/IKeymapEditorHeading.md) | SiYuan editor heading shortcut keys |
+| [IKeymapEditorInsert](interfaces/IKeymapEditorInsert.md) | SiYuan editor insert shortcut keys |
+| [IKeymapEditorList](interfaces/IKeymapEditorList.md) | SiYuan editor list shortcut keys |
+| [IKeymapEditorTable](interfaces/IKeymapEditorTable.md) | SiYuan editor table shortcut keys |
+| [IKeymapGeneral](interfaces/IKeymapGeneral.md) | SiYuan general shortcut keys |
+| [IKeymapPlugin](interfaces/IKeymapPlugin.md) | SiYuan plugin shortcut keys |
+| [IKeys](interfaces/IKeys.md) | SiYuan shortcut keys |
+| [ILang](interfaces/ILang.md) | Supported language |
+| [IMarkdown](interfaces/IMarkdown.md) | SiYuan editor markdown related configuration |
+| [INetworkProxy](interfaces/INetworkProxy.md) | SiYuan Network proxy configuration |
+| [IOpenAI](interfaces/IOpenAI.md) | Open AI related configuration |
+| [IRepo](interfaces/IRepo.md) | Snapshot repository related configuration |
+| [ISearch](interfaces/ISearch.md) | SiYuan search related configuration |
+| [ISnippet](interfaces/ISnippet.md) | SiYuan code snippets related configuration |
+| [IStat](interfaces/IStat.md) | SiYuan workspace content statistics |
+| [ISync](interfaces/ISync.md) | SiYuan synchronization related configuration |
+| [ISyncS3](interfaces/ISyncS3.md) | S3 compatible object storage related configuration |
+| [ISyncWebDAV](interfaces/ISyncWebDAV.md) | WebDAV related configuration |
+| [ISystem](interfaces/ISystem.md) | System related information |
+| [ITag](interfaces/ITag.md) | SiYuan tag dock related configuration |
+| [IUILayoutDock](interfaces/IUILayoutDock.md) | SiYuan dock related configuration |
+| [IUILayoutDockPanelSize](interfaces/IUILayoutDockPanelSize.md) | SiYuan dock tab size |
+| [IUILayoutDockTab](interfaces/IUILayoutDockTab.md) | SiYuan dock tab data |
+| [IUILayoutLayout](interfaces/IUILayoutLayout.md) | SiYuan panel layout |
+| [IUILayoutTab](interfaces/IUILayoutTab.md) | - |
+| [IUILayoutTabAsset](interfaces/IUILayoutTabAsset.md) | Tab content |
+| [IUILayoutTabBacklink](interfaces/IUILayoutTabBacklink.md) | SiYuan back link tab |
+| [IUILayoutTabBookmark](interfaces/IUILayoutTabBookmark.md) | SiYuan bookmark tab |
+| [IUILayoutTabCustom](interfaces/IUILayoutTabCustom.md) | SiYuan custom tab |
+| [IUILayoutTabEditor](interfaces/IUILayoutTabEditor.md) | SiYuan editor tab |
+| [IUILayoutTabFiles](interfaces/IUILayoutTabFiles.md) | SiYuan filetree tab |
+| [IUILayoutTabGraph](interfaces/IUILayoutTabGraph.md) | SiYuan graph tab |
+| [IUILayoutTabOutline](interfaces/IUILayoutTabOutline.md) | SiYuan outline tab |
+| [IUILayoutTabSearch](interfaces/IUILayoutTabSearch.md) | SiYuan search tab |
+| [IUILayoutTabSearchConfig](interfaces/IUILayoutTabSearchConfig.md) | SiYuan search tab configuration |
+| [IUILayoutTabSearchConfigReplaceTypes](interfaces/IUILayoutTabSearchConfigReplaceTypes.md) | Replace type filtering |
+| [IUILayoutTabSearchConfigTypes](interfaces/IUILayoutTabSearchConfigTypes.md) | Search type filtering |
+| [IUILayoutTabTag](interfaces/IUILayoutTabTag.md) | SiYuan tag tab |
+| [IUILayoutWnd](interfaces/IUILayoutWnd.md) | SiYuan window layout |
+| [IUiLayout](interfaces/IUiLayout.md) | SiYuan UI layout related configuration |
+
+### Type Aliases
+
+| Type alias | Description |
+| ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [TAccessAuthCode](type-aliases/TAccessAuthCode.md) | Access authorization code |
+| [TLang](type-aliases/TLang.md) | The language used by the current user |
+| [TLogLevel](type-aliases/TLogLevel.md) | Log level |
+| [TOpenAIAPIModel](type-aliases/TOpenAIAPIModel.md) | The model name called by the API |
+| [TOpenAIAPIProvider](type-aliases/TOpenAIAPIProvider.md) | API Provider |
+| [TSystemContainer](type-aliases/TSystemContainer.md) | Kernel operating environment - `docker`: Docker container - `android`: Android device - `ios`: iOS device - `std`: Desktop Electron environment |
+| [TSystemNetworkProxyScheme](type-aliases/TSystemNetworkProxyScheme.md) | The protocol used by the proxy server - Empty String: Use the system proxy settings - `http`: HTTP - `https`: HTTPS - `socks5`: SOCKS5 |
+| [TSystemOS](type-aliases/TSystemOS.md) | The operating system name determined at compile time (obtained using the command `go tool dist list`) - `android`: Android - `darwin`: macOS - `ios`: iOS - `linux`: Linux - `windows`: Windows |
+| [TUILayoutDirection](type-aliases/TUILayoutDirection.md) | Panel content layout direction - `tb`: Top and bottom layout - `lr`: Left and right layout |
+| [TUILayoutItem](type-aliases/TUILayoutItem.md) | SiYuan layout item |
+| [TUILayoutTabBacklinkType](type-aliases/TUILayoutTabBacklinkType.md) | (Backlink) Tab type - `pin`: Pinned panel - `local`: The panel of the current document |
+| [TUILayoutTabGraphType](type-aliases/TUILayoutTabGraphType.md) | (Graph) Tab type - `pin`: Pinned graph - `local`: Graph of the current editor - `global`: Global graph |
+| [TUILayoutTabOutlineType](type-aliases/TUILayoutTabOutlineType.md) | (Outline) Tab type - `pin`: Pinned outline panel - `local`: The outline panel of the current editor |
+| [TUILayoutType](type-aliases/TUILayoutType.md) | Layout type - `normal`: Normal panel - `center`: Center panel - `top`: Top panel - `bottom`: Bottom panel - `left`: Left panel - `right`: Right panel |
diff --git a/docs/markdown/namespaces/Config/interfaces/IAI.md b/docs/markdown/namespaces/Config/interfaces/IAI.md
new file mode 100644
index 0000000..b251ddd
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IAI.md
@@ -0,0 +1,19 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IAI
+
+# Interface: IAI
+
+Artificial Intelligence (AI) related configuration
+
+## Properties
+
+### openAI
+
+> **openAI**: [`IOpenAI`](IOpenAI.md)
+
+#### Defined in
+
+[types/config.d.ts:97](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L97)
diff --git a/docs/markdown/namespaces/Config/interfaces/IAPI.md b/docs/markdown/namespaces/Config/interfaces/IAPI.md
new file mode 100644
index 0000000..106bb5d
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IAPI.md
@@ -0,0 +1,21 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IAPI
+
+# Interface: IAPI
+
+SiYuan API related configuration
+
+## Properties
+
+### token
+
+> **token**: `string`
+
+API Token
+
+#### Defined in
+
+[types/config.d.ts:168](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L168)
diff --git a/docs/markdown/namespaces/Config/interfaces/IAccount.md b/docs/markdown/namespaces/Config/interfaces/IAccount.md
new file mode 100644
index 0000000..b6fcc2d
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IAccount.md
@@ -0,0 +1,33 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IAccount
+
+# Interface: IAccount
+
+Account configuration
+
+## Properties
+
+### displayTitle
+
+> **displayTitle**: `boolean`
+
+Display the title icon
+
+#### Defined in
+
+[types/config.d.ts:86](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L86)
+
+---
+
+### displayVIP
+
+> **displayVIP**: `boolean`
+
+Display the VIP icon
+
+#### Defined in
+
+[types/config.d.ts:90](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L90)
diff --git a/docs/markdown/namespaces/Config/interfaces/IAppearance.md b/docs/markdown/namespaces/Config/interfaces/IAppearance.md
new file mode 100644
index 0000000..e428ce4
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IAppearance.md
@@ -0,0 +1,207 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IAppearance
+
+# Interface: IAppearance
+
+SiYuan appearance related configuration
+
+## Properties
+
+### closeButtonBehavior
+
+> **closeButtonBehavior**: `number`
+
+Close button behavior
+
+- `0`: Exit application
+- `1`: Minimize to pallets
+
+#### Defined in
+
+[types/config.d.ts:180](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L180)
+
+---
+
+### codeBlockThemeDark
+
+> **codeBlockThemeDark**: `string`
+
+Dark code block theme
+
+#### Defined in
+
+[types/config.d.ts:184](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L184)
+
+---
+
+### codeBlockThemeLight
+
+> **codeBlockThemeLight**: `string`
+
+Light code block theme
+
+#### Defined in
+
+[types/config.d.ts:188](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L188)
+
+---
+
+### darkThemes
+
+> **darkThemes**: `string`[]
+
+List of installed dark themes
+
+#### Defined in
+
+[types/config.d.ts:192](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L192)
+
+---
+
+### hideStatusBar
+
+> **hideStatusBar**: `boolean`
+
+Whether to hide status bar
+
+#### Defined in
+
+[types/config.d.ts:196](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L196)
+
+---
+
+### icon
+
+> **icon**: `string`
+
+The name of the icon currently in use
+
+#### Defined in
+
+[types/config.d.ts:200](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L200)
+
+---
+
+### iconVer
+
+> **iconVer**: `string`
+
+The version number of the icon currently in use
+
+#### Defined in
+
+[types/config.d.ts:208](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L208)
+
+---
+
+### icons
+
+> **icons**: `string`[]
+
+List of installed icon names
+
+#### Defined in
+
+[types/config.d.ts:204](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L204)
+
+---
+
+### lang
+
+> **lang**: [`TLang`](../type-aliases/TLang.md)
+
+The language used by the current user
+
+#### Defined in
+
+[types/config.d.ts:212](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L212)
+
+---
+
+### lightThemes
+
+> **lightThemes**: `string`[]
+
+List of installed light themes
+
+#### Defined in
+
+[types/config.d.ts:216](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L216)
+
+---
+
+### mode
+
+> **mode**: `number`
+
+The current theme mode
+
+- `0`: Light theme
+- `1`: Dark theme
+
+#### Defined in
+
+[types/config.d.ts:222](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L222)
+
+---
+
+### modeOS
+
+> **modeOS**: `boolean`
+
+Whether the theme mode follows the system theme
+
+#### Defined in
+
+[types/config.d.ts:226](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L226)
+
+---
+
+### themeDark
+
+> **themeDark**: `string`
+
+The name of the dark theme currently in use
+
+#### Defined in
+
+[types/config.d.ts:230](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L230)
+
+---
+
+### themeJS
+
+> **themeJS**: `boolean`
+
+Whether the current theme has enabled theme JavaScript
+
+#### Defined in
+
+[types/config.d.ts:234](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L234)
+
+---
+
+### themeLight
+
+> **themeLight**: `string`
+
+The name of the light theme currently in use
+
+#### Defined in
+
+[types/config.d.ts:238](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L238)
+
+---
+
+### themeVer
+
+> **themeVer**: `string`
+
+The version number of the theme currently in use
+
+#### Defined in
+
+[types/config.d.ts:242](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L242)
diff --git a/docs/markdown/namespaces/Config/interfaces/IBazaar.md b/docs/markdown/namespaces/Config/interfaces/IBazaar.md
new file mode 100644
index 0000000..79a2944
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IBazaar.md
@@ -0,0 +1,33 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IBazaar
+
+# Interface: IBazaar
+
+SiYuan bazaar related configuration
+
+## Properties
+
+### petalDisabled
+
+> **petalDisabled**: `boolean`
+
+Whether to disable all plug-ins
+
+#### Defined in
+
+[types/config.d.ts:260](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L260)
+
+---
+
+### trust
+
+> **trust**: `boolean`
+
+Whether to trust (enable) the resources for the bazaar
+
+#### Defined in
+
+[types/config.d.ts:264](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L264)
diff --git a/docs/markdown/namespaces/Config/interfaces/IConf.md b/docs/markdown/namespaces/Config/interfaces/IConf.md
new file mode 100644
index 0000000..704f2ed
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IConf.md
@@ -0,0 +1,324 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IConf
+
+# Interface: IConf
+
+Configuration object
+
+## Properties
+
+### accessAuthCode
+
+> **accessAuthCode**: [`TAccessAuthCode`](../type-aliases/TAccessAuthCode.md)
+
+Access authorization code
+
+#### Defined in
+
+[types/config.d.ts:12](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L12)
+
+---
+
+### account
+
+> **account**: [`IAccount`](IAccount.md)
+
+#### Defined in
+
+[types/config.d.ts:13](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L13)
+
+---
+
+### ai
+
+> **ai**: [`IAI`](IAI.md)
+
+#### Defined in
+
+[types/config.d.ts:14](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L14)
+
+---
+
+### api
+
+> **api**: [`IAPI`](IAPI.md)
+
+#### Defined in
+
+[types/config.d.ts:15](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L15)
+
+---
+
+### appearance
+
+> **appearance**: [`IAppearance`](IAppearance.md)
+
+#### Defined in
+
+[types/config.d.ts:16](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L16)
+
+---
+
+### bazaar
+
+> **bazaar**: [`IBazaar`](IBazaar.md)
+
+#### Defined in
+
+[types/config.d.ts:17](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L17)
+
+---
+
+### cloudRegion
+
+> **cloudRegion**: `number`
+
+Cloud Service Provider Region
+
+- `0`: Chinese mainland
+- `1`: North America
+
+#### Defined in
+
+[types/config.d.ts:23](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L23)
+
+---
+
+### editor
+
+> **editor**: [`IEditor`](IEditor.md)
+
+#### Defined in
+
+[types/config.d.ts:24](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L24)
+
+---
+
+### export
+
+> **export**: [`IExport`](IExport.md)
+
+#### Defined in
+
+[types/config.d.ts:25](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L25)
+
+---
+
+### fileTree
+
+> **fileTree**: [`IFileTree`](IFileTree.md)
+
+#### Defined in
+
+[types/config.d.ts:26](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L26)
+
+---
+
+### flashcard
+
+> **flashcard**: [`IFlashCard`](IFlashCard.md)
+
+#### Defined in
+
+[types/config.d.ts:27](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L27)
+
+---
+
+### graph
+
+> **graph**: [`IGraph`](IGraph.md)
+
+#### Defined in
+
+[types/config.d.ts:28](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L28)
+
+---
+
+### keymap
+
+> **keymap**: [`IKeymap`](IKeymap.md)
+
+#### Defined in
+
+[types/config.d.ts:29](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L29)
+
+---
+
+### lang
+
+> **lang**: [`TLang`](../type-aliases/TLang.md)
+
+User interface language
+Same as [IAppearance.lang](IAppearance.md#lang)
+
+#### Defined in
+
+[types/config.d.ts:34](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L34)
+
+---
+
+### langs
+
+> **langs**: [`ILang`](ILang.md)[]
+
+List of supported languages
+
+#### Defined in
+
+[types/config.d.ts:38](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L38)
+
+---
+
+### localIPs
+
+> **localIPs**: `string`[]
+
+A list of the IP addresses of the devices on which the kernel resides
+
+#### Defined in
+
+[types/config.d.ts:42](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L42)
+
+---
+
+### logLevel
+
+> **logLevel**: [`TLogLevel`](../type-aliases/TLogLevel.md)
+
+Log level
+
+#### Defined in
+
+[types/config.d.ts:46](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L46)
+
+---
+
+### openHelp
+
+> **openHelp**: `boolean`
+
+Whether to open the user guide after startup
+
+#### Defined in
+
+[types/config.d.ts:50](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L50)
+
+---
+
+### readonly
+
+> **readonly**: `boolean`
+
+Whether it is running in read-only mode
+全局只读
+
+#### Defined in
+
+[types/config.d.ts:55](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L55)
+
+---
+
+### repo
+
+> **repo**: [`IRepo`](IRepo.md)
+
+#### Defined in
+
+[types/config.d.ts:56](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L56)
+
+---
+
+### search
+
+> **search**: [`ISearch`](ISearch.md)
+
+#### Defined in
+
+[types/config.d.ts:57](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L57)
+
+---
+
+### showChangelog
+
+> **showChangelog**: `boolean`
+
+Whether to display the changelog for this release version
+
+#### Defined in
+
+[types/config.d.ts:61](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L61)
+
+---
+
+### snippet
+
+> **snippet**: [`ISnippet`](ISnippet.md)
+
+#### Defined in
+
+[types/config.d.ts:62](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L62)
+
+---
+
+### stat
+
+> **stat**: [`IStat`](IStat.md)
+
+#### Defined in
+
+[types/config.d.ts:63](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L63)
+
+---
+
+### sync
+
+> **sync**: [`ISync`](ISync.md)
+
+#### Defined in
+
+[types/config.d.ts:64](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L64)
+
+---
+
+### system
+
+> **system**: [`ISystem`](ISystem.md)
+
+#### Defined in
+
+[types/config.d.ts:65](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L65)
+
+---
+
+### tag
+
+> **tag**: [`ITag`](ITag.md)
+
+#### Defined in
+
+[types/config.d.ts:66](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L66)
+
+---
+
+### uiLayout
+
+> **uiLayout**: [`IUiLayout`](IUiLayout.md)
+
+#### Defined in
+
+[types/config.d.ts:67](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L67)
+
+---
+
+### userData
+
+> **userData**: `string`
+
+Community user data (Encrypted)
+
+#### Defined in
+
+[types/config.d.ts:71](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L71)
diff --git a/docs/markdown/namespaces/Config/interfaces/IEditor.md b/docs/markdown/namespaces/Config/interfaces/IEditor.md
new file mode 100644
index 0000000..def32fb
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IEditor.md
@@ -0,0 +1,412 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IEditor
+
+# Interface: IEditor
+
+SiYuan editor related configuration
+
+## Properties
+
+### allowHTMLBLockScript
+
+> **allowHTMLBLockScript**: `boolean`
+
+Whether to allow to execute javascript in the HTML block
+TODO: fix the typo
+
+#### Defined in
+
+[types/config.d.ts:298](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L298)
+
+---
+
+### backlinkExpandCount
+
+> **backlinkExpandCount**: `number`
+
+The default number of backlinks to expand
+
+#### Defined in
+
+[types/config.d.ts:308](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L308)
+
+---
+
+### backmentionExpandCount
+
+> **backmentionExpandCount**: `number`
+
+The default number of backlinks to mention
+
+#### Defined in
+
+[types/config.d.ts:312](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L312)
+
+---
+
+### blockRefDynamicAnchorTextMaxLen
+
+> **blockRefDynamicAnchorTextMaxLen**: `number`
+
+The maximum length of the dynamic anchor text for block references
+
+#### Defined in
+
+[types/config.d.ts:316](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L316)
+
+---
+
+### codeLigatures
+
+> **codeLigatures**: `boolean`
+
+Whether the code block has enabled ligatures
+
+#### Defined in
+
+[types/config.d.ts:320](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L320)
+
+---
+
+### codeLineWrap
+
+> **codeLineWrap**: `boolean`
+
+Whether the code block is automatically wrapped
+
+#### Defined in
+
+[types/config.d.ts:324](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L324)
+
+---
+
+### codeSyntaxHighlightLineNum
+
+> **codeSyntaxHighlightLineNum**: `boolean`
+
+Whether the code block displays line numbers
+
+#### Defined in
+
+[types/config.d.ts:328](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L328)
+
+---
+
+### codeTabSpaces
+
+> **codeTabSpaces**: `number`
+
+The number of spaces generated by the Tab key in the code block, configured as 0 means no
+conversion to spaces
+
+#### Defined in
+
+[types/config.d.ts:333](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L333)
+
+---
+
+### displayBookmarkIcon
+
+> **displayBookmarkIcon**: `boolean`
+
+Whether to display the bookmark icon
+
+#### Defined in
+
+[types/config.d.ts:337](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L337)
+
+---
+
+### displayNetImgMark
+
+> **displayNetImgMark**: `boolean`
+
+Whether to display the network image mark
+
+#### Defined in
+
+[types/config.d.ts:341](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L341)
+
+---
+
+### dynamicLoadBlocks
+
+> **dynamicLoadBlocks**: `number`
+
+The number of blocks loaded each time they are dynamically loaded
+
+#### Defined in
+
+[types/config.d.ts:345](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L345)
+
+---
+
+### embedBlockBreadcrumb
+
+> **embedBlockBreadcrumb**: `boolean`
+
+Whether the embedded block displays breadcrumbs
+
+#### Defined in
+
+[types/config.d.ts:349](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L349)
+
+---
+
+### emoji
+
+> **emoji**: `string`[]
+
+Common emoji icons
+
+#### Defined in
+
+[types/config.d.ts:353](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L353)
+
+---
+
+### floatWindowMode
+
+> **floatWindowMode**: `number`
+
+The trigger mode of the preview window
+
+- `0`: Hover over the cursor
+- `1`: Hover over the cursor while holding down Ctrl
+- `2`: Do not trigger the floating window
+
+#### Defined in
+
+[types/config.d.ts:360](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L360)
+
+---
+
+### fontFamily
+
+> **fontFamily**: `string`
+
+The font used in the editor
+
+#### Defined in
+
+[types/config.d.ts:364](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L364)
+
+---
+
+### fontSize
+
+> **fontSize**: `number`
+
+The font size used in the editor
+
+#### Defined in
+
+[types/config.d.ts:368](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L368)
+
+---
+
+### fontSizeScrollZoom
+
+> **fontSizeScrollZoom**: `boolean`
+
+Whether to enable the use of the mouse wheel to adjust the font size of the editor
+
+#### Defined in
+
+[types/config.d.ts:372](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L372)
+
+---
+
+### fullWidth
+
+> **fullWidth**: `boolean`
+
+Whether the editor uses maximum width
+
+#### Defined in
+
+[types/config.d.ts:376](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L376)
+
+---
+
+### generateHistoryInterval
+
+> **generateHistoryInterval**: `number`
+
+The time interval for generating document history, set to 0 to disable document history
+(unit: minutes)
+
+#### Defined in
+
+[types/config.d.ts:381](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L381)
+
+---
+
+### historyRetentionDays
+
+> **historyRetentionDays**: `number`
+
+History retention days
+
+#### Defined in
+
+[types/config.d.ts:385](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L385)
+
+---
+
+### justify
+
+> **justify**: `boolean`
+
+Whether to enable text justification
+
+#### Defined in
+
+[types/config.d.ts:389](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L389)
+
+---
+
+### katexMacros
+
+> **katexMacros**: `string`
+
+KeTex macro definition (JSON string)
+
+#### Defined in
+
+[types/config.d.ts:393](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L393)
+
+---
+
+### listItemDotNumberClickFocus
+
+> **listItemDotNumberClickFocus**: `boolean`
+
+Whether to enable single-click list item mark focus
+
+#### Defined in
+
+[types/config.d.ts:397](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L397)
+
+---
+
+### listLogicalOutdent
+
+> **listLogicalOutdent**: `boolean`
+
+Whether to enable the list logical reverse indentation scheme
+
+#### Defined in
+
+[types/config.d.ts:401](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L401)
+
+---
+
+### markdown
+
+> **markdown**: [`IMarkdown`](IMarkdown.md)
+
+Markdown configuration
+
+#### Defined in
+
+[types/config.d.ts:303](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L303)
+
+---
+
+### onlySearchForDoc
+
+> **onlySearchForDoc**: `boolean`
+
+Whether to enable the `[[` symbol to search only for document blocks
+
+#### Defined in
+
+[types/config.d.ts:405](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L405)
+
+---
+
+### plantUMLServePath
+
+> **plantUMLServePath**: `string`
+
+PlantUML rendering service address
+
+#### Defined in
+
+[types/config.d.ts:409](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L409)
+
+---
+
+### readOnly
+
+> **readOnly**: `boolean`
+
+Whether to enable read-only mode
+
+#### Defined in
+
+[types/config.d.ts:413](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L413)
+
+---
+
+### rtl
+
+> **rtl**: `boolean`
+
+Whether to enable RTL (left-to-right chirography) mode
+
+#### Defined in
+
+[types/config.d.ts:417](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L417)
+
+---
+
+### spellcheck
+
+> **spellcheck**: `boolean`
+
+Whether to enable spell checking
+
+#### Defined in
+
+[types/config.d.ts:421](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L421)
+
+---
+
+### virtualBlockRef
+
+> **virtualBlockRef**: `boolean`
+
+Whether to enable virtual references
+
+#### Defined in
+
+[types/config.d.ts:425](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L425)
+
+---
+
+### virtualBlockRefExclude
+
+> **virtualBlockRefExclude**: `string`
+
+Virtual reference keyword exclusion list (separated by commas `,`)
+
+#### Defined in
+
+[types/config.d.ts:429](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L429)
+
+---
+
+### virtualBlockRefInclude
+
+> **virtualBlockRefInclude**: `string`
+
+Virtual reference keyword inclusion list (separated by commas `,`)
+
+#### Defined in
+
+[types/config.d.ts:433](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L433)
diff --git a/docs/markdown/namespaces/Config/interfaces/IExport.md b/docs/markdown/namespaces/Config/interfaces/IExport.md
new file mode 100644
index 0000000..12f7af8
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IExport.md
@@ -0,0 +1,228 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IExport
+
+# Interface: IExport
+
+SiYuan export related configuration
+
+## Properties
+
+### addTitle
+
+> **addTitle**: `boolean`
+
+Add article title (insert the article title as a first-level title at the beginning of
+the document)
+
+#### Defined in
+
+[types/config.d.ts:444](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L444)
+
+---
+
+### blockEmbedMode
+
+> **blockEmbedMode**: `number`
+
+Embedded block export mode
+
+- `0`: Original block content
+- `1`: Quotation block
+
+#### Defined in
+
+[types/config.d.ts:450](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L450)
+
+---
+
+### blockRefMode
+
+> **blockRefMode**: `number`
+
+Content block reference export mode
+
+- `0`: Original text (deprecated)
+- `1`: Quotation block (deprecated)
+- `2`: Anchor text block link
+- `3`: Anchor text only
+- `4`: Footnote
+- `5`: Anchor hash
+
+#### Defined in
+
+[types/config.d.ts:460](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L460)
+
+---
+
+### blockRefTextLeft
+
+> **blockRefTextLeft**: `string`
+
+The symbol on the left side of the block reference anchor text during export
+
+#### Defined in
+
+[types/config.d.ts:464](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L464)
+
+---
+
+### blockRefTextRight
+
+> **blockRefTextRight**: `string`
+
+The symbol on the right side of the block reference anchor text during export
+
+#### Defined in
+
+[types/config.d.ts:468](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L468)
+
+---
+
+### docxTemplate
+
+> **docxTemplate**: `string`
+
+The path of the template file used when exporting to Docx
+
+#### Defined in
+
+[types/config.d.ts:472](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L472)
+
+---
+
+### fileAnnotationRefMode
+
+> **fileAnnotationRefMode**: `number`
+
+File annotation reference export mode
+
+- `0`: File name - page number - anchor text
+- `1`: Anchor text only
+
+#### Defined in
+
+[types/config.d.ts:478](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L478)
+
+---
+
+### imageWatermarkDesc
+
+> **imageWatermarkDesc**: `string`
+
+Custom watermark position, size, style, etc. when exporting to an image
+
+#### Defined in
+
+[types/config.d.ts:482](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L482)
+
+---
+
+### imageWatermarkStr
+
+> **imageWatermarkStr**: `string`
+
+The watermark text or watermark file path used when exporting to an image
+
+#### Defined in
+
+[types/config.d.ts:486](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L486)
+
+---
+
+### markdownYFM
+
+> **markdownYFM**: `boolean`
+
+Whether to add YAML Front Matter when exporting to Markdown
+
+#### Defined in
+
+[types/config.d.ts:490](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L490)
+
+---
+
+### pandocBin
+
+> **pandocBin**: `string`
+
+Pandoc executable file path
+
+#### Defined in
+
+[types/config.d.ts:494](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L494)
+
+---
+
+### paragraphBeginningSpace
+
+> **paragraphBeginningSpace**: `boolean`
+
+Whether the beginning of the paragraph is empty two spaces.
+Insert two full-width spaces `U+3000` at the beginning of the paragraph.
+
+#### Defined in
+
+[types/config.d.ts:499](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L499)
+
+---
+
+### pdfFooter
+
+> **pdfFooter**: `string`
+
+Custom footer content when exporting to PDF
+
+#### Defined in
+
+[types/config.d.ts:503](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L503)
+
+---
+
+### pdfWatermarkDesc
+
+> **pdfWatermarkDesc**: `string`
+
+Custom watermark position, size, style, etc. when exporting to PDF
+
+#### Defined in
+
+[types/config.d.ts:507](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L507)
+
+---
+
+### pdfWatermarkStr
+
+> **pdfWatermarkStr**: `string`
+
+The watermark text or watermark file path used when exporting to PDF
+
+#### Defined in
+
+[types/config.d.ts:511](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L511)
+
+---
+
+### tagCloseMarker
+
+> **tagCloseMarker**: `string`
+
+Tag close marker symbol
+
+#### Defined in
+
+[types/config.d.ts:515](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L515)
+
+---
+
+### tagOpenMarker
+
+> **tagOpenMarker**: `string`
+
+Tag start marker symbol
+
+#### Defined in
+
+[types/config.d.ts:519](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L519)
diff --git a/docs/markdown/namespaces/Config/interfaces/IFileTree.md b/docs/markdown/namespaces/Config/interfaces/IFileTree.md
new file mode 100644
index 0000000..816cb5d
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IFileTree.md
@@ -0,0 +1,180 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IFileTree
+
+# Interface: IFileTree
+
+Document tree related configuration
+
+## Properties
+
+### allowCreateDeeper
+
+> **allowCreateDeeper**: `boolean`
+
+Whether to allow the creation of sub-documents deeper than 7 levels
+
+#### Defined in
+
+[types/config.d.ts:529](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L529)
+
+---
+
+### alwaysSelectOpenedFile
+
+> **alwaysSelectOpenedFile**: `boolean`
+
+Whether to automatically locate the currently open document in the document tree
+
+#### Defined in
+
+[types/config.d.ts:533](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L533)
+
+---
+
+### closeTabsOnStart
+
+> **closeTabsOnStart**: `boolean`
+
+Whether to close all tabs when starting
+
+#### Defined in
+
+[types/config.d.ts:537](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L537)
+
+---
+
+### docCreateSaveBox
+
+> **docCreateSaveBox**: `string`
+
+#### Defined in
+
+[types/config.d.ts:559](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L559)
+
+---
+
+### docCreateSavePath
+
+> **docCreateSavePath**: `string`
+
+The storage path of the new document
+
+#### Defined in
+
+[types/config.d.ts:541](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L541)
+
+---
+
+### maxListCount
+
+> **maxListCount**: `number`
+
+The maximum number of documents listed
+
+#### Defined in
+
+[types/config.d.ts:545](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L545)
+
+---
+
+### maxOpenTabCount
+
+> **maxOpenTabCount**: `number`
+
+The maximum number of open tabs
+
+#### Defined in
+
+[types/config.d.ts:549](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L549)
+
+---
+
+### openFilesUseCurrentTab
+
+> **openFilesUseCurrentTab**: `boolean`
+
+Whether to open the file in the current tab
+
+#### Defined in
+
+[types/config.d.ts:553](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L553)
+
+---
+
+### refCreateSaveBox
+
+> **refCreateSaveBox**: `string`
+
+#### Defined in
+
+[types/config.d.ts:558](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L558)
+
+---
+
+### refCreateSavePath
+
+> **refCreateSavePath**: `string`
+
+The storage path of the new document created using block references
+
+#### Defined in
+
+[types/config.d.ts:557](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L557)
+
+---
+
+### removeDocWithoutConfirm
+
+> **removeDocWithoutConfirm**: `boolean`
+
+Close the secondary confirmation when deleting a document
+
+#### Defined in
+
+[types/config.d.ts:563](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L563)
+
+---
+
+### sort
+
+> **sort**: `number`
+
+Document sorting method
+
+- `0`: File name ascending
+- `1`: File name descending
+- `2`: File update time ascending
+- `3`: File update time descending
+- `4`: File name natural number ascending
+- `5`: File name natural number descending
+- `6`: Custom sorting
+- `7`: Reference count ascending
+- `8`: Reference count descending
+- `9`: File creation time ascending
+- `10`: File creation time descending
+- `11`: File size ascending
+- `12`: File size descending
+- `13`: Sub-document count ascending
+- `14`: Sub-document count descending
+- `15`: Use document tree sorting rules
+- `256`: Unspecified sorting rules, according to the notebook priority over the document
+ tree to obtain sorting rules
+
+#### Defined in
+
+[types/config.d.ts:585](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L585)
+
+---
+
+### useSingleLineSave
+
+> **useSingleLineSave**: `boolean`
+
+Whether to save the content of the .sy file as a single-line JSON object
+
+#### Defined in
+
+[types/config.d.ts:589](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L589)
diff --git a/docs/markdown/namespaces/Config/interfaces/IFlashCard.md b/docs/markdown/namespaces/Config/interfaces/IFlashCard.md
new file mode 100644
index 0000000..a060696
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IFlashCard.md
@@ -0,0 +1,145 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IFlashCard
+
+# Interface: IFlashCard
+
+Flashcard related configuration
+
+## Properties
+
+### deck
+
+> **deck**: `boolean`
+
+Whether to enable deck card making
+
+#### Defined in
+
+[types/config.d.ts:599](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L599)
+
+---
+
+### heading
+
+> **heading**: `boolean`
+
+Whether to enable heading block card making
+
+#### Defined in
+
+[types/config.d.ts:603](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L603)
+
+---
+
+### list
+
+> **list**: `boolean`
+
+Whether to enable list block card making
+
+#### Defined in
+
+[types/config.d.ts:607](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L607)
+
+---
+
+### mark
+
+> **mark**: `boolean`
+
+Whether to enable mark element card making
+
+#### Defined in
+
+[types/config.d.ts:611](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L611)
+
+---
+
+### maximumInterval
+
+> **maximumInterval**: `number`
+
+Maximum interval days
+
+#### Defined in
+
+[types/config.d.ts:615](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L615)
+
+---
+
+### newCardLimit
+
+> **newCardLimit**: `number`
+
+New card limit
+
+#### Defined in
+
+[types/config.d.ts:619](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L619)
+
+---
+
+### requestRetention
+
+> **requestRetention**: `number`
+
+FSRS request retention parameter
+
+#### Defined in
+
+[types/config.d.ts:623](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L623)
+
+---
+
+### reviewCardLimit
+
+> **reviewCardLimit**: `number`
+
+Review card limit
+
+#### Defined in
+
+[types/config.d.ts:627](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L627)
+
+---
+
+### reviewMode
+
+> **reviewMode**: `number`
+
+Review mode
+
+- `0`: New and old mixed
+- `1`: New card priority
+- `2`: Old card priority
+
+#### Defined in
+
+[types/config.d.ts:634](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L634)
+
+---
+
+### superBlock
+
+> **superBlock**: `boolean`
+
+Whether to enable super block card making
+
+#### Defined in
+
+[types/config.d.ts:638](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L638)
+
+---
+
+### weights
+
+> **weights**: `string`
+
+FSRS weight parameter list
+
+#### Defined in
+
+[types/config.d.ts:642](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L642)
diff --git a/docs/markdown/namespaces/Config/interfaces/IGraph.md b/docs/markdown/namespaces/Config/interfaces/IGraph.md
new file mode 100644
index 0000000..2039e19
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IGraph.md
@@ -0,0 +1,41 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IGraph
+
+# Interface: IGraph
+
+SiYuan graph related configuration
+
+## Properties
+
+### global
+
+> **global**: [`IGraphGlobal`](IGraphGlobal.md)
+
+#### Defined in
+
+[types/config.d.ts:649](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L649)
+
+---
+
+### local
+
+> **local**: [`IGraphLocal`](IGraphLocal.md)
+
+#### Defined in
+
+[types/config.d.ts:650](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L650)
+
+---
+
+### maxBlocks
+
+> **maxBlocks**: `number`
+
+Maximum number of content blocks displayed
+
+#### Defined in
+
+[types/config.d.ts:654](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L654)
diff --git a/docs/markdown/namespaces/Config/interfaces/IGraphD3.md b/docs/markdown/namespaces/Config/interfaces/IGraphD3.md
new file mode 100644
index 0000000..702858e
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IGraphD3.md
@@ -0,0 +1,105 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IGraphD3
+
+# Interface: IGraphD3
+
+d3.js graph configuration
+
+## Properties
+
+### arrow
+
+> **arrow**: `boolean`
+
+Whether to display the arrow
+
+#### Defined in
+
+[types/config.d.ts:680](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L680)
+
+---
+
+### centerStrength
+
+> **centerStrength**: `number`
+
+Central gravity intensity
+
+#### Defined in
+
+[types/config.d.ts:684](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L684)
+
+---
+
+### collideRadius
+
+> **collideRadius**: `number`
+
+Repulsion radius
+
+#### Defined in
+
+[types/config.d.ts:688](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L688)
+
+---
+
+### collideStrength
+
+> **collideStrength**: `number`
+
+Repulsion intensity
+
+#### Defined in
+
+[types/config.d.ts:692](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L692)
+
+---
+
+### lineOpacity
+
+> **lineOpacity**: `number`
+
+Line opacity
+
+#### Defined in
+
+[types/config.d.ts:696](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L696)
+
+---
+
+### linkDistance
+
+> **linkDistance**: `number`
+
+Link distance
+
+#### Defined in
+
+[types/config.d.ts:700](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L700)
+
+---
+
+### linkWidth
+
+> **linkWidth**: `number`
+
+Line width
+
+#### Defined in
+
+[types/config.d.ts:704](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L704)
+
+---
+
+### nodeSize
+
+> **nodeSize**: `number`
+
+Node size
+
+#### Defined in
+
+[types/config.d.ts:708](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L708)
diff --git a/docs/markdown/namespaces/Config/interfaces/IGraphGlobal.md b/docs/markdown/namespaces/Config/interfaces/IGraphGlobal.md
new file mode 100644
index 0000000..794b6de
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IGraphGlobal.md
@@ -0,0 +1,53 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IGraphGlobal
+
+# Interface: IGraphGlobal
+
+Global graph configuration
+
+## Properties
+
+### d3
+
+> **d3**: [`IGraphD3`](IGraphD3.md)
+
+#### Defined in
+
+[types/config.d.ts:661](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L661)
+
+---
+
+### dailyNote
+
+> **dailyNote**: `boolean`
+
+Whether to display nodes in daily notes
+
+#### Defined in
+
+[types/config.d.ts:665](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L665)
+
+---
+
+### minRefs
+
+> **minRefs**: `number`
+
+The minimum number of references to the displayed node
+
+#### Defined in
+
+[types/config.d.ts:669](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L669)
+
+---
+
+### type
+
+> **type**: [`IGraphType`](IGraphType.md)
+
+#### Defined in
+
+[types/config.d.ts:670](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L670)
diff --git a/docs/markdown/namespaces/Config/interfaces/IGraphLocal.md b/docs/markdown/namespaces/Config/interfaces/IGraphLocal.md
new file mode 100644
index 0000000..fdff970
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IGraphLocal.md
@@ -0,0 +1,41 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IGraphLocal
+
+# Interface: IGraphLocal
+
+Local graph configuration
+
+## Properties
+
+### d3
+
+> **d3**: [`IGraphD3`](IGraphD3.md)
+
+#### Defined in
+
+[types/config.d.ts:761](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L761)
+
+---
+
+### dailyNote
+
+> **dailyNote**: `boolean`
+
+Whether to display nodes in daily notes
+
+#### Defined in
+
+[types/config.d.ts:765](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L765)
+
+---
+
+### type
+
+> **type**: [`IGraphType`](IGraphType.md)
+
+#### Defined in
+
+[types/config.d.ts:766](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L766)
diff --git a/docs/markdown/namespaces/Config/interfaces/IGraphType.md b/docs/markdown/namespaces/Config/interfaces/IGraphType.md
new file mode 100644
index 0000000..ed169e3
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IGraphType.md
@@ -0,0 +1,129 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IGraphType
+
+# Interface: IGraphType
+
+SiYuan node type filter
+
+## Properties
+
+### blockquote
+
+> **blockquote**: `boolean`
+
+Display quote block
+
+#### Defined in
+
+[types/config.d.ts:718](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L718)
+
+---
+
+### code
+
+> **code**: `boolean`
+
+Display code block
+
+#### Defined in
+
+[types/config.d.ts:722](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L722)
+
+---
+
+### heading
+
+> **heading**: `boolean`
+
+Display heading block
+
+#### Defined in
+
+[types/config.d.ts:726](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L726)
+
+---
+
+### list
+
+> **list**: `boolean`
+
+Display list block
+
+#### Defined in
+
+[types/config.d.ts:730](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L730)
+
+---
+
+### listItem
+
+> **listItem**: `boolean`
+
+Display list item
+
+#### Defined in
+
+[types/config.d.ts:734](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L734)
+
+---
+
+### math
+
+> **math**: `boolean`
+
+Display formula block
+
+#### Defined in
+
+[types/config.d.ts:738](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L738)
+
+---
+
+### paragraph
+
+> **paragraph**: `boolean`
+
+Display paragraph block
+
+#### Defined in
+
+[types/config.d.ts:742](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L742)
+
+---
+
+### super
+
+> **super**: `boolean`
+
+Display super block
+
+#### Defined in
+
+[types/config.d.ts:746](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L746)
+
+---
+
+### table
+
+> **table**: `boolean`
+
+Display table block
+
+#### Defined in
+
+[types/config.d.ts:750](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L750)
+
+---
+
+### tag
+
+> **tag**: `boolean`
+
+Display tag
+
+#### Defined in
+
+[types/config.d.ts:754](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L754)
diff --git a/docs/markdown/namespaces/Config/interfaces/IKey.md b/docs/markdown/namespaces/Config/interfaces/IKey.md
new file mode 100644
index 0000000..9fc21ae
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IKey.md
@@ -0,0 +1,33 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IKey
+
+# Interface: IKey
+
+SiYuan shortcut key
+
+## Properties
+
+### custom
+
+> **custom**: `string`
+
+Custom shortcut key
+
+#### Defined in
+
+[types/config.d.ts:860](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L860)
+
+---
+
+### default
+
+> **default**: `string`
+
+Default shortcut key
+
+#### Defined in
+
+[types/config.d.ts:864](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L864)
diff --git a/docs/markdown/namespaces/Config/interfaces/IKeymap.md b/docs/markdown/namespaces/Config/interfaces/IKeymap.md
new file mode 100644
index 0000000..cd7a22f
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IKeymap.md
@@ -0,0 +1,39 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IKeymap
+
+# Interface: IKeymap
+
+SiYuan keymap related configuration
+
+## Properties
+
+### editor
+
+> **editor**: [`IKeymapEditor`](IKeymapEditor.md)
+
+#### Defined in
+
+[types/config.d.ts:773](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L773)
+
+---
+
+### general
+
+> **general**: [`IKeymapGeneral`](IKeymapGeneral.md)
+
+#### Defined in
+
+[types/config.d.ts:774](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L774)
+
+---
+
+### plugin
+
+> **plugin**: [`IKeymapPlugin`](IKeymapPlugin.md)
+
+#### Defined in
+
+[types/config.d.ts:775](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L775)
diff --git a/docs/markdown/namespaces/Config/interfaces/IKeymapEditor.md b/docs/markdown/namespaces/Config/interfaces/IKeymapEditor.md
new file mode 100644
index 0000000..e75b5a5
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IKeymapEditor.md
@@ -0,0 +1,59 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IKeymapEditor
+
+# Interface: IKeymapEditor
+
+SiYuan editor shortcut keys
+
+## Properties
+
+### general
+
+> **general**: [`IKeymapEditorGeneral`](IKeymapEditorGeneral.md)
+
+#### Defined in
+
+[types/config.d.ts:782](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L782)
+
+---
+
+### heading
+
+> **heading**: [`IKeymapEditorHeading`](IKeymapEditorHeading.md)
+
+#### Defined in
+
+[types/config.d.ts:783](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L783)
+
+---
+
+### insert
+
+> **insert**: [`IKeymapEditorInsert`](IKeymapEditorInsert.md)
+
+#### Defined in
+
+[types/config.d.ts:784](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L784)
+
+---
+
+### list
+
+> **list**: [`IKeymapEditorList`](IKeymapEditorList.md)
+
+#### Defined in
+
+[types/config.d.ts:785](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L785)
+
+---
+
+### table
+
+> **table**: [`IKeymapEditorTable`](IKeymapEditorTable.md)
+
+#### Defined in
+
+[types/config.d.ts:786](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L786)
diff --git a/docs/markdown/namespaces/Config/interfaces/IKeymapEditorGeneral.md b/docs/markdown/namespaces/Config/interfaces/IKeymapEditorGeneral.md
new file mode 100644
index 0000000..e11046b
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IKeymapEditorGeneral.md
@@ -0,0 +1,523 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IKeymapEditorGeneral
+
+# Interface: IKeymapEditorGeneral
+
+SiYuan editor general shortcut keys
+
+## Extends
+
+- [`IKeys`](IKeys.md)
+
+## Properties
+
+### ai
+
+> **ai**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:793](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L793)
+
+---
+
+### alignCenter
+
+> **alignCenter**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:794](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L794)
+
+---
+
+### alignLeft
+
+> **alignLeft**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:795](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L795)
+
+---
+
+### alignRight
+
+> **alignRight**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:796](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L796)
+
+---
+
+### attr
+
+> **attr**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:797](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L797)
+
+---
+
+### backlinks
+
+> **backlinks**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:798](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L798)
+
+---
+
+### collapse
+
+> **collapse**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:799](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L799)
+
+---
+
+### copyBlockEmbed
+
+> **copyBlockEmbed**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:800](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L800)
+
+---
+
+### copyBlockRef
+
+> **copyBlockRef**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:801](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L801)
+
+---
+
+### copyHPath
+
+> **copyHPath**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:802](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L802)
+
+---
+
+### copyID
+
+> **copyID**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:803](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L803)
+
+---
+
+### copyPlainText
+
+> **copyPlainText**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:804](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L804)
+
+---
+
+### copyProtocol
+
+> **copyProtocol**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:805](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L805)
+
+---
+
+### copyProtocolInMd
+
+> **copyProtocolInMd**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:806](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L806)
+
+---
+
+### copyText
+
+> **copyText**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:807](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L807)
+
+---
+
+### duplicate
+
+> **duplicate**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:808](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L808)
+
+---
+
+### exitFocus
+
+> **exitFocus**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:809](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L809)
+
+---
+
+### expand
+
+> **expand**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:810](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L810)
+
+---
+
+### expandDown
+
+> **expandDown**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:811](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L811)
+
+---
+
+### expandUp
+
+> **expandUp**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:812](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L812)
+
+---
+
+### fullscreen
+
+> **fullscreen**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:813](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L813)
+
+---
+
+### graphView
+
+> **graphView**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:814](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L814)
+
+---
+
+### hLayout
+
+> **hLayout**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:815](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L815)
+
+---
+
+### insertAfter
+
+> **insertAfter**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:816](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L816)
+
+---
+
+### insertBefore
+
+> **insertBefore**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:817](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L817)
+
+---
+
+### insertBottom
+
+> **insertBottom**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:818](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L818)
+
+---
+
+### insertRight
+
+> **insertRight**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:819](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L819)
+
+---
+
+### jumpToParentNext
+
+> **jumpToParentNext**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:820](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L820)
+
+---
+
+### moveToDown
+
+> **moveToDown**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:821](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L821)
+
+---
+
+### moveToUp
+
+> **moveToUp**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:822](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L822)
+
+---
+
+### netAssets2LocalAssets
+
+> **netAssets2LocalAssets**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:823](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L823)
+
+---
+
+### netImg2LocalAsset
+
+> **netImg2LocalAsset**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:824](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L824)
+
+---
+
+### newContentFile
+
+> **newContentFile**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:825](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L825)
+
+---
+
+### newNameFile
+
+> **newNameFile**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:826](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L826)
+
+---
+
+### newNameSettingFile
+
+> **newNameSettingFile**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:827](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L827)
+
+---
+
+### openBy
+
+> **openBy**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:828](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L828)
+
+---
+
+### optimizeTypography
+
+> **optimizeTypography**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:829](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L829)
+
+---
+
+### outline
+
+> **outline**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:830](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L830)
+
+---
+
+### preview
+
+> **preview**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:831](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L831)
+
+---
+
+### quickMakeCard
+
+> **quickMakeCard**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:832](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L832)
+
+---
+
+### redo
+
+> **redo**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:833](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L833)
+
+---
+
+### refPopover
+
+> **refPopover**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:834](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L834)
+
+---
+
+### refTab
+
+> **refTab**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:836](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L836)
+
+---
+
+### refresh
+
+> **refresh**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:835](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L835)
+
+---
+
+### rename
+
+> **rename**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:837](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L837)
+
+---
+
+### showInFolder
+
+> **showInFolder**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:838](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L838)
+
+---
+
+### spaceRepetition
+
+> **spaceRepetition**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:839](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L839)
+
+---
+
+### switchReadonly
+
+> **switchReadonly**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:840](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L840)
+
+---
+
+### undo
+
+> **undo**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:841](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L841)
+
+---
+
+### vLayout
+
+> **vLayout**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:842](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L842)
+
+---
+
+### wysiwyg
+
+> **wysiwyg**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:843](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L843)
diff --git a/docs/markdown/namespaces/Config/interfaces/IKeymapEditorHeading.md b/docs/markdown/namespaces/Config/interfaces/IKeymapEditorHeading.md
new file mode 100644
index 0000000..3710fef
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IKeymapEditorHeading.md
@@ -0,0 +1,83 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IKeymapEditorHeading
+
+# Interface: IKeymapEditorHeading
+
+SiYuan editor heading shortcut keys
+
+## Extends
+
+- [`IKeys`](IKeys.md)
+
+## Properties
+
+### heading1
+
+> **heading1**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:871](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L871)
+
+---
+
+### heading2
+
+> **heading2**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:872](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L872)
+
+---
+
+### heading3
+
+> **heading3**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:873](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L873)
+
+---
+
+### heading4
+
+> **heading4**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:874](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L874)
+
+---
+
+### heading5
+
+> **heading5**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:875](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L875)
+
+---
+
+### heading6
+
+> **heading6**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:876](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L876)
+
+---
+
+### paragraph
+
+> **paragraph**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:877](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L877)
diff --git a/docs/markdown/namespaces/Config/interfaces/IKeymapEditorInsert.md b/docs/markdown/namespaces/Config/interfaces/IKeymapEditorInsert.md
new file mode 100644
index 0000000..590bdb8
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IKeymapEditorInsert.md
@@ -0,0 +1,213 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IKeymapEditorInsert
+
+# Interface: IKeymapEditorInsert
+
+SiYuan editor insert shortcut keys
+
+## Extends
+
+- [`IKeys`](IKeys.md)
+
+## Properties
+
+### appearance
+
+> **appearance**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:884](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L884)
+
+---
+
+### bold
+
+> **bold**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:885](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L885)
+
+---
+
+### check
+
+> **check**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:886](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L886)
+
+---
+
+### clearInline
+
+> **clearInline**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:887](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L887)
+
+---
+
+### code
+
+> **code**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:888](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L888)
+
+---
+
+### inline-code
+
+> **inline-code**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:889](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L889)
+
+---
+
+### inline-math
+
+> **inline-math**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:890](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L890)
+
+---
+
+### italic
+
+> **italic**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:891](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L891)
+
+---
+
+### kbd
+
+> **kbd**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:892](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L892)
+
+---
+
+### lastUsed
+
+> **lastUsed**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:893](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L893)
+
+---
+
+### link
+
+> **link**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:894](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L894)
+
+---
+
+### mark
+
+> **mark**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:895](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L895)
+
+---
+
+### memo
+
+> **memo**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:896](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L896)
+
+---
+
+### ref
+
+> **ref**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:897](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L897)
+
+---
+
+### strike
+
+> **strike**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:898](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L898)
+
+---
+
+### sub
+
+> **sub**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:899](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L899)
+
+---
+
+### sup
+
+> **sup**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:900](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L900)
+
+---
+
+### table
+
+> **table**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:901](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L901)
+
+---
+
+### tag
+
+> **tag**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:902](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L902)
+
+---
+
+### underline
+
+> **underline**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:903](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L903)
diff --git a/docs/markdown/namespaces/Config/interfaces/IKeymapEditorList.md b/docs/markdown/namespaces/Config/interfaces/IKeymapEditorList.md
new file mode 100644
index 0000000..f3c7ea9
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IKeymapEditorList.md
@@ -0,0 +1,43 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IKeymapEditorList
+
+# Interface: IKeymapEditorList
+
+SiYuan editor list shortcut keys
+
+## Extends
+
+- [`IKeys`](IKeys.md)
+
+## Properties
+
+### checkToggle
+
+> **checkToggle**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:910](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L910)
+
+---
+
+### indent
+
+> **indent**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:911](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L911)
+
+---
+
+### outdent
+
+> **outdent**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:912](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L912)
diff --git a/docs/markdown/namespaces/Config/interfaces/IKeymapEditorTable.md b/docs/markdown/namespaces/Config/interfaces/IKeymapEditorTable.md
new file mode 100644
index 0000000..2ac9070
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IKeymapEditorTable.md
@@ -0,0 +1,113 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IKeymapEditorTable
+
+# Interface: IKeymapEditorTable
+
+SiYuan editor table shortcut keys
+
+## Extends
+
+- [`IKeys`](IKeys.md)
+
+## Properties
+
+### delete-column
+
+> **delete-column**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:919](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L919)
+
+---
+
+### delete-row
+
+> **delete-row**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:920](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L920)
+
+---
+
+### insertColumnLeft
+
+> **insertColumnLeft**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:921](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L921)
+
+---
+
+### insertColumnRight
+
+> **insertColumnRight**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:922](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L922)
+
+---
+
+### insertRowAbove
+
+> **insertRowAbove**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:923](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L923)
+
+---
+
+### insertRowBelow
+
+> **insertRowBelow**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:924](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L924)
+
+---
+
+### moveToDown
+
+> **moveToDown**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:925](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L925)
+
+---
+
+### moveToLeft
+
+> **moveToLeft**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:926](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L926)
+
+---
+
+### moveToRight
+
+> **moveToRight**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:927](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L927)
+
+---
+
+### moveToUp
+
+> **moveToUp**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:928](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L928)
diff --git a/docs/markdown/namespaces/Config/interfaces/IKeymapGeneral.md b/docs/markdown/namespaces/Config/interfaces/IKeymapGeneral.md
new file mode 100644
index 0000000..1c25d96
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IKeymapGeneral.md
@@ -0,0 +1,573 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IKeymapGeneral
+
+# Interface: IKeymapGeneral
+
+SiYuan general shortcut keys
+
+## Extends
+
+- [`IKeys`](IKeys.md)
+
+## Properties
+
+### addToDatabase
+
+> **addToDatabase**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:935](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L935)
+
+---
+
+### backlinks
+
+> **backlinks**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:936](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L936)
+
+---
+
+### bookmark
+
+> **bookmark**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:937](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L937)
+
+---
+
+### closeAll
+
+> **closeAll**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:938](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L938)
+
+---
+
+### closeLeft
+
+> **closeLeft**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:939](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L939)
+
+---
+
+### closeOthers
+
+> **closeOthers**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:940](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L940)
+
+---
+
+### closeRight
+
+> **closeRight**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:941](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L941)
+
+---
+
+### closeTab
+
+> **closeTab**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:942](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L942)
+
+---
+
+### closeUnmodified
+
+> **closeUnmodified**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:943](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L943)
+
+---
+
+### commandPanel
+
+> **commandPanel**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:944](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L944)
+
+---
+
+### config
+
+> **config**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:945](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L945)
+
+---
+
+### dailyNote
+
+> **dailyNote**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:946](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L946)
+
+---
+
+### dataHistory
+
+> **dataHistory**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:947](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L947)
+
+---
+
+### editReadonly
+
+> **editReadonly**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:948](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L948)
+
+---
+
+### enter
+
+> **enter**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:949](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L949)
+
+---
+
+### enterBack
+
+> **enterBack**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:950](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L950)
+
+---
+
+### fileTree
+
+> **fileTree**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:951](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L951)
+
+---
+
+### globalGraph
+
+> **globalGraph**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:952](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L952)
+
+---
+
+### globalSearch
+
+> **globalSearch**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:953](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L953)
+
+---
+
+### goBack
+
+> **goBack**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:954](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L954)
+
+---
+
+### goForward
+
+> **goForward**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:955](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L955)
+
+---
+
+### goToEditTabNext
+
+> **goToEditTabNext**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:956](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L956)
+
+---
+
+### goToEditTabPrev
+
+> **goToEditTabPrev**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:957](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L957)
+
+---
+
+### goToTab1
+
+> **goToTab1**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:958](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L958)
+
+---
+
+### goToTab2
+
+> **goToTab2**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:959](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L959)
+
+---
+
+### goToTab3
+
+> **goToTab3**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:960](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L960)
+
+---
+
+### goToTab4
+
+> **goToTab4**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:961](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L961)
+
+---
+
+### goToTab5
+
+> **goToTab5**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:962](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L962)
+
+---
+
+### goToTab6
+
+> **goToTab6**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:963](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L963)
+
+---
+
+### goToTab7
+
+> **goToTab7**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:964](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L964)
+
+---
+
+### goToTab8
+
+> **goToTab8**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:965](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L965)
+
+---
+
+### goToTab9
+
+> **goToTab9**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:966](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L966)
+
+---
+
+### goToTabNext
+
+> **goToTabNext**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:967](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L967)
+
+---
+
+### goToTabPrev
+
+> **goToTabPrev**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:968](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L968)
+
+---
+
+### graphView
+
+> **graphView**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:969](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L969)
+
+---
+
+### inbox
+
+> **inbox**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:970](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L970)
+
+---
+
+### lockScreen
+
+> **lockScreen**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:971](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L971)
+
+---
+
+### mainMenu
+
+> **mainMenu**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:972](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L972)
+
+---
+
+### move
+
+> **move**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:973](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L973)
+
+---
+
+### newFile
+
+> **newFile**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:974](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L974)
+
+---
+
+### outline
+
+> **outline**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:975](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L975)
+
+---
+
+### recentDocs
+
+> **recentDocs**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:976](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L976)
+
+---
+
+### replace
+
+> **replace**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:977](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L977)
+
+---
+
+### riffCard
+
+> **riffCard**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:978](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L978)
+
+---
+
+### search
+
+> **search**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:979](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L979)
+
+---
+
+### selectOpen1
+
+> **selectOpen1**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:980](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L980)
+
+---
+
+### splitLR
+
+> **splitLR**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:981](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L981)
+
+---
+
+### splitMoveB
+
+> **splitMoveB**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:982](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L982)
+
+---
+
+### splitMoveR
+
+> **splitMoveR**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:983](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L983)
+
+---
+
+### splitTB
+
+> **splitTB**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:984](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L984)
+
+---
+
+### stickSearch
+
+> **stickSearch**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:985](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L985)
+
+---
+
+### syncNow
+
+> **syncNow**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:986](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L986)
+
+---
+
+### tabToWindow
+
+> **tabToWindow**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:987](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L987)
+
+---
+
+### tag
+
+> **tag**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:988](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L988)
+
+---
+
+### toggleDock
+
+> **toggleDock**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:989](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L989)
+
+---
+
+### toggleWin
+
+> **toggleWin**: [`IKey`](IKey.md)
+
+#### Defined in
+
+[types/config.d.ts:990](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L990)
diff --git a/docs/markdown/namespaces/Config/interfaces/IKeymapPlugin.md b/docs/markdown/namespaces/Config/interfaces/IKeymapPlugin.md
new file mode 100644
index 0000000..ec26edf
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IKeymapPlugin.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IKeymapPlugin
+
+# Interface: IKeymapPlugin
+
+SiYuan plugin shortcut keys
+
+## Indexable
+
+\[`key`: `string`\]: [`IKeys`](IKeys.md)
diff --git a/docs/markdown/namespaces/Config/interfaces/IKeys.md b/docs/markdown/namespaces/Config/interfaces/IKeys.md
new file mode 100644
index 0000000..2cf1fa9
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IKeys.md
@@ -0,0 +1,22 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IKeys
+
+# Interface: IKeys
+
+SiYuan shortcut keys
+
+## Extended by
+
+- [`IKeymapEditorGeneral`](IKeymapEditorGeneral.md)
+- [`IKeymapEditorHeading`](IKeymapEditorHeading.md)
+- [`IKeymapEditorInsert`](IKeymapEditorInsert.md)
+- [`IKeymapEditorList`](IKeymapEditorList.md)
+- [`IKeymapEditorTable`](IKeymapEditorTable.md)
+- [`IKeymapGeneral`](IKeymapGeneral.md)
+
+## Indexable
+
+\[`key`: `string`\]: [`IKey`](IKey.md)
diff --git a/docs/markdown/namespaces/Config/interfaces/ILang.md b/docs/markdown/namespaces/Config/interfaces/ILang.md
new file mode 100644
index 0000000..c5d82f8
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/ILang.md
@@ -0,0 +1,33 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / ILang
+
+# Interface: ILang
+
+Supported language
+
+## Properties
+
+### label
+
+> **label**: `string`
+
+Language name
+
+#### Defined in
+
+[types/config.d.ts:1007](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1007)
+
+---
+
+### name
+
+> **name**: `string`
+
+Language identifier
+
+#### Defined in
+
+[types/config.d.ts:1011](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1011)
diff --git a/docs/markdown/namespaces/Config/interfaces/IMarkdown.md b/docs/markdown/namespaces/Config/interfaces/IMarkdown.md
new file mode 100644
index 0000000..58aef6b
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IMarkdown.md
@@ -0,0 +1,57 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IMarkdown
+
+# Interface: IMarkdown
+
+SiYuan editor markdown related configuration
+
+## Properties
+
+### inlineMath
+
+> **inlineMath**: `boolean`
+
+Whether to enable the inline math
+
+#### Defined in
+
+[types/config.d.ts:286](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L286)
+
+---
+
+### inlineSub
+
+> **inlineSub**: `boolean`
+
+Whether to enable the inline subscript
+
+#### Defined in
+
+[types/config.d.ts:278](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L278)
+
+---
+
+### inlineSup
+
+> **inlineSup**: `boolean`
+
+Whether to enable the inline superscript
+
+#### Defined in
+
+[types/config.d.ts:274](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L274)
+
+---
+
+### inlineTag
+
+> **inlineTag**: `boolean`
+
+Whether to enable the inline tag
+
+#### Defined in
+
+[types/config.d.ts:282](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L282)
diff --git a/docs/markdown/namespaces/Config/interfaces/INetworkProxy.md b/docs/markdown/namespaces/Config/interfaces/INetworkProxy.md
new file mode 100644
index 0000000..d8df511
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/INetworkProxy.md
@@ -0,0 +1,50 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / INetworkProxy
+
+# Interface: INetworkProxy
+
+SiYuan Network proxy configuration
+
+## Properties
+
+### host
+
+> **host**: `string`
+
+Host name or host address
+
+#### Defined in
+
+[types/config.d.ts:1456](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1456)
+
+---
+
+### port
+
+> **port**: `string`
+
+Proxy server port number
+
+#### Defined in
+
+[types/config.d.ts:1460](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1460)
+
+---
+
+### scheme
+
+> **scheme**: [`TSystemNetworkProxyScheme`](../type-aliases/TSystemNetworkProxyScheme.md)
+
+The protocol used by the proxy server
+
+- Empty String: Use the system proxy settings
+- `http`: HTTP
+- `https`: HTTPS
+- `socks5`: SOCKS5
+
+#### Defined in
+
+[types/config.d.ts:1468](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1468)
diff --git a/docs/markdown/namespaces/Config/interfaces/IOpenAI.md b/docs/markdown/namespaces/Config/interfaces/IOpenAI.md
new file mode 100644
index 0000000..63a779c
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IOpenAI.md
@@ -0,0 +1,142 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IOpenAI
+
+# Interface: IOpenAI
+
+Open AI related configuration
+
+## Properties
+
+### apiBaseURL
+
+> **apiBaseURL**: `string`
+
+API base URL
+
+#### Defined in
+
+[types/config.d.ts:107](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L107)
+
+---
+
+### apiKey
+
+> **apiKey**: `string`
+
+API key
+
+#### Defined in
+
+[types/config.d.ts:111](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L111)
+
+---
+
+### apiMaxContexts
+
+> **apiMaxContexts**: `number`
+
+The maximum number of contexts passed when requesting the API
+
+#### Defined in
+
+[types/config.d.ts:115](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L115)
+
+---
+
+### apiMaxTokens
+
+> **apiMaxTokens**: `number`
+
+Maximum number of tokens (0 means no limit)
+
+#### Defined in
+
+[types/config.d.ts:119](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L119)
+
+---
+
+### apiModel
+
+> **apiModel**: [`TOpenAIAPIModel`](../type-aliases/TOpenAIAPIModel.md)
+
+The model name called by the API
+
+#### Defined in
+
+[types/config.d.ts:123](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L123)
+
+---
+
+### apiProvider
+
+> **apiProvider**: [`TOpenAIAPIProvider`](../type-aliases/TOpenAIAPIProvider.md)
+
+API Provider
+OpenAI, Azure
+
+#### Defined in
+
+[types/config.d.ts:128](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L128)
+
+---
+
+### apiProxy
+
+> **apiProxy**: `string`
+
+API request proxy address
+
+#### Defined in
+
+[types/config.d.ts:132](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L132)
+
+---
+
+### apiTemperature
+
+> **apiTemperature**: `number`
+
+Parameter `temperature` that controls the randomness of the generated text
+
+#### Defined in
+
+[types/config.d.ts:136](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L136)
+
+---
+
+### apiTimeout
+
+> **apiTimeout**: `number`
+
+API request timeout (unit: seconds)
+
+#### Defined in
+
+[types/config.d.ts:140](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L140)
+
+---
+
+### apiUserAgent
+
+> **apiUserAgent**: `string`
+
+API request additional user agent field
+
+#### Defined in
+
+[types/config.d.ts:144](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L144)
+
+---
+
+### apiVersion
+
+> **apiVersion**: `string`
+
+API version number
+
+#### Defined in
+
+[types/config.d.ts:148](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L148)
diff --git a/docs/markdown/namespaces/Config/interfaces/IRepo.md b/docs/markdown/namespaces/Config/interfaces/IRepo.md
new file mode 100644
index 0000000..3a3483f
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IRepo.md
@@ -0,0 +1,34 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IRepo
+
+# Interface: IRepo
+
+Snapshot repository related configuration
+
+## Properties
+
+### key
+
+> **key**: `string`
+
+Snapshot encryption key (base64 encoded 256-bit key)
+
+#### Defined in
+
+[types/config.d.ts:1033](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1033)
+
+---
+
+### syncIndexTiming
+
+> **syncIndexTiming**: `number`
+
+Synchronous index timing, if it exceeds this time, the user is prompted that the index
+performance is degraded (unit: milliseconds)
+
+#### Defined in
+
+[types/config.d.ts:1038](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1038)
diff --git a/docs/markdown/namespaces/Config/interfaces/ISearch.md b/docs/markdown/namespaces/Config/interfaces/ISearch.md
new file mode 100644
index 0000000..cf3a9cc
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/ISearch.md
@@ -0,0 +1,405 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / ISearch
+
+# Interface: ISearch
+
+SiYuan search related configuration
+
+## Properties
+
+### alias
+
+> **alias**: `boolean`
+
+Whether to search in block aliases
+
+#### Defined in
+
+[types/config.d.ts:1048](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1048)
+
+---
+
+### audioBlock
+
+> **audioBlock**: `boolean`
+
+Whether to search in audio blocks
+
+#### Defined in
+
+[types/config.d.ts:1052](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1052)
+
+---
+
+### backlinkMentionAlias
+
+> **backlinkMentionAlias**: `boolean`
+
+Extract backlink mention keywords from block aliases
+
+#### Defined in
+
+[types/config.d.ts:1056](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1056)
+
+---
+
+### backlinkMentionAnchor
+
+> **backlinkMentionAnchor**: `boolean`
+
+Extract backlink mention keywords from block reference anchor text
+
+#### Defined in
+
+[types/config.d.ts:1060](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1060)
+
+---
+
+### backlinkMentionDoc
+
+> **backlinkMentionDoc**: `boolean`
+
+Extract backlink mention keywords from document names
+
+#### Defined in
+
+[types/config.d.ts:1064](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1064)
+
+---
+
+### backlinkMentionKeywordsLimit
+
+> **backlinkMentionKeywordsLimit**: `number`
+
+Maximum number of backlink mention keywords
+
+#### Defined in
+
+[types/config.d.ts:1068](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1068)
+
+---
+
+### backlinkMentionName
+
+> **backlinkMentionName**: `boolean`
+
+Extract backlink mention keywords from block names
+
+#### Defined in
+
+[types/config.d.ts:1072](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1072)
+
+---
+
+### blockquote
+
+> **blockquote**: `boolean`
+
+Whether to search quote blocks
+
+#### Defined in
+
+[types/config.d.ts:1076](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1076)
+
+---
+
+### caseSensitive
+
+> **caseSensitive**: `boolean`
+
+Whether to distinguish between uppercase and lowercase letters when searching
+
+#### Defined in
+
+[types/config.d.ts:1080](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1080)
+
+---
+
+### codeBlock
+
+> **codeBlock**: `boolean`
+
+Whether to search code blocks
+
+#### Defined in
+
+[types/config.d.ts:1084](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1084)
+
+---
+
+### databaseBlock
+
+> **databaseBlock**: `boolean`
+
+Whether to search database blocks
+
+#### Defined in
+
+[types/config.d.ts:1088](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1088)
+
+---
+
+### document
+
+> **document**: `boolean`
+
+Whether to search document blocks
+
+#### Defined in
+
+[types/config.d.ts:1092](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1092)
+
+---
+
+### embedBlock
+
+> **embedBlock**: `boolean`
+
+Whether to search embedded blocks
+
+#### Defined in
+
+[types/config.d.ts:1096](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1096)
+
+---
+
+### heading
+
+> **heading**: `boolean`
+
+Whether to search heading blocks
+
+#### Defined in
+
+[types/config.d.ts:1100](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1100)
+
+---
+
+### htmlBlock
+
+> **htmlBlock**: `boolean`
+
+Whether to search HTML blocks
+
+#### Defined in
+
+[types/config.d.ts:1104](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1104)
+
+---
+
+### ial
+
+> **ial**: `boolean`
+
+Whether to search block attributes
+
+#### Defined in
+
+[types/config.d.ts:1108](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1108)
+
+---
+
+### iframeBlock
+
+> **iframeBlock**: `boolean`
+
+Whether to search in iframe blocks
+
+#### Defined in
+
+[types/config.d.ts:1112](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1112)
+
+---
+
+### indexAssetPath
+
+> **indexAssetPath**: `boolean`
+
+Whether to search resource file paths
+
+#### Defined in
+
+[types/config.d.ts:1116](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1116)
+
+---
+
+### limit
+
+> **limit**: `number`
+
+Number of search results displayed
+
+#### Defined in
+
+[types/config.d.ts:1120](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1120)
+
+---
+
+### list
+
+> **list**: `boolean`
+
+Whether to search list blocks
+
+#### Defined in
+
+[types/config.d.ts:1124](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1124)
+
+---
+
+### listItem
+
+> **listItem**: `boolean`
+
+Whether to search list items
+
+#### Defined in
+
+[types/config.d.ts:1128](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1128)
+
+---
+
+### mathBlock
+
+> **mathBlock**: `boolean`
+
+Whether to search formula blocks
+
+#### Defined in
+
+[types/config.d.ts:1132](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1132)
+
+---
+
+### memo
+
+> **memo**: `boolean`
+
+Whether to search block notes
+
+#### Defined in
+
+[types/config.d.ts:1136](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1136)
+
+---
+
+### name
+
+> **name**: `boolean`
+
+Whether to search block names
+
+#### Defined in
+
+[types/config.d.ts:1140](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1140)
+
+---
+
+### paragraph
+
+> **paragraph**: `boolean`
+
+Whether to search paragraph blocks
+
+#### Defined in
+
+[types/config.d.ts:1144](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1144)
+
+---
+
+### superBlock
+
+> **superBlock**: `boolean`
+
+Whether to search super blocks
+
+#### Defined in
+
+[types/config.d.ts:1148](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1148)
+
+---
+
+### table
+
+> **table**: `boolean`
+
+Whether to search table blocks
+
+#### Defined in
+
+[types/config.d.ts:1152](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1152)
+
+---
+
+### videoBlock
+
+> **videoBlock**: `boolean`
+
+Whether to search in video blocks
+
+#### Defined in
+
+[types/config.d.ts:1156](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1156)
+
+---
+
+### virtualRefAlias
+
+> **virtualRefAlias**: `boolean`
+
+Whether to get virtual reference keywords from block aliases
+
+#### Defined in
+
+[types/config.d.ts:1160](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1160)
+
+---
+
+### virtualRefAnchor
+
+> **virtualRefAnchor**: `boolean`
+
+Whether to get virtual reference keywords from block reference anchor text
+
+#### Defined in
+
+[types/config.d.ts:1164](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1164)
+
+---
+
+### virtualRefDoc
+
+> **virtualRefDoc**: `boolean`
+
+Whether to get virtual reference keywords from document names
+
+#### Defined in
+
+[types/config.d.ts:1168](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1168)
+
+---
+
+### virtualRefName
+
+> **virtualRefName**: `boolean`
+
+Whether to get virtual reference keywords from block names
+
+#### Defined in
+
+[types/config.d.ts:1172](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1172)
+
+---
+
+### widgetBlock
+
+> **widgetBlock**: `boolean`
+
+Whether to search in widget blocks
+
+#### Defined in
+
+[types/config.d.ts:1176](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1176)
diff --git a/docs/markdown/namespaces/Config/interfaces/ISnippet.md b/docs/markdown/namespaces/Config/interfaces/ISnippet.md
new file mode 100644
index 0000000..2e26c88
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/ISnippet.md
@@ -0,0 +1,33 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / ISnippet
+
+# Interface: ISnippet
+
+SiYuan code snippets related configuration
+
+## Properties
+
+### enabledCSS
+
+> **enabledCSS**: `boolean`
+
+Whether to enable CSS code snippets
+
+#### Defined in
+
+[types/config.d.ts:1186](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1186)
+
+---
+
+### enabledJS
+
+> **enabledJS**: `boolean`
+
+Whether to enable JavaScript code snippets
+
+#### Defined in
+
+[types/config.d.ts:1190](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1190)
diff --git a/docs/markdown/namespaces/Config/interfaces/IStat.md b/docs/markdown/namespaces/Config/interfaces/IStat.md
new file mode 100644
index 0000000..f2adedd
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IStat.md
@@ -0,0 +1,105 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IStat
+
+# Interface: IStat
+
+SiYuan workspace content statistics
+
+## Properties
+
+### assetsSize
+
+> **assetsSize**: `number`
+
+Asset file size (unit: bytes)
+
+#### Defined in
+
+[types/config.d.ts:1200](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1200)
+
+---
+
+### blockCount
+
+> **blockCount**: `number`
+
+Number of content blocks
+
+#### Defined in
+
+[types/config.d.ts:1204](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1204)
+
+---
+
+### cAssetsSize
+
+> **cAssetsSize**: `number`
+
+Size of resource files after chunk encryption (unit: bytes)
+
+#### Defined in
+
+[types/config.d.ts:1208](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1208)
+
+---
+
+### cBlockCount
+
+> **cBlockCount**: `number`
+
+Number of content blocks after chunk encryption
+
+#### Defined in
+
+[types/config.d.ts:1212](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1212)
+
+---
+
+### cDataSize
+
+> **cDataSize**: `number`
+
+Size of the data directory after chunk encryption (unit: bytes)
+
+#### Defined in
+
+[types/config.d.ts:1216](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1216)
+
+---
+
+### cTreeCount
+
+> **cTreeCount**: `number`
+
+Number of content block trees after chunk encryption (number of documents)
+
+#### Defined in
+
+[types/config.d.ts:1220](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1220)
+
+---
+
+### dataSize
+
+> **dataSize**: `number`
+
+Data directory size (unit: bytes)
+
+#### Defined in
+
+[types/config.d.ts:1224](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1224)
+
+---
+
+### treeCount
+
+> **treeCount**: `number`
+
+Number of content block trees (number of documents)
+
+#### Defined in
+
+[types/config.d.ts:1228](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1228)
diff --git a/docs/markdown/namespaces/Config/interfaces/ISync.md b/docs/markdown/namespaces/Config/interfaces/ISync.md
new file mode 100644
index 0000000..f6acfb1
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/ISync.md
@@ -0,0 +1,134 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / ISync
+
+# Interface: ISync
+
+SiYuan synchronization related configuration
+
+## Properties
+
+### cloudName
+
+> **cloudName**: `string`
+
+Cloud workspace name
+
+#### Defined in
+
+[types/config.d.ts:1238](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1238)
+
+---
+
+### enabled
+
+> **enabled**: `boolean`
+
+Whether to enable synchronization
+
+#### Defined in
+
+[types/config.d.ts:1242](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1242)
+
+---
+
+### generateConflictDoc
+
+> **generateConflictDoc**: `boolean`
+
+Whether to create a conflict document when a conflict occurs during synchronization
+
+#### Defined in
+
+[types/config.d.ts:1246](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1246)
+
+---
+
+### mode
+
+> **mode**: `number`
+
+Synchronization mode
+
+- `0`: Not set
+- `1`: Automatic synchronization
+- `2`: Manual synchronization
+- `3`: Completely manual synchronization
+
+#### Defined in
+
+[types/config.d.ts:1254](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1254)
+
+---
+
+### perception
+
+> **perception**: `boolean`
+
+Whether to enable synchronization perception
+
+#### Defined in
+
+[types/config.d.ts:1258](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1258)
+
+---
+
+### provider
+
+> **provider**: `number`
+
+Cloud storage service provider
+
+- `0`: SiYuan official cloud storage service
+- `2`: Object storage service compatible with S3 protocol
+- `3`: Network storage service using WebDAV protocol
+
+#### Defined in
+
+[types/config.d.ts:1265](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1265)
+
+---
+
+### s3
+
+> **s3**: [`ISyncS3`](ISyncS3.md)
+
+#### Defined in
+
+[types/config.d.ts:1266](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1266)
+
+---
+
+### stat
+
+> **stat**: `string`
+
+The prompt information of the last synchronization
+
+#### Defined in
+
+[types/config.d.ts:1270](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1270)
+
+---
+
+### synced
+
+> **synced**: `number`
+
+The time of the last synchronization (Unix timestamp)
+
+#### Defined in
+
+[types/config.d.ts:1274](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1274)
+
+---
+
+### webdav
+
+> **webdav**: [`ISyncWebDAV`](ISyncWebDAV.md)
+
+#### Defined in
+
+[types/config.d.ts:1275](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1275)
diff --git a/docs/markdown/namespaces/Config/interfaces/ISyncS3.md b/docs/markdown/namespaces/Config/interfaces/ISyncS3.md
new file mode 100644
index 0000000..8fa5a21
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/ISyncS3.md
@@ -0,0 +1,105 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / ISyncS3
+
+# Interface: ISyncS3
+
+S3 compatible object storage related configuration
+
+## Properties
+
+### accessKey
+
+> **accessKey**: `string`
+
+Access key
+
+#### Defined in
+
+[types/config.d.ts:1285](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1285)
+
+---
+
+### bucket
+
+> **bucket**: `string`
+
+Bucket name
+
+#### Defined in
+
+[types/config.d.ts:1289](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1289)
+
+---
+
+### endpoint
+
+> **endpoint**: `string`
+
+Service endpoint address
+
+#### Defined in
+
+[types/config.d.ts:1293](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1293)
+
+---
+
+### pathStyle
+
+> **pathStyle**: `boolean`
+
+Whether to use path-style URLs
+
+#### Defined in
+
+[types/config.d.ts:1297](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1297)
+
+---
+
+### region
+
+> **region**: `string`
+
+Storage region
+
+#### Defined in
+
+[types/config.d.ts:1301](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1301)
+
+---
+
+### secretKey
+
+> **secretKey**: `string`
+
+Security key
+
+#### Defined in
+
+[types/config.d.ts:1305](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1305)
+
+---
+
+### skipTlsVerify
+
+> **skipTlsVerify**: `boolean`
+
+Whether to skip TLS verification
+
+#### Defined in
+
+[types/config.d.ts:1309](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1309)
+
+---
+
+### timeout
+
+> **timeout**: `number`
+
+Timeout (unit: seconds)
+
+#### Defined in
+
+[types/config.d.ts:1313](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1313)
diff --git a/docs/markdown/namespaces/Config/interfaces/ISyncWebDAV.md b/docs/markdown/namespaces/Config/interfaces/ISyncWebDAV.md
new file mode 100644
index 0000000..96cad5c
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/ISyncWebDAV.md
@@ -0,0 +1,69 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / ISyncWebDAV
+
+# Interface: ISyncWebDAV
+
+WebDAV related configuration
+
+## Properties
+
+### endpoint
+
+> **endpoint**: `string`
+
+Service endpoint
+
+#### Defined in
+
+[types/config.d.ts:1323](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1323)
+
+---
+
+### password
+
+> **password**: `string`
+
+Password
+
+#### Defined in
+
+[types/config.d.ts:1327](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1327)
+
+---
+
+### skipTlsVerify
+
+> **skipTlsVerify**: `boolean`
+
+Whether to skip TLS verification
+
+#### Defined in
+
+[types/config.d.ts:1331](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1331)
+
+---
+
+### timeout
+
+> **timeout**: `number`
+
+Timeout (unit: seconds)
+
+#### Defined in
+
+[types/config.d.ts:1335](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1335)
+
+---
+
+### username
+
+> **username**: `string`
+
+Username
+
+#### Defined in
+
+[types/config.d.ts:1339](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1339)
diff --git a/docs/markdown/namespaces/Config/interfaces/ISystem.md b/docs/markdown/namespaces/Config/interfaces/ISystem.md
new file mode 100644
index 0000000..eea657d
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/ISystem.md
@@ -0,0 +1,265 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / ISystem
+
+# Interface: ISystem
+
+System related information
+
+## Properties
+
+### appDir
+
+> **appDir**: `string`
+
+The absolute path of the `resources` directory under the SiYuan installation directory
+
+#### Defined in
+
+[types/config.d.ts:1349](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1349)
+
+---
+
+### autoLaunch2
+
+> **autoLaunch2**: `number`
+
+Boot automatically
+
+- `0`: Do not boot automatically
+- `1`: Boot automatically
+- `2`: Boot automatically + Minimize UI
+
+#### Defined in
+
+[types/config.d.ts:1356](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1356)
+
+---
+
+### confDir
+
+> **confDir**: `string`
+
+The absolute path of the `conf` directory of the current workspace
+
+#### Defined in
+
+[types/config.d.ts:1360](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1360)
+
+---
+
+### container
+
+> **container**: [`TSystemContainer`](../type-aliases/TSystemContainer.md)
+
+Kernel operating environment
+
+- `docker`: Docker container
+- `android`: Android device
+- `ios`: iOS device
+- `std`: Desktop Electron environment
+
+#### Defined in
+
+[types/config.d.ts:1368](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1368)
+
+---
+
+### dataDir
+
+> **dataDir**: `string`
+
+The absolute path of the `data` directory of the current workspace
+
+#### Defined in
+
+[types/config.d.ts:1372](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1372)
+
+---
+
+### disableGoogleAnalytics
+
+> **disableGoogleAnalytics**: `boolean`
+
+Whether to disable Google Analytics
+
+#### Defined in
+
+[types/config.d.ts:1376](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1376)
+
+---
+
+### downloadInstallPkg
+
+> **downloadInstallPkg**: `boolean`
+
+Whether to automatically download the installation package for the new version
+
+#### Defined in
+
+[types/config.d.ts:1380](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1380)
+
+---
+
+### homeDir
+
+> **homeDir**: `string`
+
+The absolute path of the user's home directory for the current operating system user
+
+#### Defined in
+
+[types/config.d.ts:1384](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1384)
+
+---
+
+### id
+
+> **id**: `string`
+
+The UUID of the current session
+
+#### Defined in
+
+[types/config.d.ts:1388](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1388)
+
+---
+
+### isInsider
+
+> **isInsider**: `boolean`
+
+Whether the current version is an internal test version
+
+#### Defined in
+
+[types/config.d.ts:1392](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1392)
+
+---
+
+### isMicrosoftStore
+
+> **isMicrosoftStore**: `boolean`
+
+Whether the current version is a Microsoft Store version
+
+#### Defined in
+
+[types/config.d.ts:1396](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1396)
+
+---
+
+### kernelVersion
+
+> **kernelVersion**: `string`
+
+Kernel version number
+
+#### Defined in
+
+[types/config.d.ts:1400](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1400)
+
+---
+
+### lockScreenMode
+
+> **lockScreenMode**: `number`
+
+Lock screen mode
+
+- `0`: Manual
+- `1`: Manual + Follow the operating system
+
+#### Defined in
+
+[types/config.d.ts:1406](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1406)
+
+---
+
+### name
+
+> **name**: `string`
+
+The name of the current device
+
+#### Defined in
+
+[types/config.d.ts:1410](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1410)
+
+---
+
+### networkProxy
+
+> **networkProxy**: [`INetworkProxy`](INetworkProxy.md)
+
+#### Defined in
+
+[types/config.d.ts:1411](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1411)
+
+---
+
+### networkServe
+
+> **networkServe**: `boolean`
+
+Whether to enable network serve (whether to allow connections from other devices)
+
+#### Defined in
+
+[types/config.d.ts:1415](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1415)
+
+---
+
+### os
+
+> **os**: [`TSystemOS`](../type-aliases/TSystemOS.md)
+
+The operating system name determined at compile time (obtained using the command `go tool dist list`)
+
+- `android`: Android
+- `darwin`: macOS
+- `ios`: iOS
+- `linux`: Linux
+- `windows`: Windows
+
+#### Defined in
+
+[types/config.d.ts:1425](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1425)
+
+---
+
+### osPlatform
+
+> **osPlatform**: `string`
+
+Operating system platform name
+
+#### Defined in
+
+[types/config.d.ts:1429](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1429)
+
+---
+
+### uploadErrLog
+
+> **uploadErrLog**: `boolean`
+
+Whether to upload error logs
+
+#### Defined in
+
+[types/config.d.ts:1433](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1433)
+
+---
+
+### workspaceDir
+
+> **workspaceDir**: `string`
+
+The absolute path of the workspace directory
+
+#### Defined in
+
+[types/config.d.ts:1437](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1437)
diff --git a/docs/markdown/namespaces/Config/interfaces/ITag.md b/docs/markdown/namespaces/Config/interfaces/ITag.md
new file mode 100644
index 0000000..6f47668
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/ITag.md
@@ -0,0 +1,28 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / ITag
+
+# Interface: ITag
+
+SiYuan tag dock related configuration
+
+## Properties
+
+### sort
+
+> **sort**: `number`
+
+Tag sorting scheme
+
+- `0`: Name alphabetically ascending
+- `1`: Name alphabetically descending
+- `4`: Name natural ascending
+- `5`: Name natural descending
+- `7`: Reference count ascending
+- `8`: Reference count descending
+
+#### Defined in
+
+[types/config.d.ts:1504](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1504)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutDock.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutDock.md
new file mode 100644
index 0000000..11edaeb
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutDock.md
@@ -0,0 +1,33 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutDock
+
+# Interface: IUILayoutDock
+
+SiYuan dock related configuration
+
+## Properties
+
+### data
+
+> **data**: [`IUILayoutDockTab`](IUILayoutDockTab.md)[][]
+
+Dock area list
+
+#### Defined in
+
+[types/config.d.ts:1528](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1528)
+
+---
+
+### pin
+
+> **pin**: `boolean`
+
+Whether to pin the dock
+
+#### Defined in
+
+[types/config.d.ts:1532](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1532)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutDockPanelSize.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutDockPanelSize.md
new file mode 100644
index 0000000..a61fbf9
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutDockPanelSize.md
@@ -0,0 +1,33 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutDockPanelSize
+
+# Interface: IUILayoutDockPanelSize
+
+SiYuan dock tab size
+
+## Properties
+
+### height
+
+> **height**: `null` \| `number`
+
+Tab height (unit: px)
+
+#### Defined in
+
+[types/config.d.ts:1573](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1573)
+
+---
+
+### width
+
+> **width**: `null` \| `number`
+
+Tab width (unit: px)
+
+#### Defined in
+
+[types/config.d.ts:1577](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1577)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutDockTab.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutDockTab.md
new file mode 100644
index 0000000..440434d
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutDockTab.md
@@ -0,0 +1,91 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutDockTab
+
+# Interface: IUILayoutDockTab
+
+SiYuan dock tab data
+
+## Properties
+
+### hotkey?
+
+> `optional` **hotkey**: `string`
+
+Dock tab hotkey
+
+#### Defined in
+
+[types/config.d.ts:1542](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1542)
+
+---
+
+### hotkeyLangId?
+
+> `optional` **hotkeyLangId**: `string`
+
+Hotkey description ID
+
+#### Defined in
+
+[types/config.d.ts:1546](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1546)
+
+---
+
+### icon
+
+> **icon**: `string`
+
+Tab icon ID
+
+#### Defined in
+
+[types/config.d.ts:1550](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1550)
+
+---
+
+### show
+
+> **show**: `boolean`
+
+Whether to display the tab
+
+#### Defined in
+
+[types/config.d.ts:1554](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1554)
+
+---
+
+### size
+
+> **size**: [`IUILayoutDockPanelSize`](IUILayoutDockPanelSize.md)
+
+#### Defined in
+
+[types/config.d.ts:1555](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1555)
+
+---
+
+### title?
+
+> `optional` **title**: `string`
+
+Tab title
+
+#### Defined in
+
+[types/config.d.ts:1559](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1559)
+
+---
+
+### type
+
+> **type**: `string`
+
+Tab type
+
+#### Defined in
+
+[types/config.d.ts:1563](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1563)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutLayout.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutLayout.md
new file mode 100644
index 0000000..39429b7
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutLayout.md
@@ -0,0 +1,94 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutLayout
+
+# Interface: IUILayoutLayout
+
+SiYuan panel layout
+
+## Properties
+
+### children
+
+> **children**: ([`IUILayoutLayout`](IUILayoutLayout.md) \| [`IUILayoutWnd`](IUILayoutWnd.md))[]
+
+Internal elements
+
+#### Defined in
+
+[types/config.d.ts:1604](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1604)
+
+---
+
+### direction?
+
+> `optional` **direction**: [`TUILayoutDirection`](../type-aliases/TUILayoutDirection.md)
+
+Panel content layout direction
+
+- `tb`: Top and bottom layout
+- `lr`: Left and right layout
+
+#### Defined in
+
+[types/config.d.ts:1610](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1610)
+
+---
+
+### instance
+
+> **instance**: `"Layout"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1614](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1614)
+
+---
+
+### resize?
+
+> `optional` **resize**: [`TUILayoutDirection`](../type-aliases/TUILayoutDirection.md)
+
+The direction in which the size can be adjusted
+
+- `tb`: Can adjust the size up and down
+- `lr`: Can adjust the size left and right
+
+#### Defined in
+
+[types/config.d.ts:1620](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1620)
+
+---
+
+### size?
+
+> `optional` **size**: `string`
+
+Panel size
+
+#### Defined in
+
+[types/config.d.ts:1624](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1624)
+
+---
+
+### type?
+
+> `optional` **type**: [`TUILayoutType`](../type-aliases/TUILayoutType.md)
+
+Layout type
+
+- `normal`: Normal panel
+- `center`: Center panel
+- `top`: Top panel
+- `bottom`: Bottom panel
+- `left`: Left panel
+- `right`: Right panel
+
+#### Defined in
+
+[types/config.d.ts:1634](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1634)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTab.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTab.md
new file mode 100644
index 0000000..1f50278
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTab.md
@@ -0,0 +1,103 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTab
+
+# Interface: IUILayoutTab
+
+## Properties
+
+### active?
+
+> `optional` **active**: `boolean`
+
+Whether the tab is active
+
+#### Defined in
+
+[types/config.d.ts:1669](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1669)
+
+---
+
+### children
+
+> **children**: ([`IUILayoutTabAsset`](IUILayoutTabAsset.md) \| [`IUILayoutTabBacklink`](IUILayoutTabBacklink.md) \| [`IUILayoutTabCustom`](IUILayoutTabCustom.md) \| [`IUILayoutTabEditor`](IUILayoutTabEditor.md))[]
+
+Tab content
+
+#### Defined in
+
+[types/config.d.ts:1673](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1673)
+
+---
+
+### docIcon?
+
+> `optional` **docIcon**: `string`
+
+Tab icon
+
+#### Defined in
+
+[types/config.d.ts:1677](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1677)
+
+---
+
+### icon?
+
+> `optional` **icon**: `string`
+
+Icon reference ID
+
+#### Defined in
+
+[types/config.d.ts:1681](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1681)
+
+---
+
+### instance
+
+> **instance**: `"Tab"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1685](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1685)
+
+---
+
+### lang?
+
+> `optional` **lang**: `string`
+
+Localization field key name
+
+#### Defined in
+
+[types/config.d.ts:1689](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1689)
+
+---
+
+### pin?
+
+> `optional` **pin**: `boolean`
+
+Whether the tab is pinned
+
+#### Defined in
+
+[types/config.d.ts:1693](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1693)
+
+---
+
+### title?
+
+> `optional` **title**: `string`
+
+Tab title
+
+#### Defined in
+
+[types/config.d.ts:1697](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1697)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabAsset.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabAsset.md
new file mode 100644
index 0000000..a1526fa
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabAsset.md
@@ -0,0 +1,47 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabAsset
+
+# Interface: IUILayoutTabAsset
+
+Tab content
+
+SiYuan asset file tab
+
+## Properties
+
+### instance
+
+> **instance**: `"Asset"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1709](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1709)
+
+---
+
+### page?
+
+> `optional` **page**: `number`
+
+(Asset) PDF file page number
+
+#### Defined in
+
+[types/config.d.ts:1713](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1713)
+
+---
+
+### path
+
+> **path**: `string`
+
+(Asset) Asset reference path
+
+#### Defined in
+
+[types/config.d.ts:1717](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1717)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabBacklink.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabBacklink.md
new file mode 100644
index 0000000..6609869
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabBacklink.md
@@ -0,0 +1,60 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabBacklink
+
+# Interface: IUILayoutTabBacklink
+
+SiYuan back link tab
+
+## Properties
+
+### blockId
+
+> **blockId**: `string`
+
+(Backlink) Block ID
+
+#### Defined in
+
+[types/config.d.ts:1727](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1727)
+
+---
+
+### instance
+
+> **instance**: `"Backlink"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1731](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1731)
+
+---
+
+### rootId
+
+> **rootId**: `string`
+
+(Backlink) Document block ID
+
+#### Defined in
+
+[types/config.d.ts:1735](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1735)
+
+---
+
+### type
+
+> **type**: [`TUILayoutTabBacklinkType`](../type-aliases/TUILayoutTabBacklinkType.md)
+
+(Backlink) Tab type
+
+- `pin`: Pinned panel
+- `local`: The panel of the current document
+
+#### Defined in
+
+[types/config.d.ts:1741](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1741)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabBookmark.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabBookmark.md
new file mode 100644
index 0000000..0c06d2d
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabBookmark.md
@@ -0,0 +1,21 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabBookmark
+
+# Interface: IUILayoutTabBookmark
+
+SiYuan bookmark tab
+
+## Properties
+
+### instance
+
+> **instance**: `"Bookmark"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1758](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1758)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabCustom.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabCustom.md
new file mode 100644
index 0000000..fcdde04
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabCustom.md
@@ -0,0 +1,45 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabCustom
+
+# Interface: IUILayoutTabCustom
+
+SiYuan custom tab
+
+## Properties
+
+### customModelData
+
+> **customModelData**: `any`
+
+(Custom) Data of the custom tab
+
+#### Defined in
+
+[types/config.d.ts:1768](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1768)
+
+---
+
+### customModelType
+
+> **customModelType**: `string`
+
+(Custom) Type of the custom tab
+
+#### Defined in
+
+[types/config.d.ts:1772](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1772)
+
+---
+
+### instance
+
+> **instance**: `"Custom"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1776](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1776)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabEditor.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabEditor.md
new file mode 100644
index 0000000..1a138e6
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabEditor.md
@@ -0,0 +1,84 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabEditor
+
+# Interface: IUILayoutTabEditor
+
+SiYuan editor tab
+
+## Properties
+
+### action
+
+> **action**: `string`
+
+(Editor) Actions to be performed after the tab is loaded
+
+#### Defined in
+
+[types/config.d.ts:1786](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1786)
+
+---
+
+### blockId
+
+> **blockId**: `string`
+
+(Editor) Block ID
+
+#### Defined in
+
+[types/config.d.ts:1790](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1790)
+
+---
+
+### instance
+
+> **instance**: `"Editor"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1794](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1794)
+
+---
+
+### mode
+
+> **mode**: [`TEditorMode`](../../../type-aliases/TEditorMode.md)
+
+(Editor) Editor mode
+
+- `wysiwyg`: WYSIWYG mode
+- `preview`: Export preview mode
+
+#### Defined in
+
+[types/config.d.ts:1800](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1800)
+
+---
+
+### notebookId
+
+> **notebookId**: `string`
+
+(Editor) Notebook ID
+
+#### Defined in
+
+[types/config.d.ts:1804](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1804)
+
+---
+
+### rootId
+
+> **rootId**: `string`
+
+(Editor) Document block ID
+
+#### Defined in
+
+[types/config.d.ts:1808](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1808)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabFiles.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabFiles.md
new file mode 100644
index 0000000..c7c4a52
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabFiles.md
@@ -0,0 +1,21 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabFiles
+
+# Interface: IUILayoutTabFiles
+
+SiYuan filetree tab
+
+## Properties
+
+### instance
+
+> **instance**: `"Files"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1818](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1818)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabGraph.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabGraph.md
new file mode 100644
index 0000000..3750988
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabGraph.md
@@ -0,0 +1,61 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabGraph
+
+# Interface: IUILayoutTabGraph
+
+SiYuan graph tab
+
+## Properties
+
+### blockId
+
+> **blockId**: `string`
+
+(Graph) Block ID
+
+#### Defined in
+
+[types/config.d.ts:1828](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1828)
+
+---
+
+### instance
+
+> **instance**: `"Graph"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1832](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1832)
+
+---
+
+### rootId
+
+> **rootId**: `string`
+
+(Graph) Document block ID
+
+#### Defined in
+
+[types/config.d.ts:1836](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1836)
+
+---
+
+### type
+
+> **type**: [`TUILayoutTabGraphType`](../type-aliases/TUILayoutTabGraphType.md)
+
+(Graph) Tab type
+
+- `pin`: Pinned graph
+- `local`: Graph of the current editor
+- `global`: Global graph
+
+#### Defined in
+
+[types/config.d.ts:1843](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1843)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabOutline.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabOutline.md
new file mode 100644
index 0000000..204b505
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabOutline.md
@@ -0,0 +1,60 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabOutline
+
+# Interface: IUILayoutTabOutline
+
+SiYuan outline tab
+
+## Properties
+
+### blockId
+
+> **blockId**: `string`
+
+(Outline) Block ID
+
+#### Defined in
+
+[types/config.d.ts:1861](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1861)
+
+---
+
+### instance
+
+> **instance**: `"Outline"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1865](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1865)
+
+---
+
+### isPreview
+
+> **isPreview**: `boolean`
+
+(Outline) Whether the associated editor is in preview mode
+
+#### Defined in
+
+[types/config.d.ts:1869](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1869)
+
+---
+
+### type
+
+> **type**: [`TUILayoutTabOutlineType`](../type-aliases/TUILayoutTabOutlineType.md)
+
+(Outline) Tab type
+
+- `pin`: Pinned outline panel
+- `local`: The outline panel of the current editor
+
+#### Defined in
+
+[types/config.d.ts:1875](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1875)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearch.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearch.md
new file mode 100644
index 0000000..28d0a61
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearch.md
@@ -0,0 +1,31 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabSearch
+
+# Interface: IUILayoutTabSearch
+
+SiYuan search tab
+
+## Properties
+
+### config
+
+> **config**: [`IUILayoutTabSearchConfig`](IUILayoutTabSearchConfig.md)
+
+#### Defined in
+
+[types/config.d.ts:1899](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1899)
+
+---
+
+### instance
+
+> **instance**: `"Search"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1903](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1903)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearchConfig.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearchConfig.md
new file mode 100644
index 0000000..53f9680
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearchConfig.md
@@ -0,0 +1,188 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabSearchConfig
+
+# Interface: IUILayoutTabSearchConfig
+
+SiYuan search tab configuration
+
+## Properties
+
+### group
+
+> **group**: `number`
+
+Grouping strategy
+
+- `0`: No grouping
+- `1`: Group by document
+
+#### Defined in
+
+[types/config.d.ts:1915](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1915)
+
+---
+
+### hPath
+
+> **hPath**: `string`
+
+Readable path list
+
+#### Defined in
+
+[types/config.d.ts:1920](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1920)
+
+---
+
+### hasReplace
+
+> **hasReplace**: `any`
+
+#### Defined in
+
+[types/config.d.ts:1916](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1916)
+
+---
+
+### idPath
+
+> **idPath**: `string`[]
+
+Search in the specified paths
+
+#### Defined in
+
+[types/config.d.ts:1924](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1924)
+
+---
+
+### k
+
+> **k**: `string`
+
+Search content
+
+#### Defined in
+
+[types/config.d.ts:1928](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1928)
+
+---
+
+### method
+
+> **method**: `number`
+
+Search scheme
+
+- `0`: Keyword (default)
+- `1`: Query syntax
+- `2`: SQL
+- `3`: Regular expression
+
+#### Default
+
+```ts
+0;
+```
+
+#### Defined in
+
+[types/config.d.ts:1937](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1937)
+
+---
+
+### name?
+
+> `optional` **name**: `string`
+
+Custom name of the query condition group
+
+#### Defined in
+
+[types/config.d.ts:1941](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1941)
+
+---
+
+### page
+
+> **page**: `number`
+
+Current page number
+
+#### Defined in
+
+[types/config.d.ts:1945](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1945)
+
+---
+
+### r
+
+> **r**: `string`
+
+Replace content
+
+#### Defined in
+
+[types/config.d.ts:1949](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1949)
+
+---
+
+### removed?
+
+> `optional` **removed**: `boolean`
+
+Whether to clear the search box after removing the currently used query condition group
+
+#### Defined in
+
+[types/config.d.ts:1953](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1953)
+
+---
+
+### replaceTypes
+
+> **replaceTypes**: [`IUILayoutTabSearchConfigReplaceTypes`](IUILayoutTabSearchConfigReplaceTypes.md)
+
+#### Defined in
+
+[types/config.d.ts:1954](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1954)
+
+---
+
+### sort
+
+> **sort**: `number`
+
+Search result sorting scheme
+
+- `0`: Block type (default)
+- `1`: Ascending by creation time
+- `2`: Descending by creation time
+- `3`: Ascending by update time
+- `4`: Descending by update time
+- `5`: By content order (only valid when grouping by document)
+- `6`: Ascending by relevance
+- `7`: Descending by relevance
+
+#### Default
+
+```ts
+0;
+```
+
+#### Defined in
+
+[types/config.d.ts:1967](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1967)
+
+---
+
+### types
+
+> **types**: [`IUILayoutTabSearchConfigTypes`](IUILayoutTabSearchConfigTypes.md)
+
+#### Defined in
+
+[types/config.d.ts:1968](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1968)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearchConfigReplaceTypes.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearchConfigReplaceTypes.md
new file mode 100644
index 0000000..0c4328d
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearchConfigReplaceTypes.md
@@ -0,0 +1,423 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabSearchConfigReplaceTypes
+
+# Interface: IUILayoutTabSearchConfigReplaceTypes
+
+Replace type filtering
+
+## Properties
+
+### aHref?
+
+> `optional` **aHref**: `boolean`
+
+Replace hyperlinks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:1979](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1979)
+
+---
+
+### aText?
+
+> `optional` **aText**: `boolean`
+
+Replace hyperlink anchor text
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:1984](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1984)
+
+---
+
+### aTitle?
+
+> `optional` **aTitle**: `boolean`
+
+Replace hyperlink title
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:1989](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1989)
+
+---
+
+### code?
+
+> `optional` **code**: `boolean`
+
+Replace inline code
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:1994](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1994)
+
+---
+
+### codeBlock?
+
+> `optional` **codeBlock**: `boolean`
+
+Replace code blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:1999](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1999)
+
+---
+
+### docTitle?
+
+> `optional` **docTitle**: `boolean`
+
+Replace document title
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2004](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2004)
+
+---
+
+### em?
+
+> `optional` **em**: `boolean`
+
+Replace italic elements
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2009](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2009)
+
+---
+
+### htmlBlock?
+
+> `optional` **htmlBlock**: `boolean`
+
+Replace HTML blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2014](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2014)
+
+---
+
+### imgSrc?
+
+> `optional` **imgSrc**: `boolean`
+
+Replace image addresses
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2019](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2019)
+
+---
+
+### imgText?
+
+> `optional` **imgText**: `boolean`
+
+Replace image anchor text
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2024](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2024)
+
+---
+
+### imgTitle?
+
+> `optional` **imgTitle**: `boolean`
+
+Replace image titles
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2029](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2029)
+
+---
+
+### inlineMath?
+
+> `optional` **inlineMath**: `boolean`
+
+Replace inline formulas
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2034](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2034)
+
+---
+
+### inlineMemo?
+
+> `optional` **inlineMemo**: `boolean`
+
+Replace inline memos
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2039](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2039)
+
+---
+
+### kbd?
+
+> `optional` **kbd**: `boolean`
+
+Replace kdb elements
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2044](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2044)
+
+---
+
+### mark?
+
+> `optional` **mark**: `boolean`
+
+Replace mark elements
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2049](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2049)
+
+---
+
+### mathBlock?
+
+> `optional` **mathBlock**: `boolean`
+
+Replace formula blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2054](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2054)
+
+---
+
+### s?
+
+> `optional` **s**: `boolean`
+
+Replace delete elements
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2059](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2059)
+
+---
+
+### strong?
+
+> `optional` **strong**: `boolean`
+
+Replace bold elements
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2064](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2064)
+
+---
+
+### sub?
+
+> `optional` **sub**: `boolean`
+
+Replace subscript elements
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2069](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2069)
+
+---
+
+### sup?
+
+> `optional` **sup**: `boolean`
+
+Replace superscript elements
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2074](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2074)
+
+---
+
+### tag?
+
+> `optional` **tag**: `boolean`
+
+Replace tag elements
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2079](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2079)
+
+---
+
+### text?
+
+> `optional` **text**: `boolean`
+
+Replace rich text elements
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2084](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2084)
+
+---
+
+### u?
+
+> `optional` **u**: `boolean`
+
+Replace underline elements
+
+#### Default
+
+```ts
+true;
+```
+
+#### Defined in
+
+[types/config.d.ts:2089](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2089)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearchConfigTypes.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearchConfigTypes.md
new file mode 100644
index 0000000..d76357a
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabSearchConfigTypes.md
@@ -0,0 +1,315 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabSearchConfigTypes
+
+# Interface: IUILayoutTabSearchConfigTypes
+
+Search type filtering
+
+## Properties
+
+### audioBlock
+
+> **audioBlock**: `boolean`
+
+Search results contain audio blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2100](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2100)
+
+---
+
+### blockquote
+
+> **blockquote**: `boolean`
+
+Search results contain blockquote blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2105](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2105)
+
+---
+
+### codeBlock
+
+> **codeBlock**: `boolean`
+
+Search results contain code blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2110](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2110)
+
+---
+
+### databaseBlock
+
+> **databaseBlock**: `boolean`
+
+Search results contain database blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2115](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2115)
+
+---
+
+### document
+
+> **document**: `boolean`
+
+Search results contain document blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2120](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2120)
+
+---
+
+### embedBlock
+
+> **embedBlock**: `boolean`
+
+Search results contain embed blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2125](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2125)
+
+---
+
+### heading
+
+> **heading**: `boolean`
+
+Search results contain heading blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2130](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2130)
+
+---
+
+### htmlBlock
+
+> **htmlBlock**: `boolean`
+
+Search results contain html blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2135](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2135)
+
+---
+
+### iframeBlock
+
+> **iframeBlock**: `boolean`
+
+Search results contain iframe blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2140](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2140)
+
+---
+
+### list
+
+> **list**: `boolean`
+
+Search results contain list blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2145](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2145)
+
+---
+
+### listItem
+
+> **listItem**: `boolean`
+
+Search results contain list item blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2150](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2150)
+
+---
+
+### mathBlock
+
+> **mathBlock**: `boolean`
+
+Search results contain math blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2155](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2155)
+
+---
+
+### paragraph
+
+> **paragraph**: `boolean`
+
+Search results contain paragraph blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2160](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2160)
+
+---
+
+### superBlock
+
+> **superBlock**: `boolean`
+
+Search results contain super blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2165](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2165)
+
+---
+
+### table
+
+> **table**: `boolean`
+
+Search results contain table blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2170](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2170)
+
+---
+
+### videoBlock
+
+> **videoBlock**: `boolean`
+
+Search results contain video blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2175](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2175)
+
+---
+
+### widgetBlock
+
+> **widgetBlock**: `boolean`
+
+Search results contain widget blocks
+
+#### Default
+
+```ts
+false;
+```
+
+#### Defined in
+
+[types/config.d.ts:2180](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2180)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutTabTag.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabTag.md
new file mode 100644
index 0000000..dc62cda
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutTabTag.md
@@ -0,0 +1,21 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutTabTag
+
+# Interface: IUILayoutTabTag
+
+SiYuan tag tab
+
+## Properties
+
+### instance
+
+> **instance**: `"Tag"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1892](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1892)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUILayoutWnd.md b/docs/markdown/namespaces/Config/interfaces/IUILayoutWnd.md
new file mode 100644
index 0000000..448e675
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUILayoutWnd.md
@@ -0,0 +1,72 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUILayoutWnd
+
+# Interface: IUILayoutWnd
+
+SiYuan window layout
+
+## Properties
+
+### children
+
+> **children**: [`IUILayoutTab`](IUILayoutTab.md)[]
+
+Internal elements
+
+#### Defined in
+
+[types/config.d.ts:1644](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1644)
+
+---
+
+### height?
+
+> `optional` **height**: `string`
+
+Panel height
+
+#### Defined in
+
+[types/config.d.ts:1648](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1648)
+
+---
+
+### instance
+
+> **instance**: `"Wnd"`
+
+Object name
+
+#### Defined in
+
+[types/config.d.ts:1652](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1652)
+
+---
+
+### resize?
+
+> `optional` **resize**: [`TUILayoutDirection`](../type-aliases/TUILayoutDirection.md)
+
+The direction in which the size can be adjusted
+
+- `tb`: Can adjust the size up and down
+- `lr`: Can adjust the size left and right
+
+#### Defined in
+
+[types/config.d.ts:1658](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1658)
+
+---
+
+### width?
+
+> `optional` **width**: `string`
+
+Panel width
+
+#### Defined in
+
+[types/config.d.ts:1662](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1662)
diff --git a/docs/markdown/namespaces/Config/interfaces/IUiLayout.md b/docs/markdown/namespaces/Config/interfaces/IUiLayout.md
new file mode 100644
index 0000000..1bc66fc
--- /dev/null
+++ b/docs/markdown/namespaces/Config/interfaces/IUiLayout.md
@@ -0,0 +1,61 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / IUiLayout
+
+# Interface: IUiLayout
+
+SiYuan UI layout related configuration
+
+## Properties
+
+### bottom
+
+> **bottom**: [`IUILayoutDock`](IUILayoutDock.md)
+
+#### Defined in
+
+[types/config.d.ts:1511](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1511)
+
+---
+
+### hideDock
+
+> **hideDock**: `boolean`
+
+Whether to hide the sidebar
+
+#### Defined in
+
+[types/config.d.ts:1515](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1515)
+
+---
+
+### layout
+
+> **layout**: [`IUILayoutLayout`](IUILayoutLayout.md)
+
+#### Defined in
+
+[types/config.d.ts:1516](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1516)
+
+---
+
+### left
+
+> **left**: [`IUILayoutDock`](IUILayoutDock.md)
+
+#### Defined in
+
+[types/config.d.ts:1517](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1517)
+
+---
+
+### right
+
+> **right**: [`IUILayoutDock`](IUILayoutDock.md)
+
+#### Defined in
+
+[types/config.d.ts:1518](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1518)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TAccessAuthCode.md b/docs/markdown/namespaces/Config/type-aliases/TAccessAuthCode.md
new file mode 100644
index 0000000..a51f114
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TAccessAuthCode.md
@@ -0,0 +1,15 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TAccessAuthCode
+
+# Type Alias: TAccessAuthCode
+
+> **TAccessAuthCode**: `""` \| `"*******"`
+
+Access authorization code
+
+## Defined in
+
+[types/config.d.ts:77](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L77)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TLang.md b/docs/markdown/namespaces/Config/type-aliases/TLang.md
new file mode 100644
index 0000000..0986456
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TLang.md
@@ -0,0 +1,18 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TLang
+
+# Type Alias: TLang
+
+> **TLang**: `"en_US"` \| `"es_ES"` \| `"fr_FR"` \| `"ja_JP"` \| `"zh_CHT"` \| `"zh_CN"`
+
+The language used by the current user
+
+User interface language
+Same as [IAppearance.lang](../interfaces/IAppearance.md#lang)
+
+## Defined in
+
+[types/config.d.ts:251](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L251)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TLogLevel.md b/docs/markdown/namespaces/Config/type-aliases/TLogLevel.md
new file mode 100644
index 0000000..cd5c901
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TLogLevel.md
@@ -0,0 +1,15 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TLogLevel
+
+# Type Alias: TLogLevel
+
+> **TLogLevel**: `"debug"` \| `"error"` \| `"fatal"` \| `"info"` \| `"off"` \| `"trace"` \| `"warn"`
+
+Log level
+
+## Defined in
+
+[types/config.d.ts:1017](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1017)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TOpenAIAPIModel.md b/docs/markdown/namespaces/Config/type-aliases/TOpenAIAPIModel.md
new file mode 100644
index 0000000..24d4cac
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TOpenAIAPIModel.md
@@ -0,0 +1,15 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TOpenAIAPIModel
+
+# Type Alias: TOpenAIAPIModel
+
+> **TOpenAIAPIModel**: `"gpt-3.5-turbo-16k"` \| `"gpt-3.5-turbo"` \| `"gpt-4-32k"` \| `"gpt-4"`
+
+The model name called by the API
+
+## Defined in
+
+[types/config.d.ts:154](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L154)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TOpenAIAPIProvider.md b/docs/markdown/namespaces/Config/type-aliases/TOpenAIAPIProvider.md
new file mode 100644
index 0000000..70d244b
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TOpenAIAPIProvider.md
@@ -0,0 +1,15 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TOpenAIAPIProvider
+
+# Type Alias: TOpenAIAPIProvider
+
+> **TOpenAIAPIProvider**: `"Azure"` \| `"OpenAI"`
+
+API Provider
+
+## Defined in
+
+[types/config.d.ts:159](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L159)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TSystemContainer.md b/docs/markdown/namespaces/Config/type-aliases/TSystemContainer.md
new file mode 100644
index 0000000..5eae7b7
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TSystemContainer.md
@@ -0,0 +1,20 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TSystemContainer
+
+# Type Alias: TSystemContainer
+
+> **TSystemContainer**: `"android"` \| `"docker"` \| `"ios"` \| `"std"`
+
+Kernel operating environment
+
+- `docker`: Docker container
+- `android`: Android device
+- `ios`: iOS device
+- `std`: Desktop Electron environment
+
+## Defined in
+
+[types/config.d.ts:1447](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1447)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TSystemNetworkProxyScheme.md b/docs/markdown/namespaces/Config/type-aliases/TSystemNetworkProxyScheme.md
new file mode 100644
index 0000000..7afa406
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TSystemNetworkProxyScheme.md
@@ -0,0 +1,20 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TSystemNetworkProxyScheme
+
+# Type Alias: TSystemNetworkProxyScheme
+
+> **TSystemNetworkProxyScheme**: `""` \| `"http"` \| `"https"` \| `"socks5"`
+
+The protocol used by the proxy server
+
+- Empty String: Use the system proxy settings
+- `http`: HTTP
+- `https`: HTTPS
+- `socks5`: SOCKS5
+
+## Defined in
+
+[types/config.d.ts:1478](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1478)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TSystemOS.md b/docs/markdown/namespaces/Config/type-aliases/TSystemOS.md
new file mode 100644
index 0000000..912c4e6
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TSystemOS.md
@@ -0,0 +1,21 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TSystemOS
+
+# Type Alias: TSystemOS
+
+> **TSystemOS**: `"android"` \| `"darwin"` \| `"ios"` \| `"linux"` \| `"windows"`
+
+The operating system name determined at compile time (obtained using the command `go tool dist list`)
+
+- `android`: Android
+- `darwin`: macOS
+- `ios`: iOS
+- `linux`: Linux
+- `windows`: Windows
+
+## Defined in
+
+[types/config.d.ts:1489](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1489)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TUILayoutDirection.md b/docs/markdown/namespaces/Config/type-aliases/TUILayoutDirection.md
new file mode 100644
index 0000000..71a1e69
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TUILayoutDirection.md
@@ -0,0 +1,23 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TUILayoutDirection
+
+# Type Alias: TUILayoutDirection
+
+> **TUILayoutDirection**: `"lr"` \| `"tb"`
+
+Panel content layout direction
+
+- `tb`: Top and bottom layout
+- `lr`: Left and right layout
+
+The direction in which the size can be adjusted
+
+- `tb`: Can adjust the size up and down
+- `lr`: Can adjust the size left and right
+
+## Defined in
+
+[types/config.d.ts:2192](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2192)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TUILayoutItem.md b/docs/markdown/namespaces/Config/type-aliases/TUILayoutItem.md
new file mode 100644
index 0000000..5318b07
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TUILayoutItem.md
@@ -0,0 +1,15 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TUILayoutItem
+
+# Type Alias: TUILayoutItem
+
+> **TUILayoutItem**: [`IUILayoutLayout`](../interfaces/IUILayoutLayout.md) \| [`IUILayoutTab`](../interfaces/IUILayoutTab.md) \| [`IUILayoutTabAsset`](../interfaces/IUILayoutTabAsset.md) \| [`IUILayoutTabBacklink`](../interfaces/IUILayoutTabBacklink.md) \| [`IUILayoutTabBookmark`](../interfaces/IUILayoutTabBookmark.md) \| [`IUILayoutTabCustom`](../interfaces/IUILayoutTabCustom.md) \| [`IUILayoutTabEditor`](../interfaces/IUILayoutTabEditor.md) \| [`IUILayoutTabFiles`](../interfaces/IUILayoutTabFiles.md) \| [`IUILayoutTabGraph`](../interfaces/IUILayoutTabGraph.md) \| [`IUILayoutTabOutline`](../interfaces/IUILayoutTabOutline.md) \| [`IUILayoutTabSearch`](../interfaces/IUILayoutTabSearch.md) \| [`IUILayoutTabTag`](../interfaces/IUILayoutTabTag.md) \| [`IUILayoutWnd`](../interfaces/IUILayoutWnd.md)
+
+SiYuan layout item
+
+## Defined in
+
+[types/config.d.ts:1583](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1583)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TUILayoutTabBacklinkType.md b/docs/markdown/namespaces/Config/type-aliases/TUILayoutTabBacklinkType.md
new file mode 100644
index 0000000..005cd5f
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TUILayoutTabBacklinkType.md
@@ -0,0 +1,18 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TUILayoutTabBacklinkType
+
+# Type Alias: TUILayoutTabBacklinkType
+
+> **TUILayoutTabBacklinkType**: `"local"` \| `"pin"`
+
+(Backlink) Tab type
+
+- `pin`: Pinned panel
+- `local`: The panel of the current document
+
+## Defined in
+
+[types/config.d.ts:1749](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1749)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TUILayoutTabGraphType.md b/docs/markdown/namespaces/Config/type-aliases/TUILayoutTabGraphType.md
new file mode 100644
index 0000000..8ce59c0
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TUILayoutTabGraphType.md
@@ -0,0 +1,19 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TUILayoutTabGraphType
+
+# Type Alias: TUILayoutTabGraphType
+
+> **TUILayoutTabGraphType**: `"global"` \| `"local"` \| `"pin"`
+
+(Graph) Tab type
+
+- `pin`: Pinned graph
+- `local`: Graph of the current editor
+- `global`: Global graph
+
+## Defined in
+
+[types/config.d.ts:1852](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1852)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TUILayoutTabOutlineType.md b/docs/markdown/namespaces/Config/type-aliases/TUILayoutTabOutlineType.md
new file mode 100644
index 0000000..6e0e65a
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TUILayoutTabOutlineType.md
@@ -0,0 +1,18 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TUILayoutTabOutlineType
+
+# Type Alias: TUILayoutTabOutlineType
+
+> **TUILayoutTabOutlineType**: `"local"` \| `"pin"`
+
+(Outline) Tab type
+
+- `pin`: Pinned outline panel
+- `local`: The outline panel of the current editor
+
+## Defined in
+
+[types/config.d.ts:1883](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L1883)
diff --git a/docs/markdown/namespaces/Config/type-aliases/TUILayoutType.md b/docs/markdown/namespaces/Config/type-aliases/TUILayoutType.md
new file mode 100644
index 0000000..a1a81c7
--- /dev/null
+++ b/docs/markdown/namespaces/Config/type-aliases/TUILayoutType.md
@@ -0,0 +1,22 @@
+[**SiYuan Plugin API v1.0.2**](../../../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../../../README.md) / [Config](../README.md) / TUILayoutType
+
+# Type Alias: TUILayoutType
+
+> **TUILayoutType**: `"bottom"` \| `"center"` \| `"left"` \| `"normal"` \| `"right"` \| `"top"`
+
+Layout type
+
+- `normal`: Normal panel
+- `center`: Center panel
+- `top`: Top panel
+- `bottom`: Bottom panel
+- `left`: Left panel
+- `right`: Right panel
+
+## Defined in
+
+[types/config.d.ts:2203](https://github.com/siyuan-note/petal/tree/main/types/config.d.ts#L2203)
diff --git a/docs/markdown/type-aliases/TAVCol.md b/docs/markdown/type-aliases/TAVCol.md
new file mode 100644
index 0000000..1b83029
--- /dev/null
+++ b/docs/markdown/type-aliases/TAVCol.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / TAVCol
+
+# Type Alias: TAVCol
+
+> **TAVCol**: `"block"` \| `"date"` \| `"email"` \| `"mSelect"` \| `"number"` \| `"phone"` \| `"relation"` \| `"rollup"` \| `"select"` \| `"text"` \| `"url"`
+
+## Defined in
+
+[siyuan.d.ts:77](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L77)
diff --git a/docs/markdown/type-aliases/TBackendEnv.md b/docs/markdown/type-aliases/TBackendEnv.md
new file mode 100644
index 0000000..7a70a4f
--- /dev/null
+++ b/docs/markdown/type-aliases/TBackendEnv.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / TBackendEnv
+
+# Type Alias: TBackendEnv
+
+> **TBackendEnv**: `"android"` \| `"darwin"` \| `"docker"` \| `"ios"` \| `"linux"` \| `"windows"`
+
+## Defined in
+
+[siyuan.d.ts:97](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L97)
diff --git a/docs/markdown/type-aliases/TCardType.md b/docs/markdown/type-aliases/TCardType.md
new file mode 100644
index 0000000..156d563
--- /dev/null
+++ b/docs/markdown/type-aliases/TCardType.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / TCardType
+
+# Type Alias: TCardType
+
+> **TCardType**: `"all"` \| `"doc"` \| `"notebook"`
+
+## Defined in
+
+[siyuan.d.ts:40](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L40)
diff --git a/docs/markdown/type-aliases/TEditorMode.md b/docs/markdown/type-aliases/TEditorMode.md
new file mode 100644
index 0000000..c1e555f
--- /dev/null
+++ b/docs/markdown/type-aliases/TEditorMode.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / TEditorMode
+
+# Type Alias: TEditorMode
+
+> **TEditorMode**: `"preview"` \| `"wysiwyg"`
+
+## Defined in
+
+[types/protyle.d.ts:42](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L42)
diff --git a/docs/markdown/type-aliases/TEventBus.md b/docs/markdown/type-aliases/TEventBus.md
new file mode 100644
index 0000000..1e464e4
--- /dev/null
+++ b/docs/markdown/type-aliases/TEventBus.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / TEventBus
+
+# Type Alias: TEventBus
+
+> **TEventBus**: keyof [`IEventBusMap`](../interfaces/IEventBusMap.md)
+
+## Defined in
+
+[siyuan.d.ts:23](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L23)
diff --git a/docs/markdown/type-aliases/TFrontendEnv.md b/docs/markdown/type-aliases/TFrontendEnv.md
new file mode 100644
index 0000000..c82de3c
--- /dev/null
+++ b/docs/markdown/type-aliases/TFrontendEnv.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / TFrontendEnv
+
+# Type Alias: TFrontendEnv
+
+> **TFrontendEnv**: `"browser-desktop"` \| `"browser-mobile"` \| `"desktop-window"` \| `"desktop"` \| `"mobile"`
+
+## Defined in
+
+[siyuan.d.ts:90](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L90)
diff --git a/docs/markdown/type-aliases/TOperation.md b/docs/markdown/type-aliases/TOperation.md
new file mode 100644
index 0000000..9e8e0fc
--- /dev/null
+++ b/docs/markdown/type-aliases/TOperation.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / TOperation
+
+# Type Alias: TOperation
+
+> **TOperation**: `"addAttrViewCol"` \| `"addFlashcards"` \| `"append"` \| `"delete"` \| `"foldHeading"` \| `"insert"` \| `"insertAttrViewBlock"` \| `"move"` \| `"removeAttrViewBlock"` \| `"removeAttrViewCol"` \| `"removeAttrViewColOption"` \| `"removeFlashcards"` \| `"setAttrs"` \| `"setAttrViewColCalc"` \| `"setAttrViewColHidden"` \| `"setAttrViewColWidth"` \| `"setAttrViewColWrap"` \| `"setAttrViewFilters"` \| `"setAttrViewName"` \| `"setAttrViewSorts"` \| `"sortAttrViewCol"` \| `"sortAttrViewRow"` \| `"unfoldHeading"` \| `"update"` \| `"updateAttrs"` \| `"updateAttrViewCell"` \| `"updateAttrViewCol"` \| `"updateAttrViewColNumberFormat"` \| `"updateAttrViewColOption"` \| `"updateAttrViewColOptions"`
+
+## Defined in
+
+[siyuan.d.ts:45](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L45)
diff --git a/docs/markdown/type-aliases/TProtyleAction.md b/docs/markdown/type-aliases/TProtyleAction.md
new file mode 100644
index 0000000..fb4fa94
--- /dev/null
+++ b/docs/markdown/type-aliases/TProtyleAction.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / TProtyleAction
+
+# Type Alias: TProtyleAction
+
+> **TProtyleAction**: `"cb-get-all"` \| `"cb-get-append"` \| `"cb-get-backlink"` \| `"cb-get-before"` \| `"cb-get-context"` \| `"cb-get-focus"` \| `"cb-get-focusfirst"` \| `"cb-get-history"` \| `"cb-get-hl"` \| `"cb-get-html"` \| `"cb-get-scroll"` \| `"cb-get-setid"` \| `"cb-get-unchangeid"` \| `"cb-get-unundo"`
+
+## Defined in
+
+[types/protyle.d.ts:12](https://github.com/siyuan-note/petal/tree/main/types/protyle.d.ts#L12)
diff --git a/docs/markdown/type-aliases/TTurnInto.md b/docs/markdown/type-aliases/TTurnInto.md
new file mode 100644
index 0000000..7c6a388
--- /dev/null
+++ b/docs/markdown/type-aliases/TTurnInto.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / TTurnInto
+
+# Type Alias: TTurnInto
+
+> **TTurnInto**: `"Blocks2Hs"` \| `"Blocks2Ps"`
+
+## Defined in
+
+[siyuan.d.ts:36](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L36)
diff --git a/docs/markdown/type-aliases/TTurnIntoOne.md b/docs/markdown/type-aliases/TTurnIntoOne.md
new file mode 100644
index 0000000..c8614be
--- /dev/null
+++ b/docs/markdown/type-aliases/TTurnIntoOne.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / TTurnIntoOne
+
+# Type Alias: TTurnIntoOne
+
+> **TTurnIntoOne**: `"Blocks2Blockquote"` \| `"Blocks2OLs"` \| `"Blocks2TLs"` \| `"Blocks2ULs"` \| `"BlocksMergeSuperBlock"`
+
+## Defined in
+
+[siyuan.d.ts:25](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L25)
diff --git a/docs/markdown/type-aliases/TTurnIntoOneSub.md b/docs/markdown/type-aliases/TTurnIntoOneSub.md
new file mode 100644
index 0000000..a6a54e1
--- /dev/null
+++ b/docs/markdown/type-aliases/TTurnIntoOneSub.md
@@ -0,0 +1,13 @@
+[**SiYuan Plugin API v1.0.2**](../README.md) • **Docs**
+
+---
+
+[SiYuan Plugin API v1.0.2](../README.md) / TTurnIntoOneSub
+
+# Type Alias: TTurnIntoOneSub
+
+> **TTurnIntoOneSub**: `"col"` \| `"row"`
+
+## Defined in
+
+[siyuan.d.ts:32](https://github.com/siyuan-note/petal/tree/main/siyuan.d.ts#L32)
diff --git a/eslint.config.js b/eslint.config.js
new file mode 100644
index 0000000..d274b1e
--- /dev/null
+++ b/eslint.config.js
@@ -0,0 +1,157 @@
+import antfu from "@antfu/eslint-config";
+
+export default antfu({
+ stylistic: {
+ indent: 4,
+ quotes: "double",
+ semi: true,
+ arrowParens: true,
+ quoteProps: "as-needed",
+ overrides: {
+ "style/arrow-parens": [
+ "warn",
+ "always",
+ ],
+ "style/no-trailing-spaces": [
+ "warn",
+ {
+ ignoreComments: true,
+ },
+ ],
+ "style/linebreak-style": [
+ "error",
+ "unix",
+ ],
+ },
+ },
+ formatters: {
+ css: false,
+ html: false,
+ markdown: "dprint",
+ graphql: false,
+ prettierOptions: {
+ tabWidth: 4,
+ printWidth: Infinity,
+ trailingComma: "all",
+ bracketSameLine: false,
+ singleAttributePerLine: true,
+ },
+ },
+ jsonc: {
+ overrides: {
+ "jsonc/comma-dangle": [
+ "warn",
+ "only-multiline",
+ ],
+ },
+ },
+ yaml: {
+ overrides: {
+ "yaml/indent": [
+ "error",
+ 2,
+ ],
+ },
+ },
+ markdown: {
+ overrides: {
+ "ts/no-unused-expressions": ["off"],
+ },
+ },
+ typescript: {
+ overrides: {
+ "sort-imports": ["off"],
+ "import/order": ["off"],
+ "ts/no-empty-object-type": [
+ "warn",
+ {
+ allowInterfaces: "with-single-extends",
+ },
+ ],
+ "perfectionist/sort-array-includes": [
+ "warn",
+ {
+ "spread-last": true,
+ },
+ ],
+ "perfectionist/sort-exports": [
+ "warn",
+ {},
+ ],
+ "perfectionist/sort-imports": [
+ "warn",
+ {
+ "groups": [
+ "side-effect-style", // import "style.css";
+ "side-effect", // import "module";
+
+ [
+ "$node", // import path from "node:path";
+ "builtin", // import path from "path";
+ ],
+ "external", // import axios from "axios";
+ "$root", // import module from "~/module";
+ "internal", // import module from "@/module";
+ [
+ "parent", // import module from "../module";
+ "sibling", // import module from "./module";
+ "index", // import module from ".";
+ ],
+ "unknown",
+
+ [
+ "$node-type", // import type path from "node:path";
+ "builtin-type", // import type path from "path";
+ ],
+ "external-type", // import type axios from "axios";
+ "$root-type", // import type module from "~/module";
+ "internal-type", // import type module from "@/module";
+ [
+ "parent-type", // import type module from "../module";
+ "sibling-type", // import type module from "./module";
+ "index-type", // import type module from ".";
+ ],
+ "type",
+
+ "style", // import styles from "./index.module.css";
+ "object", // import log = console.log;
+ ],
+ "internal-pattern": [
+ "@/**",
+ ],
+ "custom-groups": {
+ value: {
+ $node: "node:**",
+ $root: "~/**",
+ },
+ type: {
+ "$node-type": "node:**",
+ "$repo-type": "@repo/**",
+ "$workspace-type": "@workspace/**",
+ "$root-type": "~/**",
+ },
+ },
+ },
+ ],
+ "perfectionist/sort-named-exports": [
+ "warn",
+ {
+ "group-kind": "values-first",
+ },
+ ],
+ "perfectionist/sort-named-imports": [
+ "warn",
+ {
+ "group-kind": "values-first",
+ "ignore-alias": false,
+ },
+ ],
+ "perfectionist/sort-union-types": [
+ "warn",
+ {
+ "nullable-last": true,
+ },
+ ],
+ },
+ },
+});
diff --git a/package.json b/package.json
index 65dee25..782e9c0 100644
--- a/package.json
+++ b/package.json
@@ -1,20 +1,65 @@
{
+ "$schema": "https://json.schemastore.org/package.json",
"name": "siyuan",
+ "type": "module",
+ "version": "1.0.2",
+ "description": "The Plugin API declaration and documents of SiYuan.",
+ "author": {
+ "name": "zuoez02",
+ "url": "https://github.com/zuoez02"
+ },
"contributors": [
- "zuoez02",
- "Vanessa"
+ {
+ "name": "Vanessa",
+ "url": "https://github.com/Vanessa"
+ },
+ {
+ "name": "Zuoqiu Yingyi",
+ "url": "https://github.com/Zuoqiu-Yingyi"
+ }
+ ],
+ "homepage": "https://github.com/siyuan-note/petal/tree/main/docs/markdown",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/siyuan-note/petal.git"
+ },
+ "bugs": {
+ "url": "https://github.com/siyuan-note/petal/issues"
+ },
+ "keywords": [
+ "siyuan",
+ "siyuan-note",
+ "plugin",
+ "api"
],
"types": "siyuan.d.ts",
"files": [
- "types",
"CHANGELOG.md",
- "package.json",
"README.md",
- "siyuan.d.ts"
+ "docs",
+ "package.json",
+ "siyuan.d.ts",
+ "types"
],
- "version": "1.0.2",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/siyuan-note/petal.git"
+ "scripts": {
+ "prepare": "husky",
+ "docs:build": "typedoc",
+ "docs:format": "eslint --fix ./docs",
+ "check": "run-s check:eslint check:cspell",
+ "check:eslint": "eslint --max-warnings 0 .",
+ "check:cspell": "cspell .",
+ "format": "run-s format:eslint",
+ "format:eslint": "eslint --fix ."
+ },
+ "devDependencies": {
+ "@antfu/eslint-config": "2.22.0-beta.1",
+ "cspell": "^8.10.4",
+ "eslint": "^9.6.0",
+ "eslint-plugin-format": "^0.1.2",
+ "husky": "^9.0.11",
+ "npm-run-all": "^4.1.5",
+ "typedoc": "^0.26.3",
+ "typedoc-plugin-markdown": "^4.1.2",
+ "typescript": "^5.5.3"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..a8a3d49
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,4496 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ devDependencies:
+ '@antfu/eslint-config':
+ specifier: 2.22.0-beta.1
+ version: 2.22.0-beta.1(@vue/compiler-sfc@3.4.31)(eslint-plugin-format@0.1.2(eslint@9.6.0))(eslint@9.6.0)(typescript@5.5.3)
+ cspell:
+ specifier: ^8.10.4
+ version: 8.10.4
+ eslint:
+ specifier: ^9.6.0
+ version: 9.6.0
+ eslint-plugin-format:
+ specifier: ^0.1.2
+ version: 0.1.2(eslint@9.6.0)
+ husky:
+ specifier: ^9.0.11
+ version: 9.0.11
+ npm-run-all:
+ specifier: ^4.1.5
+ version: 4.1.5
+ typedoc:
+ specifier: ^0.26.3
+ version: 0.26.3(typescript@5.5.3)
+ typedoc-plugin-markdown:
+ specifier: ^4.1.2
+ version: 4.1.2(typedoc@0.26.3(typescript@5.5.3))
+ typescript:
+ specifier: ^5.5.3
+ version: 5.5.3
+
+packages:
+
+ '@antfu/eslint-config@2.22.0-beta.1':
+ resolution: {integrity: sha512-7H+UjGeXAo8N9eD60lw81fKTdC5HWZPFSGJ5MkBUIKu3Yrb71XGYiOJ1gx89ZFi5hvvlUiQOcbtf8G6nknmozw==}
+ hasBin: true
+ peerDependencies:
+ '@eslint-react/eslint-plugin': ^1.5.8
+ '@prettier/plugin-xml': ^3.4.1
+ '@unocss/eslint-plugin': '>=0.50.0'
+ astro-eslint-parser: ^1.0.2
+ eslint: '>=8.40.0'
+ eslint-plugin-astro: ^1.2.0
+ eslint-plugin-format: '>=0.1.0'
+ eslint-plugin-react-hooks: ^4.6.0
+ eslint-plugin-react-refresh: ^0.4.4
+ eslint-plugin-solid: ^0.13.2
+ eslint-plugin-svelte: '>=2.35.1'
+ prettier-plugin-astro: ^0.13.0
+ prettier-plugin-slidev: ^1.0.5
+ svelte-eslint-parser: '>=0.37.0'
+ peerDependenciesMeta:
+ '@eslint-react/eslint-plugin':
+ optional: true
+ '@prettier/plugin-xml':
+ optional: true
+ '@unocss/eslint-plugin':
+ optional: true
+ astro-eslint-parser:
+ optional: true
+ eslint-plugin-astro:
+ optional: true
+ eslint-plugin-format:
+ optional: true
+ eslint-plugin-react-hooks:
+ optional: true
+ eslint-plugin-react-refresh:
+ optional: true
+ eslint-plugin-solid:
+ optional: true
+ eslint-plugin-svelte:
+ optional: true
+ prettier-plugin-astro:
+ optional: true
+ prettier-plugin-slidev:
+ optional: true
+ svelte-eslint-parser:
+ optional: true
+
+ '@antfu/install-pkg@0.3.3':
+ resolution: {integrity: sha512-nHHsk3NXQ6xkCfiRRC8Nfrg8pU5kkr3P3Y9s9dKqiuRmBD0Yap7fymNDjGFKeWhZQHqqbCS5CfeMy9wtExM24w==}
+
+ '@antfu/utils@0.7.10':
+ resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
+
+ '@babel/code-frame@7.24.7':
+ resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.24.7':
+ resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.24.7':
+ resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/highlight@7.24.7':
+ resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.24.7':
+ resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/types@7.24.7':
+ resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==}
+ engines: {node: '>=6.9.0'}
+
+ '@clack/core@0.3.4':
+ resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==}
+
+ '@clack/prompts@0.7.0':
+ resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==}
+ bundledDependencies:
+ - is-unicode-supported
+
+ '@cspell/cspell-bundled-dicts@8.10.4':
+ resolution: {integrity: sha512-QmgvIp9/NM60Jj6ft5oaiCFidwPwKYS9FfpfABrDLw/Jx6wwcTdy9cVbuPxT8n4LwkHpswkmIzOf4zSlnrd4MQ==}
+ engines: {node: '>=18'}
+
+ '@cspell/cspell-json-reporter@8.10.4':
+ resolution: {integrity: sha512-W6aUZ2LkKkDEKgx1sjik2xQT7m6CrLxcuJiF7MkPPZMdsnXyg5jsRalkQTn7my7RZ+n5xxEO69r6jM4IImvWAg==}
+ engines: {node: '>=18'}
+
+ '@cspell/cspell-pipe@8.10.4':
+ resolution: {integrity: sha512-yN+A9EIgdSkNiQnrFgsy5dzFl879ddMRHw/u38Zw4HdHIGr+xLpw5UVSKK6OacPMro853engM3dTJJDzRzh+rA==}
+ engines: {node: '>=18'}
+
+ '@cspell/cspell-resolver@8.10.4':
+ resolution: {integrity: sha512-f0Y+Tol1aqrj9LsDT1oQOoj0P9uJ0ZW5PbhVlKqFeIDhrA5rYLy0ffnFESLNBRxWXaB/cznzpgMUyNfpVCXJpg==}
+ engines: {node: '>=18'}
+
+ '@cspell/cspell-service-bus@8.10.4':
+ resolution: {integrity: sha512-bXIllG6C1rKjWGlKdrAfs0AKrs/iQ6ZL6kSXrzHh5NB8oyBzX8tf5v4BX3Bnh5yrjBzkT2qhL+teEcvWjjvu2w==}
+ engines: {node: '>=18'}
+
+ '@cspell/cspell-types@8.10.4':
+ resolution: {integrity: sha512-K/7JALR417KYHoovk18LTJCnKXF8ToNraWX4P3NFkYZNffc62fPn0y7nV9kphdK/biLM7np9gWtHq22MhX4qgw==}
+ engines: {node: '>=18'}
+
+ '@cspell/dict-ada@4.0.2':
+ resolution: {integrity: sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==}
+
+ '@cspell/dict-aws@4.0.2':
+ resolution: {integrity: sha512-aNGHWSV7dRLTIn8WJemzLoMF62qOaiUQlgnsCwH5fRCD/00gsWCwg106pnbkmK4AyabyxzneOV4dfecDJWkSxw==}
+
+ '@cspell/dict-bash@4.1.3':
+ resolution: {integrity: sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw==}
+
+ '@cspell/dict-companies@3.1.2':
+ resolution: {integrity: sha512-OwR5i1xbYuJX7FtHQySmTy3iJtPV1rZQ3jFCxFGwrA1xRQ4rtRcDQ+sTXBCIAoJHkXa84f9J3zsngOKmMGyS/w==}
+
+ '@cspell/dict-cpp@5.1.10':
+ resolution: {integrity: sha512-BmIF0sAz2BgGEOwzYIeEm9ALneDjd1tcTbFbo+A1Hcq3zOKP8yViSgxS9CEN30KOZIyph6Tldp531UPEpoEl0Q==}
+
+ '@cspell/dict-cryptocurrencies@5.0.0':
+ resolution: {integrity: sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA==}
+
+ '@cspell/dict-csharp@4.0.2':
+ resolution: {integrity: sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==}
+
+ '@cspell/dict-css@4.0.12':
+ resolution: {integrity: sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw==}
+
+ '@cspell/dict-dart@2.0.3':
+ resolution: {integrity: sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==}
+
+ '@cspell/dict-data-science@2.0.1':
+ resolution: {integrity: sha512-xeutkzK0eBe+LFXOFU2kJeAYO6IuFUc1g7iRLr7HeCmlC4rsdGclwGHh61KmttL3+YHQytYStxaRBdGAXWC8Lw==}
+
+ '@cspell/dict-django@4.1.0':
+ resolution: {integrity: sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==}
+
+ '@cspell/dict-docker@1.1.7':
+ resolution: {integrity: sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==}
+
+ '@cspell/dict-dotnet@5.0.2':
+ resolution: {integrity: sha512-UD/pO2A2zia/YZJ8Kck/F6YyDSpCMq0YvItpd4YbtDVzPREfTZ48FjZsbYi4Jhzwfvc6o8R56JusAE58P+4sNQ==}
+
+ '@cspell/dict-elixir@4.0.3':
+ resolution: {integrity: sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==}
+
+ '@cspell/dict-en-common-misspellings@2.0.3':
+ resolution: {integrity: sha512-8nF1z9nUiSgMyikL66HTbDO7jCGtB24TxKBasXIBwkBKMDZgA2M883iXdeByy6m1JJUcCGFkSftVYp2W0bUgjw==}
+
+ '@cspell/dict-en-gb@1.1.33':
+ resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==}
+
+ '@cspell/dict-en_us@4.3.23':
+ resolution: {integrity: sha512-l0SoEQBsi3zDSl3OuL4/apBkxjuj4hLIg/oy6+gZ7LWh03rKdF6VNtSZNXWAmMY+pmb1cGA3ouleTiJIglbsIg==}
+
+ '@cspell/dict-filetypes@3.0.4':
+ resolution: {integrity: sha512-IBi8eIVdykoGgIv5wQhOURi5lmCNJq0we6DvqKoPQJHthXbgsuO1qrHSiUVydMiQl/XvcnUWTMeAlVUlUClnVg==}
+
+ '@cspell/dict-fonts@4.0.0':
+ resolution: {integrity: sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q==}
+
+ '@cspell/dict-fsharp@1.0.1':
+ resolution: {integrity: sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ==}
+
+ '@cspell/dict-fullstack@3.1.8':
+ resolution: {integrity: sha512-YRlZupL7uqMCtEBK0bDP9BrcPnjDhz7m4GBqCc1EYqfXauHbLmDT8ELha7T/E7wsFKniHSjzwDZzhNXo2lusRQ==}
+
+ '@cspell/dict-gaming-terms@1.0.5':
+ resolution: {integrity: sha512-C3riccZDD3d9caJQQs1+MPfrUrQ+0KHdlj9iUR1QD92FgTOF6UxoBpvHUUZ9YSezslcmpFQK4xQQ5FUGS7uWfw==}
+
+ '@cspell/dict-git@3.0.0':
+ resolution: {integrity: sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw==}
+
+ '@cspell/dict-golang@6.0.9':
+ resolution: {integrity: sha512-etDt2WQauyEQDA+qPS5QtkYTb2I9l5IfQftAllVoB1aOrT6bxxpHvMEpJ0Hsn/vezxrCqa/BmtUbRxllIxIuSg==}
+
+ '@cspell/dict-google@1.0.1':
+ resolution: {integrity: sha512-dQr4M3n95uOhtloNSgB9tYYGXGGEGEykkFyRtfcp5pFuEecYUa0BSgtlGKx9RXVtJtKgR+yFT/a5uQSlt8WjqQ==}
+
+ '@cspell/dict-haskell@4.0.1':
+ resolution: {integrity: sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==}
+
+ '@cspell/dict-html-symbol-entities@4.0.0':
+ resolution: {integrity: sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==}
+
+ '@cspell/dict-html@4.0.5':
+ resolution: {integrity: sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w==}
+
+ '@cspell/dict-java@5.0.7':
+ resolution: {integrity: sha512-ejQ9iJXYIq7R09BScU2y5OUGrSqwcD+J5mHFOKbduuQ5s/Eh/duz45KOzykeMLI6KHPVxhBKpUPBWIsfewECpQ==}
+
+ '@cspell/dict-julia@1.0.1':
+ resolution: {integrity: sha512-4JsCLCRhhLMLiaHpmR7zHFjj1qOauzDI5ZzCNQS31TUMfsOo26jAKDfo0jljFAKgw5M2fEG7sKr8IlPpQAYrmQ==}
+
+ '@cspell/dict-k8s@1.0.5':
+ resolution: {integrity: sha512-Cj+/ZV4S+MKlwfocSJZqe/2UAd/sY8YtlZjbK25VN1nCnrsKrBjfkX29vclwSj1U9aJg4Z9jw/uMjoaKu9ZrpQ==}
+
+ '@cspell/dict-latex@4.0.0':
+ resolution: {integrity: sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==}
+
+ '@cspell/dict-lorem-ipsum@4.0.0':
+ resolution: {integrity: sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw==}
+
+ '@cspell/dict-lua@4.0.3':
+ resolution: {integrity: sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg==}
+
+ '@cspell/dict-makefile@1.0.0':
+ resolution: {integrity: sha512-3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ==}
+
+ '@cspell/dict-monkeyc@1.0.6':
+ resolution: {integrity: sha512-oO8ZDu/FtZ55aq9Mb67HtaCnsLn59xvhO/t2mLLTHAp667hJFxpp7bCtr2zOrR1NELzFXmKln/2lw/PvxMSvrA==}
+
+ '@cspell/dict-node@5.0.1':
+ resolution: {integrity: sha512-lax/jGz9h3Dv83v8LHa5G0bf6wm8YVRMzbjJPG/9rp7cAGPtdrga+XANFq+B7bY5+jiSA3zvj10LUFCFjnnCCg==}
+
+ '@cspell/dict-npm@5.0.16':
+ resolution: {integrity: sha512-ZWPnLAziEcSCvV0c8k9Qj88pfMu+wZwM5Qks87ShsfBgI8uLZ9tGHravA7gmjH1Gd7Bgxy2ulvXtSqIWPh1lew==}
+
+ '@cspell/dict-php@4.0.8':
+ resolution: {integrity: sha512-TBw3won4MCBQ2wdu7kvgOCR3dY2Tb+LJHgDUpuquy3WnzGiSDJ4AVelrZdE1xu7mjFJUr4q48aB21YT5uQqPZA==}
+
+ '@cspell/dict-powershell@5.0.4':
+ resolution: {integrity: sha512-eosDShapDgBWN9ULF7+sRNdUtzRnUdsfEdBSchDm8FZA4HOqxUSZy3b/cX/Rdw0Fnw0AKgk0kzgXw7tS6vwJMQ==}
+
+ '@cspell/dict-public-licenses@2.0.7':
+ resolution: {integrity: sha512-KlBXuGcN3LE7tQi/GEqKiDewWGGuopiAD0zRK1QilOx5Co8XAvs044gk4MNIQftc8r0nHeUI+irJKLGcR36DIQ==}
+
+ '@cspell/dict-python@4.2.1':
+ resolution: {integrity: sha512-9X2jRgyM0cxBoFQRo4Zc8oacyWnXi+0/bMI5FGibZNZV4y/o9UoFEr6agjU260/cXHTjIdkX233nN7eb7dtyRg==}
+
+ '@cspell/dict-r@2.0.1':
+ resolution: {integrity: sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==}
+
+ '@cspell/dict-ruby@5.0.2':
+ resolution: {integrity: sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g==}
+
+ '@cspell/dict-rust@4.0.4':
+ resolution: {integrity: sha512-v9/LcZknt/Xq7m1jdTWiQEtmkVVKdE1etAfGL2sgcWpZYewEa459HeWndNA0gfzQrpWX9sYay18mt7pqClJEdA==}
+
+ '@cspell/dict-scala@5.0.2':
+ resolution: {integrity: sha512-v97ClgidZt99JUm7OjhQugDHmhx4U8fcgunHvD/BsXWjXNj4cTr0m0YjofyZoL44WpICsNuFV9F/sv9OM5HUEw==}
+
+ '@cspell/dict-software-terms@3.4.9':
+ resolution: {integrity: sha512-J2uNH3ScBPQijXyzLfxsC1CYgq36MWvbynJzQJ15ZazTsecC0pQHynm3/6VH4X/BphV2eXB0GRJT3yMicYLGCw==}
+
+ '@cspell/dict-sql@2.1.3':
+ resolution: {integrity: sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ==}
+
+ '@cspell/dict-svelte@1.0.2':
+ resolution: {integrity: sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==}
+
+ '@cspell/dict-swift@2.0.1':
+ resolution: {integrity: sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==}
+
+ '@cspell/dict-terraform@1.0.0':
+ resolution: {integrity: sha512-Ak+vy4HP/bOgzf06BAMC30+ZvL9mzv21xLM2XtfnBLTDJGdxlk/nK0U6QT8VfFLqJ0ZZSpyOxGsUebWDCTr/zQ==}
+
+ '@cspell/dict-typescript@3.1.5':
+ resolution: {integrity: sha512-EkIwwNV/xqEoBPJml2S16RXj65h1kvly8dfDLgXerrKw6puybZdvAHerAph6/uPTYdtLcsPyJYkPt5ISOJYrtw==}
+
+ '@cspell/dict-vue@3.0.0':
+ resolution: {integrity: sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==}
+
+ '@cspell/dynamic-import@8.10.4':
+ resolution: {integrity: sha512-YxpzOgrP/u0nxEMR4hUfV+4z3b0rLWnKsKIv6pLpRez7ACvrMeb53FedSMZW/YaF3NjWTpUEdqFHaemPkmwnRA==}
+ engines: {node: '>=18.0'}
+
+ '@cspell/strong-weak-map@8.10.4':
+ resolution: {integrity: sha512-QyL8mvv8HDnIHU/wKqWf04yMHCHv3icakZF4UdAk181tl8gymzrtyXSSbMaVlySlK9p+7OQlEG/KUF8R0LR75Q==}
+ engines: {node: '>=18'}
+
+ '@cspell/url@8.10.4':
+ resolution: {integrity: sha512-4+Bxm43py50W872FjUvKoT9+EQoK9pqOblxu7GRfFx7CjEgYJB03Cb4rHiKYzLuJakUk6IyAlgPD2vNZO37Vzg==}
+ engines: {node: '>=18.0'}
+
+ '@dprint/formatter@0.3.0':
+ resolution: {integrity: sha512-N9fxCxbaBOrDkteSOzaCqwWjso5iAe+WJPsHC021JfHNj2ThInPNEF13ORDKta3llq5D1TlclODCvOvipH7bWQ==}
+
+ '@dprint/markdown@0.17.1':
+ resolution: {integrity: sha512-Mk9C9tHHSScB3JOUd2PEP3keWnJZ8Kqcd99qaVhknzhxgZF/gGTx0CMyd+lpsIV+Moe+OtbRnqAjp+hKVtT1zQ==}
+
+ '@dprint/toml@0.6.2':
+ resolution: {integrity: sha512-Mk5unEANsL/L+WHYU3NpDXt1ARU5bNU5k5OZELxaJodDycKG6RoRnSlZXpW6+7UN2PSnETAFVUdKrh937ZwtHA==}
+
+ '@es-joy/jsdoccomment@0.43.1':
+ resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==}
+ engines: {node: '>=16'}
+
+ '@eslint-community/eslint-utils@4.4.0':
+ resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.11.0':
+ resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/config-array@0.17.0':
+ resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/eslintrc@3.1.0':
+ resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.6.0':
+ resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.4':
+ resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/retry@0.3.0':
+ resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==}
+ engines: {node: '>=18.18'}
+
+ '@jridgewell/sourcemap-codec@1.4.15':
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+
+ '@jsdevtools/ez-spawn@3.0.4':
+ resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==}
+ engines: {node: '>=10'}
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@pkgr/core@0.1.1':
+ resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
+ '@shikijs/core@1.10.1':
+ resolution: {integrity: sha512-qdiJS5a/QGCff7VUFIqd0hDdWly9rDp8lhVmXVrS11aazX8LOTRLHAXkkEeONNsS43EcCd7gax9LLoOz4vlFQA==}
+
+ '@stylistic/eslint-plugin-js@2.6.0-beta.0':
+ resolution: {integrity: sha512-KQiNvzNzvl9AmMs1MiIBszLIy/Xy1bTExnyaVy5dSzOF9c+yT64JQfH0p0jP6XpGwoCnZsrPUNflwP30G42QBQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=8.40.0'
+
+ '@stylistic/eslint-plugin-jsx@2.6.0-beta.0':
+ resolution: {integrity: sha512-TOimEpr3vndXHRhuQ5gMqmJv1SBlFI3poIJzyeNMmXi3NWVHoPxfd4QAJHGNJe5G3EO2NAXGf2H7nl8gY5QaZA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=8.40.0'
+
+ '@stylistic/eslint-plugin-plus@2.6.0-beta.0':
+ resolution: {integrity: sha512-Wp+e4sTbFq0Uk5ncU3PETYfg1IcCZ1KycdlqFYXIA7/bgcieeShXouXUcA+S/S5+gWLXGuVJ12IxNzY8yfe4IA==}
+ peerDependencies:
+ eslint: '*'
+
+ '@stylistic/eslint-plugin-ts@2.6.0-beta.0':
+ resolution: {integrity: sha512-WMz1zgmMC3bvg1L/tiYt5ygvDbTDKlbezoHoX2lV9MnUCAEQZUP4xJ9Wj3jmIKxb4mUuK5+vFZJVcOygvbbqow==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=8.40.0'
+
+ '@stylistic/eslint-plugin@2.6.0-beta.0':
+ resolution: {integrity: sha512-1NJy1iIDSFC4gelDJ82VMTq9J32tNvQ9k1lnxOsipZ0YQB826U5zGLiH37QAM8dRfNY6yeYhjlrUVtZUxFR19w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=8.40.0'
+
+ '@types/eslint@8.56.10':
+ resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==}
+
+ '@types/estree@1.0.5':
+ resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/mdast@3.0.15':
+ resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==}
+
+ '@types/normalize-package-data@2.4.4':
+ resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+
+ '@types/unist@2.0.10':
+ resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
+
+ '@typescript-eslint/eslint-plugin@8.0.0-alpha.34':
+ resolution: {integrity: sha512-qPLMqSlyZCHFSvsqIUV/QZ0ufxhOJhutvBEpi4KppixRZgrI6ZJw2M9EgqMRGraA5lGghwymVdxmcaCp4QuFPQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/parser@8.0.0-alpha.34':
+ resolution: {integrity: sha512-jtBWP09o/RrVsLhDwoxUHtvJURZ7RaO3Ia9OnkC6Jjsdn23tKwoEtjLbB94ATr6BU44R3JVbRJn1SCueCmECYw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/scope-manager@7.15.0':
+ resolution: {integrity: sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+
+ '@typescript-eslint/scope-manager@8.0.0-alpha.34':
+ resolution: {integrity: sha512-IpeT8JnV1Uo5lG/GTYe/SRJRcz1rBaCNma5cS5R8c4NkBIiIeE+R9Vy8ZEPkGImTfBp9BUNU6w+8lSQf0Z6tKw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/scope-manager@8.0.0-alpha.40':
+ resolution: {integrity: sha512-KQL502sCGZW+dYvxIzF6rEozbgppN0mBkYV6kT8ciY5OtFIRlLDTP7NdVAMMDk7q35T7Ad8negaQ9AGpZ8+Y5w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/type-utils@8.0.0-alpha.34':
+ resolution: {integrity: sha512-VmsfGVQ9UV1gs+LQkA9W9Nf7rSwY9KzB7WZUXwx56Ynlwjyt+999Z4Rrh2kPuDCPHTsO+GJDqeYyOYOEeXi9Bw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/types@7.15.0':
+ resolution: {integrity: sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+
+ '@typescript-eslint/types@8.0.0-alpha.34':
+ resolution: {integrity: sha512-9d2pLf/htOVVX/VNQgRt23z5kCOznsiAVt1TllCiMT1xic0W8yKr2FT6sJHYIUl1qDjHE7t/P6CQpNFvyOfbxA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/types@8.0.0-alpha.40':
+ resolution: {integrity: sha512-44mUq4VZVydxNlOM8Xtp/BXDkyfuvvjgPIBf7vRQDutrLDeNS0pJ9pcSloSbop5MwKLfJjBU+PbwnJPQM+DWNg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/typescript-estree@7.15.0':
+ resolution: {integrity: sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/typescript-estree@8.0.0-alpha.34':
+ resolution: {integrity: sha512-1ZAffOto9HpStxKCVpKkemYRUC4fznLEaj9fZyIYcppC/hdNNgZaiC0ONRUQQtdlPgdeH8BKoiWo6bGRemlxUw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/typescript-estree@8.0.0-alpha.40':
+ resolution: {integrity: sha512-bz1rX5GXvGdx686FghDxPqGwgntlseZCQSRrVGDDOZlLSoWJnbfkzxXGOWch9c3ttcGkdFy/DiCyKKga3hrq0g==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/utils@7.15.0':
+ resolution: {integrity: sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ eslint: ^8.56.0
+
+ '@typescript-eslint/utils@8.0.0-alpha.34':
+ resolution: {integrity: sha512-gHiHW96wCi3yllubUOswdWyCS/D5IRytTw9rPyumWJGD9qPh47MZAxtKp86Qdt1sbg+BJkYb8cCUMX9dwlVZzA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+
+ '@typescript-eslint/utils@8.0.0-alpha.40':
+ resolution: {integrity: sha512-ijxO1Hs3YWveuWK+Vbt25D05Q41UeK08JwEJbWTzV38LmkdCBktQd7X1sTw4W9Qku692HWuHgesZf6OhC8t3aA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+
+ '@typescript-eslint/visitor-keys@7.15.0':
+ resolution: {integrity: sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+
+ '@typescript-eslint/visitor-keys@8.0.0-alpha.34':
+ resolution: {integrity: sha512-Zs84EZx55fusxi4+6bzdZyNLy6nN8snh7HOcgs1jiRkqmf0qo+cgPjb7mGA1RgE1m60FQYgesj7je9KBE0HfSA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/visitor-keys@8.0.0-alpha.40':
+ resolution: {integrity: sha512-y1stojSPb5D3M8VlGGpaiBU5XxGLe+sPuW0YbLe09Lxvo4AwKGvhAr5lhqJZo4z6qHNz385+6+BS63+qIQdYLw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@vue/compiler-core@3.4.31':
+ resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==}
+
+ '@vue/compiler-dom@3.4.31':
+ resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==}
+
+ '@vue/compiler-sfc@3.4.31':
+ resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==}
+
+ '@vue/compiler-ssr@3.4.31':
+ resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==}
+
+ '@vue/shared@3.4.31':
+ resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==}
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn@8.12.1:
+ resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-regex@6.0.1:
+ resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+ engines: {node: '>=12'}
+
+ ansi-styles@3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ are-docs-informative@0.0.2:
+ resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==}
+ engines: {node: '>=14'}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ array-buffer-byte-length@1.0.1:
+ resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
+ engines: {node: '>= 0.4'}
+
+ array-timsort@1.0.3:
+ resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==}
+
+ array-union@2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+
+ arraybuffer.prototype.slice@1.0.3:
+ resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
+ engines: {node: '>= 0.4'}
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+
+ brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+
+ brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ browserslist@4.23.1:
+ resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ builtin-modules@3.3.0:
+ resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
+ engines: {node: '>=6'}
+
+ call-bind@1.0.7:
+ resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
+ engines: {node: '>= 0.4'}
+
+ call-me-maybe@1.0.2:
+ resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ caniuse-lite@1.0.30001640:
+ resolution: {integrity: sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==}
+
+ chalk-template@1.1.0:
+ resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==}
+ engines: {node: '>=14.16'}
+
+ chalk@2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+
+ 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}
+
+ character-entities-legacy@1.1.4:
+ resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
+
+ character-entities@1.2.4:
+ resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==}
+
+ character-reference-invalid@1.1.4:
+ resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
+
+ ci-info@4.0.0:
+ resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
+ engines: {node: '>=8'}
+
+ clean-regexp@1.0.0:
+ resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
+ engines: {node: '>=4'}
+
+ clear-module@4.1.2:
+ resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==}
+ engines: {node: '>=8'}
+
+ cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+
+ color-convert@1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.3:
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ commander@12.1.0:
+ resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
+ engines: {node: '>=18'}
+
+ comment-json@4.2.4:
+ resolution: {integrity: sha512-E5AjpSW+O+N5T2GsOQMHLLsJvrYw6G/AFt9GvU6NguEAfzKShh7hRiLtVo6S9KbRpFMGqE5ojo0/hE+sdteWvQ==}
+ engines: {node: '>= 6'}
+
+ comment-parser@1.4.1:
+ resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==}
+ engines: {node: '>= 12.0.0'}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ confbox@0.1.7:
+ resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==}
+
+ core-js-compat@3.37.1:
+ resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==}
+
+ core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+
+ cross-spawn@6.0.5:
+ resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==}
+ engines: {node: '>=4.8'}
+
+ cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+
+ cspell-config-lib@8.10.4:
+ resolution: {integrity: sha512-0VgnDEU4/+PWG+8x0FBN0QPun14sox9n7DBMvKGwAORhfiuYJ9w8kdrS/QqHdpHsRRQhXP1SWR8Nfg/5dUxsPg==}
+ engines: {node: '>=18'}
+
+ cspell-dictionary@8.10.4:
+ resolution: {integrity: sha512-9Hg2eTYbTKMoPy0r/IjGwcIII7PLGpeZlG1XzCDP4MW/bV4TGB6EfY8RAmhUt8cTwo7f6fxqu53WLaR3YPEozg==}
+ engines: {node: '>=18'}
+
+ cspell-gitignore@8.10.4:
+ resolution: {integrity: sha512-OtN/nZAxgFYGdV+hCK8tF3drlGJJ+42W278cIM67H67cHYupVICFgsDLiNBz/iR/J9S4pEU5WXu2yPtHFHvVUQ==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ cspell-glob@8.10.4:
+ resolution: {integrity: sha512-HPRK6ZtHBzY/zGMhajzJ2MOgHMgY74/FijtaZkYc09QTEjONhIO4VWcrxrr1/qoM/qAp2Y/CKcBM/OOiHls7+A==}
+ engines: {node: '>=18'}
+
+ cspell-grammar@8.10.4:
+ resolution: {integrity: sha512-AW9JqEmMJLrbBwN/3BAwpHgOz5WFyb4syS+pjFRdZGx/w9e9ZSn4xyfnQ3mjNaFc/oZUcXy+q032bNZQppjGXA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ cspell-io@8.10.4:
+ resolution: {integrity: sha512-IU+w0hNUQSR99ftC5Jr5D3Vtg70AOUSvdFXHO13qVf3GBnfYxbltQirbY5afLFUWDY6ayNO3GsZisCMdywmlwg==}
+ engines: {node: '>=18'}
+
+ cspell-lib@8.10.4:
+ resolution: {integrity: sha512-u1Edp5p2zwnBuQ9pBFg+YfAWB1c1uERWSZkteD5uClVz21zY5Aiikl41gOLi6Qm5+oWCWW+nP1HcC6B6wlFLHQ==}
+ engines: {node: '>=18'}
+
+ cspell-trie-lib@8.10.4:
+ resolution: {integrity: sha512-PQDwEYI10sp9nwnUA8HFFZr1c5j1Zrk9p8oqk7KUy+QUF3XcJn3ayLenPNUG95U/ysg3RBHc7/Vmh7unvXNRlQ==}
+ engines: {node: '>=18'}
+
+ cspell@8.10.4:
+ resolution: {integrity: sha512-6eu42atG3ohf1r8vkRCKHBgUED+MOY7ErwPodeEtiHOqCXBtTCoPQXbqJozRy5Jfr2VMCMiryknxI4dH5yzjuQ==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ data-view-buffer@1.0.1:
+ resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-length@1.0.1:
+ resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-offset@1.0.0:
+ resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
+ engines: {node: '>= 0.4'}
+
+ debug@3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.3.5:
+ resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ dir-glob@3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+
+ doctrine@3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+
+ electron-to-chromium@1.4.818:
+ resolution: {integrity: sha512-eGvIk2V0dGImV9gWLq8fDfTTsCAeMDwZqEPMr+jMInxZdnp9Us8UpovYpRCf9NQ7VOFgrN2doNSgvISbsbNpxA==}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ enhanced-resolve@5.17.0:
+ resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==}
+ engines: {node: '>=10.13.0'}
+
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ env-paths@3.0.0:
+ resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ error-ex@1.3.2:
+ resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+
+ es-abstract@1.23.3:
+ resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==}
+ engines: {node: '>= 0.4'}
+
+ es-define-property@1.0.0:
+ resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-module-lexer@1.5.4:
+ resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==}
+
+ es-object-atoms@1.0.0:
+ resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.0.3:
+ resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
+ engines: {node: '>= 0.4'}
+
+ es-to-primitive@1.2.1:
+ resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
+ engines: {node: '>= 0.4'}
+
+ escalade@3.1.2:
+ resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
+ engines: {node: '>=6'}
+
+ escape-string-regexp@1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eslint-compat-utils@0.5.1:
+ resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-config-flat-gitignore@0.1.5:
+ resolution: {integrity: sha512-hEZLwuZjDBGDERA49c2q7vxc8sCGv8EdBp6PQYzGOMcHIgrfG9YOM6s/4jx24zhD+wnK9AI8mgN5RxSss5nClQ==}
+
+ eslint-flat-config-utils@0.2.5:
+ resolution: {integrity: sha512-iO+yLZtC/LKgACerkpvsZ6NoRVB2sxT04mOpnNcEM1aTwKy+6TsT46PUvrML4y2uVBS6I67hRCd2JiKAPaL/Uw==}
+
+ eslint-formatting-reporter@0.0.0:
+ resolution: {integrity: sha512-k9RdyTqxqN/wNYVaTk/ds5B5rA8lgoAmvceYN7bcZMBwU7TuXx5ntewJv81eF3pIL/CiJE+pJZm36llG8yhyyw==}
+ peerDependencies:
+ eslint: '>=8.40.0'
+
+ eslint-import-resolver-node@0.3.9:
+ resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
+
+ eslint-merge-processors@0.1.0:
+ resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==}
+ peerDependencies:
+ eslint: '*'
+
+ eslint-parser-plain@0.1.0:
+ resolution: {integrity: sha512-oOeA6FWU0UJT/Rxc3XF5Cq0nbIZbylm7j8+plqq0CZoE6m4u32OXJrR+9iy4srGMmF6v6pmgvP1zPxSRIGh3sg==}
+
+ eslint-plugin-antfu@2.3.4:
+ resolution: {integrity: sha512-5RIjJpBK1tuNHuLyFyZ90/iW9s439dP1u2cxA4dH70djx9sKq1CqI+O6Q95aVjgFNTDtQzSC9uYdAD5uEEKciQ==}
+ peerDependencies:
+ eslint: '*'
+
+ eslint-plugin-command@0.2.3:
+ resolution: {integrity: sha512-1bBYNfjZg60N2ZpLV5ATYSYyueIJ+zl5yKrTs0UFDdnyu07dNSZ7Xplnc+Wb6SXTdc1sIaoIrnuyhvztcltX6A==}
+ peerDependencies:
+ eslint: '*'
+
+ eslint-plugin-es-x@7.8.0:
+ resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=8'
+
+ eslint-plugin-eslint-comments@3.2.0:
+ resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==}
+ engines: {node: '>=6.5.0'}
+ peerDependencies:
+ eslint: '>=4.19.1'
+
+ eslint-plugin-format@0.1.2:
+ resolution: {integrity: sha512-ZrcO3aiumgJ6ENAv65IWkPjtW77ML/5mp0YrRK0jdvvaZJb+4kKWbaQTMr/XbJo6CtELRmCApAziEKh7L2NbdQ==}
+ peerDependencies:
+ eslint: ^8.40.0 || ^9.0.0
+
+ eslint-plugin-import-x@0.5.3:
+ resolution: {integrity: sha512-hJ/wkMcsLQXAZL3+txXIDpbW5cqwdm1rLTqV4VRY03aIbzE3zWE7rPZKW6Gzf7xyl1u3V1iYC6tOG77d9NF4GQ==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ eslint: ^8.56.0 || ^9.0.0-0
+
+ eslint-plugin-jsdoc@48.5.2:
+ resolution: {integrity: sha512-VXBJFviQz30rynlOEQ+dNWLmeopjoAgutUVrWOZwm6Ki4EVDm4XkyIqAV/Zhf7FcDr0AG0aGmRn5FxxCtAF0tA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
+
+ eslint-plugin-jsonc@2.16.0:
+ resolution: {integrity: sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-plugin-markdown@5.0.0:
+ resolution: {integrity: sha512-kY2u9yDhzvfZ0kmRTsvgm3mTnvZgTSGIIPeHg3yesSx4R5CTCnITUjCPhzCD1MUhNcqHU5Tr6lzx+02EclVPbw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=8'
+
+ eslint-plugin-n@17.9.0:
+ resolution: {integrity: sha512-CPSaXDXdrT4nsrOrO4mT4VB6FMUkoySRkHWuuJJHVqsIEjIeZgMY1H7AzSwPbDScikBmLN82KeM1u7ixV7PzGg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=8.23.0'
+
+ eslint-plugin-no-only-tests@3.1.0:
+ resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==}
+ engines: {node: '>=5.0.0'}
+
+ eslint-plugin-perfectionist@2.11.0:
+ resolution: {integrity: sha512-XrtBtiu5rbQv88gl+1e2RQud9te9luYNvKIgM9emttQ2zutHPzY/AQUucwxscDKV4qlTkvLTxjOFvxqeDpPorw==}
+ peerDependencies:
+ astro-eslint-parser: ^1.0.2
+ eslint: '>=8.0.0'
+ svelte: '>=3.0.0'
+ svelte-eslint-parser: ^0.37.0
+ vue-eslint-parser: '>=9.0.0'
+ peerDependenciesMeta:
+ astro-eslint-parser:
+ optional: true
+ svelte:
+ optional: true
+ svelte-eslint-parser:
+ optional: true
+ vue-eslint-parser:
+ optional: true
+
+ eslint-plugin-regexp@2.6.0:
+ resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==}
+ engines: {node: ^18 || >=20}
+ peerDependencies:
+ eslint: '>=8.44.0'
+
+ eslint-plugin-toml@0.11.1:
+ resolution: {integrity: sha512-Y1WuMSzfZpeMIrmlP1nUh3kT8p96mThIq4NnHrYUhg10IKQgGfBZjAWnrg9fBqguiX4iFps/x/3Hb5TxBisfdw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-plugin-unicorn@54.0.0:
+ resolution: {integrity: sha512-XxYLRiYtAWiAjPv6z4JREby1TAE2byBC7wlh0V4vWDCpccOSU1KovWV//jqPXF6bq3WKxqX9rdjoRQ1EhdmNdQ==}
+ engines: {node: '>=18.18'}
+ peerDependencies:
+ eslint: '>=8.56.0'
+
+ eslint-plugin-unused-imports@4.0.0:
+ resolution: {integrity: sha512-mzM+y2B7XYpQryVa1usT+Y/BdNAtAZiXzwpSyDCboFoJN/LZRN67TNvQxKtuTK/Aplya3sLNQforiubzPPaIcQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': '8'
+ eslint: '9'
+ peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
+
+ eslint-plugin-vitest@0.5.4:
+ resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==}
+ engines: {node: ^18.0.0 || >= 20.0.0}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': '*'
+ eslint: ^8.57.0 || ^9.0.0
+ vitest: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
+ vitest:
+ optional: true
+
+ eslint-plugin-vue@9.27.0:
+ resolution: {integrity: sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
+
+ eslint-plugin-yml@1.14.0:
+ resolution: {integrity: sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-processor-vue-blocks@0.1.2:
+ resolution: {integrity: sha512-PfpJ4uKHnqeL/fXUnzYkOax3aIenlwewXRX8jFinA1a2yCFnLgMuiH3xvCgvHHUlV2xJWQHbCTdiJWGwb3NqpQ==}
+ peerDependencies:
+ '@vue/compiler-sfc': ^3.3.0
+ eslint: ^8.50.0 || ^9.0.0
+
+ eslint-rule-composer@0.3.0:
+ resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
+ engines: {node: '>=4.0.0'}
+
+ eslint-scope@7.2.2:
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-scope@8.0.1:
+ resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@4.0.0:
+ resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint@9.6.0:
+ resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+
+ espree@10.1.0:
+ resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ espree@9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ esquery@1.5.0:
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-diff@1.3.0:
+ resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
+
+ fast-equals@5.0.1:
+ resolution: {integrity: sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==}
+ engines: {node: '>=6.0.0'}
+
+ fast-glob@3.3.2:
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+ engines: {node: '>=8.6.0'}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fastq@1.17.1:
+ resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ find-up-simple@1.0.0:
+ resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==}
+ engines: {node: '>=18'}
+
+ find-up@4.1.0:
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+ engines: {node: '>=8'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ find-up@7.0.0:
+ resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==}
+ engines: {node: '>=18'}
+
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
+ flatted@3.3.1:
+ resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
+
+ for-each@0.3.3:
+ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ function.prototype.name@1.1.6:
+ resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
+ engines: {node: '>= 0.4'}
+
+ functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+
+ gensequence@7.0.0:
+ resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==}
+ engines: {node: '>=18'}
+
+ get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ get-intrinsic@1.2.4:
+ resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
+ engines: {node: '>= 0.4'}
+
+ get-stdin@9.0.0:
+ resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==}
+ engines: {node: '>=12'}
+
+ get-symbol-description@1.0.2:
+ resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
+ engines: {node: '>= 0.4'}
+
+ get-tsconfig@4.7.5:
+ resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ global-directory@4.0.1:
+ resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==}
+ engines: {node: '>=18'}
+
+ globals@13.24.0:
+ resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
+ engines: {node: '>=8'}
+
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
+
+ globals@15.8.0:
+ resolution: {integrity: sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==}
+ engines: {node: '>=18'}
+
+ globalthis@1.0.4:
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
+ engines: {node: '>= 0.4'}
+
+ globby@11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+
+ gopd@1.0.1:
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
+ has-bigints@1.0.2:
+ resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
+
+ has-flag@3.0.0:
+ resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+ engines: {node: '>=4'}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ has-own-prop@2.0.0:
+ resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==}
+ engines: {node: '>=8'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+ has-proto@1.0.3:
+ resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
+ engines: {node: '>= 0.4'}
+
+ has-symbols@1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
+
+ hosted-git-info@2.8.9:
+ resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+
+ husky@9.0.11:
+ resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ ignore@5.3.1:
+ resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
+ engines: {node: '>= 4'}
+
+ import-fresh@3.3.0:
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+
+ import-meta-resolve@4.1.0:
+ resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ indent-string@4.0.0:
+ resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
+ engines: {node: '>=8'}
+
+ ini@4.1.1:
+ resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ internal-slot@1.0.7:
+ resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
+ engines: {node: '>= 0.4'}
+
+ is-alphabetical@1.0.4:
+ resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
+
+ is-alphanumerical@1.0.4:
+ resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==}
+
+ is-array-buffer@3.0.4:
+ resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
+ engines: {node: '>= 0.4'}
+
+ is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+ is-bigint@1.0.4:
+ resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
+
+ is-boolean-object@1.1.2:
+ resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
+ engines: {node: '>= 0.4'}
+
+ is-builtin-module@3.2.1:
+ resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
+ engines: {node: '>=6'}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ is-core-module@2.14.0:
+ resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==}
+ engines: {node: '>= 0.4'}
+
+ is-data-view@1.0.1:
+ resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
+ engines: {node: '>= 0.4'}
+
+ is-date-object@1.0.5:
+ resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
+ engines: {node: '>= 0.4'}
+
+ is-decimal@1.0.4:
+ resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-hexadecimal@1.0.4:
+ resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
+
+ is-negative-zero@2.0.3:
+ resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
+ engines: {node: '>= 0.4'}
+
+ is-number-object@1.0.7:
+ resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
+ engines: {node: '>= 0.4'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+
+ is-regex@1.1.4:
+ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
+ engines: {node: '>= 0.4'}
+
+ is-shared-array-buffer@1.0.3:
+ resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
+ engines: {node: '>= 0.4'}
+
+ is-string@1.0.7:
+ resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
+ engines: {node: '>= 0.4'}
+
+ is-symbol@1.0.4:
+ resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
+ engines: {node: '>= 0.4'}
+
+ is-typed-array@1.1.13:
+ resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
+ engines: {node: '>= 0.4'}
+
+ is-weakref@1.0.2:
+ resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
+
+ isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ jsdoc-type-pratt-parser@4.0.0:
+ resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==}
+ engines: {node: '>=12.0.0'}
+
+ jsesc@0.5.0:
+ resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
+ hasBin: true
+
+ jsesc@3.0.2:
+ resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ json-parse-better-errors@1.0.2:
+ resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
+
+ json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ jsonc-eslint-parser@2.4.0:
+ resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ linkify-it@5.0.0:
+ resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
+
+ load-json-file@4.0.0:
+ resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==}
+ engines: {node: '>=4'}
+
+ local-pkg@0.5.0:
+ resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
+ engines: {node: '>=14'}
+
+ locate-path@5.0.0:
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+ engines: {node: '>=8'}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ locate-path@7.2.0:
+ resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+ lunr@2.3.9:
+ resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
+
+ magic-string@0.30.10:
+ resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
+
+ markdown-it@14.1.0:
+ resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
+ hasBin: true
+
+ mdast-util-from-markdown@0.8.5:
+ resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==}
+
+ mdast-util-to-string@2.0.0:
+ resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==}
+
+ mdurl@2.0.0:
+ resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
+
+ memorystream@0.3.1:
+ resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==}
+ engines: {node: '>= 0.10.0'}
+
+ merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ micromark@2.11.4:
+ resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==}
+
+ micromatch@4.0.7:
+ resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==}
+ engines: {node: '>=8.6'}
+
+ min-indent@1.0.1:
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+ engines: {node: '>=4'}
+
+ minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+ minimatch@9.0.5:
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ mlly@1.7.1:
+ resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==}
+
+ ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ nanoid@3.3.7:
+ resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ natural-compare-lite@1.4.0:
+ resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ nice-try@1.0.5:
+ resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
+
+ node-releases@2.0.14:
+ resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
+
+ normalize-package-data@2.5.0:
+ resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+
+ npm-run-all@4.1.5:
+ resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==}
+ engines: {node: '>= 4'}
+ hasBin: true
+
+ nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+
+ object-inspect@1.13.2:
+ resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ object.assign@4.1.5:
+ resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
+ engines: {node: '>= 0.4'}
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ p-limit@2.3.0:
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+ engines: {node: '>=6'}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-limit@4.0.0:
+ resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ p-locate@4.1.0:
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+ engines: {node: '>=8'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ p-locate@6.0.0:
+ resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ p-try@2.2.0:
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+ engines: {node: '>=6'}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ parent-module@2.0.0:
+ resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==}
+ engines: {node: '>=8'}
+
+ parse-entities@2.0.0:
+ resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==}
+
+ parse-gitignore@2.0.0:
+ resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==}
+ engines: {node: '>=14'}
+
+ parse-imports@2.1.1:
+ resolution: {integrity: sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==}
+ engines: {node: '>= 18'}
+
+ parse-json@4.0.0:
+ resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
+ engines: {node: '>=4'}
+
+ parse-json@5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ path-exists@5.0.0:
+ resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ path-key@2.0.1:
+ resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
+ engines: {node: '>=4'}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-type@3.0.0:
+ resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
+ engines: {node: '>=4'}
+
+ path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+
+ pathe@1.1.2:
+ resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+
+ picocolors@1.0.1:
+ resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
+
+ picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ picomatch@4.0.2:
+ resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
+ engines: {node: '>=12'}
+
+ pidtree@0.3.1:
+ resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
+ pify@3.0.0:
+ resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
+ engines: {node: '>=4'}
+
+ pkg-types@1.1.3:
+ resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==}
+
+ pluralize@8.0.0:
+ resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
+ engines: {node: '>=4'}
+
+ possible-typed-array-names@1.0.0:
+ resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
+ engines: {node: '>= 0.4'}
+
+ postcss-selector-parser@6.1.0:
+ resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==}
+ engines: {node: '>=4'}
+
+ postcss@8.4.39:
+ resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prettier-linter-helpers@1.0.0:
+ resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
+ engines: {node: '>=6.0.0'}
+
+ prettier@3.3.2:
+ resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ punycode.js@2.3.1:
+ resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
+ engines: {node: '>=6'}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ read-pkg-up@7.0.1:
+ resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
+ engines: {node: '>=8'}
+
+ read-pkg@3.0.0:
+ resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==}
+ engines: {node: '>=4'}
+
+ read-pkg@5.2.0:
+ resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
+ engines: {node: '>=8'}
+
+ refa@0.12.1:
+ resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ regexp-ast-analysis@0.7.1:
+ resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ regexp-tree@0.1.27:
+ resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
+ hasBin: true
+
+ regexp.prototype.flags@1.5.2:
+ resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
+ engines: {node: '>= 0.4'}
+
+ regjsparser@0.10.0:
+ resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
+ hasBin: true
+
+ repeat-string@1.6.1:
+ resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
+ engines: {node: '>=0.10'}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+
+ resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+
+ resolve@1.22.8:
+ resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
+ hasBin: true
+
+ reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ safe-array-concat@1.1.2:
+ resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
+ engines: {node: '>=0.4'}
+
+ safe-regex-test@1.0.3:
+ resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
+ engines: {node: '>= 0.4'}
+
+ scslre@0.3.0:
+ resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==}
+ engines: {node: ^14.0.0 || >=16.0.0}
+
+ semver@5.7.2:
+ resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+ hasBin: true
+
+ semver@7.6.2:
+ resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ engines: {node: '>= 0.4'}
+
+ shebang-command@1.2.0:
+ resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
+ engines: {node: '>=0.10.0'}
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@1.0.0:
+ resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
+ engines: {node: '>=0.10.0'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ shell-quote@1.8.1:
+ resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
+
+ shiki@1.10.1:
+ resolution: {integrity: sha512-uafV7WCgN4YYrccH6yxpnps6k38sSTlFRrwc4jycWmhWxJIm9dPrk+XkY1hZ2t0I7jmacMNb15Lf2fspa/Y3lg==}
+
+ side-channel@1.0.6:
+ resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
+ engines: {node: '>= 0.4'}
+
+ sisteransi@1.0.5:
+ resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
+
+ slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+
+ slashes@3.0.12:
+ resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==}
+
+ source-map-js@1.2.0:
+ resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
+ engines: {node: '>=0.10.0'}
+
+ spdx-correct@3.2.0:
+ resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+
+ spdx-exceptions@2.5.0:
+ resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+ spdx-expression-parse@3.0.1:
+ resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+
+ spdx-expression-parse@4.0.0:
+ resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==}
+
+ spdx-license-ids@3.0.18:
+ resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==}
+
+ stable-hash@0.0.4:
+ resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==}
+
+ string-argv@0.3.2:
+ resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
+ engines: {node: '>=0.6.19'}
+
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+
+ string.prototype.padend@3.1.6:
+ resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trim@1.2.9:
+ resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimend@1.0.8:
+ resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
+
+ string.prototype.trimstart@1.0.8:
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
+ engines: {node: '>= 0.4'}
+
+ 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'}
+
+ strip-bom@3.0.0:
+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+ engines: {node: '>=4'}
+
+ strip-indent@3.0.0:
+ resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+ engines: {node: '>=8'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ supports-color@5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ synckit@0.6.2:
+ resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==}
+ engines: {node: '>=12.20'}
+
+ synckit@0.9.0:
+ resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
+ tapable@2.2.1:
+ resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+ engines: {node: '>=6'}
+
+ text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+
+ to-fast-properties@2.0.0:
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+ engines: {node: '>=4'}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ toml-eslint-parser@0.10.0:
+ resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ ts-api-utils@1.3.0:
+ resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ typescript: '>=4.2.0'
+
+ tslib@2.6.3:
+ resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ type-detect@4.0.8:
+ resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
+ engines: {node: '>=4'}
+
+ type-fest@0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+
+ type-fest@0.6.0:
+ resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
+ engines: {node: '>=8'}
+
+ type-fest@0.8.1:
+ resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
+ engines: {node: '>=8'}
+
+ typed-array-buffer@1.0.2:
+ resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-length@1.0.1:
+ resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-offset@1.0.2:
+ resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-length@1.0.6:
+ resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
+ engines: {node: '>= 0.4'}
+
+ typedoc-plugin-markdown@4.1.2:
+ resolution: {integrity: sha512-jZt8jmQLbmg9jmFQyfJrjLf6ljRwJ5fKMeqmFr0oPXmeX5ZRYYtCe6y/058vDESE/R+TwEvNua6SuG43UBbszw==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ typedoc: 0.26.x
+
+ typedoc@0.26.3:
+ resolution: {integrity: sha512-6d2Sw9disvvpdk4K7VNjKr5/3hzijtfQVHRthhDqJgnhMHy1wQz4yPMJVKXElvnZhFr0nkzo+GzjXDTRV5yLpg==}
+ engines: {node: '>= 18'}
+ hasBin: true
+ peerDependencies:
+ typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x
+
+ typescript@5.5.3:
+ resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ uc.micro@2.1.0:
+ resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
+
+ ufo@1.5.3:
+ resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==}
+
+ unbox-primitive@1.0.2:
+ resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
+
+ unicorn-magic@0.1.0:
+ resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
+ engines: {node: '>=18'}
+
+ unist-util-stringify-position@2.0.3:
+ resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
+
+ update-browserslist-db@1.1.0:
+ resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ validate-npm-package-license@3.0.4:
+ resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+
+ vscode-languageserver-textdocument@1.0.11:
+ resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==}
+
+ vscode-uri@3.0.8:
+ resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
+
+ vue-eslint-parser@9.4.3:
+ resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ which-boxed-primitive@1.0.2:
+ resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
+
+ which-typed-array@1.1.15:
+ resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
+ engines: {node: '>= 0.4'}
+
+ which@1.3.1:
+ resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
+ hasBin: true
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
+ xdg-basedir@5.1.0:
+ resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
+ engines: {node: '>=12'}
+
+ xml-name-validator@4.0.0:
+ resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
+ engines: {node: '>=12'}
+
+ y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
+ yaml-eslint-parser@1.2.3:
+ resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+
+ yaml@2.4.5:
+ resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==}
+ engines: {node: '>= 14'}
+ hasBin: true
+
+ yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
+ yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ yocto-queue@1.1.1:
+ resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==}
+ engines: {node: '>=12.20'}
+
+snapshots:
+
+ '@antfu/eslint-config@2.22.0-beta.1(@vue/compiler-sfc@3.4.31)(eslint-plugin-format@0.1.2(eslint@9.6.0))(eslint@9.6.0)(typescript@5.5.3)':
+ dependencies:
+ '@antfu/install-pkg': 0.3.3
+ '@clack/prompts': 0.7.0
+ '@stylistic/eslint-plugin': 2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/eslint-plugin': 8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)
+ eslint: 9.6.0
+ eslint-config-flat-gitignore: 0.1.5
+ eslint-flat-config-utils: 0.2.5
+ eslint-merge-processors: 0.1.0(eslint@9.6.0)
+ eslint-plugin-antfu: 2.3.4(eslint@9.6.0)
+ eslint-plugin-command: 0.2.3(eslint@9.6.0)
+ eslint-plugin-eslint-comments: 3.2.0(eslint@9.6.0)
+ eslint-plugin-import-x: 0.5.3(eslint@9.6.0)(typescript@5.5.3)
+ eslint-plugin-jsdoc: 48.5.2(eslint@9.6.0)
+ eslint-plugin-jsonc: 2.16.0(eslint@9.6.0)
+ eslint-plugin-markdown: 5.0.0(eslint@9.6.0)
+ eslint-plugin-n: 17.9.0(eslint@9.6.0)
+ eslint-plugin-no-only-tests: 3.1.0
+ eslint-plugin-perfectionist: 2.11.0(eslint@9.6.0)(typescript@5.5.3)(vue-eslint-parser@9.4.3(eslint@9.6.0))
+ eslint-plugin-regexp: 2.6.0(eslint@9.6.0)
+ eslint-plugin-toml: 0.11.1(eslint@9.6.0)
+ eslint-plugin-unicorn: 54.0.0(eslint@9.6.0)
+ eslint-plugin-unused-imports: 4.0.0(@typescript-eslint/eslint-plugin@8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)
+ eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
+ eslint-plugin-vue: 9.27.0(eslint@9.6.0)
+ eslint-plugin-yml: 1.14.0(eslint@9.6.0)
+ eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.31)(eslint@9.6.0)
+ globals: 15.8.0
+ jsonc-eslint-parser: 2.4.0
+ local-pkg: 0.5.0
+ parse-gitignore: 2.0.0
+ picocolors: 1.0.1
+ toml-eslint-parser: 0.10.0
+ vue-eslint-parser: 9.4.3(eslint@9.6.0)
+ yaml-eslint-parser: 1.2.3
+ yargs: 17.7.2
+ optionalDependencies:
+ eslint-plugin-format: 0.1.2(eslint@9.6.0)
+ transitivePeerDependencies:
+ - '@vue/compiler-sfc'
+ - supports-color
+ - svelte
+ - typescript
+ - vitest
+
+ '@antfu/install-pkg@0.3.3':
+ dependencies:
+ '@jsdevtools/ez-spawn': 3.0.4
+
+ '@antfu/utils@0.7.10': {}
+
+ '@babel/code-frame@7.24.7':
+ dependencies:
+ '@babel/highlight': 7.24.7
+ picocolors: 1.0.1
+
+ '@babel/helper-string-parser@7.24.7': {}
+
+ '@babel/helper-validator-identifier@7.24.7': {}
+
+ '@babel/highlight@7.24.7':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.24.7
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ picocolors: 1.0.1
+
+ '@babel/parser@7.24.7':
+ dependencies:
+ '@babel/types': 7.24.7
+
+ '@babel/types@7.24.7':
+ dependencies:
+ '@babel/helper-string-parser': 7.24.7
+ '@babel/helper-validator-identifier': 7.24.7
+ to-fast-properties: 2.0.0
+
+ '@clack/core@0.3.4':
+ dependencies:
+ picocolors: 1.0.1
+ sisteransi: 1.0.5
+
+ '@clack/prompts@0.7.0':
+ dependencies:
+ '@clack/core': 0.3.4
+ picocolors: 1.0.1
+ sisteransi: 1.0.5
+
+ '@cspell/cspell-bundled-dicts@8.10.4':
+ dependencies:
+ '@cspell/dict-ada': 4.0.2
+ '@cspell/dict-aws': 4.0.2
+ '@cspell/dict-bash': 4.1.3
+ '@cspell/dict-companies': 3.1.2
+ '@cspell/dict-cpp': 5.1.10
+ '@cspell/dict-cryptocurrencies': 5.0.0
+ '@cspell/dict-csharp': 4.0.2
+ '@cspell/dict-css': 4.0.12
+ '@cspell/dict-dart': 2.0.3
+ '@cspell/dict-django': 4.1.0
+ '@cspell/dict-docker': 1.1.7
+ '@cspell/dict-dotnet': 5.0.2
+ '@cspell/dict-elixir': 4.0.3
+ '@cspell/dict-en-common-misspellings': 2.0.3
+ '@cspell/dict-en-gb': 1.1.33
+ '@cspell/dict-en_us': 4.3.23
+ '@cspell/dict-filetypes': 3.0.4
+ '@cspell/dict-fonts': 4.0.0
+ '@cspell/dict-fsharp': 1.0.1
+ '@cspell/dict-fullstack': 3.1.8
+ '@cspell/dict-gaming-terms': 1.0.5
+ '@cspell/dict-git': 3.0.0
+ '@cspell/dict-golang': 6.0.9
+ '@cspell/dict-google': 1.0.1
+ '@cspell/dict-haskell': 4.0.1
+ '@cspell/dict-html': 4.0.5
+ '@cspell/dict-html-symbol-entities': 4.0.0
+ '@cspell/dict-java': 5.0.7
+ '@cspell/dict-julia': 1.0.1
+ '@cspell/dict-k8s': 1.0.5
+ '@cspell/dict-latex': 4.0.0
+ '@cspell/dict-lorem-ipsum': 4.0.0
+ '@cspell/dict-lua': 4.0.3
+ '@cspell/dict-makefile': 1.0.0
+ '@cspell/dict-monkeyc': 1.0.6
+ '@cspell/dict-node': 5.0.1
+ '@cspell/dict-npm': 5.0.16
+ '@cspell/dict-php': 4.0.8
+ '@cspell/dict-powershell': 5.0.4
+ '@cspell/dict-public-licenses': 2.0.7
+ '@cspell/dict-python': 4.2.1
+ '@cspell/dict-r': 2.0.1
+ '@cspell/dict-ruby': 5.0.2
+ '@cspell/dict-rust': 4.0.4
+ '@cspell/dict-scala': 5.0.2
+ '@cspell/dict-software-terms': 3.4.9
+ '@cspell/dict-sql': 2.1.3
+ '@cspell/dict-svelte': 1.0.2
+ '@cspell/dict-swift': 2.0.1
+ '@cspell/dict-terraform': 1.0.0
+ '@cspell/dict-typescript': 3.1.5
+ '@cspell/dict-vue': 3.0.0
+
+ '@cspell/cspell-json-reporter@8.10.4':
+ dependencies:
+ '@cspell/cspell-types': 8.10.4
+
+ '@cspell/cspell-pipe@8.10.4': {}
+
+ '@cspell/cspell-resolver@8.10.4':
+ dependencies:
+ global-directory: 4.0.1
+
+ '@cspell/cspell-service-bus@8.10.4': {}
+
+ '@cspell/cspell-types@8.10.4': {}
+
+ '@cspell/dict-ada@4.0.2': {}
+
+ '@cspell/dict-aws@4.0.2': {}
+
+ '@cspell/dict-bash@4.1.3': {}
+
+ '@cspell/dict-companies@3.1.2': {}
+
+ '@cspell/dict-cpp@5.1.10': {}
+
+ '@cspell/dict-cryptocurrencies@5.0.0': {}
+
+ '@cspell/dict-csharp@4.0.2': {}
+
+ '@cspell/dict-css@4.0.12': {}
+
+ '@cspell/dict-dart@2.0.3': {}
+
+ '@cspell/dict-data-science@2.0.1': {}
+
+ '@cspell/dict-django@4.1.0': {}
+
+ '@cspell/dict-docker@1.1.7': {}
+
+ '@cspell/dict-dotnet@5.0.2': {}
+
+ '@cspell/dict-elixir@4.0.3': {}
+
+ '@cspell/dict-en-common-misspellings@2.0.3': {}
+
+ '@cspell/dict-en-gb@1.1.33': {}
+
+ '@cspell/dict-en_us@4.3.23': {}
+
+ '@cspell/dict-filetypes@3.0.4': {}
+
+ '@cspell/dict-fonts@4.0.0': {}
+
+ '@cspell/dict-fsharp@1.0.1': {}
+
+ '@cspell/dict-fullstack@3.1.8': {}
+
+ '@cspell/dict-gaming-terms@1.0.5': {}
+
+ '@cspell/dict-git@3.0.0': {}
+
+ '@cspell/dict-golang@6.0.9': {}
+
+ '@cspell/dict-google@1.0.1': {}
+
+ '@cspell/dict-haskell@4.0.1': {}
+
+ '@cspell/dict-html-symbol-entities@4.0.0': {}
+
+ '@cspell/dict-html@4.0.5': {}
+
+ '@cspell/dict-java@5.0.7': {}
+
+ '@cspell/dict-julia@1.0.1': {}
+
+ '@cspell/dict-k8s@1.0.5': {}
+
+ '@cspell/dict-latex@4.0.0': {}
+
+ '@cspell/dict-lorem-ipsum@4.0.0': {}
+
+ '@cspell/dict-lua@4.0.3': {}
+
+ '@cspell/dict-makefile@1.0.0': {}
+
+ '@cspell/dict-monkeyc@1.0.6': {}
+
+ '@cspell/dict-node@5.0.1': {}
+
+ '@cspell/dict-npm@5.0.16': {}
+
+ '@cspell/dict-php@4.0.8': {}
+
+ '@cspell/dict-powershell@5.0.4': {}
+
+ '@cspell/dict-public-licenses@2.0.7': {}
+
+ '@cspell/dict-python@4.2.1':
+ dependencies:
+ '@cspell/dict-data-science': 2.0.1
+
+ '@cspell/dict-r@2.0.1': {}
+
+ '@cspell/dict-ruby@5.0.2': {}
+
+ '@cspell/dict-rust@4.0.4': {}
+
+ '@cspell/dict-scala@5.0.2': {}
+
+ '@cspell/dict-software-terms@3.4.9': {}
+
+ '@cspell/dict-sql@2.1.3': {}
+
+ '@cspell/dict-svelte@1.0.2': {}
+
+ '@cspell/dict-swift@2.0.1': {}
+
+ '@cspell/dict-terraform@1.0.0': {}
+
+ '@cspell/dict-typescript@3.1.5': {}
+
+ '@cspell/dict-vue@3.0.0': {}
+
+ '@cspell/dynamic-import@8.10.4':
+ dependencies:
+ import-meta-resolve: 4.1.0
+
+ '@cspell/strong-weak-map@8.10.4': {}
+
+ '@cspell/url@8.10.4': {}
+
+ '@dprint/formatter@0.3.0': {}
+
+ '@dprint/markdown@0.17.1': {}
+
+ '@dprint/toml@0.6.2': {}
+
+ '@es-joy/jsdoccomment@0.43.1':
+ dependencies:
+ '@types/eslint': 8.56.10
+ '@types/estree': 1.0.5
+ '@typescript-eslint/types': 7.15.0
+ comment-parser: 1.4.1
+ esquery: 1.5.0
+ jsdoc-type-pratt-parser: 4.0.0
+
+ '@eslint-community/eslint-utils@4.4.0(eslint@9.6.0)':
+ dependencies:
+ eslint: 9.6.0
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.11.0': {}
+
+ '@eslint/config-array@0.17.0':
+ dependencies:
+ '@eslint/object-schema': 2.1.4
+ debug: 4.3.5
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/eslintrc@3.1.0':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.5
+ espree: 10.1.0
+ globals: 14.0.0
+ ignore: 5.3.1
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@9.6.0': {}
+
+ '@eslint/object-schema@2.1.4': {}
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/retry@0.3.0': {}
+
+ '@jridgewell/sourcemap-codec@1.4.15': {}
+
+ '@jsdevtools/ez-spawn@3.0.4':
+ dependencies:
+ call-me-maybe: 1.0.2
+ cross-spawn: 7.0.3
+ string-argv: 0.3.2
+ type-detect: 4.0.8
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.17.1
+
+ '@pkgr/core@0.1.1': {}
+
+ '@shikijs/core@1.10.1': {}
+
+ '@stylistic/eslint-plugin-js@2.6.0-beta.0(eslint@9.6.0)':
+ dependencies:
+ '@types/eslint': 8.56.10
+ acorn: 8.12.1
+ eslint: 9.6.0
+ eslint-visitor-keys: 4.0.0
+ espree: 10.1.0
+
+ '@stylistic/eslint-plugin-jsx@2.6.0-beta.0(eslint@9.6.0)':
+ dependencies:
+ '@stylistic/eslint-plugin-js': 2.6.0-beta.0(eslint@9.6.0)
+ '@types/eslint': 8.56.10
+ eslint: 9.6.0
+ estraverse: 5.3.0
+ picomatch: 4.0.2
+
+ '@stylistic/eslint-plugin-plus@2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3)':
+ dependencies:
+ '@types/eslint': 8.56.10
+ '@typescript-eslint/utils': 8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3)
+ eslint: 9.6.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@stylistic/eslint-plugin-ts@2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3)':
+ dependencies:
+ '@stylistic/eslint-plugin-js': 2.6.0-beta.0(eslint@9.6.0)
+ '@types/eslint': 8.56.10
+ '@typescript-eslint/utils': 8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3)
+ eslint: 9.6.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@stylistic/eslint-plugin@2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3)':
+ dependencies:
+ '@stylistic/eslint-plugin-js': 2.6.0-beta.0(eslint@9.6.0)
+ '@stylistic/eslint-plugin-jsx': 2.6.0-beta.0(eslint@9.6.0)
+ '@stylistic/eslint-plugin-plus': 2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3)
+ '@stylistic/eslint-plugin-ts': 2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3)
+ '@types/eslint': 8.56.10
+ eslint: 9.6.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@types/eslint@8.56.10':
+ dependencies:
+ '@types/estree': 1.0.5
+ '@types/json-schema': 7.0.15
+
+ '@types/estree@1.0.5': {}
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/mdast@3.0.15':
+ dependencies:
+ '@types/unist': 2.0.10
+
+ '@types/normalize-package-data@2.4.4': {}
+
+ '@types/unist@2.0.10': {}
+
+ '@typescript-eslint/eslint-plugin@8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)':
+ dependencies:
+ '@eslint-community/regexpp': 4.11.0
+ '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/scope-manager': 8.0.0-alpha.34
+ '@typescript-eslint/type-utils': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/visitor-keys': 8.0.0-alpha.34
+ eslint: 9.6.0
+ graphemer: 1.4.0
+ ignore: 5.3.1
+ natural-compare: 1.4.0
+ ts-api-utils: 1.3.0(typescript@5.5.3)
+ optionalDependencies:
+ typescript: 5.5.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.0.0-alpha.34
+ '@typescript-eslint/types': 8.0.0-alpha.34
+ '@typescript-eslint/typescript-estree': 8.0.0-alpha.34(typescript@5.5.3)
+ '@typescript-eslint/visitor-keys': 8.0.0-alpha.34
+ debug: 4.3.5
+ eslint: 9.6.0
+ optionalDependencies:
+ typescript: 5.5.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@7.15.0':
+ dependencies:
+ '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/visitor-keys': 7.15.0
+
+ '@typescript-eslint/scope-manager@8.0.0-alpha.34':
+ dependencies:
+ '@typescript-eslint/types': 8.0.0-alpha.34
+ '@typescript-eslint/visitor-keys': 8.0.0-alpha.34
+
+ '@typescript-eslint/scope-manager@8.0.0-alpha.40':
+ dependencies:
+ '@typescript-eslint/types': 8.0.0-alpha.40
+ '@typescript-eslint/visitor-keys': 8.0.0-alpha.40
+
+ '@typescript-eslint/type-utils@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 8.0.0-alpha.34(typescript@5.5.3)
+ '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)
+ debug: 4.3.5
+ ts-api-utils: 1.3.0(typescript@5.5.3)
+ optionalDependencies:
+ typescript: 5.5.3
+ transitivePeerDependencies:
+ - eslint
+ - supports-color
+
+ '@typescript-eslint/types@7.15.0': {}
+
+ '@typescript-eslint/types@8.0.0-alpha.34': {}
+
+ '@typescript-eslint/types@8.0.0-alpha.40': {}
+
+ '@typescript-eslint/typescript-estree@7.15.0(typescript@5.5.3)':
+ dependencies:
+ '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/visitor-keys': 7.15.0
+ debug: 4.3.5
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.6.2
+ ts-api-utils: 1.3.0(typescript@5.5.3)
+ optionalDependencies:
+ typescript: 5.5.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/typescript-estree@8.0.0-alpha.34(typescript@5.5.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.0.0-alpha.34
+ '@typescript-eslint/visitor-keys': 8.0.0-alpha.34
+ debug: 4.3.5
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.6.2
+ ts-api-utils: 1.3.0(typescript@5.5.3)
+ optionalDependencies:
+ typescript: 5.5.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/typescript-estree@8.0.0-alpha.40(typescript@5.5.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.0.0-alpha.40
+ '@typescript-eslint/visitor-keys': 8.0.0-alpha.40
+ debug: 4.3.5
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.6.2
+ ts-api-utils: 1.3.0(typescript@5.5.3)
+ optionalDependencies:
+ typescript: 5.5.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@7.15.0(eslint@9.6.0)(typescript@5.5.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ '@typescript-eslint/scope-manager': 7.15.0
+ '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3)
+ eslint: 9.6.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@typescript-eslint/utils@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ '@typescript-eslint/scope-manager': 8.0.0-alpha.34
+ '@typescript-eslint/types': 8.0.0-alpha.34
+ '@typescript-eslint/typescript-estree': 8.0.0-alpha.34(typescript@5.5.3)
+ eslint: 9.6.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@typescript-eslint/utils@8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ '@typescript-eslint/scope-manager': 8.0.0-alpha.40
+ '@typescript-eslint/types': 8.0.0-alpha.40
+ '@typescript-eslint/typescript-estree': 8.0.0-alpha.40(typescript@5.5.3)
+ eslint: 9.6.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@typescript-eslint/visitor-keys@7.15.0':
+ dependencies:
+ '@typescript-eslint/types': 7.15.0
+ eslint-visitor-keys: 3.4.3
+
+ '@typescript-eslint/visitor-keys@8.0.0-alpha.34':
+ dependencies:
+ '@typescript-eslint/types': 8.0.0-alpha.34
+ eslint-visitor-keys: 3.4.3
+
+ '@typescript-eslint/visitor-keys@8.0.0-alpha.40':
+ dependencies:
+ '@typescript-eslint/types': 8.0.0-alpha.40
+ eslint-visitor-keys: 3.4.3
+
+ '@vue/compiler-core@3.4.31':
+ dependencies:
+ '@babel/parser': 7.24.7
+ '@vue/shared': 3.4.31
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.0
+
+ '@vue/compiler-dom@3.4.31':
+ dependencies:
+ '@vue/compiler-core': 3.4.31
+ '@vue/shared': 3.4.31
+
+ '@vue/compiler-sfc@3.4.31':
+ dependencies:
+ '@babel/parser': 7.24.7
+ '@vue/compiler-core': 3.4.31
+ '@vue/compiler-dom': 3.4.31
+ '@vue/compiler-ssr': 3.4.31
+ '@vue/shared': 3.4.31
+ estree-walker: 2.0.2
+ magic-string: 0.30.10
+ postcss: 8.4.39
+ source-map-js: 1.2.0
+
+ '@vue/compiler-ssr@3.4.31':
+ dependencies:
+ '@vue/compiler-dom': 3.4.31
+ '@vue/shared': 3.4.31
+
+ '@vue/shared@3.4.31': {}
+
+ acorn-jsx@5.3.2(acorn@8.12.1):
+ dependencies:
+ acorn: 8.12.1
+
+ acorn@8.12.1: {}
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ansi-regex@5.0.1: {}
+
+ ansi-regex@6.0.1: {}
+
+ ansi-styles@3.2.1:
+ dependencies:
+ color-convert: 1.9.3
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ are-docs-informative@0.0.2: {}
+
+ argparse@2.0.1: {}
+
+ array-buffer-byte-length@1.0.1:
+ dependencies:
+ call-bind: 1.0.7
+ is-array-buffer: 3.0.4
+
+ array-timsort@1.0.3: {}
+
+ array-union@2.1.0: {}
+
+ arraybuffer.prototype.slice@1.0.3:
+ dependencies:
+ array-buffer-byte-length: 1.0.1
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
+ is-array-buffer: 3.0.4
+ is-shared-array-buffer: 1.0.3
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.0.0
+
+ balanced-match@1.0.2: {}
+
+ boolbase@1.0.0: {}
+
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist@4.23.1:
+ dependencies:
+ caniuse-lite: 1.0.30001640
+ electron-to-chromium: 1.4.818
+ node-releases: 2.0.14
+ update-browserslist-db: 1.1.0(browserslist@4.23.1)
+
+ builtin-modules@3.3.0: {}
+
+ call-bind@1.0.7:
+ dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.4
+ set-function-length: 1.2.2
+
+ call-me-maybe@1.0.2: {}
+
+ callsites@3.1.0: {}
+
+ caniuse-lite@1.0.30001640: {}
+
+ chalk-template@1.1.0:
+ dependencies:
+ chalk: 5.3.0
+
+ chalk@2.4.2:
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@5.3.0: {}
+
+ character-entities-legacy@1.1.4: {}
+
+ character-entities@1.2.4: {}
+
+ character-reference-invalid@1.1.4: {}
+
+ ci-info@4.0.0: {}
+
+ clean-regexp@1.0.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
+ clear-module@4.1.2:
+ dependencies:
+ parent-module: 2.0.0
+ resolve-from: 5.0.0
+
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ color-convert@1.9.3:
+ dependencies:
+ color-name: 1.1.3
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.3: {}
+
+ color-name@1.1.4: {}
+
+ commander@12.1.0: {}
+
+ comment-json@4.2.4:
+ dependencies:
+ array-timsort: 1.0.3
+ core-util-is: 1.0.3
+ esprima: 4.0.1
+ has-own-prop: 2.0.0
+ repeat-string: 1.6.1
+
+ comment-parser@1.4.1: {}
+
+ concat-map@0.0.1: {}
+
+ confbox@0.1.7: {}
+
+ core-js-compat@3.37.1:
+ dependencies:
+ browserslist: 4.23.1
+
+ core-util-is@1.0.3: {}
+
+ cross-spawn@6.0.5:
+ dependencies:
+ nice-try: 1.0.5
+ path-key: 2.0.1
+ semver: 5.7.2
+ shebang-command: 1.2.0
+ which: 1.3.1
+
+ cross-spawn@7.0.3:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ cspell-config-lib@8.10.4:
+ dependencies:
+ '@cspell/cspell-types': 8.10.4
+ comment-json: 4.2.4
+ yaml: 2.4.5
+
+ cspell-dictionary@8.10.4:
+ dependencies:
+ '@cspell/cspell-pipe': 8.10.4
+ '@cspell/cspell-types': 8.10.4
+ cspell-trie-lib: 8.10.4
+ fast-equals: 5.0.1
+ gensequence: 7.0.0
+
+ cspell-gitignore@8.10.4:
+ dependencies:
+ '@cspell/url': 8.10.4
+ cspell-glob: 8.10.4
+ cspell-io: 8.10.4
+ find-up-simple: 1.0.0
+
+ cspell-glob@8.10.4:
+ dependencies:
+ '@cspell/url': 8.10.4
+ micromatch: 4.0.7
+
+ cspell-grammar@8.10.4:
+ dependencies:
+ '@cspell/cspell-pipe': 8.10.4
+ '@cspell/cspell-types': 8.10.4
+
+ cspell-io@8.10.4:
+ dependencies:
+ '@cspell/cspell-service-bus': 8.10.4
+ '@cspell/url': 8.10.4
+
+ cspell-lib@8.10.4:
+ dependencies:
+ '@cspell/cspell-bundled-dicts': 8.10.4
+ '@cspell/cspell-pipe': 8.10.4
+ '@cspell/cspell-resolver': 8.10.4
+ '@cspell/cspell-types': 8.10.4
+ '@cspell/dynamic-import': 8.10.4
+ '@cspell/strong-weak-map': 8.10.4
+ '@cspell/url': 8.10.4
+ clear-module: 4.1.2
+ comment-json: 4.2.4
+ cspell-config-lib: 8.10.4
+ cspell-dictionary: 8.10.4
+ cspell-glob: 8.10.4
+ cspell-grammar: 8.10.4
+ cspell-io: 8.10.4
+ cspell-trie-lib: 8.10.4
+ env-paths: 3.0.0
+ fast-equals: 5.0.1
+ gensequence: 7.0.0
+ import-fresh: 3.3.0
+ resolve-from: 5.0.0
+ vscode-languageserver-textdocument: 1.0.11
+ vscode-uri: 3.0.8
+ xdg-basedir: 5.1.0
+
+ cspell-trie-lib@8.10.4:
+ dependencies:
+ '@cspell/cspell-pipe': 8.10.4
+ '@cspell/cspell-types': 8.10.4
+ gensequence: 7.0.0
+
+ cspell@8.10.4:
+ dependencies:
+ '@cspell/cspell-json-reporter': 8.10.4
+ '@cspell/cspell-pipe': 8.10.4
+ '@cspell/cspell-types': 8.10.4
+ '@cspell/dynamic-import': 8.10.4
+ chalk: 5.3.0
+ chalk-template: 1.1.0
+ commander: 12.1.0
+ cspell-gitignore: 8.10.4
+ cspell-glob: 8.10.4
+ cspell-io: 8.10.4
+ cspell-lib: 8.10.4
+ fast-glob: 3.3.2
+ fast-json-stable-stringify: 2.1.0
+ file-entry-cache: 8.0.0
+ get-stdin: 9.0.0
+ semver: 7.6.2
+ strip-ansi: 7.1.0
+ vscode-uri: 3.0.8
+
+ cssesc@3.0.0: {}
+
+ data-view-buffer@1.0.1:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-data-view: 1.0.1
+
+ data-view-byte-length@1.0.1:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-data-view: 1.0.1
+
+ data-view-byte-offset@1.0.0:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-data-view: 1.0.1
+
+ debug@3.2.7:
+ dependencies:
+ ms: 2.1.3
+
+ debug@4.3.5:
+ dependencies:
+ ms: 2.1.2
+
+ deep-is@0.1.4: {}
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ gopd: 1.0.1
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ dir-glob@3.0.1:
+ dependencies:
+ path-type: 4.0.0
+
+ doctrine@3.0.0:
+ dependencies:
+ esutils: 2.0.3
+
+ electron-to-chromium@1.4.818: {}
+
+ emoji-regex@8.0.0: {}
+
+ enhanced-resolve@5.17.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.1
+
+ entities@4.5.0: {}
+
+ env-paths@3.0.0: {}
+
+ error-ex@1.3.2:
+ dependencies:
+ is-arrayish: 0.2.1
+
+ es-abstract@1.23.3:
+ dependencies:
+ array-buffer-byte-length: 1.0.1
+ arraybuffer.prototype.slice: 1.0.3
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.7
+ data-view-buffer: 1.0.1
+ data-view-byte-length: 1.0.1
+ data-view-byte-offset: 1.0.0
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ es-object-atoms: 1.0.0
+ es-set-tostringtag: 2.0.3
+ es-to-primitive: 1.2.1
+ function.prototype.name: 1.1.6
+ get-intrinsic: 1.2.4
+ get-symbol-description: 1.0.2
+ globalthis: 1.0.4
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.2
+ has-proto: 1.0.3
+ has-symbols: 1.0.3
+ hasown: 2.0.2
+ internal-slot: 1.0.7
+ is-array-buffer: 3.0.4
+ is-callable: 1.2.7
+ is-data-view: 1.0.1
+ is-negative-zero: 2.0.3
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.3
+ is-string: 1.0.7
+ is-typed-array: 1.1.13
+ is-weakref: 1.0.2
+ object-inspect: 1.13.2
+ object-keys: 1.1.1
+ object.assign: 4.1.5
+ regexp.prototype.flags: 1.5.2
+ safe-array-concat: 1.1.2
+ safe-regex-test: 1.0.3
+ string.prototype.trim: 1.2.9
+ string.prototype.trimend: 1.0.8
+ string.prototype.trimstart: 1.0.8
+ typed-array-buffer: 1.0.2
+ typed-array-byte-length: 1.0.1
+ typed-array-byte-offset: 1.0.2
+ typed-array-length: 1.0.6
+ unbox-primitive: 1.0.2
+ which-typed-array: 1.1.15
+
+ es-define-property@1.0.0:
+ dependencies:
+ get-intrinsic: 1.2.4
+
+ es-errors@1.3.0: {}
+
+ es-module-lexer@1.5.4: {}
+
+ es-object-atoms@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.0.3:
+ dependencies:
+ get-intrinsic: 1.2.4
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ es-to-primitive@1.2.1:
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.0.5
+ is-symbol: 1.0.4
+
+ escalade@3.1.2: {}
+
+ escape-string-regexp@1.0.5: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eslint-compat-utils@0.5.1(eslint@9.6.0):
+ dependencies:
+ eslint: 9.6.0
+ semver: 7.6.2
+
+ eslint-config-flat-gitignore@0.1.5:
+ dependencies:
+ find-up: 7.0.0
+ parse-gitignore: 2.0.0
+
+ eslint-flat-config-utils@0.2.5:
+ dependencies:
+ '@types/eslint': 8.56.10
+ pathe: 1.1.2
+
+ eslint-formatting-reporter@0.0.0(eslint@9.6.0):
+ dependencies:
+ eslint: 9.6.0
+ prettier-linter-helpers: 1.0.0
+
+ eslint-import-resolver-node@0.3.9:
+ dependencies:
+ debug: 3.2.7
+ is-core-module: 2.14.0
+ resolve: 1.22.8
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-merge-processors@0.1.0(eslint@9.6.0):
+ dependencies:
+ eslint: 9.6.0
+
+ eslint-parser-plain@0.1.0: {}
+
+ eslint-plugin-antfu@2.3.4(eslint@9.6.0):
+ dependencies:
+ '@antfu/utils': 0.7.10
+ eslint: 9.6.0
+
+ eslint-plugin-command@0.2.3(eslint@9.6.0):
+ dependencies:
+ '@es-joy/jsdoccomment': 0.43.1
+ eslint: 9.6.0
+
+ eslint-plugin-es-x@7.8.0(eslint@9.6.0):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ '@eslint-community/regexpp': 4.11.0
+ eslint: 9.6.0
+ eslint-compat-utils: 0.5.1(eslint@9.6.0)
+
+ eslint-plugin-eslint-comments@3.2.0(eslint@9.6.0):
+ dependencies:
+ escape-string-regexp: 1.0.5
+ eslint: 9.6.0
+ ignore: 5.3.1
+
+ eslint-plugin-format@0.1.2(eslint@9.6.0):
+ dependencies:
+ '@dprint/formatter': 0.3.0
+ '@dprint/markdown': 0.17.1
+ '@dprint/toml': 0.6.2
+ eslint: 9.6.0
+ eslint-formatting-reporter: 0.0.0(eslint@9.6.0)
+ eslint-parser-plain: 0.1.0
+ prettier: 3.3.2
+ synckit: 0.9.0
+
+ eslint-plugin-import-x@0.5.3(eslint@9.6.0)(typescript@5.5.3):
+ dependencies:
+ '@typescript-eslint/utils': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ debug: 4.3.5
+ doctrine: 3.0.0
+ eslint: 9.6.0
+ eslint-import-resolver-node: 0.3.9
+ get-tsconfig: 4.7.5
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.6.2
+ stable-hash: 0.0.4
+ tslib: 2.6.3
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ eslint-plugin-jsdoc@48.5.2(eslint@9.6.0):
+ dependencies:
+ '@es-joy/jsdoccomment': 0.43.1
+ are-docs-informative: 0.0.2
+ comment-parser: 1.4.1
+ debug: 4.3.5
+ escape-string-regexp: 4.0.0
+ eslint: 9.6.0
+ esquery: 1.5.0
+ parse-imports: 2.1.1
+ semver: 7.6.2
+ spdx-expression-parse: 4.0.0
+ synckit: 0.9.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-jsonc@2.16.0(eslint@9.6.0):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ eslint: 9.6.0
+ eslint-compat-utils: 0.5.1(eslint@9.6.0)
+ espree: 9.6.1
+ graphemer: 1.4.0
+ jsonc-eslint-parser: 2.4.0
+ natural-compare: 1.4.0
+ synckit: 0.6.2
+
+ eslint-plugin-markdown@5.0.0(eslint@9.6.0):
+ dependencies:
+ eslint: 9.6.0
+ mdast-util-from-markdown: 0.8.5
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-n@17.9.0(eslint@9.6.0):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ enhanced-resolve: 5.17.0
+ eslint: 9.6.0
+ eslint-plugin-es-x: 7.8.0(eslint@9.6.0)
+ get-tsconfig: 4.7.5
+ globals: 15.8.0
+ ignore: 5.3.1
+ minimatch: 9.0.5
+ semver: 7.6.2
+
+ eslint-plugin-no-only-tests@3.1.0: {}
+
+ eslint-plugin-perfectionist@2.11.0(eslint@9.6.0)(typescript@5.5.3)(vue-eslint-parser@9.4.3(eslint@9.6.0)):
+ dependencies:
+ '@typescript-eslint/utils': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ eslint: 9.6.0
+ minimatch: 9.0.5
+ natural-compare-lite: 1.4.0
+ optionalDependencies:
+ vue-eslint-parser: 9.4.3(eslint@9.6.0)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ eslint-plugin-regexp@2.6.0(eslint@9.6.0):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ '@eslint-community/regexpp': 4.11.0
+ comment-parser: 1.4.1
+ eslint: 9.6.0
+ jsdoc-type-pratt-parser: 4.0.0
+ refa: 0.12.1
+ regexp-ast-analysis: 0.7.1
+ scslre: 0.3.0
+
+ eslint-plugin-toml@0.11.1(eslint@9.6.0):
+ dependencies:
+ debug: 4.3.5
+ eslint: 9.6.0
+ eslint-compat-utils: 0.5.1(eslint@9.6.0)
+ lodash: 4.17.21
+ toml-eslint-parser: 0.10.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-unicorn@54.0.0(eslint@9.6.0):
+ dependencies:
+ '@babel/helper-validator-identifier': 7.24.7
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ '@eslint/eslintrc': 3.1.0
+ ci-info: 4.0.0
+ clean-regexp: 1.0.0
+ core-js-compat: 3.37.1
+ eslint: 9.6.0
+ esquery: 1.5.0
+ indent-string: 4.0.0
+ is-builtin-module: 3.2.1
+ jsesc: 3.0.2
+ pluralize: 8.0.0
+ read-pkg-up: 7.0.1
+ regexp-tree: 0.1.27
+ regjsparser: 0.10.0
+ semver: 7.6.2
+ strip-indent: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-unused-imports@4.0.0(@typescript-eslint/eslint-plugin@8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0):
+ dependencies:
+ eslint: 9.6.0
+ eslint-rule-composer: 0.3.0
+ optionalDependencies:
+ '@typescript-eslint/eslint-plugin': 8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
+
+ eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3):
+ dependencies:
+ '@typescript-eslint/utils': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ eslint: 9.6.0
+ optionalDependencies:
+ '@typescript-eslint/eslint-plugin': 8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ eslint-plugin-vue@9.27.0(eslint@9.6.0):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ eslint: 9.6.0
+ globals: 13.24.0
+ natural-compare: 1.4.0
+ nth-check: 2.1.1
+ postcss-selector-parser: 6.1.0
+ semver: 7.6.2
+ vue-eslint-parser: 9.4.3(eslint@9.6.0)
+ xml-name-validator: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-yml@1.14.0(eslint@9.6.0):
+ dependencies:
+ debug: 4.3.5
+ eslint: 9.6.0
+ eslint-compat-utils: 0.5.1(eslint@9.6.0)
+ lodash: 4.17.21
+ natural-compare: 1.4.0
+ yaml-eslint-parser: 1.2.3
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.31)(eslint@9.6.0):
+ dependencies:
+ '@vue/compiler-sfc': 3.4.31
+ eslint: 9.6.0
+
+ eslint-rule-composer@0.3.0: {}
+
+ eslint-scope@7.2.2:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-scope@8.0.1:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.0.0: {}
+
+ eslint@9.6.0:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ '@eslint-community/regexpp': 4.11.0
+ '@eslint/config-array': 0.17.0
+ '@eslint/eslintrc': 3.1.0
+ '@eslint/js': 9.6.0
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.3.0
+ '@nodelib/fs.walk': 1.2.8
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.5
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.0.1
+ eslint-visitor-keys: 4.0.0
+ espree: 10.1.0
+ esquery: 1.5.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.1
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.1.0:
+ dependencies:
+ acorn: 8.12.1
+ acorn-jsx: 5.3.2(acorn@8.12.1)
+ eslint-visitor-keys: 4.0.0
+
+ espree@9.6.1:
+ dependencies:
+ acorn: 8.12.1
+ acorn-jsx: 5.3.2(acorn@8.12.1)
+ eslint-visitor-keys: 3.4.3
+
+ esprima@4.0.1: {}
+
+ esquery@1.5.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@5.3.0: {}
+
+ estree-walker@2.0.2: {}
+
+ esutils@2.0.3: {}
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-diff@1.3.0: {}
+
+ fast-equals@5.0.1: {}
+
+ fast-glob@3.3.2:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.7
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fastq@1.17.1:
+ dependencies:
+ reusify: 1.0.4
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ find-up-simple@1.0.0: {}
+
+ find-up@4.1.0:
+ dependencies:
+ locate-path: 5.0.0
+ path-exists: 4.0.0
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ find-up@7.0.0:
+ dependencies:
+ locate-path: 7.2.0
+ path-exists: 5.0.0
+ unicorn-magic: 0.1.0
+
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.1
+ keyv: 4.5.4
+
+ flatted@3.3.1: {}
+
+ for-each@0.3.3:
+ dependencies:
+ is-callable: 1.2.7
+
+ function-bind@1.1.2: {}
+
+ function.prototype.name@1.1.6:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ functions-have-names: 1.2.3
+
+ functions-have-names@1.2.3: {}
+
+ gensequence@7.0.0: {}
+
+ get-caller-file@2.0.5: {}
+
+ get-intrinsic@1.2.4:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ has-proto: 1.0.3
+ has-symbols: 1.0.3
+ hasown: 2.0.2
+
+ get-stdin@9.0.0: {}
+
+ get-symbol-description@1.0.2:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
+
+ get-tsconfig@4.7.5:
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ global-directory@4.0.1:
+ dependencies:
+ ini: 4.1.1
+
+ globals@13.24.0:
+ dependencies:
+ type-fest: 0.20.2
+
+ globals@14.0.0: {}
+
+ globals@15.8.0: {}
+
+ globalthis@1.0.4:
+ dependencies:
+ define-properties: 1.2.1
+ gopd: 1.0.1
+
+ globby@11.1.0:
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.2
+ ignore: 5.3.1
+ merge2: 1.4.1
+ slash: 3.0.0
+
+ gopd@1.0.1:
+ dependencies:
+ get-intrinsic: 1.2.4
+
+ graceful-fs@4.2.11: {}
+
+ graphemer@1.4.0: {}
+
+ has-bigints@1.0.2: {}
+
+ has-flag@3.0.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-own-prop@2.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.0
+
+ has-proto@1.0.3: {}
+
+ has-symbols@1.0.3: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.0.3
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ hosted-git-info@2.8.9: {}
+
+ husky@9.0.11: {}
+
+ ignore@5.3.1: {}
+
+ import-fresh@3.3.0:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ import-meta-resolve@4.1.0: {}
+
+ imurmurhash@0.1.4: {}
+
+ indent-string@4.0.0: {}
+
+ ini@4.1.1: {}
+
+ internal-slot@1.0.7:
+ dependencies:
+ es-errors: 1.3.0
+ hasown: 2.0.2
+ side-channel: 1.0.6
+
+ is-alphabetical@1.0.4: {}
+
+ is-alphanumerical@1.0.4:
+ dependencies:
+ is-alphabetical: 1.0.4
+ is-decimal: 1.0.4
+
+ is-array-buffer@3.0.4:
+ dependencies:
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
+
+ is-arrayish@0.2.1: {}
+
+ is-bigint@1.0.4:
+ dependencies:
+ has-bigints: 1.0.2
+
+ is-boolean-object@1.1.2:
+ dependencies:
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
+
+ is-builtin-module@3.2.1:
+ dependencies:
+ builtin-modules: 3.3.0
+
+ is-callable@1.2.7: {}
+
+ is-core-module@2.14.0:
+ dependencies:
+ hasown: 2.0.2
+
+ is-data-view@1.0.1:
+ dependencies:
+ is-typed-array: 1.1.13
+
+ is-date-object@1.0.5:
+ dependencies:
+ has-tostringtag: 1.0.2
+
+ is-decimal@1.0.4: {}
+
+ is-extglob@2.1.1: {}
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-hexadecimal@1.0.4: {}
+
+ is-negative-zero@2.0.3: {}
+
+ is-number-object@1.0.7:
+ dependencies:
+ has-tostringtag: 1.0.2
+
+ is-number@7.0.0: {}
+
+ is-path-inside@3.0.3: {}
+
+ is-regex@1.1.4:
+ dependencies:
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
+
+ is-shared-array-buffer@1.0.3:
+ dependencies:
+ call-bind: 1.0.7
+
+ is-string@1.0.7:
+ dependencies:
+ has-tostringtag: 1.0.2
+
+ is-symbol@1.0.4:
+ dependencies:
+ has-symbols: 1.0.3
+
+ is-typed-array@1.1.13:
+ dependencies:
+ which-typed-array: 1.1.15
+
+ is-weakref@1.0.2:
+ dependencies:
+ call-bind: 1.0.7
+
+ isarray@2.0.5: {}
+
+ isexe@2.0.0: {}
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsdoc-type-pratt-parser@4.0.0: {}
+
+ jsesc@0.5.0: {}
+
+ jsesc@3.0.2: {}
+
+ json-buffer@3.0.1: {}
+
+ json-parse-better-errors@1.0.2: {}
+
+ json-parse-even-better-errors@2.3.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ jsonc-eslint-parser@2.4.0:
+ dependencies:
+ acorn: 8.12.1
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ semver: 7.6.2
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ lines-and-columns@1.2.4: {}
+
+ linkify-it@5.0.0:
+ dependencies:
+ uc.micro: 2.1.0
+
+ load-json-file@4.0.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ parse-json: 4.0.0
+ pify: 3.0.0
+ strip-bom: 3.0.0
+
+ local-pkg@0.5.0:
+ dependencies:
+ mlly: 1.7.1
+ pkg-types: 1.1.3
+
+ locate-path@5.0.0:
+ dependencies:
+ p-locate: 4.1.0
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ locate-path@7.2.0:
+ dependencies:
+ p-locate: 6.0.0
+
+ lodash.merge@4.6.2: {}
+
+ lodash@4.17.21: {}
+
+ lunr@2.3.9: {}
+
+ magic-string@0.30.10:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.15
+
+ markdown-it@14.1.0:
+ dependencies:
+ argparse: 2.0.1
+ entities: 4.5.0
+ linkify-it: 5.0.0
+ mdurl: 2.0.0
+ punycode.js: 2.3.1
+ uc.micro: 2.1.0
+
+ mdast-util-from-markdown@0.8.5:
+ dependencies:
+ '@types/mdast': 3.0.15
+ mdast-util-to-string: 2.0.0
+ micromark: 2.11.4
+ parse-entities: 2.0.0
+ unist-util-stringify-position: 2.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-to-string@2.0.0: {}
+
+ mdurl@2.0.0: {}
+
+ memorystream@0.3.1: {}
+
+ merge2@1.4.1: {}
+
+ micromark@2.11.4:
+ dependencies:
+ debug: 4.3.5
+ parse-entities: 2.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ micromatch@4.0.7:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.1
+
+ min-indent@1.0.1: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ mlly@1.7.1:
+ dependencies:
+ acorn: 8.12.1
+ pathe: 1.1.2
+ pkg-types: 1.1.3
+ ufo: 1.5.3
+
+ ms@2.1.2: {}
+
+ ms@2.1.3: {}
+
+ nanoid@3.3.7: {}
+
+ natural-compare-lite@1.4.0: {}
+
+ natural-compare@1.4.0: {}
+
+ nice-try@1.0.5: {}
+
+ node-releases@2.0.14: {}
+
+ normalize-package-data@2.5.0:
+ dependencies:
+ hosted-git-info: 2.8.9
+ resolve: 1.22.8
+ semver: 5.7.2
+ validate-npm-package-license: 3.0.4
+
+ npm-run-all@4.1.5:
+ dependencies:
+ ansi-styles: 3.2.1
+ chalk: 2.4.2
+ cross-spawn: 6.0.5
+ memorystream: 0.3.1
+ minimatch: 3.1.2
+ pidtree: 0.3.1
+ read-pkg: 3.0.0
+ shell-quote: 1.8.1
+ string.prototype.padend: 3.1.6
+
+ nth-check@2.1.1:
+ dependencies:
+ boolbase: 1.0.0
+
+ object-inspect@1.13.2: {}
+
+ object-keys@1.1.1: {}
+
+ object.assign@4.1.5:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ has-symbols: 1.0.3
+ object-keys: 1.1.1
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ p-limit@2.3.0:
+ dependencies:
+ p-try: 2.2.0
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-limit@4.0.0:
+ dependencies:
+ yocto-queue: 1.1.1
+
+ p-locate@4.1.0:
+ dependencies:
+ p-limit: 2.3.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ p-locate@6.0.0:
+ dependencies:
+ p-limit: 4.0.0
+
+ p-try@2.2.0: {}
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parent-module@2.0.0:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-entities@2.0.0:
+ dependencies:
+ character-entities: 1.2.4
+ character-entities-legacy: 1.1.4
+ character-reference-invalid: 1.1.4
+ is-alphanumerical: 1.0.4
+ is-decimal: 1.0.4
+ is-hexadecimal: 1.0.4
+
+ parse-gitignore@2.0.0: {}
+
+ parse-imports@2.1.1:
+ dependencies:
+ es-module-lexer: 1.5.4
+ slashes: 3.0.12
+
+ parse-json@4.0.0:
+ dependencies:
+ error-ex: 1.3.2
+ json-parse-better-errors: 1.0.2
+
+ parse-json@5.2.0:
+ dependencies:
+ '@babel/code-frame': 7.24.7
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ path-exists@4.0.0: {}
+
+ path-exists@5.0.0: {}
+
+ path-key@2.0.1: {}
+
+ path-key@3.1.1: {}
+
+ path-parse@1.0.7: {}
+
+ path-type@3.0.0:
+ dependencies:
+ pify: 3.0.0
+
+ path-type@4.0.0: {}
+
+ pathe@1.1.2: {}
+
+ picocolors@1.0.1: {}
+
+ picomatch@2.3.1: {}
+
+ picomatch@4.0.2: {}
+
+ pidtree@0.3.1: {}
+
+ pify@3.0.0: {}
+
+ pkg-types@1.1.3:
+ dependencies:
+ confbox: 0.1.7
+ mlly: 1.7.1
+ pathe: 1.1.2
+
+ pluralize@8.0.0: {}
+
+ possible-typed-array-names@1.0.0: {}
+
+ postcss-selector-parser@6.1.0:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss@8.4.39:
+ dependencies:
+ nanoid: 3.3.7
+ picocolors: 1.0.1
+ source-map-js: 1.2.0
+
+ prelude-ls@1.2.1: {}
+
+ prettier-linter-helpers@1.0.0:
+ dependencies:
+ fast-diff: 1.3.0
+
+ prettier@3.3.2: {}
+
+ punycode.js@2.3.1: {}
+
+ punycode@2.3.1: {}
+
+ queue-microtask@1.2.3: {}
+
+ read-pkg-up@7.0.1:
+ dependencies:
+ find-up: 4.1.0
+ read-pkg: 5.2.0
+ type-fest: 0.8.1
+
+ read-pkg@3.0.0:
+ dependencies:
+ load-json-file: 4.0.0
+ normalize-package-data: 2.5.0
+ path-type: 3.0.0
+
+ read-pkg@5.2.0:
+ dependencies:
+ '@types/normalize-package-data': 2.4.4
+ normalize-package-data: 2.5.0
+ parse-json: 5.2.0
+ type-fest: 0.6.0
+
+ refa@0.12.1:
+ dependencies:
+ '@eslint-community/regexpp': 4.11.0
+
+ regexp-ast-analysis@0.7.1:
+ dependencies:
+ '@eslint-community/regexpp': 4.11.0
+ refa: 0.12.1
+
+ regexp-tree@0.1.27: {}
+
+ regexp.prototype.flags@1.5.2:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-errors: 1.3.0
+ set-function-name: 2.0.2
+
+ regjsparser@0.10.0:
+ dependencies:
+ jsesc: 0.5.0
+
+ repeat-string@1.6.1: {}
+
+ require-directory@2.1.1: {}
+
+ resolve-from@4.0.0: {}
+
+ resolve-from@5.0.0: {}
+
+ resolve-pkg-maps@1.0.0: {}
+
+ resolve@1.22.8:
+ dependencies:
+ is-core-module: 2.14.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ reusify@1.0.4: {}
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ safe-array-concat@1.1.2:
+ dependencies:
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
+ has-symbols: 1.0.3
+ isarray: 2.0.5
+
+ safe-regex-test@1.0.3:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-regex: 1.1.4
+
+ scslre@0.3.0:
+ dependencies:
+ '@eslint-community/regexpp': 4.11.0
+ refa: 0.12.1
+ regexp-ast-analysis: 0.7.1
+
+ semver@5.7.2: {}
+
+ semver@7.6.2: {}
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.4
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.2
+
+ set-function-name@2.0.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
+
+ shebang-command@1.2.0:
+ dependencies:
+ shebang-regex: 1.0.0
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@1.0.0: {}
+
+ shebang-regex@3.0.0: {}
+
+ shell-quote@1.8.1: {}
+
+ shiki@1.10.1:
+ dependencies:
+ '@shikijs/core': 1.10.1
+
+ side-channel@1.0.6:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
+ object-inspect: 1.13.2
+
+ sisteransi@1.0.5: {}
+
+ slash@3.0.0: {}
+
+ slashes@3.0.12: {}
+
+ source-map-js@1.2.0: {}
+
+ spdx-correct@3.2.0:
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.18
+
+ spdx-exceptions@2.5.0: {}
+
+ spdx-expression-parse@3.0.1:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.18
+
+ spdx-expression-parse@4.0.0:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.18
+
+ spdx-license-ids@3.0.18: {}
+
+ stable-hash@0.0.4: {}
+
+ string-argv@0.3.2: {}
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ string.prototype.padend@3.1.6:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-object-atoms: 1.0.0
+
+ string.prototype.trim@1.2.9:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-object-atoms: 1.0.0
+
+ string.prototype.trimend@1.0.8:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ string.prototype.trimstart@1.0.8:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-ansi@7.1.0:
+ dependencies:
+ ansi-regex: 6.0.1
+
+ strip-bom@3.0.0: {}
+
+ strip-indent@3.0.0:
+ dependencies:
+ min-indent: 1.0.1
+
+ strip-json-comments@3.1.1: {}
+
+ supports-color@5.5.0:
+ dependencies:
+ has-flag: 3.0.0
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ synckit@0.6.2:
+ dependencies:
+ tslib: 2.6.3
+
+ synckit@0.9.0:
+ dependencies:
+ '@pkgr/core': 0.1.1
+ tslib: 2.6.3
+
+ tapable@2.2.1: {}
+
+ text-table@0.2.0: {}
+
+ to-fast-properties@2.0.0: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ toml-eslint-parser@0.10.0:
+ dependencies:
+ eslint-visitor-keys: 3.4.3
+
+ ts-api-utils@1.3.0(typescript@5.5.3):
+ dependencies:
+ typescript: 5.5.3
+
+ tslib@2.6.3: {}
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-detect@4.0.8: {}
+
+ type-fest@0.20.2: {}
+
+ type-fest@0.6.0: {}
+
+ type-fest@0.8.1: {}
+
+ typed-array-buffer@1.0.2:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-typed-array: 1.1.13
+
+ typed-array-byte-length@1.0.1:
+ dependencies:
+ call-bind: 1.0.7
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-proto: 1.0.3
+ is-typed-array: 1.1.13
+
+ typed-array-byte-offset@1.0.2:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.7
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-proto: 1.0.3
+ is-typed-array: 1.1.13
+
+ typed-array-length@1.0.6:
+ dependencies:
+ call-bind: 1.0.7
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-proto: 1.0.3
+ is-typed-array: 1.1.13
+ possible-typed-array-names: 1.0.0
+
+ typedoc-plugin-markdown@4.1.2(typedoc@0.26.3(typescript@5.5.3)):
+ dependencies:
+ typedoc: 0.26.3(typescript@5.5.3)
+
+ typedoc@0.26.3(typescript@5.5.3):
+ dependencies:
+ lunr: 2.3.9
+ markdown-it: 14.1.0
+ minimatch: 9.0.5
+ shiki: 1.10.1
+ typescript: 5.5.3
+ yaml: 2.4.5
+
+ typescript@5.5.3: {}
+
+ uc.micro@2.1.0: {}
+
+ ufo@1.5.3: {}
+
+ unbox-primitive@1.0.2:
+ dependencies:
+ call-bind: 1.0.7
+ has-bigints: 1.0.2
+ has-symbols: 1.0.3
+ which-boxed-primitive: 1.0.2
+
+ unicorn-magic@0.1.0: {}
+
+ unist-util-stringify-position@2.0.3:
+ dependencies:
+ '@types/unist': 2.0.10
+
+ update-browserslist-db@1.1.0(browserslist@4.23.1):
+ dependencies:
+ browserslist: 4.23.1
+ escalade: 3.1.2
+ picocolors: 1.0.1
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ util-deprecate@1.0.2: {}
+
+ validate-npm-package-license@3.0.4:
+ dependencies:
+ spdx-correct: 3.2.0
+ spdx-expression-parse: 3.0.1
+
+ vscode-languageserver-textdocument@1.0.11: {}
+
+ vscode-uri@3.0.8: {}
+
+ vue-eslint-parser@9.4.3(eslint@9.6.0):
+ dependencies:
+ debug: 4.3.5
+ eslint: 9.6.0
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ esquery: 1.5.0
+ lodash: 4.17.21
+ semver: 7.6.2
+ transitivePeerDependencies:
+ - supports-color
+
+ which-boxed-primitive@1.0.2:
+ dependencies:
+ is-bigint: 1.0.4
+ is-boolean-object: 1.1.2
+ is-number-object: 1.0.7
+ is-string: 1.0.7
+ is-symbol: 1.0.4
+
+ which-typed-array@1.1.15:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.7
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.2
+
+ which@1.3.1:
+ dependencies:
+ isexe: 2.0.0
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ word-wrap@1.2.5: {}
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ xdg-basedir@5.1.0: {}
+
+ xml-name-validator@4.0.0: {}
+
+ y18n@5.0.8: {}
+
+ yaml-eslint-parser@1.2.3:
+ dependencies:
+ eslint-visitor-keys: 3.4.3
+ lodash: 4.17.21
+ yaml: 2.4.5
+
+ yaml@2.4.5: {}
+
+ yargs-parser@21.1.1: {}
+
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.1.2
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
+ yocto-queue@0.1.0: {}
+
+ yocto-queue@1.1.1: {}
diff --git a/siyuan.d.ts b/siyuan.d.ts
index 1647e4a..18b201b 100644
--- a/siyuan.d.ts
+++ b/siyuan.d.ts
@@ -1,69 +1,106 @@
-export * from "./types";
+import type { Config } from "./types/config";
+import type { IMenuBaseDetail } from "./types/events";
+import type {
+ IProtyle,
+ IProtyleOption,
+ Lute,
+ Protyle,
+ Toolbar,
+ TProtyleAction,
+} from "./types/protyle";
+import type {
+ IGetDocInfo,
+ IGetTreeStat,
+} from "./types/response";
-import {IProtyle, Lute, Protyle, Toolbar, IProtyleOption, TProtyleAction} from "./types/protyle";
-import {Config} from "./types/config";
-import {IMenuBaseDetail} from "./types/events";
-import {IGetDocInfo, IGetTreeStat} from "./types/response";
+export * from "./types";
declare global {
- export interface Window extends Global {
+ export interface Window extends Window, Global {
}
}
-export type TEventBus = keyof IEventBusMap
+export type TEventBus = keyof IEventBusMap;
-export type TTurnIntoOne = "BlocksMergeSuperBlock" | "Blocks2ULs" | "Blocks2OLs" | "Blocks2TLs" | "Blocks2Blockquote"
+export type TTurnIntoOne =
+ | "Blocks2Blockquote"
+ | "Blocks2OLs"
+ | "Blocks2TLs"
+ | "Blocks2ULs"
+ | "BlocksMergeSuperBlock";
-export type TTurnIntoOneSub = "row" | "col"
+export type TTurnIntoOneSub =
+ | "col"
+ | "row";
-export type TTurnInto = "Blocks2Ps" | "Blocks2Hs"
+export type TTurnInto =
+ | "Blocks2Hs"
+ | "Blocks2Ps";
-export type TCardType = "doc" | "notebook" | "all"
+export type TCardType =
+ | "all"
+ | "doc"
+ | "notebook";
export type TOperation =
- "insert"
- | "update"
+ | "addAttrViewCol"
+ | "addFlashcards"
+ | "append"
| "delete"
- | "move"
| "foldHeading"
- | "unfoldHeading"
- | "setAttrs"
- | "updateAttrs"
- | "append"
+ | "insert"
| "insertAttrViewBlock"
+ | "move"
| "removeAttrViewBlock"
- | "addAttrViewCol"
| "removeAttrViewCol"
- | "addFlashcards"
+ | "removeAttrViewColOption"
| "removeFlashcards"
- | "updateAttrViewCell"
- | "updateAttrViewCol"
- | "sortAttrViewRow"
- | "sortAttrViewCol"
+ | "setAttrs"
+ | "setAttrViewColCalc"
| "setAttrViewColHidden"
- | "setAttrViewColWrap"
| "setAttrViewColWidth"
- | "updateAttrViewColOptions"
- | "removeAttrViewColOption"
- | "updateAttrViewColOption"
- | "setAttrViewName"
+ | "setAttrViewColWrap"
| "setAttrViewFilters"
+ | "setAttrViewName"
| "setAttrViewSorts"
- | "setAttrViewColCalc"
+ | "sortAttrViewCol"
+ | "sortAttrViewRow"
+ | "unfoldHeading"
+ | "update"
+ | "updateAttrs"
+ | "updateAttrViewCell"
+ | "updateAttrViewCol"
| "updateAttrViewColNumberFormat"
+ | "updateAttrViewColOption"
+ | "updateAttrViewColOptions";
export type TAVCol =
- "text"
+ | "block"
| "date"
+ | "email"
+ | "mSelect"
| "number"
+ | "phone"
| "relation"
| "rollup"
| "select"
- | "block"
- | "mSelect"
- | "url"
- | "email"
- | "phone"
+ | "text"
+ | "url";
+
+export type TFrontendEnv =
+ | "browser-desktop"
+ | "browser-mobile"
+ | "desktop-window"
+ | "desktop"
+ | "mobile";
+
+export type TBackendEnv =
+ | "android"
+ | "darwin"
+ | "docker"
+ | "ios"
+ | "linux"
+ | "windows"; ;
export interface ISiyuan {
config: Config.IConf;
@@ -74,85 +111,85 @@ export interface Global {
siyuan: ISiyuan;
}
-interface IKeymapItem {
- default: string,
- custom: string
+export interface IKeymapItem {
+ default: string;
+ custom: string;
}
export interface IKeymap {
plugin: {
[key: string]: {
- [key: string]: IKeymapItem
- }
- }
+ [key: string]: IKeymapItem;
+ };
+ };
general: {
- [key: string]: IKeymapItem
- }
+ [key: string]: IKeymapItem;
+ };
editor: {
general: {
- [key: string]: IKeymapItem
- }
+ [key: string]: IKeymapItem;
+ };
insert: {
- [key: string]: IKeymapItem
- }
+ [key: string]: IKeymapItem;
+ };
heading: {
- [key: string]: IKeymapItem
- }
+ [key: string]: IKeymapItem;
+ };
list: {
- [key: string]: IKeymapItem
- }
+ [key: string]: IKeymapItem;
+ };
table: {
- [key: string]: IKeymapItem
- }
- }
+ [key: string]: IKeymapItem;
+ };
+ };
}
export interface IEventBusMap {
"click-flashcard-action": {
- card: ICard,
- type: string, // 1 - 重来;2 - 困难;3 - 良好;4 - 简单;-1 - 显示答案;-2 - 上一个 ;-3 - 跳过
+ card: ICard;
+ type: string; // 1 - 重来;2 - 困难;3 - 良好;4 - 简单;-1 - 显示答案;-2 - 上一个 ;-3 - 跳过
};
"click-blockicon": {
- menu: EventMenu,
- protyle: IProtyle,
- blockElements: HTMLElement[],
+ menu: EventMenu;
+ protyle: IProtyle;
+ blockElements: HTMLElement[];
};
"click-editorcontent": {
- protyle: IProtyle,
- event: MouseEvent,
+ protyle: IProtyle;
+ event: MouseEvent;
};
"click-editortitleicon": {
- menu: EventMenu,
- protyle: IProtyle,
- data: IGetDocInfo,
+ menu: EventMenu;
+ protyle: IProtyle;
+ data: IGetDocInfo;
};
"click-pdf": {
- event: MouseEvent,
+ event: MouseEvent;
};
"destroy-protyle": {
- protyle: IProtyle,
+ protyle: IProtyle;
};
"input-search": {
- protyle: Protyle,
- config: ISearchOption,
- searchElement: HTMLInputElement,
+ protyle: Protyle;
+ config: ISearchOption;
+ searchElement: HTMLInputElement;
};
"loaded-protyle-dynamic": {
- protyle: IProtyle,
- position: "afterend" | "beforebegin",
+ protyle: IProtyle;
+ position: "afterend" | "beforebegin";
};
"loaded-protyle-static": {
- protyle: IProtyle,
+ protyle: IProtyle;
};
"switch-protyle": {
- protyle: IProtyle,
+ protyle: IProtyle;
};
"open-menu-av": IMenuBaseDetail & { selectRowElements: HTMLElement[] };
"open-menu-blockref": IMenuBaseDetail;
"open-menu-breadcrumbmore": {
- menu: EventMenu,
- protyle: IProtyle,
- data: IGetTreeStat,
+ menu: EventMenu;
+ protyle: IProtyle;
+ data: IGetTreeStat;
};
"open-menu-content": IMenuBaseDetail & { range: Range };
"open-menu-fileannotationref": IMenuBaseDetail;
@@ -160,36 +197,36 @@ export interface IEventBusMap {
"open-menu-link": IMenuBaseDetail;
"open-menu-tag": IMenuBaseDetail;
"open-menu-doctree": {
- menu: EventMenu,
- elements: NodeListOf,
- type: "doc" | "docs" | "notebook",
+ menu: EventMenu;
+ elements: NodeListOf;
+ type: "doc" | "docs" | "notebook";
};
"open-menu-inbox": {
- menu: EventMenu,
- element: HTMLElement,
- ids: string[],
+ menu: EventMenu;
+ element: HTMLElement;
+ ids: string[];
};
"open-noneditableblock": {
- protyle: IProtyle,
- toolbar: Toolbar,
+ protyle: IProtyle;
+ toolbar: Toolbar;
};
"open-siyuan-url-block": {
- url: string,
- id: string,
- focus: boolean,
- exist: boolean,
+ url: string;
+ id: string;
+ focus: boolean;
+ exist: boolean;
};
"open-siyuan-url-plugin": {
- url: string,
+ url: string;
};
"paste": {
- protyle: IProtyle,
- resolve: new (value: T | PromiseLike) => void,
- textHTML: string,
- textPlain: string,
- siyuanHTML: string,
- files: FileList | DataTransferItemList;
- }
+ protyle: IProtyle;
+ resolve: new(value: PromiseLike | T) => void;
+ textHTML: string;
+ textPlain: string;
+ siyuanHTML: string;
+ files: DataTransferItemList | FileList;
+ };
"ws-main": IWebSocketData;
"sync-start": IWebSocketData;
"sync-end": IWebSocketData;
@@ -226,9 +263,9 @@ export interface IModel {
ws: WebSocket;
app: App;
reqId: number;
- parent: ITab | any;
+ parent: any | ITab;
- send(cmd: string, param: Record, process?: boolean): void;
+ send: (cmd: string, param: Record, process?: boolean) => void;
}
export interface ICustomModel extends IModel {
@@ -238,15 +275,15 @@ export interface ICustomModel extends IModel {
element: HTMLElement;
editors: Protyle[]; // 系统内部处理快捷键等操作需要用到 https://github.com/siyuan-note/siyuan/issues/11072
- init(): void;
+ init: () => void;
- update?(): void;
+ update?: () => void;
- resize?(): void;
+ resize?: () => void;
- beforeDestroy?(): void;
+ beforeDestroy?: () => void;
- destroy?(): void;
+ destroy?: () => void;
}
export interface IDockModel extends Omit {
@@ -267,18 +304,18 @@ export interface ILuteNode {
TokensStr: () => string;
__internal_object__: {
Parent: {
- Type: number,
- },
- HeadingLevel: string,
+ Type: number;
+ };
+ HeadingLevel: string;
};
}
export interface ISearchOption {
page?: number;
- removed?: boolean; // 移除后需记录搜索内容 https://github.com/siyuan-note/siyuan/issues/7745
+ removed?: boolean; // 移除后需记录搜索内容 https://github.com/siyuan-note/siyuan/issues/7745
name?: string;
- sort?: number; // 0:按块类型(默认),1:按创建时间升序,2:按创建时间降序,3:按更新时间升序,4:按更新时间降序,5:按内容顺序(仅在按文档分组时),6:按相关度升序,7:按相关度降序
- group?: number; // 0:不分组,1:按文档分组
+ sort?: number; // 0:按块类型(默认),1:按创建时间升序,2:按创建时间降序,3:按更新时间升序,4:按更新时间降序,5:按内容顺序(仅在按文档分组时),6:按相关度升序,7:按相关度降序
+ group?: number; // 0:不分组,1:按文档分组
hasReplace?: boolean;
method?: number; // 0:文本,1:查询语法,2:SQL,3:正则表达式
hPath?: string;
@@ -286,19 +323,19 @@ export interface ISearchOption {
k: string;
r?: string;
types?: {
- mathBlock: boolean,
- table: boolean,
- blockquote: boolean,
- superBlock: boolean,
- paragraph: boolean,
- document: boolean,
- heading: boolean,
- list: boolean,
- listItem: boolean,
- codeBlock: boolean,
- htmlBlock: boolean,
- embedBlock: boolean,
- databaseBlock: boolean,
+ mathBlock: boolean;
+ table: boolean;
+ blockquote: boolean;
+ superBlock: boolean;
+ paragraph: boolean;
+ document: boolean;
+ heading: boolean;
+ list: boolean;
+ listItem: boolean;
+ codeBlock: boolean;
+ htmlBlock: boolean;
+ embedBlock: boolean;
+ databaseBlock: boolean;
};
}
@@ -312,10 +349,16 @@ export interface IWebSocketData {
}
export interface IPluginDockTab {
- position: "LeftTop" | "LeftBottom" | "RightTop" | "RightBottom" | "BottomLeft" | "BottomRight";
+ position:
+ | "BottomLeft"
+ | "BottomRight"
+ | "LeftBottom"
+ | "LeftTop"
+ | "RightBottom"
+ | "RightTop";
size: {
- width: number,
- height: number,
+ width: number;
+ height: number;
};
icon: string;
hotkey?: string;
@@ -327,8 +370,11 @@ export interface IPluginDockTab {
export interface IMenuItemOption {
iconClass?: string;
label?: string;
- click?: (element: HTMLElement, event: MouseEvent) => boolean | void | Promise;
- type?: "separator" | "submenu" | "readonly";
+ click?: (element: HTMLElement, event: MouseEvent) => boolean | Promise | void;
+ type?:
+ | "readonly"
+ | "separator"
+ | "submenu";
accelerator?: string;
action?: string;
id?: string;
@@ -343,8 +389,8 @@ export interface IMenuItemOption {
}
export interface ICommandOption {
- langKey: string // 用于区分不同快捷键的 key
- langText?: string // 快捷键功能描述文本
+ langKey: string; // 用于区分不同快捷键的 key
+ langText?: string; // 快捷键功能描述文本
/**
* 目前需使用 MacOS 符号标识,顺序按照 ⌥⇧⌘,入 ⌥⇧⌘A
* "Ctrl": "⌘",
@@ -355,13 +401,13 @@ export interface ICommandOption {
* "Delete": "⌦",
* "Enter": "↩",
*/
- hotkey: string,
- customHotkey?: string,
- callback?: () => void // 其余回调存在时将不会触
- globalCallback?: () => void // 焦点不在应用内时执行的回调
- fileTreeCallback?: (file: any) => void // 焦点在文档树上时执行的回调
- editorCallback?: (protyle: any) => void // 焦点在编辑器上时执行的回调
- dockCallback?: (element: HTMLElement) => void // 焦点在 dock 上时执行的回调
+ hotkey: string;
+ customHotkey?: string;
+ callback?: () => void; // 其余回调存在时将不会触
+ globalCallback?: () => void; // 焦点不在应用内时执行的回调
+ fileTreeCallback?: (file: any) => void; // 焦点在文档树上时执行的回调
+ editorCallback?: (protyle: any) => void; // 焦点在编辑器上时执行的回调
+ dockCallback?: (element: HTMLElement) => void; // 焦点在 dock 上时执行的回调
}
export interface IOperation {
@@ -387,17 +433,17 @@ export interface IOperation {
}
export interface ICard {
- deckID: string
- cardID: string
- blockID: string
- nextDues: IObject
+ deckID: string;
+ cardID: string;
+ blockID: string;
+ nextDues: IObject;
}
export interface ICardData {
- cards: ICard[],
- unreviewedCount: number
- unreviewedNewCardCount: number
- unreviewedOldCardCount: number
+ cards: ICard[];
+ unreviewedCount: number;
+ unreviewedNewCardCount: number;
+ unreviewedOldCardCount: number;
}
export function fetchPost(url: string, data?: any, callback?: (response: IWebSocketData) => void, headers?: IObject): void;
@@ -408,71 +454,86 @@ export function fetchGet(url: string, callback: (response: IWebSocketData) => vo
export function openWindow(options: {
position?: {
- x: number,
- y: number,
- },
- height?: number,
- width?: number,
- tab?: ITab,
+ x: number;
+ y: number;
+ };
+ height?: number;
+ width?: number;
+ tab?: ITab;
doc?: {
id: string; // 块 id
- },
+ };
}): void;
export function openMobileFileById(app: App, id: string, action?: string[]): void;
export function openTab(options: {
- app: App,
+ app: App;
doc?: {
- id: string, // 块 id
- action?: TProtyleAction[],
- zoomIn?: boolean, // 是否缩放
+ id: string; // 块 id
+ action?: TProtyleAction[];
+ zoomIn?: boolean; // 是否缩放
};
pdf?: {
- path: string,
- page?: number, // pdf 页码
- id?: string, // File Annotation id
+ path: string;
+ page?: number; // pdf 页码
+ id?: string; // File Annotation id
};
asset?: {
- path: string,
+ path: string;
};
search?: ISearchOption;
card?: {
- type: TCardType,
- id?: string, // cardType 为 all 时不传,否则传文档或笔记本 id
- title?: string, // cardType 为 all 时不传,否则传文档或笔记本名称
+ type: TCardType;
+ id?: string; // cardType 为 all 时不传,否则传文档或笔记本 id
+ title?: string; // cardType 为 all 时不传,否则传文档或笔记本名称
};
custom?: {
- id: string, // 插件名称+页签类型:plugin.name + tab.type
- icon: string,
- title: string,
- data?: any,
+ id: string; // 插件名称+页签类型:plugin.name + tab.type
+ icon: string;
+ title: string;
+ data?: any;
};
- position?: "right" | "bottom";
+ position?: "bottom" | "right";
keepCursor?: boolean; // 是否跳转到新 tab 上
removeCurrentTab?: boolean; // 在当前页签打开时需移除原有页签
afterOpen?: () => void; // 打开后回调
-}): Promise
+}): Promise;
-export function getFrontend(): "desktop" | "desktop-window" | "mobile" | "browser-desktop" | "browser-mobile";
+export function getFrontend(): TFrontendEnv;
-export function lockScreen(app: App): void
+export function lockScreen(app: App): void;
-export function getBackend(): "windows" | "linux" | "darwin" | "docker" | "android" | "ios";
+export function getBackend(): TBackendEnv;
export function adaptHotkey(hotkey: string): string;
export function confirm(title: string, text: string, confirmCallback?: (dialog: Dialog) => void, cancelCallback?: (dialog: Dialog) => void): void;
/**
- * @param timeout - ms. 0: manual close;-1: always show; 6000: default
- * @param {string} [type=info]
+ * @param text
+ * Message text
+ *
+ * 消息文本
+ * @param timeout
+ * Timeout in milliseconds
+ *
+ * 超时时间(毫秒)
+ * - `0`: manual close | 手动关闭
+ * - `-1`: always show | 永远显示
+ * - `6000`: default | 默认
*/
-export function showMessage(text: string, timeout?: number, type?: "info" | "error", id?: string): void;
+export function showMessage(
+ text: string, timeout?: number, type?: "error" | "info", id?: string): void;
+/**
+ * The context of the SiYuan plugin
+ *
+ * 思源插件的上下文
+ */
export class App {
plugins: Plugin[];
- appId: string
+ appId: string;
}
export abstract class Plugin {
@@ -485,17 +546,18 @@ export abstract class Plugin {
commands: ICommandOption[];
setting: Setting;
protyleSlash: {
- filter: string[],
- html: string,
- id: string,
- callback(protyle: Protyle): void,
+ filter: string[];
+ html: string;
+ id: string;
+ callback: (protyle: Protyle) => void;
}[];
+
protyleOptions: IProtyleOption;
constructor(options: {
- app: App,
- name: string,
- i18n: I18N,
+ app: App;
+ name: string;
+ i18n: I18N;
});
onload(): void;
@@ -512,10 +574,10 @@ export abstract class Plugin {
* @param {string} options.icon - Support svg id or svg tag.
*/
addTopBar(options: {
- icon: string,
- title: string,
- callback: (event: MouseEvent) => void
- position?: "right" | "left"
+ icon: string;
+ title: string;
+ callback: (event: MouseEvent) => void;
+ position?: "left" | "right";
}): HTMLElement;
/**
@@ -523,8 +585,8 @@ export abstract class Plugin {
* @param {string} [options.position=right]
*/
addStatusBar(options: {
- element: HTMLElement,
- position?: "right" | "left",
+ element: HTMLElement;
+ position?: "left" | "right";
}): HTMLElement;
openSetting(): void;
@@ -543,54 +605,54 @@ export abstract class Plugin {
* Must be executed before the synchronous function.
*/
addTab(options: {
- type: string,
- beforeDestroy?: (this: ITabModel) => void,
- destroy?: (this: ITabModel) => void,
- resize?: (this: ITabModel) => void,
- update?: (this: ITabModel) => void,
- init: (this: ITabModel) => void,
+ type: string;
+ beforeDestroy?: (this: ITabModel) => void;
+ destroy?: (this: ITabModel) => void;
+ resize?: (this: ITabModel) => void;
+ update?: (this: ITabModel) => void;
+ init: (this: ITabModel) => void;
}): () => ITabModel;
/**
* Must be executed before the synchronous function.
*/
addDock(options: {
- config: IPluginDockTab,
- data: any,
- type: string,
- destroy?: (this: IDockModel) => void,
- resize?: (this: IDockModel) => void,
- update?: (this: IDockModel) => void,
- init: (this: IDockModel, dock: IDockModel) => void,
- }): { config: IPluginDockTab, model: IDockModel };
+ config: IPluginDockTab;
+ data: any;
+ type: string;
+ destroy?: (this: IDockModel) => void;
+ resize?: (this: IDockModel) => void;
+ update?: (this: IDockModel) => void;
+ init: (this: IDockModel, dock: IDockModel) => void;
+ }): { config: IPluginDockTab; model: IDockModel };
addCommand(options: ICommandOption): void;
addFloatLayer(options: {
- ids: string[],
- defIds?: string[],
- x?: number,
- y?: number,
- targetElement?: HTMLElement
+ ids: string[];
+ defIds?: string[];
+ x?: number;
+ y?: number;
+ targetElement?: HTMLElement;
}): void;
- updateCards(options: ICardData): Promise | ICardData;
+ updateCards(options: ICardData): ICardData | Promise;
}
export class Setting {
constructor(options: {
- height?: string,
- width?: string,
- destroyCallback?: () => void,
- confirmCallback?: () => void,
+ height?: string;
+ width?: string;
+ destroyCallback?: () => void;
+ confirmCallback?: () => void;
});
addItem(options: {
- title: string,
- direction?: "column" | "row"
- description?: string,
- actionElement?: HTMLElement,
- createActionElement?(): HTMLElement,
+ title: string;
+ direction?: "column" | "row";
+ description?: string;
+ actionElement?: HTMLElement;
+ createActionElement?: () => HTMLElement;
}): void;
open(name: string): void;
@@ -619,23 +681,22 @@ export class EventBus {
}
export class Dialog {
-
element: HTMLElement;
editors: { [key: string]: Protyle };
data: any;
constructor(options: {
- positionId?: string,
- title?: string,
- transparent?: boolean,
- content: string,
- width?: string,
- height?: string,
- destroyCallback?: (options?: IObject) => void,
- disableClose?: boolean,
- hideCloseIcon?: boolean,
- disableAnimation?: boolean,
- resizeCallback?: (type: string) => void
+ positionId?: string;
+ title?: string;
+ transparent?: boolean;
+ content: string;
+ width?: string;
+ height?: string;
+ destroyCallback?: (options?: IObject) => void;
+ disableClose?: boolean;
+ hideCloseIcon?: boolean;
+ disableAnimation?: boolean;
+ resizeCallback?: (type: string) => void;
});
destroy(options?: IObject): void;
@@ -654,12 +715,12 @@ export class Menu {
addSeparator(index?: number): void;
- open(options: { x: number, y: number, h?: number, w?: number, isLeft?: boolean }): void;
+ open(options: { x: number; y: number; h?: number; w?: number; isLeft?: boolean }): void;
/**
* @param {string} [position=all]
*/
- fullscreen(position?: "bottom" | "all"): void;
+ fullscreen(position?: "all" | "bottom"): void;
close(): void;
}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..deeae72
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,37 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig.json",
+ "compilerOptions": {
+ "target": "ESNext",
+ "lib": [
+ "ESNext",
+ "DOM",
+ ],
+ "useDefineForClassFields": true,
+ /* path */
+ "baseUrl": "./",
+ "module": "ESNext",
+ "moduleResolution": "Node",
+ "paths": {
+ "~/*": [
+ "./*",
+ ],
+ "@/*": [
+ "./types/*",
+ ],
+ },
+ "resolveJsonModule": true,
+ "strict": true,
+ "noImplicitReturns": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "isolatedModules": true,
+ "skipLibCheck": true,
+ },
+ "include": [
+ "types",
+ "./*.js",
+ "./*.ts",
+ ],
+}
diff --git a/typedoc.config.js b/typedoc.config.js
new file mode 100644
index 0000000..c083d32
--- /dev/null
+++ b/typedoc.config.js
@@ -0,0 +1,63 @@
+/**
+ * @see {@link https://typedoc-plugin-markdown.org/docs | typedoc-plugin-markdown • Docs} | {@link https://typedoc.org/options/configuration/ | Configuration • TypeDoc}
+ * @type {import("typedoc-plugin-markdown").PluginOptions | import("typedoc").TypeDocOptions}
+ */
+const config = {
+ // #region typedoc
+
+ // REF: https://typedoc.org/options/input/#name
+ name: "SiYuan Plugin API",
+ entryPoints: [
+ "./siyuan.d.ts",
+ ],
+ out: "./docs/markdown/",
+ plugin: [
+ "typedoc-plugin-markdown",
+ ],
+
+ // REF: https://typedoc.org/options/input/#sourcelinktemplate
+ sourceLinkTemplate: "https://github.com/siyuan-note/petal/tree/main/{path}#L{line}",
+
+ // REF: https://typedoc.org/options/input/#readme
+ readme: "none",
+
+ // REF: https://typedoc.org/options/input/#includeversion
+ includeVersion: true,
+
+ // #endregion typedoc-plugin-markdown
+ // #region typedoc-plugin-markdown
+
+ // REF: https://typedoc-plugin-markdown.org/docs/options/file-options#--mergereadme
+ mergeReadme: true,
+
+ // REF: https://typedoc-plugin-markdown.org/docs/options/display-options#--usecodeblocks
+ // useCodeBlocks: true,
+
+ // REF: https://typedoc-plugin-markdown.org/docs/options/display-options#--indexformat
+ indexFormat: "table",
+
+ // REF: https://typedoc-plugin-markdown.org/docs/options/display-options#--parametersFormat
+ parametersFormat: "table",
+
+ // REF: https://typedoc-plugin-markdown.org/docs/options/display-options#--interfacePropertiesFormat
+ interfacePropertiesFormat: "list",
+
+ // REF: https://typedoc-plugin-markdown.org/docs/options/display-options#--classPropertiesFormat
+ classPropertiesFormat: "list",
+
+ // REF: https://typedoc-plugin-markdown.org/docs/options/display-options#--enumMembersFormat
+ enumMembersFormat: "list",
+
+ // REF: https://typedoc-plugin-markdown.org/docs/options/display-options#--typeDeclarationFormat
+ typeDeclarationFormat: "list",
+
+ // REF: https://typedoc-plugin-markdown.org/docs/options/display-options#--propertyMembersFormat
+ propertyMembersFormat: "list",
+
+ // REF: https://typedoc-plugin-markdown.org/docs/options/utility-options#--publicpath
+ // publicPath: "https://github.com/siyuan-note/petal/tree/main/docs/markdown/",
+
+ // #endregion typedoc-plugin-markdown
+};
+
+export default config;
diff --git a/types/config.d.ts b/types/config.d.ts
index e19a6f2..736205b 100644
--- a/types/config.d.ts
+++ b/types/config.d.ts
@@ -1,21 +1,4 @@
-/**
- * Copyright (C) 2023 SiYuan Community
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- */
-
-import {TEditorMode} from "./protyle";
+import type { TEditorMode } from "./protyle";
export namespace Config {
@@ -142,7 +125,7 @@ export namespace Config {
* API Provider
* OpenAI, Azure
*/
- apiProvider: TOpenAAPIProvider;
+ apiProvider: TOpenAIAPIProvider;
/**
* API request proxy address
*/
@@ -168,12 +151,12 @@ export namespace Config {
/**
* The model name called by the API
*/
- export type TOpenAIAPIModel = "gpt-4" | "gpt-4-32k" | "gpt-3.5-turbo" | "gpt-3.5-turbo-16k";
+ export type TOpenAIAPIModel = "gpt-3.5-turbo-16k" | "gpt-3.5-turbo" | "gpt-4-32k" | "gpt-4";
/**
* API Provider
*/
- export type TOpenAAPIProvider = "OpenAI" | "Azure";
+ export type TOpenAIAPIProvider = "Azure" | "OpenAI";
/**
* SiYuan API related configuration
@@ -265,7 +248,7 @@ export namespace Config {
* User interface language
* Same as {@link IAppearance.lang}
*/
- export type TLang = "en_US" | "es_ES" | "fr_FR" | "zh_CHT" | "zh_CN" | "ja_JP";
+ export type TLang = "en_US" | "es_ES" | "fr_FR" | "ja_JP" | "zh_CHT" | "zh_CN";
/**
* SiYuan bazaar related configuration
@@ -310,8 +293,9 @@ export namespace Config {
/**
* Whether to allow to execute javascript in the HTML block
+ * TODO: fix the typo
*/
- allowHTMLBLockScript: boolean;
+ allowHTMLBLockScript: boolean; // cspell:disable-line
/**
* Markdown configuration
@@ -897,26 +881,26 @@ export namespace Config {
* SiYuan editor insert shortcut keys
*/
export interface IKeymapEditorInsert extends IKeys {
- appearance: IKey;
- bold: IKey;
- check: IKey;
- clearInline: IKey;
- code: IKey;
+ "appearance": IKey;
+ "bold": IKey;
+ "check": IKey;
+ "clearInline": IKey;
+ "code": IKey;
"inline-code": IKey;
"inline-math": IKey;
- italic: IKey;
- kbd: IKey;
- lastUsed: IKey;
- link: IKey;
- mark: IKey;
- memo: IKey;
- ref: IKey;
- strike: IKey;
- sub: IKey;
- sup: IKey;
- table: IKey;
- tag: IKey;
- underline: IKey;
+ "italic": IKey;
+ "kbd": IKey;
+ "lastUsed": IKey;
+ "link": IKey;
+ "mark": IKey;
+ "memo": IKey;
+ "ref": IKey;
+ "strike": IKey;
+ "sub": IKey;
+ "sup": IKey;
+ "table": IKey;
+ "tag": IKey;
+ "underline": IKey;
}
/**
@@ -934,14 +918,14 @@ export namespace Config {
export interface IKeymapEditorTable extends IKeys {
"delete-column": IKey;
"delete-row": IKey;
- insertColumnLeft: IKey;
- insertColumnRight: IKey;
- insertRowAbove: IKey;
- insertRowBelow: IKey;
- moveToDown: IKey;
- moveToLeft: IKey;
- moveToRight: IKey;
- moveToUp: IKey;
+ "insertColumnLeft": IKey;
+ "insertColumnRight": IKey;
+ "insertRowAbove": IKey;
+ "insertRowBelow": IKey;
+ "moveToDown": IKey;
+ "moveToLeft": IKey;
+ "moveToRight": IKey;
+ "moveToUp": IKey;
}
/**
@@ -1030,7 +1014,14 @@ export namespace Config {
/**
* Log level
*/
- export type TLogLevel = "off" | "trace" | "debug" | "info" | "warn" | "error" | "fatal";
+ export type TLogLevel =
+ | "debug"
+ | "error"
+ | "fatal"
+ | "info"
+ | "off"
+ | "trace"
+ | "warn";
/**
* Snapshot repository related configuration
@@ -1453,7 +1444,7 @@ export namespace Config {
* - `ios`: iOS device
* - `std`: Desktop Electron environment
*/
- export type TSystemContainer = "docker" | "android" | "ios" | "std";
+ export type TSystemContainer = "android" | "docker" | "ios" | "std";
/**
* SiYuan Network proxy configuration
@@ -1590,18 +1581,18 @@ export namespace Config {
* SiYuan layout item
*/
export type TUILayoutItem = IUILayoutLayout
- | IUILayoutWnd
| IUILayoutTab
- | IUILayoutTabEditor
| IUILayoutTabAsset
- | IUILayoutTabCustom
| IUILayoutTabBacklink
| IUILayoutTabBookmark
+ | IUILayoutTabCustom
+ | IUILayoutTabEditor
| IUILayoutTabFiles
| IUILayoutTabGraph
| IUILayoutTabOutline
+ | IUILayoutTabSearch
| IUILayoutTabTag
- | IUILayoutTabSearch;
+ | IUILayoutWnd;
/**
* SiYuan panel layout
@@ -1671,7 +1662,6 @@ export namespace Config {
width?: string;
}
-
export interface IUILayoutTab {
/**
* Whether the tab is active
@@ -1727,7 +1717,6 @@ export namespace Config {
path: string;
}
-
/**
* SiYuan back link tab
*/
@@ -1757,7 +1746,7 @@ export namespace Config {
* - `pin`: Pinned panel
* - `local`: The panel of the current document
*/
- export type TUILayoutTabBacklinkType = "pin" | "local";
+ export type TUILayoutTabBacklinkType = "local" | "pin";
/**
* SiYuan bookmark tab
@@ -1829,7 +1818,6 @@ export namespace Config {
instance: "Files";
}
-
/**
* SiYuan graph tab
*/
@@ -1855,14 +1843,13 @@ export namespace Config {
type: TUILayoutTabGraphType;
}
-
/**
* (Graph) Tab type
* - `pin`: Pinned graph
* - `local`: Graph of the current editor
* - `global`: Global graph
*/
- export type TUILayoutTabGraphType = "pin" | "local" | "global";
+ export type TUILayoutTabGraphType = "global" | "local" | "pin";
/**
* SiYuan outline tab
@@ -1888,13 +1875,12 @@ export namespace Config {
type: TUILayoutTabOutlineType;
}
-
/**
* (Outline) Tab type
* - `pin`: Pinned outline panel
* - `local`: The outline panel of the current editor
*/
- export type TUILayoutTabOutlineType = "pin" | "local";
+ export type TUILayoutTabOutlineType = "local" | "pin";
/**
* SiYuan tag tab
@@ -2194,7 +2180,6 @@ export namespace Config {
widgetBlock: boolean;
}
-
/**
* Panel content layout direction
* - `tb`: Top and bottom layout
@@ -2204,7 +2189,7 @@ export namespace Config {
* - `tb`: Can adjust the size up and down
* - `lr`: Can adjust the size left and right
*/
- export type TUILayoutDirection = "tb" | "lr";
+ export type TUILayoutDirection = "lr" | "tb";
/**
* Layout type
@@ -2215,6 +2200,6 @@ export namespace Config {
* - `left`: Left panel
* - `right`: Right panel
*/
- export type TUILayoutType = "normal" | "center" | "top" | "bottom" | "left" | "right";
+ export type TUILayoutType = "bottom" | "center" | "left" | "normal" | "right" | "top";
}
diff --git a/types/constants.ts b/types/constants.ts
index 173b45a..26a1ba5 100644
--- a/types/constants.ts
+++ b/types/constants.ts
@@ -1,4 +1,6 @@
-import {IObject, IKeymap} from "../siyuan";
+/* cSpell:disable */
+
+import type { IKeymap, IObject } from "../siyuan";
export abstract class Constants {
public static readonly SIYUAN_VERSION: string;
@@ -59,11 +61,11 @@ export abstract class Constants {
public static readonly CB_MOUNT_REMOVE = "cb-mount-remove";
public static readonly CB_GET_APPEND = "cb-get-append"; // 向下滚动加载
public static readonly CB_GET_BEFORE = "cb-get-before"; // 向上滚动加载
- public static readonly CB_GET_UNCHANGEID = "cb-get-unchangeid"; // 上下滚动,定位时不修改 blockid
+ public static readonly CB_GET_UNCHANGEID = "cb-get-unchangeid"; // 上下滚动,定位时不修改 block ID
public static readonly CB_GET_HL = "cb-get-hl"; // 高亮
public static readonly CB_GET_FOCUS = "cb-get-focus"; // 光标定位
public static readonly CB_GET_FOCUSFIRST = "cb-get-focusfirst"; // 动态定位到第一个块
- public static readonly CB_GET_SETID = "cb-get-setid"; // 重置 blockid
+ public static readonly CB_GET_SETID = "cb-get-setid"; // 重置 block ID
public static readonly CB_GET_ALL = "cb-get-all"; // 获取所有块
public static readonly CB_GET_BACKLINK = "cb-get-backlink"; // 悬浮窗为传递型需展示上下文
public static readonly CB_GET_UNUNDO = "cb-get-unundo"; // 不需要记录历史
@@ -107,6 +109,7 @@ export abstract class Constants {
en_US: "20210808180117-6v0mkxr",
fr_FR: "20210808180117-6v0mkxr",
};
+
public static readonly QUICK_DECK_ID = "20230218211946-2kw8jgx";
public static readonly KEYCODELIST: { [key: number]: string } = {
@@ -213,163 +216,164 @@ export abstract class Constants {
221: "]",
222: "'",
};
+
// 冲突不使用 "⌘S/Q"
// "⌘", "⇧", "⌥", "⌃"
// "⌘A", "⌘X", "⌘C", "⌘V", "⌘-", "⌘=", "⌘0", "⇧⌘V", "⌘/", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⌃⇧⇥", "⌃⇥", "⌘⇥", "⇧⌘⇥", "⇧⌘→", "⇧⌘←",
// "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦" 不可自定义
public static readonly SIYUAN_KEYMAP: IKeymap = {
general: {
- mainMenu: {default: "⌥\\", custom: "⌥\\"},
- commandPanel: {default: "⌥⇧P", custom: "⌥⇧P"},
- editReadonly: {default: "⇧⌘G", custom: "⇧⌘G"},
- syncNow: {default: "F9", custom: "F9"},
- enterBack: {default: "⌥←", custom: "⌥←"},
- enter: {default: "⌥→", custom: "⌥→"},
- goForward: {default: "⌘]", custom: "⌘]"},
- goBack: {default: "⌘[", custom: "⌘["},
- newFile: {default: "⌘N", custom: "⌘N"},
- search: {default: "⌘F", custom: "⌘F"},
- globalSearch: {default: "⌘P", custom: "⌘P"},
- stickSearch: {default: "⇧⌘F", custom: "⇧⌘F"},
- replace: {default: "⌘R", custom: "⌘R"},
- closeTab: {default: "⌘W", custom: "⌘W"},
- fileTree: {default: "⌥1", custom: "⌥1"},
- outline: {default: "⌥2", custom: "⌥2"},
- bookmark: {default: "⌥3", custom: "⌥3"},
- tag: {default: "⌥4", custom: "⌥4"},
- dailyNote: {default: "⌥5", custom: "⌥5"},
- inbox: {default: "⌥6", custom: "⌥6"},
- backlinks: {default: "⌥7", custom: "⌥7"},
- graphView: {default: "⌥8", custom: "⌥8"},
- globalGraph: {default: "⌥9", custom: "⌥9"},
- riffCard: {default: "⌥0", custom: "⌥0"},
- config: {default: "⌥P", custom: "⌥P"},
- dataHistory: {default: "⌥H", custom: "⌥H"},
- toggleWin: {default: "⌥M", custom: "⌥M"},
- lockScreen: {default: "⌥N", custom: "⌥N"},
- recentDocs: {default: "⌘E", custom: "⌘E"},
- goToTab1: {default: "⌘1", custom: "⌘1"},
- goToTab2: {default: "⌘2", custom: "⌘2"},
- goToTab3: {default: "⌘3", custom: "⌘3"},
- goToTab4: {default: "⌘4", custom: "⌘4"},
- goToTab5: {default: "⌘5", custom: "⌘5"},
- goToTab6: {default: "⌘6", custom: "⌘6"},
- goToTab7: {default: "⌘7", custom: "⌘7"},
- goToTab8: {default: "⌘8", custom: "⌘8"},
- goToTab9: {default: "⌘9", custom: "⌘9"},
- goToTabNext: {default: "⇧⌘]", custom: "⇧⌘]"},
- goToTabPrev: {default: "⇧⌘[", custom: "⇧⌘["},
- move: {default: "", custom: ""},
- selectOpen1: {default: "", custom: ""},
- toggleDock: {default: "", custom: ""},
- splitLR: {default: "", custom: ""},
- splitMoveR: {default: "", custom: ""},
- splitTB: {default: "", custom: ""},
- splitMoveB: {default: "", custom: ""},
- closeOthers: {default: "", custom: ""},
- closeAll: {default: "", custom: ""},
- closeUnmodified: {default: "", custom: ""},
- closeLeft: {default: "", custom: ""},
- closeRight: {default: "", custom: ""},
+ mainMenu: { default: "⌥\\", custom: "⌥\\" },
+ commandPanel: { default: "⌥⇧P", custom: "⌥⇧P" },
+ editReadonly: { default: "⇧⌘G", custom: "⇧⌘G" },
+ syncNow: { default: "F9", custom: "F9" },
+ enterBack: { default: "⌥←", custom: "⌥←" },
+ enter: { default: "⌥→", custom: "⌥→" },
+ goForward: { default: "⌘]", custom: "⌘]" },
+ goBack: { default: "⌘[", custom: "⌘[" },
+ newFile: { default: "⌘N", custom: "⌘N" },
+ search: { default: "⌘F", custom: "⌘F" },
+ globalSearch: { default: "⌘P", custom: "⌘P" },
+ stickSearch: { default: "⇧⌘F", custom: "⇧⌘F" },
+ replace: { default: "⌘R", custom: "⌘R" },
+ closeTab: { default: "⌘W", custom: "⌘W" },
+ fileTree: { default: "⌥1", custom: "⌥1" },
+ outline: { default: "⌥2", custom: "⌥2" },
+ bookmark: { default: "⌥3", custom: "⌥3" },
+ tag: { default: "⌥4", custom: "⌥4" },
+ dailyNote: { default: "⌥5", custom: "⌥5" },
+ inbox: { default: "⌥6", custom: "⌥6" },
+ backlinks: { default: "⌥7", custom: "⌥7" },
+ graphView: { default: "⌥8", custom: "⌥8" },
+ globalGraph: { default: "⌥9", custom: "⌥9" },
+ riffCard: { default: "⌥0", custom: "⌥0" },
+ config: { default: "⌥P", custom: "⌥P" },
+ dataHistory: { default: "⌥H", custom: "⌥H" },
+ toggleWin: { default: "⌥M", custom: "⌥M" },
+ lockScreen: { default: "⌥N", custom: "⌥N" },
+ recentDocs: { default: "⌘E", custom: "⌘E" },
+ goToTab1: { default: "⌘1", custom: "⌘1" },
+ goToTab2: { default: "⌘2", custom: "⌘2" },
+ goToTab3: { default: "⌘3", custom: "⌘3" },
+ goToTab4: { default: "⌘4", custom: "⌘4" },
+ goToTab5: { default: "⌘5", custom: "⌘5" },
+ goToTab6: { default: "⌘6", custom: "⌘6" },
+ goToTab7: { default: "⌘7", custom: "⌘7" },
+ goToTab8: { default: "⌘8", custom: "⌘8" },
+ goToTab9: { default: "⌘9", custom: "⌘9" },
+ goToTabNext: { default: "⇧⌘]", custom: "⇧⌘]" },
+ goToTabPrev: { default: "⇧⌘[", custom: "⇧⌘[" },
+ move: { default: "", custom: "" },
+ selectOpen1: { default: "", custom: "" },
+ toggleDock: { default: "", custom: "" },
+ splitLR: { default: "", custom: "" },
+ splitMoveR: { default: "", custom: "" },
+ splitTB: { default: "", custom: "" },
+ splitMoveB: { default: "", custom: "" },
+ closeOthers: { default: "", custom: "" },
+ closeAll: { default: "", custom: "" },
+ closeUnmodified: { default: "", custom: "" },
+ closeLeft: { default: "", custom: "" },
+ closeRight: { default: "", custom: "" },
},
editor: {
general: {
- duplicate: {default: "⌘D", custom: "⌘D"},
- expandDown: {default: "⌥⇧↓", custom: "⌥⇧↓"},
- expandUp: {default: "⌥⇧↑", custom: "⌥⇧↑"},
- copyPlainText: {default: "", custom: ""},
- copyID: {default: "", custom: ""},
- copyProtocolInMd: {default: "", custom: ""},
- netImg2LocalAsset: {default: "", custom: ""},
- optimizeTypography: {default: "", custom: ""},
- hLayout: {default: "", custom: ""},
- vLayout: {default: "", custom: ""},
- refPopover: {default: "", custom: ""},
- copyText: {default: "", custom: ""},
- expand: {default: "⌘↓", custom: "⌘↓"},
- collapse: {default: "⌘↑", custom: "⌘↑"},
- insertBottom: {default: "⌥⌘.", custom: "⌥⌘."},
- refTab: {default: "⇧⌘.", custom: "⇧⌘."},
- openBy: {default: "⌥,", custom: "⌥,"},
- insertRight: {default: "⌥.", custom: "⌥."},
- attr: {default: "⌥⌘A", custom: "⌥⌘A"},
- quickMakeCard: {default: "⌥⌘F", custom: "⌥⌘F"},
- refresh: {default: "F5", custom: "F5"},
- copyBlockRef: {default: "⇧⌘C", custom: "⇧⌘C"},
- copyProtocol: {default: "⇧⌘H", custom: "⇧⌘H"},
- copyBlockEmbed: {default: "⇧⌘E", custom: "⇧⌘E"},
- copyHPath: {default: "⇧⌘P", custom: "⇧⌘P"},
- undo: {default: "⌘Z", custom: "⌘Z"},
- redo: {default: "⌘Y", custom: "⌘Y"},
- rename: {default: "F2", custom: "F2"},
- newNameFile: {default: "F3", custom: "F3"},
- newContentFile: {default: "F4", custom: "F4"},
- newNameSettingFile: {default: "⌘F3", custom: "⌘F3"},
- showInFolder: {default: "⌥A", custom: "⌥A"},
- outline: {default: "⌥O", custom: "⌥O"},
- backlinks: {default: "⌥B", custom: "⌥B"},
- graphView: {default: "⌥G", custom: "⌥G"},
- spaceRepetition: {default: "⌥F", custom: "⌥F"},
- fullscreen: {default: "⌥Y", custom: "⌥Y"},
- alignLeft: {default: "⌥L", custom: "⌥L"},
- alignCenter: {default: "⌥C", custom: "⌥C"},
- alignRight: {default: "⌥R", custom: "⌥R"},
- wysiwyg: {default: "⌥⌘7", custom: "⌥⌘7"},
- preview: {default: "⌥⌘9", custom: "⌥⌘9"},
- insertBefore: {default: "⇧⌘B", custom: "⇧⌘B"},
- insertAfter: {default: "⇧⌘A", custom: "⇧⌘A"},
- jumpToParentNext: {default: "⇧⌘N", custom: "⇧⌘N"},
- moveToUp: {default: "⇧⌘↑", custom: "⇧⌘↑"},
- moveToDown: {default: "⇧⌘↓", custom: "⇧⌘↓"},
+ duplicate: { default: "⌘D", custom: "⌘D" },
+ expandDown: { default: "⌥⇧↓", custom: "⌥⇧↓" },
+ expandUp: { default: "⌥⇧↑", custom: "⌥⇧↑" },
+ copyPlainText: { default: "", custom: "" },
+ copyID: { default: "", custom: "" },
+ copyProtocolInMd: { default: "", custom: "" },
+ netImg2LocalAsset: { default: "", custom: "" },
+ optimizeTypography: { default: "", custom: "" },
+ hLayout: { default: "", custom: "" },
+ vLayout: { default: "", custom: "" },
+ refPopover: { default: "", custom: "" },
+ copyText: { default: "", custom: "" },
+ expand: { default: "⌘↓", custom: "⌘↓" },
+ collapse: { default: "⌘↑", custom: "⌘↑" },
+ insertBottom: { default: "⌥⌘.", custom: "⌥⌘." },
+ refTab: { default: "⇧⌘.", custom: "⇧⌘." },
+ openBy: { default: "⌥,", custom: "⌥," },
+ insertRight: { default: "⌥.", custom: "⌥." },
+ attr: { default: "⌥⌘A", custom: "⌥⌘A" },
+ quickMakeCard: { default: "⌥⌘F", custom: "⌥⌘F" },
+ refresh: { default: "F5", custom: "F5" },
+ copyBlockRef: { default: "⇧⌘C", custom: "⇧⌘C" },
+ copyProtocol: { default: "⇧⌘H", custom: "⇧⌘H" },
+ copyBlockEmbed: { default: "⇧⌘E", custom: "⇧⌘E" },
+ copyHPath: { default: "⇧⌘P", custom: "⇧⌘P" },
+ undo: { default: "⌘Z", custom: "⌘Z" },
+ redo: { default: "⌘Y", custom: "⌘Y" },
+ rename: { default: "F2", custom: "F2" },
+ newNameFile: { default: "F3", custom: "F3" },
+ newContentFile: { default: "F4", custom: "F4" },
+ newNameSettingFile: { default: "⌘F3", custom: "⌘F3" },
+ showInFolder: { default: "⌥A", custom: "⌥A" },
+ outline: { default: "⌥O", custom: "⌥O" },
+ backlinks: { default: "⌥B", custom: "⌥B" },
+ graphView: { default: "⌥G", custom: "⌥G" },
+ spaceRepetition: { default: "⌥F", custom: "⌥F" },
+ fullscreen: { default: "⌥Y", custom: "⌥Y" },
+ alignLeft: { default: "⌥L", custom: "⌥L" },
+ alignCenter: { default: "⌥C", custom: "⌥C" },
+ alignRight: { default: "⌥R", custom: "⌥R" },
+ wysiwyg: { default: "⌥⌘7", custom: "⌥⌘7" },
+ preview: { default: "⌥⌘9", custom: "⌥⌘9" },
+ insertBefore: { default: "⇧⌘B", custom: "⇧⌘B" },
+ insertAfter: { default: "⇧⌘A", custom: "⇧⌘A" },
+ jumpToParentNext: { default: "⇧⌘N", custom: "⇧⌘N" },
+ moveToUp: { default: "⇧⌘↑", custom: "⇧⌘↑" },
+ moveToDown: { default: "⇧⌘↓", custom: "⇧⌘↓" },
},
insert: {
- appearance: {default: "⌥⌘X", custom: "⌥⌘X"},
- lastUsed: {default: "⌥X", custom: "⌥X"},
- ref: {default: "⌥[", custom: "⌥["},
- kbd: {default: "⌘'", custom: "⌘'"},
- sup: {default: "⌘H", custom: "⌘H"},
- sub: {default: "⌘J", custom: "⌘J"},
- bold: {default: "⌘B", custom: "⌘B"},
- "inline-math": {default: "⌘M", custom: "⌘M"},
- memo: {default: "⌥⌘M", custom: "⌥⌘M"},
- underline: {default: "⌘U", custom: "⌘U"},
- italic: {default: "⌘I", custom: "⌘I"},
- mark: {default: "⌥D", custom: "⌥D"},
- tag: {default: "⌘T", custom: "⌘T"},
- strike: {default: "⇧⌘S", custom: "⇧⌘S"},
- "inline-code": {default: "⌘G", custom: "⌘G"},
- link: {default: "⌘K", custom: "⌘K"},
- check: {default: "⌘L", custom: "⌘L"},
- table: {default: "⌘O", custom: "⌘O"},
- code: {default: "⇧⌘K", custom: "⇧⌘K"},
- clearInline: {default: "⌘\\", custom: "⌘\\"},
+ "appearance": { default: "⌥⌘X", custom: "⌥⌘X" },
+ "lastUsed": { default: "⌥X", custom: "⌥X" },
+ "ref": { default: "⌥[", custom: "⌥[" },
+ "kbd": { default: "⌘'", custom: "⌘'" },
+ "sup": { default: "⌘H", custom: "⌘H" },
+ "sub": { default: "⌘J", custom: "⌘J" },
+ "bold": { default: "⌘B", custom: "⌘B" },
+ "inline-math": { default: "⌘M", custom: "⌘M" },
+ "memo": { default: "⌥⌘M", custom: "⌥⌘M" },
+ "underline": { default: "⌘U", custom: "⌘U" },
+ "italic": { default: "⌘I", custom: "⌘I" },
+ "mark": { default: "⌥D", custom: "⌥D" },
+ "tag": { default: "⌘T", custom: "⌘T" },
+ "strike": { default: "⇧⌘S", custom: "⇧⌘S" },
+ "inline-code": { default: "⌘G", custom: "⌘G" },
+ "link": { default: "⌘K", custom: "⌘K" },
+ "check": { default: "⌘L", custom: "⌘L" },
+ "table": { default: "⌘O", custom: "⌘O" },
+ "code": { default: "⇧⌘K", custom: "⇧⌘K" },
+ "clearInline": { default: "⌘\\", custom: "⌘\\" },
},
heading: {
- paragraph: {default: "⌥⌘0", custom: "⌥⌘0"},
- heading1: {default: "⌥⌘1", custom: "⌥⌘1"},
- heading2: {default: "⌥⌘2", custom: "⌥⌘2"},
- heading3: {default: "⌥⌘3", custom: "⌥⌘3"},
- heading4: {default: "⌥⌘4", custom: "⌥⌘4"},
- heading5: {default: "⌥⌘5", custom: "⌥⌘5"},
- heading6: {default: "⌥⌘6", custom: "⌥⌘6"},
+ paragraph: { default: "⌥⌘0", custom: "⌥⌘0" },
+ heading1: { default: "⌥⌘1", custom: "⌥⌘1" },
+ heading2: { default: "⌥⌘2", custom: "⌥⌘2" },
+ heading3: { default: "⌥⌘3", custom: "⌥⌘3" },
+ heading4: { default: "⌥⌘4", custom: "⌥⌘4" },
+ heading5: { default: "⌥⌘5", custom: "⌥⌘5" },
+ heading6: { default: "⌥⌘6", custom: "⌥⌘6" },
},
list: {
- indent: {default: "⇥", custom: "⇥"},
- outdent: {default: "⇧⇥", custom: "⇧⇥"},
- checkToggle: {default: "⌘↩", custom: "⌘↩"},
+ indent: { default: "⇥", custom: "⇥" },
+ outdent: { default: "⇧⇥", custom: "⇧⇥" },
+ checkToggle: { default: "⌘↩", custom: "⌘↩" },
},
table: {
- insertRowAbove: {default: "⇧⌘T", custom: "⇧⌘T"},
- insertRowBelow: {default: "⇧⌘D", custom: "⇧⌘D"},
- insertColumnLeft: {default: "⇧⌘L", custom: "⇧⌘L"},
- insertColumnRight: {default: "⇧⌘R", custom: "⇧⌘R"},
- moveToUp: {default: "⌥⌘T", custom: "⌥⌘T"},
- moveToDown: {default: "⌥⌘B", custom: "⌥⌘B"},
- moveToLeft: {default: "⌥⌘L", custom: "⌥⌘L"},
- moveToRight: {default: "⌥⌘R", custom: "⌥⌘R"},
- "delete-row": {default: "⌘-", custom: "⌘-"},
- "delete-column": {default: "⇧⌘-", custom: "⇧⌘-"}
- }
+ "insertRowAbove": { default: "⇧⌘T", custom: "⇧⌘T" },
+ "insertRowBelow": { default: "⇧⌘D", custom: "⇧⌘D" },
+ "insertColumnLeft": { default: "⇧⌘L", custom: "⇧⌘L" },
+ "insertColumnRight": { default: "⇧⌘R", custom: "⇧⌘R" },
+ "moveToUp": { default: "⌥⌘T", custom: "⌥⌘T" },
+ "moveToDown": { default: "⌥⌘B", custom: "⌥⌘B" },
+ "moveToLeft": { default: "⌥⌘L", custom: "⌥⌘L" },
+ "moveToRight": { default: "⌥⌘R", custom: "⌥⌘R" },
+ "delete-row": { default: "⌘-", custom: "⌘-" },
+ "delete-column": { default: "⇧⌘-", custom: "⇧⌘-" },
+ },
},
plugin: {},
};
@@ -377,130 +381,132 @@ export abstract class Constants {
public static readonly SIYUAN_EMPTY_LAYOUT: Record = {
hideDock: false,
layout: {
- "direction": "tb",
- "size": "0px",
- "type": "normal",
- "instance": "Layout",
- "children": [{
- "direction": "lr",
- "size": "auto",
- "type": "normal",
- "instance": "Layout",
- "children": [{
- "direction": "tb",
- "size": "0px",
- "type": "left",
- "instance": "Layout",
- "children": [{
- "instance": "Wnd",
- "children": []
+ direction: "tb",
+ size: "0px",
+ type: "normal",
+ instance: "Layout",
+ children: [{
+ direction: "lr",
+ size: "auto",
+ type: "normal",
+ instance: "Layout",
+ children: [{
+ direction: "tb",
+ size: "0px",
+ type: "left",
+ instance: "Layout",
+ children: [{
+ instance: "Wnd",
+ children: [],
}, {
- "instance": "Wnd",
- "resize": "tb",
- "children": []
- }]
+ instance: "Wnd",
+ resize: "tb",
+ children: [],
+ }],
}, {
- "direction": "lr",
- "resize": "lr",
- "size": "auto",
- "type": "center",
- "instance": "Layout",
- "children": [{"instance": "Wnd", "children": [{"instance": "Tab", "children": []}]}]
+ direction: "lr",
+ resize: "lr",
+ size: "auto",
+ type: "center",
+ instance: "Layout",
+ children: [{ instance: "Wnd", children: [{ instance: "Tab", children: [] }] }],
}, {
- "direction": "tb",
- "size": "0px",
- "resize": "lr",
- "type": "right",
- "instance": "Layout",
- "children": [{
- "instance": "Wnd",
- "children": []
+ direction: "tb",
+ size: "0px",
+ resize: "lr",
+ type: "right",
+ instance: "Layout",
+ children: [{
+ instance: "Wnd",
+ children: [],
}, {
- "instance": "Wnd",
- "resize": "tb",
- "children": []
- }]
- }]
+ instance: "Wnd",
+ resize: "tb",
+ children: [],
+ }],
+ }],
}, {
- "direction": "lr",
- "size": "0px",
- "resize": "tb",
- "type": "bottom",
- "instance": "Layout",
- "children": [{
- "instance": "Wnd",
- "children": []
+ direction: "lr",
+ size: "0px",
+ resize: "tb",
+ type: "bottom",
+ instance: "Layout",
+ children: [{
+ instance: "Wnd",
+ children: [],
}, {
- "instance": "Wnd",
- "resize": "lr",
- "children": []
- }]
- }]
+ instance: "Wnd",
+ resize: "lr",
+ children: [],
+ }],
+ }],
},
bottom: {
pin: true,
- data: []
+ data: [],
},
left: {
pin: true,
data: [
[{
type: "file",
- size: {width: 227, height: 0},
+ size: { width: 227, height: 0 },
show: true,
icon: "iconFiles",
hotkeyLangId: "fileTree",
}, {
type: "outline",
- size: {width: 227, height: 0},
+ size: { width: 227, height: 0 },
show: false,
icon: "iconAlignCenter",
hotkeyLangId: "outline",
}, {
type: "inbox",
- size: {width: 320, height: 0},
+ size: { width: 320, height: 0 },
show: false,
icon: "iconInbox",
hotkeyLangId: "inbox",
- }], [{
+ }],
+ [{
type: "bookmark",
- size: {width: 227, height: 0},
+ size: { width: 227, height: 0 },
show: false,
icon: "iconBookmark",
hotkeyLangId: "bookmark",
}, {
type: "tag",
- size: {width: 227, height: 0},
+ size: { width: 227, height: 0 },
show: false,
icon: "iconTags",
hotkeyLangId: "tag",
- }]
- ]
+ }],
+ ],
},
right: {
pin: true,
data: [
[{
type: "graph",
- size: {width: 320, height: 0},
+ size: { width: 320, height: 0 },
show: false,
icon: "iconGraph",
hotkeyLangId: "graphView",
}, {
type: "globalGraph",
- size: {width: 320, height: 0},
+ size: { width: 320, height: 0 },
show: false,
icon: "iconGlobalGraph",
hotkeyLangId: "globalGraph",
- }], [{
+ }],
+ [{
type: "backlink",
- size: {width: 320, height: 0},
+ size: { width: 320, height: 0 },
show: false,
icon: "iconLink",
hotkeyLangId: "backlinks",
- }]
- ]
- }
+ }],
+ ],
+ },
};
// image
@@ -511,6 +517,7 @@ export abstract class Constants {
`;
+
public static readonly SIYUAN_IMAGE_FILE: string = "1f4c4";
public static readonly SIYUAN_IMAGE_NOTE: string = "1f5c3";
public static readonly SIYUAN_IMAGE_FOLDER: string = "1f4d1";
@@ -520,50 +527,27 @@ export abstract class Constants {
public static readonly SIYUAN_ASSETS_AUDIO: string[] = [".mp3", ".wav", ".ogg", ".m4a"];
public static readonly SIYUAN_ASSETS_VIDEO: string[] = [".mov", ".weba", ".mkv", ".mp4", ".webm"];
public static readonly SIYUAN_ASSETS_EXTS: string[] = [".pdf"].concat(Constants.SIYUAN_ASSETS_IMAGE).concat(Constants.SIYUAN_ASSETS_AUDIO).concat(Constants.SIYUAN_ASSETS_VIDEO);
- public static readonly SIYUAN_ASSETS_SEARCH: string[] = [".txt", ".md", ".markdown", ".docx", ".xlsx", ".pptx", ".pdf", ".json", ".log", ".sql", ".html", ".xml", ".java", ".h", ".c",
- ".cpp", ".go", ".rs", ".swift", ".kt", ".py", ".php", ".js", ".css", ".ts", ".sh", ".bat", ".cmd", ".ini", ".yaml",
- ".rst", ".adoc", ".textile", ".opml", ".org", ".wiki", ".epub"];
+ public static readonly SIYUAN_ASSETS_SEARCH: string[] = [".txt", ".md", ".markdown", ".docx", ".xlsx", ".pptx", ".pdf", ".json", ".log", ".sql", ".html", ".xml", ".java", ".h", ".c", ".cpp", ".go", ".rs", ".swift", ".kt", ".py", ".php", ".js", ".css", ".ts", ".sh", ".bat", ".cmd", ".ini", ".yaml", ".rst", ".adoc", ".textile", ".opml", ".org", ".wiki", ".epub"];
// protyle
- public static readonly SIYUAN_CONFIG_APPEARANCE_DARK_CODE: string[] = ["a11y-dark", "agate", "an-old-hope", "androidstudio",
- "arta", "atom-one-dark", "atom-one-dark-reasonable", "base16/3024", "base16/apathy", "base16/apprentice", "base16/ashes", "base16/atelier-cave", "base16/atelier-dune",
- "base16/atelier-estuary", "base16/atelier-forest", "base16/atelier-heath", "base16/atelier-lakeside", "base16/atelier-plateau", "base16/atelier-savanna", "base16/atelier-seaside", "base16/atelier-sulphurpool",
- "base16/atlas", "base16/bespin", "base16/black-metal", "base16/black-metal-bathory", "base16/black-metal-burzum", "base16/black-metal-dark-funeral", "base16/black-metal-gorgoroth", "base16/black-metal-immortal", "base16/black-metal-khold", "base16/black-metal-marduk", "base16/black-metal-mayhem", "base16/black-metal-nile", "base16/black-metal-venom", "base16/brewer", "base16/bright", "base16/brogrammer",
- "base16/brush-trees-dark", "base16/chalk", "base16/circus", "base16/classic-dark", "base16/codeschool", "base16/colors", "base16/danqing", "base16/darcula", "base16/dark-violet",
- "base16/darkmoss", "base16/darktooth", "base16/decaf", "base16/default-dark", "base16/dracula", "base16/edge-dark", "base16/eighties", "base16/embers", "base16/equilibrium-dark",
- "base16/equilibrium-gray-dark", "base16/espresso", "base16/eva", "base16/eva-dim", "base16/flat", "base16/framer", "base16/gigavolt", "base16/google-dark", "base16/grayscale-dark", "base16/green-screen", "base16/gruvbox-dark-hard", "base16/gruvbox-dark-medium",
- "base16/gruvbox-dark-pale", "base16/gruvbox-dark-soft", "base16/hardcore", "base16/harmonic16-dark", "base16/heetch-dark", "base16/helios", "base16/hopscotch", "base16/horizon-dark", "base16/humanoid-dark", "base16/ia-dark", "base16/icy-dark", "base16/ir-black", "base16/isotope",
- "base16/kimber", "base16/london-tube", "base16/macintosh", "base16/marrakesh", "base16/materia", "base16/material", "base16/material-darker", "base16/material-palenight", "base16/material-vivid",
- "base16/mellow-purple", "base16/mocha", "base16/monokai", "base16/nebula", "base16/nord", "base16/nova", "base16/ocean", "base16/oceanicnext", "base16/onedark", "base16/outrun-dark",
- "base16/papercolor-dark", "base16/paraiso", "base16/pasque", "base16/phd", "base16/pico", "base16/pop", "base16/porple", "base16/qualia", "base16/railscasts", "base16/rebecca",
- "base16/ros-pine", "base16/ros-pine-moon", "base16/sandcastle", "base16/seti-ui", "base16/silk-dark", "base16/snazzy", "base16/solar-flare", "base16/solarized-dark", "base16/spacemacs", "base16/summercamp", "base16/summerfruit-dark",
- "base16/synth-midnight-terminal-dark", "base16/tango", "base16/tender", "base16/tomorrow-night", "base16/twilight", "base16/unikitty-dark", "base16/vulcan",
- "base16/windows-10", "base16/windows-95", "base16/windows-high-contrast", "base16/windows-nt", "base16/woodland", "base16/xcode-dusk", "base16/zenburn", "codepen-embed", "dark",
- "devibeans", "far", "felipec", "github-dark", "github-dark-dimmed", "gml", "gradient-dark", "hybrid", "ir-black", "isbl-editor-dark", "kimbie-dark", "lioshi",
- "monokai", "monokai-sublime", "night-owl", "nnfx-dark", "nord", "obsidian", "panda-syntax-dark", "paraiso-dark", "pojoaque", "qtcreator-dark", "rainbow", "shades-of-purple", "srcery", "stackoverflow-dark",
- "sunburst", "tomorrow-night-blue", "tomorrow-night-bright", "tokyo-night-dark", "vs2015", "xt256"
+ public static readonly SIYUAN_CONFIG_APPEARANCE_DARK_CODE: string[] = ["a11y-dark", "agate", "an-old-hope", "androidstudio", "arta", "atom-one-dark", "atom-one-dark-reasonable", "base16/3024", "base16/apathy", "base16/apprentice", "base16/ashes", "base16/atelier-cave", "base16/atelier-dune", "base16/atelier-estuary", "base16/atelier-forest", "base16/atelier-heath", "base16/atelier-lakeside", "base16/atelier-plateau", "base16/atelier-savanna", "base16/atelier-seaside", "base16/atelier-sulphurpool", "base16/atlas", "base16/bespin", "base16/black-metal", "base16/black-metal-bathory", "base16/black-metal-burzum", "base16/black-metal-dark-funeral", "base16/black-metal-gorgoroth", "base16/black-metal-immortal", "base16/black-metal-khold", "base16/black-metal-marduk", "base16/black-metal-mayhem", "base16/black-metal-nile", "base16/black-metal-venom", "base16/brewer", "base16/bright", "base16/brogrammer", "base16/brush-trees-dark", "base16/chalk", "base16/circus", "base16/classic-dark", "base16/codeschool", "base16/colors", "base16/danqing", "base16/darcula", "base16/dark-violet", "base16/darkmoss", "base16/darktooth", "base16/decaf", "base16/default-dark", "base16/dracula", "base16/edge-dark", "base16/eighties", "base16/embers", "base16/equilibrium-dark", "base16/equilibrium-gray-dark", "base16/espresso", "base16/eva", "base16/eva-dim", "base16/flat", "base16/framer", "base16/gigavolt", "base16/google-dark", "base16/grayscale-dark", "base16/green-screen", "base16/gruvbox-dark-hard", "base16/gruvbox-dark-medium", "base16/gruvbox-dark-pale", "base16/gruvbox-dark-soft", "base16/hardcore", "base16/harmonic16-dark", "base16/heetch-dark", "base16/helios", "base16/hopscotch", "base16/horizon-dark", "base16/humanoid-dark", "base16/ia-dark", "base16/icy-dark", "base16/ir-black", "base16/isotope", "base16/kimber", "base16/london-tube", "base16/macintosh", "base16/marrakesh", "base16/materia", "base16/material", "base16/material-darker", "base16/material-palenight", "base16/material-vivid", "base16/mellow-purple", "base16/mocha", "base16/monokai", "base16/nebula", "base16/nord", "base16/nova", "base16/ocean", "base16/oceanicnext", "base16/onedark", "base16/outrun-dark", "base16/papercolor-dark", "base16/paraiso", "base16/pasque", "base16/phd", "base16/pico", "base16/pop", "base16/porple", "base16/qualia", "base16/railscasts", "base16/rebecca", "base16/ros-pine", "base16/ros-pine-moon", "base16/sandcastle", "base16/seti-ui", "base16/silk-dark", "base16/snazzy", "base16/solar-flare", "base16/solarized-dark", "base16/spacemacs", "base16/summercamp", "base16/summerfruit-dark", "base16/synth-midnight-terminal-dark", "base16/tango", "base16/tender", "base16/tomorrow-night", "base16/twilight", "base16/unikitty-dark", "base16/vulcan", "base16/windows-10", "base16/windows-95", "base16/windows-high-contrast", "base16/windows-nt", "base16/woodland", "base16/xcode-dusk", "base16/zenburn", "codepen-embed", "dark", "devibeans", "far", "felipec", "github-dark", "github-dark-dimmed", "gml", "gradient-dark", "hybrid", "ir-black", "isbl-editor-dark", "kimbie-dark", "lioshi", "monokai", "monokai-sublime", "night-owl", "nnfx-dark", "nord", "obsidian", "panda-syntax-dark", "paraiso-dark", "pojoaque", "qtcreator-dark", "rainbow", "shades-of-purple", "srcery", "stackoverflow-dark", "sunburst", "tomorrow-night-blue", "tomorrow-night-bright", "tokyo-night-dark", "vs2015", "xt256",
];
- public static readonly SIYUAN_CONFIG_APPEARANCE_LIGHT_CODE: string[] = ["ant-design",
- "a11y-light", "arduino-light", "ascetic", "atom-one-light", "base16/atelier-cave-light",
- "base16/atelier-dune-light", "base16/atelier-estuary-light", "base16/atelier-forest-light", "base16/atelier-heath-light",
- "base16/atelier-lakeside-light", "base16/atelier-plateau-light", "base16/atelier-savanna-light", "base16/atelier-seaside-light", "base16/atelier-sulphurpool-light", "base16/brush-trees",
- "base16/classic-light", "base16/cupcake", "base16/cupertino", "base16/default-light", "base16/dirtysea", "base16/edge-light", "base16/equilibrium-gray-light", "base16/equilibrium-light",
- "base16/fruit-soda", "base16/github", "base16/google-light", "base16/grayscale-light", "base16/gruvbox-light-hard", "base16/gruvbox-light-medium", "base16/gruvbox-light-soft",
- "base16/harmonic16-light", "base16/heetch-light", "base16/humanoid-light", "base16/horizon-light", "base16/ia-light", "base16/material-lighter", "base16/mexico-light",
- "base16/one-light", "base16/papercolor-light", "base16/ros-pine-dawn", "base16/sagelight", "base16/shapeshifter",
- "base16/silk-light", "base16/solar-flare-light", "base16/solarized-light", "base16/summerfruit-light", "base16/synth-midnight-terminal-light", "base16/tomorrow",
- "base16/unikitty-light", "base16/windows-10-light", "base16/windows-95-light", "base16/windows-high-contrast-light", "brown-paper", "base16/windows-nt-light",
- "color-brewer", "docco", "foundation", "github", "googlecode", "gradient-light", "grayscale", "idea", "intellij-light", "isbl-editor-light", "kimbie-light",
- "lightfair", "magula", "mono-blue", "nnfx-light", "panda-syntax-light", "paraiso-light", "purebasic", "qtcreator-light", "routeros", "school-book",
- "stackoverflow-light", "tokyo-night-light", "vs", "xcode", "default"];
- public static readonly ZWSP: string = "\u200b";
+
+ public static readonly SIYUAN_CONFIG_APPEARANCE_LIGHT_CODE: string[] = ["ant-design", "a11y-light", "arduino-light", "ascetic", "atom-one-light", "base16/atelier-cave-light", "base16/atelier-dune-light", "base16/atelier-estuary-light", "base16/atelier-forest-light", "base16/atelier-heath-light", "base16/atelier-lakeside-light", "base16/atelier-plateau-light", "base16/atelier-savanna-light", "base16/atelier-seaside-light", "base16/atelier-sulphurpool-light", "base16/brush-trees", "base16/classic-light", "base16/cupcake", "base16/cupertino", "base16/default-light", "base16/dirtysea", "base16/edge-light", "base16/equilibrium-gray-light", "base16/equilibrium-light", "base16/fruit-soda", "base16/github", "base16/google-light", "base16/grayscale-light", "base16/gruvbox-light-hard", "base16/gruvbox-light-medium", "base16/gruvbox-light-soft", "base16/harmonic16-light", "base16/heetch-light", "base16/humanoid-light", "base16/horizon-light", "base16/ia-light", "base16/material-lighter", "base16/mexico-light", "base16/one-light", "base16/papercolor-light", "base16/ros-pine-dawn", "base16/sagelight", "base16/shapeshifter", "base16/silk-light", "base16/solar-flare-light", "base16/solarized-light", "base16/summerfruit-light", "base16/synth-midnight-terminal-light", "base16/tomorrow", "base16/unikitty-light", "base16/windows-10-light", "base16/windows-95-light", "base16/windows-high-contrast-light", "brown-paper", "base16/windows-nt-light", "color-brewer", "docco", "foundation", "github", "googlecode", "gradient-light", "grayscale", "idea", "intellij-light", "isbl-editor-light", "kimbie-light", "lightfair", "magula", "mono-blue", "nnfx-light", "panda-syntax-light", "paraiso-light", "purebasic", "qtcreator-light", "routeros", "school-book", "stackoverflow-light", "tokyo-night-light", "vs", "xcode", "default"];
+
+ public static readonly ZWSP: string = "\u200B";
public static readonly INLINE_TYPE: string[] = ["block-ref", "kbd", "text", "file-annotation-ref", "a", "strong", "em", "u", "s", "mark", "sup", "sub", "tag", "code", "inline-math", "inline-memo"];
public static readonly BLOCK_HINT_KEYS: string[] = ["((", "[[", "((", "【【"];
public static readonly BLOCK_HINT_CLOSE_KEYS: IObject;
// common: "bash", "c", "csharp", "cpp", "css", "diff", "go", "xml", "json", "java", "javascript", "kotlin", "less", "lua", "makefile", "markdown", "objectivec", "php", "php-template", "perl", "plaintext", "python", "python-repl", "r", "ruby", "rust", "scss", "sql", "shell", "swift", "ini", "typescript", "vbnet", "yaml", "properties", "1c", "armasm", "avrasm", "actionscript", "ada", "angelscript", "accesslog", "apache", "applescript", "arcade", "arduino", "asciidoc", "aspectj", "abnf", "autohotkey", "autoit", "awk", "basic", "bnf", "dos", "brainfuck", "cal", "cmake", "csp", "cos", "capnproto", "ceylon", "clean", "clojure", "clojure-repl", "coffeescript", "coq", "crystal", "d", "dns", "dart", "delphi", "dts", "django", "dockerfile", "dust", "erb", "elixir", "elm", "erlang", "erlang-repl", "excel", "ebnf", "fsharp", "fix", "flix", "fortran", "gcode", "gams", "gauss", "glsl", "gml", "gherkin", "golo", "gradle", "groovy", "haml", "hsp", "http", "handlebars", "haskell", "haxe", "hy", "irpf90", "isbl", "inform7", "x86asm", "jboss-cli", "julia", "julia-repl", "ldif", "llvm", "lsl", "latex", "lasso", "leaf", "lisp", "livecodeserver", "livescript", "mel", "mipsasm", "matlab", "maxima", "mercury", "axapta", "routeros", "mizar", "mojolicious", "monkey", "moonscript", "n1ql", "nsis", "nestedtext", "nginx", "nim", "nix", "node-repl", "ocaml", "openscad", "ruleslanguage", "oxygene", "pf", "parser3", "pony", "pgsql", "powershell", "processing", "prolog", "protobuf", "puppet", "purebasic", "profile", "q", "qml", "reasonml", "rib", "rsl", "roboconf", "sas", "sml", "sqf", "step21", "scala", "scheme", "scilab", "smali", "smalltalk", "stan", "stata", "stylus", "subunit", "tp", "taggerscript", "tcl", "tap", "thrift", "twig", "vbscript", "vbscript-html", "vhdl", "vala", "verilog", "vim", "wasm", "mathematica", "wren", "xl", "xquery", "zephir", "crmsh", "dsconfig", "graphql",
// third: "yul", "solidity", "abap", "hlsl"
public static readonly ALIAS_CODE_LANGUAGES: string[] = [
- "js", "ts", "html", "toml", "c#", "bat",
+ "js",
+ "ts",
+ "html",
+ "toml",
+ "c#",
+ "bat",
];
// Google Analytics 事件
diff --git a/types/events.d.ts b/types/events.d.ts
index 1aff588..4fcaadf 100644
--- a/types/events.d.ts
+++ b/types/events.d.ts
@@ -1,5 +1,5 @@
-import type {IProtyle} from "./protyle";
-import {EventMenu} from "./../siyuan";
+import type { EventMenu } from "./../siyuan";
+import type { IProtyle } from "./protyle";
export interface IMenuBaseDetail {
menu: EventMenu;
diff --git a/types/index.d.ts b/types/index.d.ts
index e8c4314..78fdf45 100644
--- a/types/index.d.ts
+++ b/types/index.d.ts
@@ -1,5 +1,5 @@
export * from "./config";
+export * from "./constants";
export * from "./events";
export * from "./protyle";
export * from "./response";
-export * from "./constants";
diff --git a/types/protyle.d.ts b/types/protyle.d.ts
index 79c7f95..4001a9d 100644
--- a/types/protyle.d.ts
+++ b/types/protyle.d.ts
@@ -1,4 +1,4 @@
-import {
+import type {
App,
ILuteNode,
IObject,
@@ -6,23 +6,24 @@ import {
IPosition,
TTurnInto,
TTurnIntoOne,
- TTurnIntoOneSub
+ TTurnIntoOneSub,
} from "./../siyuan";
-type TProtyleAction = "cb-get-append" | // 向下滚动加载
- "cb-get-before" | // 向上滚动加载
- "cb-get-unchangeid" | // 上下滚动,定位时不修改 blockid
- "cb-get-hl" | // 高亮
- "cb-get-focus" | // 光标定位
- "cb-get-focusfirst" | // 动态定位到第一个块
- "cb-get-setid" | // 重置 blockid
- "cb-get-all" | // 获取所有块
- "cb-get-backlink" | // 悬浮窗为传递型需展示上下文
- "cb-get-unundo" | // 不需要记录历史
- "cb-get-scroll" | // 滚动到指定位置
- "cb-get-context" | // 包含上下文
- "cb-get-html" | // 直接渲染,不需要再 /api/block/getDocInfo,否则搜索表格无法定位
- "cb-get-history" // 历史渲染
+type TProtyleAction =
+ | "cb-get-all" // 获取所有块
+ | "cb-get-append" // 向下滚动加载
+ | "cb-get-backlink" // 悬浮窗为传递型需展示上下文
+ | "cb-get-before" // 向上滚动加载
+ | "cb-get-context" // 包含上下文
+ | "cb-get-focus" // 光标定位
+ | "cb-get-focusfirst" // 动态定位到第一个块
+ | "cb-get-history" // 历史渲染
+ | "cb-get-hl" // 高亮
+ | "cb-get-html" // 直接渲染,不需要再 /api/block/getDocInfo,否则搜索表格无法定位
+ | "cb-get-scroll" // 滚动到指定位置
+ | "cb-get-setid" // 重置 block ID
+ | "cb-get-unchangeid" // 上下滚动,定位时不修改 block ID
+ | "cb-get-unundo"; // 不需要记录历史
interface IToolbarItem {
/** 唯一标示 */
@@ -35,39 +36,41 @@ interface IToolbarItem {
hotkey?: string;
/** 提示位置 */
tipPosition: string;
- click?(protyle: Protyle): void;
+ click?: (protyle: Protyle) => void;
}
-export type TEditorMode = "preview" | "wysiwyg"
+export type TEditorMode =
+ | "preview"
+ | "wysiwyg";
export interface IProtyleOption {
action?: TProtyleAction[];
mode?: TEditorMode;
- toolbar?: Array;
+ toolbar?: Array;
blockId?: string;
key?: string;
scrollAttr?: {
- rootId: string,
- startId: string,
- endId: string,
- scrollTop: number,
- focusId?: string,
- focusStart?: number,
- focusEnd?: number,
- zoomInId?: string,
+ rootId: string;
+ startId: string;
+ endId: string;
+ scrollTop: number;
+ focusId?: string;
+ focusStart?: number;
+ focusEnd?: number;
+ zoomInId?: string;
};
defId?: string;
render?: {
- background?: boolean,
- title?: boolean,
- gutter?: boolean,
- scroll?: boolean,
- breadcrumb?: boolean,
- breadcrumbDocName?: boolean,
+ background?: boolean;
+ title?: boolean;
+ gutter?: boolean;
+ scroll?: boolean;
+ breadcrumb?: boolean;
+ breadcrumbDocName?: boolean;
};
typewriterMode?: boolean;
- after?(protyle: Protyle): void;
+ after?: (protyle: Protyle) => void;
}
// REF: https://github.com/siyuan-note/siyuan/blob/dev/app/src/types/protyle.d.ts
@@ -125,24 +128,23 @@ export interface IProtyle {
}
export class Protyle {
-
public protyle: IProtyle;
- constructor(app: App, element: HTMLElement, options?: IProtyleOption)
+ constructor(app: App, element: HTMLElement, options?: IProtyleOption);
- isUploading(): boolean
+ isUploading(): boolean;
- destroy(): void
+ destroy(): void;
- resize(): void
+ resize(): void;
- reload(focus: boolean): void
+ reload(focus: boolean): void;
/**
* @param {boolean} [isBlock=false]
* @param {boolean} [useProtyleRange=false]
*/
- insert(html: string, isBlock?: boolean, useProtyleRange?: boolean): void
+ insert(html: string, isBlock?: boolean, useProtyleRange?: boolean): void;
transaction(doOperations: IOperation[], undoOperations?: IOperation[]): void;
@@ -150,7 +152,7 @@ export class Protyle {
* 多个块转换为一个块
* @param {TTurnIntoOneSub} [subType] type 为 "BlocksMergeSuperBlock" 时必传
*/
- public turnIntoOneTransaction(selectsElement: Element[], type: TTurnIntoOne, subType?: TTurnIntoOneSub): void
+ public turnIntoOneTransaction(selectsElement: Element[], type: TTurnIntoOne, subType?: TTurnIntoOneSub): void;
/**
* 多个块转换
@@ -158,20 +160,20 @@ export class Protyle {
* @param type
* @param {number} [subType] type 为 "Blocks2Hs" 时必传
*/
- public turnIntoTransaction(nodeElement: Element, type: TTurnInto, subType?: number): void
+ public turnIntoTransaction(nodeElement: Element, type: TTurnInto, subType?: number): void;
- public updateTransaction(id: string, newHTML: string, html: string): void
+ public updateTransaction(id: string, newHTML: string, html: string): void;
- public updateBatchTransaction(nodeElements: Element[], cb: (e: HTMLElement) => void): void
+ public updateBatchTransaction(nodeElements: Element[], cb: (e: HTMLElement) => void): void;
- public getRange(element: Element): Range
+ public getRange(element: Element): Range;
- public hasClosestBlock(element: Node): false | HTMLElement
+ public hasClosestBlock(element: Node): false | HTMLElement;
/**
* @param {boolean} [toStart=true]
*/
- public focusBlock(element: Element, toStart?: boolean): false | Range
+ public focusBlock(element: Element, toStart?: boolean): false | Range;
}
export class Toolbar {
@@ -180,28 +182,28 @@ export class Toolbar {
public subElementCloseCB: () => void;
public range: Range;
- constructor(protyle: IProtyle)
+ constructor(protyle: IProtyle);
- public render(protyle: IProtyle, range: Range, event?: KeyboardEvent)
+ public render(protyle: IProtyle, range: Range, event?: KeyboardEvent);
- public showContent(protyle: IProtyle, range: Range, nodeElement: Element)
+ public showContent(protyle: IProtyle, range: Range, nodeElement: Element);
- public showWidget(protyle: IProtyle, nodeElement: HTMLElement, range: Range)
+ public showWidget(protyle: IProtyle, nodeElement: HTMLElement, range: Range);
- public showTpl(protyle: IProtyle, nodeElement: HTMLElement, range: Range)
+ public showTpl(protyle: IProtyle, nodeElement: HTMLElement, range: Range);
- public showCodeLanguage(protyle: IProtyle, languageElement: HTMLElement)
+ public showCodeLanguage(protyle: IProtyle, languageElement: HTMLElement);
- public showRender(protyle: IProtyle, renderElement: Element, updateElements?: Element[], oldHTML?: string)
+ public showRender(protyle: IProtyle, renderElement: Element, updateElements?: Element[], oldHTML?: string);
public setInlineMark(protyle: IProtyle, type: string, action: "range" | "toolbar", textObj?: {
- color?: string,
- type: string
- })
+ color?: string;
+ type: string;
+ });
- public getCurrentType(range: Range): string[]
+ public getCurrentType(range: Range): string[];
- public showAssets(protyle: IProtyle, position: IPosition, avCB?: (url: string) => void)
+ public showAssets(protyle: IProtyle, position: IPosition, avCB?: (url: string) => void);
}
export class Lute {
@@ -289,7 +291,7 @@ export class Lute {
public SetFootnotes(enable: boolean): void;
- public SetLinkRef(enalbe: boolean): void;
+ public SetLinkRef(enable: boolean): void;
public SetEmojiSite(emojiSite: string): void;
diff --git a/types/response.d.ts b/types/response.d.ts
index 1f31055..cb5e70d 100644
--- a/types/response.d.ts
+++ b/types/response.d.ts
@@ -1,4 +1,4 @@
-import {IObject} from "../siyuan";
+import type { IObject } from "../siyuan";
export interface IGetDocInfo {
ial: IObject;