diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..45f953a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "bd-source"] + path = bd-source + url = https://github.com/BetterDiscord/BetterDiscord.git diff --git a/.vitepress/config.ts b/.vitepress/config.ts index 88e4234..77b4eaf 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -1,7 +1,8 @@ import {DefaultTheme, defineConfig, UserConfig} from "vitepress"; -import {withSidebar, generateSidebar} from "vitepress-sidebar"; +import {generateSidebar} from "vitepress-sidebar"; import {bundledLanguages, LanguageRegistration} from "shiki"; import {groupIconMdPlugin, groupIconVitePlugin, localIconLoader} from "vitepress-plugin-group-icons"; +import {readFileSync} from "node:fs"; const bdIcon = localIconLoader(import.meta.url, "../docs/public/branding/logo_small.svg"); @@ -232,17 +233,6 @@ const SIDEBARS: Parameters[0] = [ frontmatterOrderDefaultValue: 1, manualSortFileNameByPriority: ["getting-started", "guides"], }, - // { - // documentRootPath: "docs", - // scanStartPath: "developers", - // basePath: "/developers/", - // resolvePath: "/developers/", - // useTitleFromFileHeading: true, - // includeRootIndexFile: true, - // sortFolderTo: "bottom", - // sortMenusByFrontmatterOrder: true, - // frontmatterOrderDefaultValue: 1, - // }, { documentRootPath: "docs", scanStartPath: "plugins", @@ -280,5 +270,42 @@ const SIDEBARS: Parameters[0] = [ }, ]; -const userConfig: Partial = withSidebar(VITEPRESS_CONFIG, SIDEBARS); -export default defineConfig(userConfig); \ No newline at end of file +// Read the BdApi file to get items that should be in the sidebar +const bdConfig = readFileSync("./docs/api/BdApi.md", "utf-8"); +const propertyRegex = /\n> `static` \*\*(.+)\*\*.+\((.+)\.md\)/g; + +const properties: Record = {}; +for(const match of bdConfig.matchAll(propertyRegex)) { + const [, name, path] = match; + + if(properties[path]) properties[path] += `/${name}`; + else properties[path] = name; +} + +const propertyItems = Object.entries(properties).map(([path, name]) => ({ + text: name, + link: path +})); + +VITEPRESS_CONFIG.themeConfig ??= {}; +VITEPRESS_CONFIG.themeConfig.sidebar = { + ...generateSidebar(SIDEBARS), + "/api/": { + base: "/api/", + items: [ + { + text: "Overview", + link: "index.md" + }, + { + text: "API Reference", + items: [ + { text: "BdApi", link: "BdApi" }, + ...propertyItems + ] + } + ] + } +} + +export default defineConfig(VITEPRESS_CONFIG); \ No newline at end of file diff --git a/bd-source b/bd-source new file mode 160000 index 0000000..00f2047 --- /dev/null +++ b/bd-source @@ -0,0 +1 @@ +Subproject commit 00f20478b2e52da795736358636b3ecb5f4208de diff --git a/bun.lock b/bun.lock index 7273eb0..42b570c 100644 --- a/bun.lock +++ b/bun.lock @@ -1,13 +1,18 @@ { "lockfileVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "@betterdiscord/docs", "devDependencies": { - "@digitak/esrun": "^3.2.26", + "@types/bun": "^1.3.14", "@types/eslint": "^9.6.1", "eslint": "^9.39.1", "globals": "^16.5.0", + "typedoc": "^0.28.19", + "typedoc-plugin-markdown": "^4.11.0", + "typedoc-plugin-merge-modules": "^7.0.0", + "typedoc-plugin-missing-exports": "^4.1.3", "typescript": "^5.9.3", "typescript-eslint": "^8.48.1", "vitepress": "^1.6.4", @@ -69,10 +74,6 @@ "@babel/types": ["@babel/types@7.26.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA=="], - "@digitak/esrun": ["@digitak/esrun@3.2.26", "", { "dependencies": { "@digitak/grubber": "^3.1.4", "chokidar": "^3.5.1", "esbuild": "^0.17.4" }, "bin": { "esrun": "bin.js" } }, "sha512-mL0bw7NhKVghp7mVsPwnAMhCn4NGAsk0KKFmAfnrYAZ/QCXR5xLXIYP82zLMjcsQag8DD6i1c+Yrm/57StYVzg=="], - - "@digitak/grubber": ["@digitak/grubber@3.1.4", "", {}, "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA=="], - "@docsearch/css": ["@docsearch/css@3.8.2", "", {}, "sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ=="], "@docsearch/js": ["@docsearch/js@3.8.2", "", { "dependencies": { "@docsearch/react": "3.8.2", "preact": "^10.0.0" } }, "sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ=="], @@ -81,49 +82,49 @@ "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.21.5", "", { "os": "aix", "cpu": "ppc64" }, "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ=="], - "@esbuild/android-arm": ["@esbuild/android-arm@0.17.19", "", { "os": "android", "cpu": "arm" }, "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A=="], + "@esbuild/android-arm": ["@esbuild/android-arm@0.21.5", "", { "os": "android", "cpu": "arm" }, "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg=="], - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.17.19", "", { "os": "android", "cpu": "arm64" }, "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA=="], + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.21.5", "", { "os": "android", "cpu": "arm64" }, "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A=="], - "@esbuild/android-x64": ["@esbuild/android-x64@0.17.19", "", { "os": "android", "cpu": "x64" }, "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww=="], + "@esbuild/android-x64": ["@esbuild/android-x64@0.21.5", "", { "os": "android", "cpu": "x64" }, "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA=="], - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.17.19", "", { "os": "darwin", "cpu": "arm64" }, "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg=="], + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.21.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ=="], - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.17.19", "", { "os": "darwin", "cpu": "x64" }, "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw=="], + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.21.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw=="], - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.17.19", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ=="], + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.21.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g=="], - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.17.19", "", { "os": "freebsd", "cpu": "x64" }, "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ=="], + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.21.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ=="], - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.17.19", "", { "os": "linux", "cpu": "arm" }, "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA=="], + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.21.5", "", { "os": "linux", "cpu": "arm" }, "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA=="], - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.17.19", "", { "os": "linux", "cpu": "arm64" }, "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg=="], + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.21.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q=="], - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.17.19", "", { "os": "linux", "cpu": "ia32" }, "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ=="], + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.21.5", "", { "os": "linux", "cpu": "ia32" }, "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg=="], - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.17.19", "", { "os": "linux", "cpu": "none" }, "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ=="], + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg=="], - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.17.19", "", { "os": "linux", "cpu": "none" }, "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A=="], + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg=="], - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.17.19", "", { "os": "linux", "cpu": "ppc64" }, "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg=="], + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.21.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w=="], - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.17.19", "", { "os": "linux", "cpu": "none" }, "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA=="], + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA=="], - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.17.19", "", { "os": "linux", "cpu": "s390x" }, "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q=="], + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.21.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A=="], - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.17.19", "", { "os": "linux", "cpu": "x64" }, "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw=="], + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.21.5", "", { "os": "linux", "cpu": "x64" }, "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ=="], - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.17.19", "", { "os": "none", "cpu": "x64" }, "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q=="], + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.21.5", "", { "os": "none", "cpu": "x64" }, "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg=="], - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.17.19", "", { "os": "openbsd", "cpu": "x64" }, "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g=="], + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.21.5", "", { "os": "openbsd", "cpu": "x64" }, "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow=="], - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.17.19", "", { "os": "sunos", "cpu": "x64" }, "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg=="], + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.21.5", "", { "os": "sunos", "cpu": "x64" }, "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg=="], - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.17.19", "", { "os": "win32", "cpu": "arm64" }, "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag=="], + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.21.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A=="], - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.17.19", "", { "os": "win32", "cpu": "ia32" }, "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw=="], + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.21.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA=="], - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.17.19", "", { "os": "win32", "cpu": "x64" }, "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA=="], + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.21.5", "", { "os": "win32", "cpu": "x64" }, "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw=="], "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], @@ -143,6 +144,8 @@ "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="], + "@gerrit0/mini-shiki": ["@gerrit0/mini-shiki@3.23.0", "", { "dependencies": { "@shikijs/engine-oniguruma": "^3.23.0", "@shikijs/langs": "^3.23.0", "@shikijs/themes": "^3.23.0", "@shikijs/types": "^3.23.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg=="], + "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], "@humanfs/node": ["@humanfs/node@0.16.6", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" } }, "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw=="], @@ -209,11 +212,11 @@ "@shikijs/engine-javascript": ["@shikijs/engine-javascript@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^3.1.0" } }, "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w=="], - "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw=="], + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g=="], - "@shikijs/langs": ["@shikijs/langs@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0" } }, "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w=="], + "@shikijs/langs": ["@shikijs/langs@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0" } }, "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg=="], - "@shikijs/themes": ["@shikijs/themes@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0" } }, "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw=="], + "@shikijs/themes": ["@shikijs/themes@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0" } }, "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA=="], "@shikijs/transformers": ["@shikijs/transformers@2.5.0", "", { "dependencies": { "@shikijs/core": "2.5.0", "@shikijs/types": "2.5.0" } }, "sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg=="], @@ -221,6 +224,8 @@ "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], + "@types/bun": ["@types/bun@1.3.14", "", { "dependencies": { "bun-types": "1.3.14" } }, "sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw=="], + "@types/eslint": ["@types/eslint@9.6.1", "", { "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag=="], "@types/estree": ["@types/estree@1.0.6", "", {}, "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="], @@ -237,6 +242,8 @@ "@types/mdurl": ["@types/mdurl@2.0.0", "", {}, "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg=="], + "@types/node": ["@types/node@25.9.0", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-AOQwYUNolgy3VosiRqXrACUXTN8nJUtPl7FJXMqZVyxiiCLhQuG3jXKvCS1ALr+Y2OmZhzzLVlYPEqJaiqkaJQ=="], + "@types/unist": ["@types/unist@2.0.6", "", {}, "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="], "@types/web-bluetooth": ["@types/web-bluetooth@0.0.21", "", {}, "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA=="], @@ -309,19 +316,15 @@ "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], - "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], - "birpc": ["birpc@2.8.0", "", {}, "sha512-Bz2a4qD/5GRhiHSwj30c/8kC8QGj12nNDwz3D4ErQ4Xhy35dsSDvF+RA/tWpjyU0pdGtSDiEk6B5fBGE1qNVhw=="], "brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], - "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + "bun-types": ["bun-types@1.3.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ=="], "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], @@ -333,8 +336,6 @@ "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], - "chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], - "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], @@ -367,7 +368,7 @@ "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], - "esbuild": ["esbuild@0.17.19", "", { "optionalDependencies": { "@esbuild/android-arm": "0.17.19", "@esbuild/android-arm64": "0.17.19", "@esbuild/android-x64": "0.17.19", "@esbuild/darwin-arm64": "0.17.19", "@esbuild/darwin-x64": "0.17.19", "@esbuild/freebsd-arm64": "0.17.19", "@esbuild/freebsd-x64": "0.17.19", "@esbuild/linux-arm": "0.17.19", "@esbuild/linux-arm64": "0.17.19", "@esbuild/linux-ia32": "0.17.19", "@esbuild/linux-loong64": "0.17.19", "@esbuild/linux-mips64el": "0.17.19", "@esbuild/linux-ppc64": "0.17.19", "@esbuild/linux-riscv64": "0.17.19", "@esbuild/linux-s390x": "0.17.19", "@esbuild/linux-x64": "0.17.19", "@esbuild/netbsd-x64": "0.17.19", "@esbuild/openbsd-x64": "0.17.19", "@esbuild/sunos-x64": "0.17.19", "@esbuild/win32-arm64": "0.17.19", "@esbuild/win32-ia32": "0.17.19", "@esbuild/win32-x64": "0.17.19" }, "bin": "bin/esbuild" }, "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw=="], + "esbuild": ["esbuild@0.21.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": "bin/esbuild" }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="], "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], @@ -403,8 +404,6 @@ "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], - "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], - "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], @@ -443,8 +442,6 @@ "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], - "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="], - "is-extendable": ["is-extendable@0.1.1", "", {}, "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="], "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], @@ -453,8 +450,6 @@ "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], - "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], - "is-what": ["is-what@5.5.0", "", {}, "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw=="], "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], @@ -475,18 +470,26 @@ "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + "linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="], + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], "lru-cache": ["lru-cache@11.2.4", "", {}, "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg=="], + "lunr": ["lunr@2.3.9", "", {}, "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow=="], + "magic-string": ["magic-string@0.30.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-8rYBO+MsWkgjDSOvLomYnzhdwEG51olQ4zL5KXnNJWV5MNmrb4rTZdrtkhxjnD/QyZUqR/Z/XDsUs/4ej2nx0g=="], "mark.js": ["mark.js@8.11.1", "", {}, "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ=="], + "markdown-it": ["markdown-it@14.1.1", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA=="], + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA=="], + "mdurl": ["mdurl@2.0.0", "", {}, "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="], + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], @@ -513,8 +516,6 @@ "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], - "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], - "oniguruma-to-es": ["oniguruma-to-es@3.1.1", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ=="], "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], @@ -541,7 +542,7 @@ "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], "pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], @@ -555,9 +556,9 @@ "punycode": ["punycode@2.1.1", "", {}, "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="], - "qsu": ["qsu@1.10.4", "", {}, "sha512-v5RhwvHMkDdbXEaAxQh5re8q7DiG6EE70+CNwYVA6wZsa4gUrpur+D8lIO3PrzeCj3azc/S79X5v3BH8ILfr9A=="], + "punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="], - "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + "qsu": ["qsu@1.10.4", "", {}, "sha512-v5RhwvHMkDdbXEaAxQh5re8q7DiG6EE70+CNwYVA6wZsa4gUrpur+D8lIO3PrzeCj3azc/S79X5v3BH8ILfr9A=="], "regex": ["regex@6.0.1", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA=="], @@ -617,20 +618,30 @@ "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], - "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], - "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], "ts-api-utils": ["ts-api-utils@2.1.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="], "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + "typedoc": ["typedoc@0.28.19", "", { "dependencies": { "@gerrit0/mini-shiki": "^3.23.0", "lunr": "^2.3.9", "markdown-it": "^14.1.1", "minimatch": "^10.2.5", "yaml": "^2.8.3" }, "peerDependencies": { "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x" }, "bin": { "typedoc": "bin/typedoc" } }, "sha512-wKh+lhdmMFivMlc6vRRcMGXeGEHGU2g8a2CkPTJjJlwRf1iXbimWIPcFolCqe4E0d/FRtGszpIrsp3WLpDB8Pw=="], + + "typedoc-plugin-markdown": ["typedoc-plugin-markdown@4.11.0", "", { "peerDependencies": { "typedoc": "0.28.x" } }, "sha512-2iunh2ALyfyh204OF7h2u0kuQ84xB3jFZtFyUr01nThJkLvR8oGGSSDlyt2gyO4kXhvUxDcVbO0y43+qX+wFbw=="], + + "typedoc-plugin-merge-modules": ["typedoc-plugin-merge-modules@7.0.0", "", { "peerDependencies": { "typedoc": "0.28.x" } }, "sha512-DQyfbbPNBElhpdpGrlkS+CrhGD3iooDjp/PHT8O1D/jumLCB+7XAY3jHiqob7d01o25EfwEOJWVwJK+9J6WlBg=="], + + "typedoc-plugin-missing-exports": ["typedoc-plugin-missing-exports@4.1.3", "", { "peerDependencies": { "typedoc": "^0.28.1" } }, "sha512-tgrlnwzXbqMP2/3BaZk0atddPsD7UnpCoeQ0cUCtk624gODT1bLYOLBEJLXQyVmbnP8HZCMhHpRiR+rxSdZqhg=="], + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], "typescript-eslint": ["typescript-eslint@8.48.1", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.48.1", "@typescript-eslint/parser": "8.48.1", "@typescript-eslint/typescript-estree": "8.48.1", "@typescript-eslint/utils": "8.48.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A=="], + "uc.micro": ["uc.micro@2.1.0", "", {}, "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="], + "ufo": ["ufo@1.6.1", "", {}, "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA=="], + "undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], + "unist-util-is": ["unist-util-is@6.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw=="], "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], @@ -665,6 +676,8 @@ "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + "yaml": ["yaml@2.9.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA=="], + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], @@ -675,8 +688,18 @@ "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + "@gerrit0/mini-shiki/@shikijs/types": ["@shikijs/types@3.23.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ=="], + "@humanfs/node/@humanwhocodes/retry": ["@humanwhocodes/retry@0.3.1", "", {}, "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA=="], + "@shikijs/core/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw=="], + + "@shikijs/engine-oniguruma/@shikijs/types": ["@shikijs/types@3.23.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ=="], + + "@shikijs/langs/@shikijs/types": ["@shikijs/types@3.23.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ=="], + + "@shikijs/themes/@shikijs/types": ["@shikijs/types@3.23.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ=="], + "@types/mdast/@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], @@ -685,14 +708,18 @@ "algoliasearch/@algolia/client-search": ["@algolia/client-search@5.15.0", "", { "dependencies": { "@algolia/client-common": "5.15.0", "@algolia/requester-browser-xhr": "5.15.0", "@algolia/requester-fetch": "5.15.0", "@algolia/requester-node-http": "5.15.0" } }, "sha512-Z32gEMrRRpEta5UqVQA612sLdoqY3AovvUPClDfMxYrbdDAebmGDVPtSogUba1FZ4pP5dx20D3OV3reogLKsRA=="], - "chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], - "glob/minimatch": ["minimatch@10.1.1", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ=="], "gray-matter/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": "bin/js-yaml.js" }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], "hast-util-to-html/@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + "shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw=="], + + "shiki/@shikijs/langs": ["@shikijs/langs@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0" } }, "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w=="], + + "shiki/@shikijs/themes": ["@shikijs/themes@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0" } }, "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw=="], + "string-width/strip-ansi": ["strip-ansi@7.0.1", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw=="], "string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], @@ -701,7 +728,7 @@ "strip-ansi-cjs/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "tinyglobby/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "typedoc/minimatch": ["minimatch@10.2.5", "", { "dependencies": { "brace-expansion": "^5.0.5" } }, "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg=="], "unist-util-is/@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], @@ -717,8 +744,6 @@ "vfile-message/@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], - "vite/esbuild": ["esbuild@0.21.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": "bin/esbuild" }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="], - "wrap-ansi/ansi-styles": ["ansi-styles@6.1.0", "", {}, "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ=="], "wrap-ansi/strip-ansi": ["strip-ansi@7.0.1", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw=="], @@ -735,54 +760,14 @@ "string-width/strip-ansi/ansi-regex": ["ansi-regex@6.0.1", "", {}, "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="], - "vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.21.5", "", { "os": "android", "cpu": "arm" }, "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg=="], - - "vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.21.5", "", { "os": "android", "cpu": "arm64" }, "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A=="], - - "vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.21.5", "", { "os": "android", "cpu": "x64" }, "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA=="], - - "vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.21.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ=="], - - "vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.21.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw=="], - - "vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.21.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g=="], - - "vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.21.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ=="], - - "vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.21.5", "", { "os": "linux", "cpu": "arm" }, "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA=="], - - "vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.21.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q=="], - - "vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.21.5", "", { "os": "linux", "cpu": "ia32" }, "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg=="], - - "vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg=="], - - "vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg=="], - - "vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.21.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w=="], - - "vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA=="], - - "vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.21.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A=="], - - "vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.21.5", "", { "os": "linux", "cpu": "x64" }, "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ=="], - - "vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.21.5", "", { "os": "none", "cpu": "x64" }, "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg=="], - - "vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.21.5", "", { "os": "openbsd", "cpu": "x64" }, "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow=="], - - "vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.21.5", "", { "os": "sunos", "cpu": "x64" }, "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg=="], - - "vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.21.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A=="], - - "vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.21.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA=="], - - "vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.21.5", "", { "os": "win32", "cpu": "x64" }, "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw=="], + "typedoc/minimatch/brace-expansion": ["brace-expansion@5.0.6", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g=="], "wrap-ansi-cjs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], "wrap-ansi-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@6.0.1", "", {}, "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="], + + "typedoc/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], } } diff --git a/docs/api/Addon.md b/docs/api/Addon.md new file mode 100644 index 0000000..21c24f1 --- /dev/null +++ b/docs/api/Addon.md @@ -0,0 +1,133 @@ +# Interface: Addon + +## Properties + +### added + +> **added**: `number` + +*** + +### author + +> **author**: `string` + +*** + +### authorId? + +> `optional` **authorId?**: `string` + +*** + +### authorLink? + +> `optional` **authorLink?**: `string` + +*** + +### description + +> **description**: `string` + +*** + +### donate? + +> `optional` **donate?**: `string` + +*** + +### fileContent? + +> `optional` **fileContent?**: `string` + +*** + +### filename + +> **filename**: `string` + +*** + +### format + +> **format**: `string` + +*** + +### icon? + +> `optional` **icon?**: `string` + +*** + +### id + +> **id**: `string` + +*** + +### invite? + +> `optional` **invite?**: `string` + +*** + +### modified + +> **modified**: `number` + +*** + +### name + +> **name**: `string` + +*** + +### partial? + +> `optional` **partial?**: `boolean` + +*** + +### patreon? + +> `optional` **patreon?**: `string` + +*** + +### runAt? + +> `optional` **runAt?**: `string` + +*** + +### size + +> **size**: `number` + +*** + +### slug + +> **slug**: `string` + +*** + +### source? + +> `optional` **source?**: `string` + +*** + +### version + +> **version**: `string` + +*** + +### website? + +> `optional` **website?**: `string` diff --git a/docs/api/AddonAPI.md b/docs/api/AddonAPI.md new file mode 100644 index 0000000..9d40d61 --- /dev/null +++ b/docs/api/AddonAPI.md @@ -0,0 +1,141 @@ +# Class: AddonAPI + +`AddonAPI` is a utility class for working with plugins and themes. Instances are available on [BdApi](BdApi.md). + +## Accessors + +### folder + +#### Get Signature + +> **get** **folder**(): `string` + +The path to the addon folder. + +##### Returns + +`string` + +## Methods + +### disable() + +> **disable**(`idOrFile`): `boolean` \| `undefined` + +Disables the given addon. + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `idOrFile` | `string` | Addon ID or filename | + +#### Returns + +`boolean` \| `undefined` + +*** + +### enable() + +> **enable**(`idOrFile`): `boolean` \| `undefined` + +Enables the given addon. + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `idOrFile` | `string` | Addon ID or filename | + +#### Returns + +`boolean` \| `undefined` + +*** + +### get() + +> **get**(`idOrFile`): [`Addon`](Addon.md) \| `undefined` + +Gets a particular addon. + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `idOrFile` | `string` | Addon ID or filename | + +#### Returns + +[`Addon`](Addon.md) \| `undefined` + +Addon instance + +*** + +### getAll() + +> **getAll**(): ([`Addon`](Addon.md) \| `undefined`)[] + +Gets all addons of this type. + +#### Returns + +([`Addon`](Addon.md) \| `undefined`)[] + +Array of all addon instances + +*** + +### isEnabled() + +> **isEnabled**(`idOrFile`): `boolean` + +Determines if a particular addon is enabled. + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `idOrFile` | `string` | Addon ID or filename | + +#### Returns + +`boolean` + +*** + +### reload() + +> **reload**(`idOrFile`): `boolean` + +Reloads a particular addon if it is enabled. + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `idOrFile` | `string` | Addon ID or filename | + +#### Returns + +`boolean` + +*** + +### toggle() + +> **toggle**(`idOrFile`): `void` + +Toggles if a particular addon is enabled. + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `idOrFile` | `string` | Addon ID or filename | + +#### Returns + +`void` diff --git a/docs/api/AddonManager.md b/docs/api/AddonManager.md new file mode 100644 index 0000000..4799a5b --- /dev/null +++ b/docs/api/AddonManager.md @@ -0,0 +1,552 @@ +# Abstract Class: AddonManager\ + +## Extends + +- [`Store`](Store.md) + +## Type Parameters + +| Type Parameter | Default type | +| ------ | ------ | +| `T` *extends* [`Addon`](Addon.md) | [`Addon`](Addon.md) | + +## Constructors + +### Constructor + +> **new AddonManager**\<`T`\>(): `AddonManager`\<`T`\> + +#### Returns + +`AddonManager`\<`T`\> + +#### Inherited from + +[`Store`](Store.md).[`constructor`](Store.md#constructor) + +## Properties + +### addonFolder + +> `abstract` **addonFolder**: `string` + +*** + +### addonList + +> **addonList**: `T`[] + +*** + +### duplicatePattern + +> `abstract` **duplicatePattern**: `RegExp` + +*** + +### extension + +> `abstract` **extension**: `string` + +*** + +### hasInitialized + +> **hasInitialized**: `boolean` + +*** + +### initialAddonsLoaded + +> **initialAddonsLoaded**: `number` + +*** + +### language + +> `abstract` **language**: `string` + +*** + +### name + +> `abstract` **name**: `string` + +*** + +### order + +> `abstract` **order**: `number` + +*** + +### prefix + +> `abstract` **prefix**: [`AddonType`](AddonType.md) + +*** + +### state + +> **state**: `Record`\<`string`, `boolean`\> + +*** + +### timeCache + +> **timeCache**: `Record`\<`string`, `number`\> + +*** + +### windows + +> **windows**: `Set`\<`string`\> + +## Methods + +### addChangeListener() + +> **addChangeListener**(`callback`): () => `void` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `callback` | () => `void` | + +#### Returns + +() => `void` + +#### Inherited from + +[`Store`](Store.md).[`addChangeListener`](Store.md#addchangelistener) + +*** + +### deleteAddon() + +> **deleteAddon**(`idOrFileOrAddon`): `void` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `idOrFileOrAddon` | `string` \| `T` | + +#### Returns + +`void` + +*** + +### disableAddon() + +> **disableAddon**(`idOrAddon`): `boolean` \| `undefined` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `idOrAddon` | `string` \| `T` | + +#### Returns + +`boolean` \| `undefined` + +*** + +### disableAllAddons() + +> **disableAllAddons**(): `void` + +#### Returns + +`void` + +*** + +### editAddon() + +> **editAddon**(`idOrFileOrAddon`, `system?`): `void` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `idOrFileOrAddon` | `string` \| `T` | +| `system?` | `boolean` \| `"detached"` \| `"external"` \| `"system"` | + +#### Returns + +`void` + +*** + +### emitChange() + +> **emitChange**(): `void` + +#### Returns + +`void` + +#### Inherited from + +[`Store`](Store.md).[`emitChange`](Store.md#emitchange) + +*** + +### enableAddon() + +> **enableAddon**(`idOrAddon`): `boolean` \| `undefined` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `idOrAddon` | `string` \| `T` | + +#### Returns + +`boolean` \| `undefined` + +*** + +### enableAllAddons() + +> **enableAllAddons**(): `void` + +#### Returns + +`void` + +*** + +### finishInit() + +> **finishInit**(): `void` + +#### Returns + +`void` + +*** + +### initAddon() + +> `abstract` **initAddon**(`addon`): `boolean` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `addon` | `T` | + +#### Returns + +`boolean` + +*** + +### initialize() + +> **initialize**(): `void` + +#### Returns + +`void` + +#### Overrides + +[`Store`](Store.md).[`initialize`](Store.md#initialize) + +*** + +### isEnabled() + +> **isEnabled**(`idOrFile`): `boolean` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `idOrFile` | `string` | + +#### Returns + +`boolean` + +*** + +### isLoaded() + +> **isLoaded**(`idOrFile`): `boolean` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `idOrFile` | `string` | + +#### Returns + +`boolean` + +*** + +### loadAddon() + +> **loadAddon**(`addon`): `boolean` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `addon` | `T` | + +#### Returns + +`boolean` + +*** + +### loadState() + +> **loadState**(): `void` + +#### Returns + +`void` + +*** + +### openDetached() + +> **openDetached**(`addon`): `void` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `addon` | `T` | + +#### Returns + +`void` + +*** + +### readAddon() + +> **readAddon**(`filename`, `startAfter?`): `void` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `filename` | `string` | +| `startAfter?` | `boolean` | + +#### Returns + +`void` + +*** + +### readAllAddons() + +> **readAllAddons**(): `void` + +#### Returns + +`void` + +*** + +### reloadAddon() + +> **reloadAddon**(`idOrFileOrAddon`): `boolean` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `idOrFileOrAddon` | `string` \| `T` | + +#### Returns + +`boolean` + +*** + +### removeChangeListener() + +> **removeChangeListener**(`callback`): `void` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `callback` | () => `void` | + +#### Returns + +`void` + +#### Inherited from + +[`Store`](Store.md).[`removeChangeListener`](Store.md#removechangelistener) + +*** + +### resolveAddon() + +> **resolveAddon**(`idOrFileOrAddon`): `T` \| `undefined` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `idOrFileOrAddon` | `string` \| `T` | + +#### Returns + +`T` \| `undefined` + +*** + +### saveAddon() + +> **saveAddon**(`idOrFileOrAddon`, `content`): `void` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `idOrFileOrAddon` | `string` \| `T` | +| `content` | `string` | + +#### Returns + +`void` + +*** + +### saveState() + +> **saveState**(): `void` + +#### Returns + +`void` + +*** + +### showAddonError() + +> **showAddonError**(`addon`, `message`, `info`): `null` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `addon` | [`Addon`](Addon.md) | +| `message` | `string` | +| `info` | [`ErrorInfo`](ErrorInfo.md) | + +#### Returns + +`null` + +*** + +### startAddon() + +> `abstract` **startAddon**(`idOrAddon`): `boolean` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `idOrAddon` | `string` \| `T` | + +#### Returns + +`boolean` + +*** + +### stopAddon() + +> `abstract` **stopAddon**(`idOrAddon`): `boolean` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `idOrAddon` | `string` \| `T` | + +#### Returns + +`boolean` + +*** + +### toggleAddon() + +> **toggleAddon**(`id`): `void` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `id` | `string` | + +#### Returns + +`void` + +*** + +### trigger() + +> **trigger**(`event`, ...`args`): `boolean` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `event` | `string` | +| ...`args` | `any`[] | + +#### Returns + +`boolean` + +*** + +### unloadAddon() + +> **unloadAddon**(`idOrFileOrAddon`, `isReload?`): `boolean` + +#### Parameters + +| Parameter | Type | Default value | +| ------ | ------ | ------ | +| `idOrFileOrAddon` | `string` \| `T` | `undefined` | +| `isReload` | `boolean` | `false` | + +#### Returns + +`boolean` + +*** + +### watchAddons() + +> **watchAddons**(): `void` + +#### Returns + +`void` diff --git a/docs/api/AddonType.md b/docs/api/AddonType.md new file mode 100644 index 0000000..e6cb5db --- /dev/null +++ b/docs/api/AddonType.md @@ -0,0 +1,3 @@ +# Type Alias: AddonType + +> **AddonType** = `"plugin"` \| `"theme"` diff --git a/docs/api/AfterCallback.md b/docs/api/AfterCallback.md new file mode 100644 index 0000000..4bc68cf --- /dev/null +++ b/docs/api/AfterCallback.md @@ -0,0 +1,21 @@ +# Type Alias: AfterCallback\ + +> **AfterCallback**\<`F`\> = (`thisObject`, `args`, `returnValue`) => `any` + +## Type Parameters + +| Type Parameter | Default type | +| ------ | ------ | +| `F` *extends* (...`a`) => `any` | (...`a`) => `any` | + +## Parameters + +| Parameter | Type | +| ------ | ------ | +| `thisObject` | `ThisType`\<`F`\> | +| `args` | `Parameters`\<`F`\> | +| `returnValue` | `ReturnType`\<`F`\> | + +## Returns + +`any` diff --git a/docs/api/AnimateOptions.md b/docs/api/AnimateOptions.md new file mode 100644 index 0000000..36ea4a5 --- /dev/null +++ b/docs/api/AnimateOptions.md @@ -0,0 +1,19 @@ +# Interface: AnimateOptions + +## Properties + +### timing? + +> `optional` **timing?**: (`timeFraction`) => `number` + +Optional function that calculating progress based on current time fraction. Linear by default. + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `timeFraction` | `number` | + +#### Returns + +`number` diff --git a/docs/api/AsAfterCallback.md b/docs/api/AsAfterCallback.md new file mode 100644 index 0000000..91a7bb4 --- /dev/null +++ b/docs/api/AsAfterCallback.md @@ -0,0 +1,10 @@ +# Type Alias: AsAfterCallback\ + +> **AsAfterCallback**\<`M`, `K`\> = `M`\[`K`\] *extends* (...`a`) => `any` ? [`AfterCallback`](AfterCallback.md)\<`M`\[`K`\]\> : `never` + +## Type Parameters + +| Type Parameter | +| ------ | +| `M` *extends* `object` | +| `K` *extends* [`StringKeys`](StringKeys.md)\<`M`\> | diff --git a/docs/api/AsBeforeCallback.md b/docs/api/AsBeforeCallback.md new file mode 100644 index 0000000..2986e2a --- /dev/null +++ b/docs/api/AsBeforeCallback.md @@ -0,0 +1,10 @@ +# Type Alias: AsBeforeCallback\ + +> **AsBeforeCallback**\<`M`, `K`\> = `M`\[`K`\] *extends* (...`a`) => `any` ? [`BeforeCallback`](BeforeCallback.md)\<`M`\[`K`\]\> : `never` + +## Type Parameters + +| Type Parameter | +| ------ | +| `M` *extends* `object` | +| `K` *extends* [`StringKeys`](StringKeys.md)\<`M`\> | diff --git a/docs/api/AsInsteadCallback.md b/docs/api/AsInsteadCallback.md new file mode 100644 index 0000000..060d79e --- /dev/null +++ b/docs/api/AsInsteadCallback.md @@ -0,0 +1,10 @@ +# Type Alias: AsInsteadCallback\ + +> **AsInsteadCallback**\<`M`, `K`\> = `M`\[`K`\] *extends* (...`a`) => `any` ? [`InsteadCallback`](InsteadCallback.md)\<`M`\[`K`\]\> : `never` + +## Type Parameters + +| Type Parameter | +| ------ | +| `M` *extends* `object` | +| `K` *extends* [`StringKeys`](StringKeys.md)\<`M`\> | diff --git a/docs/api/BaseDOM.md b/docs/api/BaseDOM.md new file mode 100644 index 0000000..537a0cf --- /dev/null +++ b/docs/api/BaseDOM.md @@ -0,0 +1,149 @@ +# Class: BaseDOM + +## Extended by + +- [`DOM`](DOM.md) +- [`BoundDOM`](BoundDOM.md) + +## Accessors + +### screenHeight + +#### Get Signature + +> **get** **screenHeight**(): `number` + +The current height of the user's screen. + +##### Returns + +`number` + +*** + +### screenWidth + +#### Get Signature + +> **get** **screenWidth**(): `number` + +The current width of the user's screen. + +##### Returns + +`number` + +## Methods + +### animate() + +> **animate**(`update`, `duration`, `options?`): () => `void` + +Utility to help smoothly animate using JavaScript. + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `update` | (`p`) => `void` | Render function indicating the style should be updated | +| `duration` | `number` | Duration in ms to animate for | +| `options?` | [`AnimateOptions`](AnimateOptions.md) | Options to customize the animation | + +#### Returns + +() => `void` + +*** + +### createElement() + +> **createElement**\<`T`\>(`tag`, `options?`, ...`children?`): `HTMLElement` + +Utility function to make creating DOM elements easier. Acts similarly +to `React.createElement` + +#### Type Parameters + +| Type Parameter | +| ------ | +| `T` *extends* keyof `HTMLElementTagNameMap` | + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `tag` | `T` | HTML tag name to create | +| `options?` | `Partial`\<`HTMLElementTagNameMap`\[`T`\]\> | Options object to customize the element | +| ...`children?` | (`string` \| `Node`)[] | Child nodes to add | + +#### Returns + +`HTMLElement` + +The created HTML element + +*** + +### onAdded() + +> **onAdded**(`selector`, `callback`): `void` \| (() => `void`) + +Adds a listener for when a node matching a selector is added to the document body. +The listener is automatically removed upon firing. +The callback is given the matching element. + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `selector` | `string` | A CSS selector for the node to wait for | +| `callback` | () => `void` | Function to be performed on event | + +#### Returns + +`void` \| (() => `void`) + +*** + +### onRemoved() + +> **onRemoved**(`node`, `callback`): () => `void` + +Adds a listener for when the node is removed from the document body. + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `node` | `HTMLElement` | Node to be observed | +| `callback` | () => `void` | Function to run when removed | + +#### Returns + +() => `void` + +*** + +### parseHTML() + +> **parseHTML**(`html`, `fragment?`): `Node` \| `NodeListOf`\<`ChildNode`\> + +Parses a string of HTML and returns the results. If the second parameter is true, +the parsed HTML will be returned as a [document fragment](https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment). +This is extremely useful if you have a list of elements at the top level, they can then be appended all at once to another node. + +If the second parameter is false, then the return value will be the list of parsed +nodes and there were multiple top level nodes, otherwise the single node is returned. + +#### Parameters + +| Parameter | Type | Default value | Description | +| ------ | ------ | ------ | ------ | +| `html` | `string` | `undefined` | HTML to be parsed | +| `fragment?` | `boolean` | `false` | Whether or not the return should be the raw `DocumentFragment` | + +#### Returns + +`Node` \| `NodeListOf`\<`ChildNode`\> + +The result of HTML parsing diff --git a/docs/api/BaseHooks.md b/docs/api/BaseHooks.md new file mode 100644 index 0000000..f4693f6 --- /dev/null +++ b/docs/api/BaseHooks.md @@ -0,0 +1,47 @@ +# Class: BaseHooks + +## Extended by + +- [`Hooks`](Hooks.md) +- [`BoundHooks`](BoundHooks.md) + +## Properties + +### useForceUpdate + +> **useForceUpdate**: () => \[`number`, `ActionDispatch`\<`any`\>\] + +Creates a hook that forces a re-render when called. + +#### Returns + +\[`number`, `ActionDispatch`\<`any`\>\] + +*** + +### useStateFromStores + +> **useStateFromStores**: \<`T`\>(`stores`, `factory`, `deps?`, `isStateEqual`) => `T` + +Subscribes to one or more stores and re-computes a value when they change, causing a re-render. +A store is anything with an `addChangeListener` and `removeChangeListener` method, +such as Discord's Flux stores or BdApi.Utils.Store. + +#### Type Parameters + +| Type Parameter | +| ------ | +| `T` | + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `stores` | [`StoreType`](StoreType.md) \| [`StoreType`](StoreType.md)[] | The store(s) to subscribe to | +| `factory` | () => `T` | A function that computes the value to return when stores change | +| `deps?` | `DependencyList` | An optional dependency list that controls when the factory function is updated | +| `isStateEqual?` | `true` \| ((`oldState`, `newState`) => `boolean`) | An optional function that allows for skipping re-renders if the state hasn't changed, or `true` to use a shallow equality check | + +#### Returns + +`T` diff --git a/docs/api/BaseMenuItemProps.md b/docs/api/BaseMenuItemProps.md new file mode 100644 index 0000000..1bc4052 --- /dev/null +++ b/docs/api/BaseMenuItemProps.md @@ -0,0 +1,106 @@ +# Interface: BaseMenuItemProps + +## Extends + +- `Record`\<`string`, `any`\> + +## Extended by + +- [`MenuItemSubmenu`](MenuItemSubmenu.md) +- [`MenuItemDefault`](MenuItemDefault.md) + +## Indexable + +> \[`key`: `string`\]: `any` + +## Properties + +### children? + +> `optional` **children?**: `ReactNode` + +*** + +### className? + +> `optional` **className?**: `string` + +*** + +### color? + +> `optional` **color?**: [`MenuItemColor`](MenuItemColor.md) + +*** + +### disabled? + +> `optional` **disabled?**: `boolean` + +*** + +### dontCloseOnActionIfHoldingShiftKey? + +> `optional` **dontCloseOnActionIfHoldingShiftKey?**: `boolean` + +*** + +### focusedClassName? + +> `optional` **focusedClassName?**: `string` + +*** + +### icon? + +> `optional` **icon?**: `FunctionComponent`\<[`DiscordIconProps`](DiscordIconProps.md)\> + +*** + +### id + +> **id**: `string` + +*** + +### keepItemStyles? + +> `optional` **keepItemStyles?**: `boolean` + +*** + +### subtext? + +> `optional` **subtext?**: `string` + +## Methods + +### action()? + +> `optional` **action**(`event`): `void` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `event` | `MouseEvent` | + +#### Returns + +`void` + +*** + +### imageUrl()? + +> `optional` **imageUrl**(`props`): `string` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `props` | `unknown` | + +#### Returns + +`string` diff --git a/docs/api/BaseSettingItem.md b/docs/api/BaseSettingItem.md new file mode 100644 index 0000000..4045d2a --- /dev/null +++ b/docs/api/BaseSettingItem.md @@ -0,0 +1,85 @@ +# Interface: BaseSettingItem + +## Extended by + +- [`CustomSetting`](CustomSetting.md) +- [`ButtonSetting`](ButtonSetting.md) +- [`ValueSettingItem`](ValueSettingItem.md) + +## Properties + +### defaultValue? + +> `optional` **defaultValue?**: `unknown` + +A value to use if no value is provided + +*** + +### disabled? + +> `optional` **disabled?**: `boolean` + +Whether this setting is disabled + +*** + +### disableWith? + +> `optional` **disableWith?**: `string` + +The id of another setting that disables this setting + +*** + +### enableWith? + +> `optional` **enableWith?**: `string` + +The id of another setting that is required to use this one + +*** + +### hidden? + +> `optional` **hidden?**: `boolean` + +Whether the setting should be hidden + +*** + +### id + +> **id**: `string` + +An identifier used for callbacks + +*** + +### inline? + +> `optional` **inline?**: `boolean` + +Whether the input should render inline with the name (this is false by default for radio type) + +*** + +### name? + +> `optional` **name?**: `string` + +The visual name to display + +*** + +### note? + +> `optional` **note?**: `string` + +The visual description to display + +*** + +### type + +> **type**: [`SettingType`](SettingType.md) diff --git a/docs/api/BaseTooltipProps.md b/docs/api/BaseTooltipProps.md new file mode 100644 index 0000000..3c2af33 --- /dev/null +++ b/docs/api/BaseTooltipProps.md @@ -0,0 +1,59 @@ +# Interface: BaseTooltipProps + +## Extended by + +- [`TooltipProps`](TooltipProps.md) + +## Properties + +### allowOverflow? + +> `optional` **allowOverflow?**: `boolean` + +*** + +### aria-label? + +> `optional` **aria-label?**: `string` + +*** + +### color? + +> `optional` **color?**: `string` + +*** + +### forceOpen? + +> `optional` **forceOpen?**: `boolean` + +*** + +### hideOnClick? + +> `optional` **hideOnClick?**: `boolean` + +*** + +### overflowOnly? + +> `optional` **overflowOnly?**: `boolean` + +*** + +### position? + +> `optional` **position?**: `"top"` \| `"bottom"` \| `"left"` \| `"right"` + +*** + +### shouldShow? + +> `optional` **shouldShow?**: `boolean` + +*** + +### spacing? + +> `optional` **spacing?**: `number` diff --git a/docs/api/BdApi.md b/docs/api/BdApi.md new file mode 100644 index 0000000..47819b7 --- /dev/null +++ b/docs/api/BdApi.md @@ -0,0 +1,417 @@ +# Class: BdApi + +`BdApi` is a globally (`window.BdApi`) accessible object for use by plugins and developers to make their lives easier. +It can be instantiated (`new BdApi("MyPlugin")`) to get a version of the API with automatic scoping for plugins, +or its static properties can be used directly. + +## Constructors + +### Constructor + +> **new BdApi**(`pluginName`): `BdApi` + +#### Parameters + +| Parameter | Type | +| ------ | ------ | +| `pluginName` | `string` | + +#### Returns + +`BdApi` + +## Properties + +### Commands + +> `static` **Commands**: [`CommandAPI`](CommandAPI.md) + +An instance of [CommandAPI](CommandAPI.md) for adding slash commands + +*** + +### Components + +> `static` **Components**: [`Components`](Components.md) + +A set of react components plugins can make use of + +*** + +### ContextMenu + +> `static` **ContextMenu**: [`ContextMenu`](ContextMenu.md) + +An instance of [ContextMenu](ContextMenu.md) for interacting with context menus + +*** + +### Data + +> `static` **Data**: [`Data`](Data.md) + +An instance of [Data](Data.md) to manage data + +*** + +### DOM + +> `static` **DOM**: [`DOM`](DOM.md) + +An instance of [DOM](DOM.md) to interact with the DOM + +*** + +### Hooks + +> `static` **Hooks**: [`Hooks`](Hooks.md) + +An instance of [Hooks](Hooks.md) for react hooks + +*** + +### Logger + +> `static` **Logger**: [`Logger`](Logger.md) + +An instance of [Logger](Logger.md) for logging information + +*** + +### Net + +> `static` **Net**: [`Net`](Net.md) + +An instance of [Net](Net.md) for using network related tools + +*** + +### Patcher + +> `static` **Patcher**: [`Patcher`](Patcher.md) + +An instance of [Patcher](Patcher.md) to monkey patch functions + +*** + +### Plugins + +> `static` **Plugins**: [`AddonAPI`](AddonAPI.md) + +An instance of [AddonAPI](AddonAPI.md) to access plugins + +*** + +### React + +> `static` **React**: *typeof* `React` + +The React module being used inside Discord + +*** + +### ReactDOM + +> `static` **ReactDOM**: *typeof* `ReactDOMBase` & *typeof* `ReactDOMClient` + +The ReactDOM module being used inside Discord + +*** + +### ReactUtils + +> `static` **ReactUtils**: [`ReactUtils`](ReactUtils.md) + +An instance of [ReactUtils](ReactUtils.md) to work with React + +*** + +### Themes + +> `static` **Themes**: [`AddonAPI`](AddonAPI.md) + +An instance of [AddonAPI](AddonAPI.md) to access themes + +*** + +### UI + +> `static` **UI**: [`UI`](UI.md) + +An instance of [UI](UI.md) to create interfaces + +*** + +### Utils + +> `static` **Utils**: [`Utils`](Utils.md) + +An instance of [Utils](Utils.md) for general utility functions + +*** + +### version + +> `static` **version**: `string` + +A reference string for BD's version + +*** + +### Webpack + +> `static` **Webpack**: [`Webpack`](Webpack.md) + +An instance of [Webpack](Webpack.md) to search for modules + +## Accessors + +### Commands + +#### Get Signature + +> **get** **Commands**(): [`BoundCommandAPI`](BoundCommandAPI.md) + +An instance of [CommandAPI](CommandAPI.md) for adding slash commands + +##### Returns + +[`BoundCommandAPI`](BoundCommandAPI.md) + +*** + +### Components + +#### Get Signature + +> **get** **Components**(): [`Components`](Components.md) + +A set of react components plugins can make use of + +##### Returns + +[`Components`](Components.md) + +*** + +### ContextMenu + +#### Get Signature + +> **get** **ContextMenu**(): [`ContextMenu`](ContextMenu.md) + +An instance of [ContextMenu](ContextMenu.md) for interacting with context menus + +##### Returns + +[`ContextMenu`](ContextMenu.md) + +*** + +### Data + +#### Get Signature + +> **get** **Data**(): [`BoundData`](BoundData.md) + +An instance of [Data](Data.md) to manage data + +##### Returns + +[`BoundData`](BoundData.md) + +*** + +### DOM + +#### Get Signature + +> **get** **DOM**(): [`BoundDOM`](BoundDOM.md) + +An instance of [DOM](DOM.md) to interact with the DOM + +##### Returns + +[`BoundDOM`](BoundDOM.md) + +*** + +### Hooks + +#### Get Signature + +> **get** **Hooks**(): [`BoundHooks`](BoundHooks.md) + +An instance of [Hooks](Hooks.md) for react hooks + +##### Returns + +[`BoundHooks`](BoundHooks.md) + +*** + +### Logger + +#### Get Signature + +> **get** **Logger**(): [`BoundLogger`](BoundLogger.md) + +An instance of [Logger](Logger.md) for logging information + +##### Returns + +[`BoundLogger`](BoundLogger.md) + +*** + +### Net + +#### Get Signature + +> **get** **Net**(): [`Net`](Net.md) + +An instance of [Net](Net.md) for using network related tools + +##### Returns + +[`Net`](Net.md) + +*** + +### Patcher + +#### Get Signature + +> **get** **Patcher**(): [`BoundPatcher`](BoundPatcher.md) + +An instance of [Patcher](Patcher.md) to monkey patch functions + +##### Returns + +[`BoundPatcher`](BoundPatcher.md) + +*** + +### Plugins + +#### Get Signature + +> **get** **Plugins**(): [`AddonAPI`](AddonAPI.md) + +An instance of [AddonAPI](AddonAPI.md) to access plugins + +##### Returns + +[`AddonAPI`](AddonAPI.md) + +*** + +### React + +#### Get Signature + +> **get** **React**(): *typeof* `React` + +The React module being used inside Discord + +##### Returns + +*typeof* `React` + +*** + +### ReactDOM + +#### Get Signature + +> **get** **ReactDOM**(): `__module` & `__module` + +The ReactDOM module being used inside Discord + +##### Returns + +`__module` & `__module` + +*** + +### ReactUtils + +#### Get Signature + +> **get** **ReactUtils**(): [`ReactUtils`](ReactUtils.md) + +An instance of [ReactUtils](ReactUtils.md) to work with React + +##### Returns + +[`ReactUtils`](ReactUtils.md) + +*** + +### Themes + +#### Get Signature + +> **get** **Themes**(): [`AddonAPI`](AddonAPI.md) + +An instance of [AddonAPI](AddonAPI.md) to access themes + +##### Returns + +[`AddonAPI`](AddonAPI.md) + +*** + +### UI + +#### Get Signature + +> **get** **UI**(): [`UI`](UI.md) + +An instance of [UI](UI.md) to create interfaces + +##### Returns + +[`UI`](UI.md) + +*** + +### Utils + +#### Get Signature + +> **get** **Utils**(): [`Utils`](Utils.md) + +An instance of [Utils](Utils.md) for general utility functions + +##### Returns + +[`Utils`](Utils.md) + +*** + +### version + +#### Get Signature + +> **get** **version**(): `string` + +A reference string for BD's version + +##### Returns + +`string` + +*** + +### Webpack + +#### Get Signature + +> **get** **Webpack**(): [`Webpack`](Webpack.md) + +An instance of [Webpack](Webpack.md) to search for modules + +##### Returns + +[`Webpack`](Webpack.md) diff --git a/docs/api/BeforeCallback.md b/docs/api/BeforeCallback.md new file mode 100644 index 0000000..f633827 --- /dev/null +++ b/docs/api/BeforeCallback.md @@ -0,0 +1,20 @@ +# Type Alias: BeforeCallback\ + +> **BeforeCallback**\<`F`\> = (`thisObject`, `args`) => `void` + +## Type Parameters + +| Type Parameter | Default type | +| ------ | ------ | +| `F` *extends* (...`a`) => `any` | (...`a`) => `any` | + +## Parameters + +| Parameter | Type | +| ------ | ------ | +| `thisObject` | `ThisType`\<`F`\> | +| `args` | `Parameters`\<`F`\> | + +## Returns + +`void` diff --git a/docs/api/BoundCommandAPI.md b/docs/api/BoundCommandAPI.md new file mode 100644 index 0000000..6bfdec1 --- /dev/null +++ b/docs/api/BoundCommandAPI.md @@ -0,0 +1,235 @@ +# Class: BoundCommandAPI + +`CommandAPI` is a utility class for managing commands, with plugin scoping automatically supplied. +An instance is available on instances of [BdApi](BdApi.md). +This allows plugins to register and manage their own commands. + +## Properties + +### Types + +> **Types**: `object` + +#### CommandTypes + +> **CommandTypes**: `object` + +##### CommandTypes.CHAT\_INPUT + +> **CHAT\_INPUT**: `number` = `1` + +##### CommandTypes.MESSAGE + +> **MESSAGE**: `number` + +##### CommandTypes.USER + +> **USER**: `number` + +#### InputTypes + +> **InputTypes**: `object` + +##### InputTypes.BOT + +> **BOT**: `number` + +##### InputTypes.BUILT\_IN + +> **BUILT\_IN**: `number` = `0` + +##### InputTypes.PLACEHOLDER + +> **PLACEHOLDER**: `number` + +##### InputTypes.SEARCH + +> **SEARCH**: `number` + +##### InputTypes.TEXT + +> **TEXT**: `number` + +#### MessageEmbedTypes + +> **MessageEmbedTypes**: `object` + +##### MessageEmbedTypes.APPLICATION\_NEWS + +> **APPLICATION\_NEWS**: `string` = `"application_news"` + +##### MessageEmbedTypes.ARTICLE + +> **ARTICLE**: `string` + +##### MessageEmbedTypes.AUTO\_MODERATION\_MESSAGE + +> **AUTO\_MODERATION\_MESSAGE**: `string` = `"auto_moderation_message"` + +##### MessageEmbedTypes.AUTO\_MODERATION\_NOTIFICATION + +> **AUTO\_MODERATION\_NOTIFICATION**: `string` = `"auto_moderation_notification"` + +##### MessageEmbedTypes.GAMING\_PROFILE + +> **GAMING\_PROFILE**: `string` = `"gaming_profile"` + +##### MessageEmbedTypes.GIFT + +> **GIFT**: `string` + +##### MessageEmbedTypes.GIFV + +> **GIFV**: `string` + +##### MessageEmbedTypes.IMAGE + +> **IMAGE**: `string` + +##### MessageEmbedTypes.LINK + +> **LINK**: `string` + +##### MessageEmbedTypes.POST\_PREVIEW + +> **POST\_PREVIEW**: `string` = `"post_preview"` + +##### MessageEmbedTypes.RICH + +> **RICH**: `string` + +##### MessageEmbedTypes.SAFETY\_POLICY\_NOTICE + +> **SAFETY\_POLICY\_NOTICE**: `string` = `"safety_policy_notice"` + +##### MessageEmbedTypes.SAFETY\_SYSTEM\_NOTIFICATION + +> **SAFETY\_SYSTEM\_NOTIFICATION**: `string` = `"safety_system_notification"` + +##### MessageEmbedTypes.TEXT + +> **TEXT**: `string` + +##### MessageEmbedTypes.TWEET + +> **TWEET**: `string` + +##### MessageEmbedTypes.VIDEO + +> **VIDEO**: `string` + +##### MessageEmbedTypes.VOICE\_CHANNEL + +> **VOICE\_CHANNEL**: `string` = `"voice_channel"` + +#### OptionTypes + +> **OptionTypes**: `object` + +##### OptionTypes.ATTACHMENT + +> **ATTACHMENT**: `number` + +##### OptionTypes.BOOLEAN + +> **BOOLEAN**: `number` + +##### OptionTypes.CHANNEL + +> **CHANNEL**: `number` + +##### OptionTypes.INTEGER + +> **INTEGER**: `number` + +##### OptionTypes.MENTIONABLE + +> **MENTIONABLE**: `number` + +##### OptionTypes.NUMBER + +> **NUMBER**: `number` + +##### OptionTypes.ROLE + +> **ROLE**: `number` + +##### OptionTypes.STRING + +> **STRING**: `number` + +##### OptionTypes.SUB\_COMMAND + +> **SUB\_COMMAND**: `number` = `1` + +##### OptionTypes.SUB\_COMMAND\_GROUP + +> **SUB\_COMMAND\_GROUP**: `number` = `2` + +##### OptionTypes.USER + +> **USER**: `number` + +## Methods + +### getCommandsByCaller() + +> **getCommandsByCaller**(): [`Command`](Command.md)[] + +Gets all commands registered by this bound api + +#### Returns + +[`Command`](Command.md)[] + +Array of command objects registered by the caller + +*** + +### register() + +> **register**(`command`): (() => `void`) \| `undefined` + +Registers a new command + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `command` | [`Command`](Command.md) | Command object | + +#### Returns + +(() => `void`) \| `undefined` + +Unregister function + +*** + +### unregister() + +> **unregister**(`commandId`): `void` + +Unregisters a command + +#### Parameters + +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `commandId` | `string` | Command ID | + +#### Returns + +`void` + +*** + +### unregisterAll() + +> **unregisterAll**(): `void` + +Unregisters all commands made by this bound api + +#### Returns + +`void` diff --git a/docs/api/BoundDOM.md b/docs/api/BoundDOM.md new file mode 100644 index 0000000..1f42b33 --- /dev/null +++ b/docs/api/BoundDOM.md @@ -0,0 +1,234 @@ +# Class: BoundDOM + +`BoundDOM` is a simple utility class for dom manipulation, with plugin scoping optionally automatically supplied. +An instance is available on instances of [BdApi](BdApi.md). + +## Extends + +- [`BaseDOM`](BaseDOM.md) + +## Accessors + +### screenHeight + +#### Get Signature + +> **get** **screenHeight**(): `number` + +The current height of the user's screen. + +##### Returns + +`number` + +#### Inherited from + +[`BaseDOM`](BaseDOM.md).[`screenHeight`](BaseDOM.md#screenheight) + +*** + +### screenWidth + +#### Get Signature + +> **get** **screenWidth**(): `number` + +The current width of the user's screen. + +##### Returns + +`number` + +#### Inherited from + +[`BaseDOM`](BaseDOM.md).[`screenWidth`](BaseDOM.md#screenwidth) + +## Methods + +### addStyle() + +#### Call Signature + +> **addStyle**(`css`): `void` + +Adds a `