diff --git a/docs/bun.lock b/docs/bun.lock
index 81fd268..aac9373 100644
--- a/docs/bun.lock
+++ b/docs/bun.lock
@@ -33,23 +33,23 @@
"@apidevtools/json-schema-ref-parser": ["@apidevtools/json-schema-ref-parser@11.9.3", "", { "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", "js-yaml": "^4.1.0" } }, "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ=="],
- "@biomejs/biome": ["@biomejs/biome@2.3.0", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.0", "@biomejs/cli-darwin-x64": "2.3.0", "@biomejs/cli-linux-arm64": "2.3.0", "@biomejs/cli-linux-arm64-musl": "2.3.0", "@biomejs/cli-linux-x64": "2.3.0", "@biomejs/cli-linux-x64-musl": "2.3.0", "@biomejs/cli-win32-arm64": "2.3.0", "@biomejs/cli-win32-x64": "2.3.0" }, "bin": { "biome": "bin/biome" } }, "sha512-shdUY5H3S3tJVUWoVWo5ua+GdPW5lRHf+b0IwZ4OC1o2zOKQECZ6l2KbU6t89FNhtd3Qx5eg5N7/UsQWGQbAFw=="],
+ "@biomejs/biome": ["@biomejs/biome@2.3.2", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.2", "@biomejs/cli-darwin-x64": "2.3.2", "@biomejs/cli-linux-arm64": "2.3.2", "@biomejs/cli-linux-arm64-musl": "2.3.2", "@biomejs/cli-linux-x64": "2.3.2", "@biomejs/cli-linux-x64-musl": "2.3.2", "@biomejs/cli-win32-arm64": "2.3.2", "@biomejs/cli-win32-x64": "2.3.2" }, "bin": { "biome": "bin/biome" } }, "sha512-8e9tzamuDycx7fdrcJ/F/GDZ8SYukc5ud6tDicjjFqURKYFSWMl0H0iXNXZEGmcmNUmABgGuHThPykcM41INgg=="],
- "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-3cJVT0Z5pbTkoBmbjmDZTDFYxIkRcrs9sYVJbIBHU8E6qQxgXAaBfSVjjCreG56rfDuQBr43GzwzmaHPcu4vlw=="],
+ "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-4LECm4kc3If0JISai4c3KWQzukoUdpxy4fRzlrPcrdMSRFksR9ZoXK7JBcPuLBmd2SoT4/d7CQS33VnZpgBjew=="],
- "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-6LIkhglh3UGjuDqJXsK42qCA0XkD1Ke4K/raFOii7QQPbM8Pia7Qj2Hji4XuF2/R78hRmEx7uKJH3t/Y9UahtQ=="],
+ "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-jNMnfwHT4N3wi+ypRfMTjLGnDmKYGzxVr1EYAPBcauRcDnICFXN81wD6wxJcSUrLynoyyYCdfW6vJHS/IAoTDA=="],
- "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-uhAsbXySX7xsXahegDg5h3CDgfMcRsJvWLFPG0pjkylgBb9lErbK2C0UINW52zhwg0cPISB09lxHPxCau4e2xA=="],
+ "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-amnqvk+gWybbQleRRq8TMe0rIv7GHss8mFJEaGuEZYWg1Tw14YKOkeo8h6pf1c+d3qR+JU4iT9KXnBKGON4klw=="],
- "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-nDksoFdwZ2YrE7NiYDhtMhL2UgFn8Kb7Y0bYvnTAakHnqEdb4lKindtBc1f+xg2Snz0JQhJUYO7r9CDBosRU5w=="],
+ "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-2Zz4usDG1GTTPQnliIeNx6eVGGP2ry5vE/v39nT73a3cKN6t5H5XxjcEoZZh62uVZvED7hXXikclvI64vZkYqw=="],
- "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-uxa8reA2s1VgoH8MhbGlCmMOt3JuSE1vJBifkh1ulaPiuk0SPx8cCdpnm9NWnTe2x/LfWInWx4sZ7muaXTPGGw=="],
+ "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-8BG/vRAhFz1pmuyd24FQPhNeueLqPtwvZk6yblABY2gzL2H8fLQAF/Z2OPIc+BPIVPld+8cSiKY/KFh6k81xfA=="],
- "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-+i9UcJwl99uAhtRQDz9jUAh+Xkb097eekxs/D9j4deWDg5/yB/jPWzISe1nBHvlzTXsdUSj0VvB4Go2DSpKIMw=="],
+ "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-gzB19MpRdTuOuLtPpFBGrV3Lq424gHyq2lFj8wfX9tvLMLdmA/R9C7k/mqBp/spcbWuHeIEKgEs3RviOPcWGBA=="],
- "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-ynjmsJLIKrAjC3CCnKMMhzcnNy8dbQWjKfSU5YA0mIruTxBNMbkAJp+Pr2iV7/hFou+66ZSD/WV8hmLEmhUaXA=="],
+ "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-lCruqQlfWjhMlOdyf5pDHOxoNm4WoyY2vZ4YN33/nuZBRstVDuqPPjS0yBkbUlLEte11FbpW+wWSlfnZfSIZvg=="],
- "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.0", "", { "os": "win32", "cpu": "x64" }, "sha512-zOCYmCRVkWXc9v8P7OLbLlGGMxQTKMvi+5IC4v7O8DkjLCOHRzRVK/Lno2pGZNo0lzKM60pcQOhH8HVkXMQdFg=="],
+ "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.2", "", { "os": "win32", "cpu": "x64" }, "sha512-6Ee9P26DTb4D8sN9nXxgbi9Dw5vSOfH98M7UlmkjKB2vtUbrRqCbZiNfryGiwnPIpd6YUoTl7rLVD2/x1CyEHQ=="],
"@emnapi/runtime": ["@emnapi/runtime@1.5.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ=="],
@@ -177,23 +177,23 @@
"@mdx-js/mdx": ["@mdx-js/mdx@3.1.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ=="],
- "@next/env": ["@next/env@16.0.0", "", {}, "sha512-s5j2iFGp38QsG1LWRQaE2iUY3h1jc014/melHFfLdrsMJPqxqDQwWNwyQTcNoUSGZlCVZuM7t7JDMmSyRilsnA=="],
+ "@next/env": ["@next/env@16.0.1", "", {}, "sha512-LFvlK0TG2L3fEOX77OC35KowL8D7DlFF45C0OvKMC4hy8c/md1RC4UMNDlUGJqfCoCS2VWrZ4dSE6OjaX5+8mw=="],
- "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.0.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-/CntqDCnk5w2qIwMiF0a9r6+9qunZzFmU0cBX4T82LOflE72zzH6gnOjCwUXYKOBlQi8OpP/rMj8cBIr18x4TA=="],
+ "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.0.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-R0YxRp6/4W7yG1nKbfu41bp3d96a0EalonQXiMe+1H9GTHfKxGNCGFNWUho18avRBPsO8T3RmdWuzmfurlQPbg=="],
- "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.0.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-hB4GZnJGKa8m4efvTGNyii6qs76vTNl+3dKHTCAUaksN6KjYy4iEO3Q5ira405NW2PKb3EcqWiRaL9DrYJfMHg=="],
+ "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.0.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-kETZBocRux3xITiZtOtVoVvXyQLB7VBxN7L6EPqgI5paZiUlnsgYv4q8diTNYeHmF9EiehydOBo20lTttCbHAg=="],
- "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.0.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-E2IHMdE+C1k+nUgndM13/BY/iJY9KGCphCftMh7SXWcaQqExq/pJU/1Hgn8n/tFwSoLoYC/yUghOv97tAsIxqg=="],
+ "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.0.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-hWg3BtsxQuSKhfe0LunJoqxjO4NEpBmKkE+P2Sroos7yB//OOX3jD5ISP2wv8QdUwtRehMdwYz6VB50mY6hqAg=="],
- "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.0.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-xzgl7c7BVk4+7PDWldU+On2nlwnGgFqJ1siWp3/8S0KBBLCjonB6zwJYPtl4MUY7YZJrzzumdUpUoquu5zk8vg=="],
+ "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.0.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-UPnOvYg+fjAhP3b1iQStcYPWeBFRLrugEyK/lDKGk7kLNua8t5/DvDbAEFotfV1YfcOY6bru76qN9qnjLoyHCQ=="],
- "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.0.0", "", { "os": "linux", "cpu": "x64" }, "sha512-sdyOg4cbiCw7YUr0F/7ya42oiVBXLD21EYkSwN+PhE4csJH4MSXUsYyslliiiBwkM+KsuQH/y9wuxVz6s7Nstg=="],
+ "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.0.1", "", { "os": "linux", "cpu": "x64" }, "sha512-Et81SdWkcRqAJziIgFtsFyJizHoWne4fzJkvjd6V4wEkWTB4MX6J0uByUb0peiJQ4WeAt6GGmMszE5KrXK6WKg=="],
- "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.0.0", "", { "os": "linux", "cpu": "x64" }, "sha512-IAXv3OBYqVaNOgyd3kxR4L3msuhmSy1bcchPHxDOjypG33i2yDWvGBwFD94OuuTjjTt/7cuIKtAmoOOml6kfbg=="],
+ "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.0.1", "", { "os": "linux", "cpu": "x64" }, "sha512-qBbgYEBRrC1egcG03FZaVfVxrJm8wBl7vr8UFKplnxNRprctdP26xEv9nJ07Ggq4y1adwa0nz2mz83CELY7N6Q=="],
- "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.0.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-bmo3ncIJKUS9PWK1JD9pEVv0yuvp1KPuOsyJTHXTv8KDrEmgV/K+U0C75rl9rhIaODcS7JEb6/7eJhdwXI0XmA=="],
+ "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.0.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-cPuBjYP6I699/RdbHJonb3BiRNEDm5CKEBuJ6SD8k3oLam2fDRMKAvmrli4QMDgT2ixyRJ0+DTkiODbIQhRkeQ=="],
- "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.0.0", "", { "os": "win32", "cpu": "x64" }, "sha512-O1cJbT+lZp+cTjYyZGiDwsOjO3UHHzSqobkPNipdlnnuPb1swfcuY6r3p8dsKU4hAIEO4cO67ZCfVVH/M1ETXA=="],
+ "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.0.1", "", { "os": "win32", "cpu": "x64" }, "sha512-XeEUJsE4JYtfrXe/LaJn3z1pD19fK0Q6Er8Qoufi+HqvdO4LEPyCxLUt4rxA+4RfYo6S9gMlmzCMU2F+AatFqQ=="],
"@orama/orama": ["@orama/orama@3.1.16", "", {}, "sha512-scSmQBD8eANlMUOglxHrN1JdSW8tDghsPuS83otqealBiIeMukCQMOf/wc0JJjDXomqwNdEQFLXLGHrU6PGxuA=="],
@@ -277,21 +277,21 @@
"@scalar/openapi-upgrader": ["@scalar/openapi-upgrader@0.1.3", "", { "dependencies": { "@scalar/openapi-types": "0.5.0" } }, "sha512-iROhcgy3vge6zsviPtoTLHale0nYt1PLhuMmJweQwJ0U23ZYyYhV5xgHtAd0OBEXuqT6rjYbJFvKOJZmJOwpNQ=="],
- "@shikijs/core": ["@shikijs/core@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA=="],
+ "@shikijs/core": ["@shikijs/core@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw=="],
- "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg=="],
+ "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ=="],
- "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg=="],
+ "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug=="],
- "@shikijs/langs": ["@shikijs/langs@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0" } }, "sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ=="],
+ "@shikijs/langs": ["@shikijs/langs@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg=="],
"@shikijs/rehype": ["@shikijs/rehype@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", "shiki": "3.13.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" } }, "sha512-dxvB5gXEpiTI3beGwOPEwxFxQNmUWM4cwOWbvUmL6DnQJGl18/+cCjVHZK2OnasmU0v7SvM39Zh3iliWdwfBDA=="],
- "@shikijs/themes": ["@shikijs/themes@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0" } }, "sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg=="],
+ "@shikijs/themes": ["@shikijs/themes@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA=="],
"@shikijs/transformers": ["@shikijs/transformers@3.13.0", "", { "dependencies": { "@shikijs/core": "3.13.0", "@shikijs/types": "3.13.0" } }, "sha512-833lcuVzcRiG+fXvgslWsM2f4gHpjEgui1ipIknSizRuTgMkNZupiXE5/TVJ6eSYfhNBFhBZKkReKWO2GgYmqA=="],
- "@shikijs/types": ["@shikijs/types@3.13.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw=="],
+ "@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="],
"@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="],
@@ -459,9 +459,9 @@
"fumadocs-core": ["fumadocs-core@16.0.2", "", { "dependencies": { "@formatjs/intl-localematcher": "^0.6.2", "@orama/orama": "^3.1.16", "@shikijs/rehype": "^3.13.0", "@shikijs/transformers": "^3.13.0", "github-slugger": "^2.0.0", "hast-util-to-estree": "^3.1.3", "hast-util-to-jsx-runtime": "^2.3.6", "image-size": "^2.0.2", "negotiator": "^1.0.0", "npm-to-yarn": "^3.0.1", "path-to-regexp": "^8.3.0", "remark": "^15.0.1", "remark-gfm": "^4.0.1", "remark-rehype": "^11.1.2", "scroll-into-view-if-needed": "^3.1.0", "shiki": "^3.13.0", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "@mixedbread/sdk": "^0.19.0", "@orama/core": "1.x.x", "@tanstack/react-router": "1.x.x", "@types/react": "*", "algoliasearch": "5.x.x", "lucide-react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "react-router": "7.x.x", "waku": "^0.26.0" }, "optionalPeers": ["@mixedbread/sdk", "@orama/core", "@tanstack/react-router", "@types/react", "algoliasearch", "lucide-react", "next", "react", "react-dom", "react-router", "waku"] }, "sha512-mUvdQQTKHDUL4a4KM+vRCj/Ge/UCbp3yr3yiPoO0aK9wMqYJpF/czCyLpdvF+i4WO8oXnjYvQObKkKaceoCWWg=="],
- "fumadocs-mdx": ["fumadocs-mdx@13.0.0", "", { "dependencies": { "@mdx-js/mdx": "^3.1.1", "@standard-schema/spec": "^1.0.0", "chokidar": "^4.0.3", "esbuild": "^0.25.11", "estree-util-value-to-estree": "^3.4.1", "js-yaml": "^4.1.0", "lru-cache": "^11.2.2", "mdast-util-to-markdown": "^2.1.2", "picocolors": "^1.1.1", "remark-mdx": "^3.1.1", "remark-parse": "^11.0.0", "tinyexec": "^1.0.1", "tinyglobby": "^0.2.15", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "zod": "^4.1.12" }, "peerDependencies": { "@fumadocs/mdx-remote": "^1.4.0", "fumadocs-core": "^15.0.0 || ^16.0.0", "next": "^15.3.0 || ^16.0.0", "react": "*", "vite": "6.x.x || 7.x.x" }, "optionalPeers": ["@fumadocs/mdx-remote", "next", "react", "vite"], "bin": { "fumadocs-mdx": "dist/bin.js" } }, "sha512-QBDJiaQXBwHNylrWrb+juKfoU871pdxM42QGrNWpTxXg6FfoyEhAmxFqqO2+cGXU71GWk2GfybKp9MdJ0slQ7A=="],
+ "fumadocs-mdx": ["fumadocs-mdx@13.0.2", "", { "dependencies": { "@mdx-js/mdx": "^3.1.1", "@standard-schema/spec": "^1.0.0", "chokidar": "^4.0.3", "esbuild": "^0.25.11", "estree-util-value-to-estree": "^3.4.1", "js-yaml": "^4.1.0", "lru-cache": "^11.2.2", "mdast-util-to-markdown": "^2.1.2", "picocolors": "^1.1.1", "picomatch": "^4.0.3", "remark-mdx": "^3.1.1", "tinyexec": "^1.0.1", "tinyglobby": "^0.2.15", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "zod": "^4.1.12" }, "peerDependencies": { "@fumadocs/mdx-remote": "^1.4.0", "fumadocs-core": "^15.0.0 || ^16.0.0", "next": "^15.3.0 || ^16.0.0", "react": "*", "vite": "6.x.x || 7.x.x" }, "optionalPeers": ["@fumadocs/mdx-remote", "next", "react", "vite"], "bin": { "fumadocs-mdx": "dist/bin.js" } }, "sha512-PLlpdDJze/Yy7phM6v9vyIcxDSGrfkUTkvhTiGHkLBft5bA171fAs+BzhiqwNCfR+4MfXMppfb7ffZV3sg6frA=="],
- "fumadocs-openapi": ["fumadocs-openapi@9.6.3", "", { "dependencies": { "@fumari/json-schema-to-typescript": "^1.1.3", "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.3", "@scalar/json-magic": "^0.6.1", "@scalar/openapi-parser": "0.22.3", "ajv": "^8.17.1", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.2", "fumadocs-ui": "16.0.2", "github-slugger": "^2.0.0", "gray-matter": "^4.0.3", "hast-util-to-jsx-runtime": "^2.3.6", "js-yaml": "^4.1.0", "next-themes": "^0.4.6", "openapi-sampler": "^1.6.2", "react-hook-form": "^7.65.0", "remark": "^15.0.1", "remark-rehype": "^11.1.2", "tinyglobby": "^0.2.15", "xml-js": "^1.6.11" }, "peerDependencies": { "@scalar/api-client-react": "*", "@types/react": "*", "react": "18.x.x || 19.x.x", "react-dom": "18.x.x || 19.x.x" }, "optionalPeers": ["@scalar/api-client-react", "@types/react"] }, "sha512-WFxcS5H2+FMAzWYHyYR32dlY6ApZ6R7XWipdpVt97OATGmDshFoCOTIOATEZLeFtK8u9k0qGym4ZY2jl2AbL4A=="],
+ "fumadocs-openapi": ["fumadocs-openapi@9.7.1", "", { "dependencies": { "@fumari/json-schema-to-typescript": "^1.1.3", "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.3", "@scalar/json-magic": "^0.6.1", "@scalar/openapi-parser": "0.22.3", "ajv": "^8.17.1", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.5", "fumadocs-ui": "16.0.5", "github-slugger": "^2.0.0", "gray-matter": "^4.0.3", "hast-util-to-jsx-runtime": "^2.3.6", "js-yaml": "^4.1.0", "next-themes": "^0.4.6", "openapi-sampler": "^1.6.2", "react-hook-form": "^7.65.0", "remark": "^15.0.1", "remark-rehype": "^11.1.2", "tinyglobby": "^0.2.15", "xml-js": "^1.6.11" }, "peerDependencies": { "@scalar/api-client-react": "*", "@types/react": "*", "react": "18.x.x || 19.x.x", "react-dom": "18.x.x || 19.x.x" }, "optionalPeers": ["@scalar/api-client-react", "@types/react"] }, "sha512-nGJbSaxQHEpRtxn53daTq6CAK2uGSqc67ls+GfpTbzGPso0jDtE6ZwdOpOTBWaKvnfRlwo2hAL1W9HqiXJFCWw=="],
"fumadocs-ui": ["fumadocs-ui@16.0.2", "", { "dependencies": { "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-direction": "^1.1.1", "@radix-ui/react-navigation-menu": "^1.2.14", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-presence": "^1.1.5", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.1.13", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.2", "lodash.merge": "^4.6.2", "next-themes": "^0.4.6", "postcss-selector-parser": "^7.1.0", "react-medium-image-zoom": "^5.4.0", "scroll-into-view-if-needed": "^3.1.0", "tailwind-merge": "^3.3.1" }, "peerDependencies": { "@types/react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "tailwindcss": "^4.0.0" }, "optionalPeers": ["@types/react", "next", "tailwindcss"] }, "sha512-GaLU2XDJCc7Od/5EyfnFxTjLkObwPGgCo+jqGZXbYhFNb+yuq6rL+7DYnHvWIwzNEmfp3Try3TgutbZB8C66kQ=="],
@@ -661,7 +661,7 @@
"negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="],
- "next": ["next@16.0.0", "", { "dependencies": { "@next/env": "16.0.0", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.0.0", "@next/swc-darwin-x64": "16.0.0", "@next/swc-linux-arm64-gnu": "16.0.0", "@next/swc-linux-arm64-musl": "16.0.0", "@next/swc-linux-x64-gnu": "16.0.0", "@next/swc-linux-x64-musl": "16.0.0", "@next/swc-win32-arm64-msvc": "16.0.0", "@next/swc-win32-x64-msvc": "16.0.0", "sharp": "^0.34.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-nYohiNdxGu4OmBzggxy9rczmjIGI+TpR5vbKTsE1HqYwNm1B+YSiugSrFguX6omMOKnDHAmBPY4+8TNJk0Idyg=="],
+ "next": ["next@16.0.1", "", { "dependencies": { "@next/env": "16.0.1", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.0.1", "@next/swc-darwin-x64": "16.0.1", "@next/swc-linux-arm64-gnu": "16.0.1", "@next/swc-linux-arm64-musl": "16.0.1", "@next/swc-linux-x64-gnu": "16.0.1", "@next/swc-linux-x64-musl": "16.0.1", "@next/swc-win32-arm64-msvc": "16.0.1", "@next/swc-win32-x64-msvc": "16.0.1", "sharp": "^0.34.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-e9RLSssZwd35p7/vOa+hoDFggUZIUbZhIUSLZuETCwrCVvxOs87NamoUzT+vbcNAL8Ld9GobBnWOA6SbV/arOw=="],
"next-themes": ["next-themes@0.4.6", "", { "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA=="],
@@ -749,7 +749,7 @@
"sharp": ["sharp@0.34.4", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.0", "semver": "^7.7.2" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.4", "@img/sharp-darwin-x64": "0.34.4", "@img/sharp-libvips-darwin-arm64": "1.2.3", "@img/sharp-libvips-darwin-x64": "1.2.3", "@img/sharp-libvips-linux-arm": "1.2.3", "@img/sharp-libvips-linux-arm64": "1.2.3", "@img/sharp-libvips-linux-ppc64": "1.2.3", "@img/sharp-libvips-linux-s390x": "1.2.3", "@img/sharp-libvips-linux-x64": "1.2.3", "@img/sharp-libvips-linuxmusl-arm64": "1.2.3", "@img/sharp-libvips-linuxmusl-x64": "1.2.3", "@img/sharp-linux-arm": "0.34.4", "@img/sharp-linux-arm64": "0.34.4", "@img/sharp-linux-ppc64": "0.34.4", "@img/sharp-linux-s390x": "0.34.4", "@img/sharp-linux-x64": "0.34.4", "@img/sharp-linuxmusl-arm64": "0.34.4", "@img/sharp-linuxmusl-x64": "0.34.4", "@img/sharp-wasm32": "0.34.4", "@img/sharp-win32-arm64": "0.34.4", "@img/sharp-win32-ia32": "0.34.4", "@img/sharp-win32-x64": "0.34.4" } }, "sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA=="],
- "shiki": ["shiki@3.13.0", "", { "dependencies": { "@shikijs/core": "3.13.0", "@shikijs/engine-javascript": "3.13.0", "@shikijs/engine-oniguruma": "3.13.0", "@shikijs/langs": "3.13.0", "@shikijs/themes": "3.13.0", "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g=="],
+ "shiki": ["shiki@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/engine-javascript": "3.14.0", "@shikijs/engine-oniguruma": "3.14.0", "@shikijs/langs": "3.14.0", "@shikijs/themes": "3.14.0", "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g=="],
"source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="],
@@ -827,6 +827,14 @@
"@scalar/openapi-types/zod": ["zod@4.1.11", "", {}, "sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg=="],
+ "@shikijs/rehype/@shikijs/types": ["@shikijs/types@3.13.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw=="],
+
+ "@shikijs/rehype/shiki": ["shiki@3.13.0", "", { "dependencies": { "@shikijs/core": "3.13.0", "@shikijs/engine-javascript": "3.13.0", "@shikijs/engine-oniguruma": "3.13.0", "@shikijs/langs": "3.13.0", "@shikijs/themes": "3.13.0", "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g=="],
+
+ "@shikijs/transformers/@shikijs/core": ["@shikijs/core@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA=="],
+
+ "@shikijs/transformers/@shikijs/types": ["@shikijs/types@3.13.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw=="],
+
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.5.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg=="],
"@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.5.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ=="],
@@ -839,12 +847,44 @@
"@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+ "fumadocs-core/shiki": ["shiki@3.13.0", "", { "dependencies": { "@shikijs/core": "3.13.0", "@shikijs/engine-javascript": "3.13.0", "@shikijs/engine-oniguruma": "3.13.0", "@shikijs/langs": "3.13.0", "@shikijs/themes": "3.13.0", "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g=="],
+
+ "fumadocs-openapi/fumadocs-core": ["fumadocs-core@16.0.5", "", { "dependencies": { "@formatjs/intl-localematcher": "^0.6.2", "@orama/orama": "^3.1.16", "@shikijs/rehype": "^3.14.0", "@shikijs/transformers": "^3.14.0", "github-slugger": "^2.0.0", "hast-util-to-estree": "^3.1.3", "hast-util-to-jsx-runtime": "^2.3.6", "image-size": "^2.0.2", "negotiator": "^1.0.0", "npm-to-yarn": "^3.0.1", "path-to-regexp": "^8.3.0", "remark": "^15.0.1", "remark-gfm": "^4.0.1", "remark-rehype": "^11.1.2", "scroll-into-view-if-needed": "^3.1.0", "shiki": "^3.14.0", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "@mixedbread/sdk": "^0.19.0", "@orama/core": "1.x.x", "@tanstack/react-router": "1.x.x", "@types/react": "*", "algoliasearch": "5.x.x", "lucide-react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "react-router": "7.x.x", "waku": "^0.26.0" }, "optionalPeers": ["@mixedbread/sdk", "@orama/core", "@tanstack/react-router", "@types/react", "algoliasearch", "lucide-react", "next", "react", "react-dom", "react-router", "waku"] }, "sha512-xeEDzjagdj1a9ryg5iportmvrJ9yDgQee2KBVjp3rLAUdquN4Z31Gh/pmuByZDVcwu4rl2Ax3qt+kbpY2e6djQ=="],
+
+ "fumadocs-openapi/fumadocs-ui": ["fumadocs-ui@16.0.5", "", { "dependencies": { "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-direction": "^1.1.1", "@radix-ui/react-navigation-menu": "^1.2.14", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-presence": "^1.1.5", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.1.13", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.5", "lodash.merge": "^4.6.2", "next-themes": "^0.4.6", "postcss-selector-parser": "^7.1.0", "react-medium-image-zoom": "^5.4.0", "scroll-into-view-if-needed": "^3.1.0", "tailwind-merge": "^3.3.1" }, "peerDependencies": { "@types/react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "tailwindcss": "^4.0.0" }, "optionalPeers": ["@types/react", "next", "tailwindcss"] }, "sha512-WSvDnHMslEFrSDH7qQpL4j+vb5dQUjVfUResVSpQS2GbQhpLIiNbUuSaF3iofDNm+/EWKU8iqYVikZfO1i7ybw=="],
+
"gray-matter/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="],
"next/postcss": ["postcss@8.4.31", "", { "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ=="],
"parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="],
+ "@shikijs/rehype/shiki/@shikijs/core": ["@shikijs/core@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA=="],
+
+ "@shikijs/rehype/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg=="],
+
+ "@shikijs/rehype/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg=="],
+
+ "@shikijs/rehype/shiki/@shikijs/langs": ["@shikijs/langs@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0" } }, "sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ=="],
+
+ "@shikijs/rehype/shiki/@shikijs/themes": ["@shikijs/themes@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0" } }, "sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg=="],
+
+ "fumadocs-core/shiki/@shikijs/core": ["@shikijs/core@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA=="],
+
+ "fumadocs-core/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg=="],
+
+ "fumadocs-core/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg=="],
+
+ "fumadocs-core/shiki/@shikijs/langs": ["@shikijs/langs@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0" } }, "sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ=="],
+
+ "fumadocs-core/shiki/@shikijs/themes": ["@shikijs/themes@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0" } }, "sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg=="],
+
+ "fumadocs-core/shiki/@shikijs/types": ["@shikijs/types@3.13.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/rehype": ["@shikijs/rehype@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", "shiki": "3.14.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" } }, "sha512-In2G6yvT0ZFDqNGbJumd7gEAwtxuaXuchCc0O3qOytIUTlpzs8/D0CQF3wktdfOB6B869eab6Z6EIJr4Td4hQQ=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/transformers": ["@shikijs/transformers@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/types": "3.14.0" } }, "sha512-i67zQnY9wLMMnKasonVW1L9fKneSLZDj1ePsA4o0AZWU4uUobmJY9baRDa36z+a9/g0aG76/2tybQvm4hrwxIQ=="],
+
"gray-matter/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="],
}
}
diff --git a/docs/content/docs/am_following_dataset.mdx b/docs/content/docs/am_following_dataset.mdx
new file mode 100644
index 0000000..d91d27e
--- /dev/null
+++ b/docs/content/docs/am_following_dataset.mdx
@@ -0,0 +1,20 @@
+---
+title: am_following_dataset
+full: true
+_openapi:
+ method: POST
+ route: am_following_dataset
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return `True` if you're following the given dataset, `False` if not.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return `True` if you're following the given dataset, `False` if not.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/am_following_group.mdx b/docs/content/docs/am_following_group.mdx
new file mode 100644
index 0000000..a961df0
--- /dev/null
+++ b/docs/content/docs/am_following_group.mdx
@@ -0,0 +1,20 @@
+---
+title: am_following_group
+full: true
+_openapi:
+ method: POST
+ route: am_following_group
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return `True` if you're following the given group, `False` if not.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return `True` if you're following the given group, `False` if not.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/am_following_user.mdx b/docs/content/docs/am_following_user.mdx
new file mode 100644
index 0000000..2011bd9
--- /dev/null
+++ b/docs/content/docs/am_following_user.mdx
@@ -0,0 +1,20 @@
+---
+title: am_following_user
+full: true
+_openapi:
+ method: POST
+ route: am_following_user
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return `True` if you're following the given user, `False` if not.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return `True` if you're following the given user, `False` if not.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/api_token_list.mdx b/docs/content/docs/api_token_list.mdx
new file mode 100644
index 0000000..6fd7f0e
--- /dev/null
+++ b/docs/content/docs/api_token_list.mdx
@@ -0,0 +1,20 @@
+---
+title: api_token_list
+full: true
+_openapi:
+ method: POST
+ route: api_token_list
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return list of all available API tokens for the current user.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return list of all available API tokens for the current user.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/config_option_list.mdx b/docs/content/docs/config_option_list.mdx
new file mode 100644
index 0000000..8804716
--- /dev/null
+++ b/docs/content/docs/config_option_list.mdx
@@ -0,0 +1,21 @@
+---
+title: config_option_list
+full: true
+_openapi:
+ method: POST
+ route: config_option_list
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Return a list of runtime-editable config option keys that can be
+ updated with `config_option_update()`.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return a list of runtime-editable config option keys that can be updated with `config_option_update()`.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/config_option_show.mdx b/docs/content/docs/config_option_show.mdx
new file mode 100644
index 0000000..df8b3ea
--- /dev/null
+++ b/docs/content/docs/config_option_show.mdx
@@ -0,0 +1,27 @@
+---
+title: config_option_show
+full: true
+_openapi:
+ method: POST
+ route: config_option_show
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Show the current value of a particular configuration option.
+
+
+ Only returns runtime-editable config options (the ones returned by
+ `config_option_list()`), which can be updated with the
+ `config_option_update()` action.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Show the current value of a particular configuration option.
+
+Only returns runtime-editable config options (the ones returned by `config_option_list()`), which can be updated with the `config_option_update()` action.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/dataset_followee_count.mdx b/docs/content/docs/dataset_followee_count.mdx
new file mode 100644
index 0000000..7307699
--- /dev/null
+++ b/docs/content/docs/dataset_followee_count.mdx
@@ -0,0 +1,20 @@
+---
+title: dataset_followee_count
+full: true
+_openapi:
+ method: POST
+ route: dataset_followee_count
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the number of datasets that are followed by the given user.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the number of datasets that are followed by the given user.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/dataset_follower_count.mdx b/docs/content/docs/dataset_follower_count.mdx
new file mode 100644
index 0000000..5cc551c
--- /dev/null
+++ b/docs/content/docs/dataset_follower_count.mdx
@@ -0,0 +1,20 @@
+---
+title: dataset_follower_count
+full: true
+_openapi:
+ method: POST
+ route: dataset_follower_count
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Returun the number of followers of a dataset.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Returun the number of followers of a dataset.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/dataset_follower_list.mdx b/docs/content/docs/dataset_follower_list.mdx
new file mode 100644
index 0000000..75ab3ed
--- /dev/null
+++ b/docs/content/docs/dataset_follower_list.mdx
@@ -0,0 +1,20 @@
+---
+title: dataset_follower_list
+full: true
+_openapi:
+ method: POST
+ route: dataset_follower_list
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the list of users that are following the given dataset.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the list of users that are following the given dataset.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/followee_count.mdx b/docs/content/docs/followee_count.mdx
new file mode 100644
index 0000000..33ed519
--- /dev/null
+++ b/docs/content/docs/followee_count.mdx
@@ -0,0 +1,26 @@
+---
+title: followee_count
+full: true
+_openapi:
+ method: POST
+ route: followee_count
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Return the number of objects that are followed by the given user.
+
+
+ Counts all objects, of any type, that the given user is following
+ (e.g. followed users, followed datasets, followed groups).
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the number of objects that are followed by the given user.
+
+Counts all objects, of any type, that the given user is following (e.g. followed users, followed datasets, followed groups).
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/followee_list.mdx b/docs/content/docs/followee_list.mdx
new file mode 100644
index 0000000..77458ef
--- /dev/null
+++ b/docs/content/docs/followee_list.mdx
@@ -0,0 +1,26 @@
+---
+title: followee_list
+full: true
+_openapi:
+ method: POST
+ route: followee_list
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Return the list of objects that are followed by the given user.
+
+
+ Returns all objects, of any type, that the given user is following
+ (e.g. followed users, followed datasets, followed groups).
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the list of objects that are followed by the given user.
+
+Returns all objects, of any type, that the given user is following (e.g. followed users, followed datasets, followed groups).
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/get_site_user.mdx b/docs/content/docs/get_site_user.mdx
new file mode 100644
index 0000000..259617d
--- /dev/null
+++ b/docs/content/docs/get_site_user.mdx
@@ -0,0 +1,20 @@
+---
+title: get_site_user
+full: true
+_openapi:
+ method: POST
+ route: get_site_user
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the CKAN site user.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the CKAN site user.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/group_followee_count.mdx b/docs/content/docs/group_followee_count.mdx
new file mode 100644
index 0000000..059ceba
--- /dev/null
+++ b/docs/content/docs/group_followee_count.mdx
@@ -0,0 +1,20 @@
+---
+title: group_followee_count
+full: true
+_openapi:
+ method: POST
+ route: group_followee_count
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the number of groups that are followed by the given user.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the number of groups that are followed by the given user.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/group_follower_list.mdx b/docs/content/docs/group_follower_list.mdx
new file mode 100644
index 0000000..1857392
--- /dev/null
+++ b/docs/content/docs/group_follower_list.mdx
@@ -0,0 +1,20 @@
+---
+title: group_follower_list
+full: true
+_openapi:
+ method: POST
+ route: group_follower_list
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the list of users that are following the given group.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the list of users that are following the given group.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/help_show.mdx b/docs/content/docs/help_show.mdx
new file mode 100644
index 0000000..d957833
--- /dev/null
+++ b/docs/content/docs/help_show.mdx
@@ -0,0 +1,20 @@
+---
+title: help_show
+full: true
+_openapi:
+ method: POST
+ route: help_show
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the help string for a particular API action.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the help string for a particular API action.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/job_list.mdx b/docs/content/docs/job_list.mdx
new file mode 100644
index 0000000..07f866e
--- /dev/null
+++ b/docs/content/docs/job_list.mdx
@@ -0,0 +1,20 @@
+---
+title: job_list
+full: true
+_openapi:
+ method: POST
+ route: job_list
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ List enqueued background jobs.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+List enqueued background jobs.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/job_show.mdx b/docs/content/docs/job_show.mdx
new file mode 100644
index 0000000..c6a00dd
--- /dev/null
+++ b/docs/content/docs/job_show.mdx
@@ -0,0 +1,20 @@
+---
+title: job_show
+full: true
+_openapi:
+ method: POST
+ route: job_show
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Show details for a background job.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Show details for a background job.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/member_roles_list.mdx b/docs/content/docs/member_roles_list.mdx
new file mode 100644
index 0000000..791c45b
--- /dev/null
+++ b/docs/content/docs/member_roles_list.mdx
@@ -0,0 +1,20 @@
+---
+title: member_roles_list
+full: true
+_openapi:
+ method: POST
+ route: member_roles_list
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the possible roles for members of groups and organizations.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the possible roles for members of groups and organizations.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_followee_count.mdx b/docs/content/docs/organization_followee_count.mdx
new file mode 100644
index 0000000..40e2164
--- /dev/null
+++ b/docs/content/docs/organization_followee_count.mdx
@@ -0,0 +1,21 @@
+---
+title: organization_followee_count
+full: true
+_openapi:
+ method: POST
+ route: organization_followee_count
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Return the number of organizations that are followed by the given
+ user.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the number of organizations that are followed by the given user.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_followee_list.mdx b/docs/content/docs/organization_followee_list.mdx
new file mode 100644
index 0000000..3bb3189
--- /dev/null
+++ b/docs/content/docs/organization_followee_list.mdx
@@ -0,0 +1,20 @@
+---
+title: organization_followee_list
+full: true
+_openapi:
+ method: POST
+ route: organization_followee_list
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the list of organizations that are followed by the given user.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the list of organizations that are followed by the given user.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_follower_count.mdx b/docs/content/docs/organization_follower_count.mdx
new file mode 100644
index 0000000..467fe8f
--- /dev/null
+++ b/docs/content/docs/organization_follower_count.mdx
@@ -0,0 +1,20 @@
+---
+title: organization_follower_count
+full: true
+_openapi:
+ method: POST
+ route: organization_follower_count
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Returun the number of followers of an organization.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Returun the number of followers of an organization.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_follower_list.mdx b/docs/content/docs/organization_follower_list.mdx
new file mode 100644
index 0000000..cc52020
--- /dev/null
+++ b/docs/content/docs/organization_follower_list.mdx
@@ -0,0 +1,20 @@
+---
+title: organization_follower_list
+full: true
+_openapi:
+ method: POST
+ route: organization_follower_list
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the list of users that are following the given organization.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the list of users that are following the given organization.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/tag_autocomplete.mdx b/docs/content/docs/tag_autocomplete.mdx
new file mode 100644
index 0000000..f369edc
--- /dev/null
+++ b/docs/content/docs/tag_autocomplete.mdx
@@ -0,0 +1,27 @@
+---
+title: tag_autocomplete
+full: true
+_openapi:
+ method: POST
+ route: tag_autocomplete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Return a list of tag names that contain a given string.
+
+
+ By default only free tags (tags that don't belong to any vocabulary)
+ are searched. If the `vocabulary_id` argument is given then only tags
+ belonging to that vocabulary will be searched instead.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return a list of tag names that contain a given string.
+
+By default only free tags (tags that don't belong to any vocabulary) are searched. If the `vocabulary_id` argument is given then only tags belonging to that vocabulary will be searched instead.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/tag_search.mdx b/docs/content/docs/tag_search.mdx
new file mode 100644
index 0000000..6768e19
--- /dev/null
+++ b/docs/content/docs/tag_search.mdx
@@ -0,0 +1,27 @@
+---
+title: tag_search
+full: true
+_openapi:
+ method: POST
+ route: tag_search
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Return a list of tags whose names contain a given string.
+
+
+ By default only free tags (tags that don't belong to any vocabulary)
+ are searched. If the `vocabulary_id` argument is given then only tags
+ belonging to that vocabulary will be searched instead.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return a list of tags whose names contain a given string.
+
+By default only free tags (tags that don't belong to any vocabulary) are searched. If the `vocabulary_id` argument is given then only tags belonging to that vocabulary will be searched instead.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/task_status_show.mdx b/docs/content/docs/task_status_show.mdx
new file mode 100644
index 0000000..3dde3d4
--- /dev/null
+++ b/docs/content/docs/task_status_show.mdx
@@ -0,0 +1,26 @@
+---
+title: task_status_show
+full: true
+_openapi:
+ method: POST
+ route: task_status_show
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Return a task status.
+
+
+ Either the `id` parameter or the `entity_id`, `task_type` *and* `key`
+ parameters must be given.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return a task status.
+
+Either the `id` parameter or the `entity_id`, `task_type` *and* `key` parameters must be given.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/term_translation_show.mdx b/docs/content/docs/term_translation_show.mdx
new file mode 100644
index 0000000..ab514bb
--- /dev/null
+++ b/docs/content/docs/term_translation_show.mdx
@@ -0,0 +1,20 @@
+---
+title: term_translation_show
+full: true
+_openapi:
+ method: POST
+ route: term_translation_show
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the translations for the given term(s) and language(s).
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the translations for the given term(s) and language(s).
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/user_followee_count.mdx b/docs/content/docs/user_followee_count.mdx
new file mode 100644
index 0000000..b8584f0
--- /dev/null
+++ b/docs/content/docs/user_followee_count.mdx
@@ -0,0 +1,20 @@
+---
+title: user_followee_count
+full: true
+_openapi:
+ method: POST
+ route: user_followee_count
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the number of users that are followed by the given user.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the number of users that are followed by the given user.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/user_follower_count.mdx b/docs/content/docs/user_follower_count.mdx
new file mode 100644
index 0000000..b32f33a
--- /dev/null
+++ b/docs/content/docs/user_follower_count.mdx
@@ -0,0 +1,20 @@
+---
+title: user_follower_count
+full: true
+_openapi:
+ method: POST
+ route: user_follower_count
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Returun the number of followers of a user.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Returun the number of followers of a user.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/user_follower_list.mdx b/docs/content/docs/user_follower_list.mdx
new file mode 100644
index 0000000..385cf03
--- /dev/null
+++ b/docs/content/docs/user_follower_list.mdx
@@ -0,0 +1,20 @@
+---
+title: user_follower_list
+full: true
+_openapi:
+ method: POST
+ route: user_follower_list
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return the list of users that are following the given user.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return the list of users that are following the given user.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/vocabulary_list.mdx b/docs/content/docs/vocabulary_list.mdx
new file mode 100644
index 0000000..0fc8b7d
--- /dev/null
+++ b/docs/content/docs/vocabulary_list.mdx
@@ -0,0 +1,20 @@
+---
+title: vocabulary_list
+full: true
+_openapi:
+ method: POST
+ route: vocabulary_list
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return a list of all the site's tag vocabularies.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return a list of all the site's tag vocabularies.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/vocabulary_show.mdx b/docs/content/docs/vocabulary_show.mdx
new file mode 100644
index 0000000..3f35de9
--- /dev/null
+++ b/docs/content/docs/vocabulary_show.mdx
@@ -0,0 +1,20 @@
+---
+title: vocabulary_show
+full: true
+_openapi:
+ method: POST
+ route: vocabulary_show
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Return a single tag vocabulary.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Return a single tag vocabulary.
+
+
+
\ No newline at end of file
diff --git a/docs/lib/openapi.yml b/docs/lib/openapi.yml
index e682420..6dff8ba 100644
--- a/docs/lib/openapi.yml
+++ b/docs/lib/openapi.yml
@@ -26,6 +26,50 @@ servers:
domain:
default: 'demo.ckan.org'
paths:
+ package_list:
+ post:
+ operationId: package_list
+ summary: package_list
+ description: This endpoint lists CKAN resources.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ limit:
+ type: integer
+ description: if given, the list of datasets will be broken into pages of at most `limit` datasets per page and only one page will be returned at a time
+ offset:
+ type: integer
+ description: when limit is given, the offset to start returning packages from
+ x-codeSamples:
+ - lang: rust
+ label: Rust SDK (ckanaction) example
+ source: |
+ use dotenvy::dotenv;
+
+ #[tokio::main]
+ async fn main() -> Result<(), Box> {
+ // Load environment variables from .env file
+ dotenv()?;
+
+ // Initialize and build CKAN struct
+ let ckan = ckanaction::CKAN::builder()
+ .url("http://localhost:5000")
+ .token(dotenvy::var("CKAN_API_TOKEN")?)
+ .build();
+
+ // Send request to /package_list and print output
+ let result = ckan.package_list()
+ .limit(5) // <-- This is an optional parameter you can remove
+ .call()
+ .await?;
+ println!("{result:#?}");
+
+ Ok(())
+ }
'current_package_list_with_resources':
post:
operationId: current_package_list_with_resources
@@ -851,6 +895,126 @@ paths:
limit:
type: integer
description: apply a limit to the query
+ tag_search:
+ post:
+ operationId: tag_search
+ summary: tag_search
+ description: |
+ Return a list of tags whose names contain a given string.
+
+ By default only free tags (tags that don't belong to any vocabulary) are searched. If the `vocabulary_id` argument is given then only tags belonging to that vocabulary will be searched instead.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ query:
+ type: string
+ description: the string(s) to search for
+ vocabulary_id:
+ type: string
+ description: the id or name of the tag vocabulary to search in
+ limit:
+ type: integer
+ description: the maximum number of tags to return
+ offset:
+ type: integer
+ description: when `limit` is given, the offset to start returning tags from
+ tag_autocomplete:
+ post:
+ operationId: tag_autocomplete
+ summary: tag_autocomplete
+ description: |
+ Return a list of tag names that contain a given string.
+
+ By default only free tags (tags that don't belong to any vocabulary) are searched. If the `vocabulary_id` argument is given then only tags belonging to that vocabulary will be searched instead.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ query:
+ type: string
+ description: the string to search for
+ vocabulary_id:
+ type: string
+ description: the id or name of the tag vocabulary to search in
+ limit:
+ type: integer
+ description: the maximum number of tags to return
+ offset:
+ type: integer
+ description: when `limit` is given, the offset to start returning tags from
+ task_status_show:
+ post:
+ operationId: task_status_show
+ summary: task_status_show
+ description: |
+ Return a task status.
+
+ Either the `id` parameter or the `entity_id`, `task_type` *and* `key` parameters must be given.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the task status
+ entity_id:
+ type: string
+ description: the entity_id of the task status
+ task_type:
+ type: string
+ description: the task_type of the task status
+ key:
+ type: string
+ description: the key of the task status
+ term_translation_show:
+ post:
+ operationId: term_translation_show
+ summary: term_translation_show
+ description: |
+ Return the translations for the given term(s) and language(s).
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ terms:
+ type: array
+ items:
+ type: string
+ description: the terms to search for translations of, e.g. `Russian`, `nonfiction novel`
+ lang_codes:
+ type: array
+ items:
+ type: string
+ description: the language codes of the languages to search for translations into, e.g. `'en'`, `'de'` (default is to search for translations into any language)
+ get_site_user:
+ post:
+ operationId: get_site_user
+ summary: get_site_user
+ description: |
+ Return the CKAN site user.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ defer_commit:
+ type: boolean
+ description: "by default (or if set to `False`) `get_site_user` will commit and clean up the current transaction. If set to `True`, caller is responsible for commiting transaction after `get_site_user` is called. Leaving open connections can cause CLI commands to hang! (default: `False`)"
status_show:
get:
operationId: status_show
@@ -879,49 +1043,410 @@ paths:
Ok(())
}
- 'package_list':
+ vocabulary_list:
post:
- operationId: package_list
- summary: package_list
- description: This endpoint lists CKAN resources.
+ operationId: vocabulary_list
+ summary: vocabulary_list
+ description: |
+ Return a list of all the site's tag vocabularies.
+ vocabulary_show:
+ post:
+ operationId: vocabulary_show
+ summary: vocabulary_show
+ description: |
+ Return a single tag vocabulary.
requestBody:
required: false
content:
application/json:
schema:
- # required:
- # - project_uuid
type: object
properties:
- limit:
- type: integer
- description: if given, the list of datasets will be broken into pages of at most `limit` datasets per page and only one page will be returned at a time
- offset:
- type: integer
- description: when limit is given, the offset to start returning packages from
- x-codeSamples:
- - lang: rust
- label: Rust SDK (ckanaction) example
- source: |
- use dotenvy::dotenv;
+ id:
+ type: string
+ description: the id or name of the vocabulary
+ user_follower_count:
+ post:
+ operationId: user_follower_count
+ summary: user_follower_count
+ description: |
+ Returun the number of followers of a user.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the user
+ dataset_follower_count:
+ post:
+ operationId: dataset_follower_count
+ summary: dataset_follower_count
+ description: |
+ Returun the number of followers of a dataset.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the dataset
+ organization_follower_count:
+ post:
+ operationId: organization_follower_count
+ summary: organization_follower_count
+ description: |
+ Returun the number of followers of an organization.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the organization
+ user_follower_list:
+ post:
+ operationId: user_follower_list
+ summary: user_follower_list
+ description: |
+ Return the list of users that are following the given user.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the user
+ dataset_follower_list:
+ post:
+ operationId: dataset_follower_list
+ summary: dataset_follower_list
+ description: |
+ Return the list of users that are following the given dataset.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the dataset
+ group_follower_list:
+ post:
+ operationId: group_follower_list
+ summary: group_follower_list
+ description: |
+ Return the list of users that are following the given group.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the group
+ organization_follower_list:
+ post:
+ operationId: organization_follower_list
+ summary: organization_follower_list
+ description: |
+ Return the list of users that are following the given organization.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the organization
+ am_following_user:
+ post:
+ operationId: am_following_user
+ summary: am_following_user
+ description: |
+ Return `True` if you're following the given user, `False` if not.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the user
+ am_following_dataset:
+ post:
+ operationId: am_following_dataset
+ summary: am_following_dataset
+ description: |
+ Return `True` if you're following the given dataset, `False` if not.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the dataset
+ am_following_group:
+ post:
+ operationId: am_following_group
+ summary: am_following_group
+ description: |
+ Return `True` if you're following the given group, `False` if not.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the group
+ followee_count:
+ post:
+ operationId: followee_count
+ summary: followee_count
+ description: |
+ Return the number of objects that are followed by the given user.
- #[tokio::main]
- async fn main() -> Result<(), Box> {
- // Load environment variables from .env file
- dotenv()?;
+ Counts all objects, of any type, that the given user is following (e.g. followed users, followed datasets, followed groups).
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the user
+ user_followee_count:
+ post:
+ operationId: user_followee_count
+ summary: user_followee_count
+ description: |
+ Return the number of users that are followed by the given user.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the user
+ dataset_followee_count:
+ post:
+ operationId: dataset_followee_count
+ summary: dataset_followee_count
+ description: |
+ Return the number of datasets that are followed by the given user.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the user
+ group_followee_count:
+ post:
+ operationId: group_followee_count
+ summary: group_followee_count
+ description: |
+ Return the number of groups that are followed by the given user.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the user
+ organization_followee_count:
+ post:
+ operationId: organization_followee_count
+ summary: organization_followee_count
+ description: |
+ Return the number of organizations that are followed by the given user.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the user
+ followee_list:
+ post:
+ operationId: followee_list
+ summary: followee_list
+ description: |
+ Return the list of objects that are followed by the given user.
- // Initialize and build CKAN struct
- let ckan = ckanaction::CKAN::builder()
- .url("http://localhost:5000")
- .token(dotenvy::var("CKAN_API_TOKEN")?)
- .build();
+ Returns all objects, of any type, that the given user is following (e.g. followed users, followed datasets, followed groups).
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the user
+ q:
+ type: string
+ description: a query string to limit results by, only objects whose display name begins with the given string (case-insensitive) wil be returned
+ organization_followee_list:
+ post:
+ operationId: organization_followee_list
+ summary: organization_followee_list
+ description: |
+ Return the list of organizations that are followed by the given user.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the user
+ member_roles_list:
+ post:
+ operationId: member_roles_list
+ summary: member_roles_list
+ description: |
+ Return the possible roles for members of groups and organizations.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ group_type:
+ type: string
+ description: "the group type, either `\"group\"` or `\"organization\"` (default: `\"organization\"`)"
+ help_show:
+ post:
+ operationId: help_show
+ summary: help_show
+ description: |
+ Return the help string for a particular API action.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: Action function name (e.g. `user_create`, `package_search`)
+ config_option_show:
+ post:
+ operationId: config_option_show
+ summary: config_option_show
+ description: |
+ Show the current value of a particular configuration option.
- // Send request to /package_list and print output
- let result = ckan.package_list()
- .limit(5) // <-- This is an optional parameter you can remove
- .call()
- .await?;
- println!("{result:#?}");
-
- Ok(())
- }
\ No newline at end of file
+ Only returns runtime-editable config options (the ones returned by `config_option_list()`), which can be updated with the `config_option_update()` action.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ key:
+ type: string
+ description: The configuration option key
+ config_option_list:
+ post:
+ operationId: config_option_list
+ summary: config_option_list
+ description: |
+ Return a list of runtime-editable config option keys that can be updated with `config_option_update()`.
+ job_list:
+ post:
+ operationId: job_list
+ summary: job_list
+ description: |
+ List enqueued background jobs.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ queues:
+ type: array
+ items:
+ type: string
+ description: Queues to list jobs from. If not given then the jobs from all queues are listed.
+ job_show:
+ post:
+ operationId: job_show
+ summary: job_show
+ description: |
+ Show details for a background job.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: The ID of the background job.
+ api_token_list:
+ post:
+ operationId: api_token_list
+ summary: api_token_list
+ description: |
+ Return list of all available API tokens for the current user.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ user_id:
+ type: string
+ description: The user ID or name
\ No newline at end of file
diff --git a/docs/package.json b/docs/package.json
index 18900eb..577d017 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -12,17 +12,17 @@
},
"dependencies": {
"fumadocs-core": "16.0.2",
- "fumadocs-mdx": "^13.0.0",
- "fumadocs-openapi": "^9.6.3",
+ "fumadocs-mdx": "^13.0.2",
+ "fumadocs-openapi": "^9.7.1",
"fumadocs-ui": "16.0.2",
"lucide-react": "^0.546.0",
- "next": "^16.0.0",
+ "next": "^16.0.1",
"react": "^19.2.0",
"react-dom": "^19.2.0",
- "shiki": "^3.13.0"
+ "shiki": "^3.14.0"
},
"devDependencies": {
- "@biomejs/biome": "^2.3.0",
+ "@biomejs/biome": "^2.3.2",
"@tailwindcss/postcss": "^4.1.16",
"@types/mdx": "^2.0.13",
"@types/node": "24.9.1",