From 87f5c5393e72e6d76d4d5a2a014b0f7086fde3cb Mon Sep 17 00:00:00 2001 From: cchenggit <654031023@qq.com> Date: Sat, 2 Aug 2025 23:46:41 +0800 Subject: [PATCH 1/2] feat(openapi): add openapi document --- .vitepress/config.mts | 71 +- .vitepress/theme/index.ts | 18 + openapi/index.md | 4 + openapi/introduction.md | 7 + openapi/one-page.md | 6 + openapi/openapi.json | 1568 +++++++++++++++++++++ openapi/operations/[operationId].md | 15 + openapi/operations/[operationId].paths.js | 17 + openapi/tags/[tag].md | 15 + openapi/tags/[tag].paths.js | 17 + openapi/without-sidebar.md | 12 + package-lock.json | 1424 ++++++++++++++++--- package.json | 7 +- 13 files changed, 2966 insertions(+), 215 deletions(-) create mode 100644 .vitepress/theme/index.ts create mode 100644 openapi/index.md create mode 100644 openapi/introduction.md create mode 100644 openapi/one-page.md create mode 100644 openapi/openapi.json create mode 100644 openapi/operations/[operationId].md create mode 100644 openapi/operations/[operationId].paths.js create mode 100644 openapi/tags/[tag].md create mode 100644 openapi/tags/[tag].paths.js create mode 100644 openapi/without-sidebar.md diff --git a/.vitepress/config.mts b/.vitepress/config.mts index a0de94f..73412f8 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -1,4 +1,12 @@ -import { defineConfig, type DefaultTheme } from 'vitepress' +import { defineConfig, type DefaultTheme } from 'vitepress'; +import { useSidebar } from 'vitepress-openapi'; +import spec from '../openapi/openapi.json' with { type: 'json' }; + +const sidebar = useSidebar({ + spec, + // Optionally, you can specify a link prefix for all generated sidebar items. + linkPrefix: '/operations/', +}) export default defineConfig({ title: "WebhookX", @@ -26,11 +34,17 @@ export default defineConfig({ link: '/blog/index', activeMatch: '/blog' }, + { + text: 'OpenAPI', + link: '/openapi/index', + activeMatch: '/openapi' + } ], sidebar: { '/docs/': { base: '', items: sidebarDocs() }, - '/blog/': { base: '/blog/', items: sidebarBlog() } + '/blog/': { base: '/blog/', items: sidebarBlog() }, + '/openapi/': { base: '/openapi/', items: openAPI() } }, @@ -39,7 +53,18 @@ export default defineConfig({ { icon: 'x', link: 'https://x.com/WebhookX' }, { icon: 'slack', link: 'https://join.slack.com/t/webhookx/shared_invite/zt-2o4b6hv45-mWm6_WUcQP9qEf1nOxhrrg' }, ] - } + }, + /** Give each dynamic page its own */ + transformPageData(pageData) { + // params returned from [*].paths.js|ts are available here + const pageTitle = pageData.params?.pageTitle; + + if (pageTitle) { + pageData.title = pageTitle; + pageData.frontmatter ??= {}; + pageData.frontmatter.title = pageTitle; + } + }, }) @@ -117,3 +142,43 @@ function sidebarBlog(): DefaultTheme.SidebarItem[] { ] } +function openAPI(): DefaultTheme.SidebarItem[] { + return [ + { + text: "OpenAPI", + link: 'index', + items: [ + { text: 'Overview', link: 'index' }, + { + text: 'By Tags', + items: [ + { + text: 'Introduction', + link: '/introduction', + }, + ...sidebar.itemsByTags(), + ], + }, + { + text: 'By Operations', + items: [ + ...sidebar.generateSidebarGroups(), + ], + }, + { + text: 'By Paths', + items: [ + ...sidebar.itemsByPaths(), + ], + }, + { + text: 'One Page', + items: [ + { text: 'One Page', link: '/one-page' }, + { text: 'Without Sidebar', link: '/without-sidebar' }, + ], + }, + ] + }, + ] +} diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts new file mode 100644 index 0000000..d0291fa --- /dev/null +++ b/.vitepress/theme/index.ts @@ -0,0 +1,18 @@ +import type { Theme } from 'vitepress'; +import DefaultTheme from 'vitepress/theme'; + +import { theme, useOpenapi } from 'vitepress-openapi/client'; +import 'vitepress-openapi/dist/style.css'; +import spec from '../../openapi/openapi.json' with { type: 'json' }; + +export default { + ...DefaultTheme, + async enhanceApp({ app, router, siteData }) { + const openapi = useOpenapi({ + spec: spec, + config: {}, + }); + + theme.enhanceApp({ app, openapi }); + }, +} satisfies Theme; diff --git a/openapi/index.md b/openapi/index.md new file mode 100644 index 0000000..71c61c5 --- /dev/null +++ b/openapi/index.md @@ -0,0 +1,4 @@ +# Webhookx OpenAPI +WebhookX comes with an internal RESTful OpenAPI. + +The WebhookX Admin API is documented in [openapi.yml](https://github.com/webhookx-io/webhookx/blob/main/openapi.yml). \ No newline at end of file diff --git a/openapi/introduction.md b/openapi/introduction.md new file mode 100644 index 0000000..6794c17 --- /dev/null +++ b/openapi/introduction.md @@ -0,0 +1,7 @@ +--- +title: vitepress-openapi +--- + +<OAInfo /> + +<OAServers /> diff --git a/openapi/one-page.md b/openapi/one-page.md new file mode 100644 index 0000000..28d1416 --- /dev/null +++ b/openapi/one-page.md @@ -0,0 +1,6 @@ +--- +aside: false +title: vitepress-openapi +--- + +<OASpec /> diff --git a/openapi/openapi.json b/openapi/openapi.json new file mode 100644 index 0000000..044166d --- /dev/null +++ b/openapi/openapi.json @@ -0,0 +1,1568 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "WebhookX Admin API", + "contact": { + "name": "WebhookX", + "url": "https://github.com/webhookx-io/webhookx" + }, + "license": { + "name": "Apache 2.0", + "url": "https://www.apache.org/licenses/LICENSE-2.0.html" + }, + "version": "0.8.0" + }, + "servers": [ + { + "url": "http://localhost:8080" + } + ], + "paths": { + "/": { + "get": { + "summary": "Get WebhookX information", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "version": { + "type": "string" + } + } + }, + "example": { + "version": "1.0.0" + } + } + } + } + } + } + }, + "/workspaces": { + "get": { + "summary": "Page workspaces", + "parameters": [ + { + "$ref": "#/components/parameters/page_no" + }, + { + "$ref": "#/components/parameters/page_size" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Pagination" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Workspace" + } + } + } + } + ] + } + } + } + } + }, + "tags": [ + "Workspace" + ] + }, + "post": { + "summary": "Create a workspace", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workspace" + } + } + } + }, + "responses": { + "201": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workspace" + } + } + } + } + }, + "tags": [ + "Workspace" + ] + } + }, + "/workspaces/{id}": { + "get": { + "summary": "Retrieve a workspace", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workspace" + } + } + } + } + }, + "tags": [ + "Workspace" + ] + }, + "put": { + "summary": "Update a workspace", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workspace" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workspace" + } + } + } + } + }, + "tags": [ + "Workspace" + ] + }, + "delete": { + "summary": "Delete a workspace", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Deleted" + } + }, + "tags": [ + "Workspace" + ] + } + }, + "/workspaces/{ws_id}/endpoints": { + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "get": { + "summary": "Page endpoints", + "parameters": [ + { + "$ref": "#/components/parameters/page_no" + }, + { + "$ref": "#/components/parameters/page_size" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Pagination" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Endpoint" + } + } + } + } + ] + } + } + } + } + }, + "tags": [ + "Endpoint" + ] + }, + "post": { + "summary": "Create a endpoint", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Endpoint" + } + } + } + }, + "responses": { + "201": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Endpoint" + } + } + } + } + }, + "tags": [ + "Endpoint" + ] + } + }, + "/workspaces/{ws_id}/endpoints/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "get": { + "summary": "Retrieve a endpoint", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Endpoint" + } + } + } + } + }, + "tags": [ + "Endpoint" + ] + }, + "put": { + "summary": "Update a endpoint", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Endpoint" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Endpoint" + } + } + } + } + }, + "tags": [ + "Endpoint" + ] + }, + "delete": { + "summary": "Delete a endpoint", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Deleted" + } + }, + "tags": [ + "Endpoint" + ] + } + }, + "/workspaces/{ws_id}/attempts": { + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "get": { + "summary": "Page webhook attempts", + "parameters": [ + { + "$ref": "#/components/parameters/page_no" + }, + { + "$ref": "#/components/parameters/page_size" + }, + { + "name": "event_id", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "endpoint_id", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Pagination" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Attempt" + } + } + } + } + ] + } + } + } + } + }, + "tags": [ + "Attempt" + ] + } + }, + "/workspaces/{ws_id}/attempts/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "get": { + "summary": "Retrieve a webhook attempt", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Attempt" + } + } + } + } + }, + "tags": [ + "Attempt" + ] + } + }, + "/workspaces/{ws_id}/events": { + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "get": { + "summary": "Page events", + "parameters": [ + { + "$ref": "#/components/parameters/page_no" + }, + { + "$ref": "#/components/parameters/page_size" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Pagination" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event" + } + } + } + } + ] + } + } + } + } + }, + "tags": [ + "Event" + ] + }, + "post": { + "summary": "Create an event", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event" + } + } + } + }, + "responses": { + "201": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event" + } + } + } + } + }, + "tags": [ + "Event" + ] + } + }, + "/workspaces/{ws_id}/events/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "get": { + "summary": "Retrieve an event", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event" + } + } + } + } + }, + "tags": [ + "Event" + ] + } + }, + "/workspaces/{ws_id}/events/{id}/retry": { + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "post": { + "summary": "Manually retry an event", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "endpoint_id", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "Event" + ] + } + }, + "/workspaces/{ws_id}/sources": { + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "get": { + "summary": "Page sources", + "parameters": [ + { + "$ref": "#/components/parameters/page_no" + }, + { + "$ref": "#/components/parameters/page_size" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Pagination" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Source" + } + } + } + } + ] + } + } + } + } + }, + "tags": [ + "Source" + ] + }, + "post": { + "summary": "Create a source", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Source" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Source" + } + } + } + } + }, + "tags": [ + "Source" + ] + } + }, + "/workspaces/{ws_id}/source/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "get": { + "summary": "Retrieve a source", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Source" + } + } + } + } + }, + "tags": [ + "Source" + ] + }, + "put": { + "summary": "Update a source", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Source" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Source" + } + } + } + } + }, + "tags": [ + "Source" + ] + }, + "delete": { + "summary": "Delete a source", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Deleted" + } + }, + "tags": [ + "Source" + ] + } + }, + "/workspaces/{ws_id}/plugins": { + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "get": { + "summary": "Page plugins", + "parameters": [ + { + "$ref": "#/components/parameters/page_no" + }, + { + "$ref": "#/components/parameters/page_size" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Pagination" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Plugin" + } + } + } + } + ] + } + } + } + } + }, + "tags": [ + "Plugin" + ] + }, + "post": { + "summary": "Create a plugin", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Plugin" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Plugin" + } + } + } + } + }, + "tags": [ + "Plugin" + ] + } + }, + "/workspaces/{ws_id}/plugins/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "get": { + "summary": "Retrieve a plugin", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Plugin" + } + } + } + } + }, + "tags": [ + "Plugin" + ] + }, + "put": { + "summary": "Update a plugin", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Plugin" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Plugin" + } + } + } + } + }, + "tags": [ + "Plugin" + ] + }, + "delete": { + "summary": "Delete a plugin", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Deleted" + } + }, + "tags": [ + "Plugin" + ] + } + }, + "/workspaces/{ws_id}/config/sync": { + "post": { + "summary": "Sync declarative configuration", + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Configuration" + } + }, + "application/x-yaml": { + "schema": { + "$ref": "#/components/schemas/Configuration" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "Declarative" + ] + } + }, + "/workspaces/{ws_id}/config/dump": { + "post": { + "summary": "Dump declarative configuration", + "parameters": [ + { + "$ref": "#/components/parameters/workspace_id" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "tags": [ + "Declarative" + ] + } + }, + "/debug/pprof/": { + "get": { + "summary": "Responds the pprof html page listing the available profiles", + "responses": { + "200": { + "description": "OK", + "content": { + "text/html": { + "schema": { + "type": "string" + } + } + } + } + }, + "tags": [ + "Debug" + ] + } + }, + "/debug/pprof/{profile}": { + "get": { + "summary": "Responds a specific pprof profile", + "parameters": [ + { + "name": "profile", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "allocs", + "block", + "goroutine", + "heap", + "mutex", + "threadcreate", + "cmdline", + "symbol", + "profile", + "trace" + ] + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "Debug" + ] + } + } + }, + "components": { + "parameters": { + "page_no": { + "in": "query", + "name": "page_no", + "schema": { + "type": "integer", + "default": 1 + } + }, + "page_size": { + "in": "query", + "name": "page_size", + "schema": { + "type": "integer", + "default": 20 + } + }, + "workspace_id": { + "in": "path", + "name": "ws_id", + "required": true, + "schema": { + "type": "string", + "example": "default" + }, + "description": "The workspace id" + } + }, + "schemas": { + "Pagination": { + "properties": { + "total": { + "type": "integer", + "example": 1 + } + } + }, + "Metadata": { + "type": "object", + "default": {}, + "additionalProperties": { + "type": "string" + } + }, + "Workspace": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "metadata": { + "$ref": "#/components/schemas/Metadata" + }, + "created_at": { + "type": "integer", + "readOnly": true + }, + "updated_at": { + "type": "integer", + "readOnly": true + } + } + }, + "Endpoint": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "enabled": { + "type": "boolean", + "default": true + }, + "request": { + "type": "object", + "default": { + "method": "POST", + "headers": null, + "timeout": 10000 + }, + "properties": { + "url": { + "type": "string", + "example": "https://example.com", + "minLength": 1 + }, + "method": { + "type": "string", + "default": "POST", + "enum": [ + "GET", + "POST", + "PUT", + "DELETE", + "PATCH" + ] + }, + "headers": { + "type": "object", + "default": null, + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "timeout": { + "type": "integer", + "default": 10000, + "maximum": 60000, + "minimum": 0 + } + }, + "required": [ + "url" + ] + }, + "retry": { + "type": "object", + "default": { + "strategy": "fixed", + "config": { + "attempts": [ + 0, + 60, + 3600 + ] + } + }, + "properties": { + "strategy": { + "type": "string", + "default": "fixed", + "enum": [ + "fixed" + ] + }, + "config": { + "type": "object", + "default": { + "attempts": [ + 0, + 60, + 3600 + ] + }, + "properties": { + "attempts": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0 + }, + "default": [ + 0, + 60, + 3600 + ], + "minItems": 1 + } + } + } + } + }, + "events": { + "type": "array", + "items": { + "type": "string", + "example": "foo.bar" + }, + "default": [] + }, + "metadata": { + "$ref": "#/components/schemas/Metadata" + }, + "created_at": { + "type": "integer", + "readOnly": true + }, + "updated_at": { + "type": "integer", + "readOnly": true + } + } + }, + "Attempt": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "event_id": { + "type": "string" + }, + "endpoint_id": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "INIT", + "QUEUED", + "SUCCESSFUL", + "FAILED", + "CANCELED" + ] + }, + "attempt_number": { + "type": "integer" + }, + "scheduled_at": { + "type": "integer" + }, + "attempted_at": { + "type": "integer", + "nullable": true + }, + "trigger_mode": { + "type": "string", + "enum": [ + "INITIAL", + "MANUAL", + "AUTOMATIC" + ] + }, + "exhausted": { + "type": "boolean" + }, + "error_code": { + "type": "string", + "enum": [ + "TIMEOUT", + "UNKNOWN", + "ENDPOINT_DISABLED", + "ENDPOINT_NOT_FOUND" + ], + "nullable": true + }, + "request": { + "type": "object", + "nullable": true, + "properties": { + "method": { + "type": "string" + }, + "url": { + "type": "string" + }, + "headers": { + "type": "object", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + } + } + }, + "response": { + "type": "object", + "nullable": true, + "properties": { + "status": { + "type": "number" + }, + "latency": { + "description": "Latancy of response in milliseconds", + "type": "integer" + }, + "headers": { + "type": "object", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + } + } + }, + "created_at": { + "type": "integer", + "readOnly": true + }, + "updated_at": { + "type": "integer", + "readOnly": true + } + } + }, + "Event": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "event_type": { + "type": "string" + }, + "data": { + "type": "object" + }, + "ingested_at": { + "description": "The time the event was ingested", + "type": "integer" + }, + "created_at": { + "type": "integer", + "readOnly": true + }, + "updated_at": { + "type": "integer", + "readOnly": true + } + }, + "required": [ + "event_type", + "data" + ] + }, + "Source": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string", + "nullable": true + }, + "enabled": { + "type": "boolean", + "default": true + }, + "path": { + "type": "string" + }, + "methods": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "GET", + "POST", + "PUT", + "DELETE", + "PATCH" + ] + }, + "minItems": 1 + }, + "async": { + "description": "Whether to ingest events asynchronously through the queue", + "type": "boolean", + "default": false + }, + "response": { + "type": "object", + "nullable": true, + "properties": { + "code": { + "type": "integer", + "maximum": 599, + "minimum": 200 + }, + "content_type": { + "type": "string" + }, + "body": { + "type": "string" + } + }, + "required": [ + "code", + "content_type" + ] + }, + "metadata": { + "$ref": "#/components/schemas/Metadata" + }, + "created_at": { + "type": "integer", + "readOnly": true + }, + "updated_at": { + "type": "integer", + "readOnly": true + } + }, + "required": [ + "path", + "methods" + ] + }, + "Plugin": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "enabled": { + "type": "boolean", + "default": true + }, + "endpoint_id": { + "type": "string", + "nullable": true + }, + "source_id": { + "type": "string", + "nullable": true + }, + "config": { + "type": "object", + "nullable": true + }, + "metadata": { + "$ref": "#/components/schemas/Metadata" + }, + "created_at": { + "type": "integer", + "readOnly": true + }, + "updated_at": { + "type": "integer", + "readOnly": true + } + } + }, + "Configuration": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/Endpoint" + }, + { + "type": "object", + "properties": { + "plugins": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Plugin" + } + } + } + } + ] + } + }, + "sources": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/Source" + }, + { + "type": "object", + "properties": { + "plugins": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Plugin" + } + } + } + } + ] + } + } + } + } + }, + "responses": { + "NotFound": { + "description": "The resource was not found" + }, + "NotContent": { + "description": "The resource has been successfully deleted or the resource didn't exist" + } + } + } +} \ No newline at end of file diff --git a/openapi/operations/[operationId].md b/openapi/operations/[operationId].md new file mode 100644 index 0000000..7bcdd42 --- /dev/null +++ b/openapi/operations/[operationId].md @@ -0,0 +1,15 @@ +--- +aside: false +outline: false +title: vitepress-openapi +--- + +<script setup lang="ts"> +import { useRoute } from 'vitepress' + +const route = useRoute() + +const operationId = route.data.params.operationId +</script> + +<OAOperation :operationId="operationId" /> diff --git a/openapi/operations/[operationId].paths.js b/openapi/operations/[operationId].paths.js new file mode 100644 index 0000000..90cd366 --- /dev/null +++ b/openapi/operations/[operationId].paths.js @@ -0,0 +1,17 @@ +import { usePaths } from 'vitepress-openapi'; +import spec from '../openapi.json' with { type: 'json' }; + +export default { + paths() { + return usePaths({ spec }) + .getPathsByVerbs() + .map(({ operationId, summary }) => { + return { + params: { + operationId, + pageTitle: `${summary} - vitepress-openapi`, + }, + } + }) + }, +} diff --git a/openapi/tags/[tag].md b/openapi/tags/[tag].md new file mode 100644 index 0000000..1f7aa90 --- /dev/null +++ b/openapi/tags/[tag].md @@ -0,0 +1,15 @@ +--- +aside: false +outline: false +title: vitepress-openapi +--- + +<script setup lang="ts"> +import { useRoute } from 'vitepress' + +const route = useRoute() + +const tag = route.data.params.tag +</script> + +<OASpec :tags="[tag]" hide-info hide-servers hide-paths-summary /> diff --git a/openapi/tags/[tag].paths.js b/openapi/tags/[tag].paths.js new file mode 100644 index 0000000..34394cd --- /dev/null +++ b/openapi/tags/[tag].paths.js @@ -0,0 +1,17 @@ +import { usePaths } from 'vitepress-openapi' +import spec from '../openapi.json' with { type: 'json' } + +export default { + paths() { + return usePaths({ spec }) + .getTags() + .map(({ name }) => { + return { + params: { + tag: name, + pageTitle: `${name} - vitepress-openapi`, + }, + } + }) + }, +} diff --git a/openapi/without-sidebar.md b/openapi/without-sidebar.md new file mode 100644 index 0000000..1f4e7eb --- /dev/null +++ b/openapi/without-sidebar.md @@ -0,0 +1,12 @@ +--- +sidebar: false +aside: true +outline: [1, 2] +title: vitepress-openapi +--- + +<script setup lang="ts"> +import spec from './openapi.json' +</script> + +<OASpec :spec="spec" /> diff --git a/package-lock.json b/package-lock.json index 019fd18..ecfe4a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,41 +5,59 @@ "packages": { "": { "devDependencies": { - "vitepress": "2.0.0-alpha.5" + "@modyfi/vite-plugin-yaml": "^1.1.1", + "vitepress": "latest", + "vitepress-openapi": "latest" + } + }, + "node_modules/@algolia/abtesting": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.1.0.tgz", + "integrity": "sha512-sEyWjw28a/9iluA37KLGu8vjxEIlb60uxznfTUmXImy7H5NvbpSO6yYgmgH5KiD7j+zTUUihiST0jEP12IoXow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/autocomplete-core": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz", - "integrity": "sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz", + "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.17.9", - "@algolia/autocomplete-shared": "1.17.9" + "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", + "@algolia/autocomplete-shared": "1.17.7" } }, "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz", - "integrity": "sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz", + "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/autocomplete-shared": "1.17.9" + "@algolia/autocomplete-shared": "1.17.7" }, "peerDependencies": { "search-insights": ">= 1 < 3" } }, "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz", - "integrity": "sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz", + "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/autocomplete-shared": "1.17.9" + "@algolia/autocomplete-shared": "1.17.7" }, "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", @@ -47,9 +65,9 @@ } }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz", - "integrity": "sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", + "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -58,41 +76,41 @@ } }, "node_modules/@algolia/client-abtesting": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.23.4.tgz", - "integrity": "sha512-WIMT2Kxy+FFWXWQxIU8QgbTioL+SGE24zhpj0kipG4uQbzXwONaWt7ffaYLjfge3gcGSgJVv+1VlahVckafluQ==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.35.0.tgz", + "integrity": "sha512-uUdHxbfHdoppDVflCHMxRlj49/IllPwwQ2cQ8DLC4LXr3kY96AHBpW0dMyi6ygkn2MtFCc6BxXCzr668ZRhLBQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4", - "@algolia/requester-browser-xhr": "5.23.4", - "@algolia/requester-fetch": "5.23.4", - "@algolia/requester-node-http": "5.23.4" + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.23.4.tgz", - "integrity": "sha512-4B9gChENsQA9kFmFlb+x3YhBz2Gx3vSsm81FHI1yJ3fn2zlxREHmfrjyqYoMunsU7BybT/o5Nb7ccCbm/vfseA==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.35.0.tgz", + "integrity": "sha512-SunAgwa9CamLcRCPnPHx1V2uxdQwJGqb1crYrRWktWUdld0+B2KyakNEeVn5lln4VyeNtW17Ia7V7qBWyM/Skw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4", - "@algolia/requester-browser-xhr": "5.23.4", - "@algolia/requester-fetch": "5.23.4", - "@algolia/requester-node-http": "5.23.4" + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.23.4.tgz", - "integrity": "sha512-bsj0lwU2ytiWLtl7sPunr+oLe+0YJql9FozJln5BnIiqfKOaseSDdV42060vUy+D4373f2XBI009K/rm2IXYMA==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.35.0.tgz", + "integrity": "sha512-ipE0IuvHu/bg7TjT2s+187kz/E3h5ssfTtjpg1LbWMgxlgiaZIgTTbyynM7NfpSJSKsgQvCQxWjGUO51WSCu7w==", "dev": true, "license": "MIT", "engines": { @@ -100,151 +118,151 @@ } }, "node_modules/@algolia/client-insights": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.23.4.tgz", - "integrity": "sha512-XSCtAYvJ/hnfDHfRVMbBH0dayR+2ofVZy3jf5qyifjguC6rwxDsSdQvXpT0QFVyG+h8UPGtDhMPoUIng4wIcZA==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.35.0.tgz", + "integrity": "sha512-UNbCXcBpqtzUucxExwTSfAe8gknAJ485NfPN6o1ziHm6nnxx97piIbcBQ3edw823Tej2Wxu1C0xBY06KgeZ7gA==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4", - "@algolia/requester-browser-xhr": "5.23.4", - "@algolia/requester-fetch": "5.23.4", - "@algolia/requester-node-http": "5.23.4" + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.23.4.tgz", - "integrity": "sha512-l/0QvqgRFFOf7BnKSJ3myd1WbDr86ftVaa3PQwlsNh7IpIHmvVcT83Bi5zlORozVGMwaKfyPZo6O48PZELsOeA==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.35.0.tgz", + "integrity": "sha512-/KWjttZ6UCStt4QnWoDAJ12cKlQ+fkpMtyPmBgSS2WThJQdSV/4UWcqCUqGH7YLbwlj3JjNirCu3Y7uRTClxvA==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4", - "@algolia/requester-browser-xhr": "5.23.4", - "@algolia/requester-fetch": "5.23.4", - "@algolia/requester-node-http": "5.23.4" + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.23.4.tgz", - "integrity": "sha512-TB0htrDgVacVGtPDyENoM6VIeYqR+pMsDovW94dfi2JoaRxfqu/tYmLpvgWcOknP6wLbr8bA+G7t/NiGksNAwQ==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.35.0.tgz", + "integrity": "sha512-8oCuJCFf/71IYyvQQC+iu4kgViTODbXDk3m7yMctEncRSRV+u2RtDVlpGGfPlJQOrAY7OONwJlSHkmbbm2Kp/w==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4", - "@algolia/requester-browser-xhr": "5.23.4", - "@algolia/requester-fetch": "5.23.4", - "@algolia/requester-node-http": "5.23.4" + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.23.4.tgz", - "integrity": "sha512-uBGo6KwUP6z+u6HZWRui8UJClS7fgUIAiYd1prUqCbkzDiCngTOzxaJbEvrdkK0hGCQtnPDiuNhC5MhtVNN4Eg==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.35.0.tgz", + "integrity": "sha512-FfmdHTrXhIduWyyuko1YTcGLuicVbhUyRjO3HbXE4aP655yKZgdTIfMhZ/V5VY9bHuxv/fGEh3Od1Lvv2ODNTg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4", - "@algolia/requester-browser-xhr": "5.23.4", - "@algolia/requester-fetch": "5.23.4", - "@algolia/requester-node-http": "5.23.4" + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/ingestion": { - "version": "1.23.4", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.23.4.tgz", - "integrity": "sha512-Si6rFuGnSeEUPU9QchYvbknvEIyCRK7nkeaPVQdZpABU7m4V/tsiWdHmjVodtx3h20VZivJdHeQO9XbHxBOcCw==", + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.35.0.tgz", + "integrity": "sha512-gPzACem9IL1Co8mM1LKMhzn1aSJmp+Vp434An4C0OBY4uEJRcqsLN3uLBlY+bYvFg8C8ImwM9YRiKczJXRk0XA==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4", - "@algolia/requester-browser-xhr": "5.23.4", - "@algolia/requester-fetch": "5.23.4", - "@algolia/requester-node-http": "5.23.4" + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.23.4", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.23.4.tgz", - "integrity": "sha512-EXGoVVTshraqPJgr5cMd1fq7Jm71Ew6MpGCEaxI5PErBpJAmKdtjRIzs6JOGKHRaWLi+jdbJPYc2y8RN4qcx5Q==", + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.35.0.tgz", + "integrity": "sha512-w9MGFLB6ashI8BGcQoVt7iLgDIJNCn4OIu0Q0giE3M2ItNrssvb8C0xuwJQyTy1OFZnemG0EB1OvXhIHOvQwWw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4", - "@algolia/requester-browser-xhr": "5.23.4", - "@algolia/requester-fetch": "5.23.4", - "@algolia/requester-node-http": "5.23.4" + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.23.4.tgz", - "integrity": "sha512-1t6glwKVCkjvBNlng2itTf8fwaLSqkL4JaMENgR3WTGR8mmW2akocUy/ZYSQcG4TcR7qu4zW2UMGAwLoWoflgQ==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.35.0.tgz", + "integrity": "sha512-AhrVgaaXAb8Ue0u2nuRWwugt0dL5UmRgS9LXe0Hhz493a8KFeZVUE56RGIV3hAa6tHzmAV7eIoqcWTQvxzlJeQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4", - "@algolia/requester-browser-xhr": "5.23.4", - "@algolia/requester-fetch": "5.23.4", - "@algolia/requester-node-http": "5.23.4" + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.23.4.tgz", - "integrity": "sha512-UUuizcgc5+VSY8hqzDFVdJ3Wcto03lpbFRGPgW12pHTlUQHUTADtIpIhkLLOZRCjXmCVhtr97Z+eR6LcRYXa3Q==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.35.0.tgz", + "integrity": "sha512-diY415KLJZ6x1Kbwl9u96Jsz0OstE3asjXtJ9pmk1d+5gPuQ5jQyEsgC+WmEXzlec3iuVszm8AzNYYaqw6B+Zw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4" + "@algolia/client-common": "5.35.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.23.4.tgz", - "integrity": "sha512-UhDg6elsek6NnV5z4VG1qMwR6vbp+rTMBEnl/v4hUyXQazU+CNdYkl++cpdmLwGI/7nXc28xtZiL90Es3I7viQ==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.35.0.tgz", + "integrity": "sha512-uydqnSmpAjrgo8bqhE9N1wgcB98psTRRQXcjc4izwMB7yRl9C8uuAQ/5YqRj04U0mMQ+fdu2fcNF6m9+Z1BzDQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4" + "@algolia/client-common": "5.35.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.23.4.tgz", - "integrity": "sha512-jXGzGBRUS0oywQwnaCA6mMDJO7LoC3dYSLsyNfIqxDR4SNGLhtg3je0Y31lc24OA4nYyKAYgVLtjfrpcpsWShg==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.35.0.tgz", + "integrity": "sha512-RgLX78ojYOrThJHrIiPzT4HW3yfQa0D7K+MQ81rhxqaNyNBu4F1r+72LNHYH/Z+y9I1Mrjrd/c/Ue5zfDgAEjQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.4" + "@algolia/client-common": "5.35.0" }, "engines": { "node": ">= 14.0.0" @@ -301,39 +319,39 @@ } }, "node_modules/@docsearch/css": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.9.0.tgz", - "integrity": "sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==", + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.2.tgz", + "integrity": "sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==", "dev": true, "license": "MIT" }, "node_modules/@docsearch/js": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.9.0.tgz", - "integrity": "sha512-4bKHcye6EkLgRE8ze0vcdshmEqxeiJM77M0JXjef7lrYZfSlMunrDOCqyLjiZyo1+c0BhUqA2QpFartIjuHIjw==", + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.8.2.tgz", + "integrity": "sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==", "dev": true, "license": "MIT", "dependencies": { - "@docsearch/react": "3.9.0", + "@docsearch/react": "3.8.2", "preact": "^10.0.0" } }, "node_modules/@docsearch/react": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.9.0.tgz", - "integrity": "sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==", + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.2.tgz", + "integrity": "sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/autocomplete-core": "1.17.9", - "@algolia/autocomplete-preset-algolia": "1.17.9", - "@docsearch/css": "3.9.0", + "@algolia/autocomplete-core": "1.17.7", + "@algolia/autocomplete-preset-algolia": "1.17.7", + "@docsearch/css": "3.8.2", "algoliasearch": "^5.14.2" }, "peerDependencies": { - "@types/react": ">= 16.8.0 < 20.0.0", - "react": ">= 16.8.0 < 20.0.0", - "react-dom": ">= 16.8.0 < 20.0.0", + "@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": { @@ -364,6 +382,7 @@ "os": [ "aix" ], + "peer": true, "engines": { "node": ">=18" } @@ -381,6 +400,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -398,6 +418,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -415,6 +436,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -432,6 +454,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=18" } @@ -449,6 +472,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=18" } @@ -466,6 +490,7 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -483,6 +508,7 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -500,6 +526,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -517,6 +544,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -534,6 +562,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -551,6 +580,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -568,6 +598,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -585,6 +616,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -602,6 +634,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -619,6 +652,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -636,6 +670,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -653,6 +688,7 @@ "os": [ "netbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -670,6 +706,7 @@ "os": [ "netbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -687,6 +724,7 @@ "os": [ "openbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -704,6 +742,7 @@ "os": [ "openbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -721,6 +760,7 @@ "os": [ "sunos" ], + "peer": true, "engines": { "node": ">=18" } @@ -738,6 +778,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } @@ -755,6 +796,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } @@ -772,10 +814,78 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } }, + "node_modules/@floating-ui/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.3.tgz", + "integrity": "sha512-uZA413QEpNuhtb3/iIKoYMSK07keHPYeXF02Zhd6e213j+d1NamLix/mCLxBUDW/Gx52sPH2m+chlUsyaBs/Ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@floating-ui/vue": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.1.8.tgz", + "integrity": "sha512-SNJAa1jbT8Gh1LvWw2uIIViLL0saV2bCY59ISCvJzhbut5DSb2H3LKUK49Xkd7SixTNHKX4LFu59nbwIXt9jjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.3", + "@floating-ui/utils": "^0.2.10", + "vue-demi": ">=0.13.0" + } + }, + "node_modules/@floating-ui/vue/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/@iconify-json/simple-icons": { "version": "1.2.33", "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.33.tgz", @@ -793,6 +903,26 @@ "dev": true, "license": "MIT" }, + "node_modules/@internationalized/date": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.8.2.tgz", + "integrity": "sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.4.tgz", + "integrity": "sha512-P+/h+RDaiX8EGt3shB9AYM1+QgkvHmJ5rKi4/59k4sg9g58k9rqsRW0WxRO7jCoHyvVbFRRFKmVTdFYdehrxHg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", @@ -800,6 +930,57 @@ "dev": true, "license": "MIT" }, + "node_modules/@modyfi/vite-plugin-yaml": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@modyfi/vite-plugin-yaml/-/vite-plugin-yaml-1.1.1.tgz", + "integrity": "sha512-rEbfFNlMGLKpAYs2RsfLAhxCHFa6M4QKHHk0A4EYcCJAUwFtFO6qiEdLjUGUTtnRUxAC7GxxCa+ZbeUILSDvqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "5.1.0", + "js-yaml": "4.1.0", + "tosource": "2.0.0-alpha.3" + }, + "peerDependencies": { + "vite": ">=3.2.7" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.40.1", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz", @@ -1081,76 +1262,78 @@ ] }, "node_modules/@shikijs/core": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.3.0.tgz", - "integrity": "sha512-CovkFL2WVaHk6PCrwv6ctlmD4SS1qtIfN8yEyDXDYWh4ONvomdM9MaFw20qHuqJOcb8/xrkqoWQRJ//X10phOQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.5.0.tgz", + "integrity": "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.3.0", + "@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" + "hast-util-to-html": "^9.0.4" } }, "node_modules/@shikijs/engine-javascript": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.3.0.tgz", - "integrity": "sha512-XlhnFGv0glq7pfsoN0KyBCz9FJU678LZdQ2LqlIdAj6JKsg5xpYKay3DkazXWExp3DTJJK9rMOuGzU2911pg7Q==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz", + "integrity": "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.3.0", + "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2", - "oniguruma-to-es": "^4.2.0" + "oniguruma-to-es": "^3.1.0" } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.3.0.tgz", - "integrity": "sha512-l0vIw+GxeNU7uGnsu6B+Crpeqf+WTQ2Va71cHb5ZYWEVEPdfYwY5kXwYqRJwHrxz9WH+pjSpXQz+TJgAsrkA5A==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz", + "integrity": "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.3.0", + "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@shikijs/langs": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.3.0.tgz", - "integrity": "sha512-zt6Kf/7XpBQKSI9eqku+arLkAcDQ3NHJO6zFjiChI8w0Oz6Jjjay7pToottjQGjSDCFk++R85643WbyINcuL+g==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-2.5.0.tgz", + "integrity": "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.3.0" + "@shikijs/types": "2.5.0" } }, "node_modules/@shikijs/themes": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.3.0.tgz", - "integrity": "sha512-tXeCvLXBnqq34B0YZUEaAD1lD4lmN6TOHAhnHacj4Owh7Ptb/rf5XCDeROZt2rEOk5yuka3OOW2zLqClV7/SOg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-2.5.0.tgz", + "integrity": "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.3.0" + "@shikijs/types": "2.5.0" } }, "node_modules/@shikijs/transformers": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.3.0.tgz", - "integrity": "sha512-PIknEyxfkT7i7at/78ynVmuZEv4+7IcS37f6abxMjQ0pVIPEya8n+KNl7XtfbhNL+U9ElR3UzfSzuD5l5Iu+nw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-2.5.0.tgz", + "integrity": "sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "3.3.0", - "@shikijs/types": "3.3.0" + "@shikijs/core": "2.5.0", + "@shikijs/types": "2.5.0" } }, "node_modules/@shikijs/types": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.3.0.tgz", - "integrity": "sha512-KPCGnHG6k06QG/2pnYGbFtFvpVJmC3uIpXrAiPrawETifujPBv0Se2oUxm5qYgjCvGJS9InKvjytOdN+bGuX+Q==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-2.5.0.tgz", + "integrity": "sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==", "dev": true, "license": "MIT", "dependencies": { @@ -1165,6 +1348,44 @@ "dev": true, "license": "MIT" }, + "node_modules/@swc/helpers": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", + "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.13.12", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.12.tgz", + "integrity": "sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/vue-virtual": { + "version": "3.13.12", + "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.13.12.tgz", + "integrity": "sha512-vhF7kEU9EXWXh+HdAwKJ2m3xaOnTTmgcdXcF2pim8g4GvI7eRrk2YRuV5nUlZnd/NbCIX4/Ja2OZu5EjJL06Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.13.12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.0.0" + } + }, "node_modules/@types/estree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", @@ -1182,6 +1403,24 @@ "@types/unist": "*" } }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, "node_modules/@types/mdast": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", @@ -1192,6 +1431,13 @@ "@types/unist": "*" } }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/unist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", @@ -1391,14 +1637,15 @@ } }, "node_modules/@vueuse/integrations": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-13.1.0.tgz", - "integrity": "sha512-wJ6aANdUs4SOpVabChQK+uLIwxRTUAEmn1DJnflGG7Wq6yaipiRmp6as/Md201FjJnquQt8MecIPbFv8HSBeDA==", + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-12.8.2.tgz", + "integrity": "sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==", "dev": true, "license": "MIT", "dependencies": { - "@vueuse/core": "13.1.0", - "@vueuse/shared": "13.1.0" + "@vueuse/core": "12.8.2", + "@vueuse/shared": "12.8.2", + "vue": "^3.5.13" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -1415,8 +1662,7 @@ "nprogress": "^0.2", "qrcode": "^1.5", "sortablejs": "^1", - "universal-cookie": "^7", - "vue": "^3.5.0" + "universal-cookie": "^7" }, "peerDependenciesMeta": { "async-validator": { @@ -1457,6 +1703,45 @@ } } }, + "node_modules/@vueuse/integrations/node_modules/@vueuse/core": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.8.2.tgz", + "integrity": "sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "12.8.2", + "@vueuse/shared": "12.8.2", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations/node_modules/@vueuse/metadata": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.8.2.tgz", + "integrity": "sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations/node_modules/@vueuse/shared": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.8.2.tgz", + "integrity": "sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/@vueuse/metadata": { "version": "13.1.0", "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.1.0.tgz", @@ -1481,28 +1766,49 @@ } }, "node_modules/algoliasearch": { - "version": "5.23.4", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.23.4.tgz", - "integrity": "sha512-QzAKFHl3fm53s44VHrTdEo0TkpL3XVUYQpnZy1r6/EHvMAyIg+O4hwprzlsNmcCHTNyVcF2S13DAUn7XhkC6qg==", + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.35.0.tgz", + "integrity": "sha512-Y+moNhsqgLmvJdgTsO4GZNgsaDWv8AOGAaPeIeHKlDn/XunoAqYbA+XNpBd1dW8GOXAUDyxC9Rxc7AV4kpFcIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.1.0", + "@algolia/client-abtesting": "5.35.0", + "@algolia/client-analytics": "5.35.0", + "@algolia/client-common": "5.35.0", + "@algolia/client-insights": "5.35.0", + "@algolia/client-personalization": "5.35.0", + "@algolia/client-query-suggestions": "5.35.0", + "@algolia/client-search": "5.35.0", + "@algolia/ingestion": "1.35.0", + "@algolia/monitoring": "1.35.0", + "@algolia/recommend": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-abtesting": "5.23.4", - "@algolia/client-analytics": "5.23.4", - "@algolia/client-common": "5.23.4", - "@algolia/client-insights": "5.23.4", - "@algolia/client-personalization": "5.23.4", - "@algolia/client-query-suggestions": "5.23.4", - "@algolia/client-search": "5.23.4", - "@algolia/ingestion": "1.23.4", - "@algolia/monitoring": "1.23.4", - "@algolia/recommend": "5.23.4", - "@algolia/requester-browser-xhr": "5.23.4", - "@algolia/requester-fetch": "5.23.4", - "@algolia/requester-node-http": "5.23.4" + "tslib": "^2.0.0" }, "engines": { - "node": ">= 14.0.0" + "node": ">=10" } }, "node_modules/birpc": { @@ -1548,6 +1854,29 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -1582,6 +1911,13 @@ "dev": true, "license": "MIT" }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "dev": true, + "license": "MIT" + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -1606,6 +1942,13 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/emoji-regex-xs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", + "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==", + "dev": true, + "license": "MIT" + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -1626,6 +1969,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -1673,6 +2017,7 @@ "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", "dev": true, "license": "MIT", + "peer": true, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -1683,9 +2028,9 @@ } }, "node_modules/focus-trap": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.4.tgz", - "integrity": "sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.5.tgz", + "integrity": "sha512-7Ke1jyybbbPZyZXFxEftUtxFGLMpE2n6A+z//m4CRDlj0hW+o3iYSmh8nFlYMurOiJVDmJRilUQtJr08KfIxlg==", "dev": true, "license": "MIT", "dependencies": { @@ -1776,6 +2121,29 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/lucide-vue-next": { + "version": "0.503.0", + "resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.503.0.tgz", + "integrity": "sha512-3MrtHIBdh4dPCUZDLxQnvmQ17UzUnBYgezUSIo87Laais8hOz6qIPllp0iG/uS/UIzk7bJxyZRzoZTW/gLSr4A==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "vue": ">=3.0.1" + } + }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -1793,6 +2161,13 @@ "dev": true, "license": "MIT" }, + "node_modules/markdown-it-link-attributes": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/markdown-it-link-attributes/-/markdown-it-link-attributes-4.0.1.tgz", + "integrity": "sha512-pg5OK0jPLg62H4k7M9mRJLT61gUp9nvG0XveKYHMOOluASo9OEF13WlXrpAp2aj35LbedAy3QOCgQCw0tkLKAQ==", + "dev": true, + "license": "MIT" + }, "node_modules/mdast-util-to-hast": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", @@ -1942,21 +2317,21 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/oniguruma-parser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.0.tgz", - "integrity": "sha512-fD9o5ebCmEAA9dLysajdQvuKzLL7cj+w7DQjuO3Cb6IwafENfx6iL+RGkmyW82pVRsvgzixsWinHvgxTMJvdIA==", + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", "dev": true, "license": "MIT" }, "node_modules/oniguruma-to-es": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.1.tgz", - "integrity": "sha512-VtX1kepWO+7HG7IWV5v72JhiqofK7XsiHmtgnvurnNOTdIvE5mrdWYtsOrQyrXCv1L2Ckm08hywp+MFO7rC4Ug==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz", + "integrity": "sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==", "dev": true, "license": "MIT", "dependencies": { - "oniguruma-parser": "^0.12.0", + "emoji-regex-xs": "^1.0.0", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } @@ -1981,6 +2356,7 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -2018,9 +2394,9 @@ } }, "node_modules/preact": { - "version": "10.26.5", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.5.tgz", - "integrity": "sha512-fmpDkgfGU6JYux9teDWLhj9mKN55tyepwYbxHgQuIxbWQzgFg5vk7Mrrtfx7xRxq798ynkY4DDDxZr235Kk+4w==", + "version": "10.27.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.27.0.tgz", + "integrity": "sha512-/DTYoB6mwwgPytiqQTh/7SFRL98ZdiD8Sk8zIUVOxtwq4oWcwrcd1uno9fE/zZmUaUrFNYzbH14CPebOz9tZQw==", "dev": true, "license": "MIT", "funding": { @@ -2029,9 +2405,9 @@ } }, "node_modules/property-information": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", - "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", "dev": true, "license": "MIT", "funding": { @@ -2066,6 +2442,67 @@ "dev": true, "license": "MIT" }, + "node_modules/reka-ui": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/reka-ui/-/reka-ui-2.4.1.tgz", + "integrity": "sha512-NB7DrCsODN8MH02BWtgiExygfFcuuZ5/PTn6fMgjppmFHqePvNhmSn1LEuF35nel6PFbA4v+gdj0IoGN1yZ+vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.6.13", + "@floating-ui/vue": "^1.1.6", + "@internationalized/date": "^3.5.0", + "@internationalized/number": "^3.5.0", + "@tanstack/vue-virtual": "^3.12.0", + "@vueuse/core": "^12.5.0", + "@vueuse/shared": "^12.5.0", + "aria-hidden": "^1.2.4", + "defu": "^6.1.4", + "ohash": "^2.0.11" + }, + "peerDependencies": { + "vue": ">= 3.2.0" + } + }, + "node_modules/reka-ui/node_modules/@vueuse/core": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.8.2.tgz", + "integrity": "sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "12.8.2", + "@vueuse/shared": "12.8.2", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/reka-ui/node_modules/@vueuse/metadata": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.8.2.tgz", + "integrity": "sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/reka-ui/node_modules/@vueuse/shared": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.8.2.tgz", + "integrity": "sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/rfdc": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", @@ -2122,18 +2559,18 @@ "peer": true }, "node_modules/shiki": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.3.0.tgz", - "integrity": "sha512-j0Z1tG5vlOFGW8JVj0Cpuatzvshes7VJy5ncDmmMaYcmnGW0Js1N81TOW98ivTFNZfKRn9uwEg/aIm638o368g==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", + "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "3.3.0", - "@shikijs/engine-javascript": "3.3.0", - "@shikijs/engine-oniguruma": "3.3.0", - "@shikijs/langs": "3.3.0", - "@shikijs/themes": "3.3.0", - "@shikijs/types": "3.3.0", + "@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" } @@ -2210,6 +2647,7 @@ "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" @@ -2221,6 +2659,15 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tosource": { + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/tosource/-/tosource-2.0.0-alpha.3.tgz", + "integrity": "sha512-KAB2lrSS48y91MzFPFuDg4hLbvDiyTjOVgaK7Erw+5AmZXNq4sFRVn8r6yxSLuNs15PaokrDRpS61ERY9uZOug==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -2232,6 +2679,13 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/unist-util-is": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", @@ -2321,9 +2775,9 @@ } }, "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", "dev": true, "license": "MIT", "dependencies": { @@ -2341,6 +2795,7 @@ "integrity": "sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -2411,28 +2866,29 @@ } }, "node_modules/vitepress": { - "version": "2.0.0-alpha.5", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-2.0.0-alpha.5.tgz", - "integrity": "sha512-fhuGpJ4CETS/lrAHjKu3m88HwesZvAjZLFeIRr9Jejmewyogn1tm2L6lsVg7PWxPmOGoMfihzl3+L6jg6hrTnA==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.6.3.tgz", + "integrity": "sha512-fCkfdOk8yRZT8GD9BFqusW3+GggWYZ/rYncOfmgcDtP3ualNHCAg+Robxp2/6xfH1WwPHtGpPwv7mbA3qomtBw==", "dev": true, "license": "MIT", "dependencies": { - "@docsearch/css": "^3.9.0", - "@docsearch/js": "^3.9.0", - "@iconify-json/simple-icons": "^1.2.32", - "@shikijs/core": "^3.2.2", - "@shikijs/transformers": "^3.2.2", - "@shikijs/types": "^3.2.2", - "@vitejs/plugin-vue": "^5.2.3", - "@vue/devtools-api": "^7.7.5", + "@docsearch/css": "3.8.2", + "@docsearch/js": "3.8.2", + "@iconify-json/simple-icons": "^1.2.21", + "@shikijs/core": "^2.1.0", + "@shikijs/transformers": "^2.1.0", + "@shikijs/types": "^2.1.0", + "@types/markdown-it": "^14.1.2", + "@vitejs/plugin-vue": "^5.2.1", + "@vue/devtools-api": "^7.7.0", "@vue/shared": "^3.5.13", - "@vueuse/core": "^13.1.0", - "@vueuse/integrations": "^13.1.0", + "@vueuse/core": "^12.4.0", + "@vueuse/integrations": "^12.4.0", "focus-trap": "^7.6.4", "mark.js": "8.11.1", - "minisearch": "^7.1.2", - "shiki": "^3.2.2", - "vite": "^6.3.2", + "minisearch": "^7.1.1", + "shiki": "^2.1.0", + "vite": "^5.4.14", "vue": "^3.5.13" }, "bin": { @@ -2451,6 +2907,554 @@ } } }, + "node_modules/vitepress-openapi": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/vitepress-openapi/-/vitepress-openapi-0.1.5.tgz", + "integrity": "sha512-frIamJVjfIKIkhLnV67A1L9YvztVmXryEC6nctJMi3VUPfGWK9Z3/YiSzCubYpPZZSuGLpAn1Wt9Ic35FvXVKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vueuse/core": "^13.1.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-vue-next": "^0.503.0", + "markdown-it-link-attributes": "^4.0.1", + "reka-ui": "^2.2.0" + }, + "peerDependencies": { + "vitepress": ">=1.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/vitepress/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitepress/node_modules/@vueuse/core": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.8.2.tgz", + "integrity": "sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "12.8.2", + "@vueuse/shared": "12.8.2", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/vitepress/node_modules/@vueuse/metadata": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.8.2.tgz", + "integrity": "sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/vitepress/node_modules/@vueuse/shared": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.8.2.tgz", + "integrity": "sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/vitepress/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "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" + } + }, + "node_modules/vitepress/node_modules/vite": { + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, "node_modules/vue": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", diff --git a/package.json b/package.json index 98ede59..d6495c7 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,13 @@ { + "type": "module", "scripts": { "docs:dev": "vitepress dev", "docs:build": "vitepress build", "docs:preview": "vitepress preview" }, "devDependencies": { - "vitepress": "2.0.0-alpha.5" + "@modyfi/vite-plugin-yaml": "^1.1.1", + "vitepress": "latest", + "vitepress-openapi": "latest" } -} +} \ No newline at end of file From 97fbf974c5262f04bdc639f85857b76435057245 Mon Sep 17 00:00:00 2001 From: cchenggit <654031023@qq.com> Date: Sun, 3 Aug 2025 14:58:14 +0800 Subject: [PATCH 2/2] feat(openapi): alter openapi to sidebar groups --- .vitepress/config.mts | 69 +++++-------------- .vitepress/theme/index.ts | 2 +- Makefile | 4 ++ {openapi => docs/openapi}/one-page.md | 0 {openapi => docs/openapi}/openapi.json | 0 .../openapi}/operations/[operationId].md | 0 .../operations/[operationId].paths.js | 0 .../openapi/overview.md | 1 - {openapi => docs/openapi}/tags/[tag].md | 0 {openapi => docs/openapi}/tags/[tag].paths.js | 0 {openapi => docs/openapi}/without-sidebar.md | 0 openapi/index.md | 4 -- 12 files changed, 22 insertions(+), 58 deletions(-) rename {openapi => docs/openapi}/one-page.md (100%) rename {openapi => docs/openapi}/openapi.json (100%) rename {openapi => docs/openapi}/operations/[operationId].md (100%) rename {openapi => docs/openapi}/operations/[operationId].paths.js (100%) rename openapi/introduction.md => docs/openapi/overview.md (98%) rename {openapi => docs/openapi}/tags/[tag].md (100%) rename {openapi => docs/openapi}/tags/[tag].paths.js (100%) rename {openapi => docs/openapi}/without-sidebar.md (100%) delete mode 100644 openapi/index.md diff --git a/.vitepress/config.mts b/.vitepress/config.mts index 73412f8..1dffbee 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -1,6 +1,6 @@ import { defineConfig, type DefaultTheme } from 'vitepress'; import { useSidebar } from 'vitepress-openapi'; -import spec from '../openapi/openapi.json' with { type: 'json' }; +import spec from '../docs/openapi/openapi.json' with { type: 'json' }; const sidebar = useSidebar({ spec, @@ -34,17 +34,11 @@ export default defineConfig({ link: '/blog/index', activeMatch: '/blog' }, - { - text: 'OpenAPI', - link: '/openapi/index', - activeMatch: '/openapi' - } ], sidebar: { '/docs/': { base: '', items: sidebarDocs() }, '/blog/': { base: '/blog/', items: sidebarBlog() }, - '/openapi/': { base: '/openapi/', items: openAPI() } }, @@ -91,11 +85,24 @@ function sidebarDocs(): DefaultTheme.SidebarItem[] { ] }, { - text: "Admin API", + text: 'OpenAPI', collapsed: false, items: [ - { text: 'Overview', link: 'docs/admin/overview' }, - ] + { + text: 'Overview', + link: '/docs/openapi/overview', + }, + ...sidebar.generateSidebarGroups({ + linkPrefix: '/docs/openapi/operations/', + }).map((group) => ({ + ...group, + collapsed: true + })), + { + text: 'One Page', + link: '/docs/openapi/one-page', + }, + ], }, { text: "Plugins", @@ -120,7 +127,6 @@ function sidebarDocs(): DefaultTheme.SidebarItem[] { text: "References", items: [ { text: 'CLI', link: 'docs/cli' }, - { text: 'OpenAPI', link: 'https://github.com/webhookx-io/webhookx/blob/main/openapi.yml' }, { text: 'Release Notes', link: 'https://github.com/webhookx-io/webhookx/releases' }, ] }, @@ -141,44 +147,3 @@ function sidebarBlog(): DefaultTheme.SidebarItem[] { }, ] } - -function openAPI(): DefaultTheme.SidebarItem[] { - return [ - { - text: "OpenAPI", - link: 'index', - items: [ - { text: 'Overview', link: 'index' }, - { - text: 'By Tags', - items: [ - { - text: 'Introduction', - link: '/introduction', - }, - ...sidebar.itemsByTags(), - ], - }, - { - text: 'By Operations', - items: [ - ...sidebar.generateSidebarGroups(), - ], - }, - { - text: 'By Paths', - items: [ - ...sidebar.itemsByPaths(), - ], - }, - { - text: 'One Page', - items: [ - { text: 'One Page', link: '/one-page' }, - { text: 'Without Sidebar', link: '/without-sidebar' }, - ], - }, - ] - }, - ] -} diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index d0291fa..7b2b821 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -3,7 +3,7 @@ import DefaultTheme from 'vitepress/theme'; import { theme, useOpenapi } from 'vitepress-openapi/client'; import 'vitepress-openapi/dist/style.css'; -import spec from '../../openapi/openapi.json' with { type: 'json' }; +import spec from '../../docs/openapi/openapi.json' with { type: 'json' }; export default { ...DefaultTheme, diff --git a/Makefile b/Makefile index 584ad9d..c10cdf3 100644 --- a/Makefile +++ b/Makefile @@ -9,3 +9,7 @@ build: .PHONY: preview preview: npm run docs:preview + +.PHONY: oy2j +oy2j: + npx openapi-format https://raw.githubusercontent.com/webhookx-io/webhookx/refs/heads/main/openapi.yml -o ./docs/openapi/openapi.json \ No newline at end of file diff --git a/openapi/one-page.md b/docs/openapi/one-page.md similarity index 100% rename from openapi/one-page.md rename to docs/openapi/one-page.md diff --git a/openapi/openapi.json b/docs/openapi/openapi.json similarity index 100% rename from openapi/openapi.json rename to docs/openapi/openapi.json diff --git a/openapi/operations/[operationId].md b/docs/openapi/operations/[operationId].md similarity index 100% rename from openapi/operations/[operationId].md rename to docs/openapi/operations/[operationId].md diff --git a/openapi/operations/[operationId].paths.js b/docs/openapi/operations/[operationId].paths.js similarity index 100% rename from openapi/operations/[operationId].paths.js rename to docs/openapi/operations/[operationId].paths.js diff --git a/openapi/introduction.md b/docs/openapi/overview.md similarity index 98% rename from openapi/introduction.md rename to docs/openapi/overview.md index 6794c17..58e8575 100644 --- a/openapi/introduction.md +++ b/docs/openapi/overview.md @@ -1,7 +1,6 @@ --- title: vitepress-openapi --- - <OAInfo /> <OAServers /> diff --git a/openapi/tags/[tag].md b/docs/openapi/tags/[tag].md similarity index 100% rename from openapi/tags/[tag].md rename to docs/openapi/tags/[tag].md diff --git a/openapi/tags/[tag].paths.js b/docs/openapi/tags/[tag].paths.js similarity index 100% rename from openapi/tags/[tag].paths.js rename to docs/openapi/tags/[tag].paths.js diff --git a/openapi/without-sidebar.md b/docs/openapi/without-sidebar.md similarity index 100% rename from openapi/without-sidebar.md rename to docs/openapi/without-sidebar.md diff --git a/openapi/index.md b/openapi/index.md deleted file mode 100644 index 71c61c5..0000000 --- a/openapi/index.md +++ /dev/null @@ -1,4 +0,0 @@ -# Webhookx OpenAPI -WebhookX comes with an internal RESTful OpenAPI. - -The WebhookX Admin API is documented in [openapi.yml](https://github.com/webhookx-io/webhookx/blob/main/openapi.yml). \ No newline at end of file