| use super::PluginSummary; |
| use crate::JsonSchema; |
| use crate::TS; |
| use codex_utils_absolute_path::AbsolutePathBuf; |
| use serde::Deserialize; |
| use serde::Serialize; |
|
|
| #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)] |
| #[serde(rename_all = "camelCase")] |
| #[ts(export_to = "v2/")] |
| pub struct PluginSearchParams { |
| pub search_term: String, |
| #[ts(optional = nullable)] |
| pub scope: Option<PluginSearchScope>, |
| #[ts(optional = nullable)] |
| pub cwds: Option<Vec<AbsolutePathBuf>>, |
| #[ts(optional = nullable)] |
| pub cursor: Option<String>, |
| #[ts(optional = nullable)] |
| pub limit: Option<u32>, |
| } |
|
|
| #[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, JsonSchema, TS)] |
| #[serde(rename_all = "camelCase")] |
| #[ts(rename_all = "camelCase", export_to = "v2/")] |
| pub enum PluginSearchScope { |
| Global, |
| Workspace, |
| Personal, |
| } |
|
|
| #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)] |
| #[serde(rename_all = "camelCase")] |
| #[ts(export_to = "v2/")] |
| pub struct PluginSearchResult { |
| pub plugin: PluginSummary, |
| pub marketplace_name: String, |
| pub marketplace_path: Option<AbsolutePathBuf>, |
| } |
|
|
| #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)] |
| #[serde(rename_all = "camelCase")] |
| #[ts(export_to = "v2/")] |
| pub struct PluginSearchResponse { |
| pub data: Vec<PluginSearchResult>, |
| pub next_cursor: Option<String>, |
| } |
|
|