From 53a36999919210e9fe74cb73912f3060cf6b6f8c Mon Sep 17 00:00:00 2001 From: BakaFT Date: Fri, 17 Nov 2023 17:57:21 +0800 Subject: [PATCH 01/12] `PluginFS` -> `context.fs` --- .vitepress/config.ts | 2 +- docs/runtime-api/{plugin-fs.md => fs.md} | 93 +++++++++++++----------- 2 files changed, 50 insertions(+), 45 deletions(-) rename docs/runtime-api/{plugin-fs.md => fs.md} (51%) diff --git a/.vitepress/config.ts b/.vitepress/config.ts index fe6e3ba..7ccbe8a 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -124,10 +124,10 @@ function sidebar() { { text: '[CommandBar]', link: '/runtime-api/command-bar' }, { text: '[DataStore]', link: '/runtime-api/data-store' }, { text: '[Effect]', link: '/runtime-api/effect' }, - { text: '[PluginFS]', link: '/runtime-api/plugin-fs' }, { text: '[Toast]', link: '/runtime-api/toast' }, { text: '[rcp] context.rcp', link: '/runtime-api/rcp' }, { text: 'context.socket', link: '/runtime-api/socket' }, + { text: 'context.fs', link: '/runtime-api/fs' }, ] }, { diff --git a/docs/runtime-api/plugin-fs.md b/docs/runtime-api/fs.md similarity index 51% rename from docs/runtime-api/plugin-fs.md rename to docs/runtime-api/fs.md index d86c9f3..d61593c 100644 --- a/docs/runtime-api/plugin-fs.md +++ b/docs/runtime-api/fs.md @@ -1,25 +1,29 @@ -# PluginFS +# PluginFS
-This API allows plugins to access **their own directory** and perform some basic file operations. +This namespace helps you to gain access to **plugin's own directory** and perform some basic file system operations. -::: warning +::: tip + +**Top-level** plugins don't have this namespace since they don't own a directory. -**Top-level** plugin is not allowed since they don't own a directory. +::: + +::: warning -This API currently does not support calls in **remote** script. +All paths passed into this API are **relative to the root** directory of your plugin. ::: -::: tip +::: danger -All paths passed into this API are relative to the root directory of your plugin. +APIs under this namespace will return a **Promise of undefined** if [illegal paths](https://github.com/PenguLoader/PenguLoader/blob/dev/plugins/src/preload/api/PluginFS.ts#L52) detected. ::: -## PluginFS.read(path) +## context.fs.read(path) - + Read a file in text mode. @@ -29,42 +33,42 @@ Read a file in text mode. ### Return value -A `Promise` of the content string on success. +A `Promise` of content `string` on success. A `Promise` of `undefined` on failure. ### Example ```javascript -PluginFS.read("./index.js").then( content => { +context.fs.read("./index.js").then( content => { console.log(content) }) -const content = await PluginFs.read("./README.md") +const content = await context.fs.read("./README.md") ``` -## PluginFS.write(path,content,enableAppendMode?) +## context.fs.write(path,content,enableAppendMode?) - + -Write to a file in text mode. +Write a file in text mode. ### Params - `path` - The path of the file you want to access with respect to the plugin root directory. -- `content` - The content string you want to write into. +- `content` - The content `string` you want to write into the file. - `enableAppendMode` - Append to file if set to `true` or overwrite file if `false`. This is `false` by default. ### Return value -A `Promise` of a boolean result indicating success or failure. +A `Promise` of `boolean` indicating success or failure. ### Example ```javascript // Create test.txt and write "Hello" into it -PluginFS.write("./test.txt","Hello").then( result => { +context.fs.write("./test.txt","Hello").then( result => { if(result){ // success }else{ @@ -73,7 +77,7 @@ PluginFS.write("./test.txt","Hello").then( result => { }) // Appending " World!" to it -const result = await PluginFs.write("./test.txt"," World!",true) +const result = await context.fs.write("./test.txt"," World!",true) ``` ::: tip @@ -82,10 +86,10 @@ This API can create a file but can't create a file under a non-existing director ::: -## PluginFS.mkdir(path) +## context.fs.mkdir(path) - + Create directories recursively. @@ -95,24 +99,24 @@ Create directories recursively. ### Return Value -A `Promise` of a boolean result indicating success or failure. +A `Promise` of `boolean` indicating success or failure. ### Example ```javascript -const bMkdir0 = await PluginFS.mkdir("utils") -const bMkdir1 = await PluginFS.mkdir("/a/b") -const bMkdir2 = await PluginFS.mkdir("/a\\c") +const bMkdir0 = await context.fs.mkdir("utils") +const bMkdir1 = await context.fs.mkdir("/a/b") +const bMkdir2 = await context.fs.mkdir("/a\\c") // false because it already exists -const bMkdir3 = await PluginFS.mkdir("a\\b/") +const bMkdir3 = await context.fs.mkdir("a\\b/") ``` -## PluginFS.stat(path) +## context.fs.stat(path) - + -Get the status of a file. +Get status of a file. ### Params @@ -120,11 +124,14 @@ Get the status of a file. ### Return value -A `Promise` of `FileStat` or `undefined` depending on success or failure. +A `Promise` of `FileStat` on success. +A `Promise` of `undefined` on failure. + ```typescript interface FileStat{ fileName: string + // 0 if isDir is true length: number isDir: boolean @@ -134,17 +141,17 @@ interface FileStat{ ### Example ```javascript -const stat1 = await PluginFS.stat("a/b") +const stat1 = await context.fs.stat("a/b") if(stat1){ console.log("it's a directory") } -const stat2 = await PluginFS.stat("a/random.js") +const stat2 = await context.fs.stat("a/random.js") ``` -## PluginFS.ls(path) +## context.fs.ls(path) - + List files and directories under given path. @@ -154,14 +161,14 @@ List files and directories under given path. ### Return value -A `Promise` of `Array` of file name strings on success. +A `Promise` of `string[]` of file name strings on success. A `Promise` of `undefined` on failure. -## PluginFS.rm(path,recursively?) +## context.fs.rm(path,recursively?) - + ::: danger @@ -180,9 +187,7 @@ Just like `rm` command in Unix-like systems. ### Return value -A `Promise` of a `number` showing how many files and directories is deleted. - -When deleting with `recursively` set to `true`, the number value is sum of deleted `directories` and `files`. +A `Promise` of `number` showing how many files and directories is deleted. ### Example @@ -190,12 +195,12 @@ You can only delete a non-empty directory with `recursively` set to `true` ```javascript // 1 -const bRm1 = await PluginFS.rm("./empty-dir") +const bRm1 = await context.fs.rm("./empty-dir") // 1 -const bRm2 = await PluginFS.rm("./random-file-under-plugin-root") +const bRm2 = await context.fs.rm("./random-file-under-plugin-root") // bRm3 == 0 because it's not empty -const bRm3 = await PluginFS.rm("./non-empty-dir") +const bRm3 = await context.fs.rm("./non-empty-dir") // bRm4 >= 1 with recursively set to true -const bRm4 = await PluginFS.rm("./non-empty-dir",true) +const bRm4 = await context.fs.rm("./non-empty-dir",true) ``` From 7aebda8ba2e2b76b7d7068c5cae4ddb73cc3fee0 Mon Sep 17 00:00:00 2001 From: Nguyen Duy Date: Mon, 3 Aug 2026 16:34:46 +0700 Subject: [PATCH 02/12] chore(doc): update public assets --- public/Pengu_Featherknight_144.jpg | Bin 7387 -> 0 bytes public/{PenguLoader.png => icon.png} | Bin public/icons/4216.jpg | Bin 0 -> 20074 bytes public/icons/4274.jpg | Bin 0 -> 19682 bytes public/images/visual-acrylic.png | Bin 0 -> 82202 bytes public/images/visual-blurbehind.png | Bin 0 -> 126662 bytes public/images/visual-transparent.png | Bin 0 -> 98838 bytes 7 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 public/Pengu_Featherknight_144.jpg rename public/{PenguLoader.png => icon.png} (100%) create mode 100644 public/icons/4216.jpg create mode 100644 public/icons/4274.jpg create mode 100644 public/images/visual-acrylic.png create mode 100644 public/images/visual-blurbehind.png create mode 100644 public/images/visual-transparent.png diff --git a/public/Pengu_Featherknight_144.jpg b/public/Pengu_Featherknight_144.jpg deleted file mode 100644 index e9a870762bc82ca834ef5eb0e0de230e1a879420..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7387 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 O$P7DO0veJp|NI9DRl9!x diff --git a/public/PenguLoader.png b/public/icon.png similarity index 100% rename from public/PenguLoader.png rename to public/icon.png diff --git a/public/icons/4216.jpg b/public/icons/4216.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eba10341e93e482278bbeb6d51ba274948d8909c GIT binary patch literal 20074 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

@kb(I95iutL_;JeloWXG?G$B!YjP^^2Bl0wx z5a$_rhHv;2w@0Shn#s~NITzh0nJMu2RvYx0byRN9@s3~VU)}NkF`TZF zvrI-@=7ZH_c~VnHFRESUoArLVXCkR|uJ&i$p<2t1ElP1jsY*MNPUM=f(vVYbCn^Xe zSeTX@$a6c??gCt%Ro0Eb9Lqm?jlgMgPmLRZ!r$|#+y)$efCpRVlm?5YfEz0`0D@`& z^C|#X6(k;SK_`l!1k?fb0C)zYl>i#jJL059S?$QufliEbHeLleqaE8vk7z&0s=kkC zad_JQ00|>*#|~+2b=R!(IzycCE1tD=u^x_v(o-Hi^Gs|h&68aCo7iJ2H6k*>XL)FS z86LF8Yod*26NX)!hd@@5v8;NNl)7x}GYm}~v^u&zSA0i{CTxQ&z zZOO9VlHya6RPxG-M?8jgUQS)*wbu&zV76aCT}FbzXj$=~2fI~x&B-!fDpAB0Bn;`0%!p$pbuL}Jm>+!0Oe9a?ok7*N+#y^Cx+OgZ}?A_Q`VzbQY4t2zC VsJguJt#Lga1xdvnW}w=C|Jek#XlVcd literal 0 HcmV?d00001 diff --git a/public/icons/4274.jpg b/public/icons/4274.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ea6b68905065b8fe8f557f1dda02a0a5a8d09ce GIT binary patch literal 19682 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 literal 0 HcmV?d00001 diff --git a/public/images/visual-acrylic.png b/public/images/visual-acrylic.png new file mode 100644 index 0000000000000000000000000000000000000000..321422ce6e80d5c4e0212a2e9c157094cfbacf86 GIT binary patch literal 82202 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Ą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

gaz0l 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

n2|SUweOHqB#uTa|2koi8su5V zBYwecSgEPjyQuR+!keRFL{gz*4^@PxYSgJdB^Cag|Kg%i6hjrlnMf) z|1e*5w@TG5;~M{w*5Iiz7F2fSmE!^{j7isHw!JtU$!4RIvn#t=s}5@NU++wePn&5(5lrf) zmYV%Lkeh!AqmaIHhG-C6s)Od8Qz!N!|H}Jwf~=V-YH5wwqi-z>Hp{uH)Lg2I`+>E? z{%3*6qW`Xk$}6)RpGSsxqyw)T4Cor-=tgz&p`aRQ;9-B)Nq%!mjIJ9COcUv{h><^8 z55>025X_K)uDc%%hD9E(By#aNiy_VBBrdP(rA-4MX#?lJchf~}-IfgYln0$R19#QD~zuy@@dG)IC_q?GIpg5?bO2*9y3vWBVxEuf$94|KJP zp>W~{J|x6m1C(`!FuTS76;{$1K&h;vl1_b?#AJw){|I@F`J9(;d9i0Tq_8O@Q7;Nm zJ49LOoAd1E7RHqWRRR{Roe4}gBR%({*t^br=D$oljDZWEZdRgZjDOqj9rA`;sgPM~oTm z(*ui5UaYl?)Z{|b^C>7db^v9arWX8NNP|Gzs#)0U@%-8@ab9@&aK)T>%wNULzG*~J z&aJmD{p}K3(|3MEUv-e<#rjCOXC&;*RTV1)oQ;ur+^nXRgWgneth7lyCpZhy&z4}> zEkA{`!5lO2{OH+X&LP%QxYiXQtcpo;$e84mu*0@~+2CA*FC}Nk4J@Qbnll9^!^i}oh|G8vNpTUmQ4D#}Y%JzJ7sE8cR5dUr3YW_N9LaHH)&eEWB2 zO8j{}l{F9`M&u(_td)8*Rs{7U13K{hQ`AiX+_VtP5rk+~8Y?31J@SfB0Q{j9*}DOx zcuu5K>q6&GOD3JCL`eg=83q^_b%)1Is|1RAx7Ja7rfg%irP^=$yT-B?J1=RwuXRh( zc&!-?N?93)Wyh~HTILAyV!|N}y4APuORVA!qE<7mwCmsrCQ9$O(L%4PYuuHnm!Oty z1}%kBbRJFh4Ya8*GAj5Y>6z-g{>+Ku7)v4dkg`!h@c|^9xD>AqJ&^H^PRAeI;X>WVRSvN&yQkdy1ZER*jIEotAX$gEQviM4sEZPIh z5XH`4Nt9ra>=xx&QOz&WbN2Yq!$_fk_!B+FcG1^i@AM?$so2A)kfb~_ew&)|lyRei zXJ|B5n%Pm}@cG0rDOf^=qk1LzQkCPb5l=WEjh>PHxB2QVN~_vtI@LZ*kYs5Oy(Z^a zv~0kMAH;tF~s~rn?W@ z8#)ZDAaPJO8Io|8(?hBwd$?Sj3@A8*W$q!=Gl%9tDS#k*EOO*8tRSy2dJIP*m z?q5-^mdcHCG!cKk`(vD%kt_|Q8CMs5UN*!N4 WBe9(E(@}F9T`&DQa3!lH8@?l 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 F{||O%<4gbm literal 0 HcmV?d00001 From f44fa4240ef64d6a48f1d22d985f06e0b255eb60 Mon Sep 17 00:00:00 2001 From: Nguyen Duy Date: Mon, 3 Aug 2026 16:36:20 +0700 Subject: [PATCH 03/12] feat(project): update packages, add tailwind v3 --- deno.json | 6 +- package.json | 30 +- pnpm-lock.yaml | 3381 +++++++++++++++++++++++++++++++++++--------- tailwind.config.ts | 81 ++ 4 files changed, 2842 insertions(+), 656 deletions(-) create mode 100644 tailwind.config.ts diff --git a/deno.json b/deno.json index 73a9d9b..7971de6 100644 --- a/deno.json +++ b/deno.json @@ -2,6 +2,7 @@ "fmt": { "files": { "include": [ + "README.md", "docs/" ] }, @@ -13,5 +14,6 @@ "semiColons": false, "proseWrap": "always" } - } -} \ No newline at end of file + }, + "exclude": [".vitepress", "components"] +} diff --git a/package.json b/package.json index 8a9422c..69d81aa 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "pengu-docs", - "version": "1.1.0", - "description": "Pengu Loader docs", + "version": "1.2.0", + "description": "Pengu Loader Docs", "license": "MIT", "type": "module", "scripts": { @@ -10,14 +10,20 @@ "preview": "vitepress preview" }, "devDependencies": { - "@types/node": "^18.14.6", - "vitepress": "^1.0.0-rc.4", - "vitepress-plugin-nprogress": "^0.0.4", - "vitepress-plugin-tabs": "^0.2.0", - "vue": "^3.3.4" + "@types/node": "^20", + "autoprefixer": "^10.5.4", + "moment": "^2.30.1", + "octokit": "^5.0.5", + "postcss": "^8.5.25", + "sass": "^1.102.0", + "tailwindcss": "^3.4.14", + "vitepress": "^1.6.4", + "vitepress-plugin-nprogress": "^0.1.1", + "vitepress-plugin-tabs": "^0.9.1", + "vue": "^3.5.40" }, "engines": { - "node": ">=18" + "node": ">=20" }, "pnpm": { "peerDependencyRules": { @@ -26,5 +32,11 @@ "search-insights" ] } + }, + "postcss": { + "plugins": { + "tailwindcss": {}, + "autoprefixer": {} + } } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2387549..ad7d51f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,218 +1,159 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -devDependencies: - '@types/node': - specifier: ^18.14.6 - version: 18.14.6 - vitepress: - specifier: ^1.0.0-rc.4 - version: 1.0.0-rc.4(@types/node@18.14.6) - vitepress-plugin-nprogress: - specifier: ^0.0.4 - version: 0.0.4 - vitepress-plugin-tabs: - specifier: ^0.2.0 - version: 0.2.0(vitepress@1.0.0-rc.4)(vue@3.3.4) - vue: - specifier: ^3.3.4 - version: 3.3.4 +importers: + + .: + devDependencies: + '@types/node': + specifier: ^20 + version: 20.17.6 + autoprefixer: + specifier: ^10.5.4 + version: 10.5.4(postcss@8.5.25) + moment: + specifier: ^2.30.1 + version: 2.30.1 + octokit: + specifier: ^5.0.5 + version: 5.0.5 + postcss: + specifier: ^8.5.25 + version: 8.5.25 + sass: + specifier: ^1.102.0 + version: 1.102.0 + tailwindcss: + specifier: ^3.4.14 + version: 3.4.14 + vitepress: + specifier: ^1.6.4 + version: 1.6.4(@algolia/client-search@5.56.0)(@types/node@20.17.6)(nprogress@0.2.0)(postcss@8.5.25)(sass@1.102.0)(search-insights@2.17.0) + vitepress-plugin-nprogress: + specifier: ^0.1.1 + version: 0.1.1 + vitepress-plugin-tabs: + specifier: ^0.9.1 + version: 0.9.1(vitepress@1.6.4(@algolia/client-search@5.56.0)(@types/node@20.17.6)(nprogress@0.2.0)(postcss@8.5.25)(sass@1.102.0)(search-insights@2.17.0))(vue@3.5.40) + vue: + specifier: ^3.5.40 + version: 3.5.40 packages: - /@algolia/autocomplete-core@1.9.3(algoliasearch@4.17.0): - resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} - dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(algoliasearch@4.17.0) - '@algolia/autocomplete-shared': 1.9.3(algoliasearch@4.17.0) - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - search-insights - dev: true + '@algolia/abtesting@1.22.0': + resolution: {integrity: sha512-BFR6zNowNKcY7Ou7TaJc9QWexES4YKPbmf/OTFofpdsdhz4x6q0lbxp3duO0EHnyrN7rE4ba/TSXuY+BDGu4+g==} + engines: {node: '>= 14.0.0'} - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(algoliasearch@4.17.0): - resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + '@algolia/autocomplete-core@1.17.7': + resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==} + + '@algolia/autocomplete-plugin-algolia-insights@1.17.7': + resolution: {integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==} peerDependencies: search-insights: '>= 1 < 3' - peerDependenciesMeta: - search-insights: - optional: true - dependencies: - '@algolia/autocomplete-shared': 1.9.3(algoliasearch@4.17.0) - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - dev: true - /@algolia/autocomplete-preset-algolia@1.9.3(algoliasearch@4.17.0): - resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + '@algolia/autocomplete-preset-algolia@1.17.7': + resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - peerDependenciesMeta: - '@algolia/client-search': - optional: true - dependencies: - '@algolia/autocomplete-shared': 1.9.3(algoliasearch@4.17.0) - algoliasearch: 4.17.0 - dev: true - /@algolia/autocomplete-shared@1.9.3(algoliasearch@4.17.0): - resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + '@algolia/autocomplete-shared@1.17.7': + resolution: {integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - peerDependenciesMeta: - '@algolia/client-search': - optional: true - dependencies: - algoliasearch: 4.17.0 - dev: true - /@algolia/cache-browser-local-storage@4.17.0: - resolution: {integrity: sha512-myRSRZDIMYB8uCkO+lb40YKiYHi0fjpWRtJpR/dgkaiBlSD0plRyB6lLOh1XIfmMcSeBOqDE7y9m8xZMrXYfyQ==} - dependencies: - '@algolia/cache-common': 4.17.0 - dev: true + '@algolia/client-abtesting@5.56.0': + resolution: {integrity: sha512-7r4Z3NC7yU1oAQVWJNA2HX7tX481F3pJvCGyLIXiTdBcthz4Q/o21jwcMYDFkuI92UWTNBQQmHYgwHo1zS5dzg==} + engines: {node: '>= 14.0.0'} - /@algolia/cache-common@4.17.0: - resolution: {integrity: sha512-g8mXzkrcUBIPZaulAuqE7xyHhLAYAcF2xSch7d9dABheybaU3U91LjBX6eJTEB7XVhEsgK4Smi27vWtAJRhIKQ==} - dev: true + '@algolia/client-analytics@5.56.0': + resolution: {integrity: sha512-avmjXQSq+jadFO8Xl2em05/uQdQnEmHsJyOAdVbZkmVgpMfxL12aJwVVfGNwYr9nulcpuJN1X0lTaQ5wxuNGcA==} + engines: {node: '>= 14.0.0'} - /@algolia/cache-in-memory@4.17.0: - resolution: {integrity: sha512-PT32ciC/xI8z919d0oknWVu3kMfTlhQn3MKxDln3pkn+yA7F7xrxSALysxquv+MhFfNAcrtQ/oVvQVBAQSHtdw==} - dependencies: - '@algolia/cache-common': 4.17.0 - dev: true + '@algolia/client-common@5.56.0': + resolution: {integrity: sha512-v2TPStUhY//ripPjIVclZ8AWc7DEGooXULZGFlFu37zNatgHjw34oZZ+OSbbc/YHO+xZwPl62I1k8xH1m4S2eg==} + engines: {node: '>= 14.0.0'} - /@algolia/client-account@4.17.0: - resolution: {integrity: sha512-sSEHx9GA6m7wrlsSMNBGfyzlIfDT2fkz2u7jqfCCd6JEEwmxt8emGmxAU/0qBfbhRSuGvzojoLJlr83BSZAKjA==} - dependencies: - '@algolia/client-common': 4.17.0 - '@algolia/client-search': 4.17.0 - '@algolia/transporter': 4.17.0 - dev: true + '@algolia/client-insights@5.56.0': + resolution: {integrity: sha512-P0ehROpM4Sem3Sqo5x2cKPgj67D3G3jy0rh1Amwkcvsfr6tkvIcdCmerieanqTF7NxUMPNFLkpIFeMO8Rpa50w==} + engines: {node: '>= 14.0.0'} - /@algolia/client-analytics@4.17.0: - resolution: {integrity: sha512-84ooP8QA3mQ958hQ9wozk7hFUbAO+81CX1CjAuerxBqjKIInh1fOhXKTaku05O/GHBvcfExpPLIQuSuLYziBXQ==} - dependencies: - '@algolia/client-common': 4.17.0 - '@algolia/client-search': 4.17.0 - '@algolia/requester-common': 4.17.0 - '@algolia/transporter': 4.17.0 - dev: true + '@algolia/client-personalization@5.56.0': + resolution: {integrity: sha512-SXK3Vn3WVxyzbm31oePZBJkp1wpOyuWdd4B/Pv7n0aXDxmeSWhC1R1FC1517mMrFAIaPH4Rt0x6RUe7ZNjz8FA==} + engines: {node: '>= 14.0.0'} - /@algolia/client-common@4.17.0: - resolution: {integrity: sha512-jHMks0ZFicf8nRDn6ma8DNNsdwGgP/NKiAAL9z6rS7CymJ7L0+QqTJl3rYxRW7TmBhsUH40wqzmrG6aMIN/DrQ==} - dependencies: - '@algolia/requester-common': 4.17.0 - '@algolia/transporter': 4.17.0 - dev: true + '@algolia/client-query-suggestions@5.56.0': + resolution: {integrity: sha512-5+ZdX8garFnmycnZgKhtXHePEaLj5zqDxI/0lkhhluzCcvTn0/PvvTirTg8hHYetQHvn7GDyeAiqTAieMvMW4A==} + engines: {node: '>= 14.0.0'} - /@algolia/client-personalization@4.17.0: - resolution: {integrity: sha512-RMzN4dZLIta1YuwT7QC9o+OeGz2cU6eTOlGNE/6RcUBLOU3l9tkCOdln5dPE2jp8GZXPl2yk54b2nSs1+pAjqw==} - dependencies: - '@algolia/client-common': 4.17.0 - '@algolia/requester-common': 4.17.0 - '@algolia/transporter': 4.17.0 - dev: true + '@algolia/client-search@5.56.0': + resolution: {integrity: sha512-+mKUdYvqOi0BcvpAEyCEw49vSBptufIcfibtHz2bdr1pI789M46Yt0uQEk/sxtK3teh71OQvVFHaTDzShUWewQ==} + engines: {node: '>= 14.0.0'} - /@algolia/client-search@4.17.0: - resolution: {integrity: sha512-x4P2wKrrRIXszT8gb7eWsMHNNHAJs0wE7/uqbufm4tZenAp+hwU/hq5KVsY50v+PfwM0LcDwwn/1DroujsTFoA==} - dependencies: - '@algolia/client-common': 4.17.0 - '@algolia/requester-common': 4.17.0 - '@algolia/transporter': 4.17.0 - dev: true + '@algolia/ingestion@1.56.0': + resolution: {integrity: sha512-9g/zj+AZx5moFcdFIrYQoVrueXivjUcc3MQHtCYT8WhIuk1lUh1AyEhvJCS0XBZld09cLvd1AZ3BvDBpVpX2UA==} + engines: {node: '>= 14.0.0'} - /@algolia/logger-common@4.17.0: - resolution: {integrity: sha512-DGuoZqpTmIKJFDeyAJ7M8E/LOenIjWiOsg1XJ1OqAU/eofp49JfqXxbfgctlVZVmDABIyOz8LqEoJ6ZP4DTyvw==} - dev: true + '@algolia/monitoring@1.56.0': + resolution: {integrity: sha512-Qf3Sr6f9A9uxCZUf3MXS0d2b877uYzEB5yxqpVGXAhcJnBCQjrRRon0KvefpGkxy+BshrIJs96OUoMtGqXTFDA==} + engines: {node: '>= 14.0.0'} - /@algolia/logger-console@4.17.0: - resolution: {integrity: sha512-zMPvugQV/gbXUvWBCzihw6m7oxIKp48w37QBIUu/XqQQfxhjoOE9xyfJr1KldUt5FrYOKZJVsJaEjTsu+bIgQg==} - dependencies: - '@algolia/logger-common': 4.17.0 - dev: true + '@algolia/recommend@5.56.0': + resolution: {integrity: sha512-GXWG1rWc5wu8hY4N33Y3b6ernY6sAdAvmKWN/zHAiACOx40WnpG0TVX5YazCAr/9gOYGInSiM2A0y2jy2xbiDA==} + engines: {node: '>= 14.0.0'} - /@algolia/requester-browser-xhr@4.17.0: - resolution: {integrity: sha512-aSOX/smauyTkP21Pf52pJ1O2LmNFJ5iHRIzEeTh0mwBeADO4GdG94cAWDILFA9rNblq/nK3EDh3+UyHHjplZ1A==} - dependencies: - '@algolia/requester-common': 4.17.0 - dev: true + '@algolia/requester-browser-xhr@5.56.0': + resolution: {integrity: sha512-7t24cBxaInS3mZb7ddEaZT/tp6q+/aR4YttsQVyP1/i+LmwPR34atO35KjaLFCcRVrlP7sYOAqkCfg6lIRB+ew==} + engines: {node: '>= 14.0.0'} - /@algolia/requester-common@4.17.0: - resolution: {integrity: sha512-XJjmWFEUlHu0ijvcHBoixuXfEoiRUdyzQM6YwTuB8usJNIgShua8ouFlRWF8iCeag0vZZiUm4S2WCVBPkdxFgg==} - dev: true + '@algolia/requester-fetch@5.56.0': + resolution: {integrity: sha512-R7ePHgVYmDFjZpvrsVAfbDz/d4RxKAYZ5/vgLfIsCVRZRryjWl/3INOxpOICzitehQ5FjNtNjcLQTrmHPTcHBQ==} + engines: {node: '>= 14.0.0'} - /@algolia/requester-node-http@4.17.0: - resolution: {integrity: sha512-bpb/wDA1aC6WxxM8v7TsFspB7yBN3nqCGs2H1OADolQR/hiAIjAxusbuMxVbRFOdaUvAIqioIIkWvZdpYNIn8w==} - dependencies: - '@algolia/requester-common': 4.17.0 - dev: true + '@algolia/requester-node-http@5.56.0': + resolution: {integrity: sha512-PIOUXlSnrqM0S+WOgDRb4RzotydJH7ZoT6tOyL7tAO7qJOfvX5wsEW8Pe+PMKMwvuI4/gIyK9cg2H7lJXqnc4Q==} + engines: {node: '>= 14.0.0'} - /@algolia/transporter@4.17.0: - resolution: {integrity: sha512-6xL6H6fe+Fi0AEP3ziSgC+G04RK37iRb4uUUqVAH9WPYFI8g+LYFq6iv5HS8Cbuc5TTut+Bwj6G+dh/asdb9uA==} - dependencies: - '@algolia/cache-common': 4.17.0 - '@algolia/logger-common': 4.17.0 - '@algolia/requester-common': 4.17.0 - dev: true + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} - /@babel/helper-string-parser@7.19.4: - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - dev: true - /@babel/parser@7.21.4: - resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} + '@babel/parser@7.29.8': + resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.21.4 - dev: true - /@babel/types@7.21.4: - resolution: {integrity: sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==} + '@babel/types@7.29.8': + resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - dev: true - /@docsearch/css@3.5.1: - resolution: {integrity: sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==} - dev: true + '@docsearch/css@3.8.2': + resolution: {integrity: sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==} - /@docsearch/js@3.5.1: - resolution: {integrity: sha512-EXi8de5njxgP6TV3N9ytnGRLG9zmBNTEZjR4VzwPcpPLbZxxTLG2gaFyJyKiFVQxHW/DPlMrDJA3qoRRGEkgZw==} - dependencies: - '@docsearch/react': 3.5.1 - preact: 10.13.2 - transitivePeerDependencies: - - '@algolia/client-search' - - '@types/react' - - react - - react-dom - - search-insights - dev: true + '@docsearch/js@3.8.2': + resolution: {integrity: sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==} - /@docsearch/react@3.5.1: - resolution: {integrity: sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==} + '@docsearch/react@3.8.2': + resolution: {integrity: sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' react-dom: '>= 16.8.0 < 19.0.0' + search-insights: '>= 1 < 3' peerDependenciesMeta: '@types/react': optional: true @@ -220,351 +161,594 @@ packages: optional: true react-dom: optional: true - dependencies: - '@algolia/autocomplete-core': 1.9.3(algoliasearch@4.17.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(algoliasearch@4.17.0) - '@docsearch/css': 3.5.1 - algoliasearch: 4.17.0 - transitivePeerDependencies: - - '@algolia/client-search' - - search-insights - dev: true + search-insights: + optional: true + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] - /@esbuild/android-arm64@0.18.16: - resolution: {integrity: sha512-wsCqSPqLz+6Ov+OM4EthU43DyYVVyfn15S4j1bJzylDpc1r1jZFFfJQNfDuT8SlgwuqpmpJXK4uPlHGw6ve7eA==} + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.18.16: - resolution: {integrity: sha512-gCHjjQmA8L0soklKbLKA6pgsLk1byULuHe94lkZDzcO3/Ta+bbeewJioEn1Fr7kgy9NWNFy/C+MrBwC6I/WCug==} + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.18.16: - resolution: {integrity: sha512-ldsTXolyA3eTQ1//4DS+E15xl0H/3DTRJaRL0/0PgkqDsI0fV/FlOtD+h0u/AUJr+eOTlZv4aC9gvfppo3C4sw==} + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.18.16: - resolution: {integrity: sha512-aBxruWCII+OtluORR/KvisEw0ALuw/qDQWvkoosA+c/ngC/Kwk0lLaZ+B++LLS481/VdydB2u6tYpWxUfnLAIw==} + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.18.16: - resolution: {integrity: sha512-6w4Dbue280+rp3LnkgmriS1icOUZDyPuZo/9VsuMUTns7SYEiOaJ7Ca1cbhu9KVObAWfmdjUl4gwy9TIgiO5eA==} + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.18.16: - resolution: {integrity: sha512-x35fCebhe9s979DGKbVAwXUOcTmCIE32AIqB9CB1GralMIvxdnMLAw5CnID17ipEw9/3MvDsusj/cspYt2ZLNQ==} + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.18.16: - resolution: {integrity: sha512-YM98f+PeNXF3GbxIJlUsj+McUWG1irguBHkszCIwfr3BXtXZsXo0vqybjUDFfu9a8Wr7uUD/YSmHib+EeGAFlg==} + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.18.16: - resolution: {integrity: sha512-XIqhNUxJiuy+zsR77+H5Z2f7s4YRlriSJKtvx99nJuG5ATuJPjmZ9n0ANgnGlPCpXGSReFpgcJ7O3SMtzIFeiQ==} + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.18.16: - resolution: {integrity: sha512-b5ABb+5Ha2C9JkeZXV+b+OruR1tJ33ePmv9ZwMeETSEKlmu/WJ45XTTG+l6a2KDsQtJJ66qo/hbSGBtk0XVLHw==} + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.18.16: - resolution: {integrity: sha512-no+pfEpwnRvIyH+txbBAWtjxPU9grslmTBfsmDndj7bnBmr55rOo/PfQmRfz7Qg9isswt1FP5hBbWb23fRWnow==} + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.18.16: - resolution: {integrity: sha512-Zbnczs9ZXjmo0oZSS0zbNlJbcwKXa/fcNhYQjahDs4Xg18UumpXG/lwM2lcSvHS3mTrRyCYZvJbmzYc4laRI1g==} + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.18.16: - resolution: {integrity: sha512-YMF7hih1HVR/hQVa/ot4UVffc5ZlrzEb3k2ip0nZr1w6fnYypll9td2qcoMLvd3o8j3y6EbJM3MyIcXIVzXvQQ==} + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.18.16: - resolution: {integrity: sha512-Wkz++LZ29lDwUyTSEnzDaaP5OveOgTU69q9IyIw9WqLRxM4BjTBjz9un4G6TOvehWpf/J3gYVFN96TjGHrbcNQ==} + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.18.16: - resolution: {integrity: sha512-LFMKZ30tk78/mUv1ygvIP+568bwf4oN6reG/uczXnz6SvFn4e2QUFpUpZY9iSJT6Qpgstrhef/nMykIXZtZWGQ==} + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.18.16: - resolution: {integrity: sha512-3ZC0BgyYHYKfZo3AV2/66TD/I9tlSBaW7eWTEIkrQQKfJIifKMMttXl9FrAg+UT0SGYsCRLI35Gwdmm96vlOjg==} + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.18.16: - resolution: {integrity: sha512-xu86B3647DihHJHv/wx3NCz2Dg1gjQ8bbf9cVYZzWKY+gsvxYmn/lnVlqDRazObc3UMwoHpUhNYaZset4X8IPA==} + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.18.16: - resolution: {integrity: sha512-uVAgpimx9Ffw3xowtg/7qQPwHFx94yCje+DoBx+LNm2ePDpQXHrzE+Sb0Si2VBObYz+LcRps15cq+95YM7gkUw==} + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.18.16: - resolution: {integrity: sha512-6OjCQM9wf7z8/MBi6BOWaTL2AS/SZudsZtBziXMtNI8r/U41AxS9x7jn0ATOwVy08OotwkPqGRMkpPR2wcTJXA==} + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.18.16: - resolution: {integrity: sha512-ZoNkruFYJp9d1LbUYCh8awgQDvB9uOMZqlQ+gGEZR7v6C+N6u7vPr86c+Chih8niBR81Q/bHOSKGBK3brJyvkQ==} + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.18.16: - resolution: {integrity: sha512-+j4anzQ9hrs+iqO+/wa8UE6TVkKua1pXUb0XWFOx0FiAj6R9INJ+WE//1/Xo6FG1vB5EpH3ko+XcgwiDXTxcdw==} + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.18.16: - resolution: {integrity: sha512-5PFPmq3sSKTp9cT9dzvI67WNfRZGvEVctcZa1KGjDDu4n3H8k59Inbk0du1fz0KrAbKKNpJbdFXQMDUz7BG4rQ==} + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.18.16: - resolution: {integrity: sha512-sCIVrrtcWN5Ua7jYXNG1xD199IalrbfV2+0k/2Zf2OyV2FtnQnMgdzgpRAbi4AWlKJj1jkX+M+fEGPQj6BQB4w==} + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true + '@iconify-json/simple-icons@1.2.93': + resolution: {integrity: sha512-/XhANjfGYOuqvSR3TmUnkQkINvQ4GVjVuukvymRbxtVFBvIq/yiXJqCDycKcQPT401OYT9H2vIY6ihAlz1QIAw==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@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'} + + '@octokit/app@16.1.4': + resolution: {integrity: sha512-g70WONQyGoBgqIJtv4O0MUEfOF1iJpTfFt3qAW7HaiwiJ6k607xg/gBezCa4tuq6BpO6qXn7qvq8v9tjWtgGQg==} + engines: {node: '>= 20'} + + '@octokit/auth-app@8.3.0': + resolution: {integrity: sha512-/UaKmJCsOc5XBZwhnFiGNdLH/FkDF8lYtBn1QlKxtX7IpgaRB/XOXjixFtERAknyUZHxp3oDuoiG0En4VptJSg==} + engines: {node: '>= 20'} + + '@octokit/auth-oauth-app@9.0.4': + resolution: {integrity: sha512-Pe3du5LrC6dlv10b0RbarBlJtIT1Urq8BFoQklK8WmBw8YKnGgrANn7cQmHiA1v8AVihgi7YutV8MncP57I4og==} + engines: {node: '>= 20'} + + '@octokit/auth-oauth-device@8.0.4': + resolution: {integrity: sha512-M/+34rmkxMvUnnTo/uqNeVRCXJoJ+5N34eNTbL1KMtIyJpedCTsu/iFL1cWdL+w5hQMlYt6xzXoyux2gn0OVnw==} + engines: {node: '>= 20'} + + '@octokit/auth-oauth-user@6.0.3': + resolution: {integrity: sha512-t4OKUhrI5britmpRiSzPAz1TJPyUN/Hw1HEE3Hz/uElxcmnf/YCRSKtFRNc5gy4yJFTlXgk34H1lvxiotQJQvQ==} + engines: {node: '>= 20'} + + '@octokit/auth-token@6.0.0': + resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} + engines: {node: '>= 20'} - /@types/node@18.14.6: - resolution: {integrity: sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==} - dev: true + '@octokit/auth-unauthenticated@7.0.4': + resolution: {integrity: sha512-j4zgVdP8C8C53PNsj4LLI+WFtoykaQARwwrIBILTdxwZ2Ljaa9YUxb1yQ7/seGVnmWPdC3OBefX3LLbh28gKtw==} + engines: {node: '>= 20'} - /@types/web-bluetooth@0.0.17: - resolution: {integrity: sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==} - dev: true + '@octokit/core@7.0.7': + resolution: {integrity: sha512-DcB0M3KFgr9ECI328lhBMVsyFT2DnmNucSBTqEN3exyNKUzkkpUSCHmTRcunF41Eou2TIQKW4seewri8ON9bSA==} + engines: {node: '>= 20'} - /@vitejs/plugin-vue@4.2.3(vite@4.4.9)(vue@3.3.4): - resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==} - engines: {node: ^14.18.0 || >=16.0.0} + '@octokit/endpoint@11.0.4': + resolution: {integrity: sha512-f1cOWoHPmxryJFknxbtDdjODWfV8A9tc8Aae6ermXPNgHFZ/x91AtHIz4gicEjL8hkJiip+u21QHJORfBv/qiA==} + engines: {node: '>= 20'} + + '@octokit/graphql@9.0.4': + resolution: {integrity: sha512-5s15CCiY8XXQ+FG+b1YQcl6Z2FA++nwAz/tg2VUrTmnMncP+2nnGUEYANImdnxsA2Fnq+Mbl7hDjUTw7cFAwcg==} + engines: {node: '>= 20'} + + '@octokit/oauth-app@8.0.4': + resolution: {integrity: sha512-Ji5JpRwAJcbOJkO4ij0tW6+GrQ8efpICnAca3o5xI8/HUNjqJu3hhG4cCZdXAHMKaOaQTFX0Yl+cpu61Rsx94A==} + engines: {node: '>= 20'} + + '@octokit/oauth-authorization-url@8.0.0': + resolution: {integrity: sha512-7QoLPRh/ssEA/HuHBHdVdSgF8xNLz/Bc5m9fZkArJE5bb6NmVkDm3anKxXPmN1zh6b5WKZPRr3697xKT/yM3qQ==} + engines: {node: '>= 20'} + + '@octokit/oauth-methods@6.0.3': + resolution: {integrity: sha512-t7MBs34Ja16BBZlOSAFslFh4wBMuofD83wVLG9zIuuEGMv/U12XAJ8ESOifgEcC1ptjhNA3sorLA9BCtVfgPuw==} + engines: {node: '>= 20'} + + '@octokit/openapi-types@27.0.0': + resolution: {integrity: sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==} + + '@octokit/openapi-types@28.0.0': + resolution: {integrity: sha512-0rFyLuyHvIj6uuZWuDslxkowFYdPXoNIkeAv4b27dzm2Tf4vGWXnPsMcxs7d65kLdMERgP3wc1AEPlqMz8e1cQ==} + + '@octokit/openapi-webhooks-types@12.1.0': + resolution: {integrity: sha512-WiuzhOsiOvb7W3Pvmhf8d2C6qaLHXrWiLBP4nJ/4kydu+wpagV5Fkz9RfQwV2afYzv3PB+3xYgp4mAdNGjDprA==} + + '@octokit/plugin-paginate-graphql@6.0.0': + resolution: {integrity: sha512-crfpnIoFiBtRkvPqOyLOsw12XsveYuY2ieP6uYDosoUegBJpSVxGwut9sxUgFFcll3VTOTqpUf8yGd8x1OmAkQ==} + engines: {node: '>= 20'} peerDependencies: - vite: ^4.0.0 - vue: ^3.2.25 - dependencies: - vite: 4.4.9(@types/node@18.14.6) - vue: 3.3.4 - dev: true + '@octokit/core': '>=6' - /@vue/compiler-core@3.3.4: - resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} - dependencies: - '@babel/parser': 7.21.4 - '@vue/shared': 3.3.4 - estree-walker: 2.0.2 - source-map-js: 1.0.2 - dev: true + '@octokit/plugin-paginate-rest@14.0.0': + resolution: {integrity: sha512-fNVRE7ufJiAA3XUrha2omTA39M6IXIc6GIZLvlbsm8QOQCYvpq/LkMNGyFlB1d8hTDzsAXa3OKtybdMAYsV/fw==} + engines: {node: '>= 20'} + peerDependencies: + '@octokit/core': '>=6' - /@vue/compiler-dom@3.3.4: - resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} - dependencies: - '@vue/compiler-core': 3.3.4 - '@vue/shared': 3.3.4 - dev: true + '@octokit/plugin-paginate-rest@15.0.0': + resolution: {integrity: sha512-lw9A9YL5s4VPj+VEx8uMxaxQm2YTgrPDkrLEuZuu18R8TK3oPcXF4K6t52nx6xn1RcogZC9i188sAr/4XYJaQQ==} + engines: {node: '>= 20'} + peerDependencies: + '@octokit/core': '>=6' - /@vue/compiler-sfc@3.3.4: - resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} - dependencies: - '@babel/parser': 7.21.4 - '@vue/compiler-core': 3.3.4 - '@vue/compiler-dom': 3.3.4 - '@vue/compiler-ssr': 3.3.4 - '@vue/reactivity-transform': 3.3.4 - '@vue/shared': 3.3.4 - estree-walker: 2.0.2 - magic-string: 0.30.1 - postcss: 8.4.27 - source-map-js: 1.0.2 - dev: true + '@octokit/plugin-rest-endpoint-methods@17.0.0': + resolution: {integrity: sha512-B5yCyIlOJFPqUUeiD0cnBJwWJO8lkJs5d8+ze9QDP6SvfiXSz1BF+91+0MeI1d2yxgOhU/O+CvtiZ9jSkHhFAw==} + engines: {node: '>= 20'} + peerDependencies: + '@octokit/core': '>=6' - /@vue/compiler-ssr@3.3.4: - resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} - dependencies: - '@vue/compiler-dom': 3.3.4 - '@vue/shared': 3.3.4 - dev: true + '@octokit/plugin-retry@8.1.1': + resolution: {integrity: sha512-VCVvZ/R1+u3WuiBWpNavZ0mY4aaJNAsENrpBP9aLSR2QyOpQgd7DhM5j4AW7z4MQpnJYgwBPf0XqPQoNBRdQwg==} + engines: {node: '>= 20'} + peerDependencies: + '@octokit/core': '>=7' - /@vue/devtools-api@6.5.0: - resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} - dev: true + '@octokit/plugin-throttling@11.0.5': + resolution: {integrity: sha512-LIdrkrUv+DWbKeg/49rGuFJ3SU0d3hUS+B4MhNZLepBoNUFXms8Ic9edJjrlx+zycqJHjrMRudVpVb/bAXM2Lw==} + engines: {node: '>= 20'} + peerDependencies: + '@octokit/core': ^7.0.0 - /@vue/reactivity-transform@3.3.4: - resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} - dependencies: - '@babel/parser': 7.21.4 - '@vue/compiler-core': 3.3.4 - '@vue/shared': 3.3.4 - estree-walker: 2.0.2 - magic-string: 0.30.1 - dev: true + '@octokit/request-error@7.1.1': + resolution: {integrity: sha512-+eaY7G2VVpSf2pc5Gn1+mph837V/d/TYTJAgWL9Tb0ogGYcpN3IlAVFgjL+Vv93F/sevrxkvsYCedtpLdcFLzA==} + engines: {node: '>= 20'} - /@vue/reactivity@3.3.4: - resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} - dependencies: - '@vue/shared': 3.3.4 - dev: true + '@octokit/request@10.0.13': + resolution: {integrity: sha512-v2269YxL9Yf+x3d+gRI63FP0vFQEiWgLyBzxe/Y+0yFDg2B/Tzf5dhh9VNfccVAQnfcfwQWyk/y6Bn7rUXXs7A==} + engines: {node: '>= 20'} - /@vue/runtime-core@3.3.4: - resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} - dependencies: - '@vue/reactivity': 3.3.4 - '@vue/shared': 3.3.4 - dev: true + '@octokit/types@16.0.0': + resolution: {integrity: sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==} - /@vue/runtime-dom@3.3.4: - resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} - dependencies: - '@vue/runtime-core': 3.3.4 - '@vue/shared': 3.3.4 - csstype: 3.1.2 - dev: true + '@octokit/types@17.0.0': + resolution: {integrity: sha512-ByP1v7YL5SMveFPP7+sj0/ZuWCOOg/Chs4NafOMpq6WNIM/hdGY0S7C0TCGDBWu1aGmOxmUIhMx3cO+IdwYZ1Q==} + + '@octokit/webhooks-methods@6.0.0': + resolution: {integrity: sha512-MFlzzoDJVw/GcbfzVC1RLR36QqkTLUf79vLVO3D+xn7r0QgxnFoLZgtrzxiQErAjFUOdH6fas2KeQJ1yr/qaXQ==} + engines: {node: '>= 20'} + + '@octokit/webhooks@14.2.0': + resolution: {integrity: sha512-da6KbdNCV5sr1/txD896V+6W0iamFWrvVl8cHkBSPT+YlvmT3DwXa4jxZnQc+gnuTEqSWbBeoSZYTayXH9wXcw==} + engines: {node: '>= 20'} + + '@parcel/watcher-android-arm64@2.5.0': + resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.0': + resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.0': + resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.0': + resolution: {integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.0': + resolution: {integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.0': + resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.0': + resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.0': + resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.0': + resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.0': + resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.5.0': + resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.0': + resolution: {integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.0': + resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.0': + resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} + engines: {node: '>= 10.0.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@rollup/rollup-android-arm-eabi@4.21.0': + resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.21.0': + resolution: {integrity: sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.21.0': + resolution: {integrity: sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.21.0': + resolution: {integrity: sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.21.0': + resolution: {integrity: sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.21.0': + resolution: {integrity: sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.21.0': + resolution: {integrity: sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.21.0': + resolution: {integrity: sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': + resolution: {integrity: sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==} + cpu: [ppc64] + os: [linux] - /@vue/server-renderer@3.3.4(vue@3.3.4): - resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} + '@rollup/rollup-linux-riscv64-gnu@4.21.0': + resolution: {integrity: sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.21.0': + resolution: {integrity: sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.21.0': + resolution: {integrity: sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.21.0': + resolution: {integrity: sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.21.0': + resolution: {integrity: sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.21.0': + resolution: {integrity: sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.21.0': + resolution: {integrity: sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==} + cpu: [x64] + os: [win32] + + '@shikijs/core@2.5.0': + resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} + + '@shikijs/engine-javascript@2.5.0': + resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==} + + '@shikijs/engine-oniguruma@2.5.0': + resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==} + + '@shikijs/langs@2.5.0': + resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==} + + '@shikijs/themes@2.5.0': + resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==} + + '@shikijs/transformers@2.5.0': + resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==} + + '@shikijs/types@2.5.0': + resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + + '@types/aws-lambda@8.10.145': + resolution: {integrity: sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + + '@types/node@20.17.6': + resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/web-bluetooth@0.0.21': + resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher + + '@vitejs/plugin-vue@5.2.4': + resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - vue: 3.3.4 - dependencies: - '@vue/compiler-ssr': 3.3.4 - '@vue/shared': 3.3.4 - vue: 3.3.4 - dev: true + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 - /@vue/shared@3.3.4: - resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} - dev: true + '@vue/compiler-core@3.5.40': + resolution: {integrity: sha512-39E8IgOhTbVDnoJFMKc2DvYnypcZwUqgUhQkccva/0m6FUwtIKSGV7n1hpVmYcFaoRAwf9pBcwnKlCEsN63ZEQ==} - /@vueuse/core@10.3.0(vue@3.3.4): - resolution: {integrity: sha512-BEM5yxcFKb5btFjTSAFjTu5jmwoW66fyV9uJIP4wUXXU8aR5Hl44gndaaXp7dC5HSObmgbnR2RN+Un1p68Mf5Q==} - dependencies: - '@types/web-bluetooth': 0.0.17 - '@vueuse/metadata': 10.3.0 - '@vueuse/shared': 10.3.0(vue@3.3.4) - vue-demi: 0.14.5(vue@3.3.4) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: true + '@vue/compiler-dom@3.5.40': + resolution: {integrity: sha512-pwkx4vqlqOspFstrcmzwkKLePVMD3PT65imRzLhanU2V1Fj4K13g6OXjanOyzw3aTAuRk84BOmY8f3rEHqPaVA==} + + '@vue/compiler-sfc@3.5.40': + resolution: {integrity: sha512-gIf497P4kpuALcvs5n3AEg1Vdn0pSY4XbjASIfHNYF1/MP3T2Mf2STERTubysBxCRxzJGJYtF/O7vwJrxFB3Vw==} + + '@vue/compiler-ssr@3.5.40': + resolution: {integrity: sha512-rrE5xiXG663+vHCHa3J9p2z5OcBRjXmoqenprJxAFQxg5pSshzeBiCE6pu46axapRJ2Adk0YDA2BRZVjiHXnhg==} + + '@vue/devtools-api@7.7.10': + resolution: {integrity: sha512-KxtEpUOOpFz/qOGRrAwA36QF7DqIA+FXgCYit9mk9wjbaZt0sXOFz81ElOZtKA4HbWHUdwNjZHBFsFFyp5BZiA==} + + '@vue/devtools-kit@7.7.10': + resolution: {integrity: sha512-3WNi2Kq4tbpVbmhml7RiphmAt0279oh3fKNeWMQIrltfX8Q91b4i5PL8DtyNKdwmcsGrV4fg+erwWOmD05CLIw==} - /@vueuse/integrations@10.3.0(focus-trap@7.5.2)(vue@3.3.4): - resolution: {integrity: sha512-Jgiv7oFyIgC6BxmDtiyG/fxyGysIds00YaY7sefwbhCZ2/tjEx1W/1WcsISSJPNI30in28+HC2J4uuU8184ekg==} + '@vue/devtools-shared@7.7.10': + resolution: {integrity: sha512-wOPslzB8vTvpxwdaOcR2qAbwmuSP0L+rhpoC6Cf56V3Jip+HWb7PQQXOUPgBNQARpXsbQX/+mvi8kKucmBGRwQ==} + + '@vue/reactivity@3.5.40': + resolution: {integrity: sha512-B7ot9UlUZOi1zbq61/LvE88ZLTV8IlajTdiZTAEiDQgrnIMIZoPr9kGw0Zw46ObW62O9+H/Be3kMbfb7kYPQZA==} + + '@vue/runtime-core@3.5.40': + resolution: {integrity: sha512-KAZLweuZ6uUJPK1PMSQPgBU5gCjgrrfjUhSglmU9NhH+Zjepa8cnwSydPWDWHDwOgY4g3VcZ+PljbiHlURNCbw==} + + '@vue/runtime-dom@3.5.40': + resolution: {integrity: sha512-ZfrX8ssZQds900L9pr8AuK05ddnMsR4MPMZr8cPN9GoqoPWcXLhjvvbIA2SMv+7a97sJ1vv9pj/zxK0Cq/eEFQ==} + + '@vue/server-renderer@3.5.40': + resolution: {integrity: sha512-XNJym9WpevhTVt1HuwOrCRJ5Q+9z4BjTMrDtjTrvx74SmUll8spNTw6whWJa9mEkO4PKn5TihI/bm/8ds2QVJw==} + + '@vue/shared@3.5.40': + resolution: {integrity: sha512-WxnBtruIqOoV3rA4jeKDWzrYI5h7Cp4+pjwDi8kWGHz+IslhiN+wguLVVhtv2l8VoU02rzDCVfDjgCl1lNpZVg==} + + '@vueuse/core@12.8.2': + resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} + + '@vueuse/integrations@12.8.2': + resolution: {integrity: sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==} peerDependencies: - async-validator: '*' - axios: '*' - change-case: '*' - drauu: '*' - focus-trap: '*' - fuse.js: '*' - idb-keyval: '*' - jwt-decode: '*' - nprogress: '*' - qrcode: '*' - sortablejs: '*' - universal-cookie: '*' + async-validator: ^4 + axios: ^1 + change-case: ^5 + drauu: ^0.4 + focus-trap: ^7 + fuse.js: ^7 + idb-keyval: ^6 + jwt-decode: ^4 + nprogress: ^0.2 + qrcode: ^1.5 + sortablejs: ^1 + universal-cookie: ^7 peerDependenciesMeta: async-validator: optional: true @@ -590,194 +774,658 @@ packages: optional: true universal-cookie: optional: true - dependencies: - '@vueuse/core': 10.3.0(vue@3.3.4) - '@vueuse/shared': 10.3.0(vue@3.3.4) - focus-trap: 7.5.2 - vue-demi: 0.14.5(vue@3.3.4) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: true - /@vueuse/metadata@10.3.0: - resolution: {integrity: sha512-Ema3YhNOa4swDsV0V7CEY5JXvK19JI/o1szFO1iWxdFg3vhdFtCtSTP26PCvbUpnUtNHBY2wx5y3WDXND5Pvnw==} - dev: true + '@vueuse/metadata@12.8.2': + resolution: {integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==} - /@vueuse/shared@10.3.0(vue@3.3.4): - resolution: {integrity: sha512-kGqCTEuFPMK4+fNWy6dUOiYmxGcUbtznMwBZLC1PubidF4VZY05B+Oht7Jh7/6x4VOWGpvu3R37WHi81cKpiqg==} - dependencies: - vue-demi: 0.14.5(vue@3.3.4) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: true - - /algoliasearch@4.17.0: - resolution: {integrity: sha512-JMRh2Mw6sEnVMiz6+APsi7lx9a2jiDFF+WUtANaUVCv6uSU9UOLdo5h9K3pdP6frRRybaM2fX8b1u0nqICS9aA==} - dependencies: - '@algolia/cache-browser-local-storage': 4.17.0 - '@algolia/cache-common': 4.17.0 - '@algolia/cache-in-memory': 4.17.0 - '@algolia/client-account': 4.17.0 - '@algolia/client-analytics': 4.17.0 - '@algolia/client-common': 4.17.0 - '@algolia/client-personalization': 4.17.0 - '@algolia/client-search': 4.17.0 - '@algolia/logger-common': 4.17.0 - '@algolia/logger-console': 4.17.0 - '@algolia/requester-browser-xhr': 4.17.0 - '@algolia/requester-common': 4.17.0 - '@algolia/requester-node-http': 4.17.0 - '@algolia/transporter': 4.17.0 - dev: true - - /ansi-sequence-parser@1.1.0: - resolution: {integrity: sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==} - dev: true - - /body-scroll-lock@4.0.0-beta.0: - resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} - dev: true - - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - dev: true - - /esbuild@0.18.16: - resolution: {integrity: sha512-1xLsOXrDqwdHxyXb/x/SOyg59jpf/SH7YMvU5RNSU7z3TInaASNJWNFJ6iRvLvLETZMasF3d1DdZLg7sgRimRQ==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.18.16 - '@esbuild/android-arm64': 0.18.16 - '@esbuild/android-x64': 0.18.16 - '@esbuild/darwin-arm64': 0.18.16 - '@esbuild/darwin-x64': 0.18.16 - '@esbuild/freebsd-arm64': 0.18.16 - '@esbuild/freebsd-x64': 0.18.16 - '@esbuild/linux-arm': 0.18.16 - '@esbuild/linux-arm64': 0.18.16 - '@esbuild/linux-ia32': 0.18.16 - '@esbuild/linux-loong64': 0.18.16 - '@esbuild/linux-mips64el': 0.18.16 - '@esbuild/linux-ppc64': 0.18.16 - '@esbuild/linux-riscv64': 0.18.16 - '@esbuild/linux-s390x': 0.18.16 - '@esbuild/linux-x64': 0.18.16 - '@esbuild/netbsd-x64': 0.18.16 - '@esbuild/openbsd-x64': 0.18.16 - '@esbuild/sunos-x64': 0.18.16 - '@esbuild/win32-arm64': 0.18.16 - '@esbuild/win32-ia32': 0.18.16 - '@esbuild/win32-x64': 0.18.16 - dev: true - - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true + '@vueuse/shared@12.8.2': + resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} - /focus-trap@7.5.2: - resolution: {integrity: sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==} - dependencies: - tabbable: 6.2.0 - dev: true + algoliasearch@5.56.0: + resolution: {integrity: sha512-PrqppUmhT4ENdas2pH9caE7efUcxy6EcSFhWzosiVuQBzu2tQ5yLTI6jwomT/1cuBnivzGfxiJCqDNN9FRRh+Q==} + engines: {node: '>= 14.0.0'} - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + 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@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + autoprefixer@10.5.4: + resolution: {integrity: sha512-MaU0U/za7N3r6brxD4YB/l4NSrFzLPlANv6wEuQVaIPlD3L4W9rFcQPbL/EilY9BHhHvhfcz3gInDLrEtWT4EA==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + baseline-browser-mapping@2.11.11: + resolution: {integrity: sha512-/yImnXwyTvgMkhgekLHok/Rx5vO6E0BmStWlSqKWMVm2a2ITuZ1Tn+9bgLS+gZRdZmWtd8nxuhHpdmCUOWsTQQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + before-after-hook@4.0.0: + resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==} + + binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + birpc@2.9.0: + resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} + + bottleneck@2.19.5: + resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + browserslist@4.28.7: + resolution: {integrity: sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + caniuse-lite@1.0.30001806: + resolution: {integrity: sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + content-type@2.0.0: + resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==} + engines: {node: '>=18'} + + copy-anything@4.0.5: + resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} + engines: {node: '>=18'} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.5.399: + resolution: {integrity: sha512-lEcqhErbHjXRvd41rnWLpzbyU/IXfIYo7QwaFWmxGeLiLyY2TBCdHnWY88vB+p3ubnihRypDm66panXl7TylLA==} + + emoji-regex-xs@1.0.0: + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + focus-trap@7.8.0: + resolution: {integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==} + + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - requiresBuild: true - dev: true - optional: true - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - /magic-string@0.30.1: - resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true + 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'} + + glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + immutable@5.1.9: + resolution: {integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + 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-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-what@5.5.0: + resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} + engines: {node: '>=18'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + + json-with-bigint@3.5.10: + resolution: {integrity: sha512-Vcx+JVNEBts/xfcoCS69sKrOhOk/3TVlvlT+XzUOefVKnnrbYSCKpDCm10pohsJFtsJVYnwa/cXRZ4eElzaM6w==} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - /mark.js@8.11.1: + lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + mark.js@8.11.1: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} - dev: true - /minisearch@6.1.0: - resolution: {integrity: sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==} - dev: true + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + + minisearch@7.2.0: + resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.16: + resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true - /nprogress@0.2.0: + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-releases@2.0.51: + resolution: {integrity: sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==} + engines: {node: '>=18'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + nprogress@0.2.0: resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - dev: true - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + octokit@5.0.5: + resolution: {integrity: sha512-4+/OFSqOjoyULo7eN7EA97DE0Xydj/PW5aIckxqQIoFjFwqXKuFCvXUJObyJfBF9Khu4RL/jlDRI9FPaMGfPnw==} + engines: {node: '>= 20'} + + oniguruma-to-es@3.1.1: + resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==} + + 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-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.0.1: + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss@8.4.27: - resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} + postcss@8.5.25: + resolution: {integrity: sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==} engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - /preact@10.13.2: + preact@10.13.2: resolution: {integrity: sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==} - dev: true - /rollup@3.28.0: - resolution: {integrity: sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} + property-information@7.2.0: + resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - /shiki@0.14.3: - resolution: {integrity: sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==} - dependencies: - ansi-sequence-parser: 1.1.0 - jsonc-parser: 3.2.0 - vscode-oniguruma: 1.7.0 - vscode-textmate: 8.0.0 - dev: true + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rollup@4.21.0: + resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + sass@1.102.0: + resolution: {integrity: sha512-NSOyTnaQF7rTAEOtI2fwb386vL+akyiQLBZu8Na7hXCb+umJy0GAqlcMIaqACZ6Z1VgTBS4K9PG6B3IdjHGJsw==} + engines: {node: '>=20.19.0'} + hasBin: true - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + search-insights@2.17.0: + resolution: {integrity: sha512-AskayU3QNsXQzSL6v4LTYST7NNfs2HWyHHB+sdORP9chsytAhro5XRfToAMI/LAVYgNbzowVZTMfBRodgbUHKg==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shiki@2.5.0: + resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - dev: true - /tabbable@6.2.0: - resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - dev: true + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: true + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + 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'} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + superjson@2.2.6: + resolution: {integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==} + engines: {node: '>=16'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tabbable@6.5.0: + resolution: {integrity: sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==} + + tailwindcss@3.4.14: + resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} + engines: {node: '>=14.0.0'} + hasBin: true + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toad-cache@3.7.4: + resolution: {integrity: sha512-m1TdR/rvT7kgGJZhspNtXdsdYk0fddFpJJFlG5s+UkPFo6lkLoZ3YLOaovPYjq1R75NP5JfeTlSHaOsE09peCg==} + engines: {node: '>=20'} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - /vite@4.4.9(@types/node@18.14.6): - resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} - engines: {node: ^14.18.0 || >=16.0.0} + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universal-github-app-jwt@2.2.0: + resolution: {integrity: sha512-G5o6f95b5BggDGuUfKDApKaCgNYy2x7OdHY0zSMF081O0EJobw+1130VONhrA7ezGSV2FNOGyM+KQpQZAr9bIQ==} + + universal-user-agent@7.0.2: + resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@types/node': '>= 14' + '@types/node': ^18.0.0 || >=20.0.0 less: '*' lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -790,110 +1438,1553 @@ packages: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: optional: true terser: optional: true - dependencies: - '@types/node': 18.14.6 - esbuild: 0.18.16 - postcss: 8.4.27 - rollup: 3.28.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /vitepress-plugin-nprogress@0.0.4: - resolution: {integrity: sha512-YzW36kBnjuFH91DOFIA5snyBf4WpF/cYfhAiyNefhqif8QQIKGsbpzvI8VN0M8RHLGr9iQyHhF7dQsm//Xf5Hw==} - dependencies: - nprogress: 0.2.0 - dev: true + vitepress-plugin-nprogress@0.1.1: + resolution: {integrity: sha512-rpiFJjAUkF2judTaqfk36L+Y8mJxoHWgkUgp2HMBGIfy60HDADGSxgIPQ//bpsSLdtiRq+YPKugYXl+Yr03Pfw==} - /vitepress-plugin-tabs@0.2.0(vitepress@1.0.0-rc.4)(vue@3.3.4): - resolution: {integrity: sha512-jTdtz4Z5fHllzcDAJaJK/bxE/2PhJSqetFUFgiB7xzw23O4yI+ntJrN+D3oP8XH/0559QUbrYd0K3YLoRaHbAA==} + vitepress-plugin-tabs@0.9.1: + resolution: {integrity: sha512-cRys9pWhyl5YnxXZ3BAdSDW8DriuXBewYhmUu4bBlnzksEDjzbKUwbNi30T74Vi1UXnY1a19Ap6DJDTOWJWdzA==} peerDependencies: - vitepress: ^1.0.0-alpha.29 - vue: ^3.2.45 - dependencies: - vitepress: 1.0.0-rc.4(@types/node@18.14.6) - vue: 3.3.4 - dev: true + vitepress: ^1.0.0 || ^2.0.0-alpha.17 + vue: ^3.5.0 - /vitepress@1.0.0-rc.4(@types/node@18.14.6): - resolution: {integrity: sha512-JCQ89Bm6ECUTnyzyas3JENo00UDJeK8q1SUQyJYou+4Yz5BKEc/F3O21cu++DnUT2zXc0kvQ2Aj4BZCc/nioXQ==} + vitepress@1.6.4: + resolution: {integrity: sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg==} hasBin: true - dependencies: - '@docsearch/css': 3.5.1 - '@docsearch/js': 3.5.1 - '@vitejs/plugin-vue': 4.2.3(vite@4.4.9)(vue@3.3.4) - '@vue/devtools-api': 6.5.0 - '@vueuse/core': 10.3.0(vue@3.3.4) - '@vueuse/integrations': 10.3.0(focus-trap@7.5.2)(vue@3.3.4) - body-scroll-lock: 4.0.0-beta.0 - focus-trap: 7.5.2 - mark.js: 8.11.1 - minisearch: 6.1.0 - shiki: 0.14.3 - vite: 4.4.9(@types/node@18.14.6) - vue: 3.3.4 - transitivePeerDependencies: - - '@algolia/client-search' - - '@types/node' - - '@types/react' - - '@vue/composition-api' - - async-validator - - axios - - change-case - - drauu - - fuse.js - - idb-keyval - - jwt-decode - - less - - lightningcss - - nprogress - - qrcode - - react - - react-dom - - sass - - search-insights - - sortablejs - - stylus - - sugarss - - terser - - universal-cookie - dev: true + peerDependencies: + markdown-it-mathjax3: ^4 + postcss: ^8 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true + + vue@3.5.40: + resolution: {integrity: sha512-+8PJ4SJXdn/cHGImF4CKdxlWHIN5Dkt7DoufRREM6h6uVCx2m7QxgcEQmmzyOK8A9mcafg7sFbJFYsdFVubTig==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - /vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - dev: true + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true - /vscode-textmate@8.0.0: - resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - dev: true + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} - /vue-demi@0.14.5(vue@3.3.4): - resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + + yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + engines: {node: '>= 14'} hasBin: true - requiresBuild: true - peerDependencies: - '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@algolia/abtesting@1.22.0': + dependencies: + '@algolia/client-common': 5.56.0 + '@algolia/requester-browser-xhr': 5.56.0 + '@algolia/requester-fetch': 5.56.0 + '@algolia/requester-node-http': 5.56.0 + + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.56.0)(algoliasearch@5.56.0)(search-insights@2.17.0)': dependencies: - vue: 3.3.4 - dev: true + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.56.0)(algoliasearch@5.56.0)(search-insights@2.17.0) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.56.0)(algoliasearch@5.56.0) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights - /vue@3.3.4: - resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.56.0)(algoliasearch@5.56.0)(search-insights@2.17.0)': dependencies: - '@vue/compiler-dom': 3.3.4 - '@vue/compiler-sfc': 3.3.4 - '@vue/runtime-dom': 3.3.4 - '@vue/server-renderer': 3.3.4(vue@3.3.4) - '@vue/shared': 3.3.4 - dev: true + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.56.0)(algoliasearch@5.56.0) + search-insights: 2.17.0 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.56.0)(algoliasearch@5.56.0)': + dependencies: + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.56.0)(algoliasearch@5.56.0) + '@algolia/client-search': 5.56.0 + algoliasearch: 5.56.0 + + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.56.0)(algoliasearch@5.56.0)': + dependencies: + '@algolia/client-search': 5.56.0 + algoliasearch: 5.56.0 + + '@algolia/client-abtesting@5.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + '@algolia/requester-browser-xhr': 5.56.0 + '@algolia/requester-fetch': 5.56.0 + '@algolia/requester-node-http': 5.56.0 + + '@algolia/client-analytics@5.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + '@algolia/requester-browser-xhr': 5.56.0 + '@algolia/requester-fetch': 5.56.0 + '@algolia/requester-node-http': 5.56.0 + + '@algolia/client-common@5.56.0': {} + + '@algolia/client-insights@5.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + '@algolia/requester-browser-xhr': 5.56.0 + '@algolia/requester-fetch': 5.56.0 + '@algolia/requester-node-http': 5.56.0 + + '@algolia/client-personalization@5.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + '@algolia/requester-browser-xhr': 5.56.0 + '@algolia/requester-fetch': 5.56.0 + '@algolia/requester-node-http': 5.56.0 + + '@algolia/client-query-suggestions@5.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + '@algolia/requester-browser-xhr': 5.56.0 + '@algolia/requester-fetch': 5.56.0 + '@algolia/requester-node-http': 5.56.0 + + '@algolia/client-search@5.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + '@algolia/requester-browser-xhr': 5.56.0 + '@algolia/requester-fetch': 5.56.0 + '@algolia/requester-node-http': 5.56.0 + + '@algolia/ingestion@1.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + '@algolia/requester-browser-xhr': 5.56.0 + '@algolia/requester-fetch': 5.56.0 + '@algolia/requester-node-http': 5.56.0 + + '@algolia/monitoring@1.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + '@algolia/requester-browser-xhr': 5.56.0 + '@algolia/requester-fetch': 5.56.0 + '@algolia/requester-node-http': 5.56.0 + + '@algolia/recommend@5.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + '@algolia/requester-browser-xhr': 5.56.0 + '@algolia/requester-fetch': 5.56.0 + '@algolia/requester-node-http': 5.56.0 + + '@algolia/requester-browser-xhr@5.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + + '@algolia/requester-fetch@5.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + + '@algolia/requester-node-http@5.56.0': + dependencies: + '@algolia/client-common': 5.56.0 + + '@alloc/quick-lru@5.2.0': {} + + '@babel/helper-string-parser@7.29.7': {} + + '@babel/helper-validator-identifier@7.29.7': {} + + '@babel/parser@7.29.8': + dependencies: + '@babel/types': 7.29.8 + + '@babel/types@7.29.8': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@docsearch/css@3.8.2': {} + + '@docsearch/js@3.8.2(@algolia/client-search@5.56.0)(search-insights@2.17.0)': + dependencies: + '@docsearch/react': 3.8.2(@algolia/client-search@5.56.0)(search-insights@2.17.0) + preact: 10.13.2 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + - search-insights + + '@docsearch/react@3.8.2(@algolia/client-search@5.56.0)(search-insights@2.17.0)': + dependencies: + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.56.0)(algoliasearch@5.56.0)(search-insights@2.17.0) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.56.0)(algoliasearch@5.56.0) + '@docsearch/css': 3.8.2 + algoliasearch: 5.56.0 + optionalDependencies: + search-insights: 2.17.0 + transitivePeerDependencies: + - '@algolia/client-search' + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@iconify-json/simple-icons@1.2.93': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify/types@2.0.0': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@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 + + '@octokit/app@16.1.4': + dependencies: + '@octokit/auth-app': 8.3.0 + '@octokit/auth-unauthenticated': 7.0.4 + '@octokit/core': 7.0.7 + '@octokit/oauth-app': 8.0.4 + '@octokit/plugin-paginate-rest': 15.0.0(@octokit/core@7.0.7) + '@octokit/types': 17.0.0 + '@octokit/webhooks': 14.2.0 + + '@octokit/auth-app@8.3.0': + dependencies: + '@octokit/auth-oauth-app': 9.0.4 + '@octokit/auth-oauth-user': 6.0.3 + '@octokit/request': 10.0.13 + '@octokit/request-error': 7.1.1 + '@octokit/types': 17.0.0 + toad-cache: 3.7.4 + universal-github-app-jwt: 2.2.0 + universal-user-agent: 7.0.2 + + '@octokit/auth-oauth-app@9.0.4': + dependencies: + '@octokit/auth-oauth-device': 8.0.4 + '@octokit/auth-oauth-user': 6.0.3 + '@octokit/request': 10.0.13 + '@octokit/types': 17.0.0 + universal-user-agent: 7.0.2 + + '@octokit/auth-oauth-device@8.0.4': + dependencies: + '@octokit/oauth-methods': 6.0.3 + '@octokit/request': 10.0.13 + '@octokit/types': 17.0.0 + universal-user-agent: 7.0.2 + + '@octokit/auth-oauth-user@6.0.3': + dependencies: + '@octokit/auth-oauth-device': 8.0.4 + '@octokit/oauth-methods': 6.0.3 + '@octokit/request': 10.0.13 + '@octokit/types': 17.0.0 + universal-user-agent: 7.0.2 + + '@octokit/auth-token@6.0.0': {} + + '@octokit/auth-unauthenticated@7.0.4': + dependencies: + '@octokit/request-error': 7.1.1 + '@octokit/types': 17.0.0 + + '@octokit/core@7.0.7': + dependencies: + '@octokit/auth-token': 6.0.0 + '@octokit/graphql': 9.0.4 + '@octokit/request': 10.0.13 + '@octokit/request-error': 7.1.1 + '@octokit/types': 17.0.0 + before-after-hook: 4.0.0 + universal-user-agent: 7.0.2 + + '@octokit/endpoint@11.0.4': + dependencies: + '@octokit/types': 17.0.0 + universal-user-agent: 7.0.2 + + '@octokit/graphql@9.0.4': + dependencies: + '@octokit/request': 10.0.13 + '@octokit/types': 17.0.0 + universal-user-agent: 7.0.2 + + '@octokit/oauth-app@8.0.4': + dependencies: + '@octokit/auth-oauth-app': 9.0.4 + '@octokit/auth-oauth-user': 6.0.3 + '@octokit/auth-unauthenticated': 7.0.4 + '@octokit/core': 7.0.7 + '@octokit/oauth-authorization-url': 8.0.0 + '@octokit/oauth-methods': 6.0.3 + '@types/aws-lambda': 8.10.145 + universal-user-agent: 7.0.2 + + '@octokit/oauth-authorization-url@8.0.0': {} + + '@octokit/oauth-methods@6.0.3': + dependencies: + '@octokit/oauth-authorization-url': 8.0.0 + '@octokit/request': 10.0.13 + '@octokit/request-error': 7.1.1 + '@octokit/types': 17.0.0 + + '@octokit/openapi-types@27.0.0': {} + + '@octokit/openapi-types@28.0.0': {} + + '@octokit/openapi-webhooks-types@12.1.0': {} + + '@octokit/plugin-paginate-graphql@6.0.0(@octokit/core@7.0.7)': + dependencies: + '@octokit/core': 7.0.7 + + '@octokit/plugin-paginate-rest@14.0.0(@octokit/core@7.0.7)': + dependencies: + '@octokit/core': 7.0.7 + '@octokit/types': 16.0.0 + + '@octokit/plugin-paginate-rest@15.0.0(@octokit/core@7.0.7)': + dependencies: + '@octokit/core': 7.0.7 + '@octokit/types': 17.0.0 + + '@octokit/plugin-rest-endpoint-methods@17.0.0(@octokit/core@7.0.7)': + dependencies: + '@octokit/core': 7.0.7 + '@octokit/types': 16.0.0 + + '@octokit/plugin-retry@8.1.1(@octokit/core@7.0.7)': + dependencies: + '@octokit/core': 7.0.7 + '@octokit/request-error': 7.1.1 + '@octokit/types': 17.0.0 + bottleneck: 2.19.5 + + '@octokit/plugin-throttling@11.0.5(@octokit/core@7.0.7)': + dependencies: + '@octokit/core': 7.0.7 + '@octokit/types': 17.0.0 + bottleneck: 2.19.5 + + '@octokit/request-error@7.1.1': + dependencies: + '@octokit/types': 17.0.0 + + '@octokit/request@10.0.13': + dependencies: + '@octokit/endpoint': 11.0.4 + '@octokit/request-error': 7.1.1 + '@octokit/types': 17.0.0 + content-type: 2.0.0 + json-with-bigint: 3.5.10 + universal-user-agent: 7.0.2 + + '@octokit/types@16.0.0': + dependencies: + '@octokit/openapi-types': 27.0.0 + + '@octokit/types@17.0.0': + dependencies: + '@octokit/openapi-types': 28.0.0 + + '@octokit/webhooks-methods@6.0.0': {} + + '@octokit/webhooks@14.2.0': + dependencies: + '@octokit/openapi-webhooks-types': 12.1.0 + '@octokit/request-error': 7.1.1 + '@octokit/webhooks-methods': 6.0.0 + + '@parcel/watcher-android-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-x64@2.5.0': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.0': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.0': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.0': + optional: true + + '@parcel/watcher-win32-arm64@2.5.0': + optional: true + + '@parcel/watcher-win32-ia32@2.5.0': + optional: true + + '@parcel/watcher-win32-x64@2.5.0': + optional: true + + '@parcel/watcher@2.5.0': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.5 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.0 + '@parcel/watcher-darwin-arm64': 2.5.0 + '@parcel/watcher-darwin-x64': 2.5.0 + '@parcel/watcher-freebsd-x64': 2.5.0 + '@parcel/watcher-linux-arm-glibc': 2.5.0 + '@parcel/watcher-linux-arm-musl': 2.5.0 + '@parcel/watcher-linux-arm64-glibc': 2.5.0 + '@parcel/watcher-linux-arm64-musl': 2.5.0 + '@parcel/watcher-linux-x64-glibc': 2.5.0 + '@parcel/watcher-linux-x64-musl': 2.5.0 + '@parcel/watcher-win32-arm64': 2.5.0 + '@parcel/watcher-win32-ia32': 2.5.0 + '@parcel/watcher-win32-x64': 2.5.0 + optional: true + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@rollup/rollup-android-arm-eabi@4.21.0': + optional: true + + '@rollup/rollup-android-arm64@4.21.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.21.0': + optional: true + + '@rollup/rollup-darwin-x64@4.21.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.21.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.21.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.21.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.21.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.21.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.21.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.21.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.21.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.21.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.21.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.21.0': + optional: true + + '@shikijs/core@2.5.0': + dependencies: + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 3.1.1 + + '@shikijs/engine-oniguruma@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + + '@shikijs/themes@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + + '@shikijs/transformers@2.5.0': + dependencies: + '@shikijs/core': 2.5.0 + '@shikijs/types': 2.5.0 + + '@shikijs/types@2.5.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + + '@types/aws-lambda@8.10.145': {} + + '@types/estree@1.0.5': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdurl@2.0.0': {} + + '@types/node@20.17.6': + dependencies: + undici-types: 6.19.8 + + '@types/unist@3.0.3': {} + + '@types/web-bluetooth@0.0.21': {} + + '@ungap/structured-clone@1.2.0': {} + + '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@20.17.6)(sass@1.102.0))(vue@3.5.40)': + dependencies: + vite: 5.4.21(@types/node@20.17.6)(sass@1.102.0) + vue: 3.5.40 + + '@vue/compiler-core@3.5.40': + dependencies: + '@babel/parser': 7.29.8 + '@vue/shared': 3.5.40 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.40': + dependencies: + '@vue/compiler-core': 3.5.40 + '@vue/shared': 3.5.40 + + '@vue/compiler-sfc@3.5.40': + dependencies: + '@babel/parser': 7.29.8 + '@vue/compiler-core': 3.5.40 + '@vue/compiler-dom': 3.5.40 + '@vue/compiler-ssr': 3.5.40 + '@vue/shared': 3.5.40 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.25 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.40': + dependencies: + '@vue/compiler-dom': 3.5.40 + '@vue/shared': 3.5.40 + + '@vue/devtools-api@7.7.10': + dependencies: + '@vue/devtools-kit': 7.7.10 + + '@vue/devtools-kit@7.7.10': + dependencies: + '@vue/devtools-shared': 7.7.10 + birpc: 2.9.0 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.6 + + '@vue/devtools-shared@7.7.10': + dependencies: + rfdc: 1.4.1 + + '@vue/reactivity@3.5.40': + dependencies: + '@vue/shared': 3.5.40 + + '@vue/runtime-core@3.5.40': + dependencies: + '@vue/reactivity': 3.5.40 + '@vue/shared': 3.5.40 + + '@vue/runtime-dom@3.5.40': + dependencies: + '@vue/reactivity': 3.5.40 + '@vue/runtime-core': 3.5.40 + '@vue/shared': 3.5.40 + csstype: 3.2.3 + + '@vue/server-renderer@3.5.40': + dependencies: + '@vue/compiler-ssr': 3.5.40 + '@vue/runtime-dom': 3.5.40 + '@vue/shared': 3.5.40 + + '@vue/shared@3.5.40': {} + + '@vueuse/core@12.8.2': + dependencies: + '@types/web-bluetooth': 0.0.21 + '@vueuse/metadata': 12.8.2 + '@vueuse/shared': 12.8.2 + vue: 3.5.40 + transitivePeerDependencies: + - typescript + + '@vueuse/integrations@12.8.2(focus-trap@7.8.0)(nprogress@0.2.0)': + dependencies: + '@vueuse/core': 12.8.2 + '@vueuse/shared': 12.8.2 + vue: 3.5.40 + optionalDependencies: + focus-trap: 7.8.0 + nprogress: 0.2.0 + transitivePeerDependencies: + - typescript + + '@vueuse/metadata@12.8.2': {} + + '@vueuse/shared@12.8.2': + dependencies: + vue: 3.5.40 + transitivePeerDependencies: + - typescript + + algoliasearch@5.56.0: + dependencies: + '@algolia/abtesting': 1.22.0 + '@algolia/client-abtesting': 5.56.0 + '@algolia/client-analytics': 5.56.0 + '@algolia/client-common': 5.56.0 + '@algolia/client-insights': 5.56.0 + '@algolia/client-personalization': 5.56.0 + '@algolia/client-query-suggestions': 5.56.0 + '@algolia/client-search': 5.56.0 + '@algolia/ingestion': 1.56.0 + '@algolia/monitoring': 1.56.0 + '@algolia/recommend': 5.56.0 + '@algolia/requester-browser-xhr': 5.56.0 + '@algolia/requester-fetch': 5.56.0 + '@algolia/requester-node-http': 5.56.0 + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@5.0.2: {} + + autoprefixer@10.5.4(postcss@8.5.25): + dependencies: + browserslist: 4.28.7 + caniuse-lite: 1.0.30001806 + fraction.js: 5.3.4 + picocolors: 1.1.1 + postcss: 8.5.25 + postcss-value-parser: 4.2.0 + + balanced-match@1.0.2: {} + + baseline-browser-mapping@2.11.11: {} + + before-after-hook@4.0.0: {} + + binary-extensions@2.2.0: {} + + birpc@2.9.0: {} + + bottleneck@2.19.5: {} + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.2: + dependencies: + fill-range: 7.0.1 + + browserslist@4.28.7: + dependencies: + baseline-browser-mapping: 2.11.11 + caniuse-lite: 1.0.30001806 + electron-to-chromium: 1.5.399 + node-releases: 2.0.51 + update-browserslist-db: 1.2.3(browserslist@4.28.7) + + camelcase-css@2.0.1: {} + + caniuse-lite@1.0.30001806: {} + + ccount@2.0.1: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + chokidar@3.5.3: + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + comma-separated-tokens@2.0.3: {} + + commander@4.1.1: {} + + content-type@2.0.0: {} + + copy-anything@4.0.5: + dependencies: + is-what: 5.5.0 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + csstype@3.2.3: {} + + dequal@2.0.3: {} + + detect-libc@1.0.3: + optional: true + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + didyoumean@1.2.2: {} + + dlv@1.1.3: {} + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.399: {} + + emoji-regex-xs@1.0.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + entities@7.0.1: {} + + 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 + + escalade@3.2.0: {} + + estree-walker@2.0.2: {} + + 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.5 + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fill-range@7.0.1: + dependencies: + to-regex-range: 5.0.1 + + focus-trap@7.8.0: + dependencies: + tabbable: 6.5.0 + + foreground-child@3.1.1: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + fraction.js@5.3.4: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.3.12: + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.4 + minipass: 7.0.4 + path-scurry: 1.10.2 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hookable@5.5.3: {} + + html-void-elements@3.0.0: {} + + immutable@5.1.9: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.2.0 + + is-core-module@2.13.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-what@5.5.0: {} + + isexe@2.0.0: {} + + jackspeak@2.3.6: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.0: {} + + json-with-bigint@3.5.10: {} + + lilconfig@2.1.0: {} + + lilconfig@3.1.1: {} + + lines-and-columns@1.2.4: {} + + lru-cache@10.2.0: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + mark.js@8.11.1: {} + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + merge2@1.4.1: {} + + micromark-util-character@2.1.0: + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-encode@2.0.0: {} + + micromark-util-sanitize-uri@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-symbol@2.0.0: {} + + micromark-util-types@2.0.0: {} + + micromatch@4.0.5: + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + minimatch@9.0.4: + dependencies: + brace-expansion: 2.0.1 + + minipass@7.0.4: {} + + minisearch@7.2.0: {} + + mitt@3.0.1: {} + + moment@2.30.1: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.16: {} + + node-addon-api@7.1.1: + optional: true + + node-releases@2.0.51: {} + + normalize-path@3.0.0: {} + + nprogress@0.2.0: {} + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + octokit@5.0.5: + dependencies: + '@octokit/app': 16.1.4 + '@octokit/core': 7.0.7 + '@octokit/oauth-app': 8.0.4 + '@octokit/plugin-paginate-graphql': 6.0.0(@octokit/core@7.0.7) + '@octokit/plugin-paginate-rest': 14.0.0(@octokit/core@7.0.7) + '@octokit/plugin-rest-endpoint-methods': 17.0.0(@octokit/core@7.0.7) + '@octokit/plugin-retry': 8.1.1(@octokit/core@7.0.7) + '@octokit/plugin-throttling': 11.0.5(@octokit/core@7.0.7) + '@octokit/request-error': 7.1.1 + '@octokit/types': 16.0.0 + '@octokit/webhooks': 14.2.0 + + oniguruma-to-es@3.1.1: + dependencies: + emoji-regex-xs: 1.0.0 + regex: 6.1.0 + regex-recursion: 6.0.2 + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.10.2: + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 + + perfect-debounce@1.0.0: {} + + picocolors@1.0.1: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pify@2.3.0: {} + + pirates@4.0.6: {} + + postcss-import@15.1.0(postcss@8.5.25): + dependencies: + postcss: 8.5.25 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.5.25): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.25 + + postcss-load-config@4.0.2(postcss@8.5.25): + dependencies: + lilconfig: 3.1.1 + yaml: 2.4.1 + optionalDependencies: + postcss: 8.5.25 + + postcss-nested@6.0.1(postcss@8.5.25): + dependencies: + postcss: 8.5.25 + postcss-selector-parser: 6.0.16 + + postcss-selector-parser@6.0.16: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.5.25: + dependencies: + nanoid: 3.3.16 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + preact@10.13.2: {} + + property-information@7.2.0: {} + + queue-microtask@1.2.3: {} + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readdirp@5.0.0: {} + + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + + resolve@1.22.8: + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} + + rfdc@1.4.1: {} + + rollup@4.21.0: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.21.0 + '@rollup/rollup-android-arm64': 4.21.0 + '@rollup/rollup-darwin-arm64': 4.21.0 + '@rollup/rollup-darwin-x64': 4.21.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.0 + '@rollup/rollup-linux-arm-musleabihf': 4.21.0 + '@rollup/rollup-linux-arm64-gnu': 4.21.0 + '@rollup/rollup-linux-arm64-musl': 4.21.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.0 + '@rollup/rollup-linux-riscv64-gnu': 4.21.0 + '@rollup/rollup-linux-s390x-gnu': 4.21.0 + '@rollup/rollup-linux-x64-gnu': 4.21.0 + '@rollup/rollup-linux-x64-musl': 4.21.0 + '@rollup/rollup-win32-arm64-msvc': 4.21.0 + '@rollup/rollup-win32-ia32-msvc': 4.21.0 + '@rollup/rollup-win32-x64-msvc': 4.21.0 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + sass@1.102.0: + dependencies: + chokidar: 5.0.0 + immutable: 5.1.9 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.0 + + search-insights@2.17.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shiki@2.5.0: + dependencies: + '@shikijs/core': 2.5.0 + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/langs': 2.5.0 + '@shikijs/themes': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + signal-exit@4.1.0: {} + + source-map-js@1.2.1: {} + + space-separated-tokens@2.0.2: {} + + speakingurl@14.0.1: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.3.12 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + superjson@2.2.6: + dependencies: + copy-anything: 4.0.5 + + supports-preserve-symlinks-flag@1.0.0: {} + + tabbable@6.5.0: {} + + tailwindcss@3.4.14: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.1 + postcss: 8.5.25 + postcss-import: 15.1.0(postcss@8.5.25) + postcss-js: 4.0.1(postcss@8.5.25) + postcss-load-config: 4.0.2(postcss@8.5.25) + postcss-nested: 6.0.1(postcss@8.5.25) + postcss-selector-parser: 6.0.16 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toad-cache@3.7.4: {} + + trim-lines@3.0.1: {} + + ts-interface-checker@0.1.13: {} + + undici-types@6.19.8: {} + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universal-github-app-jwt@2.2.0: {} + + universal-user-agent@7.0.2: {} + + update-browserslist-db@1.2.3(browserslist@4.28.7): + dependencies: + browserslist: 4.28.7 + escalade: 3.2.0 + picocolors: 1.1.1 + + util-deprecate@1.0.2: {} + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + vite@5.4.21(@types/node@20.17.6)(sass@1.102.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.25 + rollup: 4.21.0 + optionalDependencies: + '@types/node': 20.17.6 + fsevents: 2.3.3 + sass: 1.102.0 + + vitepress-plugin-nprogress@0.1.1: + dependencies: + nprogress: 0.2.0 + + vitepress-plugin-tabs@0.9.1(vitepress@1.6.4(@algolia/client-search@5.56.0)(@types/node@20.17.6)(nprogress@0.2.0)(postcss@8.5.25)(sass@1.102.0)(search-insights@2.17.0))(vue@3.5.40): + dependencies: + vitepress: 1.6.4(@algolia/client-search@5.56.0)(@types/node@20.17.6)(nprogress@0.2.0)(postcss@8.5.25)(sass@1.102.0)(search-insights@2.17.0) + vue: 3.5.40 + + vitepress@1.6.4(@algolia/client-search@5.56.0)(@types/node@20.17.6)(nprogress@0.2.0)(postcss@8.5.25)(sass@1.102.0)(search-insights@2.17.0): + dependencies: + '@docsearch/css': 3.8.2 + '@docsearch/js': 3.8.2(@algolia/client-search@5.56.0)(search-insights@2.17.0) + '@iconify-json/simple-icons': 1.2.93 + '@shikijs/core': 2.5.0 + '@shikijs/transformers': 2.5.0 + '@shikijs/types': 2.5.0 + '@types/markdown-it': 14.1.2 + '@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@20.17.6)(sass@1.102.0))(vue@3.5.40) + '@vue/devtools-api': 7.7.10 + '@vue/shared': 3.5.40 + '@vueuse/core': 12.8.2 + '@vueuse/integrations': 12.8.2(focus-trap@7.8.0)(nprogress@0.2.0) + focus-trap: 7.8.0 + mark.js: 8.11.1 + minisearch: 7.2.0 + shiki: 2.5.0 + vite: 5.4.21(@types/node@20.17.6)(sass@1.102.0) + vue: 3.5.40 + optionalDependencies: + postcss: 8.5.25 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - less + - lightningcss + - nprogress + - qrcode + - react + - react-dom + - sass + - sass-embedded + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie + + vue@3.5.40: + dependencies: + '@vue/compiler-dom': 3.5.40 + '@vue/compiler-sfc': 3.5.40 + '@vue/runtime-dom': 3.5.40 + '@vue/server-renderer': 3.5.40 + '@vue/shared': 3.5.40 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + yaml@2.4.1: {} + + zwitch@2.0.4: {} diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 0000000..70d13ef --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,81 @@ +import { Config } from 'tailwindcss' + +export default { + darkMode: 'class', + content: [ + './.vitepress/**/*.{ts,vue}', + './docs/**/*.md', + ], + theme: { + container: { + center: true, + padding: '2rem', + screens: { + '2xl': '1400px', + }, + }, + extend: { + // fontFamily: { + // sans: ["var(--font-sans)", ...fontFamily.sans], + // }, + colors: { + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))', + }, + 'primary-highlight': { + DEFAULT: 'hsl(var(--primary-highlight))', + foreground: 'hsl(var(--primary-highlight-foreground))', + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))', + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))', + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))', + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))', + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))', + }, + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))', + }, + }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)', + }, + keyframes: { + 'accordion-down': { + from: { height: '0' }, + to: { height: 'var(--radix-accordion-content-height)' }, + }, + 'accordion-up': { + from: { height: 'var(--radix-accordion-content-height)' }, + to: { height: '0' }, + }, + }, + animation: { + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out', + }, + }, + }, +} as Config From f1b99c5f8025091445f3b6a0c0db27c7814043cc Mon Sep 17 00:00:00 2001 From: Nguyen Duy Date: Mon, 3 Aug 2026 17:06:58 +0700 Subject: [PATCH 04/12] feat(ci): streamline deployment workflow for Cloudflare Pages --- .github/workflows/deploy.yml | 78 ++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 7de62c8..7df04b2 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -6,62 +6,64 @@ on: workflow_dispatch: jobs: - env-prod: - if: github.ref == 'refs/heads/main' - runs-on: ubuntu-latest - environment: - name: production - url: https://pengu.lol - steps: - - run: echo >nul - - env-dev: - if: github.ref == 'refs/heads/dev' + deploy: runs-on: ubuntu-latest - environment: - name: development - url: https://beta.pengu.lol - steps: - - run: echo >nul - deploy: permissions: - id-token: write contents: read - runs-on: ubuntu-latest + deployments: write + + environment: + name: ${{ github.ref == 'refs/heads/main' && 'production' || 'development' }} + url: ${{ github.ref == 'refs/heads/main' && 'https://pengu.lol' || 'https://pengu.dev' }} steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - name: Set environment variables + - name: Resolve Pages project + env: + PROJECT_PROD: ${{ secrets.CLOUDFLARE_PROJECT_PROD }} + PROJECT_DEV: ${{ secrets.CLOUDFLARE_PROJECT_DEV }} run: | if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then - echo "DENO_DEPLOY_PROJECT=pengu-docs" >> $GITHUB_ENV - elif [[ "${{ github.ref }}" == "refs/heads/dev" ]]; then - echo "DENO_DEPLOY_PROJECT=pengu-docs-dev" >> $GITHUB_ENV + PROJECT="$PROJECT_PROD" + else + PROJECT="$PROJECT_DEV" + fi + if [[ -z "$PROJECT" ]]; then + echo "::error::No Pages project configured for ${{ github.ref_name }} -- set the CLOUDFLARE_PROJECT_PROD / CLOUDFLARE_PROJECT_DEV secrets." + exit 1 fi + echo "CF_PAGES_PROJECT=$PROJECT" >> $GITHUB_ENV - - name: Install NodeJS - uses: actions/setup-node@v3 + - name: Setup pnpm + uses: pnpm/action-setup@v4 with: - node-version: 18.x + version: 9 - - name: Install Deno - uses: denoland/setup-deno@v1 + - name: Setup Node.js + uses: actions/setup-node@v4 with: - deno-version: 1.x - - - name: Install Deno deployctl - run: deno install --allow-read --allow-write --allow-env --allow-net --allow-run --no-check -r -f https://deno.land/x/deploy/deployctl.ts + node-version: 20.x + cache: pnpm - name: Build project run: | - npm i -g pnpm pnpm install pnpm build - - name: Deploy to Deno Deploy - run: | - cd .vitepress - deployctl deploy --prod --project=$DENO_DEPLOY_PROJECT ./serve.ts --token ${{ secrets.DENO_DEPLOY_TOKEN }} + # One Pages project per environment, each owning its own domain: + # main -> CLOUDFLARE_PROJECT_PROD -> pengu.lol + # dev -> CLOUDFLARE_PROJECT_DEV -> pengu.dev + # --branch must match each project's own production branch so the upload + # lands as a production deployment rather than a preview. + - name: Deploy to Cloudflare Pages + uses: cloudflare/wrangler-action@v3 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + command: >- + pages deploy .vitepress/dist + --project-name=${{ env.CF_PAGES_PROJECT }} + --branch=${{ github.ref_name }} From 74f89210fbb06b307b34adaa2315ade76a863082 Mon Sep 17 00:00:00 2001 From: Nguyen Duy Date: Mon, 3 Aug 2026 17:08:26 +0700 Subject: [PATCH 05/12] chore(doc): enhance README structure and clarity --- README.md | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 256e0af..bd299ad 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,34 @@ -# docs -Pengu Loader Docs, built on top of [VitePress](https://vitepress.dev/). +
+ +

+ +

Pengu Docs

+

Official Pengu Loader documentation, built with VitePress.

+

👉 https://pengu.lol

+

+ +
+
## How to run? -You need **NodeJS 16+** and **pnpm** installed. Then clone the repo: +> **Node.js** version 18 or higher and **pnpm** are required to run the project. + +Clone the repo: ``` git clone https://github.com/PenguLoader/docs ``` Install dependencies and start development. + ``` pnpm i pnpm dev ``` Build and preview the production. + ``` pnpm build pnpm preview @@ -23,7 +36,8 @@ pnpm preview ## Help us translate the docs -First, you need to create a new folder in the **docs** folder. For example, `vi` for Vietnamese. +First, you need to create a new folder in the **docs** folder. For example, `vi` +for Vietnamese. ``` docs/ @@ -34,7 +48,8 @@ docs/ |__vi/ | -> vietnamese docs ``` -Next, copy the doc files and folders from the root of the docs folder (except the language folders) and then paste them into your language folder. +Next, copy the doc files and folders from the root of the docs folder (except +the language folders) and then paste them into your language folder. ``` docs/ @@ -44,7 +59,9 @@ docs/ |__index.md ``` -Finally, add your language to the .vitepress/config.ts (see the [i18n](https://vitepress.dev/guide/i18n#internationalization) section on VitePress docs to learn more). +Finally, add your language to the .vitepress/config.ts (see the +[i18n](https://vitepress.dev/guide/i18n#internationalization) section on +VitePress docs to learn more). ```ts export default defineConfig({ @@ -64,4 +81,5 @@ export default defineConfig({ }) ``` -When you are finished editing the translation, push your changes to your forked repo, and then open a new Pull Request. +When you have finished editing the translation, push your changes to your forked +repo, and then open a new Pull Request. From 6cea14a126d37b778507ca62c5a040d6b64a70d8 Mon Sep 17 00:00:00 2001 From: Nguyen Duy Date: Mon, 3 Aug 2026 17:09:01 +0700 Subject: [PATCH 06/12] feat(theme): implement custom theme with layout, styles, and Tailwind integration --- .vitepress/theme/Layout.vue | 89 ++++++++++ .vitepress/theme/analytics.ts | 26 +-- .vitepress/theme/custom.css | 305 ++++++++++++++++++++++++++++++++++ .vitepress/theme/index.ts | 34 ++-- .vitepress/theme/style.css | 122 -------------- .vitepress/theme/tailwind.css | 71 ++++++++ 6 files changed, 496 insertions(+), 151 deletions(-) create mode 100644 .vitepress/theme/Layout.vue create mode 100644 .vitepress/theme/custom.css delete mode 100644 .vitepress/theme/style.css create mode 100644 .vitepress/theme/tailwind.css diff --git a/.vitepress/theme/Layout.vue b/.vitepress/theme/Layout.vue new file mode 100644 index 0000000..9930649 --- /dev/null +++ b/.vitepress/theme/Layout.vue @@ -0,0 +1,89 @@ + + + + + \ No newline at end of file diff --git a/.vitepress/theme/analytics.ts b/.vitepress/theme/analytics.ts index 1ef29e3..20e2df7 100644 --- a/.vitepress/theme/analytics.ts +++ b/.vitepress/theme/analytics.ts @@ -1,33 +1,33 @@ declare global { interface Window { - dataLayer?: any[]; - gtag?: (...args: any[]) => void; + dataLayer?: any[] + gtag?: (...args: any[]) => void } } function mountGoogleAnalytics(id: string) { // avoid duplicated import if (window.dataLayer && window.gtag) { - return; + return } // insert gtag ` + + + + \ No newline at end of file diff --git a/.vitepress/components/Download.vue b/.vitepress/components/Download.vue new file mode 100644 index 0000000..ae5fe7a --- /dev/null +++ b/.vitepress/components/Download.vue @@ -0,0 +1,206 @@ + + + + + + + \ No newline at end of file diff --git a/.vitepress/components/Home.vue b/.vitepress/components/Home.vue new file mode 100644 index 0000000..24d22ce --- /dev/null +++ b/.vitepress/components/Home.vue @@ -0,0 +1,124 @@ + + + \ No newline at end of file diff --git a/.vitepress/lib/gh-utils.ts b/.vitepress/lib/gh-utils.ts new file mode 100644 index 0000000..2c96b86 --- /dev/null +++ b/.vitepress/lib/gh-utils.ts @@ -0,0 +1,135 @@ +import { archLabel, getAssetArch, Platform, type MacArch } from './utils' + +// NOTE: this module runs in the browser, so it must never carry a token -- +// anything passed here ends up verbatim in the published JS bundle. +// Unauthenticated GitHub API calls are rate limited per visitor IP (60/hour), +// which is plenty for a single "latest release" lookup. +const LATEST_RELEASE_URL = + 'https://api.github.com/repos/PenguLoader/PenguLoader/releases/latest' + +type RawAsset = { + name: string + size: number + browser_download_url: string +} + +type RawRelease = { + tag_name: string + name: string | null + published_at: string | null + assets: RawAsset[] +} + +export type AssetInfo = { + name: string + url: string + fileName: string + fileSize: string + arch?: MacArch +} + +export type Release = { + version: string + name: string + publishedAt: string + downloads: Partial> +} + +const dateFormat = new Intl.DateTimeFormat('en-US', { + year: 'numeric', + month: 'long', + day: '2-digit', +}) + +const getReadableName = (rawName: string, arch?: MacArch): string => { + // asset names are mixed case on the releases page, match case-insensitively + const name = rawName.toLowerCase() + if (name.endsWith('.exe')) { + return 'Installer' + } + if (name.endsWith('.msi')) { + return 'MSI installer' + } + if (name.endsWith('.dmg')) { + return 'Installer' + } + if (arch) { + return archLabel(arch) + } + if (name.includes('portable') || /\.(7z|zip)$/.test(name)) { + return 'Portable' + } + + return '' +} + +const getPlatformTypByAssetName = (rawName: string): Platform => { + const name = rawName.toLowerCase() + // macOS first -- 'exe' is a loose substring that can appear anywhere + if (name.includes('macos') || name.includes('darwin') || name.endsWith('.dmg')) { + return Platform.MacOS + } + if (name.includes('windows') || name.includes('exe')) { + return Platform.Windows + } + + return Platform.Windows +} + +function getAssetInfo(asset: RawAsset): AssetInfo { + const fileSize = asset.size / 1024 / 1024 + const arch = getAssetArch(asset.name) + return { + url: asset.browser_download_url, + fileName: asset.name, + name: getReadableName(asset.name, arch), + fileSize: `${fileSize.toFixed(2)} MB`, + arch, + } +} + +export async function getRelease(): Promise { + try { + const response = await fetch(LATEST_RELEASE_URL, { + headers: { + accept: 'application/vnd.github+json', + 'x-github-api-version': '2022-11-28', + }, + }) + + if (!response.ok) { + // a 403/429 with no quota left means this visitor's IP hit the + // unauthenticated limit, not that the release is missing + if (response.headers.get('x-ratelimit-remaining') === '0') { + console.error('GitHub API rate limit reached for this IP') + } else { + console.error(`Failed to fetch release data: ${response.status}`) + } + return null + } + + const data: RawRelease = await response.json() + + if (!Array.isArray(data.assets) || data.published_at === null) { + console.error('Failed to fetch release data') + return null + } + + const downloads: Partial> = {} + for (const asset of data.assets) { + const platform = getPlatformTypByAssetName(asset.name) + const list = downloads[platform] ?? (downloads[platform] = []) + list.push(getAssetInfo(asset)) + } + + return { + version: data.tag_name, + name: data.name || data.tag_name, + publishedAt: dateFormat.format(new Date(data.published_at)), + downloads, + } + } catch (e) { + console.error('Failed to fetch release data', e) + return null + } +} diff --git a/.vitepress/lib/utils.ts b/.vitepress/lib/utils.ts new file mode 100644 index 0000000..6a139e8 --- /dev/null +++ b/.vitepress/lib/utils.ts @@ -0,0 +1,70 @@ + +export enum Platform { + Windows = 'Windows 10/11', + MacOS = 'macOS 12+', +} + +export type MacArch = 'arm64' | 'x64' + +export function getPlatform(ua: string): Platform { + ua = ua.toLowerCase() + // check mac first: some UA strings carry both tokens + if (ua.indexOf('mac') !== -1) { + return Platform.MacOS + } + if (ua.indexOf('windows') !== -1) { + return Platform.Windows + } + + return Platform.Windows +} + +export const archLabel = (arch: MacArch) => + arch === 'arm64' ? 'Apple Silicon' : 'Intel' + +/** + * Which macOS build to hand the visitor. + * + * Best effort by necessity: Safari and Firefox still report `Intel Mac OS X` + * on Apple Silicon, so the UA string alone can never answer this. We try the + * two signals that do differ, then guess. + */ +export async function detectMacArch(): Promise { + // 1. Chromium exposes the real architecture through UA Client Hints. + const uaData = (navigator as any).userAgentData + if (uaData?.getHighEntropyValues) { + try { + const { architecture } = await uaData.getHighEntropyValues(['architecture']) + if (architecture === 'arm') return 'arm64' + if (architecture === 'x86') return 'x64' + } catch { + // permission denied or hint unsupported, fall through + } + } + + // 2. The GPU renderer string still differs between the two. + try { + const gl = document.createElement('canvas').getContext('webgl') + if (gl) { + const ext = gl.getExtension('WEBGL_debug_renderer_info') + const renderer = String( + ext ? gl.getParameter(ext.UNMASKED_RENDERER_WEBGL) : gl.getParameter(gl.RENDERER) + ) + if (/apple\s*(m\d|gpu|silicon)/i.test(renderer)) return 'arm64' + if (/intel|radeon|amd|nvidia|geforce/i.test(renderer)) return 'x64' + } + } catch { + // canvas/webgl unavailable + } + + // 3. Apple stopped selling Intel Macs in 2023, so arm64 is the better bet. + // Both builds stay listed in the table either way. + return 'arm64' +} + +export function getAssetArch(fileName: string): MacArch | undefined { + const name = fileName.toLowerCase() + if (/arm64|aarch64|apple-?silicon/.test(name)) return 'arm64' + if (/x64|x86[-_]?64|amd64|intel/.test(name)) return 'x64' + return undefined +} From a4b15ffb537e18c9ee41a6a2fc5b1ab458232f98 Mon Sep 17 00:00:00 2001 From: Nguyen Duy Date: Mon, 3 Aug 2026 17:10:36 +0700 Subject: [PATCH 09/12] chore(deps): remove unused dependencies --- package.json | 5 +- pnpm-lock.yaml | 349 ------------------------------------------------- 2 files changed, 2 insertions(+), 352 deletions(-) diff --git a/package.json b/package.json index 69d81aa..eade439 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,6 @@ "devDependencies": { "@types/node": "^20", "autoprefixer": "^10.5.4", - "moment": "^2.30.1", - "octokit": "^5.0.5", "postcss": "^8.5.25", "sass": "^1.102.0", "tailwindcss": "^3.4.14", @@ -23,7 +21,8 @@ "vue": "^3.5.40" }, "engines": { - "node": ">=20" + "node": ">=20", + "pnpm": ">=9" }, "pnpm": { "peerDependencyRules": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ad7d51f..5f9a57f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,12 +14,6 @@ importers: autoprefixer: specifier: ^10.5.4 version: 10.5.4(postcss@8.5.25) - moment: - specifier: ^2.30.1 - version: 2.30.1 - octokit: - specifier: ^5.0.5 - version: 5.0.5 postcss: specifier: ^8.5.25 version: 8.5.25 @@ -345,125 +339,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@octokit/app@16.1.4': - resolution: {integrity: sha512-g70WONQyGoBgqIJtv4O0MUEfOF1iJpTfFt3qAW7HaiwiJ6k607xg/gBezCa4tuq6BpO6qXn7qvq8v9tjWtgGQg==} - engines: {node: '>= 20'} - - '@octokit/auth-app@8.3.0': - resolution: {integrity: sha512-/UaKmJCsOc5XBZwhnFiGNdLH/FkDF8lYtBn1QlKxtX7IpgaRB/XOXjixFtERAknyUZHxp3oDuoiG0En4VptJSg==} - engines: {node: '>= 20'} - - '@octokit/auth-oauth-app@9.0.4': - resolution: {integrity: sha512-Pe3du5LrC6dlv10b0RbarBlJtIT1Urq8BFoQklK8WmBw8YKnGgrANn7cQmHiA1v8AVihgi7YutV8MncP57I4og==} - engines: {node: '>= 20'} - - '@octokit/auth-oauth-device@8.0.4': - resolution: {integrity: sha512-M/+34rmkxMvUnnTo/uqNeVRCXJoJ+5N34eNTbL1KMtIyJpedCTsu/iFL1cWdL+w5hQMlYt6xzXoyux2gn0OVnw==} - engines: {node: '>= 20'} - - '@octokit/auth-oauth-user@6.0.3': - resolution: {integrity: sha512-t4OKUhrI5britmpRiSzPAz1TJPyUN/Hw1HEE3Hz/uElxcmnf/YCRSKtFRNc5gy4yJFTlXgk34H1lvxiotQJQvQ==} - engines: {node: '>= 20'} - - '@octokit/auth-token@6.0.0': - resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} - engines: {node: '>= 20'} - - '@octokit/auth-unauthenticated@7.0.4': - resolution: {integrity: sha512-j4zgVdP8C8C53PNsj4LLI+WFtoykaQARwwrIBILTdxwZ2Ljaa9YUxb1yQ7/seGVnmWPdC3OBefX3LLbh28gKtw==} - engines: {node: '>= 20'} - - '@octokit/core@7.0.7': - resolution: {integrity: sha512-DcB0M3KFgr9ECI328lhBMVsyFT2DnmNucSBTqEN3exyNKUzkkpUSCHmTRcunF41Eou2TIQKW4seewri8ON9bSA==} - engines: {node: '>= 20'} - - '@octokit/endpoint@11.0.4': - resolution: {integrity: sha512-f1cOWoHPmxryJFknxbtDdjODWfV8A9tc8Aae6ermXPNgHFZ/x91AtHIz4gicEjL8hkJiip+u21QHJORfBv/qiA==} - engines: {node: '>= 20'} - - '@octokit/graphql@9.0.4': - resolution: {integrity: sha512-5s15CCiY8XXQ+FG+b1YQcl6Z2FA++nwAz/tg2VUrTmnMncP+2nnGUEYANImdnxsA2Fnq+Mbl7hDjUTw7cFAwcg==} - engines: {node: '>= 20'} - - '@octokit/oauth-app@8.0.4': - resolution: {integrity: sha512-Ji5JpRwAJcbOJkO4ij0tW6+GrQ8efpICnAca3o5xI8/HUNjqJu3hhG4cCZdXAHMKaOaQTFX0Yl+cpu61Rsx94A==} - engines: {node: '>= 20'} - - '@octokit/oauth-authorization-url@8.0.0': - resolution: {integrity: sha512-7QoLPRh/ssEA/HuHBHdVdSgF8xNLz/Bc5m9fZkArJE5bb6NmVkDm3anKxXPmN1zh6b5WKZPRr3697xKT/yM3qQ==} - engines: {node: '>= 20'} - - '@octokit/oauth-methods@6.0.3': - resolution: {integrity: sha512-t7MBs34Ja16BBZlOSAFslFh4wBMuofD83wVLG9zIuuEGMv/U12XAJ8ESOifgEcC1ptjhNA3sorLA9BCtVfgPuw==} - engines: {node: '>= 20'} - - '@octokit/openapi-types@27.0.0': - resolution: {integrity: sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==} - - '@octokit/openapi-types@28.0.0': - resolution: {integrity: sha512-0rFyLuyHvIj6uuZWuDslxkowFYdPXoNIkeAv4b27dzm2Tf4vGWXnPsMcxs7d65kLdMERgP3wc1AEPlqMz8e1cQ==} - - '@octokit/openapi-webhooks-types@12.1.0': - resolution: {integrity: sha512-WiuzhOsiOvb7W3Pvmhf8d2C6qaLHXrWiLBP4nJ/4kydu+wpagV5Fkz9RfQwV2afYzv3PB+3xYgp4mAdNGjDprA==} - - '@octokit/plugin-paginate-graphql@6.0.0': - resolution: {integrity: sha512-crfpnIoFiBtRkvPqOyLOsw12XsveYuY2ieP6uYDosoUegBJpSVxGwut9sxUgFFcll3VTOTqpUf8yGd8x1OmAkQ==} - engines: {node: '>= 20'} - peerDependencies: - '@octokit/core': '>=6' - - '@octokit/plugin-paginate-rest@14.0.0': - resolution: {integrity: sha512-fNVRE7ufJiAA3XUrha2omTA39M6IXIc6GIZLvlbsm8QOQCYvpq/LkMNGyFlB1d8hTDzsAXa3OKtybdMAYsV/fw==} - engines: {node: '>= 20'} - peerDependencies: - '@octokit/core': '>=6' - - '@octokit/plugin-paginate-rest@15.0.0': - resolution: {integrity: sha512-lw9A9YL5s4VPj+VEx8uMxaxQm2YTgrPDkrLEuZuu18R8TK3oPcXF4K6t52nx6xn1RcogZC9i188sAr/4XYJaQQ==} - engines: {node: '>= 20'} - peerDependencies: - '@octokit/core': '>=6' - - '@octokit/plugin-rest-endpoint-methods@17.0.0': - resolution: {integrity: sha512-B5yCyIlOJFPqUUeiD0cnBJwWJO8lkJs5d8+ze9QDP6SvfiXSz1BF+91+0MeI1d2yxgOhU/O+CvtiZ9jSkHhFAw==} - engines: {node: '>= 20'} - peerDependencies: - '@octokit/core': '>=6' - - '@octokit/plugin-retry@8.1.1': - resolution: {integrity: sha512-VCVvZ/R1+u3WuiBWpNavZ0mY4aaJNAsENrpBP9aLSR2QyOpQgd7DhM5j4AW7z4MQpnJYgwBPf0XqPQoNBRdQwg==} - engines: {node: '>= 20'} - peerDependencies: - '@octokit/core': '>=7' - - '@octokit/plugin-throttling@11.0.5': - resolution: {integrity: sha512-LIdrkrUv+DWbKeg/49rGuFJ3SU0d3hUS+B4MhNZLepBoNUFXms8Ic9edJjrlx+zycqJHjrMRudVpVb/bAXM2Lw==} - engines: {node: '>= 20'} - peerDependencies: - '@octokit/core': ^7.0.0 - - '@octokit/request-error@7.1.1': - resolution: {integrity: sha512-+eaY7G2VVpSf2pc5Gn1+mph837V/d/TYTJAgWL9Tb0ogGYcpN3IlAVFgjL+Vv93F/sevrxkvsYCedtpLdcFLzA==} - engines: {node: '>= 20'} - - '@octokit/request@10.0.13': - resolution: {integrity: sha512-v2269YxL9Yf+x3d+gRI63FP0vFQEiWgLyBzxe/Y+0yFDg2B/Tzf5dhh9VNfccVAQnfcfwQWyk/y6Bn7rUXXs7A==} - engines: {node: '>= 20'} - - '@octokit/types@16.0.0': - resolution: {integrity: sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==} - - '@octokit/types@17.0.0': - resolution: {integrity: sha512-ByP1v7YL5SMveFPP7+sj0/ZuWCOOg/Chs4NafOMpq6WNIM/hdGY0S7C0TCGDBWu1aGmOxmUIhMx3cO+IdwYZ1Q==} - - '@octokit/webhooks-methods@6.0.0': - resolution: {integrity: sha512-MFlzzoDJVw/GcbfzVC1RLR36QqkTLUf79vLVO3D+xn7r0QgxnFoLZgtrzxiQErAjFUOdH6fas2KeQJ1yr/qaXQ==} - engines: {node: '>= 20'} - - '@octokit/webhooks@14.2.0': - resolution: {integrity: sha512-da6KbdNCV5sr1/txD896V+6W0iamFWrvVl8cHkBSPT+YlvmT3DwXa4jxZnQc+gnuTEqSWbBeoSZYTayXH9wXcw==} - engines: {node: '>= 20'} - '@parcel/watcher-android-arm64@2.5.0': resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} engines: {node: '>= 10.0.0'} @@ -654,9 +529,6 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@types/aws-lambda@8.10.145': - resolution: {integrity: sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==} - '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -826,9 +698,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - before-after-hook@4.0.0: - resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==} - binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -836,9 +705,6 @@ packages: birpc@2.9.0: resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} - bottleneck@2.19.5: - resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} - brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} @@ -889,10 +755,6 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - content-type@2.0.0: - resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==} - engines: {node: '>=18'} - copy-anything@4.0.5: resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} engines: {node: '>=18'} @@ -1057,9 +919,6 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true - json-with-bigint@3.5.10: - resolution: {integrity: sha512-Vcx+JVNEBts/xfcoCS69sKrOhOk/3TVlvlT+XzUOefVKnnrbYSCKpDCm10pohsJFtsJVYnwa/cXRZ4eElzaM6w==} - lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -1121,9 +980,6 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -1154,10 +1010,6 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - octokit@5.0.5: - resolution: {integrity: sha512-4+/OFSqOjoyULo7eN7EA97DE0Xydj/PW5aIckxqQIoFjFwqXKuFCvXUJObyJfBF9Khu4RL/jlDRI9FPaMGfPnw==} - engines: {node: '>= 20'} - oniguruma-to-es@3.1.1: resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==} @@ -1367,10 +1219,6 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toad-cache@3.7.4: - resolution: {integrity: sha512-m1TdR/rvT7kgGJZhspNtXdsdYk0fddFpJJFlG5s+UkPFo6lkLoZ3YLOaovPYjq1R75NP5JfeTlSHaOsE09peCg==} - engines: {node: '>=20'} - trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -1395,12 +1243,6 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - universal-github-app-jwt@2.2.0: - resolution: {integrity: sha512-G5o6f95b5BggDGuUfKDApKaCgNYy2x7OdHY0zSMF081O0EJobw+1130VONhrA7ezGSV2FNOGyM+KQpQZAr9bIQ==} - - universal-user-agent@7.0.2: - resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} - update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true @@ -1765,165 +1607,6 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@octokit/app@16.1.4': - dependencies: - '@octokit/auth-app': 8.3.0 - '@octokit/auth-unauthenticated': 7.0.4 - '@octokit/core': 7.0.7 - '@octokit/oauth-app': 8.0.4 - '@octokit/plugin-paginate-rest': 15.0.0(@octokit/core@7.0.7) - '@octokit/types': 17.0.0 - '@octokit/webhooks': 14.2.0 - - '@octokit/auth-app@8.3.0': - dependencies: - '@octokit/auth-oauth-app': 9.0.4 - '@octokit/auth-oauth-user': 6.0.3 - '@octokit/request': 10.0.13 - '@octokit/request-error': 7.1.1 - '@octokit/types': 17.0.0 - toad-cache: 3.7.4 - universal-github-app-jwt: 2.2.0 - universal-user-agent: 7.0.2 - - '@octokit/auth-oauth-app@9.0.4': - dependencies: - '@octokit/auth-oauth-device': 8.0.4 - '@octokit/auth-oauth-user': 6.0.3 - '@octokit/request': 10.0.13 - '@octokit/types': 17.0.0 - universal-user-agent: 7.0.2 - - '@octokit/auth-oauth-device@8.0.4': - dependencies: - '@octokit/oauth-methods': 6.0.3 - '@octokit/request': 10.0.13 - '@octokit/types': 17.0.0 - universal-user-agent: 7.0.2 - - '@octokit/auth-oauth-user@6.0.3': - dependencies: - '@octokit/auth-oauth-device': 8.0.4 - '@octokit/oauth-methods': 6.0.3 - '@octokit/request': 10.0.13 - '@octokit/types': 17.0.0 - universal-user-agent: 7.0.2 - - '@octokit/auth-token@6.0.0': {} - - '@octokit/auth-unauthenticated@7.0.4': - dependencies: - '@octokit/request-error': 7.1.1 - '@octokit/types': 17.0.0 - - '@octokit/core@7.0.7': - dependencies: - '@octokit/auth-token': 6.0.0 - '@octokit/graphql': 9.0.4 - '@octokit/request': 10.0.13 - '@octokit/request-error': 7.1.1 - '@octokit/types': 17.0.0 - before-after-hook: 4.0.0 - universal-user-agent: 7.0.2 - - '@octokit/endpoint@11.0.4': - dependencies: - '@octokit/types': 17.0.0 - universal-user-agent: 7.0.2 - - '@octokit/graphql@9.0.4': - dependencies: - '@octokit/request': 10.0.13 - '@octokit/types': 17.0.0 - universal-user-agent: 7.0.2 - - '@octokit/oauth-app@8.0.4': - dependencies: - '@octokit/auth-oauth-app': 9.0.4 - '@octokit/auth-oauth-user': 6.0.3 - '@octokit/auth-unauthenticated': 7.0.4 - '@octokit/core': 7.0.7 - '@octokit/oauth-authorization-url': 8.0.0 - '@octokit/oauth-methods': 6.0.3 - '@types/aws-lambda': 8.10.145 - universal-user-agent: 7.0.2 - - '@octokit/oauth-authorization-url@8.0.0': {} - - '@octokit/oauth-methods@6.0.3': - dependencies: - '@octokit/oauth-authorization-url': 8.0.0 - '@octokit/request': 10.0.13 - '@octokit/request-error': 7.1.1 - '@octokit/types': 17.0.0 - - '@octokit/openapi-types@27.0.0': {} - - '@octokit/openapi-types@28.0.0': {} - - '@octokit/openapi-webhooks-types@12.1.0': {} - - '@octokit/plugin-paginate-graphql@6.0.0(@octokit/core@7.0.7)': - dependencies: - '@octokit/core': 7.0.7 - - '@octokit/plugin-paginate-rest@14.0.0(@octokit/core@7.0.7)': - dependencies: - '@octokit/core': 7.0.7 - '@octokit/types': 16.0.0 - - '@octokit/plugin-paginate-rest@15.0.0(@octokit/core@7.0.7)': - dependencies: - '@octokit/core': 7.0.7 - '@octokit/types': 17.0.0 - - '@octokit/plugin-rest-endpoint-methods@17.0.0(@octokit/core@7.0.7)': - dependencies: - '@octokit/core': 7.0.7 - '@octokit/types': 16.0.0 - - '@octokit/plugin-retry@8.1.1(@octokit/core@7.0.7)': - dependencies: - '@octokit/core': 7.0.7 - '@octokit/request-error': 7.1.1 - '@octokit/types': 17.0.0 - bottleneck: 2.19.5 - - '@octokit/plugin-throttling@11.0.5(@octokit/core@7.0.7)': - dependencies: - '@octokit/core': 7.0.7 - '@octokit/types': 17.0.0 - bottleneck: 2.19.5 - - '@octokit/request-error@7.1.1': - dependencies: - '@octokit/types': 17.0.0 - - '@octokit/request@10.0.13': - dependencies: - '@octokit/endpoint': 11.0.4 - '@octokit/request-error': 7.1.1 - '@octokit/types': 17.0.0 - content-type: 2.0.0 - json-with-bigint: 3.5.10 - universal-user-agent: 7.0.2 - - '@octokit/types@16.0.0': - dependencies: - '@octokit/openapi-types': 27.0.0 - - '@octokit/types@17.0.0': - dependencies: - '@octokit/openapi-types': 28.0.0 - - '@octokit/webhooks-methods@6.0.0': {} - - '@octokit/webhooks@14.2.0': - dependencies: - '@octokit/openapi-webhooks-types': 12.1.0 - '@octokit/request-error': 7.1.1 - '@octokit/webhooks-methods': 6.0.0 - '@parcel/watcher-android-arm64@2.5.0': optional: true @@ -2076,8 +1759,6 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@types/aws-lambda@8.10.145': {} - '@types/estree@1.0.5': {} '@types/hast@3.0.4': @@ -2261,14 +1942,10 @@ snapshots: baseline-browser-mapping@2.11.11: {} - before-after-hook@4.0.0: {} - binary-extensions@2.2.0: {} birpc@2.9.0: {} - bottleneck@2.19.5: {} - brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 @@ -2321,8 +1998,6 @@ snapshots: commander@4.1.1: {} - content-type@2.0.0: {} - copy-anything@4.0.5: dependencies: is-what: 5.5.0 @@ -2498,8 +2173,6 @@ snapshots: jiti@1.21.0: {} - json-with-bigint@3.5.10: {} - lilconfig@2.1.0: {} lilconfig@3.1.1: {} @@ -2560,8 +2233,6 @@ snapshots: mitt@3.0.1: {} - moment@2.30.1: {} - mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -2583,20 +2254,6 @@ snapshots: object-hash@3.0.0: {} - octokit@5.0.5: - dependencies: - '@octokit/app': 16.1.4 - '@octokit/core': 7.0.7 - '@octokit/oauth-app': 8.0.4 - '@octokit/plugin-paginate-graphql': 6.0.0(@octokit/core@7.0.7) - '@octokit/plugin-paginate-rest': 14.0.0(@octokit/core@7.0.7) - '@octokit/plugin-rest-endpoint-methods': 17.0.0(@octokit/core@7.0.7) - '@octokit/plugin-retry': 8.1.1(@octokit/core@7.0.7) - '@octokit/plugin-throttling': 11.0.5(@octokit/core@7.0.7) - '@octokit/request-error': 7.1.1 - '@octokit/types': 16.0.0 - '@octokit/webhooks': 14.2.0 - oniguruma-to-es@3.1.1: dependencies: emoji-regex-xs: 1.0.0 @@ -2840,8 +2497,6 @@ snapshots: dependencies: is-number: 7.0.0 - toad-cache@3.7.4: {} - trim-lines@3.0.1: {} ts-interface-checker@0.1.13: {} @@ -2871,10 +2526,6 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - universal-github-app-jwt@2.2.0: {} - - universal-user-agent@7.0.2: {} - update-browserslist-db@1.2.3(browserslist@4.28.7): dependencies: browserslist: 4.28.7 From 194e5136199ee3df0ad30df7e7e0637e5ec451a8 Mon Sep 17 00:00:00 2001 From: Nguyen Duy Date: Mon, 3 Aug 2026 17:35:26 +0700 Subject: [PATCH 10/12] feat(docs): update FAQs with detailed usage information and add Usage Policy document --- docs/guide/faqs.md | 27 +++++++--- docs/policy.md | 113 ++++++++++++++++++++++++++++++++++++++++++ public/lol-banner.png | Bin 0 -> 19766 bytes 3 files changed, 134 insertions(+), 6 deletions(-) create mode 100644 docs/policy.md create mode 100644 public/lol-banner.png diff --git a/docs/guide/faqs.md b/docs/guide/faqs.md index 5f4a357..281fec0 100644 --- a/docs/guide/faqs.md +++ b/docs/guide/faqs.md @@ -1,16 +1,30 @@ # FAQs

- +

## Can I get banned? -Pengu Loader is totally safe to use. +Pengu Loader itself is safe — it only restyles the League Client's interface and +never touches the game. Themes and cosmetic plugins give you no advantage over +anyone else, which is what the vast majority of people use it for. + +That said, it is a third-party tool that Riot Games does not endorse, so it sits +in a gray area, and nobody can honestly promise you zero risk. What actually +gets accounts banned isn't Pengu — it's what some plugins do with it. Automation +(auto-accept, auto-dodge, bots), scripting, exploiting Client or LCU bugs, or +anything giving you an unfair advantage is bannable no matter which tool it went +through. + +So: install plugins you trust, keep it cosmetic, and you're doing what Pengu was +built for. See the [Usage Policy](/policy) for the full picture. ## Does it affect the in-game? -No. +No. Pengu Loader only runs inside `LeagueClientUx.exe`, the process that draws +the Client interface. It never loads into the game process, so nothing it does +can reach a live match. ## Regions support? @@ -18,7 +32,8 @@ Pengu Loader works for all regions, including Tencent server. ## MacOS support? -Coming soon. +Yes, since v1.2. Separate builds are available for Apple Silicon and Intel Macs +on the [Download](/download) page. ## Reloading the Client causes high memory usage? @@ -51,8 +66,8 @@ your theme. ## Followed the instructions, but the plugin/theme does not work? -If you have been renamed some files, be sure this File Explorer option is -unchecked, then recheck your file names. +If you have renamed some files, make sure that this File Explorer option is unchecked, +and then check your file names again. ![](https://i.imgur.com/SUFr9Qk.png) diff --git a/docs/policy.md b/docs/policy.md new file mode 100644 index 0000000..1d35afd --- /dev/null +++ b/docs/policy.md @@ -0,0 +1,113 @@ +--- +title: Usage Policy +editLink: false +--- + +# Usage Policy + +**The short version:** Pengu Loader itself is safe — it only restyles the League +Client's interface and never touches the game. But it is a third-party tool that +Riot Games does not endorse, so it sits in a gray area. What gets people banned +is not Pengu, it's what some people choose to build on top of it. + +## Where the gray area is + +The League Client is an embedded Chromium browser. Pengu Loader loads your +JavaScript and CSS into that interface, the same way a browser extension styles +a web page. + +That is not something Riot officially supports. There is no approval process for +Client modifications and no public list of what is or isn't allowed, so nobody — +including us — can promise you that using any third-party tool carries zero +risk. Anyone telling you a Client mod is "100% ban-proof" is guessing. + +What we can tell you is what Pengu actually does, so you can judge the risk +yourself. + +## What Pengu Loader does not do + +- **It never touches the game.** Pengu only runs inside `LeagueClientUx.exe`, + the process that draws the Client UI. The game process is never loaded into, + read from, or modified. Nothing Pengu does can reach a live match. +- **It does not read or write game memory.** +- **It does not automate gameplay** — no scripting, no input simulation, no + bots. +- **It does not give you information you couldn't already see** in the Client. +- **It does not touch your account credentials.** Pengu never sees your + username, password, or session tokens. + +## What will get you banned + +Pengu Loader is a platform. A plugin runs with full access to the Client's own +APIs, which means a plugin author can do things Riot will absolutely act on. +Using a plugin that does any of the following puts your account at risk, and +that risk is on you: + +- **Automation of any kind** — auto-accept queue is the common one, but also + auto-dodge, auto-ban/pick bots, or anything that plays for you. +- **Scripting or gameplay assistance**, in the Client or in game. +- **Exploiting bugs** in the Client or the LCU API, including anything that + grants content, currency, or ranked outcomes you didn't earn. +- **Spamming or abusing LCU endpoints**, such as mass-messaging, friend-request + floods, or lobby spam. +- **Boosting, account sharing, or evading restrictions** with the help of a + plugin. +- **Anything that gives you an unfair advantage** over other players. + +None of this becomes acceptable because it went through Pengu. Riot's +[Terms of Service](https://www.riotgames.com/en/terms-of-service) apply to your +account no matter what tool was involved. + +::: warning Install plugins you trust + +A plugin is ordinary JavaScript with full access to the Client. Treat one like +any other program you run: prefer plugins whose source you can read, be +suspicious of obfuscated code, and remember that a plugin promising an edge in +matchmaking is exactly the kind that gets accounts banned. + +::: + +## Themes and cosmetic plugins + +Purely visual work — CSS themes, custom backgrounds, layout tweaks, new UI +panels — is what Pengu Loader was built for, and it's what the overwhelming +majority of the community uses it for. It changes nothing another player can +see and gives you no advantage. + +## Privacy + +Pengu Loader collects nothing. There is no telemetry, no analytics, no crash +reporting, and no account is required. + +The application makes exactly one outbound network request of its own: a check +against the [public GitHub releases API][gh] to see whether a newer version +exists. It sends no personal data, and you can turn it off with the +**automatic update check** toggle in the Pengu hub. + +Anything else your Client talks to is either Riot's own services or a request +made by a plugin you installed. Plugins are not sandboxed from the network, so a +plugin can make its own requests — another reason to install ones you trust. + +[gh]: https://api.github.com/repos/PenguLoader/PenguLoader/releases/latest + +## No warranty + +Pengu Loader is free, open source, and provided as-is under the +[MIT License](https://github.com/PenguLoader/PenguLoader/blob/main/LICENSE). +There is no warranty. You install and use it at your own risk, and you are +responsible for what you and your plugins do with your account. + +If you aren't comfortable with that, don't install it — that's a completely +reasonable call. + +## Questions + +Ask in the [Discord server](https://chat.pengu.lol) or open an issue on +[GitHub](https://github.com/PenguLoader/PenguLoader). + +--- + +Pengu Loader isn't endorsed by Riot Games and doesn't reflect the views or +opinions of Riot Games or anyone officially involved in producing or managing +Riot Games properties. Riot Games, and all associated properties are trademarks +or registered trademarks of Riot Games, Inc. diff --git a/public/lol-banner.png b/public/lol-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..f5e0183e2cf760439f2281f9d8aea26ecd18cf98 GIT binary patch literal 19766 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 Vs0D>xWMlvU002ovPDHLkV1n%Ud657B literal 0 HcmV?d00001 From c1d6d74e398c885f391b842373e42c956f70cd12 Mon Sep 17 00:00:00 2001 From: Nguyen Duy Date: Mon, 3 Aug 2026 17:36:08 +0700 Subject: [PATCH 11/12] feat(docs): update v1.2 runtime API and guide docs --- .vitepress/components/Download.vue | 5 +- .vitepress/sidebar.ts | 1 + docs/download.md | 10 + docs/guide/asset-handling.md | 21 -- docs/guide/javascript-plugin.md | 71 ++++++- docs/guide/lcu-request.md | 5 +- docs/guide/migration-from-v0-6.md | 7 +- docs/guide/module-system.md | 4 +- docs/guide/npm-compatibility.md | 41 ---- docs/guide/npm-typescript.md | 112 +++++++++++ docs/guide/pengu-v1.2.md | 99 ++++++++++ docs/guide/welcome.md | 2 +- docs/index.md | 35 ++-- docs/runtime-api/command-bar.md | 55 ++++-- docs/runtime-api/data-store.md | 149 +++++++++++--- docs/runtime-api/effect.md | 243 ++++++++++++++++------- docs/runtime-api/fs.md | 231 ++++++++++++++++------ docs/runtime-api/index.md | 69 +++---- docs/runtime-api/modules/directory.md | 180 +++++++++++++++++ docs/runtime-api/modules/json.md | 107 ++++++++++ docs/runtime-api/pengu.md | 40 +++- docs/runtime-api/rcp.md | 27 +-- docs/runtime-api/settings.md | 269 ++++++++++++++++++++++++++ docs/runtime-api/socket.md | 13 +- docs/runtime-api/toast.md | 248 ++++++++++++++++++++++-- 25 files changed, 1715 insertions(+), 329 deletions(-) create mode 100644 docs/download.md delete mode 100644 docs/guide/npm-compatibility.md create mode 100644 docs/guide/npm-typescript.md create mode 100644 docs/guide/pengu-v1.2.md create mode 100644 docs/runtime-api/modules/directory.md create mode 100644 docs/runtime-api/modules/json.md create mode 100644 docs/runtime-api/settings.md diff --git a/.vitepress/components/Download.vue b/.vitepress/components/Download.vue index ae5fe7a..65806c4 100644 --- a/.vitepress/components/Download.vue +++ b/.vitepress/components/Download.vue @@ -64,8 +64,9 @@ onMounted(async () => {
Info
-
By downloading the app, you agree to the Privacy Policy.
+
Pengu Loader only restyles the League Client and never + touches the game — but it is a third-party tool, and what your plugins do is on you. Please read the Usage Policy before downloading.
diff --git a/.vitepress/sidebar.ts b/.vitepress/sidebar.ts index 4052d3b..0b3e74d 100644 --- a/.vitepress/sidebar.ts +++ b/.vitepress/sidebar.ts @@ -34,6 +34,7 @@ export function sidebar(): DefaultTheme.SidebarItem[] { { text: 'window.Effect (Visual)', link: '/runtime-api/effect' }, { text: 'window.CommandBar (UI)', link: '/runtime-api/command-bar' }, { text: 'window.Toast (UI)', link: '/runtime-api/toast' }, + { text: 'window.Settings (UI)', link: '/runtime-api/settings' }, { text: 'context.rcp', link: '/runtime-api/rcp' }, { text: 'context.socket', link: '/runtime-api/socket' }, { text: 'context.fs (PluginFS)', link: '/runtime-api/fs' }, diff --git a/docs/download.md b/docs/download.md new file mode 100644 index 0000000..82bdb4b --- /dev/null +++ b/docs/download.md @@ -0,0 +1,10 @@ +--- +layout: page +editLink: false +--- + + + + diff --git a/docs/guide/asset-handling.md b/docs/guide/asset-handling.md index f0cf245..428d99e 100644 --- a/docs/guide/asset-handling.md +++ b/docs/guide/asset-handling.md @@ -51,27 +51,6 @@ import this theme.css from your index.js */ ::: -### Common assets - -Since v0.5, we have provided access to local assets via the `//assets/` domain. - -Example: - -``` -loader/ - |__assets/ - |__your-image.png - |__your-background.mp4 - |... - |__plugins/ - |... -``` - -```html - - -``` - ## Remote assets ### GitHub file hosting diff --git a/docs/guide/javascript-plugin.md b/docs/guide/javascript-plugin.md index cd8b71f..371a119 100644 --- a/docs/guide/javascript-plugin.md +++ b/docs/guide/javascript-plugin.md @@ -58,19 +58,34 @@ Hello, League Client! -A plugin's entry point is an exported function in the plugin index that is called automatically by the loader. -The `init` entry should be called before League Client initializes its scripts. +A plugin's entry point is an exported function in the plugin index that is +called automatically by the loader. The `init` entry is called before League +Client initializes its scripts. ```js export function init(context) { // your code here } ``` -- See [`context.rcp`](../runtime-api/rcp) to use RiotClientPlugin hooks from this `context`. -- See [`context.socket`](../runtime-api/socket.md) to use built-in socket observation. -As of v1.1.0, you no longer need to put your load script in the `load` event of `window`. -Instead, you can put in the `load` entry, it will be called even after window is loaded. +The `context` gives you: + +- [`context.rcp`](../runtime-api/rcp) — RiotClientPlugin hooks. +- [`context.socket`](../runtime-api/socket) — built-in socket observation. +- `context.meta` — `{ name }`, your plugin's folder name. + +- [`context.fs`](../runtime-api/fs) — read/write access to your own plugin + folder. + +`meta` and `fs` are only present for **folder plugins** — see +[Plugin layouts](#plugin-layouts) below. + +`init` may be `async`, and the loader awaits it. That is how you delay the +Client's own startup until your setup is done — but keep it short, see +[Load timing](#load-timing). + +As of v1.1.0, you no longer need to register a `load` listener on `window` +yourself. Export a `load` entry instead and the loader wires it up for you. ```js export function load() { @@ -78,6 +93,50 @@ export function load() { } ``` +`load` runs once the Client's HTML has been parsed, which is where you should +touch the DOM. A `default` export is treated the same way if you don't export +`load`: + +```js +export default function () { + // same as `export function load()` +} +``` + +## Plugin layouts + +Pengu recognises three shapes inside the **plugins** folder: + +``` +plugins/ + |__quick-tweak.js <- single-file plugin + |__your-plugin/ + | |__index.js <- folder plugin + |__@author/ + |__their-plugin/ + |__index.js <- namespaced folder plugin +``` + +Single-file plugins work, but they get neither `context.meta` nor `context.fs` +— they have no folder of their own to scope those to. If your plugin needs to +store anything next to itself, give it a folder. + +Namespaced plugins (`@author/name/index.js`) are supported since v1.2, and are +the convention for anything you publish for others to install. + +## Load timing + +Every plugin's `init` is awaited before the Client's first RCP plugin is +released, so slow work in `init` delays Client startup for your users. + +Pengu caps the total wait at **15 seconds**. If your plugins collectively take +longer, the Client is released anyway and a warning appears in the console. +Plugins still finish loading in the background, but they may miss `preInit` / +`postInit` hooks for RCP plugins that already got past those phases. + +If a plugin throws while loading, the error is logged with the plugin name and +the remaining plugins carry on — one broken plugin does not take down the rest. + ## Plugin templates To get started with ease, we have already provided base plugins, check it out: diff --git a/docs/guide/lcu-request.md b/docs/guide/lcu-request.md index 73f006a..b5293f2 100644 --- a/docs/guide/lcu-request.md +++ b/docs/guide/lcu-request.md @@ -50,7 +50,7 @@ async function quitLobby() { // dont know why people call it 'dodge' When the WebSocket is ready, this link tag will appear: ```html - + ``` Getting its URI with a simple query. @@ -97,7 +97,8 @@ socket.send(JSON.stringify([6, ''])) ::: tip -Since v1.1.0, we have introduced [`context.socket`](../runtime-api/socket) to for easier socket observation. +Since v1.1.0, we have introduced [`context.socket`](../runtime-api/socket) to +for easier socket observation. ::: diff --git a/docs/guide/migration-from-v0-6.md b/docs/guide/migration-from-v0-6.md index ed5bcfd..4038c3f 100644 --- a/docs/guide/migration-from-v0-6.md +++ b/docs/guide/migration-from-v0-6.md @@ -1,5 +1,8 @@ # Migration from v0.6 +Pengu Loader v0.6 is known as **League Loader**, the old name of the project +before rebranding. + ## New plugin project structure @@ -145,5 +148,5 @@ In this case above, `import` becomes an async function like. You can also add a ### JSON and CSS modules -You should refer to the [Module System](./module-system) to handle -importing them. +You should refer to the [Module System](./module-system) to handle importing +them. diff --git a/docs/guide/module-system.md b/docs/guide/module-system.md index 93dc4e4..d8c708b 100644 --- a/docs/guide/module-system.md +++ b/docs/guide/module-system.md @@ -30,7 +30,7 @@ console.log(utils.greeting) // -> hello ```ts [utils.js] // export a simple object export default { - gretting: 'Hello' + gretting: 'Hello', } ``` @@ -127,7 +127,7 @@ In your CSS module, you can import plugin assets using relative path: ```css .some-div { background-image: url(./assets/image.png); - /* resolve to //plugins/your-plugin/assets/image.png */ + /* resolve to //plugins/your-plugin/assets/image.png */ } ``` diff --git a/docs/guide/npm-compatibility.md b/docs/guide/npm-compatibility.md deleted file mode 100644 index 174c9b3..0000000 --- a/docs/guide/npm-compatibility.md +++ /dev/null @@ -1,41 +0,0 @@ -# Npm Compatibility - -## Using NodeJS project - -We strongly recommend that you to use NodeJS project to build your plugins. - -With TypeScript or other languages that require transpilation, you need a build -tool to build them, Webpack, Rollup or Vite is the best choice. - -You can also use any front-end library to build custom UI, e.g. React, Preact, -Vue, Svelte, SolidJS, etc. With front-end tooling, its hot-reload/HMR will help -you to do faster. - -::: info - -Note that npm packages those are designed to run only in NodeJS cannot be used -to build plugins. - -::: - -::: tip - -With the build tool, the output of your bundled assets may have incorrect paths. -Please refer to the [Asset Handling](./asset-handling) to make correct -them. - -::: - -## Example plugins - -### Webpack 📦 - -- [douugdev/league-a-better-client](https://github.com/douugdev/league-a-better-client) - - A LCU utilities with HMR + ⚛ Preact + SASS + TypeScript - -### Vite ⚡ - -- [Pengu vite-theme](https://github.com/PenguLoader/PenguLoader/blob/main/plugins/vite-theme) - - A simple theme with HMR + SASS + TypeScript -- [Pengu @default](https://github.com/PenguLoader/PenguLoader/blob/main/plugins/@default) - - The default plugin with HMR + SolidJS + SASS + TypeScript diff --git a/docs/guide/npm-typescript.md b/docs/guide/npm-typescript.md new file mode 100644 index 0000000..9c3176a --- /dev/null +++ b/docs/guide/npm-typescript.md @@ -0,0 +1,112 @@ +# NPM & TypeScript + +## Using Node.js + +We strongly recommend that you to use Node.js project to build your plugins. + +With TypeScript or other languages that require transpilation, you need a build +tool to build them, Webpack, Rollup or Vite is the best choice. + +You can also use any front-end library to build custom UI, e.g. React, Preact, +Vue, Svelte, SolidJS, etc. With front-end tooling, its hot-reload/HMR will help +you to do faster. + +::: info + +Note that NPM packages those are designed to run only in NodeJS cannot be used +to build plugins. + +::: + +::: tip + +With the build tool, the output of your bundled assets may have incorrect paths. +Please refer to the [Asset Handling](./asset-handling) to make correct them. + +::: + +## Using TypeScript + + + +Pengu publishes its type definitions as **[`@pengujs/types`][pkg]**. Install it +as a dev dependency: + +::: code-group + +```sh [npm] +npm install --save-dev @pengujs/types +``` + +```sh [pnpm] +pnpm add -D @pengujs/types +``` + +```sh [yarn] +yarn add -D @pengujs/types +``` + +::: + +Then pull the global declarations in, either from a single source file: + +```ts +/// +``` + +Or once for the whole project, in `tsconfig.json`: + +```json +{ + "compilerOptions": { + "types": ["@pengujs/types"] + } +} +``` + +Every Pengu surface on `window` is now type-checked — +[`Pengu`](../runtime-api/pengu), [`os`](../runtime-api/#window-os), +[`DataStore`](../runtime-api/data-store), [`Toast`](../runtime-api/toast), +[`CommandBar`](../runtime-api/command-bar), [`Effect`](../runtime-api/effect) +and [`Settings`](../runtime-api/settings) — with no imports at the call site. + +### Typing your plugin entry + +The package also exports the plugin module types, so your entry points get +checked against what the loader actually passes: + +```ts +import type { PluginInitContext } from '@pengujs/types' + +export function init({ rcp, socket, meta, fs }: PluginInitContext) { + console.log('loading', meta?.name) +} + +export function load() { + Toast.success('Ready!') +} +``` + +`meta` and `fs` are optional in the type because single-file plugins don't +receive them — see [Plugin layouts](./javascript-plugin#plugin-layouts). + +### Writable JSON imports + +`$write` is added at runtime, so cast at the import site to surface it: + +```ts +import _config from './config.json' +import type { WritableJson } from '@pengujs/types' + +const config = _config as WritableJson + +config.theme = 'dark' +await config.$write(2) +``` + +[pkg]: https://www.npmjs.com/package/@pengujs/types + +## Example plugins + +- [balance-buff-viewer](https://github.com/nomi-san/balance-buff-viewer) - Shows + Aram balance buffs/nerfs in champ-select. Built with Vite and TypeScript. diff --git a/docs/guide/pengu-v1.2.md b/docs/guide/pengu-v1.2.md new file mode 100644 index 0000000..fcfa901 --- /dev/null +++ b/docs/guide/pengu-v1.2.md @@ -0,0 +1,99 @@ +# What's new in Pengu v1.2 + +## New Features + +### Settings API + +Declare a schema and Pengu renders a settings form for your plugin inside the +Client, with an optional hotkey to open it: + +```js +Settings.register({ + id: 'my-plugin', + name: 'My Plugin', + hotkey: 'Ctrl+Shift+S', + schema: { + enabled: { type: 'boolean', label: 'Enabled', default: true }, + }, + state: config, + onChange: () => config.$write(2), +}) +``` + +No more hand-rolled settings UI, and no more asking users to edit JSON by hand. +See [window.Settings](../runtime-api/settings). + +### Writable JSON modules + +`import config from './config.json'` now gives you a `$write` method to save +changes back to disk, with optional pretty-printing: + +```ts +config.theme = 'dark' +await config.$write(2) +``` + +Writes are atomic, and `$write` can only ever overwrite the file it was +imported from. See [JSON Module](../runtime-api/modules/json). + +### Directory imports + +Append `?dir` to an import path to get a handle on a folder — list its files, +build URLs for them, or open it in Explorer / Finder for your user: + +```js +import images from './images?dir' + +for (const name of await images.files()) { + document.body.append(Object.assign(new Image(), { src: images.urlFor(name) })) +} +``` + +See [Directory Module](../runtime-api/modules/directory). + +### PluginFS is back + +Folder plugins get `context.fs` again — `read`, `write`, `mkdir`, `stat`, `ls` +and `rm`, scoped to the plugin's own directory. Namespaced plugins +(`plugins/@author/my-plugin/`) are supported, and top-level single-file plugins +still don't receive it. See [PluginFS](../runtime-api/fs). + +## API Changes + +### PluginFS options objects + +The trailing boolean flags on `write` and `rm` are now options objects: + +```js +await context.fs.write('./log.txt', 'x', true) // [!code --] +await context.fs.write('./log.txt', 'x', { append: true }) // [!code ++] + +await context.fs.rm('./dir', true) // [!code --] +await context.fs.rm('./dir', { recursive: true }) // [!code ++] +``` + +### `context.fs.mkdir` is idempotent + +Creating a directory that already exists now resolves `true`. It used to +resolve `false`, which was indistinguishable from a real failure. + +### `context.fs` can't touch your `index.js` + +`write` returns `false` and `rm` returns `0` for your plugin's own entry point. +It's the only file Pengu auto-executes from your folder, so a write there would +let one bad dependency persist itself across restarts. + +### `Directory.exists()` returns a promise + +```js +if (images.exists()) {} // [!code --] +if (await images.exists()) {} // [!code ++] +``` + +It reads the filesystem on every call rather than caching at import time, which +matters now that `reveal()` can create the folder. + +### `Directory.reveal()` takes no arguments + +It always creates the folder if it's missing, so the `create` flag is gone. It +returns a promise that rejects on failure, instead of `void`. diff --git a/docs/guide/welcome.md b/docs/guide/welcome.md index 8578a6b..0e81690 100644 --- a/docs/guide/welcome.md +++ b/docs/guide/welcome.md @@ -3,7 +3,7 @@ ## What is Pengu Loader?

- +

**Pengu Loader** (formerly **League Loader**) is a **plugin loader** designed diff --git a/docs/index.md b/docs/index.md index a33e6b7..5758bc1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,42 +1,41 @@ --- layout: home - title: Pengu Loader titleTemplate: Pengu Loader - hero: - name: Pengu Loader - # text: Pengu Loader - tagline: Unleash the power of Customization from your League of Legends Client + name: Build your unmatched + text: LoL Client + tagline: Start customizing now! image: - src: /Pengu_Featherknight_144.jpg - alt: VitePress + src: /images/visual-acrylic.png + alt: Pengu Loader actions: - theme: brand + text: Download + link: /download + - theme: alt text: Get Started link: /guide/welcome - theme: alt - text: Join our Discord + text: Join Discord link: https://chat.pengu.lol - - theme: alt - text: View on GitHub - link: https://github.com/PenguLoader/PenguLoader - features: - icon: src: /features/javascript.png title: JavaScript-Powered - details: Build a more intelligent Client with JavaScript. It's great to be able to use your favorite front-end technology. + details: Build a more intelligent Client with modern JavaScript and flexible web stacks. + link: /guide/javascript-plugin + linkText: Create your first plugin - icon: src: /features/theme.png title: Personalized Look & Feel details: Customize the Client interface to your preferences and make it unique. + link: /guide/css-theme + linkText: Create your first theme - icon: src: /features/league-of-legends.png title: Inside the League - details: Designed to work seamlessly within the Client, helping you to access the LCU without restriction. - - icon: - src: /features/chrome-dev.png - title: Chrome DevTools - details: Inspect and edit anything on the Client just as you would in a web browser. + details: Designed to work seamlessly within the Client UX, for simplified API access and hooks. + link: /runtime-api/ + linkText: Check out API docs --- diff --git a/docs/runtime-api/command-bar.md b/docs/runtime-api/command-bar.md index b0eae30..30733a8 100644 --- a/docs/runtime-api/command-bar.md +++ b/docs/runtime-api/command-bar.md @@ -1,8 +1,7 @@ # CommandBar -Since v1.1.0, we bring to you a new Command Bar -that can provide access to app-level commands -and can be used with any navigation pattern. +Since v1.1.0, we bring to you a new Command Bar that can provide access to +app-level commands and can be used with any navigation pattern. Let's press `Ctrl + K` to open the Command Bar. @@ -27,7 +26,8 @@ To add your custom actions, please use the APIs below. function addAction(action: Action): void ``` -Add a new action item to the Command Bar. It will automatically update even when showing. +Add a new action item to the Command Bar. It will automatically update even when +showing. #### Params @@ -35,17 +35,44 @@ Add a new action item to the Command Bar. It will automatically update even when ```ts interface Action { - id?: string // (optional) an unique idetifier for the action - name: string // action's name - legend?: string // (optional) action's note/legend or shortcut key - tags?: string[] // (optional) tags or keywords to search - icon?: string // (optional) HTML tag in string - group?: string // (optional) group name - hidden?: boolean // (optional) hide the action, except for search results - perform?: (id?: string) => any // called when the action is executed + id?: string // (optional) a unique identifier for the action + name: string | (() => string) // action's name + legend?: string | (() => string) // (optional) action's note/legend or shortcut key + tags?: string[] // (optional) tags or keywords to search + icon?: string // (optional) HTML tag in string + group?: string | (() => string) // (optional) group name + hidden?: boolean // (optional) hide the action, except for search results + perform?: (id?: string) => unknown // called when the action is executed } ``` +`name`, `legend` and `group` accept a **function** as well as a string. The +function is called each time the bar renders, which is what you want for labels +that change — a toggle whose name flips between "Enable X" and "Disable X", or +text that follows the Client's language. + +An action with no `group` is filed under `uncategorized`. + +An action that isn't an object, or has no `name`, is rejected with a warning in +the DevTools console. + +Example: + +```js +let enabled = false + +CommandBar.addAction({ + id: 'my-plugin/toggle', + name: () => (enabled ? 'Disable my plugin' : 'Enable my plugin'), + group: 'My Plugin', + tags: ['toggle'], + perform: () => { + enabled = !enabled + CommandBar.update() + }, +}) +``` + ## CommandBar.show @@ -66,5 +93,5 @@ Show the Command Bar programmatically if it was hidden. function update(): void ``` -Manually trigger the Command Bar to update its items. -Only use this function if your added actions are not updating. \ No newline at end of file +Manually trigger the Command Bar to update its items. Only use this function if +your added actions are not updating. diff --git a/docs/runtime-api/data-store.md b/docs/runtime-api/data-store.md index c87b15d..d7055f7 100644 --- a/docs/runtime-api/data-store.md +++ b/docs/runtime-api/data-store.md @@ -3,24 +3,44 @@ League Client does not store user data on disk, similar to incognito mode in web browsers. This namespace helps you to store user data on disk. -## DataStore.set(key, value) +The whole store is read from disk **before any plugin runs**, and kept in memory +for the rest of the session. Reads (`get`, `has`) are therefore synchronous and +safe to call from your plugin's `init`. Writes update memory immediately and +commit to disk on a short debounce, so a burst of `set` calls (a settings slider, +say) collapses into a single write. + +## DataStore.set() -Call this function to store your data with a given key. +```ts +function set(key: string, value: unknown): boolean +``` + +Stores data associated with the specified key. + +#### Parameters + +- `key` (string) The key under which the data will be stored. Keys must be unique across + all plugins to avoid conflicts. + +- `value` (unknown) The value to store. Supported types include: + - Primitive types: string, number, boolean, null + - Collections: arrays, objects -Parameters: +All data is serialized into JSON format, so non-serializable types such as +functions and runtime objects will be ignored. -- `key` (required) Keys should be string or number. -- `value` (required) Value may be string, number, boolean, null or collection - like array and object. Actually, it will be stored as JSON format, so any - value like function and runtime object are ignored. +#### Returns -Returns: -- A boolean value that indicates your key is valid and the data is stored successfully. +`true` if the value was accepted, `false` if `key` was not a string. -Example: +The return value is **not** a write confirmation — it means "stored in memory, +and it will reach disk shortly". Use [`flush()`](#datastore-flush) if you need +to know the data is durable. + +#### Example ```js let my_num = 10 @@ -29,23 +49,46 @@ DataStore.set('my_num', my_num) DataStore.set('my_str', my_str) ``` -::: tip Unique keys +#### Remarks + +To avoid data conflicts, use unique and descriptive key names, preferably +prefixed with your plugin’s identifier. For example, use +`plugin-name/user-settings` instead of generic names like `settings` or `data`. -You should use unique names for keys, do not use common names, e.g -`access_token`, `is_logged`, etc. Other plugins can override your data, you can -add prefix to your keys. +For multiple data entries such as config or user settings, you should store them +in an object. -::: +```ts +let config = { a: 10, b: 'hello' } +DataStore.set('my-config', config) +``` -## DataStore.get(key, fallback?) +## DataStore.get() -Retrieve your stored data with a given key. If the key does not exist, it will -return `undefined`. +```ts +function get(key: string, fallback?: T): T | undefined +``` + +Retrieves stored data by key. If the key does not exist, the function will +return undefined or an optional fallback value. -Example: +This is a synchronous read against the in-memory copy, so it is safe to call +from your plugin's `init`. + +#### Parameters + +- `key` (string) The key associated with the data. + +- `fallback` (T) (optional) A default value to return if the key does not exist. + +#### Returns + +The stored data, or the fallback value if the key is missing. + +#### Example ```js console.log(DataStore.get('my_str')) @@ -61,30 +104,82 @@ console.log(DataStore.get('key-does-not-exist', 1000)) // 1000 ``` -## DataStore.has(key) +## DataStore.has() -This function returns a boolean indicating whether data with the specified key -exists or not. +```ts +function has(key: string): boolean +``` + +Checks if a specific key exists in the storage. + +#### Parameters + +- `key` (string) The key to check. + +#### Returns + +A boolean value indicating whether the key exists. + +#### Example ```js console.log(DataStore.has('my_num')) console.log(DataStore.has('key-does-not-exist')) ``` -## DataStore.remove(key) +## DataStore.remove() -This function removes the specified data from storage by key, returns true if -the existing key-value pair has been removed. +```ts +function remove(key: string): boolean +``` + +Removes a key-value pair from storage. + +#### Parameters + +- `key` (string) The key of the data to remove. -Example: +#### Returns + +- `true` if the key was found and removed. +- `false` if the key does not exist. + +Like `set`, the removal applies to memory immediately and is committed to disk +on the same debounce. + +#### Example ```js DataStore.remove('some-key') DataStore.has('some-key') // -> false -``` \ No newline at end of file +``` + +## DataStore.flush() + + + + +```ts +function flush(): Promise +``` + +Writes any pending changes out immediately and resolves once they are durable +on disk. + +Most plugins never need this — the debounced commit already handles normal use. +Reach for it when you are about to do something that could end the session +before the debounce fires, such as calling `restartClient()`. + +#### Example + +```js +DataStore.set('my-config', config) +await DataStore.flush() +window.restartClient() +``` diff --git a/docs/runtime-api/effect.md b/docs/runtime-api/effect.md index 3cd61cc..cf83144 100644 --- a/docs/runtime-api/effect.md +++ b/docs/runtime-api/effect.md @@ -1,110 +1,219 @@ -# Effect +# `window.Effect` -This namespace supports changing window transparency/translucent effect. +This namespace object allows you to change the visual effect behind the Client +window. -
- -![](https://user-images.githubusercontent.com/38210249/216951830-b3bb3ce3-7a5f-4e60-8a67-33d0bce799cf.png) +## Visual Effects -## Effect.current +### `transparent` - - +

+ +

-A read-only property that returns the currently applied effect or `null` if -no effect has been applied. +Transparent window background, you can see other windows and desktop background +under the window. -Available effects: `mica`, `acrylic`, `unified` and `blurbehind`. +> Available on Windows 7+, macOS 10.14+ -Example: +### `blurbehind` -```js -console.log(Effect.current) -// mica -``` +

+ +

-## Effect.apply(name, options?) +Blurbehind is also known as **aero glass** effect, it looks like Windows Vista & +Windows 7 glossy blur effect. - - +> Available on Windows 7+, macOS 10.14+ -A function that takes the name of the desired effect name and an optional -object.
It returns a boolean indicating whether the effect was successfully -applied or not. +### `acrylic` -Parameters: +

+ +

-- `name` [required] These effect names above to be applied, in string. +Acrylic is a type of brush that creates a translucent texture. You can apply +acrylic to app surfaces to add depth and help establish a visual hierarchy. +Works only on Windows 10 version 1803 or higher. -- `options` [optional] Additional options for the effect, `acrylic`, `unified` - and `blurbehind` could have tint color, but `mica` will ignore this options. +> Available on Windows 10 1803+, macOS 10.14+ -This function returns `false` if the effect could not be applied, see the -[System compatibility](#system-compatibility) below. +### `unified` -Example: +Unified is a mix of Acrylic and Blurbehind. It is available on Windows 11, but +you can use on Windows 10 with no difference from Acrylic. -```js -// enable acrylic on Windows 10 -Effect.apply('acrylic') +> Available on Windows 11, macOS 10.14+ -// with a tint color -Effect.apply('unified', { color: '#4446' }) +### `mica` -// mica on windows 11, no options needed -Effect.apply('mica') -``` +Mica is an opaque, dynamic material that incorporates theme and desktop +wallpaper to paint the background of long-lived windows. Works only on Windows +11 or greater. -::: info +> Available on Windows 11, macOS 10.14+ -Tint colors must be in CSS hex color format, e.g. #RGB, #RGBA, #RRGGBB, -#RRGGBBAA. +[Mica Alt](https://learn.microsoft.com/en-us/windows/apps/design/style/mica#app-layering-with-mica-alt) +or mica with material is introduced in Windows 11 build 22523. -To see transparency effect correctly, you should remove all lowest backgrounds. +- `none` +- `auto` +- `mica` +- `acrylic` Acrylic is a type of brush that creates a translucent texture. You + can apply acrylic to app surfaces to add depth and help establish a visual + hierarchy. +- `tabbed` Tabbed is a Mica like material that incorporates theme and desktop + wallpaper, but is more sensitive to desktop wallpaper color. -::: +### `vibrancy` -![](https://user-images.githubusercontent.com/38210249/216951865-bb9c6676-58ec-4c81-ad96-67e94e91ac22.png) +Vibrancy is a subtle blending of foreground and background colors to increase +the contrast and make the foreground content stand out visually. -## Effect.clear() +> Available on macOS 10.14+ - - +Vibrancy works with material like Mica on Windows 11, here is the list based on +[NSVisualEffectMaterial](https://developer.apple.com/documentation/appkit/nsvisualeffectmaterial): -A function that clears any currently applied effect, then the Client background -will be black.
Using `Effect.current` after clearing will give you -`undefined`. - -Example: - -```js -// just clear applied effect, even if nothing applied -Effect.clear() -``` +- `Titlebar` The material for a window's titlebar. +- `Selection` The material for text selection. +- `Menu` The material for menus. +- `Popover` The material for the background of popover windows. +- `Sidebar` The material for the background of window sidebars. +- `HeaderView` The material for in-line header or footer views. +- `Sheet` The material for the background of sheet windows. +- `WindowBackground` The material for the background of opaque windows. +- `HudWindow` The material for the background of heads-up display (HUD) windows. +- `FullScreenUI` The material for the background of a full-screen modal + interface. +- `Tooltip` The material for the background of a tool tip. +- `ContentBackground` The material for the background of opaque content. +- `UnderWindowBackground` The material to show under a window's background. +- `UnderPageBackground` The material for the area behind the pages of a + document. ## System compatibility +### Windows + - On Windows 7, only the `blurbehind` is supported. -- On Windows 10, requires build 1703 or higher to use `acrylic`. +- On Windows 10, requires version 1803 or higher to use `acrylic`. - `mica` and `unified` are only supported on Windows 11, but `unified` can be enabled on Windows 10 without different from `acrylic`. ::: warning -On Windows 10 build **1903** (19H1) and higher, enabling `acrylic/mica/unified` with -**Transparency effects** (in Personalize -> Color settings) will cause lag when -moving the Client window. +On Windows 10 build **1903** (19H1) and higher, enabling `acrylic/mica/unified` +with **Transparency effects** (in Personalize -> Color settings) will cause lag +when moving the Client window. ::: -## Listening for changes +### macOS + +On macOS, we only have the `vibrancy` effect, so those Windows-based effects +will be treated as `vibrancy` with the appropriate material, and the effect will +appear when the Client window is active. + +- `transparent` => `UnderWindowBackground` material +- `blurbehind` => `HudWindow` material +- `acrylic` => `FullScreenUI` material +- `unified` => `Popover` material +- `mica` => `HeaderView` material + +
+ +## API functions + +### `Effect.apply()` + +```ts +function apply( + name: 'transparent' | 'blurbehind' | 'acrylic' | 'unified', + options?: { color: string }, +): void +function apply( + name: 'mica', + options?: { material?: 'auto' | 'none' | 'mica' | 'acrylic' | 'tabbed' }, +): void +function apply( + name: 'vibrancy', + options: { material: string; alwaysOn?: boolean }, +): void +``` + +Apply window visual effect with the name of the desired effect. + +#### Parameters + +- `name` These effect names above to be applied, in string. + +- `options` [optional] Additional options for the effect. + +An unknown effect name, or an unknown `mica` / `vibrancy` material, is ignored +with a warning in the DevTools console rather than throwing. + +#### Remarks + +- `transparent`, `blurbehind`, `acrylic` and `unified` require options object + with a `color` field is CSS hex color. + + ```js + // enable transparent effect with accent color is #0008 + Effect.apply('transparent', { color: '#0008' }) + ``` + +- The `mica` might require the options with material. + + ```js + // enable pure mica effect (Windows 11) + Effect.apply('mica') + + // enable mica alt effect with acrylic material (Windows 11 build 22523+) + Effect.apply('mica', { material: 'acrylic' }) + ``` + +- The `vibrancy` effect is like the `mica` but also has an option `alwaysOn` to + indicate that the effect should always appear even the window is inactive, it + is `false` by default. + + ```js + // enable vibrancy effect with HudWindow material (macOS) + Effect.apply('vibrancy', { material: 'HudWindow' }) + // always on + Effect.apply('vibrancy', { material: 'HudWindow', alwaysOn: true }) + ``` + +::: info + +Accent color must be in CSS hex color format. + +- #RGB, #RRGGBB (red-green-blue) +- #RGBA, #RRGGBBAA (red-green-blue-alpha) + +To see transparency effect correctly, you should remove all opaque backgrounds. + +::: + +### Effect.clear() + +```ts +function clear() +``` + +Call this function to clear the applied window visual effect. + +### `Effect.setTheme()` + +```ts +function setTheme(theme: 'light' | 'dark') +``` -Add a listener which will be triggered when effect changed. +Change the default theme of the Client window. There are two options `light` or +`dark`, the initial value is set by system settings. -```js -window.addEventListener('effect-changed', (event) => { - console.log(event.detail) -}) -``` \ No newline at end of file +Since v1.2.0, window theme is set to `dark` by default, and won't be affected by +system settings. You can call this function to turn on `light` theme. diff --git a/docs/runtime-api/fs.md b/docs/runtime-api/fs.md index d61593c..478ebb7 100644 --- a/docs/runtime-api/fs.md +++ b/docs/runtime-api/fs.md @@ -1,64 +1,143 @@ -# PluginFS
+# PluginFS -This namespace helps you to gain access to **plugin's own directory** and perform some basic file system operations. +This namespace helps you to gain access to **plugin's own directory** and +perform some basic file system operations. + +```js +export function init({ meta, fs }) { + if (!fs) return // top-level plugin, see below + await fs.write('state.json', JSON.stringify({ ok: true })) +} +``` ::: tip -**Top-level** plugins don't have this namespace since they don't own a directory. +**Top-level** plugins don't have this namespace since they don't own a +directory. + +A folder plugin — `plugins/my-plugin/index.js`, or +`plugins/@author/my-plugin/index.js` — gets an `fs` scoped to that folder. A +single-file `plugins/my-plugin.js` gets nothing, because the only folder it +could be scoped to is the plugins root, which holds everyone else's files. If +you need a filesystem, ship your plugin as a folder. ::: ::: warning -All paths passed into this API are **relative to the root** directory of your plugin. +All paths passed into this API are **relative to the root** directory of your +plugin. + +::: + +::: danger + +APIs under this namespace return a **Promise of `undefined`** (or `false` / `0`, +depending on the method) when the path is rejected. They don't throw, so check +the return value. ::: +## What counts as a legal path + +Everything is resolved inside your plugin folder, and there is no way to address +anything outside it: + +- Absolute paths are rejected. +- `..` is rejected as a path component — not stripped, rejected. +- Symlinks are rejected at **every** level of the path, not just the last one. +- The final resolved path is re-checked against your plugin root before anything + runs. + +Also rejected: empty path components, components longer than 255 bytes, paths +longer than 4096 bytes, `:` and NUL anywhere in a component, and — on Windows — +reserved device names (`CON`, `PRN`, `AUX`, `NUL`, `COM1`–`COM9`, `LPT1`–`LPT9`) +plus names ending in a dot or a space. + +Reads and writes are capped at **16 MB**. + +## Security model + +`fs` is a **capability object**: whoever holds it can use it. There's no further +check on who's calling. + +That's different from [`$write`](./modules/json) and +[`?dir`](./modules/directory), which figure out their target from the calling +script and can't be handed to anyone. + ::: danger -APIs under this namespace will return a **Promise of undefined** if [illegal paths](https://github.com/PenguLoader/PenguLoader/blob/dev/plugins/src/preload/api/PluginFS.ts#L52) detected. +Passing your `fs` to imported third-party code gives that code your plugin's +folder, including the ability to leave files behind that survive restarts. Treat +it like an API key. ::: +What limits the damage is the scope: a leaked `fs` reaches one plugin's folder, +never another plugin's, and never your `index.js`. + ## context.fs.read(path) - + Read a file in text mode. ### Params -- `path` - The path of the file you want to access with respect to the plugin root directory. +- `path` - The path of the file you want to access with respect to the plugin + root directory. ### Return value A `Promise` of content `string` on success. -A `Promise` of `undefined` on failure. +A `Promise` of `undefined` on failure — missing, not a file, unreadable, or +larger than 16 MB. These aren't distinguished. ### Example ```javascript -context.fs.read("./index.js").then( content => { - console.log(content) +context.fs.read('./index.js').then((content) => { + console.log(content) }) -const content = await context.fs.read("./README.md") +const content = await context.fs.read('./README.md') ``` -## context.fs.write(path,content,enableAppendMode?) +::: tip + +Text only. There's no byte-array API, so reading a binary file gives you +mojibake rather than an error. + +::: + +## context.fs.write(path,content,options?) - + Write a file in text mode. ### Params -- `path` - The path of the file you want to access with respect to the plugin root directory. +- `path` - The path of the file you want to access with respect to the plugin + root directory. - `content` - The content `string` you want to write into the file. -- `enableAppendMode` - Append to file if set to `true` or overwrite file if `false`. This is `false` by default. +- `options.append` - Append to file if set to `true` or overwrite file if + `false`. This is `false` by default. + +::: warning + +`since v1.2.0` the third argument is an options object. It used to be a bare +`enableAppendMode` boolean. + +```javascript +await context.fs.write('./log.txt', 'x', true) // [!code --] +await context.fs.write('./log.txt', 'x', { append: true }) // [!code ++] +``` + +::: ### Return value @@ -68,107 +147,136 @@ A `Promise` of `boolean` indicating success or failure. ```javascript // Create test.txt and write "Hello" into it -context.fs.write("./test.txt","Hello").then( result => { - if(result){ - // success - }else{ - // fail - } +context.fs.write('./test.txt', 'Hello').then((result) => { + if (result) { + // success + } else { + // fail + } }) -// Appending " World!" to it -const result = await context.fs.write("./test.txt"," World!",true) +// Appending " World!" to it +const result = await context.fs.write('./test.txt', ' World!', { append: true }) ``` ::: tip -This API can create a file but can't create a file under a non-existing directory. +This API can create a file but can't create a file under a non-existing +directory. Call `context.fs.mkdir` first. + +::: + +::: danger + +**Your plugin's own `index.js` can't be written or removed.** `write` returns +`false` and `rm` returns `0` for it. + +It's the only file in your folder that Pengu executes on its own at launch, so +allowing writes there would let a single bad dependency install itself +permanently. Every other file in your folder is writable, and nothing else is +auto-loaded. ::: +### Writes are atomic + +Overwriting goes through a temporary file in the same directory, then a rename. +A crash mid-write leaves the previous contents intact instead of a truncated +file. Appending writes directly. + ## context.fs.mkdir(path) - + Create directories recursively. ### Params -`path` - The directory path you want to create with respect to the plugin root directory. +`path` - The directory path you want to create with respect to the plugin root +directory. ### Return Value A `Promise` of `boolean` indicating success or failure. +::: warning + +`since v1.2.0` this is idempotent — a directory that already exists counts as +success. It used to return `false` in that case. + +::: + ### Example ```javascript -const bMkdir0 = await context.fs.mkdir("utils") -const bMkdir1 = await context.fs.mkdir("/a/b") -const bMkdir2 = await context.fs.mkdir("/a\\c") -// false because it already exists -const bMkdir3 = await context.fs.mkdir("a\\b/") +const bMkdir0 = await context.fs.mkdir('utils') +const bMkdir1 = await context.fs.mkdir('/a/b') +const bMkdir2 = await context.fs.mkdir('/a\\c') +// true — already exists is not a failure +const bMkdir3 = await context.fs.mkdir('a\\b/') ``` ## context.fs.stat(path) - + Get status of a file. ### Params -- `path` - The file path with respect to the plugin root directory. +- `path` - The file path with respect to the plugin root directory. Omit it to + stat your plugin root. ### Return value -A `Promise` of `FileStat` on success. -A `Promise` of `undefined` on failure. - +A `Promise` of `FileStat` on success. A `Promise` of `undefined` on failure. ```typescript -interface FileStat{ +interface FileStat { fileName: string // 0 if isDir is true length: number isDir: boolean + isFile: boolean } ``` ### Example ```javascript -const stat1 = await context.fs.stat("a/b") -if(stat1){ - console.log("it's a directory") +const stat1 = await context.fs.stat('a/b') +if (stat1) { + console.log("it's a directory") } -const stat2 = await context.fs.stat("a/random.js") +const stat2 = await context.fs.stat('a/random.js') ``` ## context.fs.ls(path) - + -List files and directories under given path. +List files and directories under given path. ### Params -- `path` - The directory path with respect to the plugin root directory. +- `path` - The directory path with respect to the plugin root directory. Omit it + to list your plugin root. ### Return value -A `Promise` of `string[]` of file name strings on success. +A `Promise` of `string[]` of file name strings on success, sorted +alphabetically. Symlinked entries are skipped rather than listed. A `Promise` of `undefined` on failure. -## context.fs.rm(path,recursively?) +## context.fs.rm(path,options?) - + ::: danger @@ -183,24 +291,39 @@ Just like `rm` command in Unix-like systems. ### Params - `path` - The file/directory path with respect to the plugin root directory. -- `recursively` - Delete all files/directories under the give path recursively. This is `false` by default. +- `options.recursive` - Delete all files/directories under the given path + recursively. This is `false` by default. + +::: warning + +`since v1.2.0` the second argument is an options object. It used to be a bare +`recursively` boolean. + +```javascript +await context.fs.rm('./dir', true) // [!code --] +await context.fs.rm('./dir', { recursive: true }) // [!code ++] +``` + +::: ### Return value A `Promise` of `number` showing how many files and directories is deleted. +Your plugin root itself and your `index.js` are refused, and return `0`. + ### Example -You can only delete a non-empty directory with `recursively` set to `true` +You can only delete a non-empty directory with `recursive` set to `true` ```javascript // 1 -const bRm1 = await context.fs.rm("./empty-dir") +const bRm1 = await context.fs.rm('./empty-dir') // 1 -const bRm2 = await context.fs.rm("./random-file-under-plugin-root") +const bRm2 = await context.fs.rm('./random-file-under-plugin-root') // bRm3 == 0 because it's not empty -const bRm3 = await context.fs.rm("./non-empty-dir") -// bRm4 >= 1 with recursively set to true -const bRm4 = await context.fs.rm("./non-empty-dir",true) +const bRm3 = await context.fs.rm('./non-empty-dir') +// bRm4 >= 1 with recursive set to true +const bRm4 = await context.fs.rm('./non-empty-dir', { recursive: true }) ``` diff --git a/docs/runtime-api/index.md b/docs/runtime-api/index.md index 8b50fd6..88140fb 100644 --- a/docs/runtime-api/index.md +++ b/docs/runtime-api/index.md @@ -3,7 +3,7 @@ These APIs are designed to use inside League Client with Pengu Loader plugin runtime. -## window.openDevTools(remote?) +## window.openDevTools() @@ -13,22 +13,8 @@ Call this function to open the built-in Chrome DevTools window. Example: ```js -window.openDevTools() // built-in DevTools -window.openDevTools(true) // remote DevTools -``` - -## window.openAssetsFolder() - - - - - -Call this function to open the assets folder in new File Explorer window. - -Example: - -```js -window.openAssetsFolder() +// open the DevTools +window.openDevTools() ``` ## window.openPluginsFolder(path?) @@ -44,7 +30,7 @@ Example: ```js window.openPluginsFolder() -window.openPluginsFolder("/plugin-demo/config") +window.openPluginsFolder('/plugin-demo/config') ``` ## window.reloadClient() @@ -78,33 +64,50 @@ window.restartClient() -Call this function get the current script path. +```ts +function getScriptPath(): string | undefined +``` + +Returns the URL of the script that called it, or `undefined` if it could not be +determined. + +It works by reading the current stack trace, so call it **directly from your own +script**. Calling it from inside a callback that Pengu or the Client invokes may +return a different script's URL, or nothing at all. Example: ```js +console.log(window.getScriptPath()) // https://plugins/your-plugin/index.js -window.getScriptPath() ``` -## window.__llver +## window.os + + + - - - +A read-only object describing the operating system the Client is running on. -This property returns the current version of Pengu Loader. +```ts +interface OsGlobal { + name: 'win' | 'mac' + version: string + build: string +} +``` Example: ```js -console.log(window.__llver) // 0.6.0 -console.log(`You are using Pengu Loader v${window.__llver}`) -``` +console.log(window.os) +// { name: 'win', version: '10.0', build: '19045' } -::: tip - -Since v1.1.0, this property has been deprecated. -Please use `Pengu.version` instead. +if (os.name === 'mac') { + // macOS-only code path +} +``` -::: \ No newline at end of file +For a simple platform check, [`Pengu.isMac`](./pengu#pengu-ismac) is shorter. +Use `os.version` / `os.build` when an effect or API you rely on needs a minimum +OS build — see [Effect compatibility](./effect#system-compatibility). diff --git a/docs/runtime-api/modules/directory.md b/docs/runtime-api/modules/directory.md new file mode 100644 index 0000000..3c8e992 --- /dev/null +++ b/docs/runtime-api/modules/directory.md @@ -0,0 +1,180 @@ +# Directory Module + +Pengu runtime allows you to access plugins' folder using the `import` statement. + +## Importing a directory (folder) + +`since v1.2.0` + +You can import a directory by appending `?dir` to the import path. The result is +an instance of a built-in **Directory** class, which provides various methods to +interact with the folder. + +```js +import images from './images?dir' +``` + +The folder doesn't have to exist yet. `?dir` resolves as long as the path is +valid, so you can import a folder and let `reveal()` create it the first time +your user asks for it. + +### Rules + +- **Relative Paths Only**: Import paths must be relative. +- **No Dynamic Imports**: Using dynamic imports with `?dir` is unsupported. +- **Local Only**: Directory imports from remote URLs are not allowed. + +These aren't style rules — together they're what keeps the plugins folder out of +reach of remote scripts. A relative import resolves against the URL of the file +doing the importing, so `./images?dir` inside your plugin resolves to +`https://plugins/your-plugin/images`, while the same line inside a script loaded +from `https://example.com/` resolves against *that* origin and never reaches +Pengu. There's no constructor and no way to build a Directory from a string at +runtime. + +::: warning + +A Directory is scoped to the **plugins folder**, not to your plugin. Any plugin +can reach any folder under `plugins/`. Don't treat it as a privacy boundary +between plugins — if you need one, folder plugins get a properly scoped +[PluginFS](../fs). + +::: + +
+ +See the sections below to use the instance properties and methods. + +## `Directory.url` + +```ts +const url: string +``` + +A read-only property that returns the URL to the directory, without a trailing +slash. + +For example, your plugin name is `your-plugin` and the code is executed in the +`index.js`. + +```ts +// plugin index.js +import images from './images?dir' + +console.log(images.url) +// output: https://plugins/your-plugin/images +``` + +To build the URL of a file *inside* the folder, use `urlFor()` below rather than +joining strings yourself. + +## `Directory.exists()` + +```ts +function exists(): Promise +``` + +Indicates whether the directory exists or not. The filesystem is checked on +every call, so the answer is always current. + +```js +import images from './images?dir' + +if (!(await images.exists())) { + console.log('no images folder yet') +} +``` + +## `Directory.files()` + +```ts +function files(): Promise +``` + +Lists all files in the directory, not including folders and files in subfolders. +The method returns a promise with array of file names, sorted, so your UI +renders in a stable order. + +```js +import images from './images?dir' + +for (let file of await images.files()) { + console.log('image: %s', file) +} +``` + +A directory that doesn't exist resolves to an empty array — that's the normal +state before your user has added anything, not an error. A directory that exists +but can't be read rejects, so a real permission problem doesn't quietly look +like an empty folder. + +## `Directory.urlFor()` + +```ts +function urlFor(name: string): string +``` + +Returns the URL of a file inside the directory, with the name properly encoded. + +```js +import images from './images?dir' + +for (const file of await images.files()) { + const img = document.createElement('img') + img.src = images.urlFor(file) + document.body.appendChild(img) +} +``` + +::: warning + +Don't join `url` and a file name yourself. `url` has no trailing slash, and raw +file names aren't URL-safe — a file called `hero#2.png` would be cut off at the +`#`, and names containing `%` or `?` break in other ways. `urlFor()` handles all +of it. + +::: + +`name` must be a plain file name. Path separators and `..` throw a `TypeError`, +since this method reaches into the folder and never out of it. + +## `Directory.reveal()` + +```ts +function reveal(): Promise +``` + +Call this method to open the directory in the system's file explorer, such as +**Explorer** on Windows or **Finder** on macOS. If the directory doesn't exist, +it's created first, along with any missing parent folders. + +That's useful when user needs to add files to the folder, just clicks a button +and the folder appears. + +```js +import images from './images?dir' + +document.querySelector('#browse').onclick = () => images.reveal() +``` + +The promise rejects if the folder couldn't be created or opened. To open only a +folder that already exists, check first: + +```js +if (await images.exists()) { + await images.reveal() +} +``` + +## What Directory doesn't do + +These are deliberate omissions, not oversights: + +- **No sub-folder listing.** There's no `dirs()`, because a Directory can't be + built from a string — the names would be useless. A sub-folder you know about + is still reachable with a second import: + `import icons from './images/icons?dir'`. +- **No reading or writing files.** Use [`?raw` or `?url`](../../guide/asset-handling) + imports to read a file, [`$write`](./json) on an imported `.json` to save one, + or [PluginFS](../fs) for general access. +- **No delete or rename.** diff --git a/docs/runtime-api/modules/json.md b/docs/runtime-api/modules/json.md new file mode 100644 index 0000000..a4b7fb8 --- /dev/null +++ b/docs/runtime-api/modules/json.md @@ -0,0 +1,107 @@ +# JSON Module + +This page describes how to use ESM-style imports for JSON files and the special +`$write` functionality to persist changes back to the file system. This runtime +feature allows importing JSON files as modules, similar to Node.js, while also +enabling programmatic updates to the imported JSON data. + +## Importing a JSON File + +To import a JSON file in this CEF runtime, use ESM syntax as you would in +Node.js: + +```ts +import config from './config.json' +``` + +Once imported, config holds the JSON data as an object. + +::: warning + +You cannot import JSON modules from remote URL. + +::: + +## Accessing JSON Properties + +You can read properties from the imported JSON object as usual: + +```ts +console.log(config.x) // Outputs the value of `x` in config.json +``` + +## Writing JSON Data + +`since v1.2.0` + +Pengu runtime allows you to modify properties of the imported JSON object. To +persist these changes back to the file system, use the special `$write` method. + +Modify the properties: + +```ts +config.x = 20 // Modify a property +``` + +Call `$write` to save: + +```ts +await config.$write() +``` + +The `$write` method asynchronously writes the current state of the `config` +object back to `config.json`, preserving all modifications. The returned promise +resolves once the file is on disk, and rejects if the write failed. + +### Formatting the output + +`$write` accepts an optional argument that mirrors the third parameter of +[`JSON.stringify`][stringify]: + +```ts +await config.$write() // compact, no whitespace +await config.$write(2) // indent with 2 spaces +await config.$write('\t') // indent with tabs +``` + +A number from 0 to 10 indents by that many spaces, and a string of up to 10 +characters is used as the indent verbatim. Anything else is ignored and the +output is compact. + +[stringify]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify + +### Writes are atomic + +Pengu writes to a temporary file next to the target first, then renames it over +the original. If the client crashes mid-write, your `config.json` is left intact +rather than truncated. + +::: tip + +`$write` only exists on JSON files whose top level is an object or an array — +primitives like `42` or `"hello"` can't carry a method. Ship your config as +`{ ... }` and you'll never hit this. + +::: + +## What `$write` can reach + +`since v1.2.0` + +**`$write` can only overwrite the exact file it was imported from.** It takes no +path, and there is no way to point it somewhere else. + +This is enforced by the runtime rather than by convention: the native side +identifies the calling script from the JavaScript stack, which can't be forged, +and refuses anything that isn't a `.json` module served from `https://plugins/`. + +The practical consequence: importing a third-party library into your plugin does +**not** give that library the ability to modify your plugin's files, or any +other plugin's. + +::: tip + +Need to read or write more than one file? Folder plugins get a scoped +filesystem — see [PluginFS](../fs). + +::: diff --git a/docs/runtime-api/pengu.md b/docs/runtime-api/pengu.md index 333a347..7146dd8 100644 --- a/docs/runtime-api/pengu.md +++ b/docs/runtime-api/pengu.md @@ -1,6 +1,7 @@ -# Pengu namespace +# window.Pengu -This namespace provides information about current Pengu version and its settings. +This is an namespace object that provides information about current Pengu +version and the settings. ## Pengu.version @@ -11,7 +12,7 @@ A read-only property that returns the current version of Pengu Loader. ```js console.log(Pengu.version) -// 1.0.6 +// v1.2.0 ``` ## Pengu.superPotato @@ -23,9 +24,25 @@ A boolean value that indicates the **Super Low Spec Mode** is enabled or not. ```js console.log(Pengu.superPotato) -// true +// true or false ``` +## Pengu.autoUpdateCheck + + + + +A read-only property that indicates whether the user has **automatic update +checking** enabled. Mirrors the toggle in the Pengu hub. + +```js +console.log(Pengu.autoUpdateCheck) +// true or false +``` + +If your plugin ships its own update check, respect this flag — a user who +turned updates off does not expect your plugin to phone home either. + ## Pengu.plugins @@ -36,4 +53,17 @@ An array of plugin entries. ```js console.log(Pengu.plugins) // [ '@default/index.js', 'your-plugin/index.js' ] -``` \ No newline at end of file +``` + +## Pengu.isMac + + + + +A read-only property that indicates the running operating system is **MacOS** or +not. + +```js +console.log(Pengu.isMac) +// true or false +``` diff --git a/docs/runtime-api/rcp.md b/docs/runtime-api/rcp.md index 5ca4dca..bc60ee9 100644 --- a/docs/runtime-api/rcp.md +++ b/docs/runtime-api/rcp.md @@ -2,7 +2,8 @@ ## General usage -This object provides easy access and hook to the Riot Client Plugin (RCP) system. +This object provides easy access and hook to the Riot Client Plugin (RCP) +system. Get the `rcp` in your plugin entry: @@ -43,14 +44,14 @@ You can delay the plugin loads by blocking your async callback: ```js rcp.preInit('rcp-name', async () => { // delay 2 seconds - await new Promise(r => setTimeout(r, 2000)) + await new Promise((r) => setTimeout(r, 2000)) }) ``` ::: warning -Do not pre-hook `rcp-fe-commom-libs`. It is used for the plugin loader, -so your callbacks sometimes will not triggered. +Do not pre-hook `rcp-fe-commom-libs`. It is used for the plugin loader, so your +callbacks sometimes will not triggered. ::: @@ -66,7 +67,8 @@ Gives you an opportunity to access the plugin API. - `name` - RCP name, should be prefixed with `rcp-`. - `callback` - A function will be triggered after the plugin is loaded. -- `blocking` - A boolean value indicating whether this callback will be executed in blocking way. It's `false` by default. +- `blocking` - A boolean value indicating whether this callback will be executed + in blocking way. It's `false` by default. Example: @@ -79,18 +81,19 @@ rcp.postInit('rcp-name', (api) => { ::: tip -`postInit` and `preInit` should be called before the target plugin loads, -preferably witin your plugin's `init` entry. So they will not work after the plugin is loaded. +`postInit` and `preInit` should be called before the target plugin loads, +preferably witin your plugin's `init` entry. So they will not work after the +plugin is loaded. ::: -## rcp.whenInit(name) +## rcp.whenReady(name) -This function works as same as `postInit` but allows you -to get the target plugin asynchronously and also works even after the plugin is loaded. +This function works as same as `postInit` but allows you to get the target +plugin asynchronously and also works even after the plugin is loaded. Example with async context: @@ -102,7 +105,7 @@ Or with .then chain: ```js rcp.whenReady('rcp-fe-lol-uikit') - .then(uikit => { + .then((uikit) => { // do something }) ``` @@ -137,4 +140,4 @@ Common-libs always works: ```js rcp.get('rcp-fe-common-libs') -``` \ No newline at end of file +``` diff --git a/docs/runtime-api/settings.md b/docs/runtime-api/settings.md new file mode 100644 index 0000000..2500ba7 --- /dev/null +++ b/docs/runtime-api/settings.md @@ -0,0 +1,269 @@ +# window.Settings + + + +Register a settings form and Pengu renders it for you, inside the Client's own +settings drawer. You describe the fields, Pengu builds the widgets, and your +values object is kept up to date as the user changes them. + +This replaces the usual approach of hand-rolling a settings UI, or asking users +to edit a JSON file by hand. + +## A complete example + +```js +import config from './config.json' + +const schema = { + enabled: { + type: 'boolean', + label: 'Enable my plugin', + default: true, + }, + intensity: { + type: 'number', + label: 'Effect intensity', + default: 50, + min: 0, + max: 100, + slider: true, + }, +} + +Settings.register({ + id: 'my-plugin', + name: 'My Plugin', + description: 'Does something great.', + schema, + state: config, + onChange: () => config.$write(2), +}) +``` + +Pairing `state` with a [writable JSON module](./modules/json) is the shortest +path to settings that survive a restart: the drawer mutates `config` directly, +and `onChange` writes it back to disk. + +## Settings.register(options) + + + +```ts +function register( + options: SettingsRegister, +): SettingsHandle> +``` + +Add your plugin to the settings drawer. + +#### Options + +- `id` (string) a stable identifier, used as the drawer entry key. Your plugin's + folder name is the usual choice. +- `name` (string) the display name in the drawer sidebar. +- `description` (string) [optional] a one-line description shown under the name. +- `icon` (string) [optional] a single character or emoji shown next to the name. +- `schema` ([Schema](#field-types)) the fields to render. +- `hotkey` (string) [optional] a shortcut that opens the drawer with your plugin + selected, e.g. `'Ctrl+,'`. See [Hotkeys](#hotkeys). +- `state` (object) [optional] the object the drawer reads and writes. Omit it + for ephemeral settings that live only for the session. +- `onChange` (function) [optional] called after any change. See + [Persisting values](#persisting-values). + +#### Returns + +A handle: + +```ts +interface SettingsHandle { + values: () => V + set: (patch: Partial) => void + unregister: () => void +} +``` + +- `values()` returns the current values. Call it each time you need them rather + than holding onto the result. +- `set(patch)` applies a partial update and fires `onChange`. +- `unregister()` removes the drawer entry and unbinds the hotkey. + +#### Remarks + +Registering the same `id` twice replaces the first registration and logs a +warning. This is deliberate, so reloading a plugin during development doesn't +leave a duplicate entry behind. + +## Field types + +A schema is a plain object of field id → field. The rendered order follows the +order you write them in. + +```ts +type Field = + | { type: 'boolean'; label: string; default: boolean; description?: string } + | { type: 'string'; label: string; default: string; description?: string + placeholder?: string; multiline?: boolean } + | { type: 'number'; label: string; default: number; description?: string + min?: number; max?: number; step?: number; slider?: boolean } + | { type: 'select'; label: string; default: string; description?: string + options: ReadonlyArray<{ value: string; label: string }> } + | { type: 'action'; label: string; description?: string; perform: () => void } + | { type: 'note'; text: string } +``` + +- **`boolean`** renders a toggle. +- **`string`** renders a text input, or a textarea with `multiline: true`. +- **`number`** renders a number input, or a slider with `slider: true`. +- **`select`** renders a dropdown of `options`. +- **`action`** renders a button that calls `perform`. Holds no value. +- **`note`** renders a line of explanatory text. Holds no value. + +`action` and `note` are the two field types that carry no value, so they never +appear in your values object. + +```js +const schema = { + mode: { + type: 'select', + label: 'Theme mode', + default: 'auto', + options: [ + { value: 'auto', label: 'Follow Client' }, + { value: 'light', label: 'Light' }, + { value: 'dark', label: 'Dark' }, + ], + }, + note: { + type: 'note', + text: 'Changes apply on the next Client reload.', + }, + reload: { + type: 'action', + label: 'Reload now', + perform: () => window.reloadClient(), + }, +} +``` + +## Persisting values + +Pengu does not persist anything on its own. You choose the storage: + +```js +// writable JSON module — the file lives next to your plugin +import config from './config.json' +Settings.register({ id, name, schema, state: config, + onChange: () => config.$write(2) }) + +// DataStore — a single key holding the whole object +const state = DataStore.get('my-plugin/settings', {}) +Settings.register({ id, name, schema, state, + onChange: (values) => DataStore.set('my-plugin/settings', values) }) + +// nothing — settings reset every launch +Settings.register({ id, name, schema }) +``` + +At register time, any schema key missing from `state` is filled in with its +`default`, mutating your object in place. A `config.json` that starts as `{}` +therefore ends up fully populated on the first save. + +`onChange` is debounced by about 80 ms, so dragging a slider produces one write +rather than one per pixel. It receives the current values object. An async +`onChange` is not awaited — rejections are logged to the console so a failed +save doesn't block the drawer. + +::: warning + +The drawer only re-renders for changes made through the drawer itself or +through `handle.set()`. If you mutate your `state` object directly, the form +will keep showing the old value until it is reopened — route programmatic +changes through `set()` instead. + +::: + +## Hotkeys + +```js +Settings.register({ + id: 'my-plugin', + name: 'My Plugin', + hotkey: 'Ctrl+Shift+S', + schema, +}) +``` + +The hotkey opens the drawer with your plugin selected. Rules: + +- At least one modifier (`Ctrl`, `Alt`, `Shift`, `Meta`) is required. A bare key + is rejected with a console warning. +- `Ctrl` also matches `Cmd` on macOS, so one registration covers both platforms. +- Hotkeys don't fire while a text input or textarea has focus. +- If two plugins claim the same combination, the most recently registered one + wins and a warning is logged. + +`Cmd`, `Command`, `Control` and `Option` are all accepted spellings. + +## Settings.open(pluginId?) + + + +```ts +function open(pluginId?: string): void +``` + +Open the drawer. Pass a plugin id to focus that pane; omit it to reopen wherever +the user last was. + +```js +CommandBar.addAction({ + name: 'My Plugin settings', + perform: () => Settings.open('my-plugin'), +}) +``` + +## Settings.close() + + + +```ts +function close(): void +``` + +Close the drawer. + +## Settings.list() + + + +```ts +function list(): Array<{ id: string; name: string }> +``` + +Every plugin currently registered, in registration order. + +```js +console.log(Settings.list()) +// [ { id: 'my-plugin', name: 'My Plugin' } ] +``` + +## TypeScript + +With [`@pengujs/types`](../guide/npm-typescript) installed, writing the schema +`as const` lets TypeScript infer the shape of your values object from the +defaults: + +```ts +const schema = { + enabled: { type: 'boolean', label: 'Enabled', default: true }, + threshold: { type: 'number', label: 'Threshold', default: 50 }, +} as const + +const handle = Settings.register({ id: 'my-plugin', name: 'My Plugin', schema }) + +handle.values().enabled // boolean +handle.values().threshold // number +handle.set({ threshold: 80 }) // ok +handle.set({ threshold: 'high' }) // type error +``` diff --git a/docs/runtime-api/socket.md b/docs/runtime-api/socket.md index 4fb67ec..a7854af 100644 --- a/docs/runtime-api/socket.md +++ b/docs/runtime-api/socket.md @@ -1,7 +1,8 @@ # LCU Socket observation -This namespace helps you to observe specific LCU APIs without creating a new WebSocket. -You cannot get it directly from `window`, instead use the context of the [`init` entry point](../guide/javascript-plugin#plugin-entry-points). +This namespace helps you to observe specific LCU APIs without creating a new +WebSocket. You cannot get it directly from `window`, instead use the context of +the [`init` entry point](../guide/javascript-plugin#plugin-entry-points). ## socket.observe(api, listener) @@ -11,7 +12,7 @@ You cannot get it directly from `window`, instead use the context of the [`init` ```ts function observe( api: string, - listener: ApiListener + listener: ApiListener, ): { disconnect: () => void } interface EventData { @@ -34,7 +35,8 @@ Subscribe a listener to listen when the given API endpoint get called. ### Return value: -An object with a prop `disconnect` that could be called to disconnect the observer. +An object with a prop `disconnect` that could be called to disconnect the +observer. Example: @@ -53,4 +55,5 @@ socket.observe('/lol-matchmaking/v1/ready-check', (data) => { function disconnect(api: string, listener: ApiListener) ``` -Disconnect a subscribed listener. The function parameters like the function above. \ No newline at end of file +Disconnect a subscribed listener. The function parameters like the function +above. diff --git a/docs/runtime-api/toast.md b/docs/runtime-api/toast.md index a10045e..1bf3cfc 100644 --- a/docs/runtime-api/toast.md +++ b/docs/runtime-api/toast.md @@ -1,14 +1,58 @@ # Toast -This namespace is used to push your toast notifications onto the League Client screen. +This namespace is used to push your toast notifications onto the League Client +screen. -## Toast.success(message) +Every method that pushes a toast returns its **id** as a string. Keep it if you +want to [update](#toast-update-id-patch) or [dismiss](#toast-dismiss-id) the toast later — +otherwise you can ignore it. + +## Toast options + + + +All push methods take an optional options object as their last argument. + +```ts +interface ToastOptions { + duration?: number + position?: ToastPosition + icon?: string + className?: string + id?: string + dismissable?: boolean +} + +type ToastPosition = + | 'top-left' | 'top-center' | 'top-right' + | 'bottom-left' | 'bottom-center' | 'bottom-right' +``` + +- `duration` how long the toast stays, in milliseconds. Defaults to `5000`. + `0`, a negative number, or `Infinity` makes it **sticky** — it stays until + dismissed. `Toast.loading()` is sticky by default. +- `position` where it appears. Defaults to `bottom-right`. +- `icon` a single character or emoji, replacing the type's default glyph. +- `className` extra CSS class on the toast element, for your own styling. +- `id` reuse an id to **replace** the existing toast instead of stacking a new + one. Handy for de-duping a toast fired from a repeating event. +- `dismissable` whether to show the × button. Defaults to `true`. + +```js +Toast.info('Saved to your config', { + duration: 2000, + position: 'top-center', + id: 'config-saved', // repeated saves replace, never stack +}) +``` + +## Toast.success(message, options?) ```ts -function success(message: string): void +function success(message: string, options?: ToastOptions): string ``` Push a simple notification with a success checkmark. @@ -16,6 +60,7 @@ Push a simple notification with a success checkmark. Params: - `message` a string to be shown on the notification. +- `options` [optional] see [Toast options](#toast-options). Example: @@ -23,13 +68,13 @@ Example: Toast.success('Welcome to my theme!') ``` -## Toast.error(message) +## Toast.error(message, options?) ```ts -function error(message: string): void +function error(message: string, options?: ToastOptions): string ``` Push a simple notification with a failure icon. @@ -37,6 +82,7 @@ Push a simple notification with a failure icon. Params: - `message` a string to be shown on the notification. +- `options` [optional] see [Toast options](#toast-options). Example: @@ -44,21 +90,117 @@ Example: Toast.error('Oops! Something went wrong.') ``` +## Toast.info(message, options?) + + + + +```ts +function info(message: string, options?: ToastOptions): string +``` + +Push a neutral, informational notification. + +Example: + +```ts +Toast.info('3 new plugins were loaded.') +``` + +## Toast.warning(message, options?) + + + + +```ts +function warning(message: string, options?: ToastOptions): string +``` + +Push a notification with a warning icon. + +Example: + +```ts +Toast.warning('This theme was built for an older Client version.') +``` + +## Toast.loading(message, options?) + + + + +```ts +function loading(message: string, options?: ToastOptions): string +``` + +Push a notification with a spinner. Unlike the others this one is **sticky by +default** — it stays until you `update` it into a terminal state or `dismiss` +it. Pass an explicit `duration` to override that. + +If all you want is "spinner until this promise settles", use +[`Toast.promise`](#toast-promise-promise-msg) instead. + +Example: + +```js +const id = Toast.loading('Downloading assets...') + +await downloadAssets() +Toast.update(id, { type: 'success', message: 'Assets ready!' }) +``` + +## Toast.custom(html, options?) + + + + +```ts +function custom(html: string, options?: ToastOptions): string +``` + +Push a notification with a body you render yourself. The string is inserted as +HTML. + +Params: + +- `html` an HTML string for the toast body. +- `options` [optional] see [Toast options](#toast-options). + +Example: + +```js +Toast.custom('Patch 14.1
Your theme has been updated.', { + duration: 8000, +}) +``` + +::: warning + +The HTML is inserted as-is. Never build it from data you did not produce — +a champion name or summoner name pulled from the LCU should be escaped, or +passed as a plain `message` to one of the typed methods instead. + +::: + ## Toast.promise(promise, msg) ```ts -function promise(promise: Promise, msg: { - loading: string - success: string - error: string -}): Promise +function promise( + promise: Promise, + msg: { + loading: string + success: string + error: string | ((err: unknown) => string) + }, + options?: ToastOptions, +): Promise ``` -Push a progress notification and wait for the given promise to complete. -This function returns the given promise that is helpful for then/catch chain. +Push a progress notification and wait for the given promise to complete. This +function returns the given promise that is helpful for then/catch chain. Params: @@ -66,7 +208,9 @@ Params: - `msg` an object with these properties: - `loading` a string message to be shown when the progress starts loading. - `success` a string to be shown when the promise is resolved. - - `error` a string to be shown when the promise is rejected. + - `error` a string to be shown when the promise is rejected, or a function + receiving the rejection value and returning the message. +- `options` [optional] see [Toast options](#toast-options). Example: @@ -74,16 +218,86 @@ Example: let myTask = new Promise((resolve, reject) => { // wait for 3s then fulfill randomly setTimeout(() => { - if (Math.random() > 0.5) + if (Math.random() > 0.5) { resolve(10) - else + } else { reject() + } }, 3000) }) Toast.promise(myTask, { loading: 'Working in progress...', success: 'Oh nice! 😎', - error: 'OOps! 😥' + error: 'OOps! 😥', +}) +``` + +Use the function form of `error` when you want the reason in the message: + +```js +Toast.promise(fetchRank(), { + loading: 'Fetching your rank...', + success: 'Got it!', + error: (err) => `Could not fetch rank: ${err}`, }) -``` \ No newline at end of file +``` + +## Toast.update(id, patch) + + + + +```ts +function update(id: string, patch: { + message?: string + type?: ToastType + icon?: string +}): void +``` + +Change a toast that is already on screen, keeping it in place instead of +stacking a new one. Does nothing if the id is unknown. + +Moving a sticky `loading` toast to a terminal type (`success`, `error`, ...) +re-arms its auto-dismiss timer, so it will fade out on its own afterwards. + +Params: + +- `id` the id returned when the toast was pushed. +- `patch` the fields to change. Omitted fields are left alone. + +Example: + +```js +const id = Toast.loading('Connecting to server...') + +try { + await connect() + Toast.update(id, { type: 'success', message: 'Connected!' }) +} catch (err) { + Toast.update(id, { type: 'error', message: 'Connection failed.' }) +} +``` + +## Toast.dismiss(id?) + + + + +```ts +function dismiss(id?: string): void +``` + +Remove a toast immediately. Omit `id` to clear **every** toast currently on +screen. + +Example: + +```js +const id = Toast.info('Hold tight...') +Toast.dismiss(id) + +// clear everything +Toast.dismiss() +``` From 9bc8482d7eb3eac456eb8ca6d1fbce3d9e9a3490 Mon Sep 17 00:00:00 2001 From: Nguyen Duy Date: Mon, 3 Aug 2026 17:58:38 +0700 Subject: [PATCH 12/12] fix(deploy): streamline Cloudflare project resolution --- .github/workflows/deploy.yml | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 7df04b2..6c29514 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -23,16 +23,10 @@ jobs: - name: Resolve Pages project env: - PROJECT_PROD: ${{ secrets.CLOUDFLARE_PROJECT_PROD }} - PROJECT_DEV: ${{ secrets.CLOUDFLARE_PROJECT_DEV }} + PROJECT: ${{ secrets.CLOUDFLARE_PROJECT_NAME }} run: | - if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then - PROJECT="$PROJECT_PROD" - else - PROJECT="$PROJECT_DEV" - fi if [[ -z "$PROJECT" ]]; then - echo "::error::No Pages project configured for ${{ github.ref_name }} -- set the CLOUDFLARE_PROJECT_PROD / CLOUDFLARE_PROJECT_DEV secrets." + echo "::error::CLOUDFLARE_PROJECT_NAME secret is not set." exit 1 fi echo "CF_PAGES_PROJECT=$PROJECT" >> $GITHUB_ENV @@ -53,11 +47,12 @@ jobs: pnpm install pnpm build - # One Pages project per environment, each owning its own domain: - # main -> CLOUDFLARE_PROJECT_PROD -> pengu.lol - # dev -> CLOUDFLARE_PROJECT_DEV -> pengu.dev - # --branch must match each project's own production branch so the upload - # lands as a production deployment rather than a preview. + # Single Pages project, two domains routed by branch: + # main -> production deployment -> pengu.lol + # dev -> dev..pages.dev alias -> pengu.dev + # --branch is what picks between them, so it must always be passed. + # pengu.dev reaches the dev build via a proxied CNAME retargeted at the + # branch alias -- see docs/guide or the Cloudflare dashboard DNS tab. - name: Deploy to Cloudflare Pages uses: cloudflare/wrangler-action@v3 with: