From 46012a33d86c148c42742e4c55f1d20cad83e6a0 Mon Sep 17 00:00:00 2001
From: rzmk <30333942+rzmk@users.noreply.github.com>
Date: Tue, 2 Dec 2025 16:32:09 -0500
Subject: [PATCH 01/11] feat(docs): add resource_create
---
docs/content/docs/resource_create.mdx | 20 +++++++++++
docs/lib/openapi.yml | 48 ++++++++++++++++++++++++++-
2 files changed, 67 insertions(+), 1 deletion(-)
create mode 100644 docs/content/docs/resource_create.mdx
diff --git a/docs/content/docs/resource_create.mdx b/docs/content/docs/resource_create.mdx
new file mode 100644
index 0000000..2310e7b
--- /dev/null
+++ b/docs/content/docs/resource_create.mdx
@@ -0,0 +1,20 @@
+---
+title: resource_create
+full: true
+_openapi:
+ method: POST
+ route: resource_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Appends a new resource to a datasets list of resources.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Appends a new resource to a datasets list of resources.
+
+
+
\ No newline at end of file
diff --git a/docs/lib/openapi.yml b/docs/lib/openapi.yml
index 8c10d8f..b927d4d 100644
--- a/docs/lib/openapi.yml
+++ b/docs/lib/openapi.yml
@@ -1622,4 +1622,50 @@ paths:
additionalProperties: true
owner_org:
type: string
- description: "the id of the dataset's owning organization, see `organization_list()` or `organization_list_for_user()` for available values. This parameter can be made optional if the config option [`ckan.auth.create_unowned_dataset`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-create-unowned-dataset) is set to `True`."
\ No newline at end of file
+ description: "the id of the dataset's owning organization, see `organization_list()` or `organization_list_for_user()` for available values. This parameter can be made optional if the config option [`ckan.auth.create_unowned_dataset`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-create-unowned-dataset) is set to `True`."
+ resource_create:
+ post:
+ operationId: resource_create
+ summary: resource_create
+ description: |
+ Appends a new resource to a datasets list of resources.
+ requestBody:
+ required: false
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ package_id:
+ type: string
+ description: id of package that the resource should be added to
+ url:
+ type: string
+ description: url of resource
+ description:
+ type: string
+ format:
+ type: string
+ hash:
+ type: string
+ name:
+ type: string
+ resource_type:
+ type: string
+ mimetype:
+ type: string
+ mimetype_inner:
+ type: string
+ cache_url:
+ type: string
+ size:
+ type: integer
+ created:
+ type: string
+ last_modified:
+ type: string
+ cache_last_updated:
+ type: string
+ upload:
+ type: string
+ format: binary
From 8d0c757fa6c05138f24bee68bf8ddfa40b9cc71e Mon Sep 17 00:00:00 2001
From: rzmk <30333942+rzmk@users.noreply.github.com>
Date: Tue, 2 Dec 2025 18:39:52 -0500
Subject: [PATCH 02/11] feat(docs): add more create endpoints
---
docs/content/docs/group_create.mdx | 31 +++
docs/content/docs/member_create.mdx | 31 +++
.../docs/package_collaborator_create.mdx | 40 +++
.../package_create_default_resource_views.mdx | 30 +++
.../docs/package_relationship_create.mdx | 26 ++
...resource_create_default_resource_views.mdx | 42 ++++
docs/content/docs/resource_view_create.mdx | 20 ++
docs/lib/openapi.yml | 228 ++++++++++++++++++
8 files changed, 448 insertions(+)
create mode 100644 docs/content/docs/group_create.mdx
create mode 100644 docs/content/docs/member_create.mdx
create mode 100644 docs/content/docs/package_collaborator_create.mdx
create mode 100644 docs/content/docs/package_create_default_resource_views.mdx
create mode 100644 docs/content/docs/package_relationship_create.mdx
create mode 100644 docs/content/docs/resource_create_default_resource_views.mdx
create mode 100644 docs/content/docs/resource_view_create.mdx
diff --git a/docs/content/docs/group_create.mdx b/docs/content/docs/group_create.mdx
new file mode 100644
index 0000000..f912a97
--- /dev/null
+++ b/docs/content/docs/group_create.mdx
@@ -0,0 +1,31 @@
+---
+title: group_create
+full: true
+_openapi:
+ method: POST
+ route: group_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Create a new group.
+
+
+ You must be authorized to create groups.
+
+
+ Plugins may change the parameters of this function depending on the
+ value of the `type` parameter, see the `IGroupForm` plugin interface.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Create a new group.
+
+You must be authorized to create groups.
+
+Plugins may change the parameters of this function depending on the value of the `type` parameter, see the `IGroupForm` plugin interface.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/member_create.mdx b/docs/content/docs/member_create.mdx
new file mode 100644
index 0000000..6749f3d
--- /dev/null
+++ b/docs/content/docs/member_create.mdx
@@ -0,0 +1,31 @@
+---
+title: member_create
+full: true
+_openapi:
+ method: POST
+ route: member_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Make an object (e.g. a user, dataset or group) a member of a group.
+
+
+ If the object is already a member of the group then the capacity of
+ the membership will be updated.
+
+
+ You must be authorized to edit the group.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Make an object (e.g. a user, dataset or group) a member of a group.
+
+If the object is already a member of the group then the capacity of the membership will be updated.
+
+You must be authorized to edit the group.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_collaborator_create.mdx b/docs/content/docs/package_collaborator_create.mdx
new file mode 100644
index 0000000..c8795b5
--- /dev/null
+++ b/docs/content/docs/package_collaborator_create.mdx
@@ -0,0 +1,40 @@
+---
+title: package_collaborator_create
+full: true
+_openapi:
+ method: POST
+ route: package_collaborator_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Make a user a collaborator in a dataset.
+
+
+ If the user is already a collaborator in the dataset then their
+ capacity will be updated.
+
+
+ Currently you must be an Admin on the dataset owner organization to
+ manage collaborators.
+
+
+ Note: This action requires the collaborators feature to be enabled
+ with the
+ [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators)
+ configuration option.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Make a user a collaborator in a dataset.
+
+If the user is already a collaborator in the dataset then their capacity will be updated.
+
+Currently you must be an Admin on the dataset owner organization to manage collaborators.
+
+Note: This action requires the collaborators feature to be enabled with the [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators) configuration option.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_create_default_resource_views.mdx b/docs/content/docs/package_create_default_resource_views.mdx
new file mode 100644
index 0000000..e3ffe57
--- /dev/null
+++ b/docs/content/docs/package_create_default_resource_views.mdx
@@ -0,0 +1,30 @@
+---
+title: package_create_default_resource_views
+full: true
+_openapi:
+ method: POST
+ route: package_create_default_resource_views
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Creates the default views on all resources of the provided dataset
+
+
+ By default only view plugins that don't require the resource data to
+ be in the DataStore are called. Passing `create_datastore_views` as
+ `True` will only create views that require data to be in the
+ DataStore. The first case happens when the function is called from
+ `package_create` or `package_update`, the second when it's called from
+ the DataPusher when data was uploaded to the DataStore.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Creates the default views on all resources of the provided dataset
+
+By default only view plugins that don't require the resource data to be in the DataStore are called. Passing `create_datastore_views` as `True` will only create views that require data to be in the DataStore. The first case happens when the function is called from `package_create` or `package_update`, the second when it's called from the DataPusher when data was uploaded to the DataStore.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_relationship_create.mdx b/docs/content/docs/package_relationship_create.mdx
new file mode 100644
index 0000000..45cd290
--- /dev/null
+++ b/docs/content/docs/package_relationship_create.mdx
@@ -0,0 +1,26 @@
+---
+title: package_relationship_create
+full: true
+_openapi:
+ method: POST
+ route: package_relationship_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Create a relationship between two datasets (packages).
+
+
+ You must be authorized to edit both the subject and the object
+ datasets.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Create a relationship between two datasets (packages).
+
+You must be authorized to edit both the subject and the object datasets.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_create_default_resource_views.mdx b/docs/content/docs/resource_create_default_resource_views.mdx
new file mode 100644
index 0000000..ff78fcc
--- /dev/null
+++ b/docs/content/docs/resource_create_default_resource_views.mdx
@@ -0,0 +1,42 @@
+---
+title: resource_create_default_resource_views
+full: true
+_openapi:
+ method: POST
+ route: resource_create_default_resource_views
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Creates the default views (if necessary) on the provided resource
+
+
+ The function will get the plugins for the default views defined in the
+ configuration, and if some were found the `can_view` method of each
+ one of them will be called to determine if a resource view should be
+ created. Resource views extensions get the resource dict and the
+ parent dataset dict.
+
+
+ If the latter is not provided, `package_show` is called to get it.
+
+
+ By default only view plugins that don't require the resource data to
+ be in the DataStore are called. See
+ `ckan.logic.action.create.package_create_default_resource_views()` for
+ details on the `create_datastore_views` parameter.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Creates the default views (if necessary) on the provided resource
+
+The function will get the plugins for the default views defined in the configuration, and if some were found the `can_view` method of each one of them will be called to determine if a resource view should be created. Resource views extensions get the resource dict and the parent dataset dict.
+
+If the latter is not provided, `package_show` is called to get it.
+
+By default only view plugins that don't require the resource data to be in the DataStore are called. See `ckan.logic.action.create.package_create_default_resource_views()` for details on the `create_datastore_views` parameter.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_create.mdx b/docs/content/docs/resource_view_create.mdx
new file mode 100644
index 0000000..9685f06
--- /dev/null
+++ b/docs/content/docs/resource_view_create.mdx
@@ -0,0 +1,20 @@
+---
+title: resource_view_create
+full: true
+_openapi:
+ method: POST
+ route: resource_view_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Creates a new resource view.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Creates a new resource view.
+
+
+
\ No newline at end of file
diff --git a/docs/lib/openapi.yml b/docs/lib/openapi.yml
index b927d4d..16f459d 100644
--- a/docs/lib/openapi.yml
+++ b/docs/lib/openapi.yml
@@ -1669,3 +1669,231 @@ paths:
upload:
type: string
format: binary
+ resource_view_create:
+ post:
+ operationId: resource_view_create
+ summary: resource_view_create
+ description: |
+ Creates a new resource view.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ resource_id:
+ type: string
+ description: id of the resource
+ title:
+ type: string
+ description: the title of the view
+ description:
+ type: string
+ description: a description of the view
+ view_type:
+ type: string
+ description: type of view
+ config:
+ type: string
+ description: (JSON string) options necessary to recreate a view state
+ resource_create_default_resource_views:
+ post:
+ operationId: resource_create_default_resource_views
+ summary: resource_create_default_resource_views
+ description: |
+ Creates the default views (if necessary) on the provided resource
+
+ The function will get the plugins for the default views defined in the configuration, and if some were found the `can_view` method of each one of them will be called to determine if a resource view should be created. Resource views extensions get the resource dict and the parent dataset dict.
+
+ If the latter is not provided, `package_show` is called to get it.
+
+ By default only view plugins that don't require the resource data to be in the DataStore are called. See `ckan.logic.action.create.package_create_default_resource_views()` for details on the `create_datastore_views` parameter.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ resource:
+ type: object
+ description: full resource dict
+ additionalProperties: true
+ package:
+ type: object
+ description: full dataset dict (if not provided, `package_show()` will be called)
+ additionalProperties: true
+ create_datastore_views:
+ type: boolean
+ description: "whether to create views that rely on data being on the DataStore (default: `False`)"
+ package_create_default_resource_views:
+ post:
+ operationId: package_create_default_resource_views
+ summary: package_create_default_resource_views
+ description: |
+ Creates the default views on all resources of the provided dataset
+
+ By default only view plugins that don't require the resource data to be in the DataStore are called. Passing `create_datastore_views` as `True` will only create views that require data to be in the DataStore. The first case happens when the function is called from `package_create` or `package_update`, the second when it's called from the DataPusher when data was uploaded to the DataStore.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ package:
+ type: object
+ description: full dataset dict (i.e. the one obtained calling `package_show()`)
+ additionalProperties: true
+ create_datastore_views:
+ type: boolean
+ description: "whether to create views that rely on data being on the DataStore (default: `False`)"
+ package_relationship_create:
+ post:
+ operationId: package_relationship_create
+ summary: package_relationship_create
+ description: |
+ Create a relationship between two datasets (packages).
+
+ You must be authorized to edit both the subject and the object datasets.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ subject:
+ type: string
+ description: the id or name of the dataset that is the subject of the relationship
+ object:
+ type: string
+ description: the id or name of the dataset that is the object of the relationship
+ type:
+ type: string
+ description: the type of the relationship, one of `'depends_on'`, `'dependency_of'`, `'derives_from'`, `'has_derivation', `'links_to'`, `'linked_from'`, `'child_of'`, or `'parent_of'`
+ comment:
+ type: string
+ description: a comment about the relationship
+ member_create:
+ post:
+ operationId: member_create
+ summary: member_create
+ description: |
+ Make an object (e.g. a user, dataset or group) a member of a group.
+
+ If the object is already a member of the group then the capacity of the membership will be updated.
+
+ You must be authorized to edit the group.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the group to add the object to
+ object:
+ type: string
+ description: the id or name of the object to add
+ object_type:
+ type: string
+ description: the type of the object being added, e.g. `'package'` or `'user'`
+ capacity:
+ type: string
+ description: the capacity of the membership
+ package_collaborator_create:
+ post:
+ operationId: package_collaborator_create
+ summary: package_collaborator_create
+ description: |
+ Make a user a collaborator in a dataset.
+
+ If the user is already a collaborator in the dataset then their capacity will be updated.
+
+ Currently you must be an Admin on the dataset owner organization to manage collaborators.
+
+ Note: This action requires the collaborators feature to be enabled with the [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators) configuration option.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the dataset
+ user_id:
+ type: string
+ description: the id or name of the user to add or edit
+ capacity:
+ type: string
+ description: the capacity or role of the membership. Must be one of "editor" or "member". Additionally if [`ckan.auth.allow_admin_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-admin-collaborators) is set to `True`, "admin" is also allowed.
+ group_create:
+ post:
+ operationId: group_create
+ summary: group_create
+ description: |
+ Create a new group.
+
+ You must be authorized to create groups.
+
+ Plugins may change the parameters of this function depending on the value of the `type` parameter, see the `IGroupForm` plugin interface.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: the name of the group, a string between 2 and 100 characters long, containing only lowercase alphanumeric characters, `-`, and `_`
+ id:
+ type: string
+ description: the id of the group
+ title:
+ type: string
+ description: the title of the group
+ description:
+ type: string
+ description: the description of the group
+ image_url:
+ type: string
+ description: the URL to an image to be displayed on the group's page
+ type:
+ type: string
+ description: "the type of the group (default: `'group'`), `IGroupForm` plugins associate themselves with different group types and provide custom group handling behavior for these types cannot be 'organization'"
+ state:
+ type: string
+ description: "the current state of the group, e.g. `'active'` or `'deleted'`, only active groups show up in search results and other lists of groups, this parameter will be ignored if you are not authorized to change the state of the group (default: `'active'`)"
+ approval_status:
+ type: string
+ extras:
+ type: array
+ description: "the group's extras, extras are arbitrary (key: value) metadata items that can be added to groups, each extra dictionary should have keys `'key'` (a string), `'value'` (a string), and optionally `'deleted'`"
+ items:
+ type: object
+ additionalProperties: true
+ packages:
+ type: array
+ description: "the datasets (packages) that belong to the group, a list of dictionaries each with keys `'name'` (string, the id or name of the dataset) and optionally `'title'` (string, the title of the dataset)"
+ items:
+ type: object
+ additionalProperties: true
+ groups:
+ type: array
+ description: "the groups that belong to the group, a list of dictionaries each with key `'name'` (string, the id or name of the group) and optionally `'capacity'` (string, the capacity in which the group is a member of the group)"
+ items:
+ type: object
+ additionalProperties: true
+ users:
+ type: array
+ description: "the users that belong to the group, a list of dictionaries each with key `'name'` (string, the id or name of the user) and optionally `'capacity'` (string, the capacity in which the user is a member of the group)"
+ items:
+ type: object
+ additionalProperties: true
From 3ce5686dd112b195938b4d5d4f89f6b199b0d59a Mon Sep 17 00:00:00 2001
From: rzmk <30333942+rzmk@users.noreply.github.com>
Date: Tue, 2 Dec 2025 18:54:48 -0500
Subject: [PATCH 03/11] feat(docs): added all create endpoints
---
docs/content/docs/api_token_create.mdx | 27 ++
docs/content/docs/follow_dataset.mdx | 24 ++
docs/content/docs/follow_group.mdx | 24 ++
docs/content/docs/follow_user.mdx | 24 ++
docs/content/docs/group_member_create.mdx | 24 ++
docs/content/docs/organization_create.mdx | 31 ++
.../docs/organization_member_create.mdx | 24 ++
docs/content/docs/tag_create.mdx | 32 ++
docs/content/docs/user_create.mdx | 24 ++
docs/content/docs/user_invite.mdx | 24 ++
docs/content/docs/vocabulary_create.mdx | 24 ++
docs/lib/openapi.yml | 315 ++++++++++++++++++
12 files changed, 597 insertions(+)
create mode 100644 docs/content/docs/api_token_create.mdx
create mode 100644 docs/content/docs/follow_dataset.mdx
create mode 100644 docs/content/docs/follow_group.mdx
create mode 100644 docs/content/docs/follow_user.mdx
create mode 100644 docs/content/docs/group_member_create.mdx
create mode 100644 docs/content/docs/organization_create.mdx
create mode 100644 docs/content/docs/organization_member_create.mdx
create mode 100644 docs/content/docs/tag_create.mdx
create mode 100644 docs/content/docs/user_create.mdx
create mode 100644 docs/content/docs/user_invite.mdx
create mode 100644 docs/content/docs/vocabulary_create.mdx
diff --git a/docs/content/docs/api_token_create.mdx b/docs/content/docs/api_token_create.mdx
new file mode 100644
index 0000000..053e8ae
--- /dev/null
+++ b/docs/content/docs/api_token_create.mdx
@@ -0,0 +1,27 @@
+---
+title: api_token_create
+full: true
+_openapi:
+ method: POST
+ route: api_token_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Create new API Token for current user.
+
+
+ Apart from the `user` and `name` field that are required by default
+ implementation, there may be additional fields registered by
+ extensions.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Create new API Token for current user.
+
+Apart from the `user` and `name` field that are required by default implementation, there may be additional fields registered by extensions.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/follow_dataset.mdx b/docs/content/docs/follow_dataset.mdx
new file mode 100644
index 0000000..042617e
--- /dev/null
+++ b/docs/content/docs/follow_dataset.mdx
@@ -0,0 +1,24 @@
+---
+title: follow_dataset
+full: true
+_openapi:
+ method: POST
+ route: follow_dataset
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Start following a dataset.
+
+ You must provide your API key in the Authorization header.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Start following a dataset.
+
+You must provide your API key in the Authorization header.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/follow_group.mdx b/docs/content/docs/follow_group.mdx
new file mode 100644
index 0000000..50b9a8f
--- /dev/null
+++ b/docs/content/docs/follow_group.mdx
@@ -0,0 +1,24 @@
+---
+title: follow_group
+full: true
+_openapi:
+ method: POST
+ route: follow_group
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Start following a group.
+
+ You must provide your API key in the Authorization header.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Start following a group.
+
+You must provide your API key in the Authorization header.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/follow_user.mdx b/docs/content/docs/follow_user.mdx
new file mode 100644
index 0000000..506bc69
--- /dev/null
+++ b/docs/content/docs/follow_user.mdx
@@ -0,0 +1,24 @@
+---
+title: follow_user
+full: true
+_openapi:
+ method: POST
+ route: follow_user
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Start following another user.
+
+ You must provide your API key in the Authorization header.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Start following another user.
+
+You must provide your API key in the Authorization header.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/group_member_create.mdx b/docs/content/docs/group_member_create.mdx
new file mode 100644
index 0000000..606efd2
--- /dev/null
+++ b/docs/content/docs/group_member_create.mdx
@@ -0,0 +1,24 @@
+---
+title: group_member_create
+full: true
+_openapi:
+ method: POST
+ route: group_member_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Make a user a member of a group.
+
+ You must be authorized to edit the group.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Make a user a member of a group.
+
+You must be authorized to edit the group.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_create.mdx b/docs/content/docs/organization_create.mdx
new file mode 100644
index 0000000..8fe77c3
--- /dev/null
+++ b/docs/content/docs/organization_create.mdx
@@ -0,0 +1,31 @@
+---
+title: organization_create
+full: true
+_openapi:
+ method: POST
+ route: organization_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Create a new organization.
+
+
+ You must be authorized to create organizations.
+
+
+ Plugins may change the parameters of this function depending on the
+ value of the `type` parameter, see the `IGroupForm` plugin interface.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Create a new organization.
+
+You must be authorized to create organizations.
+
+Plugins may change the parameters of this function depending on the value of the `type` parameter, see the `IGroupForm` plugin interface.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_member_create.mdx b/docs/content/docs/organization_member_create.mdx
new file mode 100644
index 0000000..544fdfd
--- /dev/null
+++ b/docs/content/docs/organization_member_create.mdx
@@ -0,0 +1,24 @@
+---
+title: organization_member_create
+full: true
+_openapi:
+ method: POST
+ route: organization_member_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Make a user a member of an organization.
+
+ You must be authorized to edit the organization.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Make a user a member of an organization.
+
+You must be authorized to edit the organization.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/tag_create.mdx b/docs/content/docs/tag_create.mdx
new file mode 100644
index 0000000..7693a65
--- /dev/null
+++ b/docs/content/docs/tag_create.mdx
@@ -0,0 +1,32 @@
+---
+title: tag_create
+full: true
+_openapi:
+ method: POST
+ route: tag_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Create a new vocabulary tag.
+
+
+ You must be a sysadmin to create vocabulary tags.
+
+
+ You can only use this function to create tags that belong to a
+ vocabulary, not to create free tags. (To create a new free tag simply
+ add the tag to a package, e.g. using the `package_update()` function.)
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Create a new vocabulary tag.
+
+You must be a sysadmin to create vocabulary tags.
+
+You can only use this function to create tags that belong to a vocabulary, not to create free tags. (To create a new free tag simply add the tag to a package, e.g. using the `package_update()` function.)
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/user_create.mdx b/docs/content/docs/user_create.mdx
new file mode 100644
index 0000000..fc2cff6
--- /dev/null
+++ b/docs/content/docs/user_create.mdx
@@ -0,0 +1,24 @@
+---
+title: user_create
+full: true
+_openapi:
+ method: POST
+ route: user_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Create a new user.
+
+ You must be authorized to create users.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Create a new user.
+
+You must be authorized to create users.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/user_invite.mdx b/docs/content/docs/user_invite.mdx
new file mode 100644
index 0000000..8e68b62
--- /dev/null
+++ b/docs/content/docs/user_invite.mdx
@@ -0,0 +1,24 @@
+---
+title: user_invite
+full: true
+_openapi:
+ method: POST
+ route: user_invite
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Invite a new user.
+
+ You must be authorized to create group members.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Invite a new user.
+
+You must be authorized to create group members.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/vocabulary_create.mdx b/docs/content/docs/vocabulary_create.mdx
new file mode 100644
index 0000000..2f8718e
--- /dev/null
+++ b/docs/content/docs/vocabulary_create.mdx
@@ -0,0 +1,24 @@
+---
+title: vocabulary_create
+full: true
+_openapi:
+ method: POST
+ route: vocabulary_create
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Create a new tag vocabulary.
+
+ You must a sysadmin to create vocabularies.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Create a new tag vocabulary.
+
+You must a sysadmin to create vocabularies.
+
+
+
\ No newline at end of file
diff --git a/docs/lib/openapi.yml b/docs/lib/openapi.yml
index 16f459d..972c852 100644
--- a/docs/lib/openapi.yml
+++ b/docs/lib/openapi.yml
@@ -1897,3 +1897,318 @@ paths:
items:
type: object
additionalProperties: true
+ organization_create:
+ post:
+ operationId: organization_create
+ summary: organization_create
+ description: |
+ Create a new organization.
+
+ You must be authorized to create organizations.
+
+ Plugins may change the parameters of this function depending on the value of the `type` parameter, see the `IGroupForm` plugin interface.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: the name of the organization, a string between 2 and 100 characters long, containing only lowercase alphanumeric characters, `-`, and `_`
+ id:
+ type: string
+ description: the id of the organization
+ title:
+ type: string
+ description: the title of the organization
+ description:
+ type: string
+ description: the description of the organization
+ image_url:
+ type: string
+ description: the URL to an image to be displayed on the organization's page
+ state:
+ type: string
+ description: "the current state of the organization, e.g. `'active'` or `'deleted'`, only active organization show up in search results and other lists of organization, this parameter will be ignored if you are not authorized to change the state of the organization (default: `'active'`)"
+ approval_status:
+ type: string
+ extras:
+ type: array
+ description: "the organization's extras, extras are arbitrary (key: value) metadata items that can be added to organization, each extra dictionary should have keys `'key'` (a string), `'value'` (a string), and optionally `'deleted'`"
+ items:
+ type: object
+ additionalProperties: true
+ packages:
+ type: array
+ description: "the datasets (packages) that belong to the organization, a list of dictionaries each with keys `'name'` (string, the id or name of the dataset) and optionally `'title'` (string, the title of the dataset)"
+ items:
+ type: object
+ additionalProperties: true
+ users:
+ type: array
+ description: "the users that belong to the organization, a list of dictionaries each with key `'name'` (string, the id or name of the user) and optionally `'capacity'` (string, the capacity in which the user is a member of the organization)"
+ items:
+ type: object
+ additionalProperties: true
+ user_create:
+ post:
+ operationId: user_create
+ summary: user_create
+ description: |
+ Create a new user.
+
+ You must be authorized to create users.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: the name of the new user, a string between 2 and 100 characters long, containing only lowercase alphanumeric characters, `-`, and `_`
+ email:
+ type: string
+ description: the email address for the new user
+ password:
+ type: string
+ description: the password of the new user, a string of at least 4 characters
+ id:
+ type: string
+ description: the id of the new user
+ fullname:
+ type: string
+ description: the full name of the new user
+ about:
+ type: string
+ description: a description of the new user
+ image_url:
+ type: string
+ # Original docs say "group's page" which should be fixed
+ description: the URL to an image to be displayed on the user's page
+ plugin_extras:
+ type: object
+ description: |
+ private extra user data belonging to plugins. Only sysadmin users may set this value. It should be a dict that can be dumped into JSON, and plugins should namespace their extras with the plugin name to avoid collisions with other plugins, e.g.:
+
+ ```json
+ {
+ "name": "test_user",
+ "email": "test@example.com",
+ "plugin_extras": {
+ "my_plugin": {
+ "private_extra": 1
+ },
+ "another_plugin": {
+ "another_extra": True
+ }
+ }
+ }
+ ```
+ additionalProperties: true
+ with_apitoken:
+ type: boolean
+ description: whether to create an API token for the user
+ user_invite:
+ post:
+ operationId: user_invite
+ summary: user_invite
+ description: |
+ Invite a new user.
+
+ You must be authorized to create group members.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ email:
+ type: string
+ description: the email of the user to be invited to the group
+ group_id:
+ type: string
+ description: the id or name of the group
+ role:
+ type: string
+ description: role of the user in the group. One of `member`, `editor`, or `admin`
+ vocabulary_create:
+ post:
+ operationId: vocabulary_create
+ summary: vocabulary_create
+ description: |
+ Create a new tag vocabulary.
+
+ You must a sysadmin to create vocabularies.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: the name of the new vocabulary, e.g. `'Genre'`
+ tags:
+ type: array
+ description: the new tags to add to the new vocabulary, for the format of tag dictionaries see `tag_create()`
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ description: "the name for the new tag, a string between 2 and 100 characters long containing only alphanumeric characters, spaces and the characters `-`, `_`, and `.`, e.g. `'Fruits'`"
+ vocabulary_id:
+ type: string
+ description: "the id of the vocabulary that the new tag should be added to, e.g. the id of vocabulary `'Genre'`"
+ tag_create:
+ post:
+ operationId: tag_create
+ summary: tag_create
+ description: |
+ Create a new vocabulary tag.
+
+ You must be a sysadmin to create vocabulary tags.
+
+ You can only use this function to create tags that belong to a vocabulary, not to create free tags. (To create a new free tag simply add the tag to a package, e.g. using the `package_update()` function.)
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: "the name for the new tag, a string between 2 and 100 characters long containing only alphanumeric characters, spaces and the characters `-`, `_`, and `.`, e.g. `'Fruits'`"
+ vocabulary_id:
+ type: string
+ description: "the id of the vocabulary that the new tag should be added to, e.g. the id of vocabulary `'Genre'`"
+ follow_user:
+ post:
+ operationId: follow_user
+ summary: follow_user
+ description: |
+ Start following another user.
+
+ You must provide your API key in the Authorization header.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: "the id or name of the user to follow, e.g. `'joeuser'`"
+ follow_dataset:
+ post:
+ operationId: follow_dataset
+ summary: follow_dataset
+ description: |
+ Start following a dataset.
+
+ You must provide your API key in the Authorization header.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: "the id or name of the dataset to follow, e.g. `'inventory'`"
+ group_member_create:
+ post:
+ operationId: group_member_create
+ summary: group_member_create
+ description: |
+ Make a user a member of a group.
+
+ You must be authorized to edit the group.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the group
+ username:
+ type: string
+ description: name or id of the user to be made member of the group
+ role:
+ type: string
+ description: "role of the user in the group. One of `member`, `editor`, or `admin`"
+ organization_member_create:
+ post:
+ operationId: organization_member_create
+ summary: organization_member_create
+ description: |
+ Make a user a member of an organization.
+
+ You must be authorized to edit the organization.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the organization
+ username:
+ type: string
+ description: name or id of the user to be made member of the organization
+ role:
+ type: string
+ description: "role of the user in the organization. One of `member`, `editor`, or `admin`"
+ follow_group:
+ post:
+ operationId: follow_group
+ summary: follow_group
+ description: |
+ Start following a group.
+
+ You must provide your API key in the Authorization header.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: "the id or name of the group to follow, e.g. `'roger'`"
+ api_token_create:
+ post:
+ operationId: api_token_create
+ summary: api_token_create
+ description: |
+ Create new API Token for current user.
+
+ Apart from the `user` and `name` field that are required by default implementation, there may be additional fields registered by extensions.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ user:
+ type: string
+ description: name or id of the user who owns new API Token
+ name:
+ type: string
+ description: distinctive name for API Token
From 4737c5462d23759b04ad3dfda898d728b7a09e0c Mon Sep 17 00:00:00 2001
From: rzmk <30333942+rzmk@users.noreply.github.com>
Date: Tue, 2 Dec 2025 18:58:48 -0500
Subject: [PATCH 04/11] build(docs): update dependencies
---
docs/bun.lock | 203 ++++++++++++++++++++++++-------------------
docs/next.config.mjs | 3 +-
docs/package.json | 18 ++--
3 files changed, 127 insertions(+), 97 deletions(-)
diff --git a/docs/bun.lock b/docs/bun.lock
index aac9373..df770c7 100644
--- a/docs/bun.lock
+++ b/docs/bun.lock
@@ -1,21 +1,22 @@
{
"lockfileVersion": 1,
+ "configVersion": 0,
"workspaces": {
"": {
"name": "docs",
"dependencies": {
"fumadocs-core": "16.0.2",
- "fumadocs-mdx": "^13.0.0",
- "fumadocs-openapi": "^9.6.3",
+ "fumadocs-mdx": "^13.0.2",
+ "fumadocs-openapi": "^9.7.1",
"fumadocs-ui": "16.0.2",
"lucide-react": "^0.546.0",
- "next": "^16.0.0",
+ "next": "^16.0.1",
"react": "^19.2.0",
"react-dom": "^19.2.0",
- "shiki": "^3.13.0",
+ "shiki": "^3.14.0",
},
"devDependencies": {
- "@biomejs/biome": "^2.3.0",
+ "@biomejs/biome": "^2.3.2",
"@tailwindcss/postcss": "^4.1.16",
"@types/mdx": "^2.0.13",
"@types/node": "24.9.1",
@@ -33,77 +34,77 @@
"@apidevtools/json-schema-ref-parser": ["@apidevtools/json-schema-ref-parser@11.9.3", "", { "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", "js-yaml": "^4.1.0" } }, "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ=="],
- "@biomejs/biome": ["@biomejs/biome@2.3.2", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.2", "@biomejs/cli-darwin-x64": "2.3.2", "@biomejs/cli-linux-arm64": "2.3.2", "@biomejs/cli-linux-arm64-musl": "2.3.2", "@biomejs/cli-linux-x64": "2.3.2", "@biomejs/cli-linux-x64-musl": "2.3.2", "@biomejs/cli-win32-arm64": "2.3.2", "@biomejs/cli-win32-x64": "2.3.2" }, "bin": { "biome": "bin/biome" } }, "sha512-8e9tzamuDycx7fdrcJ/F/GDZ8SYukc5ud6tDicjjFqURKYFSWMl0H0iXNXZEGmcmNUmABgGuHThPykcM41INgg=="],
+ "@biomejs/biome": ["@biomejs/biome@2.3.8", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.8", "@biomejs/cli-darwin-x64": "2.3.8", "@biomejs/cli-linux-arm64": "2.3.8", "@biomejs/cli-linux-arm64-musl": "2.3.8", "@biomejs/cli-linux-x64": "2.3.8", "@biomejs/cli-linux-x64-musl": "2.3.8", "@biomejs/cli-win32-arm64": "2.3.8", "@biomejs/cli-win32-x64": "2.3.8" }, "bin": { "biome": "bin/biome" } }, "sha512-Qjsgoe6FEBxWAUzwFGFrB+1+M8y/y5kwmg5CHac+GSVOdmOIqsAiXM5QMVGZJ1eCUCLlPZtq4aFAQ0eawEUuUA=="],
- "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-4LECm4kc3If0JISai4c3KWQzukoUdpxy4fRzlrPcrdMSRFksR9ZoXK7JBcPuLBmd2SoT4/d7CQS33VnZpgBjew=="],
+ "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.8", "", { "os": "darwin", "cpu": "arm64" }, "sha512-HM4Zg9CGQ3txTPflxD19n8MFPrmUAjaC7PQdLkugeeC0cQ+PiVrd7i09gaBS/11QKsTDBJhVg85CEIK9f50Qww=="],
- "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-jNMnfwHT4N3wi+ypRfMTjLGnDmKYGzxVr1EYAPBcauRcDnICFXN81wD6wxJcSUrLynoyyYCdfW6vJHS/IAoTDA=="],
+ "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.8", "", { "os": "darwin", "cpu": "x64" }, "sha512-lUDQ03D7y/qEao7RgdjWVGCu+BLYadhKTm40HkpJIi6kn8LSv5PAwRlew/DmwP4YZ9ke9XXoTIQDO1vAnbRZlA=="],
- "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-amnqvk+gWybbQleRRq8TMe0rIv7GHss8mFJEaGuEZYWg1Tw14YKOkeo8h6pf1c+d3qR+JU4iT9KXnBKGON4klw=="],
+ "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-Uo1OJnIkJgSgF+USx970fsM/drtPcQ39I+JO+Fjsaa9ZdCN1oysQmy6oAGbyESlouz+rzEckLTF6DS7cWse95g=="],
- "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-2Zz4usDG1GTTPQnliIeNx6eVGGP2ry5vE/v39nT73a3cKN6t5H5XxjcEoZZh62uVZvED7hXXikclvI64vZkYqw=="],
+ "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-PShR4mM0sjksUMyxbyPNMxoKFPVF48fU8Qe8Sfx6w6F42verbwRLbz+QiKNiDPRJwUoMG1nPM50OBL3aOnTevA=="],
- "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-8BG/vRAhFz1pmuyd24FQPhNeueLqPtwvZk6yblABY2gzL2H8fLQAF/Z2OPIc+BPIVPld+8cSiKY/KFh6k81xfA=="],
+ "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.8", "", { "os": "linux", "cpu": "x64" }, "sha512-QDPMD5bQz6qOVb3kiBui0zKZXASLo0NIQ9JVJio5RveBEFgDgsvJFUvZIbMbUZT3T00M/1wdzwWXk4GIh0KaAw=="],
- "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-gzB19MpRdTuOuLtPpFBGrV3Lq424gHyq2lFj8wfX9tvLMLdmA/R9C7k/mqBp/spcbWuHeIEKgEs3RviOPcWGBA=="],
+ "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.8", "", { "os": "linux", "cpu": "x64" }, "sha512-YGLkqU91r1276uwSjiUD/xaVikdxgV1QpsicT0bIA1TaieM6E5ibMZeSyjQ/izBn4tKQthUSsVZacmoJfa3pDA=="],
- "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-lCruqQlfWjhMlOdyf5pDHOxoNm4WoyY2vZ4YN33/nuZBRstVDuqPPjS0yBkbUlLEte11FbpW+wWSlfnZfSIZvg=="],
+ "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.8", "", { "os": "win32", "cpu": "arm64" }, "sha512-H4IoCHvL1fXKDrTALeTKMiE7GGWFAraDwBYFquE/L/5r1927Te0mYIGseXi4F+lrrwhSWbSGt5qPFswNoBaCxg=="],
- "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.2", "", { "os": "win32", "cpu": "x64" }, "sha512-6Ee9P26DTb4D8sN9nXxgbi9Dw5vSOfH98M7UlmkjKB2vtUbrRqCbZiNfryGiwnPIpd6YUoTl7rLVD2/x1CyEHQ=="],
+ "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.8", "", { "os": "win32", "cpu": "x64" }, "sha512-RguzimPoZWtBapfKhKjcWXBVI91tiSprqdBYu7tWhgN8pKRZhw24rFeNZTNf6UiBfjCYCi9eFQs/JzJZIhuK4w=="],
"@emnapi/runtime": ["@emnapi/runtime@1.5.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ=="],
- "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.11", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg=="],
+ "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="],
- "@esbuild/android-arm": ["@esbuild/android-arm@0.25.11", "", { "os": "android", "cpu": "arm" }, "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg=="],
+ "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="],
- "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.11", "", { "os": "android", "cpu": "arm64" }, "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ=="],
+ "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="],
- "@esbuild/android-x64": ["@esbuild/android-x64@0.25.11", "", { "os": "android", "cpu": "x64" }, "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g=="],
+ "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="],
- "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.11", "", { "os": "darwin", "cpu": "arm64" }, "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w=="],
+ "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="],
- "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.11", "", { "os": "darwin", "cpu": "x64" }, "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ=="],
+ "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="],
- "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.11", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA=="],
+ "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="],
- "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.11", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw=="],
+ "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="],
- "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.11", "", { "os": "linux", "cpu": "arm" }, "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw=="],
+ "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="],
- "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.11", "", { "os": "linux", "cpu": "arm64" }, "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA=="],
+ "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="],
- "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.11", "", { "os": "linux", "cpu": "ia32" }, "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw=="],
+ "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="],
- "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw=="],
+ "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="],
- "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ=="],
+ "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="],
- "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.11", "", { "os": "linux", "cpu": "ppc64" }, "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw=="],
+ "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="],
- "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww=="],
+ "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="],
- "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.11", "", { "os": "linux", "cpu": "s390x" }, "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw=="],
+ "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="],
- "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.11", "", { "os": "linux", "cpu": "x64" }, "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ=="],
+ "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="],
- "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.11", "", { "os": "none", "cpu": "arm64" }, "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg=="],
+ "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="],
- "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.11", "", { "os": "none", "cpu": "x64" }, "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A=="],
+ "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="],
- "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.11", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg=="],
+ "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="],
- "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.11", "", { "os": "openbsd", "cpu": "x64" }, "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw=="],
+ "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="],
- "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.11", "", { "os": "none", "cpu": "arm64" }, "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ=="],
+ "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="],
- "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.11", "", { "os": "sunos", "cpu": "x64" }, "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA=="],
+ "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="],
- "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.11", "", { "os": "win32", "cpu": "arm64" }, "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q=="],
+ "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="],
- "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.11", "", { "os": "win32", "cpu": "ia32" }, "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA=="],
+ "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="],
- "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.11", "", { "os": "win32", "cpu": "x64" }, "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA=="],
+ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="],
"@floating-ui/core": ["@floating-ui/core@1.7.3", "", { "dependencies": { "@floating-ui/utils": "^0.2.10" } }, "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w=="],
@@ -177,23 +178,23 @@
"@mdx-js/mdx": ["@mdx-js/mdx@3.1.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ=="],
- "@next/env": ["@next/env@16.0.1", "", {}, "sha512-LFvlK0TG2L3fEOX77OC35KowL8D7DlFF45C0OvKMC4hy8c/md1RC4UMNDlUGJqfCoCS2VWrZ4dSE6OjaX5+8mw=="],
+ "@next/env": ["@next/env@16.0.6", "", {}, "sha512-PFTK/G/vM3UJwK5XDYMFOqt8QW42mmhSgdKDapOlCqBUAOfJN2dyOnASR/xUR/JRrro0pLohh/zOJ77xUQWQAg=="],
- "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.0.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-R0YxRp6/4W7yG1nKbfu41bp3d96a0EalonQXiMe+1H9GTHfKxGNCGFNWUho18avRBPsO8T3RmdWuzmfurlQPbg=="],
+ "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.0.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-AGzKiPlDiui+9JcPRHLI4V9WFTTcKukhJTfK9qu3e0tz+Y/88B7vo5yZoO7UaikplJEHORzG3QaBFQfkjhnL0Q=="],
- "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.0.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-kETZBocRux3xITiZtOtVoVvXyQLB7VBxN7L6EPqgI5paZiUlnsgYv4q8diTNYeHmF9EiehydOBo20lTttCbHAg=="],
+ "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.0.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-LlLLNrK9WCIUkq2GciWDcquXYIf7vLxX8XE49gz7EncssZGL1vlHwgmURiJsUZAvk0HM1a8qb1ABDezsjAE/jw=="],
- "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.0.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-hWg3BtsxQuSKhfe0LunJoqxjO4NEpBmKkE+P2Sroos7yB//OOX3jD5ISP2wv8QdUwtRehMdwYz6VB50mY6hqAg=="],
+ "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.0.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-r04NzmLSGGfG8EPXKVK72N5zDNnq9pa9el78LhdtqIC3zqKh74QfKHnk24DoK4PEs6eY7sIK/CnNpt30oc59kg=="],
- "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.0.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-UPnOvYg+fjAhP3b1iQStcYPWeBFRLrugEyK/lDKGk7kLNua8t5/DvDbAEFotfV1YfcOY6bru76qN9qnjLoyHCQ=="],
+ "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.0.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-hfB/QV0hA7lbD1OJxp52wVDlpffUMfyxUB5ysZbb/pBC5iuhyLcEKSVQo56PFUUmUQzbMsAtUu6k2Gh9bBtWXA=="],
- "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.0.1", "", { "os": "linux", "cpu": "x64" }, "sha512-Et81SdWkcRqAJziIgFtsFyJizHoWne4fzJkvjd6V4wEkWTB4MX6J0uByUb0peiJQ4WeAt6GGmMszE5KrXK6WKg=="],
+ "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.0.6", "", { "os": "linux", "cpu": "x64" }, "sha512-PZJushBgfvKhJBy01yXMdgL+l5XKr7uSn5jhOQXQXiH3iPT2M9iG64yHpPNGIKitKrHJInwmhPVGogZBAJOCPw=="],
- "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.0.1", "", { "os": "linux", "cpu": "x64" }, "sha512-qBbgYEBRrC1egcG03FZaVfVxrJm8wBl7vr8UFKplnxNRprctdP26xEv9nJ07Ggq4y1adwa0nz2mz83CELY7N6Q=="],
+ "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.0.6", "", { "os": "linux", "cpu": "x64" }, "sha512-LqY76IojrH9yS5fyATjLzlOIOgwyzBuNRqXwVxcGfZ58DWNQSyfnLGlfF6shAEqjwlDNLh4Z+P0rnOI87Y9jEw=="],
- "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.0.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-cPuBjYP6I699/RdbHJonb3BiRNEDm5CKEBuJ6SD8k3oLam2fDRMKAvmrli4QMDgT2ixyRJ0+DTkiODbIQhRkeQ=="],
+ "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.0.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-eIfSNNqAkj0tqKRf0u7BVjqylJCuabSrxnpSENY3YKApqwDMeAqYPmnOwmVe6DDl3Lvkbe7cJAyP6i9hQ5PmmQ=="],
- "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.0.1", "", { "os": "win32", "cpu": "x64" }, "sha512-XeEUJsE4JYtfrXe/LaJn3z1pD19fK0Q6Er8Qoufi+HqvdO4LEPyCxLUt4rxA+4RfYo6S9gMlmzCMU2F+AatFqQ=="],
+ "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.0.6", "", { "os": "win32", "cpu": "x64" }, "sha512-QGs18P4OKdK9y2F3Th42+KGnwsc2iaThOe6jxQgP62kslUU4W+g6AzI6bdIn/pslhSfxjAMU5SjakfT5Fyo/xA=="],
"@orama/orama": ["@orama/orama@3.1.16", "", {}, "sha512-scSmQBD8eANlMUOglxHrN1JdSW8tDghsPuS83otqealBiIeMukCQMOf/wc0JJjDXomqwNdEQFLXLGHrU6PGxuA=="],
@@ -277,21 +278,21 @@
"@scalar/openapi-upgrader": ["@scalar/openapi-upgrader@0.1.3", "", { "dependencies": { "@scalar/openapi-types": "0.5.0" } }, "sha512-iROhcgy3vge6zsviPtoTLHale0nYt1PLhuMmJweQwJ0U23ZYyYhV5xgHtAd0OBEXuqT6rjYbJFvKOJZmJOwpNQ=="],
- "@shikijs/core": ["@shikijs/core@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw=="],
+ "@shikijs/core": ["@shikijs/core@3.18.0", "", { "dependencies": { "@shikijs/types": "3.18.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qxBrX2G4ctCgpvFNWMhFvbBnsWTOmwJgSqywQm0gtamp/OXSaHBjtrBomNIY5WJGXgGCPPvI7O+Y9pH/dr/p0w=="],
- "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ=="],
+ "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.18.0", "", { "dependencies": { "@shikijs/types": "3.18.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.4" } }, "sha512-S87JGGXasJH1Oe9oFTqDWGcTUX+xMlf3Jzn4XbXoa6MmB19o0B8kVRd7vmhNvSkE/WuK2GTmB0I2GY526w4KxQ=="],
- "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug=="],
+ "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.18.0", "", { "dependencies": { "@shikijs/types": "3.18.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-15+O2iy+nYU/IdiBIExXuK0JJABa/8tdnRDODBmLhdygQ43aCuipN5N9vTfS8jvkMByHMR09b5jtX2la0CCoOA=="],
- "@shikijs/langs": ["@shikijs/langs@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg=="],
+ "@shikijs/langs": ["@shikijs/langs@3.18.0", "", { "dependencies": { "@shikijs/types": "3.18.0" } }, "sha512-Deq7ZoYBtimN0M8pD5RU5TKz7DhUSTPtQOBuJpMxPDDJ+MJ7nT90DEmhDM2V0Nzp6DjfTAd+Z7ibpzr8arWqiA=="],
"@shikijs/rehype": ["@shikijs/rehype@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", "shiki": "3.13.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" } }, "sha512-dxvB5gXEpiTI3beGwOPEwxFxQNmUWM4cwOWbvUmL6DnQJGl18/+cCjVHZK2OnasmU0v7SvM39Zh3iliWdwfBDA=="],
- "@shikijs/themes": ["@shikijs/themes@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA=="],
+ "@shikijs/themes": ["@shikijs/themes@3.18.0", "", { "dependencies": { "@shikijs/types": "3.18.0" } }, "sha512-wzg6vNniXC5J4ChNBJJIZFTWxmrERJMWknehmM++0OAKJqZ41WpnO7PmPOumvMsUaL1SC08Nb/JVdaJd2aTsZg=="],
"@shikijs/transformers": ["@shikijs/transformers@3.13.0", "", { "dependencies": { "@shikijs/core": "3.13.0", "@shikijs/types": "3.13.0" } }, "sha512-833lcuVzcRiG+fXvgslWsM2f4gHpjEgui1ipIknSizRuTgMkNZupiXE5/TVJ6eSYfhNBFhBZKkReKWO2GgYmqA=="],
- "@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="],
+ "@shikijs/types": ["@shikijs/types@3.18.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-YLmpuroH06TpvqRXKR0YqlI0nQ56c8+BO/m9A9ht36WRdxmML4ivUsnpXuJU7PiClLRD2M66ilY2YJ0KE+8q7A=="],
"@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="],
@@ -299,35 +300,35 @@
"@swc/helpers": ["@swc/helpers@0.5.15", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g=="],
- "@tailwindcss/node": ["@tailwindcss/node@4.1.16", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.19", "source-map-js": "^1.2.1", "tailwindcss": "4.1.16" } }, "sha512-BX5iaSsloNuvKNHRN3k2RcCuTEgASTo77mofW0vmeHkfrDWaoFAFvNHpEgtu0eqyypcyiBkDWzSMxJhp3AUVcw=="],
+ "@tailwindcss/node": ["@tailwindcss/node@4.1.17", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.1.17" } }, "sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg=="],
- "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.16", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.16", "@tailwindcss/oxide-darwin-arm64": "4.1.16", "@tailwindcss/oxide-darwin-x64": "4.1.16", "@tailwindcss/oxide-freebsd-x64": "4.1.16", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.16", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.16", "@tailwindcss/oxide-linux-arm64-musl": "4.1.16", "@tailwindcss/oxide-linux-x64-gnu": "4.1.16", "@tailwindcss/oxide-linux-x64-musl": "4.1.16", "@tailwindcss/oxide-wasm32-wasi": "4.1.16", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.16", "@tailwindcss/oxide-win32-x64-msvc": "4.1.16" } }, "sha512-2OSv52FRuhdlgyOQqgtQHuCgXnS8nFSYRp2tJ+4WZXKgTxqPy7SMSls8c3mPT5pkZ17SBToGM5LHEJBO7miEdg=="],
+ "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.17", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.17", "@tailwindcss/oxide-darwin-arm64": "4.1.17", "@tailwindcss/oxide-darwin-x64": "4.1.17", "@tailwindcss/oxide-freebsd-x64": "4.1.17", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.17", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.17", "@tailwindcss/oxide-linux-arm64-musl": "4.1.17", "@tailwindcss/oxide-linux-x64-gnu": "4.1.17", "@tailwindcss/oxide-linux-x64-musl": "4.1.17", "@tailwindcss/oxide-wasm32-wasi": "4.1.17", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.17", "@tailwindcss/oxide-win32-x64-msvc": "4.1.17" } }, "sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA=="],
- "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.16", "", { "os": "android", "cpu": "arm64" }, "sha512-8+ctzkjHgwDJ5caq9IqRSgsP70xhdhJvm+oueS/yhD5ixLhqTw9fSL1OurzMUhBwE5zK26FXLCz2f/RtkISqHA=="],
+ "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.17", "", { "os": "android", "cpu": "arm64" }, "sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ=="],
- "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.16", "", { "os": "darwin", "cpu": "arm64" }, "sha512-C3oZy5042v2FOALBZtY0JTDnGNdS6w7DxL/odvSny17ORUnaRKhyTse8xYi3yKGyfnTUOdavRCdmc8QqJYwFKA=="],
+ "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.17", "", { "os": "darwin", "cpu": "arm64" }, "sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg=="],
- "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.16", "", { "os": "darwin", "cpu": "x64" }, "sha512-vjrl/1Ub9+JwU6BP0emgipGjowzYZMjbWCDqwA2Z4vCa+HBSpP4v6U2ddejcHsolsYxwL5r4bPNoamlV0xDdLg=="],
+ "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.17", "", { "os": "darwin", "cpu": "x64" }, "sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog=="],
- "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.16", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TSMpPYpQLm+aR1wW5rKuUuEruc/oOX3C7H0BTnPDn7W/eMw8W+MRMpiypKMkXZfwH8wqPIRKppuZoedTtNj2tg=="],
+ "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.17", "", { "os": "freebsd", "cpu": "x64" }, "sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g=="],
- "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.16", "", { "os": "linux", "cpu": "arm" }, "sha512-p0GGfRg/w0sdsFKBjMYvvKIiKy/LNWLWgV/plR4lUgrsxFAoQBFrXkZ4C0w8IOXfslB9vHK/JGASWD2IefIpvw=="],
+ "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17", "", { "os": "linux", "cpu": "arm" }, "sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ=="],
- "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.16", "", { "os": "linux", "cpu": "arm64" }, "sha512-DoixyMmTNO19rwRPdqviTrG1rYzpxgyYJl8RgQvdAQUzxC1ToLRqtNJpU/ATURSKgIg6uerPw2feW0aS8SNr/w=="],
+ "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.17", "", { "os": "linux", "cpu": "arm64" }, "sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ=="],
- "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.16", "", { "os": "linux", "cpu": "arm64" }, "sha512-H81UXMa9hJhWhaAUca6bU2wm5RRFpuHImrwXBUvPbYb+3jo32I9VIwpOX6hms0fPmA6f2pGVlybO6qU8pF4fzQ=="],
+ "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.17", "", { "os": "linux", "cpu": "arm64" }, "sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg=="],
- "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.16", "", { "os": "linux", "cpu": "x64" }, "sha512-ZGHQxDtFC2/ruo7t99Qo2TTIvOERULPl5l0K1g0oK6b5PGqjYMga+FcY1wIUnrUxY56h28FxybtDEla+ICOyew=="],
+ "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.17", "", { "os": "linux", "cpu": "x64" }, "sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ=="],
- "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.16", "", { "os": "linux", "cpu": "x64" }, "sha512-Oi1tAaa0rcKf1Og9MzKeINZzMLPbhxvm7rno5/zuP1WYmpiG0bEHq4AcRUiG2165/WUzvxkW4XDYCscZWbTLZw=="],
+ "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.17", "", { "os": "linux", "cpu": "x64" }, "sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ=="],
- "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.16", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.0.7", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.4.0" }, "cpu": "none" }, "sha512-B01u/b8LteGRwucIBmCQ07FVXLzImWESAIMcUU6nvFt/tYsQ6IHz8DmZ5KtvmwxD+iTYBtM1xwoGXswnlu9v0Q=="],
+ "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.17", "", { "dependencies": { "@emnapi/core": "^1.6.0", "@emnapi/runtime": "^1.6.0", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.0.7", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.4.0" }, "cpu": "none" }, "sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg=="],
- "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.16", "", { "os": "win32", "cpu": "arm64" }, "sha512-zX+Q8sSkGj6HKRTMJXuPvOcP8XfYON24zJBRPlszcH1Np7xuHXhWn8qfFjIujVzvH3BHU+16jBXwgpl20i+v9A=="],
+ "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.17", "", { "os": "win32", "cpu": "arm64" }, "sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A=="],
- "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.16", "", { "os": "win32", "cpu": "x64" }, "sha512-m5dDFJUEejbFqP+UXVstd4W/wnxA4F61q8SoL+mqTypId2T2ZpuxosNSgowiCnLp2+Z+rivdU0AqpfgiD7yCBg=="],
+ "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.17", "", { "os": "win32", "cpu": "x64" }, "sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw=="],
- "@tailwindcss/postcss": ["@tailwindcss/postcss@4.1.16", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.1.16", "@tailwindcss/oxide": "4.1.16", "postcss": "^8.4.41", "tailwindcss": "4.1.16" } }, "sha512-Qn3SFGPXYQMKR/UtqS+dqvPrzEeBZHrFA92maT4zijCVggdsXnDBMsPFJo1eArX3J+O+Gi+8pV4PkqjLCNBk3A=="],
+ "@tailwindcss/postcss": ["@tailwindcss/postcss@4.1.17", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.1.17", "@tailwindcss/oxide": "4.1.17", "postcss": "^8.4.41", "tailwindcss": "4.1.17" } }, "sha512-+nKl9N9mN5uJ+M7dBOOCzINw94MPstNR/GtIhz1fpZysxL/4a+No64jCBD6CPN+bIHWFx3KWuu8XJRrj/572Dw=="],
"@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="],
@@ -347,9 +348,9 @@
"@types/node": ["@types/node@24.9.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg=="],
- "@types/react": ["@types/react@19.2.2", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA=="],
+ "@types/react": ["@types/react@19.2.7", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg=="],
- "@types/react-dom": ["@types/react-dom@19.2.2", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-9KQPoO6mZCi7jcIStSnlOWn2nEF3mNmyr3rIAsGnAbQKYbRLyqmeSc39EVgtxXVia+LMT8j3knZLAZAh+xLmrw=="],
+ "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="],
"@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="],
@@ -401,7 +402,7 @@
"cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="],
- "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
+ "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="],
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
@@ -421,7 +422,7 @@
"esast-util-from-js": ["esast-util-from-js@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", "esast-util-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw=="],
- "esbuild": ["esbuild@0.25.11", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.11", "@esbuild/android-arm": "0.25.11", "@esbuild/android-arm64": "0.25.11", "@esbuild/android-x64": "0.25.11", "@esbuild/darwin-arm64": "0.25.11", "@esbuild/darwin-x64": "0.25.11", "@esbuild/freebsd-arm64": "0.25.11", "@esbuild/freebsd-x64": "0.25.11", "@esbuild/linux-arm": "0.25.11", "@esbuild/linux-arm64": "0.25.11", "@esbuild/linux-ia32": "0.25.11", "@esbuild/linux-loong64": "0.25.11", "@esbuild/linux-mips64el": "0.25.11", "@esbuild/linux-ppc64": "0.25.11", "@esbuild/linux-riscv64": "0.25.11", "@esbuild/linux-s390x": "0.25.11", "@esbuild/linux-x64": "0.25.11", "@esbuild/netbsd-arm64": "0.25.11", "@esbuild/netbsd-x64": "0.25.11", "@esbuild/openbsd-arm64": "0.25.11", "@esbuild/openbsd-x64": "0.25.11", "@esbuild/openharmony-arm64": "0.25.11", "@esbuild/sunos-x64": "0.25.11", "@esbuild/win32-arm64": "0.25.11", "@esbuild/win32-ia32": "0.25.11", "@esbuild/win32-x64": "0.25.11" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q=="],
+ "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="],
"escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="],
@@ -437,7 +438,7 @@
"estree-util-to-js": ["estree-util-to-js@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", "source-map": "^0.7.0" } }, "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg=="],
- "estree-util-value-to-estree": ["estree-util-value-to-estree@3.4.1", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-E4fEc8KLhDXnbyDa5XrbdT9PbgSMt0AGZPFUsGFok8N2Q7DTO+F6xAFJjIdw71EkidRg186I1mQCKzZ1ZbEsCw=="],
+ "estree-util-value-to-estree": ["estree-util-value-to-estree@3.5.0", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ=="],
"estree-util-visit": ["estree-util-visit@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" } }, "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww=="],
@@ -459,9 +460,9 @@
"fumadocs-core": ["fumadocs-core@16.0.2", "", { "dependencies": { "@formatjs/intl-localematcher": "^0.6.2", "@orama/orama": "^3.1.16", "@shikijs/rehype": "^3.13.0", "@shikijs/transformers": "^3.13.0", "github-slugger": "^2.0.0", "hast-util-to-estree": "^3.1.3", "hast-util-to-jsx-runtime": "^2.3.6", "image-size": "^2.0.2", "negotiator": "^1.0.0", "npm-to-yarn": "^3.0.1", "path-to-regexp": "^8.3.0", "remark": "^15.0.1", "remark-gfm": "^4.0.1", "remark-rehype": "^11.1.2", "scroll-into-view-if-needed": "^3.1.0", "shiki": "^3.13.0", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "@mixedbread/sdk": "^0.19.0", "@orama/core": "1.x.x", "@tanstack/react-router": "1.x.x", "@types/react": "*", "algoliasearch": "5.x.x", "lucide-react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "react-router": "7.x.x", "waku": "^0.26.0" }, "optionalPeers": ["@mixedbread/sdk", "@orama/core", "@tanstack/react-router", "@types/react", "algoliasearch", "lucide-react", "next", "react", "react-dom", "react-router", "waku"] }, "sha512-mUvdQQTKHDUL4a4KM+vRCj/Ge/UCbp3yr3yiPoO0aK9wMqYJpF/czCyLpdvF+i4WO8oXnjYvQObKkKaceoCWWg=="],
- "fumadocs-mdx": ["fumadocs-mdx@13.0.2", "", { "dependencies": { "@mdx-js/mdx": "^3.1.1", "@standard-schema/spec": "^1.0.0", "chokidar": "^4.0.3", "esbuild": "^0.25.11", "estree-util-value-to-estree": "^3.4.1", "js-yaml": "^4.1.0", "lru-cache": "^11.2.2", "mdast-util-to-markdown": "^2.1.2", "picocolors": "^1.1.1", "picomatch": "^4.0.3", "remark-mdx": "^3.1.1", "tinyexec": "^1.0.1", "tinyglobby": "^0.2.15", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "zod": "^4.1.12" }, "peerDependencies": { "@fumadocs/mdx-remote": "^1.4.0", "fumadocs-core": "^15.0.0 || ^16.0.0", "next": "^15.3.0 || ^16.0.0", "react": "*", "vite": "6.x.x || 7.x.x" }, "optionalPeers": ["@fumadocs/mdx-remote", "next", "react", "vite"], "bin": { "fumadocs-mdx": "dist/bin.js" } }, "sha512-PLlpdDJze/Yy7phM6v9vyIcxDSGrfkUTkvhTiGHkLBft5bA171fAs+BzhiqwNCfR+4MfXMppfb7ffZV3sg6frA=="],
+ "fumadocs-mdx": ["fumadocs-mdx@13.0.8", "", { "dependencies": { "@mdx-js/mdx": "^3.1.1", "@standard-schema/spec": "^1.0.0", "chokidar": "^4.0.3", "esbuild": "^0.25.12", "estree-util-value-to-estree": "^3.5.0", "js-yaml": "^4.1.0", "lru-cache": "^11.2.2", "mdast-util-to-markdown": "^2.1.2", "picocolors": "^1.1.1", "picomatch": "^4.0.3", "remark-mdx": "^3.1.1", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "zod": "^4.1.12" }, "peerDependencies": { "@fumadocs/mdx-remote": "^1.4.0", "fumadocs-core": "^15.0.0 || ^16.0.0", "next": "^15.3.0 || ^16.0.0", "react": "*", "vite": "6.x.x || 7.x.x" }, "optionalPeers": ["@fumadocs/mdx-remote", "next", "react", "vite"], "bin": { "fumadocs-mdx": "dist/bin.js" } }, "sha512-UbUwH0iGvYbytnxhmfd7tWJKFK8L0mrbTAmrQYnpg6Wi/h8afNMJmbHBOzVcaEWJKeFipZ1CGDAsNA2fztwXNg=="],
- "fumadocs-openapi": ["fumadocs-openapi@9.7.1", "", { "dependencies": { "@fumari/json-schema-to-typescript": "^1.1.3", "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.3", "@scalar/json-magic": "^0.6.1", "@scalar/openapi-parser": "0.22.3", "ajv": "^8.17.1", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.5", "fumadocs-ui": "16.0.5", "github-slugger": "^2.0.0", "gray-matter": "^4.0.3", "hast-util-to-jsx-runtime": "^2.3.6", "js-yaml": "^4.1.0", "next-themes": "^0.4.6", "openapi-sampler": "^1.6.2", "react-hook-form": "^7.65.0", "remark": "^15.0.1", "remark-rehype": "^11.1.2", "tinyglobby": "^0.2.15", "xml-js": "^1.6.11" }, "peerDependencies": { "@scalar/api-client-react": "*", "@types/react": "*", "react": "18.x.x || 19.x.x", "react-dom": "18.x.x || 19.x.x" }, "optionalPeers": ["@scalar/api-client-react", "@types/react"] }, "sha512-nGJbSaxQHEpRtxn53daTq6CAK2uGSqc67ls+GfpTbzGPso0jDtE6ZwdOpOTBWaKvnfRlwo2hAL1W9HqiXJFCWw=="],
+ "fumadocs-openapi": ["fumadocs-openapi@9.7.3", "", { "dependencies": { "@fumari/json-schema-to-typescript": "^1.1.3", "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.3", "@scalar/json-magic": "^0.6.1", "@scalar/openapi-parser": "0.22.3", "ajv": "^8.17.1", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.7", "fumadocs-ui": "16.0.7", "github-slugger": "^2.0.0", "gray-matter": "^4.0.3", "hast-util-to-jsx-runtime": "^2.3.6", "js-yaml": "^4.1.0", "next-themes": "^0.4.6", "openapi-sampler": "^1.6.2", "react-hook-form": "^7.65.0", "remark": "^15.0.1", "remark-rehype": "^11.1.2", "tinyglobby": "^0.2.15", "xml-js": "^1.6.11" }, "peerDependencies": { "@scalar/api-client-react": "*", "@types/react": "*", "react": "18.x.x || 19.x.x", "react-dom": "18.x.x || 19.x.x" }, "optionalPeers": ["@scalar/api-client-react", "@types/react"] }, "sha512-nYOqZ+hQxjLuvbu6sSjy8lo8mYaYyu9a2dZ+ABvWbrF+/oAXHIzEtd/7ERqQnmdVykRVcr5uXQL+3Kmyv7oSUQ=="],
"fumadocs-ui": ["fumadocs-ui@16.0.2", "", { "dependencies": { "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-direction": "^1.1.1", "@radix-ui/react-navigation-menu": "^1.2.14", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-presence": "^1.1.5", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.1.13", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.2", "lodash.merge": "^4.6.2", "next-themes": "^0.4.6", "postcss-selector-parser": "^7.1.0", "react-medium-image-zoom": "^5.4.0", "scroll-into-view-if-needed": "^3.1.0", "tailwind-merge": "^3.3.1" }, "peerDependencies": { "@types/react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "tailwindcss": "^4.0.0" }, "optionalPeers": ["@types/react", "next", "tailwindcss"] }, "sha512-GaLU2XDJCc7Od/5EyfnFxTjLkObwPGgCo+jqGZXbYhFNb+yuq6rL+7DYnHvWIwzNEmfp3Try3TgutbZB8C66kQ=="],
@@ -547,7 +548,7 @@
"lucide-react": ["lucide-react@0.546.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Z94u6fKT43lKeYHiVyvyR8fT7pwCzDu7RyMPpTvh054+xahSgj4HFQ+NmflvzdXsoAjYGdCguGaFKYuvq0ThCQ=="],
- "magic-string": ["magic-string@0.30.19", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw=="],
+ "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
"markdown-extensions": ["markdown-extensions@2.0.0", "", {}, "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q=="],
@@ -661,7 +662,7 @@
"negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="],
- "next": ["next@16.0.1", "", { "dependencies": { "@next/env": "16.0.1", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.0.1", "@next/swc-darwin-x64": "16.0.1", "@next/swc-linux-arm64-gnu": "16.0.1", "@next/swc-linux-arm64-musl": "16.0.1", "@next/swc-linux-x64-gnu": "16.0.1", "@next/swc-linux-x64-musl": "16.0.1", "@next/swc-win32-arm64-msvc": "16.0.1", "@next/swc-win32-x64-msvc": "16.0.1", "sharp": "^0.34.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-e9RLSssZwd35p7/vOa+hoDFggUZIUbZhIUSLZuETCwrCVvxOs87NamoUzT+vbcNAL8Ld9GobBnWOA6SbV/arOw=="],
+ "next": ["next@16.0.6", "", { "dependencies": { "@next/env": "16.0.6", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.0.6", "@next/swc-darwin-x64": "16.0.6", "@next/swc-linux-arm64-gnu": "16.0.6", "@next/swc-linux-arm64-musl": "16.0.6", "@next/swc-linux-x64-gnu": "16.0.6", "@next/swc-linux-x64-musl": "16.0.6", "@next/swc-win32-arm64-msvc": "16.0.6", "@next/swc-win32-x64-msvc": "16.0.6", "sharp": "^0.34.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-2zOZ/4FdaAp5hfCU/RnzARlZzBsjaTZ/XjNQmuyYLluAPM7kcrbIkdeO2SL0Ysd1vnrSgU+GwugfeWX1cUCgCg=="],
"next-themes": ["next-themes@0.4.6", "", { "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA=="],
@@ -669,7 +670,7 @@
"oniguruma-parser": ["oniguruma-parser@0.12.1", "", {}, "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w=="],
- "oniguruma-to-es": ["oniguruma-to-es@4.3.3", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="],
+ "oniguruma-to-es": ["oniguruma-to-es@4.3.4", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA=="],
"openapi-sampler": ["openapi-sampler@1.6.2", "", { "dependencies": { "@types/json-schema": "^7.0.7", "fast-xml-parser": "^4.5.0", "json-pointer": "0.6.2" } }, "sha512-NyKGiFKfSWAZr4srD/5WDhInOWDhfml32h/FKUqLpEwKJt0kG0LGUU0MdyNkKrVGuJnw6DuPWq/sHCwAMpiRxg=="],
@@ -749,7 +750,7 @@
"sharp": ["sharp@0.34.4", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.0", "semver": "^7.7.2" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.4", "@img/sharp-darwin-x64": "0.34.4", "@img/sharp-libvips-darwin-arm64": "1.2.3", "@img/sharp-libvips-darwin-x64": "1.2.3", "@img/sharp-libvips-linux-arm": "1.2.3", "@img/sharp-libvips-linux-arm64": "1.2.3", "@img/sharp-libvips-linux-ppc64": "1.2.3", "@img/sharp-libvips-linux-s390x": "1.2.3", "@img/sharp-libvips-linux-x64": "1.2.3", "@img/sharp-libvips-linuxmusl-arm64": "1.2.3", "@img/sharp-libvips-linuxmusl-x64": "1.2.3", "@img/sharp-linux-arm": "0.34.4", "@img/sharp-linux-arm64": "0.34.4", "@img/sharp-linux-ppc64": "0.34.4", "@img/sharp-linux-s390x": "0.34.4", "@img/sharp-linux-x64": "0.34.4", "@img/sharp-linuxmusl-arm64": "0.34.4", "@img/sharp-linuxmusl-x64": "0.34.4", "@img/sharp-wasm32": "0.34.4", "@img/sharp-win32-arm64": "0.34.4", "@img/sharp-win32-ia32": "0.34.4", "@img/sharp-win32-x64": "0.34.4" } }, "sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA=="],
- "shiki": ["shiki@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/engine-javascript": "3.14.0", "@shikijs/engine-oniguruma": "3.14.0", "@shikijs/langs": "3.14.0", "@shikijs/themes": "3.14.0", "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g=="],
+ "shiki": ["shiki@3.18.0", "", { "dependencies": { "@shikijs/core": "3.18.0", "@shikijs/engine-javascript": "3.18.0", "@shikijs/engine-oniguruma": "3.18.0", "@shikijs/langs": "3.18.0", "@shikijs/themes": "3.18.0", "@shikijs/types": "3.18.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-SDNJms7EDHQN+IC67VUQ4IzePTmeEKGZk4HvgaQ+G0fsE9Mb3R7U8zbEBjAkKZBRCJPa2ad88UzWNLLli1oNXg=="],
"source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="],
@@ -773,11 +774,11 @@
"tailwind-merge": ["tailwind-merge@3.3.1", "", {}, "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g=="],
- "tailwindcss": ["tailwindcss@4.1.16", "", {}, "sha512-pONL5awpaQX4LN5eiv7moSiSPd/DLDzKVRJz8Q9PgzmAdd1R4307GQS2ZpfiN7ZmekdQrfhZZiSE5jkLR4WNaA=="],
+ "tailwindcss": ["tailwindcss@4.1.17", "", {}, "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q=="],
"tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="],
- "tinyexec": ["tinyexec@1.0.1", "", {}, "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw=="],
+ "tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="],
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
@@ -835,9 +836,9 @@
"@shikijs/transformers/@shikijs/types": ["@shikijs/types@3.13.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw=="],
- "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.5.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg=="],
+ "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.7.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg=="],
- "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.5.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ=="],
+ "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.7.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA=="],
"@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="],
@@ -849,9 +850,9 @@
"fumadocs-core/shiki": ["shiki@3.13.0", "", { "dependencies": { "@shikijs/core": "3.13.0", "@shikijs/engine-javascript": "3.13.0", "@shikijs/engine-oniguruma": "3.13.0", "@shikijs/langs": "3.13.0", "@shikijs/themes": "3.13.0", "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g=="],
- "fumadocs-openapi/fumadocs-core": ["fumadocs-core@16.0.5", "", { "dependencies": { "@formatjs/intl-localematcher": "^0.6.2", "@orama/orama": "^3.1.16", "@shikijs/rehype": "^3.14.0", "@shikijs/transformers": "^3.14.0", "github-slugger": "^2.0.0", "hast-util-to-estree": "^3.1.3", "hast-util-to-jsx-runtime": "^2.3.6", "image-size": "^2.0.2", "negotiator": "^1.0.0", "npm-to-yarn": "^3.0.1", "path-to-regexp": "^8.3.0", "remark": "^15.0.1", "remark-gfm": "^4.0.1", "remark-rehype": "^11.1.2", "scroll-into-view-if-needed": "^3.1.0", "shiki": "^3.14.0", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "@mixedbread/sdk": "^0.19.0", "@orama/core": "1.x.x", "@tanstack/react-router": "1.x.x", "@types/react": "*", "algoliasearch": "5.x.x", "lucide-react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "react-router": "7.x.x", "waku": "^0.26.0" }, "optionalPeers": ["@mixedbread/sdk", "@orama/core", "@tanstack/react-router", "@types/react", "algoliasearch", "lucide-react", "next", "react", "react-dom", "react-router", "waku"] }, "sha512-xeEDzjagdj1a9ryg5iportmvrJ9yDgQee2KBVjp3rLAUdquN4Z31Gh/pmuByZDVcwu4rl2Ax3qt+kbpY2e6djQ=="],
+ "fumadocs-openapi/fumadocs-core": ["fumadocs-core@16.0.7", "", { "dependencies": { "@formatjs/intl-localematcher": "^0.6.2", "@orama/orama": "^3.1.16", "@shikijs/rehype": "^3.14.0", "@shikijs/transformers": "^3.14.0", "estree-util-value-to-estree": "^3.5.0", "github-slugger": "^2.0.0", "hast-util-to-estree": "^3.1.3", "hast-util-to-jsx-runtime": "^2.3.6", "image-size": "^2.0.2", "negotiator": "^1.0.0", "npm-to-yarn": "^3.0.1", "path-to-regexp": "^8.3.0", "remark": "^15.0.1", "remark-gfm": "^4.0.1", "remark-rehype": "^11.1.2", "scroll-into-view-if-needed": "^3.1.0", "shiki": "^3.14.0", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "@mixedbread/sdk": "^0.19.0", "@orama/core": "1.x.x", "@tanstack/react-router": "1.x.x", "@types/react": "*", "algoliasearch": "5.x.x", "lucide-react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "react-router": "7.x.x", "waku": "^0.26.0" }, "optionalPeers": ["@mixedbread/sdk", "@orama/core", "@tanstack/react-router", "@types/react", "algoliasearch", "lucide-react", "next", "react", "react-dom", "react-router", "waku"] }, "sha512-kCkhwquhoy10SW3lqTpBD0XR0V1cMruBQdMN+/BrpQZfYFEGvd+QxLCXa/hUC4tnePUAXgMxMThZT1Ze1Nb+pg=="],
- "fumadocs-openapi/fumadocs-ui": ["fumadocs-ui@16.0.5", "", { "dependencies": { "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-direction": "^1.1.1", "@radix-ui/react-navigation-menu": "^1.2.14", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-presence": "^1.1.5", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.1.13", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.5", "lodash.merge": "^4.6.2", "next-themes": "^0.4.6", "postcss-selector-parser": "^7.1.0", "react-medium-image-zoom": "^5.4.0", "scroll-into-view-if-needed": "^3.1.0", "tailwind-merge": "^3.3.1" }, "peerDependencies": { "@types/react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "tailwindcss": "^4.0.0" }, "optionalPeers": ["@types/react", "next", "tailwindcss"] }, "sha512-WSvDnHMslEFrSDH7qQpL4j+vb5dQUjVfUResVSpQS2GbQhpLIiNbUuSaF3iofDNm+/EWKU8iqYVikZfO1i7ybw=="],
+ "fumadocs-openapi/fumadocs-ui": ["fumadocs-ui@16.0.7", "", { "dependencies": { "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-direction": "^1.1.1", "@radix-ui/react-navigation-menu": "^1.2.14", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-presence": "^1.1.5", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.1.13", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.7", "lodash.merge": "^4.6.2", "next-themes": "^0.4.6", "postcss-selector-parser": "^7.1.0", "react-medium-image-zoom": "^5.4.0", "scroll-into-view-if-needed": "^3.1.0", "tailwind-merge": "^3.3.1" }, "peerDependencies": { "@types/react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "tailwindcss": "^4.0.0" }, "optionalPeers": ["@types/react", "next", "tailwindcss"] }, "sha512-SUEm3ThdTPZofSx/Yfc7BkS5EWkz3W/yvPhBBxEALxDKf9On4MC0uunDlkM5/WeHF5rzWw+bj5nliQ/QKcsfNw=="],
"gray-matter/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="],
@@ -869,6 +870,10 @@
"@shikijs/rehype/shiki/@shikijs/themes": ["@shikijs/themes@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0" } }, "sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg=="],
+ "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@emnapi/core": ["@emnapi/core@1.5.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg=="],
+
+ "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@emnapi/runtime": ["@emnapi/runtime@1.5.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ=="],
+
"fumadocs-core/shiki/@shikijs/core": ["@shikijs/core@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA=="],
"fumadocs-core/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg=="],
@@ -886,5 +891,29 @@
"fumadocs-openapi/fumadocs-core/@shikijs/transformers": ["@shikijs/transformers@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/types": "3.14.0" } }, "sha512-i67zQnY9wLMMnKasonVW1L9fKneSLZDj1ePsA4o0AZWU4uUobmJY9baRDa36z+a9/g0aG76/2tybQvm4hrwxIQ=="],
"gray-matter/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="],
+
+ "@shikijs/rehype/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@4.3.3", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="],
+
+ "fumadocs-core/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@4.3.3", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/rehype/@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki": ["shiki@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/engine-javascript": "3.14.0", "@shikijs/engine-oniguruma": "3.14.0", "@shikijs/langs": "3.14.0", "@shikijs/themes": "3.14.0", "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/transformers/@shikijs/core": ["@shikijs/core@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/transformers/@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/core": ["@shikijs/core@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/langs": ["@shikijs/langs@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/themes": ["@shikijs/themes@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA=="],
+
+ "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@4.3.3", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="],
}
}
diff --git a/docs/next.config.mjs b/docs/next.config.mjs
index 1d8595d..26c57f7 100644
--- a/docs/next.config.mjs
+++ b/docs/next.config.mjs
@@ -5,7 +5,8 @@ const withMDX = createMDX();
/** @type {import('next').NextConfig} */
const config = {
reactStrictMode: true,
- devIndicators: false
+ devIndicators: false,
+ transpilePackages: ["shiki"]
};
export default withMDX(config);
diff --git a/docs/package.json b/docs/package.json
index 577d017..4190691 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -12,25 +12,25 @@
},
"dependencies": {
"fumadocs-core": "16.0.2",
- "fumadocs-mdx": "^13.0.2",
- "fumadocs-openapi": "^9.7.1",
+ "fumadocs-mdx": "^13.0.8",
+ "fumadocs-openapi": "^9.7.3",
"fumadocs-ui": "16.0.2",
"lucide-react": "^0.546.0",
- "next": "^16.0.1",
+ "next": "^16.0.6",
"react": "^19.2.0",
"react-dom": "^19.2.0",
- "shiki": "^3.14.0"
+ "shiki": "^3.18.0"
},
"devDependencies": {
- "@biomejs/biome": "^2.3.2",
- "@tailwindcss/postcss": "^4.1.16",
+ "@biomejs/biome": "^2.3.8",
+ "@tailwindcss/postcss": "^4.1.17",
"@types/mdx": "^2.0.13",
"@types/node": "24.9.1",
- "@types/react": "^19.2.2",
- "@types/react-dom": "^19.2.2",
+ "@types/react": "^19.2.7",
+ "@types/react-dom": "^19.2.3",
"openapi-types": "^12.1.3",
"postcss": "^8.5.6",
- "tailwindcss": "^4.1.16",
+ "tailwindcss": "^4.1.17",
"typescript": "^5.9.3"
}
}
\ No newline at end of file
From e9b220462ba0436026076ce1180bc421bdf22d66 Mon Sep 17 00:00:00 2001
From: rzmk <30333942+rzmk@users.noreply.github.com>
Date: Tue, 2 Dec 2025 19:20:06 -0500
Subject: [PATCH 05/11] feat(docs): add all delete endpoints
---
docs/content/docs/api_token_revoke.mdx | 20 +
docs/content/docs/dataset_purge.mdx | 39 ++
docs/content/docs/group_delete.mdx | 24 +
docs/content/docs/group_member_delete.mdx | 24 +
docs/content/docs/group_purge.mdx | 43 ++
docs/content/docs/job_cancel.mdx | 24 +
docs/content/docs/job_clear.mdx | 24 +
docs/content/docs/member_delete.mdx | 24 +
docs/content/docs/organization_delete.mdx | 27 +
.../docs/organization_member_delete.mdx | 24 +
docs/content/docs/organization_purge.mdx | 45 ++
.../docs/package_collaborator_delete.mdx | 34 ++
docs/content/docs/package_delete.mdx | 31 ++
.../docs/package_relationship_delete.mdx | 26 +
docs/content/docs/resource_delete.mdx | 24 +
docs/content/docs/resource_view_clear.mdx | 20 +
docs/content/docs/resource_view_delete.mdx | 20 +
docs/content/docs/tag_delete.mdx | 24 +
docs/content/docs/task_status_delete.mdx | 24 +
docs/content/docs/unfollow_dataset.mdx | 20 +
docs/content/docs/unfollow_group.mdx | 20 +
docs/content/docs/unfollow_user.mdx | 20 +
docs/content/docs/user_delete.mdx | 24 +
docs/content/docs/vocabulary_delete.mdx | 24 +
docs/lib/openapi.yml | 477 ++++++++++++++++++
25 files changed, 1106 insertions(+)
create mode 100644 docs/content/docs/api_token_revoke.mdx
create mode 100644 docs/content/docs/dataset_purge.mdx
create mode 100644 docs/content/docs/group_delete.mdx
create mode 100644 docs/content/docs/group_member_delete.mdx
create mode 100644 docs/content/docs/group_purge.mdx
create mode 100644 docs/content/docs/job_cancel.mdx
create mode 100644 docs/content/docs/job_clear.mdx
create mode 100644 docs/content/docs/member_delete.mdx
create mode 100644 docs/content/docs/organization_delete.mdx
create mode 100644 docs/content/docs/organization_member_delete.mdx
create mode 100644 docs/content/docs/organization_purge.mdx
create mode 100644 docs/content/docs/package_collaborator_delete.mdx
create mode 100644 docs/content/docs/package_delete.mdx
create mode 100644 docs/content/docs/package_relationship_delete.mdx
create mode 100644 docs/content/docs/resource_delete.mdx
create mode 100644 docs/content/docs/resource_view_clear.mdx
create mode 100644 docs/content/docs/resource_view_delete.mdx
create mode 100644 docs/content/docs/tag_delete.mdx
create mode 100644 docs/content/docs/task_status_delete.mdx
create mode 100644 docs/content/docs/unfollow_dataset.mdx
create mode 100644 docs/content/docs/unfollow_group.mdx
create mode 100644 docs/content/docs/unfollow_user.mdx
create mode 100644 docs/content/docs/user_delete.mdx
create mode 100644 docs/content/docs/vocabulary_delete.mdx
diff --git a/docs/content/docs/api_token_revoke.mdx b/docs/content/docs/api_token_revoke.mdx
new file mode 100644
index 0000000..2d58e59
--- /dev/null
+++ b/docs/content/docs/api_token_revoke.mdx
@@ -0,0 +1,20 @@
+---
+title: api_token_revoke
+full: true
+_openapi:
+ method: DELETE
+ route: api_token_revoke
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Delete API Token.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete API Token.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/dataset_purge.mdx b/docs/content/docs/dataset_purge.mdx
new file mode 100644
index 0000000..4cd93c2
--- /dev/null
+++ b/docs/content/docs/dataset_purge.mdx
@@ -0,0 +1,39 @@
+---
+title: dataset_purge
+full: true
+_openapi:
+ method: DELETE
+ route: dataset_purge
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Purge a dataset.
+
+
+ Purging a dataset cannot be
+ undone!
+
+
+ Purging a dataset completely removes the dataset from the CKAN
+ database, whereas deleting a dataset simply marks the dataset as
+ deleted (it will no longer show up in the front-end, but is still in
+ the db).
+
+
+ You must be authorized to purge the dataset.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Purge a dataset.
+
+Purging a dataset cannot be undone!
+
+Purging a dataset completely removes the dataset from the CKAN database, whereas deleting a dataset simply marks the dataset as deleted (it will no longer show up in the front-end, but is still in the db).
+
+You must be authorized to purge the dataset.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/group_delete.mdx b/docs/content/docs/group_delete.mdx
new file mode 100644
index 0000000..2b265b3
--- /dev/null
+++ b/docs/content/docs/group_delete.mdx
@@ -0,0 +1,24 @@
+---
+title: group_delete
+full: true
+_openapi:
+ method: DELETE
+ route: group_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Delete a group.
+
+ You must be authorized to delete the group.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete a group.
+
+You must be authorized to delete the group.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/group_member_delete.mdx b/docs/content/docs/group_member_delete.mdx
new file mode 100644
index 0000000..07f1e3c
--- /dev/null
+++ b/docs/content/docs/group_member_delete.mdx
@@ -0,0 +1,24 @@
+---
+title: group_member_delete
+full: true
+_openapi:
+ method: DELETE
+ route: group_member_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Remove a user from a group.
+
+ You must be authorized to edit the group.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Remove a user from a group.
+
+You must be authorized to edit the group.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/group_purge.mdx b/docs/content/docs/group_purge.mdx
new file mode 100644
index 0000000..6cee332
--- /dev/null
+++ b/docs/content/docs/group_purge.mdx
@@ -0,0 +1,43 @@
+---
+title: group_purge
+full: true
+_openapi:
+ method: DELETE
+ route: group_purge
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Purge a group.
+
+
+ Purging a group cannot be
+ undone!
+
+
+ Purging a group completely removes the group from the CKAN database,
+ whereas deleting a group simply marks the group as deleted (it will no
+ longer show up in the frontend, but is still in the db).
+
+
+ Datasets in the group will remain, just not in the purged group.
+
+
+ You must be authorized to purge the group.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Purge a group.
+
+Purging a group cannot be undone!
+
+Purging a group completely removes the group from the CKAN database, whereas deleting a group simply marks the group as deleted (it will no longer show up in the frontend, but is still in the db).
+
+Datasets in the group will remain, just not in the purged group.
+
+You must be authorized to purge the group.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/job_cancel.mdx b/docs/content/docs/job_cancel.mdx
new file mode 100644
index 0000000..a2286bd
--- /dev/null
+++ b/docs/content/docs/job_cancel.mdx
@@ -0,0 +1,24 @@
+---
+title: job_cancel
+full: true
+_openapi:
+ method: DELETE
+ route: job_cancel
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Cancel a queued background job.
+
+ Removes the job from the queue and deletes it.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Cancel a queued background job.
+
+Removes the job from the queue and deletes it.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/job_clear.mdx b/docs/content/docs/job_clear.mdx
new file mode 100644
index 0000000..a0733a3
--- /dev/null
+++ b/docs/content/docs/job_clear.mdx
@@ -0,0 +1,24 @@
+---
+title: job_clear
+full: true
+_openapi:
+ method: DELETE
+ route: job_clear
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Clear background job queues.
+
+ Does not affect jobs that are already being processed.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Clear background job queues.
+
+Does not affect jobs that are already being processed.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/member_delete.mdx b/docs/content/docs/member_delete.mdx
new file mode 100644
index 0000000..882edde
--- /dev/null
+++ b/docs/content/docs/member_delete.mdx
@@ -0,0 +1,24 @@
+---
+title: member_delete
+full: true
+_openapi:
+ method: DELETE
+ route: member_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Remove an object (e.g. a user, dataset or group) from a group.
+
+ You must be authorized to edit a group to remove objects from it.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Remove an object (e.g. a user, dataset or group) from a group.
+
+You must be authorized to edit a group to remove objects from it.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_delete.mdx b/docs/content/docs/organization_delete.mdx
new file mode 100644
index 0000000..fbbd500
--- /dev/null
+++ b/docs/content/docs/organization_delete.mdx
@@ -0,0 +1,27 @@
+---
+title: organization_delete
+full: true
+_openapi:
+ method: DELETE
+ route: organization_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Delete an organization.
+
+
+ You must be authorized to delete the organization and no datasets
+ should belong to the organization unless
+ `'ckan.auth.create_unowned_dataset=True'`
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete an organization.
+
+You must be authorized to delete the organization and no datasets should belong to the organization unless `'ckan.auth.create_unowned_dataset=True'`
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_member_delete.mdx b/docs/content/docs/organization_member_delete.mdx
new file mode 100644
index 0000000..d681c52
--- /dev/null
+++ b/docs/content/docs/organization_member_delete.mdx
@@ -0,0 +1,24 @@
+---
+title: organization_member_delete
+full: true
+_openapi:
+ method: DELETE
+ route: organization_member_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Remove a user from an organization.
+
+ You must be authorized to edit the organization.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Remove a user from an organization.
+
+You must be authorized to edit the organization.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_purge.mdx b/docs/content/docs/organization_purge.mdx
new file mode 100644
index 0000000..f63f786
--- /dev/null
+++ b/docs/content/docs/organization_purge.mdx
@@ -0,0 +1,45 @@
+---
+title: organization_purge
+full: true
+_openapi:
+ method: DELETE
+ route: organization_purge
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Purge an organization.
+
+
+ Purging an organization cannot
+ be undone!
+
+
+ Purging an organization completely removes the organization from the
+ CKAN database, whereas deleting a organization simply marks the
+ organization as deleted (it will no longer show up in the frontend,
+ but is still in the db).
+
+
+ Datasets owned by the organization will remain, just not in an
+ organization anymore.
+
+
+ You must be authorized to purge the organization.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Purge an organization.
+
+Purging an organization cannot be undone!
+
+Purging an organization completely removes the organization from the CKAN database, whereas deleting a organization simply marks the organization as deleted (it will no longer show up in the frontend, but is still in the db).
+
+Datasets owned by the organization will remain, just not in an organization anymore.
+
+You must be authorized to purge the organization.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_collaborator_delete.mdx b/docs/content/docs/package_collaborator_delete.mdx
new file mode 100644
index 0000000..525512a
--- /dev/null
+++ b/docs/content/docs/package_collaborator_delete.mdx
@@ -0,0 +1,34 @@
+---
+title: package_collaborator_delete
+full: true
+_openapi:
+ method: DELETE
+ route: package_collaborator_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Remove a collaborator from a dataset.
+
+
+ Currently you must be an Admin on the dataset owner organization to
+ manage collaborators.
+
+
+ Note: This action requires the collaborators feature to be enabled
+ with the
+ [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators)
+ configuration option.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Remove a collaborator from a dataset.
+
+Currently you must be an Admin on the dataset owner organization to manage collaborators.
+
+Note: This action requires the collaborators feature to be enabled with the [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators) configuration option.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_delete.mdx b/docs/content/docs/package_delete.mdx
new file mode 100644
index 0000000..dfd71f3
--- /dev/null
+++ b/docs/content/docs/package_delete.mdx
@@ -0,0 +1,31 @@
+---
+title: package_delete
+full: true
+_openapi:
+ method: DELETE
+ route: package_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Delete a dataset (package).
+
+
+ This makes the dataset disappear from all web & API views, apart from
+ the trash.
+
+
+ You must be authorized to delete the dataset.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete a dataset (package).
+
+This makes the dataset disappear from all web & API views, apart from the trash.
+
+You must be authorized to delete the dataset.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_relationship_delete.mdx b/docs/content/docs/package_relationship_delete.mdx
new file mode 100644
index 0000000..e02bf55
--- /dev/null
+++ b/docs/content/docs/package_relationship_delete.mdx
@@ -0,0 +1,26 @@
+---
+title: package_relationship_delete
+full: true
+_openapi:
+ method: DELETE
+ route: package_relationship_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Delete a dataset (package) relationship.
+
+
+ You must be authorised to delete dataset relationships, and to edit
+ both the subject and the object datasets.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete a dataset (package) relationship.
+
+You must be authorised to delete dataset relationships, and to edit both the subject and the object datasets.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_delete.mdx b/docs/content/docs/resource_delete.mdx
new file mode 100644
index 0000000..e8fbcf8
--- /dev/null
+++ b/docs/content/docs/resource_delete.mdx
@@ -0,0 +1,24 @@
+---
+title: resource_delete
+full: true
+_openapi:
+ method: DELETE
+ route: resource_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Delete a resource from a dataset.
+
+ You must be a sysadmin or the owner of the resource to delete it.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete a resource from a dataset.
+
+You must be a sysadmin or the owner of the resource to delete it.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_clear.mdx b/docs/content/docs/resource_view_clear.mdx
new file mode 100644
index 0000000..cbb7526
--- /dev/null
+++ b/docs/content/docs/resource_view_clear.mdx
@@ -0,0 +1,20 @@
+---
+title: resource_view_clear
+full: true
+_openapi:
+ method: DELETE
+ route: resource_view_clear
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Delete all resource views, or all of a particular type.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete all resource views, or all of a particular type.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_delete.mdx b/docs/content/docs/resource_view_delete.mdx
new file mode 100644
index 0000000..859934d
--- /dev/null
+++ b/docs/content/docs/resource_view_delete.mdx
@@ -0,0 +1,20 @@
+---
+title: resource_view_delete
+full: true
+_openapi:
+ method: DELETE
+ route: resource_view_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Delete a resource_view.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete a resource_view.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/tag_delete.mdx b/docs/content/docs/tag_delete.mdx
new file mode 100644
index 0000000..5cd2322
--- /dev/null
+++ b/docs/content/docs/tag_delete.mdx
@@ -0,0 +1,24 @@
+---
+title: tag_delete
+full: true
+_openapi:
+ method: DELETE
+ route: tag_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Delete a tag.
+
+ You must be a sysadmin to delete tags.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete a tag.
+
+You must be a sysadmin to delete tags.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/task_status_delete.mdx b/docs/content/docs/task_status_delete.mdx
new file mode 100644
index 0000000..57df403
--- /dev/null
+++ b/docs/content/docs/task_status_delete.mdx
@@ -0,0 +1,24 @@
+---
+title: task_status_delete
+full: true
+_openapi:
+ method: DELETE
+ route: task_status_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Delete a task status.
+
+ You must be a sysadmin to delete task statuses.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete a task status.
+
+You must be a sysadmin to delete task statuses.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/unfollow_dataset.mdx b/docs/content/docs/unfollow_dataset.mdx
new file mode 100644
index 0000000..439e031
--- /dev/null
+++ b/docs/content/docs/unfollow_dataset.mdx
@@ -0,0 +1,20 @@
+---
+title: unfollow_dataset
+full: true
+_openapi:
+ method: DELETE
+ route: unfollow_dataset
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Stop following a dataset.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Stop following a dataset.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/unfollow_group.mdx b/docs/content/docs/unfollow_group.mdx
new file mode 100644
index 0000000..47fbc12
--- /dev/null
+++ b/docs/content/docs/unfollow_group.mdx
@@ -0,0 +1,20 @@
+---
+title: unfollow_group
+full: true
+_openapi:
+ method: DELETE
+ route: unfollow_group
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Stop following a group.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Stop following a group.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/unfollow_user.mdx b/docs/content/docs/unfollow_user.mdx
new file mode 100644
index 0000000..01b5d52
--- /dev/null
+++ b/docs/content/docs/unfollow_user.mdx
@@ -0,0 +1,20 @@
+---
+title: unfollow_user
+full: true
+_openapi:
+ method: DELETE
+ route: unfollow_user
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Stop following a user.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Stop following a user.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/user_delete.mdx b/docs/content/docs/user_delete.mdx
new file mode 100644
index 0000000..a4eed90
--- /dev/null
+++ b/docs/content/docs/user_delete.mdx
@@ -0,0 +1,24 @@
+---
+title: user_delete
+full: true
+_openapi:
+ method: DELETE
+ route: user_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Delete a user.
+
+ Only sysadmins can delete users.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete a user.
+
+Only sysadmins can delete users.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/vocabulary_delete.mdx b/docs/content/docs/vocabulary_delete.mdx
new file mode 100644
index 0000000..9c7c6cc
--- /dev/null
+++ b/docs/content/docs/vocabulary_delete.mdx
@@ -0,0 +1,24 @@
+---
+title: vocabulary_delete
+full: true
+_openapi:
+ method: DELETE
+ route: vocabulary_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Delete a tag vocabulary.
+
+ You must be a sysadmin to delete vocabularies.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Delete a tag vocabulary.
+
+You must be a sysadmin to delete vocabularies.
+
+
+
\ No newline at end of file
diff --git a/docs/lib/openapi.yml b/docs/lib/openapi.yml
index 972c852..13b3604 100644
--- a/docs/lib/openapi.yml
+++ b/docs/lib/openapi.yml
@@ -2212,3 +2212,480 @@ paths:
name:
type: string
description: distinctive name for API Token
+ user_delete:
+ delete:
+ operationId: user_delete
+ summary: user_delete
+ description: |
+ Delete a user.
+
+ Only sysadmins can delete users.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ # Original docs say "usernamename" which is a typo that should be fixed
+ description: the id or name of the user to delete
+ package_delete:
+ delete:
+ operationId: package_delete
+ summary: package_delete
+ description: |
+ Delete a dataset (package).
+
+ This makes the dataset disappear from all web & API views, apart from the trash.
+
+ You must be authorized to delete the dataset.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the dataset to delete
+ dataset_purge:
+ delete:
+ operationId: dataset_purge
+ summary: dataset_purge
+ # Original docs say "Purging a database" which may be a typo for "Purging a dataset"
+ description: |
+ Purge a dataset.
+
+ Purging a dataset cannot be undone!
+
+ Purging a dataset completely removes the dataset from the CKAN database, whereas deleting a dataset simply marks the dataset as deleted (it will no longer show up in the front-end, but is still in the db).
+
+ You must be authorized to purge the dataset.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the dataset to be purged
+ resource_delete:
+ delete:
+ operationId: resource_delete
+ summary: resource_delete
+ description: |
+ Delete a resource from a dataset.
+
+ You must be a sysadmin or the owner of the resource to delete it.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the resource
+ resource_view_delete:
+ delete:
+ operationId: resource_view_delete
+ summary: resource_view_delete
+ description: |
+ Delete a resource_view.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the resource_view
+ resource_view_clear:
+ delete:
+ operationId: resource_view_clear
+ summary: resource_view_clear
+ description: |
+ Delete all resource views, or all of a particular type.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ view_types:
+ type: array
+ description: specific types to delete
+ items:
+ type: string
+ package_relationship_delete:
+ delete:
+ operationId: package_relationship_delete
+ summary: package_relationship_delete
+ description: |
+ Delete a dataset (package) relationship.
+
+ You must be authorised to delete dataset relationships, and to edit both the subject and the object datasets.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ subject:
+ type: string
+ description: the id or name of the dataset that is the subject of the relationship
+ object:
+ type: string
+ description: the id or name of the dataset that is the object of the relationship
+ type:
+ type: string
+ description: the type of the relationship
+ member_delete:
+ delete:
+ operationId: member_delete
+ summary: member_delete
+ description: |
+ Remove an object (e.g. a user, dataset or group) from a group.
+
+ You must be authorized to edit a group to remove objects from it.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the group
+ object:
+ type: string
+ description: the id or name of the object to be removed
+ object_type:
+ type: string
+ description: the type of the object to be removed, e.g. `package` or `user`
+ package_collaborator_delete:
+ delete:
+ operationId: package_collaborator_delete
+ summary: package_collaborator_delete
+ description: |
+ Remove a collaborator from a dataset.
+
+ Currently you must be an Admin on the dataset owner organization to manage collaborators.
+
+ Note: This action requires the collaborators feature to be enabled with the [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators) configuration option.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the dataset
+ user_id:
+ type: string
+ description: the id or name of the user to remove
+ group_delete:
+ delete:
+ operationId: group_delete
+ summary: group_delete
+ description: |
+ Delete a group.
+
+ You must be authorized to delete the group.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the group
+ organization_delete:
+ delete:
+ operationId: organization_delete
+ summary: organization_delete
+ description: |
+ Delete an organization.
+
+ You must be authorized to delete the organization and no datasets should belong to the organization unless `'ckan.auth.create_unowned_dataset=True'`
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the organization
+ group_purge:
+ delete:
+ operationId: group_purge
+ summary: group_purge
+ # Original docs say "Datasets in the organization will remain", however this should probably say "in the group"
+ description: |
+ Purge a group.
+
+ Purging a group cannot be undone!
+
+ Purging a group completely removes the group from the CKAN database, whereas deleting a group simply marks the group as deleted (it will no longer show up in the frontend, but is still in the db).
+
+ Datasets in the group will remain, just not in the purged group.
+
+ You must be authorized to purge the group.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the group to be purged
+ organization_purge:
+ delete:
+ operationId: organization_purge
+ summary: organization_purge
+ # Original docs say "any more" when it should be "anymore"
+ description: |
+ Purge an organization.
+
+ Purging an organization cannot be undone!
+
+ Purging an organization completely removes the organization from the CKAN database, whereas deleting a organization simply marks the organization as deleted (it will no longer show up in the frontend, but is still in the db).
+
+ Datasets owned by the organization will remain, just not in an organization anymore.
+
+ You must be authorized to purge the organization.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the organization to be purged
+ task_status_delete:
+ delete:
+ operationId: task_status_delete
+ summary: task_status_delete
+ description: |
+ Delete a task status.
+
+ You must be a sysadmin to delete task statuses.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the task status to delete
+ vocabulary_delete:
+ delete:
+ operationId: vocabulary_delete
+ summary: vocabulary_delete
+ description: |
+ Delete a tag vocabulary.
+
+ You must be a sysadmin to delete vocabularies.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the vocabulary
+ tag_delete:
+ delete:
+ operationId: tag_delete
+ summary: tag_delete
+ description: |
+ Delete a tag.
+
+ You must be a sysadmin to delete tags.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the tag
+ vocabulary_id:
+ type: string
+ description: "the id or name of the vocabulary that the tag belongs to (default: `None`)"
+ unfollow_user:
+ delete:
+ operationId: unfollow_user
+ summary: unfollow_user
+ description: |
+ Stop following a user.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the user to stop following
+ unfollow_dataset:
+ delete:
+ operationId: unfollow_dataset
+ summary: unfollow_dataset
+ description: |
+ Stop following a dataset.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the dataset to stop following
+ group_member_delete:
+ delete:
+ operationId: group_member_delete
+ summary: group_member_delete
+ description: |
+ Remove a user from a group.
+
+ You must be authorized to edit the group.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the group
+ username:
+ type: string
+ description: name or id of the user to be removed
+ organization_member_delete:
+ delete:
+ operationId: organization_member_delete
+ summary: organization_member_delete
+ description: |
+ Remove a user from an organization.
+
+ You must be authorized to edit the organization.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the organization
+ username:
+ type: string
+ description: name or id of the user to be removed
+ unfollow_group:
+ delete:
+ operationId: unfollow_group
+ summary: unfollow_group
+ description: |
+ Stop following a group.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the group to stop following
+ job_clear:
+ delete:
+ operationId: job_clear
+ summary: job_clear
+ description: |
+ Clear background job queues.
+
+ Does not affect jobs that are already being processed.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ queues:
+ type: array
+ description: The queues to clear. If not given then ALL queues are cleared.
+ items:
+ type: string
+ job_cancel:
+ delete:
+ operationId: job_cancel
+ summary: job_cancel
+ description: |
+ Cancel a queued background job.
+
+ Removes the job from the queue and deletes it.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: The ID of the background job.
+ api_token_revoke:
+ delete:
+ operationId: api_token_revoke
+ summary: api_token_revoke
+ description: |
+ Delete API Token.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ token:
+ type: string
+ # Original docs don't have a space between remove and (
+ description: Token to remove (required if `jti` not specified)
+ jti:
+ type: string
+ # Original docs don't capitalize D in ID and don't have space between remove and (
+ description: ID of the token to remove (overrides `token` if specified)
From fc7aa9da368f1a336acea60cbb49cf16d88846a9 Mon Sep 17 00:00:00 2001
From: rzmk <30333942+rzmk@users.noreply.github.com>
Date: Tue, 2 Dec 2025 20:04:46 -0500
Subject: [PATCH 06/11] feat(docs): add all update endpoints
---
docs/content/docs/bulk_update_delete.mdx | 20 +
docs/content/docs/bulk_update_private.mdx | 20 +
docs/content/docs/bulk_update_public.mdx | 20 +
docs/content/docs/config_option_update.mdx | 69 ++
docs/content/docs/group_update.mdx | 39 +
docs/content/docs/organization_update.mdx | 32 +
.../content/docs/package_owner_org_update.mdx | 20 +
.../docs/package_relationship_update.mdx | 32 +
.../content/docs/package_resource_reorder.mdx | 22 +
docs/content/docs/package_revise.mdx | 196 ++++
docs/content/docs/package_update.mdx | 47 +
docs/content/docs/resource_update.mdx | 33 +
docs/content/docs/resource_view_reorder.mdx | 20 +
docs/content/docs/resource_view_update.mdx | 26 +
docs/content/docs/task_status_update.mdx | 20 +
docs/content/docs/task_status_update_many.mdx | 20 +
docs/content/docs/term_translation_update.mdx | 24 +
.../docs/term_translation_update_many.mdx | 20 +
docs/content/docs/user_update.mdx | 33 +
docs/content/docs/vocabulary_update.mdx | 24 +
docs/lib/openapi.yml | 880 ++++++++++++++++++
21 files changed, 1617 insertions(+)
create mode 100644 docs/content/docs/bulk_update_delete.mdx
create mode 100644 docs/content/docs/bulk_update_private.mdx
create mode 100644 docs/content/docs/bulk_update_public.mdx
create mode 100644 docs/content/docs/config_option_update.mdx
create mode 100644 docs/content/docs/group_update.mdx
create mode 100644 docs/content/docs/organization_update.mdx
create mode 100644 docs/content/docs/package_owner_org_update.mdx
create mode 100644 docs/content/docs/package_relationship_update.mdx
create mode 100644 docs/content/docs/package_resource_reorder.mdx
create mode 100644 docs/content/docs/package_revise.mdx
create mode 100644 docs/content/docs/package_update.mdx
create mode 100644 docs/content/docs/resource_update.mdx
create mode 100644 docs/content/docs/resource_view_reorder.mdx
create mode 100644 docs/content/docs/resource_view_update.mdx
create mode 100644 docs/content/docs/task_status_update.mdx
create mode 100644 docs/content/docs/task_status_update_many.mdx
create mode 100644 docs/content/docs/term_translation_update.mdx
create mode 100644 docs/content/docs/term_translation_update_many.mdx
create mode 100644 docs/content/docs/user_update.mdx
create mode 100644 docs/content/docs/vocabulary_update.mdx
diff --git a/docs/content/docs/bulk_update_delete.mdx b/docs/content/docs/bulk_update_delete.mdx
new file mode 100644
index 0000000..30e2ebc
--- /dev/null
+++ b/docs/content/docs/bulk_update_delete.mdx
@@ -0,0 +1,20 @@
+---
+title: bulk_update_delete
+full: true
+_openapi:
+ method: PUT
+ route: bulk_update_delete
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Make a list of datasets deleted.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Make a list of datasets deleted.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/bulk_update_private.mdx b/docs/content/docs/bulk_update_private.mdx
new file mode 100644
index 0000000..fbaa8ac
--- /dev/null
+++ b/docs/content/docs/bulk_update_private.mdx
@@ -0,0 +1,20 @@
+---
+title: bulk_update_private
+full: true
+_openapi:
+ method: PUT
+ route: bulk_update_private
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Make a list of datasets private.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Make a list of datasets private.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/bulk_update_public.mdx b/docs/content/docs/bulk_update_public.mdx
new file mode 100644
index 0000000..8ca3ca5
--- /dev/null
+++ b/docs/content/docs/bulk_update_public.mdx
@@ -0,0 +1,20 @@
+---
+title: bulk_update_public
+full: true
+_openapi:
+ method: PUT
+ route: bulk_update_public
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Make a list of datasets public.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Make a list of datasets public.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/config_option_update.mdx b/docs/content/docs/config_option_update.mdx
new file mode 100644
index 0000000..540c3bc
--- /dev/null
+++ b/docs/content/docs/config_option_update.mdx
@@ -0,0 +1,69 @@
+---
+title: config_option_update
+full: true
+_openapi:
+ method: PUT
+ route: config_option_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Added in version 2.4.
+
+
+ Allows to modify some CKAN runtime-editable config options
+
+
+ It takes arbitrary key, value pairs and checks the keys against the
+ config options update schema. If some of the provided keys are not
+ present in the schema a `ValidationError` is raised. The values are
+ then validated against the schema, and if validation is passed, for
+ each key, value config option:
+
+
+ - It is stored on the `system_info` database table
+
+ - The Pylons `config` object is updated.
+
+ - The `app_globals` (`g`) object is updated (this only happens for
+ options explicitly defined in the `app_globals` module.
+
+
+ You can see all available runtime-editable
+ configuration options calling the `config_option_list()`
+ action.
+
+
+ Extensions can modify which configuration
+ options are runtime-editable. For details, check [Making configuration
+ options
+ runtime-editable](https://docs.ckan.org/en/2.11/extensions/remote-config-update.html).
+
+
+ You should only add config
+ options that you are comfortable they can be edited during runtime,
+ such as ones you've added in your own extension, or have reviewed the
+ use of in core CKAN.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Added in version 2.4.
+
+Allows to modify some CKAN runtime-editable config options
+
+It takes arbitrary key, value pairs and checks the keys against the config options update schema. If some of the provided keys are not present in the schema a `ValidationError` is raised. The values are then validated against the schema, and if validation is passed, for each key, value config option:
+
+- It is stored on the `system_info` database table
+- The Pylons `config` object is updated.
+- The `app_globals` (`g`) object is updated (this only happens for options explicitly defined in the `app_globals` module.
+
+You can see all available runtime-editable configuration options calling the `config_option_list()` action.
+
+Extensions can modify which configuration options are runtime-editable. For details, check [Making configuration options runtime-editable](https://docs.ckan.org/en/2.11/extensions/remote-config-update.html).
+
+You should only add config options that you are comfortable they can be edited during runtime, such as ones you've added in your own extension, or have reviewed the use of in core CKAN.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/group_update.mdx b/docs/content/docs/group_update.mdx
new file mode 100644
index 0000000..4ed97fc
--- /dev/null
+++ b/docs/content/docs/group_update.mdx
@@ -0,0 +1,39 @@
+---
+title: group_update
+full: true
+_openapi:
+ method: PUT
+ route: group_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Update a group.
+
+
+ You must be authorized to edit the group.
+
+
+ Update methods may delete parameters not
+ explicitly provided in the data_dict. If you want to edit only a
+ specific attribute use `group_patch` instead.
+
+
+ Plugins may change the parameters of this function depending on the
+ value of the group's `type` attribute, see the `IGroupForm` plugin
+ interface.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Update a group.
+
+You must be authorized to edit the group.
+
+Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `group_patch` instead.
+
+Plugins may change the parameters of this function depending on the value of the group's `type` attribute, see the `IGroupForm` plugin interface.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_update.mdx b/docs/content/docs/organization_update.mdx
new file mode 100644
index 0000000..224eea2
--- /dev/null
+++ b/docs/content/docs/organization_update.mdx
@@ -0,0 +1,32 @@
+---
+title: organization_update
+full: true
+_openapi:
+ method: PUT
+ route: organization_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Update an organization.
+
+
+ You must be authorized to edit the organization.
+
+
+ Update methods may delete parameters not
+ explicitly provided in the data_dict. If you want to edit only a
+ specific attribute use `organization_patch` instead.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Update an organization.
+
+You must be authorized to edit the organization.
+
+Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `organization_patch` instead.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_owner_org_update.mdx b/docs/content/docs/package_owner_org_update.mdx
new file mode 100644
index 0000000..8e6c4c2
--- /dev/null
+++ b/docs/content/docs/package_owner_org_update.mdx
@@ -0,0 +1,20 @@
+---
+title: package_owner_org_update
+full: true
+_openapi:
+ method: PUT
+ route: package_owner_org_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Update the owning organization of a dataset.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Update the owning organization of a dataset.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_relationship_update.mdx b/docs/content/docs/package_relationship_update.mdx
new file mode 100644
index 0000000..154ddd2
--- /dev/null
+++ b/docs/content/docs/package_relationship_update.mdx
@@ -0,0 +1,32 @@
+---
+title: package_relationship_update
+full: true
+_openapi:
+ method: PUT
+ route: package_relationship_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Update a relationship between two datasets (packages).
+
+
+ The subject, object and type parameters are required to identify the
+ relationship. Only the comment can be updated.
+
+
+ You must be authorized to edit both the subject and the object
+ datasets.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Update a relationship between two datasets (packages).
+
+The subject, object and type parameters are required to identify the relationship. Only the comment can be updated.
+
+You must be authorized to edit both the subject and the object datasets.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_resource_reorder.mdx b/docs/content/docs/package_resource_reorder.mdx
new file mode 100644
index 0000000..5a16df2
--- /dev/null
+++ b/docs/content/docs/package_resource_reorder.mdx
@@ -0,0 +1,22 @@
+---
+title: package_resource_reorder
+full: true
+_openapi:
+ method: PUT
+ route: package_resource_reorder
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Reorder resources against datasets. If only partial resource ids are
+ supplied then these are assumed to be first and the other resources
+ will stay in their original order.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Reorder resources against datasets. If only partial resource ids are supplied then these are assumed to be first and the other resources will stay in their original order.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_revise.mdx b/docs/content/docs/package_revise.mdx
new file mode 100644
index 0000000..24334cd
--- /dev/null
+++ b/docs/content/docs/package_revise.mdx
@@ -0,0 +1,196 @@
+---
+title: package_revise
+full: true
+_openapi:
+ method: PUT
+ route: package_revise
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Revise a dataset (package) selectively with match, filter, and update
+ parameters.
+
+
+ You must be authorized to edit the dataset and the groups that it
+ belongs to.
+
+
+ `match` and `update` parameters may also be passed as "flattened
+ keys", using either the item numeric index or its unique id (with a
+ minimum of 5 characters), e.g.
+ `update__resource__1f9ab__description="guidebook"` would set the
+ description of the resource with id starting with "1f9ab" to
+ "guidebook", and `update__resource__-1__description="guidebook"` would
+ do the same on the last resource in the dataset.
+
+
+ The `extend` suffix can also be used on the update parameter to add a
+ new item to a list, e.g. `update__resources__extend=[{"name": "new
+ resource", "url": "https://example.com"}]` will add a new resource to
+ the dataset with the provided `name` and `url`.
+
+
+ Usage examples:
+
+
+ - Change description in dataset, checking for old description:
+
+
+ ```
+
+ match={"notes": "old notes", "name": "xyz"}
+
+ update={"notes": "new notes"}
+
+ ```
+
+
+ - Identical to above, but using flattened keys:
+
+
+ ```
+
+ match__name="xyz"
+
+ match__notes="old notes"
+
+ update__notes="new notes"
+
+ ```
+
+
+ - Replace all fields at dataset level only, keep resources (note:
+ dataset id and type fields can’t be deleted)
+
+
+ ```
+
+ match={"id": "1234abc-1420-cbad-1922"}
+
+ filter=["+resources", "-*"]
+
+ update={"name": "fresh-start", "title": "Fresh Start"}
+
+ ```
+
+
+ - Add a new resource (__extend on flattened key):
+
+
+ ```
+
+ match={"id": "abc0123-1420-cbad-1922"}
+
+ update__resources__extend=[{"name": "new resource", "url":
+ "http://example.com"}]
+
+ ```
+
+
+ - Update a resource by its index:
+
+
+ ```
+
+ match={"name": "my-data"}
+
+ update__resources__0={"name": "new name, first resource"}
+
+ ```
+
+
+ - Update a resource by its id (provide at least 5 characters):
+
+
+ ```
+
+ match={"name": "their-data"}
+
+ update__resources__19cfad={"description": "right one for sure"}
+
+ ```
+
+
+ - Replace all fields of a resource:
+
+
+ ```
+
+ match={"id": "34a12bc-1420-cbad-1922"}
+
+ filter=["+resources__1492a__id", "-resources__1492a__*"]
+
+ update__resources__1492a={"name": "edits here", "url":
+ "http://example.com"}
+
+ ```
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Revise a dataset (package) selectively with match, filter, and update parameters.
+
+You must be authorized to edit the dataset and the groups that it belongs to.
+
+`match` and `update` parameters may also be passed as "flattened keys", using either the item numeric index or its unique id (with a minimum of 5 characters), e.g. `update__resource__1f9ab__description="guidebook"` would set the description of the resource with id starting with "1f9ab" to "guidebook", and `update__resource__-1__description="guidebook"` would do the same on the last resource in the dataset.
+
+The `extend` suffix can also be used on the update parameter to add a new item to a list, e.g. `update__resources__extend=[{"name": "new resource", "url": "https://example.com"}]` will add a new resource to the dataset with the provided `name` and `url`.
+
+Usage examples:
+
+- Change description in dataset, checking for old description:
+
+```
+match={"notes": "old notes", "name": "xyz"}
+update={"notes": "new notes"}
+```
+
+- Identical to above, but using flattened keys:
+
+```
+match__name="xyz"
+match__notes="old notes"
+update__notes="new notes"
+```
+
+- Replace all fields at dataset level only, keep resources (note: dataset id and type fields can’t be deleted)
+
+```
+match={"id": "1234abc-1420-cbad-1922"}
+filter=["+resources", "-*"]
+update={"name": "fresh-start", "title": "Fresh Start"}
+```
+
+- Add a new resource (__extend on flattened key):
+
+```
+match={"id": "abc0123-1420-cbad-1922"}
+update__resources__extend=[{"name": "new resource", "url": "http://example.com"}]
+```
+
+- Update a resource by its index:
+
+```
+match={"name": "my-data"}
+update__resources__0={"name": "new name, first resource"}
+```
+
+- Update a resource by its id (provide at least 5 characters):
+
+```
+match={"name": "their-data"}
+update__resources__19cfad={"description": "right one for sure"}
+```
+
+- Replace all fields of a resource:
+
+```
+match={"id": "34a12bc-1420-cbad-1922"}
+filter=["+resources__1492a__id", "-resources__1492a__*"]
+update__resources__1492a={"name": "edits here", "url": "http://example.com"}
+```
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_update.mdx b/docs/content/docs/package_update.mdx
new file mode 100644
index 0000000..a8ba21d
--- /dev/null
+++ b/docs/content/docs/package_update.mdx
@@ -0,0 +1,47 @@
+---
+title: package_update
+full: true
+_openapi:
+ method: PUT
+ route: package_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Update a dataset (package).
+
+
+ You must be authorized to edit the dataset and the groups that it
+ belongs to.
+
+
+ Update methods may delete parameters not
+ explicitly provided in the data_dict. If you want to edit only a
+ specific attribute use `package_patch` instead.
+
+
+ It is recommended to call `ckan.logic.action.get.package_show()`, make
+ the desired changes to the result, and then call `package_update()`
+ with it.
+
+
+ Plugins may change the parameters of this function depending on the
+ value of the dataset's `type` attribute, see the `IDatasetForm` plugin
+ interface.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Update a dataset (package).
+
+You must be authorized to edit the dataset and the groups that it belongs to.
+
+Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `package_patch` instead.
+
+It is recommended to call `ckan.logic.action.get.package_show()`, make the desired changes to the result, and then call `package_update()` with it.
+
+Plugins may change the parameters of this function depending on the value of the dataset's `type` attribute, see the `IDatasetForm` plugin interface.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_update.mdx b/docs/content/docs/resource_update.mdx
new file mode 100644
index 0000000..5ffe82f
--- /dev/null
+++ b/docs/content/docs/resource_update.mdx
@@ -0,0 +1,33 @@
+---
+title: resource_update
+full: true
+_openapi:
+ method: PUT
+ route: resource_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Update a resource.
+
+
+ To update a resource you must be authorized to update the dataset that
+ the resource belongs to.
+
+
+ Update methods may delete parameters not
+ explicitly provided in the data_dict. If you want to edit only a
+ specific attribute use `resource_patch` instead.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Update a resource.
+
+To update a resource you must be authorized to update the dataset that the resource belongs to.
+
+Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `resource_patch` instead.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_reorder.mdx b/docs/content/docs/resource_view_reorder.mdx
new file mode 100644
index 0000000..8408818
--- /dev/null
+++ b/docs/content/docs/resource_view_reorder.mdx
@@ -0,0 +1,20 @@
+---
+title: resource_view_reorder
+full: true
+_openapi:
+ method: PUT
+ route: resource_view_reorder
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Reorder resource views.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Reorder resource views.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_update.mdx b/docs/content/docs/resource_view_update.mdx
new file mode 100644
index 0000000..e6e0c89
--- /dev/null
+++ b/docs/content/docs/resource_view_update.mdx
@@ -0,0 +1,26 @@
+---
+title: resource_view_update
+full: true
+_openapi:
+ method: PUT
+ route: resource_view_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Update a resource view.
+
+
+ To update a resource_view you must be authorized to update the
+ resource that the resource_view belongs to.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Update a resource view.
+
+To update a resource_view you must be authorized to update the resource that the resource_view belongs to.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/task_status_update.mdx b/docs/content/docs/task_status_update.mdx
new file mode 100644
index 0000000..902149e
--- /dev/null
+++ b/docs/content/docs/task_status_update.mdx
@@ -0,0 +1,20 @@
+---
+title: task_status_update
+full: true
+_openapi:
+ method: PUT
+ route: task_status_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Update a task status.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Update a task status.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/task_status_update_many.mdx b/docs/content/docs/task_status_update_many.mdx
new file mode 100644
index 0000000..b14f8a5
--- /dev/null
+++ b/docs/content/docs/task_status_update_many.mdx
@@ -0,0 +1,20 @@
+---
+title: task_status_update_many
+full: true
+_openapi:
+ method: PUT
+ route: task_status_update_many
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Update many task statuses at once.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Update many task statuses at once.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/term_translation_update.mdx b/docs/content/docs/term_translation_update.mdx
new file mode 100644
index 0000000..4f4c4a1
--- /dev/null
+++ b/docs/content/docs/term_translation_update.mdx
@@ -0,0 +1,24 @@
+---
+title: term_translation_update
+full: true
+_openapi:
+ method: PUT
+ route: term_translation_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Create or update a term translation.
+
+ You must be a sysadmin to create or update term translations.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Create or update a term translation.
+
+You must be a sysadmin to create or update term translations.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/term_translation_update_many.mdx b/docs/content/docs/term_translation_update_many.mdx
new file mode 100644
index 0000000..2034d53
--- /dev/null
+++ b/docs/content/docs/term_translation_update_many.mdx
@@ -0,0 +1,20 @@
+---
+title: term_translation_update_many
+full: true
+_openapi:
+ method: PUT
+ route: term_translation_update_many
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Create or update many term translations at once.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Create or update many term translations at once.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/user_update.mdx b/docs/content/docs/user_update.mdx
new file mode 100644
index 0000000..6844a36
--- /dev/null
+++ b/docs/content/docs/user_update.mdx
@@ -0,0 +1,33 @@
+---
+title: user_update
+full: true
+_openapi:
+ method: POST
+ route: user_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Update a user account.
+
+
+ Normal users can only update their own user accounts. Sysadmins can
+ update any user account and modify existing usernames.
+
+
+ Update methods may delete parameters not
+ explicitly provided in the data_dict. If you want to edit only a
+ specific attribute use `user_patch` instead.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Update a user account.
+
+Normal users can only update their own user accounts. Sysadmins can update any user account and modify existing usernames.
+
+Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `user_patch` instead.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/vocabulary_update.mdx b/docs/content/docs/vocabulary_update.mdx
new file mode 100644
index 0000000..7991693
--- /dev/null
+++ b/docs/content/docs/vocabulary_update.mdx
@@ -0,0 +1,24 @@
+---
+title: vocabulary_update
+full: true
+_openapi:
+ method: PUT
+ route: vocabulary_update
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: |
+ Update a tag vocabulary.
+
+ You must a sysadmin to update vocabularies.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Update a tag vocabulary.
+
+You must a sysadmin to update vocabularies.
+
+
+
\ No newline at end of file
diff --git a/docs/lib/openapi.yml b/docs/lib/openapi.yml
index 13b3604..2a64616 100644
--- a/docs/lib/openapi.yml
+++ b/docs/lib/openapi.yml
@@ -2212,6 +2212,886 @@ paths:
name:
type: string
description: distinctive name for API Token
+ resource_update:
+ put:
+ operationId: resource_update
+ summary: resource_update
+ description: |
+ Update a resource.
+
+ To update a resource you must be authorized to update the dataset that the resource belongs to.
+
+ Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `resource_patch` instead.
+ requestBody:
+ required: false
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the resource to update
+ package_id:
+ type: string
+ description: id of package that the resource should be added to
+ url:
+ type: string
+ description: url of resource
+ description:
+ type: string
+ format:
+ type: string
+ hash:
+ type: string
+ name:
+ type: string
+ resource_type:
+ type: string
+ mimetype:
+ type: string
+ mimetype_inner:
+ type: string
+ cache_url:
+ type: string
+ size:
+ type: integer
+ created:
+ type: string
+ last_modified:
+ type: string
+ cache_last_updated:
+ type: string
+ upload:
+ type: string
+ format: binary
+ resource_view_update:
+ put:
+ operationId: resource_view_update
+ summary: resource_view_update
+ description: |
+ Update a resource view.
+
+ To update a resource_view you must be authorized to update the resource that the resource_view belongs to.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the resource_view to update
+ resource_id:
+ type: string
+ description: id of the resource
+ title:
+ type: string
+ description: the title of the view
+ description:
+ type: string
+ description: a description of the view
+ view_type:
+ type: string
+ description: type of view
+ config:
+ type: string
+ description: (JSON string) options necessary to recreate a view state
+ resource_view_reorder:
+ put:
+ operationId: resource_view_reorder
+ summary: resource_view_reorder
+ description: |
+ Reorder resource views.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the resource
+ order:
+ type: array
+ description: the list of id of the resource to update the order of the views
+ items:
+ type: string
+ package_update:
+ put:
+ operationId: package_update
+ summary: package_update
+ description: |
+ Update a dataset (package).
+
+ You must be authorized to edit the dataset and the groups that it belongs to.
+
+ Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `package_patch` instead.
+
+ It is recommended to call `ckan.logic.action.get.package_show()`, make the desired changes to the result, and then call `package_update()` with it.
+
+ Plugins may change the parameters of this function depending on the value of the dataset's `type` attribute, see the `IDatasetForm` plugin interface.
+ requestBody:
+ required: false
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the dataset to update
+ name:
+ type: string
+ description: the name of the new dataset, must be between 2 and 100 characters long and contain only lowercase alphanumeric characters, `-` and `_`
+ title:
+ type: string
+ description: "the title of the dataset (default: same as `name`)"
+ private:
+ type: boolean
+ description: "if `True` creates a private dataset"
+ author:
+ type: string
+ description: the name of the dataset's author
+ author_email:
+ type: string
+ description: the email address of the dataset's author
+ maintainer:
+ type: string
+ description: the name of the dataset's maintainer
+ maintainer_email:
+ type: string
+ description: the email address of the dataset's maintainer
+ license_id:
+ type: string
+ description: the id of the dataset's license, see `license_list()` for available values
+ notes:
+ type: string
+ description: a description of the dataset
+ url:
+ type: string
+ description: a URL for the dataset's source
+ version:
+ type: string
+ description: no longer than 100 characters
+ state:
+ type: string
+ description: "the current state of the dataset, e.g. `'active'` or `'deleted'`, only active datasets show up in search results and other lists of datasets, thsi parameter will be ignored if you are not authorized to change the state of the dataset (default: `'active`')"
+ type:
+ type: string
+ description: the type of the dataset, `IDatasetForm` plugins associate themselves with different dataset types and provide custom dataset handling behaviour for these types
+ resources:
+ type: array
+ description: the dataset's resources
+ items:
+ type: object
+ properties:
+ package_id:
+ type: string
+ description: id of package that the resource should be added to
+ url:
+ type: string
+ description: url of resource
+ description:
+ type: string
+ format:
+ type: string
+ hash:
+ type: string
+ name:
+ type: string
+ resource_type:
+ type: string
+ mimetype:
+ type: string
+ mimetype_inner:
+ type: string
+ cache_url:
+ type: string
+ size:
+ type: integer
+ created:
+ type: string
+ last_modified:
+ type: string
+ cache_last_updated:
+ type: string
+ upload:
+ type: string
+ format: binary
+ tags:
+ type: array
+ description: the dataset's tags
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ description: "the name for the new tag, a string between 2 and 100 characters long containing only alphanumeric characters, spaces and the characters `-`, `_` and `.`, e.g. `'Jazz'`"
+ vocabulary_id:
+ type: string
+ description: "the id of the vocabulary that the new tag should be added to, e.g. the id of vocabulary `'Genre'`"
+ extras:
+ type: array
+ description: "the dataset's extras, extras are arbitrary (key: value) metadata items that can be added to datasets, each extra dictionary should have keys `'key'` (a string), `'value'` (a string)"
+ items:
+ type: object
+ additionalProperties: true
+ plugin_data:
+ type: object
+ description: |
+ Private package data belonging to plugins. Only sysadmin users may set this value. It should be a dict that can be dumped into JSON, and plugins should namespace their data with the plugin name to avoid collisions with other plugins, e.g.:
+
+ ```json
+ {
+ "name": "test-dataset",
+ "plugin_data": {
+ "plugin1": {"key1": "value1"},
+ "plugin2": {"key2": "value2"}
+ }
+ }
+ ```
+ additionalProperties: true
+ relationships_as_object:
+ type: array
+ description: list of relationship dictionaries
+ items:
+ type: object
+ properties:
+ subject:
+ type: string
+ description: the id or name of the dataset that is the subject of the relationship
+ object:
+ type: string
+ description: the id or name of the dataset that is the object of the relationship
+ type:
+ type: string
+ description: "the type of the relationship, one of `'depends_on'`, `'dependency_of'`, `'derives_from'`, `'has_derivation'`, `'links_to'`, `'linked_from'`, `'child_of'` or `'parent_of'`"
+ comment:
+ type: string
+ description: a comment about the relationship
+ relationships_as_subject:
+ type: array
+ description: list of relationship dictionaries
+ items:
+ type: object
+ properties:
+ subject:
+ type: string
+ description: the id or name of the dataset that is the subject of the relationship
+ object:
+ type: string
+ description: the id or name of the dataset that is the object of the relationship
+ type:
+ type: string
+ description: "the type of the relationship, one of `'depends_on'`, `'dependency_of'`, `'derives_from'`, `'has_derivation'`, `'links_to'`, `'linked_from'`, `'child_of'` or `'parent_of'`"
+ comment:
+ type: string
+ description: a comment about the relationship
+ groups:
+ type: array
+ description: "the groups to which the dataset belongs, each group dictionary should have one or more of the following keys which identify an existing group: `'id'` (the id of the group, string), or `'name'` (the name of the group, string), to see which groups exist call `group_list()`"
+ items:
+ type: object
+ additionalProperties: true
+ owner_org:
+ type: string
+ description: "the id of the dataset's owning organization, see `organization_list()` or `organization_list_for_user()` for available values. This parameter can be made optional if the config option [`ckan.auth.create_unowned_dataset`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-create-unowned-dataset) is set to `True`."
+ package_revise:
+ put:
+ operationId: package_revise
+ summary: package_revise
+ description: |
+ Revise a dataset (package) selectively with match, filter, and update parameters.
+
+ You must be authorized to edit the dataset and the groups that it belongs to.
+
+ `match` and `update` parameters may also be passed as "flattened keys", using either the item numeric index or its unique id (with a minimum of 5 characters), e.g. `update__resource__1f9ab__description="guidebook"` would set the description of the resource with id starting with "1f9ab" to "guidebook", and `update__resource__-1__description="guidebook"` would do the same on the last resource in the dataset.
+
+ The `extend` suffix can also be used on the update parameter to add a new item to a list, e.g. `update__resources__extend=[{"name": "new resource", "url": "https://example.com"}]` will add a new resource to the dataset with the provided `name` and `url`.
+
+ Usage examples:
+
+ - Change description in dataset, checking for old description:
+
+ ```
+ match={"notes": "old notes", "name": "xyz"}
+ update={"notes": "new notes"}
+ ```
+
+ - Identical to above, but using flattened keys:
+
+ ```
+ match__name="xyz"
+ match__notes="old notes"
+ update__notes="new notes"
+ ```
+
+ - Replace all fields at dataset level only, keep resources (note: dataset id and type fields can’t be deleted)
+
+ ```
+ match={"id": "1234abc-1420-cbad-1922"}
+ filter=["+resources", "-*"]
+ update={"name": "fresh-start", "title": "Fresh Start"}
+ ```
+
+ - Add a new resource (__extend on flattened key):
+
+ ```
+ match={"id": "abc0123-1420-cbad-1922"}
+ update__resources__extend=[{"name": "new resource", "url": "http://example.com"}]
+ ```
+
+ - Update a resource by its index:
+
+ ```
+ match={"name": "my-data"}
+ update__resources__0={"name": "new name, first resource"}
+ ```
+
+ - Update a resource by its id (provide at least 5 characters):
+
+ ```
+ match={"name": "their-data"}
+ update__resources__19cfad={"description": "right one for sure"}
+ ```
+
+ - Replace all fields of a resource:
+
+ ```
+ match={"id": "34a12bc-1420-cbad-1922"}
+ filter=["+resources__1492a__id", "-resources__1492a__*"]
+ update__resources__1492a={"name": "edits here", "url": "http://example.com"}
+ ```
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ match:
+ type: object
+ description: "a dict containing \"id\" or \"name\" values of the dataset to update, all values provided must match the current dataset values or a `ValidationError` will be raised. e.g. `{\"name\": \"my-data\", \"resources\": {[\"name\": \"big.csv\"]}}` would abort if the `my-data` dataset's first resource name is not \"big.csv\"."
+ additionalProperties: true
+ filter:
+ type: array
+ description: "a list of string patterns of fields to remove from the current dataset. e.g. `\"-resources__1\"` would remove the second resource, `\"+title, +resources, -*\"` would remove all fields at the dataset level except title and all resources (default: `[]`)"
+ items:
+ type: string
+ update:
+ type: object
+ description: "a dict with values to update/create after filtering e.g. `{\"resources\": [{\"description\": \"file here\"}]}` would update the description for the first resource"
+ additionalProperties: true
+ include:
+ type: array
+ description: "a list of string pattern of fields to include in response e.g. `\"-*\"` to return nothing (default: `[]` all fields returned)"
+ items:
+ type: string
+ package_resource_reorder:
+ put:
+ operationId: package_resource_reorder
+ summary: package_resource_reorder
+ description: |
+ Reorder resources against datasets. If only partial resource ids are supplied then these are assumed to be first and the other resources will stay in their original order.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id or name of the package to update
+ order:
+ type: array
+ description: a list of resource ids in the order needed
+ items:
+ type: string
+ package_relationship_update:
+ put:
+ operationId: package_relationship_update
+ summary: package_relationship_update
+ description: |
+ Update a relationship between two datasets (packages).
+
+ The subject, object and type parameters are required to identify the relationship. Only the comment can be updated.
+
+ You must be authorized to edit both the subject and the object datasets.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ subject:
+ type: string
+ description: the name or id of teh dataset that is the subject of the relationship
+ object:
+ type: string
+ description: the name or id of the dataset that is the object of the relationship
+ type:
+ type: string
+ description: the type of the relationship, one of `'depends_on'`, `'dependency_of'`, `'derives_from'`, `'has_derivation'`, `'links_to'`, `'linked_from'`, `'child_of'`, or `'parent_of'`
+ comment:
+ type: string
+ description: a comment about the relationship
+ group_update:
+ put:
+ operationId: group_update
+ summary: group_update
+ description: |
+ Update a group.
+
+ You must be authorized to edit the group.
+
+ Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `group_patch` instead.
+
+ Plugins may change the parameters of this function depending on the value of the group's `type` attribute, see the `IGroupForm` plugin interface.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the group to update
+ name:
+ type: string
+ description: the name of the group, a string between 2 and 100 characters long, containing only lowercase alphanumeric characters, `-`, and `_`
+ title:
+ type: string
+ description: the title of the group
+ description:
+ type: string
+ description: the description of the group
+ image_url:
+ type: string
+ description: the URL to an image to be displayed on the group's page
+ type:
+ type: string
+ description: "the type of the group (default: `'group'`), `IGroupForm` plugins associate themselves with different group types and provide custom group handling behavior for these types cannot be 'organization'"
+ state:
+ type: string
+ description: "the current state of the group, e.g. `'active'` or `'deleted'`, only active groups show up in search results and other lists of groups, this parameter will be ignored if you are not authorized to change the state of the group (default: `'active'`)"
+ approval_status:
+ type: string
+ extras:
+ type: array
+ description: "the group's extras, extras are arbitrary (key: value) metadata items that can be added to groups, each extra dictionary should have keys `'key'` (a string), `'value'` (a string), and optionally `'deleted'`"
+ items:
+ type: object
+ additionalProperties: true
+ packages:
+ type: array
+ description: "the datasets (packages) that belong to the group, a list of dictionaries each with keys `'name'` (string, the id or name of the dataset) and optionally `'title'` (string, the title of the dataset)"
+ items:
+ type: object
+ additionalProperties: true
+ groups:
+ type: array
+ description: "the groups that belong to the group, a list of dictionaries each with key `'name'` (string, the id or name of the group) and optionally `'capacity'` (string, the capacity in which the group is a member of the group)"
+ items:
+ type: object
+ additionalProperties: true
+ users:
+ type: array
+ description: "the users that belong to the group, a list of dictionaries each with key `'name'` (string, the id or name of the user) and optionally `'capacity'` (string, the capacity in which the user is a member of the group)"
+ items:
+ type: object
+ additionalProperties: true
+ organization_update:
+ put:
+ operationId: organization_update
+ summary: organization_update
+ # Original docs say "a organization" when it should be "an organization"
+ description: |
+ Update an organization.
+
+ You must be authorized to edit the organization.
+
+ Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `organization_patch` instead.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the organization to update
+ name:
+ type: string
+ description: the name of the organization, a string between 2 and 100 characters long, containing only lowercase alphanumeric characters, `-`, and `_`
+ title:
+ type: string
+ description: the title of the organization
+ description:
+ type: string
+ description: the description of the organization
+ image_url:
+ type: string
+ description: the URL to an image to be displayed on the organization's page
+ state:
+ type: string
+ description: "the current state of the organization, e.g. `'active'` or `'deleted'`, only active organization show up in search results and other lists of organization, this parameter will be ignored if you are not authorized to change the state of the organization (default: `'active'`)"
+ approval_status:
+ type: string
+ extras:
+ type: array
+ description: "the organization's extras, extras are arbitrary (key: value) metadata items that can be added to organization, each extra dictionary should have keys `'key'` (a string), `'value'` (a string), and optionally `'deleted'`"
+ items:
+ type: object
+ additionalProperties: true
+ packages:
+ type: array
+ description: "ignored. use `package_owner_org_update()` to change package ownership"
+ items:
+ type: object
+ additionalProperties: true
+ users:
+ type: array
+ description: "the users that belong to the organization, a list of dictionaries each with key `'name'` (string, the id or name of the user) and optionally `'capacity'` (string, the capacity in which the user is a member of the organization)"
+ items:
+ type: object
+ additionalProperties: true
+ user_update:
+ post:
+ operationId: user_update
+ summary: user_update
+ description: |
+ Update a user account.
+
+ Normal users can only update their own user accounts. Sysadmins can update any user account and modify existing usernames.
+
+ Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `user_patch` instead.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the user to update
+ name:
+ type: string
+ description: the name of the new user, a string between 2 and 100 characters long, containing only lowercase alphanumeric characters, `-`, and `_`
+ email:
+ type: string
+ description: the email address for the new user
+ password:
+ type: string
+ description: the password of the new user, a string of at least 4 characters
+ fullname:
+ type: string
+ description: the full name of the new user
+ about:
+ type: string
+ description: a description of the new user
+ image_url:
+ type: string
+ # Original docs say "group's page" which should be fixed
+ description: the URL to an image to be displayed on the user's page
+ plugin_extras:
+ type: object
+ description: |
+ private extra user data belonging to plugins. Only sysadmin users may set this value. It should be a dict that can be dumped into JSON, and plugins should namespace their extras with the plugin name to avoid collisions with other plugins, e.g.:
+
+ ```json
+ {
+ "name": "test_user",
+ "email": "test@example.com",
+ "plugin_extras": {
+ "my_plugin": {
+ "private_extra": 1
+ },
+ "another_plugin": {
+ "another_extra": True
+ }
+ }
+ }
+ ```
+ additionalProperties: true
+ with_apitoken:
+ type: boolean
+ description: whether to create an API token for the user
+ task_status_update:
+ put:
+ operationId: task_status_update
+ summary: task_status_update
+ description: |
+ Update a task status.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the task status to update
+ entity_id:
+ type: string
+ entity_type:
+ type: string
+ task_type:
+ type: string
+ key:
+ type: string
+ value:
+ type: string
+ state:
+ type: string
+ last_updated:
+ type: string
+ # Not sure about the type for this
+ error:
+ type: string
+ task_status_update_many:
+ put:
+ operationId: task_status_update_many
+ summary: task_status_update_many
+ description: |
+ Update many task statuses at once.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ description: the task_status dictionaries to update
+ items:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the task status to update
+ entity_id:
+ type: string
+ entity_type:
+ type: string
+ task_type:
+ type: string
+ key:
+ type: string
+ value:
+ type: string
+ state:
+ type: string
+ last_updated:
+ type: string
+ error:
+ type: string
+ term_translation_update:
+ put:
+ operationId: term_translation_update
+ summary: term_translation_update
+ description: |
+ Create or update a term translation.
+
+ You must be a sysadmin to create or update term translations.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ term:
+ type: string
+ description: the term to be translated, in the original language, e.g. `'fruit'`
+ term_translation:
+ type: string
+ description: the translation of the term, e.g. `'obst'`
+ lang_code:
+ type: string
+ description: the language code of the translation, e.g. `'de'`
+ term_translation_update_many:
+ put:
+ operationId: term_translation_update_many
+ summary: term_translation_update_many
+ description: |
+ Create or update many term translations at once.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ description: the term translation dictionaries to create or update
+ items:
+ type: object
+ properties:
+ term:
+ type: string
+ description: the term to be translated, in the original language, e.g. `'fruit'`
+ term_translation:
+ type: string
+ description: the translation of the term, e.g. `'obst'`
+ lang_code:
+ type: string
+ description: the language code of the translation, e.g. `'de'`
+ vocabulary_update:
+ put:
+ operationId: vocabulary_update
+ summary: vocabulary_update
+ description: |
+ Update a tag vocabulary.
+
+ You must a sysadmin to update vocabularies.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the vocabulary to update
+ name:
+ type: string
+ description: the name of the new vocabulary, e.g. `'Genre'`
+ tags:
+ type: array
+ description: the new tags to add to the new vocabulary, for the format of tag dictionaries see `tag_create()`
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ description: "the name for the new tag, a string between 2 and 100 characters long containing only alphanumeric characters, spaces and the characters `-`, `_`, and `.`, e.g. `'Fruits'`"
+ vocabulary_id:
+ type: string
+ description: "the id of the vocabulary that the new tag should be added to, e.g. the id of vocabulary `'Genre'`"
+ package_owner_org_update:
+ put:
+ operationId: package_owner_org_update
+ summary: package_owner_org_update
+ description: |
+ Update the owning organization of a dataset.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the dataset to update
+ organization_id:
+ type: string
+ description: the name or id of the owning organization
+ bulk_update_private:
+ put:
+ operationId: bulk_update_private
+ summary: bulk_update_private
+ description: |
+ Make a list of datasets private.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ datasets:
+ type: array
+ description: list of ids of the datasets to update
+ items:
+ type: string
+ org_id:
+ type: string
+ description: id of the owning organization
+ bulk_update_public:
+ put:
+ operationId: bulk_update_public
+ summary: bulk_update_public
+ description: |
+ Make a list of datasets public.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ datasets:
+ type: array
+ description: list of ids of the datasets to update
+ items:
+ type: string
+ org_id:
+ type: string
+ description: id of the owning organization
+ bulk_update_delete:
+ put:
+ operationId: bulk_update_delete
+ summary: bulk_update_delete
+ description: |
+ Make a list of datasets deleted.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ datasets:
+ type: array
+ description: list of ids of the datasets to update
+ items:
+ type: string
+ org_id:
+ type: string
+ description: id of the owning organization
+ config_option_update:
+ put:
+ operationId: config_option_update
+ summary: config_option_update
+ description: |
+ Added in version 2.4.
+
+ Allows to modify some CKAN runtime-editable config options
+
+ It takes arbitrary key, value pairs and checks the keys against the config options update schema. If some of the provided keys are not present in the schema a `ValidationError` is raised. The values are then validated against the schema, and if validation is passed, for each key, value config option:
+
+ - It is stored on the `system_info` database table
+ - The Pylons `config` object is updated.
+ - The `app_globals` (`g`) object is updated (this only happens for options explicitly defined in the `app_globals` module.
+
+ You can see all available runtime-editable configuration options calling the `config_option_list()` action.
+
+ Extensions can modify which configuration options are runtime-editable. For details, check [Making configuration options runtime-editable](https://docs.ckan.org/en/2.11/extensions/remote-config-update.html).
+
+ You should only add config options that you are comfortable they can be edited during runtime, such as ones you've added in your own extension, or have reviewed the use of in core CKAN.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ key:
+ type: string
+ description: a configuration option key (e.g. `ckan.site_title`). It must be present on the `update_configuration_schema`
user_delete:
delete:
operationId: user_delete
From 6e44213d4e5334106d8bf71549c7474e19395c54 Mon Sep 17 00:00:00 2001
From: rzmk <30333942+rzmk@users.noreply.github.com>
Date: Tue, 2 Dec 2025 20:10:38 -0500
Subject: [PATCH 07/11] feat(docs): add all patch endpoints, added all default
CKAN endpoints!
---
docs/lib/openapi.yml | 404 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 404 insertions(+)
diff --git a/docs/lib/openapi.yml b/docs/lib/openapi.yml
index 2a64616..ec03700 100644
--- a/docs/lib/openapi.yml
+++ b/docs/lib/openapi.yml
@@ -3092,6 +3092,410 @@ paths:
key:
type: string
description: a configuration option key (e.g. `ckan.site_title`). It must be present on the `update_configuration_schema`
+ package_patch:
+ patch:
+ operationId: package_patch
+ summary: package_patch
+ description: |
+ Patch a dataset (package).
+
+ The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
+
+ To partially update resources or other metadata not at the top level of a package use `package_revise()` instead to maintain existing nested values.
+
+ You must be authorized to edit the dataset and the groups that it belongs to.
+ requestBody:
+ required: false
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the dataset
+ name:
+ type: string
+ description: the name of the new dataset, must be between 2 and 100 characters long and contain only lowercase alphanumeric characters, `-` and `_`
+ title:
+ type: string
+ description: "the title of the dataset (default: same as `name`)"
+ private:
+ type: boolean
+ description: "if `True` creates a private dataset"
+ author:
+ type: string
+ description: the name of the dataset's author
+ author_email:
+ type: string
+ description: the email address of the dataset's author
+ maintainer:
+ type: string
+ description: the name of the dataset's maintainer
+ maintainer_email:
+ type: string
+ description: the email address of the dataset's maintainer
+ license_id:
+ type: string
+ description: the id of the dataset's license, see `license_list()` for available values
+ notes:
+ type: string
+ description: a description of the dataset
+ url:
+ type: string
+ description: a URL for the dataset's source
+ version:
+ type: string
+ description: no longer than 100 characters
+ state:
+ type: string
+ description: "the current state of the dataset, e.g. `'active'` or `'deleted'`, only active datasets show up in search results and other lists of datasets, thsi parameter will be ignored if you are not authorized to change the state of the dataset (default: `'active`')"
+ type:
+ type: string
+ description: the type of the dataset, `IDatasetForm` plugins associate themselves with different dataset types and provide custom dataset handling behaviour for these types
+ resources:
+ type: array
+ description: the dataset's resources
+ items:
+ type: object
+ properties:
+ package_id:
+ type: string
+ description: id of package that the resource should be added to
+ url:
+ type: string
+ description: url of resource
+ description:
+ type: string
+ format:
+ type: string
+ hash:
+ type: string
+ name:
+ type: string
+ resource_type:
+ type: string
+ mimetype:
+ type: string
+ mimetype_inner:
+ type: string
+ cache_url:
+ type: string
+ size:
+ type: integer
+ created:
+ type: string
+ last_modified:
+ type: string
+ cache_last_updated:
+ type: string
+ upload:
+ type: string
+ format: binary
+ tags:
+ type: array
+ description: the dataset's tags
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ description: "the name for the new tag, a string between 2 and 100 characters long containing only alphanumeric characters, spaces and the characters `-`, `_` and `.`, e.g. `'Jazz'`"
+ vocabulary_id:
+ type: string
+ description: "the id of the vocabulary that the new tag should be added to, e.g. the id of vocabulary `'Genre'`"
+ extras:
+ type: array
+ description: "the dataset's extras, extras are arbitrary (key: value) metadata items that can be added to datasets, each extra dictionary should have keys `'key'` (a string), `'value'` (a string)"
+ items:
+ type: object
+ additionalProperties: true
+ plugin_data:
+ type: object
+ description: |
+ Private package data belonging to plugins. Only sysadmin users may set this value. It should be a dict that can be dumped into JSON, and plugins should namespace their data with the plugin name to avoid collisions with other plugins, e.g.:
+
+ ```json
+ {
+ "name": "test-dataset",
+ "plugin_data": {
+ "plugin1": {"key1": "value1"},
+ "plugin2": {"key2": "value2"}
+ }
+ }
+ ```
+ additionalProperties: true
+ relationships_as_object:
+ type: array
+ description: list of relationship dictionaries
+ items:
+ type: object
+ properties:
+ subject:
+ type: string
+ description: the id or name of the dataset that is the subject of the relationship
+ object:
+ type: string
+ description: the id or name of the dataset that is the object of the relationship
+ type:
+ type: string
+ description: "the type of the relationship, one of `'depends_on'`, `'dependency_of'`, `'derives_from'`, `'has_derivation'`, `'links_to'`, `'linked_from'`, `'child_of'` or `'parent_of'`"
+ comment:
+ type: string
+ description: a comment about the relationship
+ relationships_as_subject:
+ type: array
+ description: list of relationship dictionaries
+ items:
+ type: object
+ properties:
+ subject:
+ type: string
+ description: the id or name of the dataset that is the subject of the relationship
+ object:
+ type: string
+ description: the id or name of the dataset that is the object of the relationship
+ type:
+ type: string
+ description: "the type of the relationship, one of `'depends_on'`, `'dependency_of'`, `'derives_from'`, `'has_derivation'`, `'links_to'`, `'linked_from'`, `'child_of'` or `'parent_of'`"
+ comment:
+ type: string
+ description: a comment about the relationship
+ groups:
+ type: array
+ description: "the groups to which the dataset belongs, each group dictionary should have one or more of the following keys which identify an existing group: `'id'` (the id of the group, string), or `'name'` (the name of the group, string), to see which groups exist call `group_list()`"
+ items:
+ type: object
+ additionalProperties: true
+ owner_org:
+ type: string
+ description: "the id of the dataset's owning organization, see `organization_list()` or `organization_list_for_user()` for available values. This parameter can be made optional if the config option [`ckan.auth.create_unowned_dataset`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-create-unowned-dataset) is set to `True`."
+ resource_patch:
+ patch:
+ operationId: resource_patch
+ summary: resource_patch
+ description: |
+ Patch a resource.
+
+ The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
+ requestBody:
+ required: false
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the id of the resource
+ package_id:
+ type: string
+ description: id of package that the resource should be added to
+ url:
+ type: string
+ description: url of resource
+ description:
+ type: string
+ format:
+ type: string
+ hash:
+ type: string
+ name:
+ type: string
+ resource_type:
+ type: string
+ mimetype:
+ type: string
+ mimetype_inner:
+ type: string
+ cache_url:
+ type: string
+ size:
+ type: integer
+ created:
+ type: string
+ last_modified:
+ type: string
+ cache_last_updated:
+ type: string
+ upload:
+ type: string
+ format: binary
+ group_patch:
+ patch:
+ operationId: group_patch
+ summary: group_patch
+ description: |
+ Patch a group.
+
+ The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the group
+ name:
+ type: string
+ description: the name of the group, a string between 2 and 100 characters long, containing only lowercase alphanumeric characters, `-`, and `_`
+ title:
+ type: string
+ description: the title of the group
+ description:
+ type: string
+ description: the description of the group
+ image_url:
+ type: string
+ description: the URL to an image to be displayed on the group's page
+ type:
+ type: string
+ description: "the type of the group (default: `'group'`), `IGroupForm` plugins associate themselves with different group types and provide custom group handling behavior for these types cannot be 'organization'"
+ state:
+ type: string
+ description: "the current state of the group, e.g. `'active'` or `'deleted'`, only active groups show up in search results and other lists of groups, this parameter will be ignored if you are not authorized to change the state of the group (default: `'active'`)"
+ approval_status:
+ type: string
+ extras:
+ type: array
+ description: "the group's extras, extras are arbitrary (key: value) metadata items that can be added to groups, each extra dictionary should have keys `'key'` (a string), `'value'` (a string), and optionally `'deleted'`"
+ items:
+ type: object
+ additionalProperties: true
+ packages:
+ type: array
+ description: "the datasets (packages) that belong to the group, a list of dictionaries each with keys `'name'` (string, the id or name of the dataset) and optionally `'title'` (string, the title of the dataset)"
+ items:
+ type: object
+ additionalProperties: true
+ groups:
+ type: array
+ description: "the groups that belong to the group, a list of dictionaries each with key `'name'` (string, the id or name of the group) and optionally `'capacity'` (string, the capacity in which the group is a member of the group)"
+ items:
+ type: object
+ additionalProperties: true
+ users:
+ type: array
+ description: "the users that belong to the group, a list of dictionaries each with key `'name'` (string, the id or name of the user) and optionally `'capacity'` (string, the capacity in which the user is a member of the group)"
+ items:
+ type: object
+ additionalProperties: true
+ organization_patch:
+ patch:
+ operationId: organization_patch
+ summary: organization_patch
+ description: |
+ Patch an organization.
+
+ The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the organization
+ name:
+ type: string
+ description: the name of the organization, a string between 2 and 100 characters long, containing only lowercase alphanumeric characters, `-`, and `_`
+ title:
+ type: string
+ description: the title of the organization
+ description:
+ type: string
+ description: the description of the organization
+ image_url:
+ type: string
+ description: the URL to an image to be displayed on the organization's page
+ state:
+ type: string
+ description: "the current state of the organization, e.g. `'active'` or `'deleted'`, only active organization show up in search results and other lists of organization, this parameter will be ignored if you are not authorized to change the state of the organization (default: `'active'`)"
+ approval_status:
+ type: string
+ extras:
+ type: array
+ description: "the organization's extras, extras are arbitrary (key: value) metadata items that can be added to organization, each extra dictionary should have keys `'key'` (a string), `'value'` (a string), and optionally `'deleted'`"
+ items:
+ type: object
+ additionalProperties: true
+ packages:
+ type: array
+ description: "ignored. use `package_owner_org_update()` to change package ownership"
+ items:
+ type: object
+ additionalProperties: true
+ users:
+ type: array
+ description: "the users that belong to the organization, a list of dictionaries each with key `'name'` (string, the id or name of the user) and optionally `'capacity'` (string, the capacity in which the user is a member of the organization)"
+ items:
+ type: object
+ additionalProperties: true
+ user_patch:
+ patch:
+ operationId: user_patch
+ summary: user_patch
+ description: |
+ Patch a user.
+
+ The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: string
+ description: the name or id of the user
+ name:
+ type: string
+ description: the name of the new user, a string between 2 and 100 characters long, containing only lowercase alphanumeric characters, `-`, and `_`
+ email:
+ type: string
+ description: the email address for the new user
+ password:
+ type: string
+ description: the password of the new user, a string of at least 4 characters
+ fullname:
+ type: string
+ description: the full name of the new user
+ about:
+ type: string
+ description: a description of the new user
+ image_url:
+ type: string
+ # Original docs say "group's page" which should be fixed
+ description: the URL to an image to be displayed on the user's page
+ plugin_extras:
+ type: object
+ description: |
+ private extra user data belonging to plugins. Only sysadmin users may set this value. It should be a dict that can be dumped into JSON, and plugins should namespace their extras with the plugin name to avoid collisions with other plugins, e.g.:
+
+ ```json
+ {
+ "name": "test_user",
+ "email": "test@example.com",
+ "plugin_extras": {
+ "my_plugin": {
+ "private_extra": 1
+ },
+ "another_plugin": {
+ "another_extra": True
+ }
+ }
+ }
+ ```
+ additionalProperties: true
+ with_apitoken:
+ type: boolean
+ description: whether to create an API token for the user
user_delete:
delete:
operationId: user_delete
From 1f0cbffb2d9d7707c5663e0613e1de5e419eba65 Mon Sep 17 00:00:00 2001
From: rzmk <30333942+rzmk@users.noreply.github.com>
Date: Tue, 2 Dec 2025 20:11:20 -0500
Subject: [PATCH 08/11] feat(docs): add patch endpoints mdx files
---
docs/content/docs/group_patch.mdx | 28 ++++++++++++++++
docs/content/docs/organization_patch.mdx | 28 ++++++++++++++++
docs/content/docs/package_patch.mdx | 41 ++++++++++++++++++++++++
docs/content/docs/resource_patch.mdx | 28 ++++++++++++++++
docs/content/docs/user_patch.mdx | 28 ++++++++++++++++
5 files changed, 153 insertions(+)
create mode 100644 docs/content/docs/group_patch.mdx
create mode 100644 docs/content/docs/organization_patch.mdx
create mode 100644 docs/content/docs/package_patch.mdx
create mode 100644 docs/content/docs/resource_patch.mdx
create mode 100644 docs/content/docs/user_patch.mdx
diff --git a/docs/content/docs/group_patch.mdx b/docs/content/docs/group_patch.mdx
new file mode 100644
index 0000000..ef8e491
--- /dev/null
+++ b/docs/content/docs/group_patch.mdx
@@ -0,0 +1,28 @@
+---
+title: group_patch
+full: true
+_openapi:
+ method: PATCH
+ route: group_patch
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Patch a group.
+
+
+ The difference between the update and patch methods is that the patch
+ will perform an update of the provided parameters, while leaving all
+ other parameters unchanged, whereas the update methods deletes all
+ parameters not explicitly provided in the data_dict.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Patch a group.
+
+The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_patch.mdx b/docs/content/docs/organization_patch.mdx
new file mode 100644
index 0000000..0ffd07c
--- /dev/null
+++ b/docs/content/docs/organization_patch.mdx
@@ -0,0 +1,28 @@
+---
+title: organization_patch
+full: true
+_openapi:
+ method: PATCH
+ route: organization_patch
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Patch an organization.
+
+
+ The difference between the update and patch methods is that the patch
+ will perform an update of the provided parameters, while leaving all
+ other parameters unchanged, whereas the update methods deletes all
+ parameters not explicitly provided in the data_dict.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Patch an organization.
+
+The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/package_patch.mdx b/docs/content/docs/package_patch.mdx
new file mode 100644
index 0000000..eb3c3f1
--- /dev/null
+++ b/docs/content/docs/package_patch.mdx
@@ -0,0 +1,41 @@
+---
+title: package_patch
+full: true
+_openapi:
+ method: PATCH
+ route: package_patch
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Patch a dataset (package).
+
+
+ The difference between the update and patch methods is that the patch
+ will perform an update of the provided parameters, while leaving all
+ other parameters unchanged, whereas the update methods deletes all
+ parameters not explicitly provided in the data_dict.
+
+
+ To partially update resources or other metadata not at the top level
+ of a package use `package_revise()` instead to maintain existing
+ nested values.
+
+
+ You must be authorized to edit the dataset and the groups that it
+ belongs to.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Patch a dataset (package).
+
+The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
+
+To partially update resources or other metadata not at the top level of a package use `package_revise()` instead to maintain existing nested values.
+
+You must be authorized to edit the dataset and the groups that it belongs to.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_patch.mdx b/docs/content/docs/resource_patch.mdx
new file mode 100644
index 0000000..d16da67
--- /dev/null
+++ b/docs/content/docs/resource_patch.mdx
@@ -0,0 +1,28 @@
+---
+title: resource_patch
+full: true
+_openapi:
+ method: PATCH
+ route: resource_patch
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Patch a resource.
+
+
+ The difference between the update and patch methods is that the patch
+ will perform an update of the provided parameters, while leaving all
+ other parameters unchanged, whereas the update methods deletes all
+ parameters not explicitly provided in the data_dict.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Patch a resource.
+
+The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
+
+
+
\ No newline at end of file
diff --git a/docs/content/docs/user_patch.mdx b/docs/content/docs/user_patch.mdx
new file mode 100644
index 0000000..7a3f72d
--- /dev/null
+++ b/docs/content/docs/user_patch.mdx
@@ -0,0 +1,28 @@
+---
+title: user_patch
+full: true
+_openapi:
+ method: PATCH
+ route: user_patch
+ toc: []
+ structuredData:
+ headings: []
+ contents:
+ - content: >
+ Patch a user.
+
+
+ The difference between the update and patch methods is that the patch
+ will perform an update of the provided parameters, while leaving all
+ other parameters unchanged, whereas the update methods deletes all
+ parameters not explicitly provided in the data_dict.
+---
+
+{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
+
+Patch a user.
+
+The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
+
+
+
\ No newline at end of file
From 0fdbdd4d1cf23d7ad8358e687723c196ed18dabb Mon Sep 17 00:00:00 2001
From: rzmk <30333942+rzmk@users.noreply.github.com>
Date: Tue, 2 Dec 2025 20:15:07 -0500
Subject: [PATCH 09/11] feat(docs): add openapiPlugin() to lib/source.ts
---
docs/lib/source.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/lib/source.ts b/docs/lib/source.ts
index d298bba..fbb965f 100644
--- a/docs/lib/source.ts
+++ b/docs/lib/source.ts
@@ -1,12 +1,13 @@
import { type InferPageType, loader } from "fumadocs-core/source";
import { lucideIconsPlugin } from "fumadocs-core/source/lucide-icons";
+import { openapiPlugin } from "fumadocs-openapi/server";
import { docs } from "@/.source";
// See https://fumadocs.dev/docs/headless/source-api for more info
export const source = loader({
baseUrl: "/docs",
source: docs.toFumadocsSource(),
- plugins: [lucideIconsPlugin()],
+ plugins: [lucideIconsPlugin(), openapiPlugin()],
});
export function getPageImage(page: InferPageType) {
From 100165ec29dca75f37633c9dd27818837a5f1659 Mon Sep 17 00:00:00 2001
From: rzmk <30333942+rzmk@users.noreply.github.com>
Date: Tue, 2 Dec 2025 20:30:37 -0500
Subject: [PATCH 10/11] feat(docs): fix build issues, add external links
---
docs/app/(home)/page.tsx | 29 ++++++++++++++++++++++++++---
docs/app/docs/[[...slug]]/page.tsx | 18 ++++++++++--------
docs/content/docs/index.mdx | 2 ++
docs/content/docs/meta.json | 12 ++++++++++++
docs/lib/source.ts | 2 ++
5 files changed, 52 insertions(+), 11 deletions(-)
create mode 100644 docs/content/docs/meta.json
diff --git a/docs/app/(home)/page.tsx b/docs/app/(home)/page.tsx
index 2478c1e..93edb9e 100644
--- a/docs/app/(home)/page.tsx
+++ b/docs/app/(home)/page.tsx
@@ -1,19 +1,42 @@
-import Link from 'next/link';
+import Link from "next/link";
export default function HomePage() {
return (
ckanaction
- You can open{' '}
+ You can open{" "}
/docs
- {' '}
+ {" "}
and see the interactive documentation.
+
);
}
diff --git a/docs/app/docs/[[...slug]]/page.tsx b/docs/app/docs/[[...slug]]/page.tsx
index 9b6d208..c77ecfd 100644
--- a/docs/app/docs/[[...slug]]/page.tsx
+++ b/docs/app/docs/[[...slug]]/page.tsx
@@ -1,23 +1,25 @@
-import { getPageImage, source } from '@/lib/source';
+import { createRelativeLink } from "fumadocs-ui/mdx";
import {
DocsBody,
DocsDescription,
DocsPage,
DocsTitle,
-} from 'fumadocs-ui/page';
-import { notFound } from 'next/navigation';
-import { getMDXComponents } from '@/mdx-components';
-import type { Metadata } from 'next';
-import { createRelativeLink } from 'fumadocs-ui/mdx';
+} from "fumadocs-ui/page";
+import type { Metadata } from "next";
+import { notFound } from "next/navigation";
+import { getPageImage, source } from "@/lib/source";
+import { getMDXComponents } from "@/mdx-components";
-export default async function Page(props: PageProps<'/docs/[[...slug]]'>) {
+export default async function Page(props: PageProps<"/docs/[[...slug]]">) {
const params = await props.params;
const page = source.getPage(params.slug);
if (!page) notFound();
+ // @ts-expect-error
const MDX = page.data.body;
return (
+ // @ts-expect-error
{page.data.title}{page.data.description}
@@ -38,7 +40,7 @@ export async function generateStaticParams() {
}
export async function generateMetadata(
- props: PageProps<'/docs/[[...slug]]'>,
+ props: PageProps<"/docs/[[...slug]]">,
): Promise {
const params = await props.params;
const page = source.getPage(params.slug);
diff --git a/docs/content/docs/index.mdx b/docs/content/docs/index.mdx
index c8c0980..d5a3929 100644
--- a/docs/content/docs/index.mdx
+++ b/docs/content/docs/index.mdx
@@ -37,4 +37,6 @@ The source code of ckanaction can be found at [github.com/dathere/ckanaction](ht
You may also explore this web app to view more code examples for each endpoint and also use an interactive GUI for sending HTTP requests to any local or remote CKAN instance.
+View the GIF below to see how to point to a specific CKAN API endpoint using the interactive GUI, which by default points to a local CKAN instance endpoint's URL.
+

diff --git a/docs/content/docs/meta.json b/docs/content/docs/meta.json
new file mode 100644
index 0000000..95f186c
--- /dev/null
+++ b/docs/content/docs/meta.json
@@ -0,0 +1,12 @@
+{
+ "pages": [
+ "--- ---",
+ "index",
+ "---🎁 Interactive CKAN API GUI---",
+ "...",
+ "--- ---",
+ "[Source Code](https://github.com/dathere/ckanaction)",
+ "[Support and Feedback](https://support.dathere.com)",
+ "[Privacy Policy](https://dathere.com/privacy-policy/)"
+ ]
+}
\ No newline at end of file
diff --git a/docs/lib/source.ts b/docs/lib/source.ts
index fbb965f..2a8a382 100644
--- a/docs/lib/source.ts
+++ b/docs/lib/source.ts
@@ -7,6 +7,7 @@ import { docs } from "@/.source";
export const source = loader({
baseUrl: "/docs",
source: docs.toFumadocsSource(),
+ // @ts-expect-error
plugins: [lucideIconsPlugin(), openapiPlugin()],
});
@@ -20,6 +21,7 @@ export function getPageImage(page: InferPageType) {
}
export async function getLLMText(page: InferPageType) {
+ // @ts-expect-error
const processed = await page.data.getText("processed");
return `# ${page.data.title} (${page.url})
From fd5ebf4af017fd57efcdf34b1450c208fd44ab6b Mon Sep 17 00:00:00 2001
From: rzmk <30333942+rzmk@users.noreply.github.com>
Date: Tue, 2 Dec 2025 21:16:06 -0500
Subject: [PATCH 11/11] build: update dependencies and fumadocs
---
docs/app/api/search/route.ts | 6 +-
docs/app/docs/[[...slug]]/page.tsx | 2 -
docs/app/llms-full.txt/route.ts | 6 +-
docs/app/llms.mdx/[[...slug]]/route.ts | 24 ++
docs/app/og/docs/[...slug]/route.tsx | 22 +-
docs/bun.lock | 210 +++++++-----------
docs/components/api-page.client.tsx | 10 +
docs/components/api-page.tsx | 7 +
docs/content/docs/am_following_dataset.mdx | 3 +-
docs/content/docs/am_following_group.mdx | 3 +-
docs/content/docs/am_following_user.mdx | 3 +-
docs/content/docs/api_token_create.mdx | 3 +-
docs/content/docs/api_token_list.mdx | 3 +-
docs/content/docs/api_token_revoke.mdx | 3 +-
docs/content/docs/bulk_update_delete.mdx | 3 +-
docs/content/docs/bulk_update_private.mdx | 3 +-
docs/content/docs/bulk_update_public.mdx | 3 +-
docs/content/docs/config_option_list.mdx | 3 +-
docs/content/docs/config_option_show.mdx | 3 +-
docs/content/docs/config_option_update.mdx | 3 +-
.../current_package_list_with_resources.mdx | 3 +-
docs/content/docs/dataset_followee_count.mdx | 3 +-
docs/content/docs/dataset_follower_count.mdx | 3 +-
docs/content/docs/dataset_follower_list.mdx | 3 +-
docs/content/docs/dataset_purge.mdx | 3 +-
docs/content/docs/follow_dataset.mdx | 3 +-
docs/content/docs/follow_group.mdx | 3 +-
docs/content/docs/follow_user.mdx | 3 +-
docs/content/docs/followee_count.mdx | 3 +-
docs/content/docs/followee_list.mdx | 3 +-
docs/content/docs/format_autocomplete.mdx | 3 +-
docs/content/docs/get_site_user.mdx | 3 +-
docs/content/docs/group_autocomplete.mdx | 3 +-
docs/content/docs/group_create.mdx | 3 +-
docs/content/docs/group_delete.mdx | 3 +-
docs/content/docs/group_followee_count.mdx | 3 +-
docs/content/docs/group_follower_list.mdx | 3 +-
docs/content/docs/group_list.mdx | 3 +-
docs/content/docs/group_list_authz.mdx | 3 +-
docs/content/docs/group_member_create.mdx | 3 +-
docs/content/docs/group_member_delete.mdx | 3 +-
docs/content/docs/group_package_show.mdx | 3 +-
docs/content/docs/group_patch.mdx | 3 +-
docs/content/docs/group_purge.mdx | 3 +-
docs/content/docs/group_show.mdx | 3 +-
docs/content/docs/group_update.mdx | 3 +-
docs/content/docs/help_show.mdx | 3 +-
docs/content/docs/job_cancel.mdx | 3 +-
docs/content/docs/job_clear.mdx | 3 +-
docs/content/docs/job_list.mdx | 3 +-
docs/content/docs/job_show.mdx | 3 +-
docs/content/docs/license_list.mdx | 3 +-
docs/content/docs/member_create.mdx | 3 +-
docs/content/docs/member_delete.mdx | 3 +-
docs/content/docs/member_list.mdx | 3 +-
docs/content/docs/member_roles_list.mdx | 3 +-
.../docs/organization_autocomplete.mdx | 3 +-
docs/content/docs/organization_create.mdx | 3 +-
docs/content/docs/organization_delete.mdx | 3 +-
.../docs/organization_followee_count.mdx | 3 +-
.../docs/organization_followee_list.mdx | 3 +-
.../docs/organization_follower_count.mdx | 3 +-
.../docs/organization_follower_list.mdx | 3 +-
docs/content/docs/organization_list.mdx | 3 +-
.../docs/organization_list_for_user.mdx | 3 +-
.../docs/organization_member_create.mdx | 3 +-
.../docs/organization_member_delete.mdx | 3 +-
docs/content/docs/organization_patch.mdx | 3 +-
docs/content/docs/organization_purge.mdx | 3 +-
docs/content/docs/organization_show.mdx | 3 +-
docs/content/docs/organization_update.mdx | 3 +-
docs/content/docs/package_autocomplete.mdx | 3 +-
.../docs/package_collaborator_create.mdx | 3 +-
.../docs/package_collaborator_delete.mdx | 3 +-
.../docs/package_collaborator_list.mdx | 3 +-
.../package_collaborator_list_for_user.mdx | 3 +-
docs/content/docs/package_create.mdx | 3 +-
.../package_create_default_resource_views.mdx | 3 +-
docs/content/docs/package_delete.mdx | 3 +-
docs/content/docs/package_list.mdx | 3 +-
.../content/docs/package_owner_org_update.mdx | 3 +-
docs/content/docs/package_patch.mdx | 3 +-
.../docs/package_relationship_create.mdx | 3 +-
.../docs/package_relationship_delete.mdx | 3 +-
.../docs/package_relationship_update.mdx | 3 +-
.../docs/package_relationships_list.mdx | 3 +-
.../content/docs/package_resource_reorder.mdx | 3 +-
docs/content/docs/package_revise.mdx | 3 +-
docs/content/docs/package_search.mdx | 3 +-
docs/content/docs/package_show.mdx | 3 +-
docs/content/docs/package_update.mdx | 3 +-
docs/content/docs/resource_create.mdx | 3 +-
...resource_create_default_resource_views.mdx | 3 +-
docs/content/docs/resource_delete.mdx | 3 +-
docs/content/docs/resource_patch.mdx | 3 +-
docs/content/docs/resource_search.mdx | 3 +-
docs/content/docs/resource_show.mdx | 3 +-
docs/content/docs/resource_update.mdx | 3 +-
docs/content/docs/resource_view_clear.mdx | 3 +-
docs/content/docs/resource_view_create.mdx | 3 +-
docs/content/docs/resource_view_delete.mdx | 3 +-
docs/content/docs/resource_view_list.mdx | 3 +-
docs/content/docs/resource_view_reorder.mdx | 3 +-
docs/content/docs/resource_view_show.mdx | 3 +-
docs/content/docs/resource_view_update.mdx | 3 +-
docs/content/docs/status_show.mdx | 3 +-
docs/content/docs/tag_autocomplete.mdx | 3 +-
docs/content/docs/tag_create.mdx | 3 +-
docs/content/docs/tag_delete.mdx | 3 +-
docs/content/docs/tag_list.mdx | 3 +-
docs/content/docs/tag_search.mdx | 3 +-
docs/content/docs/tag_show.mdx | 3 +-
docs/content/docs/task_status_delete.mdx | 3 +-
docs/content/docs/task_status_show.mdx | 3 +-
docs/content/docs/task_status_update.mdx | 3 +-
docs/content/docs/task_status_update_many.mdx | 3 +-
docs/content/docs/term_translation_show.mdx | 3 +-
docs/content/docs/term_translation_update.mdx | 3 +-
.../docs/term_translation_update_many.mdx | 3 +-
docs/content/docs/unfollow_dataset.mdx | 3 +-
docs/content/docs/unfollow_group.mdx | 3 +-
docs/content/docs/unfollow_user.mdx | 3 +-
docs/content/docs/user_autocomplete.mdx | 3 +-
docs/content/docs/user_create.mdx | 3 +-
docs/content/docs/user_delete.mdx | 3 +-
docs/content/docs/user_followee_count.mdx | 3 +-
docs/content/docs/user_follower_count.mdx | 3 +-
docs/content/docs/user_follower_list.mdx | 3 +-
docs/content/docs/user_invite.mdx | 3 +-
docs/content/docs/user_list.mdx | 3 +-
docs/content/docs/user_patch.mdx | 3 +-
docs/content/docs/user_show.mdx | 3 +-
docs/content/docs/user_update.mdx | 3 +-
docs/content/docs/vocabulary_create.mdx | 3 +-
docs/content/docs/vocabulary_delete.mdx | 3 +-
docs/content/docs/vocabulary_list.mdx | 3 +-
docs/content/docs/vocabulary_show.mdx | 3 +-
docs/content/docs/vocabulary_update.mdx | 3 +-
docs/lib/get-llm-text.ts | 10 +
docs/lib/source.ts | 4 +-
docs/mdx-components.tsx | 13 +-
docs/next.config.mjs | 10 +-
docs/package.json | 14 +-
docs/tsconfig.json | 4 +-
144 files changed, 301 insertions(+), 431 deletions(-)
create mode 100644 docs/app/llms.mdx/[[...slug]]/route.ts
create mode 100644 docs/components/api-page.client.tsx
create mode 100644 docs/components/api-page.tsx
create mode 100644 docs/lib/get-llm-text.ts
diff --git a/docs/app/api/search/route.ts b/docs/app/api/search/route.ts
index 7ba7e82..ec6bc8d 100644
--- a/docs/app/api/search/route.ts
+++ b/docs/app/api/search/route.ts
@@ -1,7 +1,7 @@
-import { source } from '@/lib/source';
-import { createFromSource } from 'fumadocs-core/search/server';
+import { createFromSource } from "fumadocs-core/search/server";
+import { source } from "@/lib/source";
export const { GET } = createFromSource(source, {
// https://docs.orama.com/docs/orama-js/supported-languages
- language: 'english',
+ language: "english",
});
diff --git a/docs/app/docs/[[...slug]]/page.tsx b/docs/app/docs/[[...slug]]/page.tsx
index c77ecfd..9a9b214 100644
--- a/docs/app/docs/[[...slug]]/page.tsx
+++ b/docs/app/docs/[[...slug]]/page.tsx
@@ -15,11 +15,9 @@ export default async function Page(props: PageProps<"/docs/[[...slug]]">) {
const page = source.getPage(params.slug);
if (!page) notFound();
- // @ts-expect-error
const MDX = page.data.body;
return (
- // @ts-expect-error
{page.data.title}{page.data.description}
diff --git a/docs/app/llms-full.txt/route.ts b/docs/app/llms-full.txt/route.ts
index d494d2c..6cc69e0 100644
--- a/docs/app/llms-full.txt/route.ts
+++ b/docs/app/llms-full.txt/route.ts
@@ -1,10 +1,12 @@
-import { getLLMText, source } from '@/lib/source';
+import { getLLMText } from "@/lib/get-llm-text";
+import { source } from "@/lib/source";
+// cached forever
export const revalidate = false;
export async function GET() {
const scan = source.getPages().map(getLLMText);
const scanned = await Promise.all(scan);
- return new Response(scanned.join('\n\n'));
+ return new Response(scanned.join("\n\n"));
}
diff --git a/docs/app/llms.mdx/[[...slug]]/route.ts b/docs/app/llms.mdx/[[...slug]]/route.ts
new file mode 100644
index 0000000..cbf5edc
--- /dev/null
+++ b/docs/app/llms.mdx/[[...slug]]/route.ts
@@ -0,0 +1,24 @@
+import { notFound } from "next/navigation";
+import { getLLMText } from "@/lib/get-llm-text";
+import { source } from "@/lib/source";
+
+export const revalidate = false;
+
+export async function GET(
+ _req: Request,
+ { params }: RouteContext<"/llms.mdx/[[...slug]]">,
+) {
+ const { slug } = await params;
+ const page = source.getPage(slug);
+ if (!page) notFound();
+
+ return new Response(await getLLMText(page), {
+ headers: {
+ "Content-Type": "text/markdown",
+ },
+ });
+}
+
+export function generateStaticParams() {
+ return source.generateParams();
+}
diff --git a/docs/app/og/docs/[...slug]/route.tsx b/docs/app/og/docs/[...slug]/route.tsx
index 878d338..112e1bc 100644
--- a/docs/app/og/docs/[...slug]/route.tsx
+++ b/docs/app/og/docs/[...slug]/route.tsx
@@ -1,26 +1,24 @@
-import { getPageImage, source } from '@/lib/source';
-import { notFound } from 'next/navigation';
-import { ImageResponse } from 'next/og';
-import { generate as DefaultImage } from 'fumadocs-ui/og';
+import { generate as DefaultImage } from "fumadocs-ui/og";
+import { notFound } from "next/navigation";
+import { ImageResponse } from "next/og";
+import { getPageImage, source } from "@/lib/source";
export const revalidate = false;
export async function GET(
_req: Request,
- { params }: RouteContext<'/og/docs/[...slug]'>,
+ { params }: RouteContext<"/og/docs/[...slug]">,
) {
const { slug } = await params;
const page = source.getPage(slug.slice(0, -1));
if (!page) notFound();
return new ImageResponse(
- (
-
- ),
+ ,
{
width: 1200,
height: 630,
diff --git a/docs/bun.lock b/docs/bun.lock
index df770c7..83a0f64 100644
--- a/docs/bun.lock
+++ b/docs/bun.lock
@@ -5,26 +5,26 @@
"": {
"name": "docs",
"dependencies": {
- "fumadocs-core": "16.0.2",
- "fumadocs-mdx": "^13.0.2",
- "fumadocs-openapi": "^9.7.1",
- "fumadocs-ui": "16.0.2",
- "lucide-react": "^0.546.0",
- "next": "^16.0.1",
+ "fumadocs-core": "16.2.2",
+ "fumadocs-mdx": "^14.0.4",
+ "fumadocs-openapi": "^10.1.0",
+ "fumadocs-ui": "16.2.2",
+ "lucide-react": "^0.555.0",
+ "next": "^16.0.6",
"react": "^19.2.0",
"react-dom": "^19.2.0",
- "shiki": "^3.14.0",
+ "shiki": "^3.18.0",
},
"devDependencies": {
- "@biomejs/biome": "^2.3.2",
- "@tailwindcss/postcss": "^4.1.16",
+ "@biomejs/biome": "^2.3.8",
+ "@tailwindcss/postcss": "^4.1.17",
"@types/mdx": "^2.0.13",
- "@types/node": "24.9.1",
- "@types/react": "^19.2.2",
- "@types/react-dom": "^19.2.2",
+ "@types/node": "24.10.1",
+ "@types/react": "^19.2.7",
+ "@types/react-dom": "^19.2.3",
"openapi-types": "^12.1.3",
"postcss": "^8.5.6",
- "tailwindcss": "^4.1.16",
+ "tailwindcss": "^4.1.17",
"typescript": "^5.9.3",
},
},
@@ -32,8 +32,6 @@
"packages": {
"@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="],
- "@apidevtools/json-schema-ref-parser": ["@apidevtools/json-schema-ref-parser@11.9.3", "", { "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", "js-yaml": "^4.1.0" } }, "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ=="],
-
"@biomejs/biome": ["@biomejs/biome@2.3.8", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.8", "@biomejs/cli-darwin-x64": "2.3.8", "@biomejs/cli-linux-arm64": "2.3.8", "@biomejs/cli-linux-arm64-musl": "2.3.8", "@biomejs/cli-linux-x64": "2.3.8", "@biomejs/cli-linux-x64-musl": "2.3.8", "@biomejs/cli-win32-arm64": "2.3.8", "@biomejs/cli-win32-x64": "2.3.8" }, "bin": { "biome": "bin/biome" } }, "sha512-Qjsgoe6FEBxWAUzwFGFrB+1+M8y/y5kwmg5CHac+GSVOdmOIqsAiXM5QMVGZJ1eCUCLlPZtq4aFAQ0eawEUuUA=="],
"@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.8", "", { "os": "darwin", "cpu": "arm64" }, "sha512-HM4Zg9CGQ3txTPflxD19n8MFPrmUAjaC7PQdLkugeeC0cQ+PiVrd7i09gaBS/11QKsTDBJhVg85CEIK9f50Qww=="],
@@ -54,57 +52,57 @@
"@emnapi/runtime": ["@emnapi/runtime@1.5.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ=="],
- "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="],
+ "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.0", "", { "os": "aix", "cpu": "ppc64" }, "sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A=="],
- "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="],
+ "@esbuild/android-arm": ["@esbuild/android-arm@0.27.0", "", { "os": "android", "cpu": "arm" }, "sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ=="],
- "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="],
+ "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.0", "", { "os": "android", "cpu": "arm64" }, "sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ=="],
- "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="],
+ "@esbuild/android-x64": ["@esbuild/android-x64@0.27.0", "", { "os": "android", "cpu": "x64" }, "sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q=="],
- "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="],
+ "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg=="],
- "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="],
+ "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g=="],
- "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="],
+ "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw=="],
- "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="],
+ "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g=="],
- "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="],
+ "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.0", "", { "os": "linux", "cpu": "arm" }, "sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ=="],
- "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="],
+ "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ=="],
- "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="],
+ "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.0", "", { "os": "linux", "cpu": "ia32" }, "sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw=="],
- "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="],
+ "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.0", "", { "os": "linux", "cpu": "none" }, "sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg=="],
- "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="],
+ "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.0", "", { "os": "linux", "cpu": "none" }, "sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg=="],
- "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="],
+ "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA=="],
- "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="],
+ "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.0", "", { "os": "linux", "cpu": "none" }, "sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ=="],
- "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="],
+ "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w=="],
- "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="],
+ "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.0", "", { "os": "linux", "cpu": "x64" }, "sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw=="],
- "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="],
+ "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.0", "", { "os": "none", "cpu": "arm64" }, "sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w=="],
- "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="],
+ "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.0", "", { "os": "none", "cpu": "x64" }, "sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA=="],
- "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="],
+ "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.0", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ=="],
- "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="],
+ "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.0", "", { "os": "openbsd", "cpu": "x64" }, "sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A=="],
- "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="],
+ "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.0", "", { "os": "none", "cpu": "arm64" }, "sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA=="],
- "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="],
+ "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.0", "", { "os": "sunos", "cpu": "x64" }, "sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA=="],
- "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="],
+ "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg=="],
- "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="],
+ "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ=="],
- "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="],
+ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.0", "", { "os": "win32", "cpu": "x64" }, "sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg=="],
"@floating-ui/core": ["@floating-ui/core@1.7.3", "", { "dependencies": { "@floating-ui/utils": "^0.2.10" } }, "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w=="],
@@ -116,7 +114,9 @@
"@formatjs/intl-localematcher": ["@formatjs/intl-localematcher@0.6.2", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA=="],
- "@fumari/json-schema-to-typescript": ["@fumari/json-schema-to-typescript@1.1.3", "", { "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.9.3", "js-yaml": "^4.1.0", "prettier": "^3.5.3" } }, "sha512-KnaZAo5W769nOaxhPqEMTdjHdngugxmPpNS+Yr2U90iVxgmNAWwhSr8Nx3l+CUehJKNFzJi2C7clQXOfuPJegA=="],
+ "@fumadocs/mdx-remote": ["@fumadocs/mdx-remote@1.4.3", "", { "dependencies": { "@mdx-js/mdx": "^3.1.1", "gray-matter": "^4.0.3", "zod": "^4.1.12" }, "peerDependencies": { "@types/react": "*", "fumadocs-core": "^15.0.0 || ^16.0.0", "react": "18.x.x || 19.x.x" }, "optionalPeers": ["@types/react"] }, "sha512-3idm86CegIoDCEygZNmBM8Ekoa0la7pxLA50qvLlzkAyPEkmm7zTMUV/cDaMW0s/uiIHa62rcxVuThc87O8sSg=="],
+
+ "@fumari/json-schema-to-typescript": ["@fumari/json-schema-to-typescript@2.0.0", "", { "dependencies": { "js-yaml": "^4.1.0" }, "peerDependencies": { "@apidevtools/json-schema-ref-parser": "14.x.x", "prettier": "3.x.x" }, "optionalPeers": ["@apidevtools/json-schema-ref-parser", "prettier"] }, "sha512-X0Wm3QJLj1Rtb1nY2exM6QwMXb9LGyIKLf35+n6xyltDDBLMECOC4R/zPaw3RwgFVmvRLSmLCd+ht4sKabgmNw=="],
"@img/colour": ["@img/colour@1.0.0", "", {}, "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw=="],
@@ -174,8 +174,6 @@
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
- "@jsdevtools/ono": ["@jsdevtools/ono@7.1.3", "", {}, "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg=="],
-
"@mdx-js/mdx": ["@mdx-js/mdx@3.1.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ=="],
"@next/env": ["@next/env@16.0.6", "", {}, "sha512-PFTK/G/vM3UJwK5XDYMFOqt8QW42mmhSgdKDapOlCqBUAOfJN2dyOnASR/xUR/JRrro0pLohh/zOJ77xUQWQAg=="],
@@ -244,7 +242,7 @@
"@radix-ui/react-select": ["@radix-ui/react-select@2.2.6", "", { "dependencies": { "@radix-ui/number": "1.1.1", "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-popper": "1.2.8", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-layout-effect": "1.1.1", "@radix-ui/react-use-previous": "1.1.1", "@radix-ui/react-visually-hidden": "1.2.3", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ=="],
- "@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
+ "@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.4", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA=="],
"@radix-ui/react-tabs": ["@radix-ui/react-tabs@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-roving-focus": "1.1.11", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A=="],
@@ -268,15 +266,15 @@
"@radix-ui/rect": ["@radix-ui/rect@1.1.1", "", {}, "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw=="],
- "@scalar/helpers": ["@scalar/helpers@0.0.12", "", {}, "sha512-4NDmHShyi1hrVRsJCdRZT/FIpy+/5PFbVbQLRYX/pjpu5cYqHBj9s6n5RI6gGDXEBHAIFi63g9FC6Isgr66l1Q=="],
+ "@scalar/helpers": ["@scalar/helpers@0.1.2", "", {}, "sha512-eveyTl7vy94keJtT4KsvpYmTG/Z9naSzagygkQUqH8c683mWVBBHyvEsa7aHZSoHeWzaIUt8B0jOU+FtNB9Etw=="],
- "@scalar/json-magic": ["@scalar/json-magic@0.6.1", "", { "dependencies": { "@scalar/helpers": "0.0.12", "yaml": "2.8.0" } }, "sha512-HJMPY5dUU3EXVS4EkjAFXo+uCrby/YFu/gljKDQnhYWRy5zQ0sJWrOEDcHS8nLoJRCIRD5tiVpCxnUnSb6OoAQ=="],
+ "@scalar/json-magic": ["@scalar/json-magic@0.8.2", "", { "dependencies": { "@scalar/helpers": "0.1.2", "yaml": "2.8.0" } }, "sha512-3YnpGYvs9Rx+eaITMTbJB+BrGBUOzpLQeu4ZesetwqbEEf8UXWxZ/Li0+ZSRlRYzlcfmixStjn1NPc4edBcrGA=="],
- "@scalar/openapi-parser": ["@scalar/openapi-parser@0.22.3", "", { "dependencies": { "@scalar/json-magic": "0.6.1", "@scalar/openapi-types": "0.5.0", "@scalar/openapi-upgrader": "0.1.3", "ajv": "^8.17.1", "ajv-draft-04": "^1.0.0", "ajv-formats": "^3.0.1", "jsonpointer": "^5.0.1", "leven": "^4.0.0", "yaml": "2.8.0" } }, "sha512-5Znbx9HVJb7EV9EJXJrUj+cs116QIBwX/hxkyaiLaaDL2w5S+z1rjtV+d0Jv7382FCtzAtfv/9llVuxZYPVqXA=="],
+ "@scalar/openapi-parser": ["@scalar/openapi-parser@0.23.2", "", { "dependencies": { "@scalar/json-magic": "0.8.1", "@scalar/openapi-types": "0.5.1", "@scalar/openapi-upgrader": "0.1.4", "ajv": "^8.17.1", "ajv-draft-04": "^1.0.0", "ajv-formats": "^3.0.1", "jsonpointer": "^5.0.1", "leven": "^4.0.0", "yaml": "2.8.0" } }, "sha512-NzMOWm6sae+viN8luEUqplsc0rO9XdStUM/TY1+o+5gz8KPrDc8/Wh+ksFyfGi0lnwn8GHwi7NVDrBDL5qkXCA=="],
- "@scalar/openapi-types": ["@scalar/openapi-types@0.5.0", "", { "dependencies": { "zod": "4.1.11" } }, "sha512-HJBcLa+/mPP+3TCcQngj/iW5UqynRosOQdEETXjmdy6Ngw8wBjwIcT6C86J5jufJ6sI8++HYnt+e7pAvp5FO6A=="],
+ "@scalar/openapi-types": ["@scalar/openapi-types@0.5.1", "", { "dependencies": { "zod": "4.1.11" } }, "sha512-8g7s9lPolyDFtijyh3Ob459tpezPuZbkXoFgJwBTHjPZ7ap+TvOJTvLk56CFwxVBVz2BxCzWJqxYyy3FUdeLoA=="],
- "@scalar/openapi-upgrader": ["@scalar/openapi-upgrader@0.1.3", "", { "dependencies": { "@scalar/openapi-types": "0.5.0" } }, "sha512-iROhcgy3vge6zsviPtoTLHale0nYt1PLhuMmJweQwJ0U23ZYyYhV5xgHtAd0OBEXuqT6rjYbJFvKOJZmJOwpNQ=="],
+ "@scalar/openapi-upgrader": ["@scalar/openapi-upgrader@0.1.4", "", { "dependencies": { "@scalar/openapi-types": "0.5.1" } }, "sha512-OKSjey1U99BTg1ZTiNL1xxOEOrP9U4aRTH7Pf6JFXpqFH8kGdhrDAIA0uogYYzNq65BaQwK+h31fSrIf/yCLCg=="],
"@shikijs/core": ["@shikijs/core@3.18.0", "", { "dependencies": { "@shikijs/types": "3.18.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qxBrX2G4ctCgpvFNWMhFvbBnsWTOmwJgSqywQm0gtamp/OXSaHBjtrBomNIY5WJGXgGCPPvI7O+Y9pH/dr/p0w=="],
@@ -286,11 +284,11 @@
"@shikijs/langs": ["@shikijs/langs@3.18.0", "", { "dependencies": { "@shikijs/types": "3.18.0" } }, "sha512-Deq7ZoYBtimN0M8pD5RU5TKz7DhUSTPtQOBuJpMxPDDJ+MJ7nT90DEmhDM2V0Nzp6DjfTAd+Z7ibpzr8arWqiA=="],
- "@shikijs/rehype": ["@shikijs/rehype@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", "shiki": "3.13.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" } }, "sha512-dxvB5gXEpiTI3beGwOPEwxFxQNmUWM4cwOWbvUmL6DnQJGl18/+cCjVHZK2OnasmU0v7SvM39Zh3iliWdwfBDA=="],
+ "@shikijs/rehype": ["@shikijs/rehype@3.18.0", "", { "dependencies": { "@shikijs/types": "3.18.0", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", "shiki": "3.18.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" } }, "sha512-uwaOK3UEJd2nhCDHxqAe31V8Q00r0wryyyw3L8od0TjplHTFC/gu50QfeupGJW6n2tYvf3JFBCQL/qenGAcJUQ=="],
"@shikijs/themes": ["@shikijs/themes@3.18.0", "", { "dependencies": { "@shikijs/types": "3.18.0" } }, "sha512-wzg6vNniXC5J4ChNBJJIZFTWxmrERJMWknehmM++0OAKJqZ41WpnO7PmPOumvMsUaL1SC08Nb/JVdaJd2aTsZg=="],
- "@shikijs/transformers": ["@shikijs/transformers@3.13.0", "", { "dependencies": { "@shikijs/core": "3.13.0", "@shikijs/types": "3.13.0" } }, "sha512-833lcuVzcRiG+fXvgslWsM2f4gHpjEgui1ipIknSizRuTgMkNZupiXE5/TVJ6eSYfhNBFhBZKkReKWO2GgYmqA=="],
+ "@shikijs/transformers": ["@shikijs/transformers@3.18.0", "", { "dependencies": { "@shikijs/core": "3.18.0", "@shikijs/types": "3.18.0" } }, "sha512-wWc4C1CgeQXYrA5Q9lL0C15cMtU1ePRFKfTyqCdu0a5nDCSJva3ObwHOTaGv/PP8Kx/LRyT0MvlGf5wVeW4mgg=="],
"@shikijs/types": ["@shikijs/types@3.18.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-YLmpuroH06TpvqRXKR0YqlI0nQ56c8+BO/m9A9ht36WRdxmML4ivUsnpXuJU7PiClLRD2M66ilY2YJ0KE+8q7A=="],
@@ -346,7 +344,7 @@
"@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="],
- "@types/node": ["@types/node@24.9.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg=="],
+ "@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="],
"@types/react": ["@types/react@19.2.7", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg=="],
@@ -386,7 +384,7 @@
"character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="],
- "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="],
+ "chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="],
"class-variance-authority": ["class-variance-authority@0.7.1", "", { "dependencies": { "clsx": "^2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="],
@@ -422,7 +420,7 @@
"esast-util-from-js": ["esast-util-from-js@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", "esast-util-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw=="],
- "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="],
+ "esbuild": ["esbuild@0.27.0", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.0", "@esbuild/android-arm": "0.27.0", "@esbuild/android-arm64": "0.27.0", "@esbuild/android-x64": "0.27.0", "@esbuild/darwin-arm64": "0.27.0", "@esbuild/darwin-x64": "0.27.0", "@esbuild/freebsd-arm64": "0.27.0", "@esbuild/freebsd-x64": "0.27.0", "@esbuild/linux-arm": "0.27.0", "@esbuild/linux-arm64": "0.27.0", "@esbuild/linux-ia32": "0.27.0", "@esbuild/linux-loong64": "0.27.0", "@esbuild/linux-mips64el": "0.27.0", "@esbuild/linux-ppc64": "0.27.0", "@esbuild/linux-riscv64": "0.27.0", "@esbuild/linux-s390x": "0.27.0", "@esbuild/linux-x64": "0.27.0", "@esbuild/netbsd-arm64": "0.27.0", "@esbuild/netbsd-x64": "0.27.0", "@esbuild/openbsd-arm64": "0.27.0", "@esbuild/openbsd-x64": "0.27.0", "@esbuild/openharmony-arm64": "0.27.0", "@esbuild/sunos-x64": "0.27.0", "@esbuild/win32-arm64": "0.27.0", "@esbuild/win32-ia32": "0.27.0", "@esbuild/win32-x64": "0.27.0" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA=="],
"escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="],
@@ -458,13 +456,13 @@
"foreach": ["foreach@2.0.6", "", {}, "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg=="],
- "fumadocs-core": ["fumadocs-core@16.0.2", "", { "dependencies": { "@formatjs/intl-localematcher": "^0.6.2", "@orama/orama": "^3.1.16", "@shikijs/rehype": "^3.13.0", "@shikijs/transformers": "^3.13.0", "github-slugger": "^2.0.0", "hast-util-to-estree": "^3.1.3", "hast-util-to-jsx-runtime": "^2.3.6", "image-size": "^2.0.2", "negotiator": "^1.0.0", "npm-to-yarn": "^3.0.1", "path-to-regexp": "^8.3.0", "remark": "^15.0.1", "remark-gfm": "^4.0.1", "remark-rehype": "^11.1.2", "scroll-into-view-if-needed": "^3.1.0", "shiki": "^3.13.0", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "@mixedbread/sdk": "^0.19.0", "@orama/core": "1.x.x", "@tanstack/react-router": "1.x.x", "@types/react": "*", "algoliasearch": "5.x.x", "lucide-react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "react-router": "7.x.x", "waku": "^0.26.0" }, "optionalPeers": ["@mixedbread/sdk", "@orama/core", "@tanstack/react-router", "@types/react", "algoliasearch", "lucide-react", "next", "react", "react-dom", "react-router", "waku"] }, "sha512-mUvdQQTKHDUL4a4KM+vRCj/Ge/UCbp3yr3yiPoO0aK9wMqYJpF/czCyLpdvF+i4WO8oXnjYvQObKkKaceoCWWg=="],
+ "fumadocs-core": ["fumadocs-core@16.2.2", "", { "dependencies": { "@formatjs/intl-localematcher": "^0.6.2", "@orama/orama": "^3.1.16", "@shikijs/rehype": "^3.18.0", "@shikijs/transformers": "^3.18.0", "estree-util-value-to-estree": "^3.5.0", "github-slugger": "^2.0.0", "hast-util-to-estree": "^3.1.3", "hast-util-to-jsx-runtime": "^2.3.6", "image-size": "^2.0.2", "negotiator": "^1.0.0", "npm-to-yarn": "^3.0.1", "path-to-regexp": "^8.3.0", "remark": "^15.0.1", "remark-gfm": "^4.0.1", "remark-rehype": "^11.1.2", "scroll-into-view-if-needed": "^3.1.0", "shiki": "^3.18.0", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "@mixedbread/sdk": "^0.19.0", "@orama/core": "1.x.x", "@tanstack/react-router": "1.x.x", "@types/react": "*", "algoliasearch": "5.x.x", "lucide-react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "react-router": "7.x.x", "waku": "^0.26.0 || ^0.27.0" }, "optionalPeers": ["@mixedbread/sdk", "@orama/core", "@tanstack/react-router", "@types/react", "algoliasearch", "lucide-react", "next", "react", "react-dom", "react-router", "waku"] }, "sha512-CMU/jp/Gb6lr/qvRrTMRv1FX2VuAixHaqop4yguCwKt/iqkgJP4MJ2SpXcFheSUraJ2hIgDyYVoXIK1onKqagw=="],
- "fumadocs-mdx": ["fumadocs-mdx@13.0.8", "", { "dependencies": { "@mdx-js/mdx": "^3.1.1", "@standard-schema/spec": "^1.0.0", "chokidar": "^4.0.3", "esbuild": "^0.25.12", "estree-util-value-to-estree": "^3.5.0", "js-yaml": "^4.1.0", "lru-cache": "^11.2.2", "mdast-util-to-markdown": "^2.1.2", "picocolors": "^1.1.1", "picomatch": "^4.0.3", "remark-mdx": "^3.1.1", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "zod": "^4.1.12" }, "peerDependencies": { "@fumadocs/mdx-remote": "^1.4.0", "fumadocs-core": "^15.0.0 || ^16.0.0", "next": "^15.3.0 || ^16.0.0", "react": "*", "vite": "6.x.x || 7.x.x" }, "optionalPeers": ["@fumadocs/mdx-remote", "next", "react", "vite"], "bin": { "fumadocs-mdx": "dist/bin.js" } }, "sha512-UbUwH0iGvYbytnxhmfd7tWJKFK8L0mrbTAmrQYnpg6Wi/h8afNMJmbHBOzVcaEWJKeFipZ1CGDAsNA2fztwXNg=="],
+ "fumadocs-mdx": ["fumadocs-mdx@14.0.4", "", { "dependencies": { "@mdx-js/mdx": "^3.1.1", "@standard-schema/spec": "^1.0.0", "chokidar": "^5.0.0", "esbuild": "^0.27.0", "estree-util-value-to-estree": "^3.5.0", "js-yaml": "^4.1.1", "lru-cache": "^11.2.2", "mdast-util-to-markdown": "^2.1.2", "picocolors": "^1.1.1", "picomatch": "^4.0.3", "remark-mdx": "^3.1.1", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3", "zod": "^4.1.12" }, "peerDependencies": { "@fumadocs/mdx-remote": "^1.4.0", "fumadocs-core": "^15.0.0 || ^16.0.0", "next": "^15.3.0 || ^16.0.0", "react": "*", "vite": "6.x.x || 7.x.x" }, "optionalPeers": ["@fumadocs/mdx-remote", "next", "react", "vite"], "bin": { "fumadocs-mdx": "dist/bin.js" } }, "sha512-q8g/cnFByFkdxvkUgHLsn7QrT4uHY3XkBFd5YJrbpI8cxlV8v64lS6Yrkmu/gigiuvLkysZN6zXVVIbdZcoZvw=="],
- "fumadocs-openapi": ["fumadocs-openapi@9.7.3", "", { "dependencies": { "@fumari/json-schema-to-typescript": "^1.1.3", "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.3", "@scalar/json-magic": "^0.6.1", "@scalar/openapi-parser": "0.22.3", "ajv": "^8.17.1", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.7", "fumadocs-ui": "16.0.7", "github-slugger": "^2.0.0", "gray-matter": "^4.0.3", "hast-util-to-jsx-runtime": "^2.3.6", "js-yaml": "^4.1.0", "next-themes": "^0.4.6", "openapi-sampler": "^1.6.2", "react-hook-form": "^7.65.0", "remark": "^15.0.1", "remark-rehype": "^11.1.2", "tinyglobby": "^0.2.15", "xml-js": "^1.6.11" }, "peerDependencies": { "@scalar/api-client-react": "*", "@types/react": "*", "react": "18.x.x || 19.x.x", "react-dom": "18.x.x || 19.x.x" }, "optionalPeers": ["@scalar/api-client-react", "@types/react"] }, "sha512-nYOqZ+hQxjLuvbu6sSjy8lo8mYaYyu9a2dZ+ABvWbrF+/oAXHIzEtd/7ERqQnmdVykRVcr5uXQL+3Kmyv7oSUQ=="],
+ "fumadocs-openapi": ["fumadocs-openapi@10.1.0", "", { "dependencies": { "@fumari/json-schema-to-typescript": "^2.0.0", "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.4", "@scalar/json-magic": "^0.8.1", "@scalar/openapi-parser": "0.23.2", "ajv": "^8.17.1", "class-variance-authority": "^0.7.1", "github-slugger": "^2.0.0", "hast-util-to-jsx-runtime": "^2.3.6", "js-yaml": "^4.1.1", "next-themes": "^0.4.6", "openapi-sampler": "^1.6.2", "react-hook-form": "^7.66.0", "remark": "^15.0.1", "remark-rehype": "^11.1.2", "xml-js": "^1.6.11" }, "peerDependencies": { "@scalar/api-client-react": "*", "@types/react": "*", "fumadocs-core": "^16.2.0", "fumadocs-ui": "^16.2.0", "react": "^19.2.0", "react-dom": "^19.2.0" }, "optionalPeers": ["@scalar/api-client-react", "@types/react"] }, "sha512-sEU3/75X195ux6aGFfuytDQC4hzQe7P6Ei0VEqf+8eTIj/Hrsyue++U25ybGTfYsmFnLAI7RaOeRMWJmlE7L9Q=="],
- "fumadocs-ui": ["fumadocs-ui@16.0.2", "", { "dependencies": { "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-direction": "^1.1.1", "@radix-ui/react-navigation-menu": "^1.2.14", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-presence": "^1.1.5", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.1.13", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.2", "lodash.merge": "^4.6.2", "next-themes": "^0.4.6", "postcss-selector-parser": "^7.1.0", "react-medium-image-zoom": "^5.4.0", "scroll-into-view-if-needed": "^3.1.0", "tailwind-merge": "^3.3.1" }, "peerDependencies": { "@types/react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "tailwindcss": "^4.0.0" }, "optionalPeers": ["@types/react", "next", "tailwindcss"] }, "sha512-GaLU2XDJCc7Od/5EyfnFxTjLkObwPGgCo+jqGZXbYhFNb+yuq6rL+7DYnHvWIwzNEmfp3Try3TgutbZB8C66kQ=="],
+ "fumadocs-ui": ["fumadocs-ui@16.2.2", "", { "dependencies": { "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-direction": "^1.1.1", "@radix-ui/react-navigation-menu": "^1.2.14", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-presence": "^1.1.5", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-tabs": "^1.1.13", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.2.2", "lodash.merge": "^4.6.2", "next-themes": "^0.4.6", "postcss-selector-parser": "^7.1.1", "react-medium-image-zoom": "^5.4.0", "scroll-into-view-if-needed": "^3.1.0", "tailwind-merge": "^3.4.0" }, "peerDependencies": { "@types/react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "tailwindcss": "^4.0.0" }, "optionalPeers": ["@types/react", "next", "tailwindcss"] }, "sha512-qYvPbVRMMFiuzrsmvGYpEj/cT5XyGzvwrrRklrHPMegywY+jxQ0TUeRKHzQgxkkTl0MDPnejRbHHAfafz01/TQ=="],
"get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="],
@@ -504,7 +502,7 @@
"jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="],
- "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="],
+ "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="],
"json-pointer": ["json-pointer@0.6.2", "", { "dependencies": { "foreach": "^2.0.4" } }, "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw=="],
@@ -546,7 +544,7 @@
"lru-cache": ["lru-cache@11.2.2", "", {}, "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg=="],
- "lucide-react": ["lucide-react@0.546.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Z94u6fKT43lKeYHiVyvyR8fT7pwCzDu7RyMPpTvh054+xahSgj4HFQ+NmflvzdXsoAjYGdCguGaFKYuvq0ThCQ=="],
+ "lucide-react": ["lucide-react@0.555.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-D8FvHUGbxWBRQM90NZeIyhAvkFfsh3u9ekrMvJ30Z6gnpBHS6HC6ldLg7tL45hwiIz/u66eKDtdA23gwwGsAHA=="],
"magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
@@ -686,9 +684,7 @@
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
- "postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="],
-
- "prettier": ["prettier@3.6.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ=="],
+ "postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="],
"property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="],
@@ -696,7 +692,7 @@
"react-dom": ["react-dom@19.2.0", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.0" } }, "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ=="],
- "react-hook-form": ["react-hook-form@7.65.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17 || ^18 || ^19" } }, "sha512-xtOzDz063WcXvGWaHgLNrNzlsdFgtUWcb32E6WFaGTd7kPZG3EeDusjdZfUsPwKCKVXy1ZlntifaHZ4l8pAsmw=="],
+ "react-hook-form": ["react-hook-form@7.67.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17 || ^18 || ^19" } }, "sha512-E55EOwKJHHIT/I6J9DmQbCWToAYSw9nN5R57MZw9rMtjh+YQreMDxRLfdjfxQbiJ3/qbg3Z02wGzBX4M+5fMtQ=="],
"react-medium-image-zoom": ["react-medium-image-zoom@5.4.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-BsE+EnFVQzFIlyuuQrZ9iTwyKpKkqdFZV1ImEQN573QPqGrIUuNni7aF+sZwDcxlsuOMayCr6oO/PZR/yJnbRg=="],
@@ -706,7 +702,7 @@
"react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="],
- "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
+ "readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="],
"recma-build-jsx": ["recma-build-jsx@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew=="],
@@ -772,7 +768,7 @@
"styled-jsx": ["styled-jsx@5.1.6", "", { "dependencies": { "client-only": "0.0.1" }, "peerDependencies": { "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" } }, "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA=="],
- "tailwind-merge": ["tailwind-merge@3.3.1", "", {}, "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g=="],
+ "tailwind-merge": ["tailwind-merge@3.4.0", "", {}, "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g=="],
"tailwindcss": ["tailwindcss@4.1.17", "", {}, "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q=="],
@@ -820,22 +816,28 @@
"xml-js": ["xml-js@1.6.11", "", { "dependencies": { "sax": "^1.2.4" }, "bin": { "xml-js": "./bin/cli.js" } }, "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g=="],
+ "xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="],
+
"yaml": ["yaml@2.8.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ=="],
"zod": ["zod@4.1.12", "", {}, "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ=="],
"zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="],
+ "@radix-ui/react-collection/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
+
+ "@radix-ui/react-dialog/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
+
+ "@radix-ui/react-popover/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
+
+ "@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
+
+ "@radix-ui/react-select/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
+
+ "@scalar/openapi-parser/@scalar/json-magic": ["@scalar/json-magic@0.8.1", "", { "dependencies": { "@scalar/helpers": "0.1.1", "xxhash-wasm": "^1.1.0", "yaml": "2.8.0" } }, "sha512-PtG0gJxw+iE9492pqy9V+ZbnfRnycIxTAxknKQCOGRyFYfDvYSs0/uyFCHoQPl7HEZoNNA7q/fr0LBZXMRzv7g=="],
+
"@scalar/openapi-types/zod": ["zod@4.1.11", "", {}, "sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg=="],
- "@shikijs/rehype/@shikijs/types": ["@shikijs/types@3.13.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw=="],
-
- "@shikijs/rehype/shiki": ["shiki@3.13.0", "", { "dependencies": { "@shikijs/core": "3.13.0", "@shikijs/engine-javascript": "3.13.0", "@shikijs/engine-oniguruma": "3.13.0", "@shikijs/langs": "3.13.0", "@shikijs/themes": "3.13.0", "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g=="],
-
- "@shikijs/transformers/@shikijs/core": ["@shikijs/core@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA=="],
-
- "@shikijs/transformers/@shikijs/types": ["@shikijs/types@3.13.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw=="],
-
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.7.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg=="],
"@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.7.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA=="],
@@ -848,72 +850,18 @@
"@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
- "fumadocs-core/shiki": ["shiki@3.13.0", "", { "dependencies": { "@shikijs/core": "3.13.0", "@shikijs/engine-javascript": "3.13.0", "@shikijs/engine-oniguruma": "3.13.0", "@shikijs/langs": "3.13.0", "@shikijs/themes": "3.13.0", "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g=="],
-
- "fumadocs-openapi/fumadocs-core": ["fumadocs-core@16.0.7", "", { "dependencies": { "@formatjs/intl-localematcher": "^0.6.2", "@orama/orama": "^3.1.16", "@shikijs/rehype": "^3.14.0", "@shikijs/transformers": "^3.14.0", "estree-util-value-to-estree": "^3.5.0", "github-slugger": "^2.0.0", "hast-util-to-estree": "^3.1.3", "hast-util-to-jsx-runtime": "^2.3.6", "image-size": "^2.0.2", "negotiator": "^1.0.0", "npm-to-yarn": "^3.0.1", "path-to-regexp": "^8.3.0", "remark": "^15.0.1", "remark-gfm": "^4.0.1", "remark-rehype": "^11.1.2", "scroll-into-view-if-needed": "^3.1.0", "shiki": "^3.14.0", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "@mixedbread/sdk": "^0.19.0", "@orama/core": "1.x.x", "@tanstack/react-router": "1.x.x", "@types/react": "*", "algoliasearch": "5.x.x", "lucide-react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "react-router": "7.x.x", "waku": "^0.26.0" }, "optionalPeers": ["@mixedbread/sdk", "@orama/core", "@tanstack/react-router", "@types/react", "algoliasearch", "lucide-react", "next", "react", "react-dom", "react-router", "waku"] }, "sha512-kCkhwquhoy10SW3lqTpBD0XR0V1cMruBQdMN+/BrpQZfYFEGvd+QxLCXa/hUC4tnePUAXgMxMThZT1Ze1Nb+pg=="],
-
- "fumadocs-openapi/fumadocs-ui": ["fumadocs-ui@16.0.7", "", { "dependencies": { "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-direction": "^1.1.1", "@radix-ui/react-navigation-menu": "^1.2.14", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-presence": "^1.1.5", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.1.13", "class-variance-authority": "^0.7.1", "fumadocs-core": "16.0.7", "lodash.merge": "^4.6.2", "next-themes": "^0.4.6", "postcss-selector-parser": "^7.1.0", "react-medium-image-zoom": "^5.4.0", "scroll-into-view-if-needed": "^3.1.0", "tailwind-merge": "^3.3.1" }, "peerDependencies": { "@types/react": "*", "next": "16.x.x", "react": "^19.2.0", "react-dom": "^19.2.0", "tailwindcss": "^4.0.0" }, "optionalPeers": ["@types/react", "next", "tailwindcss"] }, "sha512-SUEm3ThdTPZofSx/Yfc7BkS5EWkz3W/yvPhBBxEALxDKf9On4MC0uunDlkM5/WeHF5rzWw+bj5nliQ/QKcsfNw=="],
-
- "gray-matter/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="],
+ "gray-matter/js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="],
"next/postcss": ["postcss@8.4.31", "", { "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ=="],
"parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="],
- "@shikijs/rehype/shiki/@shikijs/core": ["@shikijs/core@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA=="],
-
- "@shikijs/rehype/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg=="],
-
- "@shikijs/rehype/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg=="],
-
- "@shikijs/rehype/shiki/@shikijs/langs": ["@shikijs/langs@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0" } }, "sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ=="],
-
- "@shikijs/rehype/shiki/@shikijs/themes": ["@shikijs/themes@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0" } }, "sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg=="],
+ "@scalar/openapi-parser/@scalar/json-magic/@scalar/helpers": ["@scalar/helpers@0.1.1", "", {}, "sha512-eJjuCI5djqU0adTwrHvpDf0xuwNRpwZinCfJ03QjnmIFBM9Ch0u3tn/0EZOhcVNbdEyJ+3yvSVy1dCmmvgtpvQ=="],
"@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@emnapi/core": ["@emnapi/core@1.5.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg=="],
"@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@emnapi/runtime": ["@emnapi/runtime@1.5.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ=="],
- "fumadocs-core/shiki/@shikijs/core": ["@shikijs/core@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA=="],
-
- "fumadocs-core/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg=="],
-
- "fumadocs-core/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg=="],
-
- "fumadocs-core/shiki/@shikijs/langs": ["@shikijs/langs@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0" } }, "sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ=="],
-
- "fumadocs-core/shiki/@shikijs/themes": ["@shikijs/themes@3.13.0", "", { "dependencies": { "@shikijs/types": "3.13.0" } }, "sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg=="],
-
- "fumadocs-core/shiki/@shikijs/types": ["@shikijs/types@3.13.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/rehype": ["@shikijs/rehype@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", "shiki": "3.14.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" } }, "sha512-In2G6yvT0ZFDqNGbJumd7gEAwtxuaXuchCc0O3qOytIUTlpzs8/D0CQF3wktdfOB6B869eab6Z6EIJr4Td4hQQ=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/transformers": ["@shikijs/transformers@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/types": "3.14.0" } }, "sha512-i67zQnY9wLMMnKasonVW1L9fKneSLZDj1ePsA4o0AZWU4uUobmJY9baRDa36z+a9/g0aG76/2tybQvm4hrwxIQ=="],
-
"gray-matter/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="],
-
- "@shikijs/rehype/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@4.3.3", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="],
-
- "fumadocs-core/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@4.3.3", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/rehype/@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki": ["shiki@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/engine-javascript": "3.14.0", "@shikijs/engine-oniguruma": "3.14.0", "@shikijs/langs": "3.14.0", "@shikijs/themes": "3.14.0", "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/transformers/@shikijs/core": ["@shikijs/core@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/transformers/@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/core": ["@shikijs/core@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/langs": ["@shikijs/langs@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/themes": ["@shikijs/themes@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA=="],
-
- "fumadocs-openapi/fumadocs-core/@shikijs/rehype/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@4.3.3", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="],
}
}
diff --git a/docs/components/api-page.client.tsx b/docs/components/api-page.client.tsx
new file mode 100644
index 0000000..2b4aecb
--- /dev/null
+++ b/docs/components/api-page.client.tsx
@@ -0,0 +1,10 @@
+"use client";
+import { defineClientConfig } from "fumadocs-openapi/ui/client";
+
+export default defineClientConfig({
+ playground: {
+ transformAuthInputs: (inputs) => [
+ /* modified inputs */
+ ],
+ },
+});
diff --git a/docs/components/api-page.tsx b/docs/components/api-page.tsx
new file mode 100644
index 0000000..c572c66
--- /dev/null
+++ b/docs/components/api-page.tsx
@@ -0,0 +1,7 @@
+import { createAPIPage } from "fumadocs-openapi/ui";
+import client from "@/components/api-page.client";
+import { openapi } from "@/lib/openapi";
+
+export const APIPage = createAPIPage(openapi, {
+ client,
+});
diff --git a/docs/content/docs/am_following_dataset.mdx b/docs/content/docs/am_following_dataset.mdx
index d91d27e..3a45c18 100644
--- a/docs/content/docs/am_following_dataset.mdx
+++ b/docs/content/docs/am_following_dataset.mdx
@@ -3,7 +3,6 @@ title: am_following_dataset
full: true
_openapi:
method: POST
- route: am_following_dataset
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return `True` if you're following the given dataset, `False` if not.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/am_following_group.mdx b/docs/content/docs/am_following_group.mdx
index a961df0..fc5f735 100644
--- a/docs/content/docs/am_following_group.mdx
+++ b/docs/content/docs/am_following_group.mdx
@@ -3,7 +3,6 @@ title: am_following_group
full: true
_openapi:
method: POST
- route: am_following_group
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return `True` if you're following the given group, `False` if not.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/am_following_user.mdx b/docs/content/docs/am_following_user.mdx
index 2011bd9..655b87a 100644
--- a/docs/content/docs/am_following_user.mdx
+++ b/docs/content/docs/am_following_user.mdx
@@ -3,7 +3,6 @@ title: am_following_user
full: true
_openapi:
method: POST
- route: am_following_user
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return `True` if you're following the given user, `False` if not.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/api_token_create.mdx b/docs/content/docs/api_token_create.mdx
index 053e8ae..a0cf132 100644
--- a/docs/content/docs/api_token_create.mdx
+++ b/docs/content/docs/api_token_create.mdx
@@ -3,7 +3,6 @@ title: api_token_create
full: true
_openapi:
method: POST
- route: api_token_create
toc: []
structuredData:
headings: []
@@ -24,4 +23,4 @@ Create new API Token for current user.
Apart from the `user` and `name` field that are required by default implementation, there may be additional fields registered by extensions.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/api_token_list.mdx b/docs/content/docs/api_token_list.mdx
index 6fd7f0e..286e82a 100644
--- a/docs/content/docs/api_token_list.mdx
+++ b/docs/content/docs/api_token_list.mdx
@@ -3,7 +3,6 @@ title: api_token_list
full: true
_openapi:
method: POST
- route: api_token_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return list of all available API tokens for the current user.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/api_token_revoke.mdx b/docs/content/docs/api_token_revoke.mdx
index 2d58e59..3a17ab5 100644
--- a/docs/content/docs/api_token_revoke.mdx
+++ b/docs/content/docs/api_token_revoke.mdx
@@ -3,7 +3,6 @@ title: api_token_revoke
full: true
_openapi:
method: DELETE
- route: api_token_revoke
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Delete API Token.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/bulk_update_delete.mdx b/docs/content/docs/bulk_update_delete.mdx
index 30e2ebc..29c0df2 100644
--- a/docs/content/docs/bulk_update_delete.mdx
+++ b/docs/content/docs/bulk_update_delete.mdx
@@ -3,7 +3,6 @@ title: bulk_update_delete
full: true
_openapi:
method: PUT
- route: bulk_update_delete
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Make a list of datasets deleted.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/bulk_update_private.mdx b/docs/content/docs/bulk_update_private.mdx
index fbaa8ac..3585da2 100644
--- a/docs/content/docs/bulk_update_private.mdx
+++ b/docs/content/docs/bulk_update_private.mdx
@@ -3,7 +3,6 @@ title: bulk_update_private
full: true
_openapi:
method: PUT
- route: bulk_update_private
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Make a list of datasets private.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/bulk_update_public.mdx b/docs/content/docs/bulk_update_public.mdx
index 8ca3ca5..11fb044 100644
--- a/docs/content/docs/bulk_update_public.mdx
+++ b/docs/content/docs/bulk_update_public.mdx
@@ -3,7 +3,6 @@ title: bulk_update_public
full: true
_openapi:
method: PUT
- route: bulk_update_public
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Make a list of datasets public.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/config_option_list.mdx b/docs/content/docs/config_option_list.mdx
index 8804716..aa55c9c 100644
--- a/docs/content/docs/config_option_list.mdx
+++ b/docs/content/docs/config_option_list.mdx
@@ -3,7 +3,6 @@ title: config_option_list
full: true
_openapi:
method: POST
- route: config_option_list
toc: []
structuredData:
headings: []
@@ -18,4 +17,4 @@ _openapi:
Return a list of runtime-editable config option keys that can be updated with `config_option_update()`.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/config_option_show.mdx b/docs/content/docs/config_option_show.mdx
index df8b3ea..73ec9d9 100644
--- a/docs/content/docs/config_option_show.mdx
+++ b/docs/content/docs/config_option_show.mdx
@@ -3,7 +3,6 @@ title: config_option_show
full: true
_openapi:
method: POST
- route: config_option_show
toc: []
structuredData:
headings: []
@@ -24,4 +23,4 @@ Show the current value of a particular configuration option.
Only returns runtime-editable config options (the ones returned by `config_option_list()`), which can be updated with the `config_option_update()` action.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/config_option_update.mdx b/docs/content/docs/config_option_update.mdx
index 540c3bc..a9db33a 100644
--- a/docs/content/docs/config_option_update.mdx
+++ b/docs/content/docs/config_option_update.mdx
@@ -3,7 +3,6 @@ title: config_option_update
full: true
_openapi:
method: PUT
- route: config_option_update
toc: []
structuredData:
headings: []
@@ -66,4 +65,4 @@ It takes arbitrary key, value pairs and checks the keys against the config optio
You should only add config options that you are comfortable they can be edited during runtime, such as ones you've added in your own extension, or have reviewed the use of in core CKAN.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/current_package_list_with_resources.mdx b/docs/content/docs/current_package_list_with_resources.mdx
index a520ea7..0e41ae6 100644
--- a/docs/content/docs/current_package_list_with_resources.mdx
+++ b/docs/content/docs/current_package_list_with_resources.mdx
@@ -3,7 +3,6 @@ title: current_package_list_with_resources
full: true
_openapi:
method: POST
- route: current_package_list_with_resources
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Return a list of the site's datasets (packages) and their resources.
The list is sorted most-recently-modified first.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/dataset_followee_count.mdx b/docs/content/docs/dataset_followee_count.mdx
index 7307699..0e52be7 100644
--- a/docs/content/docs/dataset_followee_count.mdx
+++ b/docs/content/docs/dataset_followee_count.mdx
@@ -3,7 +3,6 @@ title: dataset_followee_count
full: true
_openapi:
method: POST
- route: dataset_followee_count
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the number of datasets that are followed by the given user.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/dataset_follower_count.mdx b/docs/content/docs/dataset_follower_count.mdx
index 5cc551c..1675c8c 100644
--- a/docs/content/docs/dataset_follower_count.mdx
+++ b/docs/content/docs/dataset_follower_count.mdx
@@ -3,7 +3,6 @@ title: dataset_follower_count
full: true
_openapi:
method: POST
- route: dataset_follower_count
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Returun the number of followers of a dataset.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/dataset_follower_list.mdx b/docs/content/docs/dataset_follower_list.mdx
index 75ab3ed..068bf36 100644
--- a/docs/content/docs/dataset_follower_list.mdx
+++ b/docs/content/docs/dataset_follower_list.mdx
@@ -3,7 +3,6 @@ title: dataset_follower_list
full: true
_openapi:
method: POST
- route: dataset_follower_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the list of users that are following the given dataset.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/dataset_purge.mdx b/docs/content/docs/dataset_purge.mdx
index 4cd93c2..372f5ca 100644
--- a/docs/content/docs/dataset_purge.mdx
+++ b/docs/content/docs/dataset_purge.mdx
@@ -3,7 +3,6 @@ title: dataset_purge
full: true
_openapi:
method: DELETE
- route: dataset_purge
toc: []
structuredData:
headings: []
@@ -36,4 +35,4 @@ Purging a dataset completely removes the dataset from the CKAN database, whereas
You must be authorized to purge the dataset.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/follow_dataset.mdx b/docs/content/docs/follow_dataset.mdx
index 042617e..31e281d 100644
--- a/docs/content/docs/follow_dataset.mdx
+++ b/docs/content/docs/follow_dataset.mdx
@@ -3,7 +3,6 @@ title: follow_dataset
full: true
_openapi:
method: POST
- route: follow_dataset
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Start following a dataset.
You must provide your API key in the Authorization header.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/follow_group.mdx b/docs/content/docs/follow_group.mdx
index 50b9a8f..2b0cab7 100644
--- a/docs/content/docs/follow_group.mdx
+++ b/docs/content/docs/follow_group.mdx
@@ -3,7 +3,6 @@ title: follow_group
full: true
_openapi:
method: POST
- route: follow_group
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Start following a group.
You must provide your API key in the Authorization header.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/follow_user.mdx b/docs/content/docs/follow_user.mdx
index 506bc69..4792f2a 100644
--- a/docs/content/docs/follow_user.mdx
+++ b/docs/content/docs/follow_user.mdx
@@ -3,7 +3,6 @@ title: follow_user
full: true
_openapi:
method: POST
- route: follow_user
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Start following another user.
You must provide your API key in the Authorization header.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/followee_count.mdx b/docs/content/docs/followee_count.mdx
index 33ed519..a07a46e 100644
--- a/docs/content/docs/followee_count.mdx
+++ b/docs/content/docs/followee_count.mdx
@@ -3,7 +3,6 @@ title: followee_count
full: true
_openapi:
method: POST
- route: followee_count
toc: []
structuredData:
headings: []
@@ -23,4 +22,4 @@ Return the number of objects that are followed by the given user.
Counts all objects, of any type, that the given user is following (e.g. followed users, followed datasets, followed groups).
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/followee_list.mdx b/docs/content/docs/followee_list.mdx
index 77458ef..d6891be 100644
--- a/docs/content/docs/followee_list.mdx
+++ b/docs/content/docs/followee_list.mdx
@@ -3,7 +3,6 @@ title: followee_list
full: true
_openapi:
method: POST
- route: followee_list
toc: []
structuredData:
headings: []
@@ -23,4 +22,4 @@ Return the list of objects that are followed by the given user.
Returns all objects, of any type, that the given user is following (e.g. followed users, followed datasets, followed groups).
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/format_autocomplete.mdx b/docs/content/docs/format_autocomplete.mdx
index 5d0d862..6993567 100644
--- a/docs/content/docs/format_autocomplete.mdx
+++ b/docs/content/docs/format_autocomplete.mdx
@@ -3,7 +3,6 @@ title: format_autocomplete
full: true
_openapi:
method: POST
- route: format_autocomplete
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return a list of resource formats whose names contain a string.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/get_site_user.mdx b/docs/content/docs/get_site_user.mdx
index 259617d..51cba20 100644
--- a/docs/content/docs/get_site_user.mdx
+++ b/docs/content/docs/get_site_user.mdx
@@ -3,7 +3,6 @@ title: get_site_user
full: true
_openapi:
method: POST
- route: get_site_user
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the CKAN site user.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_autocomplete.mdx b/docs/content/docs/group_autocomplete.mdx
index ebe3d1f..5606578 100644
--- a/docs/content/docs/group_autocomplete.mdx
+++ b/docs/content/docs/group_autocomplete.mdx
@@ -3,7 +3,6 @@ title: group_autocomplete
full: true
_openapi:
method: POST
- route: group_autocomplete
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return a list of group names that contain a string.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_create.mdx b/docs/content/docs/group_create.mdx
index f912a97..4bfcf77 100644
--- a/docs/content/docs/group_create.mdx
+++ b/docs/content/docs/group_create.mdx
@@ -3,7 +3,6 @@ title: group_create
full: true
_openapi:
method: POST
- route: group_create
toc: []
structuredData:
headings: []
@@ -28,4 +27,4 @@ You must be authorized to create groups.
Plugins may change the parameters of this function depending on the value of the `type` parameter, see the `IGroupForm` plugin interface.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_delete.mdx b/docs/content/docs/group_delete.mdx
index 2b265b3..1e9bf11 100644
--- a/docs/content/docs/group_delete.mdx
+++ b/docs/content/docs/group_delete.mdx
@@ -3,7 +3,6 @@ title: group_delete
full: true
_openapi:
method: DELETE
- route: group_delete
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Delete a group.
You must be authorized to delete the group.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_followee_count.mdx b/docs/content/docs/group_followee_count.mdx
index 059ceba..2e915fd 100644
--- a/docs/content/docs/group_followee_count.mdx
+++ b/docs/content/docs/group_followee_count.mdx
@@ -3,7 +3,6 @@ title: group_followee_count
full: true
_openapi:
method: POST
- route: group_followee_count
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the number of groups that are followed by the given user.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_follower_list.mdx b/docs/content/docs/group_follower_list.mdx
index 1857392..642d9bc 100644
--- a/docs/content/docs/group_follower_list.mdx
+++ b/docs/content/docs/group_follower_list.mdx
@@ -3,7 +3,6 @@ title: group_follower_list
full: true
_openapi:
method: POST
- route: group_follower_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the list of users that are following the given group.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_list.mdx b/docs/content/docs/group_list.mdx
index c6b7679..667a162 100644
--- a/docs/content/docs/group_list.mdx
+++ b/docs/content/docs/group_list.mdx
@@ -3,7 +3,6 @@ title: group_list
full: true
_openapi:
method: POST
- route: group_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return a list of the names of the site's groups.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_list_authz.mdx b/docs/content/docs/group_list_authz.mdx
index d9eae51..024a74a 100644
--- a/docs/content/docs/group_list_authz.mdx
+++ b/docs/content/docs/group_list_authz.mdx
@@ -3,7 +3,6 @@ title: group_list_authz
full: true
_openapi:
method: POST
- route: group_list_authz
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the list of groups that the user is authorized to edit.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_member_create.mdx b/docs/content/docs/group_member_create.mdx
index 606efd2..0365ed0 100644
--- a/docs/content/docs/group_member_create.mdx
+++ b/docs/content/docs/group_member_create.mdx
@@ -3,7 +3,6 @@ title: group_member_create
full: true
_openapi:
method: POST
- route: group_member_create
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Make a user a member of a group.
You must be authorized to edit the group.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_member_delete.mdx b/docs/content/docs/group_member_delete.mdx
index 07f1e3c..dd59c15 100644
--- a/docs/content/docs/group_member_delete.mdx
+++ b/docs/content/docs/group_member_delete.mdx
@@ -3,7 +3,6 @@ title: group_member_delete
full: true
_openapi:
method: DELETE
- route: group_member_delete
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Remove a user from a group.
You must be authorized to edit the group.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_package_show.mdx b/docs/content/docs/group_package_show.mdx
index a239033..2427301 100644
--- a/docs/content/docs/group_package_show.mdx
+++ b/docs/content/docs/group_package_show.mdx
@@ -3,7 +3,6 @@ title: group_package_show
full: true
_openapi:
method: POST
- route: group_package_show
toc: []
structuredData:
headings: []
@@ -15,4 +14,4 @@ _openapi:
Return the datasets (packages) of a group.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_patch.mdx b/docs/content/docs/group_patch.mdx
index ef8e491..69efc10 100644
--- a/docs/content/docs/group_patch.mdx
+++ b/docs/content/docs/group_patch.mdx
@@ -3,7 +3,6 @@ title: group_patch
full: true
_openapi:
method: PATCH
- route: group_patch
toc: []
structuredData:
headings: []
@@ -25,4 +24,4 @@ Patch a group.
The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_purge.mdx b/docs/content/docs/group_purge.mdx
index 6cee332..b5c6b47 100644
--- a/docs/content/docs/group_purge.mdx
+++ b/docs/content/docs/group_purge.mdx
@@ -3,7 +3,6 @@ title: group_purge
full: true
_openapi:
method: DELETE
- route: group_purge
toc: []
structuredData:
headings: []
@@ -40,4 +39,4 @@ Datasets in the group will remain, just not in the purged group.
You must be authorized to purge the group.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_show.mdx b/docs/content/docs/group_show.mdx
index 36ef7c1..73ca069 100644
--- a/docs/content/docs/group_show.mdx
+++ b/docs/content/docs/group_show.mdx
@@ -3,7 +3,6 @@ title: group_show
full: true
_openapi:
method: POST
- route: group_show
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the details of a group (only its first 1000 datasets are returned).
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/group_update.mdx b/docs/content/docs/group_update.mdx
index 4ed97fc..9ded5fd 100644
--- a/docs/content/docs/group_update.mdx
+++ b/docs/content/docs/group_update.mdx
@@ -3,7 +3,6 @@ title: group_update
full: true
_openapi:
method: PUT
- route: group_update
toc: []
structuredData:
headings: []
@@ -36,4 +35,4 @@ You must be authorized to edit the group.
Plugins may change the parameters of this function depending on the value of the group's `type` attribute, see the `IGroupForm` plugin interface.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/help_show.mdx b/docs/content/docs/help_show.mdx
index d957833..ed47aa7 100644
--- a/docs/content/docs/help_show.mdx
+++ b/docs/content/docs/help_show.mdx
@@ -3,7 +3,6 @@ title: help_show
full: true
_openapi:
method: POST
- route: help_show
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the help string for a particular API action.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/job_cancel.mdx b/docs/content/docs/job_cancel.mdx
index a2286bd..54cc40a 100644
--- a/docs/content/docs/job_cancel.mdx
+++ b/docs/content/docs/job_cancel.mdx
@@ -3,7 +3,6 @@ title: job_cancel
full: true
_openapi:
method: DELETE
- route: job_cancel
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Cancel a queued background job.
Removes the job from the queue and deletes it.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/job_clear.mdx b/docs/content/docs/job_clear.mdx
index a0733a3..0b3dc4b 100644
--- a/docs/content/docs/job_clear.mdx
+++ b/docs/content/docs/job_clear.mdx
@@ -3,7 +3,6 @@ title: job_clear
full: true
_openapi:
method: DELETE
- route: job_clear
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Clear background job queues.
Does not affect jobs that are already being processed.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/job_list.mdx b/docs/content/docs/job_list.mdx
index 07f866e..b9c5188 100644
--- a/docs/content/docs/job_list.mdx
+++ b/docs/content/docs/job_list.mdx
@@ -3,7 +3,6 @@ title: job_list
full: true
_openapi:
method: POST
- route: job_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
List enqueued background jobs.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/job_show.mdx b/docs/content/docs/job_show.mdx
index c6a00dd..ee28471 100644
--- a/docs/content/docs/job_show.mdx
+++ b/docs/content/docs/job_show.mdx
@@ -3,7 +3,6 @@ title: job_show
full: true
_openapi:
method: POST
- route: job_show
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Show details for a background job.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/license_list.mdx b/docs/content/docs/license_list.mdx
index 80003f0..7ce0f52 100644
--- a/docs/content/docs/license_list.mdx
+++ b/docs/content/docs/license_list.mdx
@@ -3,7 +3,6 @@ title: license_list
full: true
_openapi:
method: POST
- route: license_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the list of licenses available for datasets on the site.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/member_create.mdx b/docs/content/docs/member_create.mdx
index 6749f3d..15142e5 100644
--- a/docs/content/docs/member_create.mdx
+++ b/docs/content/docs/member_create.mdx
@@ -3,7 +3,6 @@ title: member_create
full: true
_openapi:
method: POST
- route: member_create
toc: []
structuredData:
headings: []
@@ -28,4 +27,4 @@ If the object is already a member of the group then the capacity of the membersh
You must be authorized to edit the group.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/member_delete.mdx b/docs/content/docs/member_delete.mdx
index 882edde..7ecfd64 100644
--- a/docs/content/docs/member_delete.mdx
+++ b/docs/content/docs/member_delete.mdx
@@ -3,7 +3,6 @@ title: member_delete
full: true
_openapi:
method: DELETE
- route: member_delete
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Remove an object (e.g. a user, dataset or group) from a group.
You must be authorized to edit a group to remove objects from it.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/member_list.mdx b/docs/content/docs/member_list.mdx
index e2ef1cc..cadfd86 100644
--- a/docs/content/docs/member_list.mdx
+++ b/docs/content/docs/member_list.mdx
@@ -3,7 +3,6 @@ title: member_list
full: true
_openapi:
method: POST
- route: member_list
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Return the members of a group.
The user must have permission to "get" the group.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/member_roles_list.mdx b/docs/content/docs/member_roles_list.mdx
index 791c45b..047cce1 100644
--- a/docs/content/docs/member_roles_list.mdx
+++ b/docs/content/docs/member_roles_list.mdx
@@ -3,7 +3,6 @@ title: member_roles_list
full: true
_openapi:
method: POST
- route: member_roles_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the possible roles for members of groups and organizations.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_autocomplete.mdx b/docs/content/docs/organization_autocomplete.mdx
index 6c62ca4..a67e196 100644
--- a/docs/content/docs/organization_autocomplete.mdx
+++ b/docs/content/docs/organization_autocomplete.mdx
@@ -3,7 +3,6 @@ title: organization_autocomplete
full: true
_openapi:
method: POST
- route: organization_autocomplete
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return a list of organization names that contain a string.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_create.mdx b/docs/content/docs/organization_create.mdx
index 8fe77c3..7402b65 100644
--- a/docs/content/docs/organization_create.mdx
+++ b/docs/content/docs/organization_create.mdx
@@ -3,7 +3,6 @@ title: organization_create
full: true
_openapi:
method: POST
- route: organization_create
toc: []
structuredData:
headings: []
@@ -28,4 +27,4 @@ You must be authorized to create organizations.
Plugins may change the parameters of this function depending on the value of the `type` parameter, see the `IGroupForm` plugin interface.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_delete.mdx b/docs/content/docs/organization_delete.mdx
index fbbd500..1913283 100644
--- a/docs/content/docs/organization_delete.mdx
+++ b/docs/content/docs/organization_delete.mdx
@@ -3,7 +3,6 @@ title: organization_delete
full: true
_openapi:
method: DELETE
- route: organization_delete
toc: []
structuredData:
headings: []
@@ -24,4 +23,4 @@ Delete an organization.
You must be authorized to delete the organization and no datasets should belong to the organization unless `'ckan.auth.create_unowned_dataset=True'`
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_followee_count.mdx b/docs/content/docs/organization_followee_count.mdx
index 40e2164..3fd126c 100644
--- a/docs/content/docs/organization_followee_count.mdx
+++ b/docs/content/docs/organization_followee_count.mdx
@@ -3,7 +3,6 @@ title: organization_followee_count
full: true
_openapi:
method: POST
- route: organization_followee_count
toc: []
structuredData:
headings: []
@@ -18,4 +17,4 @@ _openapi:
Return the number of organizations that are followed by the given user.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_followee_list.mdx b/docs/content/docs/organization_followee_list.mdx
index 3bb3189..80f660f 100644
--- a/docs/content/docs/organization_followee_list.mdx
+++ b/docs/content/docs/organization_followee_list.mdx
@@ -3,7 +3,6 @@ title: organization_followee_list
full: true
_openapi:
method: POST
- route: organization_followee_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the list of organizations that are followed by the given user.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_follower_count.mdx b/docs/content/docs/organization_follower_count.mdx
index 467fe8f..025abaf 100644
--- a/docs/content/docs/organization_follower_count.mdx
+++ b/docs/content/docs/organization_follower_count.mdx
@@ -3,7 +3,6 @@ title: organization_follower_count
full: true
_openapi:
method: POST
- route: organization_follower_count
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Returun the number of followers of an organization.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_follower_list.mdx b/docs/content/docs/organization_follower_list.mdx
index cc52020..14ad361 100644
--- a/docs/content/docs/organization_follower_list.mdx
+++ b/docs/content/docs/organization_follower_list.mdx
@@ -3,7 +3,6 @@ title: organization_follower_list
full: true
_openapi:
method: POST
- route: organization_follower_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the list of users that are following the given organization.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_list.mdx b/docs/content/docs/organization_list.mdx
index 4b0b5d5..88d87e6 100644
--- a/docs/content/docs/organization_list.mdx
+++ b/docs/content/docs/organization_list.mdx
@@ -3,7 +3,6 @@ title: organization_list
full: true
_openapi:
method: POST
- route: organization_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return a list of the names of the site's organizations.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_list_for_user.mdx b/docs/content/docs/organization_list_for_user.mdx
index e38343c..9512e6b 100644
--- a/docs/content/docs/organization_list_for_user.mdx
+++ b/docs/content/docs/organization_list_for_user.mdx
@@ -3,7 +3,6 @@ title: organization_list_for_user
full: true
_openapi:
method: POST
- route: organization_list_for_user
toc: []
structuredData:
headings: []
@@ -55,4 +54,4 @@ Each of these roles has certain permissions associated with it. For example the
This function returns the list of organizations that the authorized user has a given permission for. For example the list of organizations that the user is an admin of, or the list of organizations that the user can create datasets in. This takes account of when permissions cascade down an organization hierarchy.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_member_create.mdx b/docs/content/docs/organization_member_create.mdx
index 544fdfd..e113c16 100644
--- a/docs/content/docs/organization_member_create.mdx
+++ b/docs/content/docs/organization_member_create.mdx
@@ -3,7 +3,6 @@ title: organization_member_create
full: true
_openapi:
method: POST
- route: organization_member_create
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Make a user a member of an organization.
You must be authorized to edit the organization.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_member_delete.mdx b/docs/content/docs/organization_member_delete.mdx
index d681c52..da3312b 100644
--- a/docs/content/docs/organization_member_delete.mdx
+++ b/docs/content/docs/organization_member_delete.mdx
@@ -3,7 +3,6 @@ title: organization_member_delete
full: true
_openapi:
method: DELETE
- route: organization_member_delete
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Remove a user from an organization.
You must be authorized to edit the organization.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_patch.mdx b/docs/content/docs/organization_patch.mdx
index 0ffd07c..e79abd5 100644
--- a/docs/content/docs/organization_patch.mdx
+++ b/docs/content/docs/organization_patch.mdx
@@ -3,7 +3,6 @@ title: organization_patch
full: true
_openapi:
method: PATCH
- route: organization_patch
toc: []
structuredData:
headings: []
@@ -25,4 +24,4 @@ Patch an organization.
The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_purge.mdx b/docs/content/docs/organization_purge.mdx
index f63f786..5b872d7 100644
--- a/docs/content/docs/organization_purge.mdx
+++ b/docs/content/docs/organization_purge.mdx
@@ -3,7 +3,6 @@ title: organization_purge
full: true
_openapi:
method: DELETE
- route: organization_purge
toc: []
structuredData:
headings: []
@@ -42,4 +41,4 @@ Datasets owned by the organization will remain, just not in an organization anym
You must be authorized to purge the organization.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_show.mdx b/docs/content/docs/organization_show.mdx
index 9644ee3..7b5308f 100644
--- a/docs/content/docs/organization_show.mdx
+++ b/docs/content/docs/organization_show.mdx
@@ -3,7 +3,6 @@ title: organization_show
full: true
_openapi:
method: POST
- route: organization_show
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the details of an organization (only its first 10 datasets are returned).
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/organization_update.mdx b/docs/content/docs/organization_update.mdx
index 224eea2..c08508b 100644
--- a/docs/content/docs/organization_update.mdx
+++ b/docs/content/docs/organization_update.mdx
@@ -3,7 +3,6 @@ title: organization_update
full: true
_openapi:
method: PUT
- route: organization_update
toc: []
structuredData:
headings: []
@@ -29,4 +28,4 @@ You must be authorized to edit the organization.
Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `organization_patch` instead.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_autocomplete.mdx b/docs/content/docs/package_autocomplete.mdx
index cdf3f2d..73fa9e5 100644
--- a/docs/content/docs/package_autocomplete.mdx
+++ b/docs/content/docs/package_autocomplete.mdx
@@ -3,7 +3,6 @@ title: package_autocomplete
full: true
_openapi:
method: POST
- route: package_autocomplete
toc: []
structuredData:
headings: []
@@ -23,4 +22,4 @@ Return a list of datasets (packages) that match a string.
Datasets with names or titles that contain the query string will be returned.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_collaborator_create.mdx b/docs/content/docs/package_collaborator_create.mdx
index c8795b5..02e4c64 100644
--- a/docs/content/docs/package_collaborator_create.mdx
+++ b/docs/content/docs/package_collaborator_create.mdx
@@ -3,7 +3,6 @@ title: package_collaborator_create
full: true
_openapi:
method: POST
- route: package_collaborator_create
toc: []
structuredData:
headings: []
@@ -37,4 +36,4 @@ Currently you must be an Admin on the dataset owner organization to manage colla
Note: This action requires the collaborators feature to be enabled with the [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators) configuration option.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_collaborator_delete.mdx b/docs/content/docs/package_collaborator_delete.mdx
index 525512a..1e33218 100644
--- a/docs/content/docs/package_collaborator_delete.mdx
+++ b/docs/content/docs/package_collaborator_delete.mdx
@@ -3,7 +3,6 @@ title: package_collaborator_delete
full: true
_openapi:
method: DELETE
- route: package_collaborator_delete
toc: []
structuredData:
headings: []
@@ -31,4 +30,4 @@ Currently you must be an Admin on the dataset owner organization to manage colla
Note: This action requires the collaborators feature to be enabled with the [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators) configuration option.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_collaborator_list.mdx b/docs/content/docs/package_collaborator_list.mdx
index 57735a4..dc7300b 100644
--- a/docs/content/docs/package_collaborator_list.mdx
+++ b/docs/content/docs/package_collaborator_list.mdx
@@ -3,7 +3,6 @@ title: package_collaborator_list
full: true
_openapi:
method: POST
- route: package_collaborator_list
toc: []
structuredData:
headings: []
@@ -31,4 +30,4 @@ Currently you must be an Admin on the dataset owner organization to manage colla
Note: This action requires the collaborators feature to be enabled with the [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators) configuration option.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_collaborator_list_for_user.mdx b/docs/content/docs/package_collaborator_list_for_user.mdx
index 6a6dadf..59c4b36 100644
--- a/docs/content/docs/package_collaborator_list_for_user.mdx
+++ b/docs/content/docs/package_collaborator_list_for_user.mdx
@@ -3,7 +3,6 @@ title: package_collaborator_list_for_user
full: true
_openapi:
method: POST
- route: package_collaborator_list_for_user
toc: []
structuredData:
headings: []
@@ -25,4 +24,4 @@ Return the list of all datasets the user is a collaborator in.
Note: This action requires the collaborators feature to be enabled with the [`ckan.auth.allow_dataset_collaborators`](https://docs.ckan.org/en/2.11/maintaining/configuration.html#ckan-auth-allow-dataset-collaborators) configuration option.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_create.mdx b/docs/content/docs/package_create.mdx
index d2d5804..2255102 100644
--- a/docs/content/docs/package_create.mdx
+++ b/docs/content/docs/package_create.mdx
@@ -3,7 +3,6 @@ title: package_create
full: true
_openapi:
method: POST
- route: package_create
toc: []
structuredData:
headings: []
@@ -30,4 +29,4 @@ You must be authorized to create new datasets. If you specify any groups for the
Plugins may change the parameters of this function depending on the value of the type parameter, see the `IDatasetForm` plugin interface.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_create_default_resource_views.mdx b/docs/content/docs/package_create_default_resource_views.mdx
index e3ffe57..3773bf6 100644
--- a/docs/content/docs/package_create_default_resource_views.mdx
+++ b/docs/content/docs/package_create_default_resource_views.mdx
@@ -3,7 +3,6 @@ title: package_create_default_resource_views
full: true
_openapi:
method: POST
- route: package_create_default_resource_views
toc: []
structuredData:
headings: []
@@ -27,4 +26,4 @@ Creates the default views on all resources of the provided dataset
By default only view plugins that don't require the resource data to be in the DataStore are called. Passing `create_datastore_views` as `True` will only create views that require data to be in the DataStore. The first case happens when the function is called from `package_create` or `package_update`, the second when it's called from the DataPusher when data was uploaded to the DataStore.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_delete.mdx b/docs/content/docs/package_delete.mdx
index dfd71f3..375730d 100644
--- a/docs/content/docs/package_delete.mdx
+++ b/docs/content/docs/package_delete.mdx
@@ -3,7 +3,6 @@ title: package_delete
full: true
_openapi:
method: DELETE
- route: package_delete
toc: []
structuredData:
headings: []
@@ -28,4 +27,4 @@ This makes the dataset disappear from all web & API views, apart from the trash.
You must be authorized to delete the dataset.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_list.mdx b/docs/content/docs/package_list.mdx
index bcc1f9c..533e0d9 100644
--- a/docs/content/docs/package_list.mdx
+++ b/docs/content/docs/package_list.mdx
@@ -3,7 +3,6 @@ title: package_list
full: true
_openapi:
method: POST
- route: package_list
toc: []
structuredData:
headings: []
@@ -15,4 +14,4 @@ _openapi:
This endpoint lists CKAN resources.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_owner_org_update.mdx b/docs/content/docs/package_owner_org_update.mdx
index 8e6c4c2..e421a0b 100644
--- a/docs/content/docs/package_owner_org_update.mdx
+++ b/docs/content/docs/package_owner_org_update.mdx
@@ -3,7 +3,6 @@ title: package_owner_org_update
full: true
_openapi:
method: PUT
- route: package_owner_org_update
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Update the owning organization of a dataset.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_patch.mdx b/docs/content/docs/package_patch.mdx
index eb3c3f1..184c093 100644
--- a/docs/content/docs/package_patch.mdx
+++ b/docs/content/docs/package_patch.mdx
@@ -3,7 +3,6 @@ title: package_patch
full: true
_openapi:
method: PATCH
- route: package_patch
toc: []
structuredData:
headings: []
@@ -38,4 +37,4 @@ To partially update resources or other metadata not at the top level of a packag
You must be authorized to edit the dataset and the groups that it belongs to.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_relationship_create.mdx b/docs/content/docs/package_relationship_create.mdx
index 45cd290..7c6437d 100644
--- a/docs/content/docs/package_relationship_create.mdx
+++ b/docs/content/docs/package_relationship_create.mdx
@@ -3,7 +3,6 @@ title: package_relationship_create
full: true
_openapi:
method: POST
- route: package_relationship_create
toc: []
structuredData:
headings: []
@@ -23,4 +22,4 @@ Create a relationship between two datasets (packages).
You must be authorized to edit both the subject and the object datasets.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_relationship_delete.mdx b/docs/content/docs/package_relationship_delete.mdx
index e02bf55..ecd024d 100644
--- a/docs/content/docs/package_relationship_delete.mdx
+++ b/docs/content/docs/package_relationship_delete.mdx
@@ -3,7 +3,6 @@ title: package_relationship_delete
full: true
_openapi:
method: DELETE
- route: package_relationship_delete
toc: []
structuredData:
headings: []
@@ -23,4 +22,4 @@ Delete a dataset (package) relationship.
You must be authorised to delete dataset relationships, and to edit both the subject and the object datasets.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_relationship_update.mdx b/docs/content/docs/package_relationship_update.mdx
index 154ddd2..fccd012 100644
--- a/docs/content/docs/package_relationship_update.mdx
+++ b/docs/content/docs/package_relationship_update.mdx
@@ -3,7 +3,6 @@ title: package_relationship_update
full: true
_openapi:
method: PUT
- route: package_relationship_update
toc: []
structuredData:
headings: []
@@ -29,4 +28,4 @@ The subject, object and type parameters are required to identify the relationshi
You must be authorized to edit both the subject and the object datasets.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_relationships_list.mdx b/docs/content/docs/package_relationships_list.mdx
index 2125163..9183728 100644
--- a/docs/content/docs/package_relationships_list.mdx
+++ b/docs/content/docs/package_relationships_list.mdx
@@ -3,7 +3,6 @@ title: package_relationships_list
full: true
_openapi:
method: POST
- route: package_relationships_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return a datset's relationships.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_resource_reorder.mdx b/docs/content/docs/package_resource_reorder.mdx
index 5a16df2..e23dd1f 100644
--- a/docs/content/docs/package_resource_reorder.mdx
+++ b/docs/content/docs/package_resource_reorder.mdx
@@ -3,7 +3,6 @@ title: package_resource_reorder
full: true
_openapi:
method: PUT
- route: package_resource_reorder
toc: []
structuredData:
headings: []
@@ -19,4 +18,4 @@ _openapi:
Reorder resources against datasets. If only partial resource ids are supplied then these are assumed to be first and the other resources will stay in their original order.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_revise.mdx b/docs/content/docs/package_revise.mdx
index 24334cd..6ef4db5 100644
--- a/docs/content/docs/package_revise.mdx
+++ b/docs/content/docs/package_revise.mdx
@@ -3,7 +3,6 @@ title: package_revise
full: true
_openapi:
method: PUT
- route: package_revise
toc: []
structuredData:
headings: []
@@ -193,4 +192,4 @@ update__resources__1492a={"name": "edits here", "url": "http://example.com"}
```
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_search.mdx b/docs/content/docs/package_search.mdx
index a98dfc1..b8b9bd5 100644
--- a/docs/content/docs/package_search.mdx
+++ b/docs/content/docs/package_search.mdx
@@ -3,7 +3,6 @@ title: package_search
full: true
_openapi:
method: POST
- route: package_search
toc: []
structuredData:
headings: []
@@ -87,4 +86,4 @@ Please either remove this field by clicking "Open JSON editor" in the Body dropd
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_show.mdx b/docs/content/docs/package_show.mdx
index efc0fd1..a57a7c9 100644
--- a/docs/content/docs/package_show.mdx
+++ b/docs/content/docs/package_show.mdx
@@ -3,7 +3,6 @@ title: package_show
full: true
_openapi:
method: POST
- route: package_show
toc: []
structuredData:
headings: []
@@ -15,4 +14,4 @@ _openapi:
Return the metadata of a dataset and its resources.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/package_update.mdx b/docs/content/docs/package_update.mdx
index a8ba21d..b35569a 100644
--- a/docs/content/docs/package_update.mdx
+++ b/docs/content/docs/package_update.mdx
@@ -3,7 +3,6 @@ title: package_update
full: true
_openapi:
method: PUT
- route: package_update
toc: []
structuredData:
headings: []
@@ -44,4 +43,4 @@ It is recommended to call `ckan.logic.action.get.package_show()`, make the desir
Plugins may change the parameters of this function depending on the value of the dataset's `type` attribute, see the `IDatasetForm` plugin interface.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_create.mdx b/docs/content/docs/resource_create.mdx
index 2310e7b..4b0c6a3 100644
--- a/docs/content/docs/resource_create.mdx
+++ b/docs/content/docs/resource_create.mdx
@@ -3,7 +3,6 @@ title: resource_create
full: true
_openapi:
method: POST
- route: resource_create
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Appends a new resource to a datasets list of resources.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_create_default_resource_views.mdx b/docs/content/docs/resource_create_default_resource_views.mdx
index ff78fcc..8fd2398 100644
--- a/docs/content/docs/resource_create_default_resource_views.mdx
+++ b/docs/content/docs/resource_create_default_resource_views.mdx
@@ -3,7 +3,6 @@ title: resource_create_default_resource_views
full: true
_openapi:
method: POST
- route: resource_create_default_resource_views
toc: []
structuredData:
headings: []
@@ -39,4 +38,4 @@ If the latter is not provided, `package_show` is called to get it.
By default only view plugins that don't require the resource data to be in the DataStore are called. See `ckan.logic.action.create.package_create_default_resource_views()` for details on the `create_datastore_views` parameter.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_delete.mdx b/docs/content/docs/resource_delete.mdx
index e8fbcf8..a75fe71 100644
--- a/docs/content/docs/resource_delete.mdx
+++ b/docs/content/docs/resource_delete.mdx
@@ -3,7 +3,6 @@ title: resource_delete
full: true
_openapi:
method: DELETE
- route: resource_delete
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Delete a resource from a dataset.
You must be a sysadmin or the owner of the resource to delete it.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_patch.mdx b/docs/content/docs/resource_patch.mdx
index d16da67..417a68e 100644
--- a/docs/content/docs/resource_patch.mdx
+++ b/docs/content/docs/resource_patch.mdx
@@ -3,7 +3,6 @@ title: resource_patch
full: true
_openapi:
method: PATCH
- route: resource_patch
toc: []
structuredData:
headings: []
@@ -25,4 +24,4 @@ Patch a resource.
The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_search.mdx b/docs/content/docs/resource_search.mdx
index c7f562d..542992f 100644
--- a/docs/content/docs/resource_search.mdx
+++ b/docs/content/docs/resource_search.mdx
@@ -3,7 +3,6 @@ title: resource_search
full: true
_openapi:
method: POST
- route: resource_search
toc: []
structuredData:
headings: []
@@ -124,4 +123,4 @@ The `order` parameter is used to control the ordering of the results. Currently
The context may contain a flag, *search_query*, which if True will make this action behave as if being used by the internal search api. ie - the results will not be dictized, and SearchErrors are thrown for bad search queries (rather than ValidationErrors).
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_show.mdx b/docs/content/docs/resource_show.mdx
index dca98e7..c26153a 100644
--- a/docs/content/docs/resource_show.mdx
+++ b/docs/content/docs/resource_show.mdx
@@ -3,7 +3,6 @@ title: resource_show
full: true
_openapi:
method: POST
- route: resource_show
toc: []
structuredData:
headings: []
@@ -15,4 +14,4 @@ _openapi:
Return the metadata of a resource.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_update.mdx b/docs/content/docs/resource_update.mdx
index 5ffe82f..9492b50 100644
--- a/docs/content/docs/resource_update.mdx
+++ b/docs/content/docs/resource_update.mdx
@@ -3,7 +3,6 @@ title: resource_update
full: true
_openapi:
method: PUT
- route: resource_update
toc: []
structuredData:
headings: []
@@ -30,4 +29,4 @@ To update a resource you must be authorized to update the dataset that the resou
Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `resource_patch` instead.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_clear.mdx b/docs/content/docs/resource_view_clear.mdx
index cbb7526..9fdc24a 100644
--- a/docs/content/docs/resource_view_clear.mdx
+++ b/docs/content/docs/resource_view_clear.mdx
@@ -3,7 +3,6 @@ title: resource_view_clear
full: true
_openapi:
method: DELETE
- route: resource_view_clear
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Delete all resource views, or all of a particular type.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_create.mdx b/docs/content/docs/resource_view_create.mdx
index 9685f06..68f4fd0 100644
--- a/docs/content/docs/resource_view_create.mdx
+++ b/docs/content/docs/resource_view_create.mdx
@@ -3,7 +3,6 @@ title: resource_view_create
full: true
_openapi:
method: POST
- route: resource_view_create
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Creates a new resource view.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_delete.mdx b/docs/content/docs/resource_view_delete.mdx
index 859934d..322b7c8 100644
--- a/docs/content/docs/resource_view_delete.mdx
+++ b/docs/content/docs/resource_view_delete.mdx
@@ -3,7 +3,6 @@ title: resource_view_delete
full: true
_openapi:
method: DELETE
- route: resource_view_delete
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Delete a resource_view.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_list.mdx b/docs/content/docs/resource_view_list.mdx
index 115119d..b0d8039 100644
--- a/docs/content/docs/resource_view_list.mdx
+++ b/docs/content/docs/resource_view_list.mdx
@@ -3,7 +3,6 @@ title: resource_view_list
full: true
_openapi:
method: POST
- route: resource_view_list
toc: []
structuredData:
headings: []
@@ -15,4 +14,4 @@ _openapi:
Return the list of resource views for a particular resource.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_reorder.mdx b/docs/content/docs/resource_view_reorder.mdx
index 8408818..843c1f4 100644
--- a/docs/content/docs/resource_view_reorder.mdx
+++ b/docs/content/docs/resource_view_reorder.mdx
@@ -3,7 +3,6 @@ title: resource_view_reorder
full: true
_openapi:
method: PUT
- route: resource_view_reorder
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Reorder resource views.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_show.mdx b/docs/content/docs/resource_view_show.mdx
index 062b65b..772a0cb 100644
--- a/docs/content/docs/resource_view_show.mdx
+++ b/docs/content/docs/resource_view_show.mdx
@@ -3,7 +3,6 @@ title: resource_view_show
full: true
_openapi:
method: POST
- route: resource_view_show
toc: []
structuredData:
headings: []
@@ -15,4 +14,4 @@ _openapi:
Return the metadata of a resource_view.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/resource_view_update.mdx b/docs/content/docs/resource_view_update.mdx
index e6e0c89..f170d60 100644
--- a/docs/content/docs/resource_view_update.mdx
+++ b/docs/content/docs/resource_view_update.mdx
@@ -3,7 +3,6 @@ title: resource_view_update
full: true
_openapi:
method: PUT
- route: resource_view_update
toc: []
structuredData:
headings: []
@@ -23,4 +22,4 @@ Update a resource view.
To update a resource_view you must be authorized to update the resource that the resource_view belongs to.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/status_show.mdx b/docs/content/docs/status_show.mdx
index 9752546..d553532 100644
--- a/docs/content/docs/status_show.mdx
+++ b/docs/content/docs/status_show.mdx
@@ -3,7 +3,6 @@ title: status_show
full: true
_openapi:
method: GET
- route: status_show
toc: []
structuredData:
headings: []
@@ -15,4 +14,4 @@ _openapi:
This endpoint shows information about the CKAN instance.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/tag_autocomplete.mdx b/docs/content/docs/tag_autocomplete.mdx
index f369edc..ead6085 100644
--- a/docs/content/docs/tag_autocomplete.mdx
+++ b/docs/content/docs/tag_autocomplete.mdx
@@ -3,7 +3,6 @@ title: tag_autocomplete
full: true
_openapi:
method: POST
- route: tag_autocomplete
toc: []
structuredData:
headings: []
@@ -24,4 +23,4 @@ Return a list of tag names that contain a given string.
By default only free tags (tags that don't belong to any vocabulary) are searched. If the `vocabulary_id` argument is given then only tags belonging to that vocabulary will be searched instead.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/tag_create.mdx b/docs/content/docs/tag_create.mdx
index 7693a65..1132ddc 100644
--- a/docs/content/docs/tag_create.mdx
+++ b/docs/content/docs/tag_create.mdx
@@ -3,7 +3,6 @@ title: tag_create
full: true
_openapi:
method: POST
- route: tag_create
toc: []
structuredData:
headings: []
@@ -29,4 +28,4 @@ You must be a sysadmin to create vocabulary tags.
You can only use this function to create tags that belong to a vocabulary, not to create free tags. (To create a new free tag simply add the tag to a package, e.g. using the `package_update()` function.)
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/tag_delete.mdx b/docs/content/docs/tag_delete.mdx
index 5cd2322..ed69e86 100644
--- a/docs/content/docs/tag_delete.mdx
+++ b/docs/content/docs/tag_delete.mdx
@@ -3,7 +3,6 @@ title: tag_delete
full: true
_openapi:
method: DELETE
- route: tag_delete
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Delete a tag.
You must be a sysadmin to delete tags.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/tag_list.mdx b/docs/content/docs/tag_list.mdx
index 2ea8c8d..641fb88 100644
--- a/docs/content/docs/tag_list.mdx
+++ b/docs/content/docs/tag_list.mdx
@@ -3,7 +3,6 @@ title: tag_list
full: true
_openapi:
method: POST
- route: tag_list
toc: []
structuredData:
headings: []
@@ -24,4 +23,4 @@ Return a list of the site's tags.
By default only free tags (tags that don't belong to a vocabulary) are returned. If the `vocabulary_id` argument is given then only tags belonging to that vocabulary will be returned instead.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/tag_search.mdx b/docs/content/docs/tag_search.mdx
index 6768e19..9deb71c 100644
--- a/docs/content/docs/tag_search.mdx
+++ b/docs/content/docs/tag_search.mdx
@@ -3,7 +3,6 @@ title: tag_search
full: true
_openapi:
method: POST
- route: tag_search
toc: []
structuredData:
headings: []
@@ -24,4 +23,4 @@ Return a list of tags whose names contain a given string.
By default only free tags (tags that don't belong to any vocabulary) are searched. If the `vocabulary_id` argument is given then only tags belonging to that vocabulary will be searched instead.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/tag_show.mdx b/docs/content/docs/tag_show.mdx
index 11372c2..bce37a2 100644
--- a/docs/content/docs/tag_show.mdx
+++ b/docs/content/docs/tag_show.mdx
@@ -3,7 +3,6 @@ title: tag_show
full: true
_openapi:
method: POST
- route: tag_show
toc: []
structuredData:
headings: []
@@ -15,4 +14,4 @@ _openapi:
Return the details of a tag and all its datasets.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/task_status_delete.mdx b/docs/content/docs/task_status_delete.mdx
index 57df403..f710dcd 100644
--- a/docs/content/docs/task_status_delete.mdx
+++ b/docs/content/docs/task_status_delete.mdx
@@ -3,7 +3,6 @@ title: task_status_delete
full: true
_openapi:
method: DELETE
- route: task_status_delete
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Delete a task status.
You must be a sysadmin to delete task statuses.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/task_status_show.mdx b/docs/content/docs/task_status_show.mdx
index 3dde3d4..df4e501 100644
--- a/docs/content/docs/task_status_show.mdx
+++ b/docs/content/docs/task_status_show.mdx
@@ -3,7 +3,6 @@ title: task_status_show
full: true
_openapi:
method: POST
- route: task_status_show
toc: []
structuredData:
headings: []
@@ -23,4 +22,4 @@ Return a task status.
Either the `id` parameter or the `entity_id`, `task_type` *and* `key` parameters must be given.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/task_status_update.mdx b/docs/content/docs/task_status_update.mdx
index 902149e..ca9eefc 100644
--- a/docs/content/docs/task_status_update.mdx
+++ b/docs/content/docs/task_status_update.mdx
@@ -3,7 +3,6 @@ title: task_status_update
full: true
_openapi:
method: PUT
- route: task_status_update
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Update a task status.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/task_status_update_many.mdx b/docs/content/docs/task_status_update_many.mdx
index b14f8a5..345f473 100644
--- a/docs/content/docs/task_status_update_many.mdx
+++ b/docs/content/docs/task_status_update_many.mdx
@@ -3,7 +3,6 @@ title: task_status_update_many
full: true
_openapi:
method: PUT
- route: task_status_update_many
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Update many task statuses at once.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/term_translation_show.mdx b/docs/content/docs/term_translation_show.mdx
index ab514bb..5eeefa3 100644
--- a/docs/content/docs/term_translation_show.mdx
+++ b/docs/content/docs/term_translation_show.mdx
@@ -3,7 +3,6 @@ title: term_translation_show
full: true
_openapi:
method: POST
- route: term_translation_show
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the translations for the given term(s) and language(s).
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/term_translation_update.mdx b/docs/content/docs/term_translation_update.mdx
index 4f4c4a1..87a136b 100644
--- a/docs/content/docs/term_translation_update.mdx
+++ b/docs/content/docs/term_translation_update.mdx
@@ -3,7 +3,6 @@ title: term_translation_update
full: true
_openapi:
method: PUT
- route: term_translation_update
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Create or update a term translation.
You must be a sysadmin to create or update term translations.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/term_translation_update_many.mdx b/docs/content/docs/term_translation_update_many.mdx
index 2034d53..e332be6 100644
--- a/docs/content/docs/term_translation_update_many.mdx
+++ b/docs/content/docs/term_translation_update_many.mdx
@@ -3,7 +3,6 @@ title: term_translation_update_many
full: true
_openapi:
method: PUT
- route: term_translation_update_many
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Create or update many term translations at once.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/unfollow_dataset.mdx b/docs/content/docs/unfollow_dataset.mdx
index 439e031..69b3b0c 100644
--- a/docs/content/docs/unfollow_dataset.mdx
+++ b/docs/content/docs/unfollow_dataset.mdx
@@ -3,7 +3,6 @@ title: unfollow_dataset
full: true
_openapi:
method: DELETE
- route: unfollow_dataset
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Stop following a dataset.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/unfollow_group.mdx b/docs/content/docs/unfollow_group.mdx
index 47fbc12..b89b749 100644
--- a/docs/content/docs/unfollow_group.mdx
+++ b/docs/content/docs/unfollow_group.mdx
@@ -3,7 +3,6 @@ title: unfollow_group
full: true
_openapi:
method: DELETE
- route: unfollow_group
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Stop following a group.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/unfollow_user.mdx b/docs/content/docs/unfollow_user.mdx
index 01b5d52..62f51b0 100644
--- a/docs/content/docs/unfollow_user.mdx
+++ b/docs/content/docs/unfollow_user.mdx
@@ -3,7 +3,6 @@ title: unfollow_user
full: true
_openapi:
method: DELETE
- route: unfollow_user
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Stop following a user.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/user_autocomplete.mdx b/docs/content/docs/user_autocomplete.mdx
index c0d4243..00904b6 100644
--- a/docs/content/docs/user_autocomplete.mdx
+++ b/docs/content/docs/user_autocomplete.mdx
@@ -3,7 +3,6 @@ title: user_autocomplete
full: true
_openapi:
method: POST
- route: user_autocomplete
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return a list of user names that contain a string.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/user_create.mdx b/docs/content/docs/user_create.mdx
index fc2cff6..cb4ffc3 100644
--- a/docs/content/docs/user_create.mdx
+++ b/docs/content/docs/user_create.mdx
@@ -3,7 +3,6 @@ title: user_create
full: true
_openapi:
method: POST
- route: user_create
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Create a new user.
You must be authorized to create users.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/user_delete.mdx b/docs/content/docs/user_delete.mdx
index a4eed90..ea1f983 100644
--- a/docs/content/docs/user_delete.mdx
+++ b/docs/content/docs/user_delete.mdx
@@ -3,7 +3,6 @@ title: user_delete
full: true
_openapi:
method: DELETE
- route: user_delete
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Delete a user.
Only sysadmins can delete users.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/user_followee_count.mdx b/docs/content/docs/user_followee_count.mdx
index b8584f0..2e9e545 100644
--- a/docs/content/docs/user_followee_count.mdx
+++ b/docs/content/docs/user_followee_count.mdx
@@ -3,7 +3,6 @@ title: user_followee_count
full: true
_openapi:
method: POST
- route: user_followee_count
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the number of users that are followed by the given user.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/user_follower_count.mdx b/docs/content/docs/user_follower_count.mdx
index b32f33a..69ae52a 100644
--- a/docs/content/docs/user_follower_count.mdx
+++ b/docs/content/docs/user_follower_count.mdx
@@ -3,7 +3,6 @@ title: user_follower_count
full: true
_openapi:
method: POST
- route: user_follower_count
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Returun the number of followers of a user.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/user_follower_list.mdx b/docs/content/docs/user_follower_list.mdx
index 385cf03..c27bcfe 100644
--- a/docs/content/docs/user_follower_list.mdx
+++ b/docs/content/docs/user_follower_list.mdx
@@ -3,7 +3,6 @@ title: user_follower_list
full: true
_openapi:
method: POST
- route: user_follower_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return the list of users that are following the given user.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/user_invite.mdx b/docs/content/docs/user_invite.mdx
index 8e68b62..b8b6010 100644
--- a/docs/content/docs/user_invite.mdx
+++ b/docs/content/docs/user_invite.mdx
@@ -3,7 +3,6 @@ title: user_invite
full: true
_openapi:
method: POST
- route: user_invite
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Invite a new user.
You must be authorized to create group members.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/user_list.mdx b/docs/content/docs/user_list.mdx
index 439c675..18b30c0 100644
--- a/docs/content/docs/user_list.mdx
+++ b/docs/content/docs/user_list.mdx
@@ -3,7 +3,6 @@ title: user_list
full: true
_openapi:
method: POST
- route: user_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return a list of the site's user accounts.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/user_patch.mdx b/docs/content/docs/user_patch.mdx
index 7a3f72d..54f503f 100644
--- a/docs/content/docs/user_patch.mdx
+++ b/docs/content/docs/user_patch.mdx
@@ -3,7 +3,6 @@ title: user_patch
full: true
_openapi:
method: PATCH
- route: user_patch
toc: []
structuredData:
headings: []
@@ -25,4 +24,4 @@ Patch a user.
The difference between the update and patch methods is that the patch will perform an update of the provided parameters, while leaving all other parameters unchanged, whereas the update methods deletes all parameters not explicitly provided in the data_dict.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/user_show.mdx b/docs/content/docs/user_show.mdx
index f76b96f..e095e4b 100644
--- a/docs/content/docs/user_show.mdx
+++ b/docs/content/docs/user_show.mdx
@@ -3,7 +3,6 @@ title: user_show
full: true
_openapi:
method: POST
- route: user_show
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Return a user account.
Either the `id` should be passed or the user should be logged in.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/user_update.mdx b/docs/content/docs/user_update.mdx
index 6844a36..aecaab6 100644
--- a/docs/content/docs/user_update.mdx
+++ b/docs/content/docs/user_update.mdx
@@ -3,7 +3,6 @@ title: user_update
full: true
_openapi:
method: POST
- route: user_update
toc: []
structuredData:
headings: []
@@ -30,4 +29,4 @@ Normal users can only update their own user accounts. Sysadmins can update any u
Update methods may delete parameters not explicitly provided in the data_dict. If you want to edit only a specific attribute use `user_patch` instead.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/vocabulary_create.mdx b/docs/content/docs/vocabulary_create.mdx
index 2f8718e..b863d9a 100644
--- a/docs/content/docs/vocabulary_create.mdx
+++ b/docs/content/docs/vocabulary_create.mdx
@@ -3,7 +3,6 @@ title: vocabulary_create
full: true
_openapi:
method: POST
- route: vocabulary_create
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Create a new tag vocabulary.
You must a sysadmin to create vocabularies.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/vocabulary_delete.mdx b/docs/content/docs/vocabulary_delete.mdx
index 9c7c6cc..d39fa01 100644
--- a/docs/content/docs/vocabulary_delete.mdx
+++ b/docs/content/docs/vocabulary_delete.mdx
@@ -3,7 +3,6 @@ title: vocabulary_delete
full: true
_openapi:
method: DELETE
- route: vocabulary_delete
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Delete a tag vocabulary.
You must be a sysadmin to delete vocabularies.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/vocabulary_list.mdx b/docs/content/docs/vocabulary_list.mdx
index 0fc8b7d..ec1070e 100644
--- a/docs/content/docs/vocabulary_list.mdx
+++ b/docs/content/docs/vocabulary_list.mdx
@@ -3,7 +3,6 @@ title: vocabulary_list
full: true
_openapi:
method: POST
- route: vocabulary_list
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return a list of all the site's tag vocabularies.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/vocabulary_show.mdx b/docs/content/docs/vocabulary_show.mdx
index 3f35de9..d5efa1a 100644
--- a/docs/content/docs/vocabulary_show.mdx
+++ b/docs/content/docs/vocabulary_show.mdx
@@ -3,7 +3,6 @@ title: vocabulary_show
full: true
_openapi:
method: POST
- route: vocabulary_show
toc: []
structuredData:
headings: []
@@ -17,4 +16,4 @@ _openapi:
Return a single tag vocabulary.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/content/docs/vocabulary_update.mdx b/docs/content/docs/vocabulary_update.mdx
index 7991693..8b0ee34 100644
--- a/docs/content/docs/vocabulary_update.mdx
+++ b/docs/content/docs/vocabulary_update.mdx
@@ -3,7 +3,6 @@ title: vocabulary_update
full: true
_openapi:
method: PUT
- route: vocabulary_update
toc: []
structuredData:
headings: []
@@ -21,4 +20,4 @@ Update a tag vocabulary.
You must a sysadmin to update vocabularies.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/lib/get-llm-text.ts b/docs/lib/get-llm-text.ts
new file mode 100644
index 0000000..166eb11
--- /dev/null
+++ b/docs/lib/get-llm-text.ts
@@ -0,0 +1,10 @@
+import type { InferPageType } from "fumadocs-core/source";
+import type { source } from "@/lib/source";
+
+export async function getLLMText(page: InferPageType) {
+ const processed = await page.data.getText("processed");
+
+ return `# ${page.data.title} (${page.url})
+
+${processed}`;
+}
diff --git a/docs/lib/source.ts b/docs/lib/source.ts
index 2a8a382..85c7fda 100644
--- a/docs/lib/source.ts
+++ b/docs/lib/source.ts
@@ -1,13 +1,12 @@
+import { docs } from "fumadocs-mdx:collections/server";
import { type InferPageType, loader } from "fumadocs-core/source";
import { lucideIconsPlugin } from "fumadocs-core/source/lucide-icons";
import { openapiPlugin } from "fumadocs-openapi/server";
-import { docs } from "@/.source";
// See https://fumadocs.dev/docs/headless/source-api for more info
export const source = loader({
baseUrl: "/docs",
source: docs.toFumadocsSource(),
- // @ts-expect-error
plugins: [lucideIconsPlugin(), openapiPlugin()],
});
@@ -21,7 +20,6 @@ export function getPageImage(page: InferPageType) {
}
export async function getLLMText(page: InferPageType) {
- // @ts-expect-error
const processed = await page.data.getText("processed");
return `# ${page.data.title} (${page.url})
diff --git a/docs/mdx-components.tsx b/docs/mdx-components.tsx
index f47f977..b467243 100644
--- a/docs/mdx-components.tsx
+++ b/docs/mdx-components.tsx
@@ -1,13 +1,12 @@
-import defaultMdxComponents from 'fumadocs-ui/mdx';
-import { APIPage } from 'fumadocs-openapi/ui';
-import { openapi } from '@/lib/openapi';
-import type { MDXComponents } from 'mdx/types';
+import defaultComponents from "fumadocs-ui/mdx";
+import type { MDXComponents } from "mdx/types";
+import { APIPage } from "@/components/api-page";
-// use this function to get MDX components, you will need it for rendering MDX
+// make sure you can use it in MDX files
export function getMDXComponents(components?: MDXComponents): MDXComponents {
return {
- ...defaultMdxComponents,
- APIPage: (props) => ,
+ ...defaultComponents,
+ APIPage,
...components,
};
}
diff --git a/docs/next.config.mjs b/docs/next.config.mjs
index 26c57f7..d43da82 100644
--- a/docs/next.config.mjs
+++ b/docs/next.config.mjs
@@ -6,7 +6,15 @@ const withMDX = createMDX();
const config = {
reactStrictMode: true,
devIndicators: false,
- transpilePackages: ["shiki"]
+ transpilePackages: ["shiki"],
+ async rewrites() {
+ return [
+ {
+ source: "/docs/:path*.mdx",
+ destination: "/llms.mdx/:path*"
+ }
+ ]
+ }
};
export default withMDX(config);
diff --git a/docs/package.json b/docs/package.json
index 4190691..b1648b6 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -11,11 +11,11 @@
"format": "biome format --write"
},
"dependencies": {
- "fumadocs-core": "16.0.2",
- "fumadocs-mdx": "^13.0.8",
- "fumadocs-openapi": "^9.7.3",
- "fumadocs-ui": "16.0.2",
- "lucide-react": "^0.546.0",
+ "fumadocs-core": "16.2.2",
+ "fumadocs-mdx": "^14.0.4",
+ "fumadocs-openapi": "^10.1.0",
+ "fumadocs-ui": "16.2.2",
+ "lucide-react": "^0.555.0",
"next": "^16.0.6",
"react": "^19.2.0",
"react-dom": "^19.2.0",
@@ -25,7 +25,7 @@
"@biomejs/biome": "^2.3.8",
"@tailwindcss/postcss": "^4.1.17",
"@types/mdx": "^2.0.13",
- "@types/node": "24.9.1",
+ "@types/node": "24.10.1",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"openapi-types": "^12.1.3",
@@ -33,4 +33,4 @@
"tailwindcss": "^4.1.17",
"typescript": "^5.9.3"
}
-}
\ No newline at end of file
+}
diff --git a/docs/tsconfig.json b/docs/tsconfig.json
index 1b1ede4..e8f5787 100644
--- a/docs/tsconfig.json
+++ b/docs/tsconfig.json
@@ -20,9 +20,7 @@
"jsx": "react-jsx",
"incremental": true,
"paths": {
- "@/.source": [
- ".source"
- ],
+ "fumadocs-mdx:collections/*": [".source/*"],
"@/*": [
"./*"
]