jacquard_api/app_ocho/
plugin.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: app.ocho.plugin.defs
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8pub mod get_launch_asset;
9pub mod get_manifest;
10pub mod put_hosting_url;
11pub mod service;
12
13#[jacquard_derive::lexicon]
14#[derive(
15    serde::Serialize,
16    serde::Deserialize,
17    Debug,
18    Clone,
19    PartialEq,
20    Eq,
21    jacquard_derive::IntoStatic
22)]
23#[serde(rename_all = "camelCase")]
24pub struct AdaptiveIcon<'a> {
25    ///The background color of the adaptive icon.
26    #[serde(skip_serializing_if = "std::option::Option::is_none")]
27    #[serde(borrow)]
28    pub background_color: std::option::Option<jacquard_common::CowStr<'a>>,
29    ///The URL to the foreground image of the adaptive icon.
30    #[serde(skip_serializing_if = "std::option::Option::is_none")]
31    #[serde(borrow)]
32    pub foreground_image: std::option::Option<jacquard_common::CowStr<'a>>,
33    #[serde(skip_serializing_if = "std::option::Option::is_none")]
34    #[serde(borrow)]
35    pub foreground_image_blob: std::option::Option<
36        jacquard_common::types::blob::Blob<'a>,
37    >,
38}
39
40#[jacquard_derive::lexicon]
41#[derive(
42    serde::Serialize,
43    serde::Deserialize,
44    Debug,
45    Clone,
46    PartialEq,
47    Eq,
48    jacquard_derive::IntoStatic
49)]
50#[serde(rename_all = "camelCase")]
51pub struct Android<'a> {
52    ///Configuration for the adaptive icon on Android.
53    #[serde(skip_serializing_if = "std::option::Option::is_none")]
54    #[serde(borrow)]
55    pub adaptive_icon: std::option::Option<crate::app_ocho::plugin::AdaptiveIcon<'a>>,
56    ///Whether edge-to-edge mode is enabled for the app.
57    #[serde(skip_serializing_if = "std::option::Option::is_none")]
58    pub edge_to_edge_enabled: std::option::Option<bool>,
59}
60
61///Android status bar configuration.
62#[jacquard_derive::lexicon]
63#[derive(
64    serde::Serialize,
65    serde::Deserialize,
66    Debug,
67    Clone,
68    PartialEq,
69    Eq,
70    jacquard_derive::IntoStatic
71)]
72#[serde(rename_all = "camelCase")]
73pub struct AndroidStatusBar<'a> {
74    ///The background color of the Android status bar.
75    #[serde(skip_serializing_if = "std::option::Option::is_none")]
76    #[serde(borrow)]
77    pub background_color: std::option::Option<jacquard_common::CowStr<'a>>,
78}
79
80#[jacquard_derive::lexicon]
81#[derive(
82    serde::Serialize,
83    serde::Deserialize,
84    Debug,
85    Clone,
86    PartialEq,
87    Eq,
88    jacquard_derive::IntoStatic
89)]
90#[serde(rename_all = "camelCase")]
91pub struct Asset<'a> {
92    ///The blob of the asset
93    #[serde(borrow)]
94    pub blob: jacquard_common::types::blob::Blob<'a>,
95    ///The hash of the asset
96    #[serde(borrow)]
97    pub hash: jacquard_common::CowStr<'a>,
98    ///The type of the asset
99    #[serde(borrow)]
100    pub r#type: jacquard_common::CowStr<'a>,
101    ///The date and time when this asset was last updated. Used to reset the jetstream cache, among other things.
102    #[serde(skip_serializing_if = "std::option::Option::is_none")]
103    pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>,
104}
105
106#[jacquard_derive::lexicon]
107#[derive(
108    serde::Serialize,
109    serde::Deserialize,
110    Debug,
111    Clone,
112    PartialEq,
113    Eq,
114    jacquard_derive::IntoStatic
115)]
116#[serde(rename_all = "camelCase")]
117pub struct Db<'a> {
118    ///The ID of the database.
119    #[serde(borrow)]
120    pub id: jacquard_common::CowStr<'a>,
121}
122
123#[jacquard_derive::lexicon]
124#[derive(
125    serde::Serialize,
126    serde::Deserialize,
127    Debug,
128    Clone,
129    PartialEq,
130    Eq,
131    jacquard_derive::IntoStatic
132)]
133#[serde(rename_all = "camelCase")]
134pub struct Developer<'a> {
135    ///The tool used for development, e.g., 'expo-cli'.
136    #[serde(borrow)]
137    pub tool: jacquard_common::CowStr<'a>,
138}
139
140#[jacquard_derive::lexicon]
141#[derive(
142    serde::Serialize,
143    serde::Deserialize,
144    Debug,
145    Clone,
146    PartialEq,
147    Eq,
148    jacquard_derive::IntoStatic
149)]
150#[serde(rename_all = "camelCase")]
151pub struct ExpoClient<'a> {
152    ///Android-specific configuration for the app.
153    #[serde(skip_serializing_if = "std::option::Option::is_none")]
154    #[serde(borrow)]
155    pub android: std::option::Option<crate::app_ocho::plugin::Android<'a>>,
156    ///Configuration for the Android status bar.
157    #[serde(skip_serializing_if = "std::option::Option::is_none")]
158    #[serde(borrow)]
159    pub android_status_bar: std::option::Option<
160        crate::app_ocho::plugin::AndroidStatusBar<'a>,
161    >,
162    ///Experimental features enabled for the app.
163    #[serde(skip_serializing_if = "std::option::Option::is_none")]
164    #[serde(borrow)]
165    pub expirements: std::option::Option<jacquard_common::types::value::Data<'a>>,
166    ///Additional configuration for the app.
167    #[serde(skip_serializing_if = "std::option::Option::is_none")]
168    #[serde(borrow)]
169    pub extra: std::option::Option<jacquard_common::types::value::Data<'a>>,
170    ///The URL to the app icon.
171    #[serde(skip_serializing_if = "std::option::Option::is_none")]
172    #[serde(borrow)]
173    pub icon: std::option::Option<jacquard_common::CowStr<'a>>,
174    ///ios-specific configuration for the app.
175    #[serde(skip_serializing_if = "std::option::Option::is_none")]
176    #[serde(borrow)]
177    pub ios: std::option::Option<crate::app_ocho::plugin::Ios<'a>>,
178    ///Localization settings for the app.
179    #[serde(skip_serializing_if = "std::option::Option::is_none")]
180    #[serde(borrow)]
181    pub locales: std::option::Option<jacquard_common::types::value::Data<'a>>,
182    ///The name of the Expo client application.
183    #[serde(borrow)]
184    pub name: jacquard_common::CowStr<'a>,
185    ///Whether the new architecture is enabled for the app.
186    #[serde(skip_serializing_if = "std::option::Option::is_none")]
187    pub new_arch_enabled: std::option::Option<bool>,
188    ///The default orientation of the app.
189    #[serde(skip_serializing_if = "std::option::Option::is_none")]
190    #[serde(borrow)]
191    pub orientation: std::option::Option<jacquard_common::CowStr<'a>>,
192    ///The platforms supported by the app.
193    #[serde(skip_serializing_if = "std::option::Option::is_none")]
194    #[serde(borrow)]
195    pub platforms: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
196    ///A list of plugins used by the app.
197    #[serde(skip_serializing_if = "std::option::Option::is_none")]
198    #[serde(borrow)]
199    pub plugins: std::option::Option<jacquard_common::types::value::Data<'a>>,
200    ///The custom URI scheme for deep linking.
201    #[serde(skip_serializing_if = "std::option::Option::is_none")]
202    #[serde(borrow)]
203    pub scheme: std::option::Option<jacquard_common::CowStr<'a>>,
204    ///The SDK version of the Expo client.
205    #[serde(skip_serializing_if = "std::option::Option::is_none")]
206    #[serde(borrow)]
207    pub sdk_version: std::option::Option<jacquard_common::CowStr<'a>>,
208    ///A URL-friendly identifier for the app.
209    #[serde(borrow)]
210    pub slug: jacquard_common::CowStr<'a>,
211    ///The default user interface style.
212    #[serde(skip_serializing_if = "std::option::Option::is_none")]
213    #[serde(borrow)]
214    pub user_interface_style: std::option::Option<jacquard_common::CowStr<'a>>,
215    ///The version of the app.
216    #[serde(skip_serializing_if = "std::option::Option::is_none")]
217    #[serde(borrow)]
218    pub version: std::option::Option<jacquard_common::CowStr<'a>>,
219    ///Web-specific configuration for the app.
220    #[serde(skip_serializing_if = "std::option::Option::is_none")]
221    #[serde(borrow)]
222    pub web: std::option::Option<crate::app_ocho::plugin::Web<'a>>,
223}
224
225#[jacquard_derive::lexicon]
226#[derive(
227    serde::Serialize,
228    serde::Deserialize,
229    Debug,
230    Clone,
231    PartialEq,
232    Eq,
233    jacquard_derive::IntoStatic
234)]
235#[serde(rename_all = "camelCase")]
236pub struct ExpoGo<'a> {
237    ///Developer-specific configuration for the Expo Go app.
238    #[serde(borrow)]
239    pub developer: crate::app_ocho::plugin::Developer<'a>,
240}
241
242#[jacquard_derive::lexicon]
243#[derive(
244    serde::Serialize,
245    serde::Deserialize,
246    Debug,
247    Clone,
248    PartialEq,
249    Eq,
250    jacquard_derive::IntoStatic
251)]
252#[serde(rename_all = "camelCase")]
253pub struct Ios<'a> {
254    ///Whether the app supports iPad.
255    #[serde(skip_serializing_if = "std::option::Option::is_none")]
256    pub supports_tablet: std::option::Option<bool>,
257}
258
259#[jacquard_derive::lexicon]
260#[derive(
261    serde::Serialize,
262    serde::Deserialize,
263    Debug,
264    Clone,
265    PartialEq,
266    Eq,
267    jacquard_derive::IntoStatic
268)]
269#[serde(rename_all = "camelCase")]
270pub struct LaunchAsset<'a> {
271    ///The MIME type of the asset, e.g., 'image/png'.
272    #[serde(borrow)]
273    pub content_type: jacquard_common::CowStr<'a>,
274    ///The unique key for this asset, used to reference it in the plugin.
275    #[serde(borrow)]
276    pub key: jacquard_common::CowStr<'a>,
277    ///The URL where the asset can be accessed.
278    #[serde(borrow)]
279    pub url: jacquard_common::types::string::Uri<'a>,
280}
281
282#[jacquard_derive::lexicon]
283#[derive(
284    serde::Serialize,
285    serde::Deserialize,
286    Debug,
287    Clone,
288    PartialEq,
289    Eq,
290    jacquard_derive::IntoStatic
291)]
292#[serde(rename_all = "camelCase")]
293pub struct Manifest<'a> {
294    ///The date and time when this plugin manifest was created.
295    pub created_at: jacquard_common::types::string::Datetime,
296    ///Additional metadata for the plugin, including Expo client and Go configurations.
297    #[serde(borrow)]
298    pub extra: crate::app_ocho::plugin::ManifestExtra<'a>,
299    ///The unique identifier for this plugin manifest.
300    #[serde(borrow)]
301    pub id: jacquard_common::CowStr<'a>,
302    ///The launch asset for the plugin (the main javascipt bundle).
303    #[serde(borrow)]
304    pub launch_asset: crate::app_ocho::plugin::LaunchAsset<'a>,
305    #[serde(borrow)]
306    pub metadata: jacquard_common::types::value::Data<'a>,
307    ///The version of the Expo runtime this plugin is compatible with.
308    #[serde(borrow)]
309    pub runtime_version: jacquard_common::CowStr<'a>,
310}
311
312#[jacquard_derive::lexicon]
313#[derive(
314    serde::Serialize,
315    serde::Deserialize,
316    Debug,
317    Clone,
318    PartialEq,
319    Eq,
320    jacquard_derive::IntoStatic
321)]
322#[serde(rename_all = "camelCase")]
323pub struct ManifestExtra<'a> {
324    #[serde(borrow)]
325    pub expo_client: crate::app_ocho::plugin::ExpoClient<'a>,
326    #[serde(borrow)]
327    pub expo_go: crate::app_ocho::plugin::ExpoGo<'a>,
328}
329
330pub type Plugin<'a> = Vec<jacquard_common::types::value::Data<'a>>;
331pub type PluginConfig<'a> = jacquard_common::types::value::Data<'a>;
332///A string identifier for a plugin, used to reference it in the app.
333pub type StringId<'a> = jacquard_common::CowStr<'a>;
334#[jacquard_derive::lexicon]
335#[derive(
336    serde::Serialize,
337    serde::Deserialize,
338    Debug,
339    Clone,
340    PartialEq,
341    Eq,
342    jacquard_derive::IntoStatic
343)]
344#[serde(rename_all = "camelCase")]
345pub struct Web<'a> {
346    ///The bundler used for the web app.
347    #[serde(skip_serializing_if = "std::option::Option::is_none")]
348    #[serde(borrow)]
349    pub bundler: std::option::Option<jacquard_common::CowStr<'a>>,
350    ///The URL to the favicon for the web app.
351    #[serde(skip_serializing_if = "std::option::Option::is_none")]
352    #[serde(borrow)]
353    pub favicon: std::option::Option<jacquard_common::CowStr<'a>>,
354    #[serde(skip_serializing_if = "std::option::Option::is_none")]
355    #[serde(borrow)]
356    pub favicon_blob: std::option::Option<jacquard_common::types::blob::Blob<'a>>,
357    ///The output directory for the web app.
358    #[serde(skip_serializing_if = "std::option::Option::is_none")]
359    #[serde(borrow)]
360    pub output: std::option::Option<jacquard_common::CowStr<'a>>,
361}