@velora-cms/plugin-sdk 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,728 @@
1
+ import type { ComponentType } from "react";
2
+ import type { JSONSchema7 } from "json-schema";
3
+ import { z } from "zod";
4
+ import type { CMSPlugin, HookHandler } from "./manifest.js";
5
+ export declare const DataTypePluginSchema: z.ZodObject<{
6
+ id: z.ZodString;
7
+ name: z.ZodString;
8
+ icon: z.ZodString;
9
+ version: z.ZodString;
10
+ type: z.ZodLiteral<"datatype">;
11
+ schema: z.ZodCustom<JSONSchema7, JSONSchema7>;
12
+ settingsSchema: z.ZodCustom<JSONSchema7, JSONSchema7>;
13
+ defaultSettings: z.ZodRecord<z.ZodString, z.ZodUnknown>;
14
+ views: z.ZodObject<{
15
+ input: z.ZodCustom<ComponentType, ComponentType>;
16
+ readOnly: z.ZodCustom<ComponentType, ComponentType>;
17
+ settings: z.ZodCustom<ComponentType, ComponentType>;
18
+ preview: z.ZodOptional<z.ZodCustom<ComponentType, ComponentType>>;
19
+ }, z.core.$strict>;
20
+ serialize: z.ZodCustom<(value: unknown, settings: Record<string, unknown>) => unknown, (value: unknown, settings: Record<string, unknown>) => unknown>;
21
+ deserialize: z.ZodCustom<(raw: unknown, settings: Record<string, unknown>) => unknown, (raw: unknown, settings: Record<string, unknown>) => unknown>;
22
+ }, z.core.$strict>;
23
+ export declare const CMSPluginSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
24
+ type: z.ZodLiteral<"datatype">;
25
+ contributions: z.ZodObject<{
26
+ dataTypes: z.ZodOptional<z.ZodArray<z.ZodObject<{
27
+ id: z.ZodString;
28
+ name: z.ZodString;
29
+ icon: z.ZodString;
30
+ version: z.ZodString;
31
+ type: z.ZodLiteral<"datatype">;
32
+ schema: z.ZodCustom<JSONSchema7, JSONSchema7>;
33
+ settingsSchema: z.ZodCustom<JSONSchema7, JSONSchema7>;
34
+ defaultSettings: z.ZodRecord<z.ZodString, z.ZodUnknown>;
35
+ views: z.ZodObject<{
36
+ input: z.ZodCustom<ComponentType, ComponentType>;
37
+ readOnly: z.ZodCustom<ComponentType, ComponentType>;
38
+ settings: z.ZodCustom<ComponentType, ComponentType>;
39
+ preview: z.ZodOptional<z.ZodCustom<ComponentType, ComponentType>>;
40
+ }, z.core.$strict>;
41
+ serialize: z.ZodCustom<(value: unknown, settings: Record<string, unknown>) => unknown, (value: unknown, settings: Record<string, unknown>) => unknown>;
42
+ deserialize: z.ZodCustom<(raw: unknown, settings: Record<string, unknown>) => unknown, (raw: unknown, settings: Record<string, unknown>) => unknown>;
43
+ }, z.core.$strict>>>;
44
+ mediaProcessors: z.ZodOptional<z.ZodArray<z.ZodObject<{
45
+ id: z.ZodString;
46
+ name: z.ZodString;
47
+ process: z.ZodCustom<(file: unknown) => unknown | Promise<unknown>, (file: unknown) => unknown | Promise<unknown>>;
48
+ }, z.core.$strict>>>;
49
+ settingsPages: z.ZodOptional<z.ZodArray<z.ZodObject<{
50
+ id: z.ZodString;
51
+ name: z.ZodString;
52
+ view: z.ZodCustom<ComponentType, ComponentType>;
53
+ }, z.core.$strict>>>;
54
+ }, z.core.$strict>;
55
+ id: z.ZodString;
56
+ name: z.ZodString;
57
+ version: z.ZodString;
58
+ description: z.ZodString;
59
+ author: z.ZodString;
60
+ license: z.ZodString;
61
+ price: z.ZodOptional<z.ZodNumber>;
62
+ signature: z.ZodOptional<z.ZodString>;
63
+ cmsVersion: z.ZodString;
64
+ pluginDependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
65
+ databaseCompatibility: z.ZodObject<{
66
+ storageType: z.ZodEnum<{
67
+ simple: "simple";
68
+ structured: "structured";
69
+ }>;
70
+ supported: z.ZodArray<z.ZodEnum<{
71
+ postgresql: "postgresql";
72
+ mysql: "mysql";
73
+ sqlite: "sqlite";
74
+ mssql: "mssql";
75
+ mongodb: "mongodb";
76
+ }>>;
77
+ unsupportedReason: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
78
+ postgresql: "postgresql";
79
+ mysql: "mysql";
80
+ sqlite: "sqlite";
81
+ mssql: "mssql";
82
+ mongodb: "mongodb";
83
+ }> & z.core.$partial, z.ZodString>>;
84
+ }, z.core.$strict>;
85
+ permissions: z.ZodObject<{
86
+ needsStructuredData: z.ZodBoolean;
87
+ needsExternalNetwork: z.ZodBoolean;
88
+ needsFileSystemAccess: z.ZodBoolean;
89
+ }, z.core.$strict>;
90
+ migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
91
+ id: z.ZodString;
92
+ name: z.ZodString;
93
+ up: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
94
+ down: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
95
+ }, z.core.$strict>>>;
96
+ onInstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
97
+ onUninstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
98
+ onActivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
99
+ onDeactivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
100
+ onUpdate: z.ZodOptional<z.ZodCustom<(previousVersion: string) => void | Promise<void>, (previousVersion: string) => void | Promise<void>>>;
101
+ migrationHooks: z.ZodOptional<z.ZodObject<{
102
+ beforeMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
103
+ transformRow: z.ZodOptional<z.ZodCustom<(table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>, (table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>>>;
104
+ afterMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
105
+ validateMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>>>;
106
+ }, z.core.$strict>>;
107
+ }, z.core.$strict>, z.ZodObject<{
108
+ type: z.ZodLiteral<"section">;
109
+ contributions: z.ZodObject<{
110
+ dataTypes: z.ZodOptional<z.ZodArray<z.ZodObject<{
111
+ id: z.ZodString;
112
+ name: z.ZodString;
113
+ icon: z.ZodString;
114
+ version: z.ZodString;
115
+ type: z.ZodLiteral<"datatype">;
116
+ schema: z.ZodCustom<JSONSchema7, JSONSchema7>;
117
+ settingsSchema: z.ZodCustom<JSONSchema7, JSONSchema7>;
118
+ defaultSettings: z.ZodRecord<z.ZodString, z.ZodUnknown>;
119
+ views: z.ZodObject<{
120
+ input: z.ZodCustom<ComponentType, ComponentType>;
121
+ readOnly: z.ZodCustom<ComponentType, ComponentType>;
122
+ settings: z.ZodCustom<ComponentType, ComponentType>;
123
+ preview: z.ZodOptional<z.ZodCustom<ComponentType, ComponentType>>;
124
+ }, z.core.$strict>;
125
+ serialize: z.ZodCustom<(value: unknown, settings: Record<string, unknown>) => unknown, (value: unknown, settings: Record<string, unknown>) => unknown>;
126
+ deserialize: z.ZodCustom<(raw: unknown, settings: Record<string, unknown>) => unknown, (raw: unknown, settings: Record<string, unknown>) => unknown>;
127
+ }, z.core.$strict>>>;
128
+ adminSections: z.ZodOptional<z.ZodArray<z.ZodObject<{
129
+ id: z.ZodString;
130
+ name: z.ZodString;
131
+ icon: z.ZodString;
132
+ view: z.ZodCustom<ComponentType, ComponentType>;
133
+ adminOnly: z.ZodOptional<z.ZodBoolean>;
134
+ }, z.core.$strict>>>;
135
+ dashboardWidgets: z.ZodOptional<z.ZodArray<z.ZodObject<{
136
+ id: z.ZodString;
137
+ name: z.ZodString;
138
+ view: z.ZodCustom<ComponentType, ComponentType>;
139
+ }, z.core.$strict>>>;
140
+ apiRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
141
+ method: z.ZodEnum<{
142
+ GET: "GET";
143
+ POST: "POST";
144
+ PUT: "PUT";
145
+ PATCH: "PATCH";
146
+ DELETE: "DELETE";
147
+ }>;
148
+ path: z.ZodString;
149
+ access: z.ZodOptional<z.ZodEnum<{
150
+ admin: "admin";
151
+ apiKey: "apiKey";
152
+ public: "public";
153
+ }>>;
154
+ schema: z.ZodOptional<z.ZodObject<{
155
+ body: z.ZodOptional<z.ZodCustom<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>>;
156
+ querystring: z.ZodOptional<z.ZodCustom<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>>;
157
+ params: z.ZodOptional<z.ZodCustom<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>>;
158
+ }, z.core.$strict>>;
159
+ handler: z.ZodCustom<(request: unknown, reply: unknown, context: import("./structured-storage-types.js").PluginApiRouteContext) => unknown, (request: unknown, reply: unknown, context: import("./structured-storage-types.js").PluginApiRouteContext) => unknown>;
160
+ }, z.core.$strict>>>;
161
+ hooks: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
162
+ "content:beforeSave": "content:beforeSave";
163
+ "content:afterSave": "content:afterSave";
164
+ "content:beforePublish": "content:beforePublish";
165
+ "content:afterPublish": "content:afterPublish";
166
+ "content:afterTrash": "content:afterTrash";
167
+ "content:afterRestore": "content:afterRestore";
168
+ "content:beforeDelete": "content:beforeDelete";
169
+ "media:afterUpload": "media:afterUpload";
170
+ "user:afterLogin": "user:afterLogin";
171
+ "api:beforeResponse": "api:beforeResponse";
172
+ }> & z.core.$partial, z.ZodCustom<HookHandler, HookHandler>>>;
173
+ scheduledTasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
174
+ id: z.ZodString;
175
+ name: z.ZodString;
176
+ cron: z.ZodString;
177
+ run: z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>;
178
+ }, z.core.$strict>>>;
179
+ settingsPages: z.ZodOptional<z.ZodArray<z.ZodObject<{
180
+ id: z.ZodString;
181
+ name: z.ZodString;
182
+ view: z.ZodCustom<ComponentType, ComponentType>;
183
+ }, z.core.$strict>>>;
184
+ documentTypes: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
185
+ name: z.ZodString;
186
+ icon: z.ZodString;
187
+ kind: z.ZodLiteral<"page">;
188
+ fields: z.ZodArray<z.ZodObject<{
189
+ id: z.ZodString;
190
+ name: z.ZodString;
191
+ datatypeId: z.ZodString;
192
+ validation: z.ZodOptional<z.ZodObject<{
193
+ required: z.ZodOptional<z.ZodBoolean>;
194
+ minLength: z.ZodOptional<z.ZodNumber>;
195
+ maxLength: z.ZodOptional<z.ZodNumber>;
196
+ min: z.ZodOptional<z.ZodNumber>;
197
+ max: z.ZodOptional<z.ZodNumber>;
198
+ pattern: z.ZodOptional<z.ZodString>;
199
+ }, z.core.$strict>>;
200
+ tabId: z.ZodOptional<z.ZodString>;
201
+ }, z.core.$strict>>;
202
+ treeRules: z.ZodObject<{
203
+ allowedAtRoot: z.ZodBoolean;
204
+ allowedParentTypes: z.ZodArray<z.ZodString>;
205
+ allowedChildTypes: z.ZodArray<z.ZodString>;
206
+ }, z.core.$strip>;
207
+ tabs: z.ZodDefault<z.ZodArray<z.ZodObject<{
208
+ id: z.ZodString;
209
+ name: z.ZodString;
210
+ }, z.core.$strict>>>;
211
+ }, z.core.$strict>, z.ZodObject<{
212
+ name: z.ZodString;
213
+ icon: z.ZodString;
214
+ kind: z.ZodLiteral<"element">;
215
+ fields: z.ZodArray<z.ZodObject<{
216
+ id: z.ZodString;
217
+ name: z.ZodString;
218
+ datatypeId: z.ZodString;
219
+ validation: z.ZodOptional<z.ZodObject<{
220
+ required: z.ZodOptional<z.ZodBoolean>;
221
+ minLength: z.ZodOptional<z.ZodNumber>;
222
+ maxLength: z.ZodOptional<z.ZodNumber>;
223
+ min: z.ZodOptional<z.ZodNumber>;
224
+ max: z.ZodOptional<z.ZodNumber>;
225
+ pattern: z.ZodOptional<z.ZodString>;
226
+ }, z.core.$strict>>;
227
+ tabId: z.ZodOptional<z.ZodString>;
228
+ }, z.core.$strict>>;
229
+ tabs: z.ZodDefault<z.ZodArray<z.ZodObject<{
230
+ id: z.ZodString;
231
+ name: z.ZodString;
232
+ }, z.core.$strict>>>;
233
+ }, z.core.$strict>], "kind">>>;
234
+ bundledTemplate: z.ZodOptional<z.ZodObject<{
235
+ name: z.ZodString;
236
+ description: z.ZodOptional<z.ZodString>;
237
+ repository: z.ZodOptional<z.ZodString>;
238
+ }, z.core.$strict>>;
239
+ }, z.core.$strict>;
240
+ id: z.ZodString;
241
+ name: z.ZodString;
242
+ version: z.ZodString;
243
+ description: z.ZodString;
244
+ author: z.ZodString;
245
+ license: z.ZodString;
246
+ price: z.ZodOptional<z.ZodNumber>;
247
+ signature: z.ZodOptional<z.ZodString>;
248
+ cmsVersion: z.ZodString;
249
+ pluginDependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
250
+ databaseCompatibility: z.ZodObject<{
251
+ storageType: z.ZodEnum<{
252
+ simple: "simple";
253
+ structured: "structured";
254
+ }>;
255
+ supported: z.ZodArray<z.ZodEnum<{
256
+ postgresql: "postgresql";
257
+ mysql: "mysql";
258
+ sqlite: "sqlite";
259
+ mssql: "mssql";
260
+ mongodb: "mongodb";
261
+ }>>;
262
+ unsupportedReason: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
263
+ postgresql: "postgresql";
264
+ mysql: "mysql";
265
+ sqlite: "sqlite";
266
+ mssql: "mssql";
267
+ mongodb: "mongodb";
268
+ }> & z.core.$partial, z.ZodString>>;
269
+ }, z.core.$strict>;
270
+ permissions: z.ZodObject<{
271
+ needsStructuredData: z.ZodBoolean;
272
+ needsExternalNetwork: z.ZodBoolean;
273
+ needsFileSystemAccess: z.ZodBoolean;
274
+ }, z.core.$strict>;
275
+ migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
276
+ id: z.ZodString;
277
+ name: z.ZodString;
278
+ up: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
279
+ down: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
280
+ }, z.core.$strict>>>;
281
+ onInstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
282
+ onUninstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
283
+ onActivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
284
+ onDeactivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
285
+ onUpdate: z.ZodOptional<z.ZodCustom<(previousVersion: string) => void | Promise<void>, (previousVersion: string) => void | Promise<void>>>;
286
+ migrationHooks: z.ZodOptional<z.ZodObject<{
287
+ beforeMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
288
+ transformRow: z.ZodOptional<z.ZodCustom<(table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>, (table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>>>;
289
+ afterMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
290
+ validateMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>>>;
291
+ }, z.core.$strict>>;
292
+ }, z.core.$strict>, z.ZodObject<{
293
+ type: z.ZodLiteral<"template">;
294
+ contributions: z.ZodObject<{
295
+ documentTypes: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
296
+ name: z.ZodString;
297
+ icon: z.ZodString;
298
+ kind: z.ZodLiteral<"page">;
299
+ fields: z.ZodArray<z.ZodObject<{
300
+ id: z.ZodString;
301
+ name: z.ZodString;
302
+ datatypeId: z.ZodString;
303
+ validation: z.ZodOptional<z.ZodObject<{
304
+ required: z.ZodOptional<z.ZodBoolean>;
305
+ minLength: z.ZodOptional<z.ZodNumber>;
306
+ maxLength: z.ZodOptional<z.ZodNumber>;
307
+ min: z.ZodOptional<z.ZodNumber>;
308
+ max: z.ZodOptional<z.ZodNumber>;
309
+ pattern: z.ZodOptional<z.ZodString>;
310
+ }, z.core.$strict>>;
311
+ tabId: z.ZodOptional<z.ZodString>;
312
+ }, z.core.$strict>>;
313
+ treeRules: z.ZodObject<{
314
+ allowedAtRoot: z.ZodBoolean;
315
+ allowedParentTypes: z.ZodArray<z.ZodString>;
316
+ allowedChildTypes: z.ZodArray<z.ZodString>;
317
+ }, z.core.$strip>;
318
+ tabs: z.ZodDefault<z.ZodArray<z.ZodObject<{
319
+ id: z.ZodString;
320
+ name: z.ZodString;
321
+ }, z.core.$strict>>>;
322
+ }, z.core.$strict>, z.ZodObject<{
323
+ name: z.ZodString;
324
+ icon: z.ZodString;
325
+ kind: z.ZodLiteral<"element">;
326
+ fields: z.ZodArray<z.ZodObject<{
327
+ id: z.ZodString;
328
+ name: z.ZodString;
329
+ datatypeId: z.ZodString;
330
+ validation: z.ZodOptional<z.ZodObject<{
331
+ required: z.ZodOptional<z.ZodBoolean>;
332
+ minLength: z.ZodOptional<z.ZodNumber>;
333
+ maxLength: z.ZodOptional<z.ZodNumber>;
334
+ min: z.ZodOptional<z.ZodNumber>;
335
+ max: z.ZodOptional<z.ZodNumber>;
336
+ pattern: z.ZodOptional<z.ZodString>;
337
+ }, z.core.$strict>>;
338
+ tabId: z.ZodOptional<z.ZodString>;
339
+ }, z.core.$strict>>;
340
+ tabs: z.ZodDefault<z.ZodArray<z.ZodObject<{
341
+ id: z.ZodString;
342
+ name: z.ZodString;
343
+ }, z.core.$strict>>>;
344
+ }, z.core.$strict>], "kind">>>;
345
+ }, z.core.$strict>;
346
+ id: z.ZodString;
347
+ name: z.ZodString;
348
+ version: z.ZodString;
349
+ description: z.ZodString;
350
+ author: z.ZodString;
351
+ license: z.ZodString;
352
+ price: z.ZodOptional<z.ZodNumber>;
353
+ signature: z.ZodOptional<z.ZodString>;
354
+ cmsVersion: z.ZodString;
355
+ pluginDependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
356
+ databaseCompatibility: z.ZodObject<{
357
+ storageType: z.ZodEnum<{
358
+ simple: "simple";
359
+ structured: "structured";
360
+ }>;
361
+ supported: z.ZodArray<z.ZodEnum<{
362
+ postgresql: "postgresql";
363
+ mysql: "mysql";
364
+ sqlite: "sqlite";
365
+ mssql: "mssql";
366
+ mongodb: "mongodb";
367
+ }>>;
368
+ unsupportedReason: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
369
+ postgresql: "postgresql";
370
+ mysql: "mysql";
371
+ sqlite: "sqlite";
372
+ mssql: "mssql";
373
+ mongodb: "mongodb";
374
+ }> & z.core.$partial, z.ZodString>>;
375
+ }, z.core.$strict>;
376
+ permissions: z.ZodObject<{
377
+ needsStructuredData: z.ZodBoolean;
378
+ needsExternalNetwork: z.ZodBoolean;
379
+ needsFileSystemAccess: z.ZodBoolean;
380
+ }, z.core.$strict>;
381
+ migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
382
+ id: z.ZodString;
383
+ name: z.ZodString;
384
+ up: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
385
+ down: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
386
+ }, z.core.$strict>>>;
387
+ onInstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
388
+ onUninstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
389
+ onActivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
390
+ onDeactivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
391
+ onUpdate: z.ZodOptional<z.ZodCustom<(previousVersion: string) => void | Promise<void>, (previousVersion: string) => void | Promise<void>>>;
392
+ migrationHooks: z.ZodOptional<z.ZodObject<{
393
+ beforeMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
394
+ transformRow: z.ZodOptional<z.ZodCustom<(table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>, (table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>>>;
395
+ afterMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
396
+ validateMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>>>;
397
+ }, z.core.$strict>>;
398
+ }, z.core.$strict>, z.ZodObject<{
399
+ type: z.ZodLiteral<"theme">;
400
+ contributions: z.ZodObject<{
401
+ themeTokens: z.ZodOptional<z.ZodObject<{
402
+ color: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>;
403
+ radius: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
404
+ }, z.core.$strict>>;
405
+ }, z.core.$strict>;
406
+ id: z.ZodString;
407
+ name: z.ZodString;
408
+ version: z.ZodString;
409
+ description: z.ZodString;
410
+ author: z.ZodString;
411
+ license: z.ZodString;
412
+ price: z.ZodOptional<z.ZodNumber>;
413
+ signature: z.ZodOptional<z.ZodString>;
414
+ cmsVersion: z.ZodString;
415
+ pluginDependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
416
+ databaseCompatibility: z.ZodObject<{
417
+ storageType: z.ZodEnum<{
418
+ simple: "simple";
419
+ structured: "structured";
420
+ }>;
421
+ supported: z.ZodArray<z.ZodEnum<{
422
+ postgresql: "postgresql";
423
+ mysql: "mysql";
424
+ sqlite: "sqlite";
425
+ mssql: "mssql";
426
+ mongodb: "mongodb";
427
+ }>>;
428
+ unsupportedReason: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
429
+ postgresql: "postgresql";
430
+ mysql: "mysql";
431
+ sqlite: "sqlite";
432
+ mssql: "mssql";
433
+ mongodb: "mongodb";
434
+ }> & z.core.$partial, z.ZodString>>;
435
+ }, z.core.$strict>;
436
+ permissions: z.ZodObject<{
437
+ needsStructuredData: z.ZodBoolean;
438
+ needsExternalNetwork: z.ZodBoolean;
439
+ needsFileSystemAccess: z.ZodBoolean;
440
+ }, z.core.$strict>;
441
+ migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
442
+ id: z.ZodString;
443
+ name: z.ZodString;
444
+ up: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
445
+ down: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
446
+ }, z.core.$strict>>>;
447
+ onInstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
448
+ onUninstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
449
+ onActivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
450
+ onDeactivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
451
+ onUpdate: z.ZodOptional<z.ZodCustom<(previousVersion: string) => void | Promise<void>, (previousVersion: string) => void | Promise<void>>>;
452
+ migrationHooks: z.ZodOptional<z.ZodObject<{
453
+ beforeMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
454
+ transformRow: z.ZodOptional<z.ZodCustom<(table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>, (table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>>>;
455
+ afterMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
456
+ validateMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>>>;
457
+ }, z.core.$strict>>;
458
+ }, z.core.$strict>, z.ZodObject<{
459
+ type: z.ZodLiteral<"integration">;
460
+ contributions: z.ZodObject<{
461
+ hooks: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
462
+ "content:beforeSave": "content:beforeSave";
463
+ "content:afterSave": "content:afterSave";
464
+ "content:beforePublish": "content:beforePublish";
465
+ "content:afterPublish": "content:afterPublish";
466
+ "content:afterTrash": "content:afterTrash";
467
+ "content:afterRestore": "content:afterRestore";
468
+ "content:beforeDelete": "content:beforeDelete";
469
+ "media:afterUpload": "media:afterUpload";
470
+ "user:afterLogin": "user:afterLogin";
471
+ "api:beforeResponse": "api:beforeResponse";
472
+ }> & z.core.$partial, z.ZodCustom<HookHandler, HookHandler>>>;
473
+ settingsPages: z.ZodOptional<z.ZodArray<z.ZodObject<{
474
+ id: z.ZodString;
475
+ name: z.ZodString;
476
+ view: z.ZodCustom<ComponentType, ComponentType>;
477
+ }, z.core.$strict>>>;
478
+ exposedServices: z.ZodOptional<z.ZodArray<z.ZodObject<{
479
+ id: z.ZodString;
480
+ name: z.ZodString;
481
+ service: z.ZodUnknown;
482
+ }, z.core.$strict>>>;
483
+ serializers: z.ZodOptional<z.ZodObject<{
484
+ extendContentResponse: z.ZodOptional<z.ZodCustom<(context: import("./manifest.js").SerializerContext) => Record<string, unknown> | Promise<Record<string, unknown>>, (context: import("./manifest.js").SerializerContext) => Record<string, unknown> | Promise<Record<string, unknown>>>>;
485
+ customFormats: z.ZodOptional<z.ZodArray<z.ZodObject<{
486
+ name: z.ZodString;
487
+ build: z.ZodCustom<(context: import("./manifest.js").SerializerContext) => unknown | Promise<unknown>, (context: import("./manifest.js").SerializerContext) => unknown | Promise<unknown>>;
488
+ }, z.core.$strict>>>;
489
+ }, z.core.$strict>>;
490
+ }, z.core.$strict>;
491
+ id: z.ZodString;
492
+ name: z.ZodString;
493
+ version: z.ZodString;
494
+ description: z.ZodString;
495
+ author: z.ZodString;
496
+ license: z.ZodString;
497
+ price: z.ZodOptional<z.ZodNumber>;
498
+ signature: z.ZodOptional<z.ZodString>;
499
+ cmsVersion: z.ZodString;
500
+ pluginDependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
501
+ databaseCompatibility: z.ZodObject<{
502
+ storageType: z.ZodEnum<{
503
+ simple: "simple";
504
+ structured: "structured";
505
+ }>;
506
+ supported: z.ZodArray<z.ZodEnum<{
507
+ postgresql: "postgresql";
508
+ mysql: "mysql";
509
+ sqlite: "sqlite";
510
+ mssql: "mssql";
511
+ mongodb: "mongodb";
512
+ }>>;
513
+ unsupportedReason: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
514
+ postgresql: "postgresql";
515
+ mysql: "mysql";
516
+ sqlite: "sqlite";
517
+ mssql: "mssql";
518
+ mongodb: "mongodb";
519
+ }> & z.core.$partial, z.ZodString>>;
520
+ }, z.core.$strict>;
521
+ permissions: z.ZodObject<{
522
+ needsStructuredData: z.ZodBoolean;
523
+ needsExternalNetwork: z.ZodBoolean;
524
+ needsFileSystemAccess: z.ZodBoolean;
525
+ }, z.core.$strict>;
526
+ migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
527
+ id: z.ZodString;
528
+ name: z.ZodString;
529
+ up: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
530
+ down: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
531
+ }, z.core.$strict>>>;
532
+ onInstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
533
+ onUninstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
534
+ onActivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
535
+ onDeactivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
536
+ onUpdate: z.ZodOptional<z.ZodCustom<(previousVersion: string) => void | Promise<void>, (previousVersion: string) => void | Promise<void>>>;
537
+ migrationHooks: z.ZodOptional<z.ZodObject<{
538
+ beforeMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
539
+ transformRow: z.ZodOptional<z.ZodCustom<(table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>, (table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>>>;
540
+ afterMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
541
+ validateMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>>>;
542
+ }, z.core.$strict>>;
543
+ }, z.core.$strict>, z.ZodObject<{
544
+ type: z.ZodLiteral<"utility">;
545
+ contributions: z.ZodObject<{
546
+ dashboardWidgets: z.ZodOptional<z.ZodArray<z.ZodObject<{
547
+ id: z.ZodString;
548
+ name: z.ZodString;
549
+ view: z.ZodCustom<ComponentType, ComponentType>;
550
+ }, z.core.$strict>>>;
551
+ hooks: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
552
+ "content:beforeSave": "content:beforeSave";
553
+ "content:afterSave": "content:afterSave";
554
+ "content:beforePublish": "content:beforePublish";
555
+ "content:afterPublish": "content:afterPublish";
556
+ "content:afterTrash": "content:afterTrash";
557
+ "content:afterRestore": "content:afterRestore";
558
+ "content:beforeDelete": "content:beforeDelete";
559
+ "media:afterUpload": "media:afterUpload";
560
+ "user:afterLogin": "user:afterLogin";
561
+ "api:beforeResponse": "api:beforeResponse";
562
+ }> & z.core.$partial, z.ZodCustom<HookHandler, HookHandler>>>;
563
+ scheduledTasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
564
+ id: z.ZodString;
565
+ name: z.ZodString;
566
+ cron: z.ZodString;
567
+ run: z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>;
568
+ }, z.core.$strict>>>;
569
+ mediaProcessors: z.ZodOptional<z.ZodArray<z.ZodObject<{
570
+ id: z.ZodString;
571
+ name: z.ZodString;
572
+ process: z.ZodCustom<(file: unknown) => unknown | Promise<unknown>, (file: unknown) => unknown | Promise<unknown>>;
573
+ }, z.core.$strict>>>;
574
+ settingsPages: z.ZodOptional<z.ZodArray<z.ZodObject<{
575
+ id: z.ZodString;
576
+ name: z.ZodString;
577
+ view: z.ZodCustom<ComponentType, ComponentType>;
578
+ }, z.core.$strict>>>;
579
+ contentTreeActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
580
+ id: z.ZodString;
581
+ label: z.ZodString;
582
+ onSelect: z.ZodCustom<(nodeId: string) => void | Promise<void>, (nodeId: string) => void | Promise<void>>;
583
+ }, z.core.$strict>>>;
584
+ editorToolbar: z.ZodOptional<z.ZodArray<z.ZodObject<{
585
+ id: z.ZodString;
586
+ label: z.ZodString;
587
+ icon: z.ZodString;
588
+ onClick: z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>;
589
+ }, z.core.$strict>>>;
590
+ serializers: z.ZodOptional<z.ZodObject<{
591
+ extendContentResponse: z.ZodOptional<z.ZodCustom<(context: import("./manifest.js").SerializerContext) => Record<string, unknown> | Promise<Record<string, unknown>>, (context: import("./manifest.js").SerializerContext) => Record<string, unknown> | Promise<Record<string, unknown>>>>;
592
+ customFormats: z.ZodOptional<z.ZodArray<z.ZodObject<{
593
+ name: z.ZodString;
594
+ build: z.ZodCustom<(context: import("./manifest.js").SerializerContext) => unknown | Promise<unknown>, (context: import("./manifest.js").SerializerContext) => unknown | Promise<unknown>>;
595
+ }, z.core.$strict>>>;
596
+ }, z.core.$strict>>;
597
+ }, z.core.$strict>;
598
+ id: z.ZodString;
599
+ name: z.ZodString;
600
+ version: z.ZodString;
601
+ description: z.ZodString;
602
+ author: z.ZodString;
603
+ license: z.ZodString;
604
+ price: z.ZodOptional<z.ZodNumber>;
605
+ signature: z.ZodOptional<z.ZodString>;
606
+ cmsVersion: z.ZodString;
607
+ pluginDependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
608
+ databaseCompatibility: z.ZodObject<{
609
+ storageType: z.ZodEnum<{
610
+ simple: "simple";
611
+ structured: "structured";
612
+ }>;
613
+ supported: z.ZodArray<z.ZodEnum<{
614
+ postgresql: "postgresql";
615
+ mysql: "mysql";
616
+ sqlite: "sqlite";
617
+ mssql: "mssql";
618
+ mongodb: "mongodb";
619
+ }>>;
620
+ unsupportedReason: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
621
+ postgresql: "postgresql";
622
+ mysql: "mysql";
623
+ sqlite: "sqlite";
624
+ mssql: "mssql";
625
+ mongodb: "mongodb";
626
+ }> & z.core.$partial, z.ZodString>>;
627
+ }, z.core.$strict>;
628
+ permissions: z.ZodObject<{
629
+ needsStructuredData: z.ZodBoolean;
630
+ needsExternalNetwork: z.ZodBoolean;
631
+ needsFileSystemAccess: z.ZodBoolean;
632
+ }, z.core.$strict>;
633
+ migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
634
+ id: z.ZodString;
635
+ name: z.ZodString;
636
+ up: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
637
+ down: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
638
+ }, z.core.$strict>>>;
639
+ onInstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
640
+ onUninstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
641
+ onActivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
642
+ onDeactivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
643
+ onUpdate: z.ZodOptional<z.ZodCustom<(previousVersion: string) => void | Promise<void>, (previousVersion: string) => void | Promise<void>>>;
644
+ migrationHooks: z.ZodOptional<z.ZodObject<{
645
+ beforeMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
646
+ transformRow: z.ZodOptional<z.ZodCustom<(table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>, (table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>>>;
647
+ afterMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
648
+ validateMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>>>;
649
+ }, z.core.$strict>>;
650
+ }, z.core.$strict>, z.ZodObject<{
651
+ type: z.ZodLiteral<"bundle">;
652
+ contributions: z.ZodObject<{
653
+ bundledPlugins: z.ZodOptional<z.ZodArray<z.ZodString>>;
654
+ bundledTemplate: z.ZodOptional<z.ZodObject<{
655
+ name: z.ZodString;
656
+ description: z.ZodOptional<z.ZodString>;
657
+ repository: z.ZodOptional<z.ZodString>;
658
+ }, z.core.$strict>>;
659
+ }, z.core.$strict>;
660
+ id: z.ZodString;
661
+ name: z.ZodString;
662
+ version: z.ZodString;
663
+ description: z.ZodString;
664
+ author: z.ZodString;
665
+ license: z.ZodString;
666
+ price: z.ZodOptional<z.ZodNumber>;
667
+ signature: z.ZodOptional<z.ZodString>;
668
+ cmsVersion: z.ZodString;
669
+ pluginDependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
670
+ databaseCompatibility: z.ZodObject<{
671
+ storageType: z.ZodEnum<{
672
+ simple: "simple";
673
+ structured: "structured";
674
+ }>;
675
+ supported: z.ZodArray<z.ZodEnum<{
676
+ postgresql: "postgresql";
677
+ mysql: "mysql";
678
+ sqlite: "sqlite";
679
+ mssql: "mssql";
680
+ mongodb: "mongodb";
681
+ }>>;
682
+ unsupportedReason: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
683
+ postgresql: "postgresql";
684
+ mysql: "mysql";
685
+ sqlite: "sqlite";
686
+ mssql: "mssql";
687
+ mongodb: "mongodb";
688
+ }> & z.core.$partial, z.ZodString>>;
689
+ }, z.core.$strict>;
690
+ permissions: z.ZodObject<{
691
+ needsStructuredData: z.ZodBoolean;
692
+ needsExternalNetwork: z.ZodBoolean;
693
+ needsFileSystemAccess: z.ZodBoolean;
694
+ }, z.core.$strict>;
695
+ migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
696
+ id: z.ZodString;
697
+ name: z.ZodString;
698
+ up: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
699
+ down: z.ZodCustom<(ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>, (ctx: import("./manifest.js").PluginMigrationContext) => void | Promise<void>>;
700
+ }, z.core.$strict>>>;
701
+ onInstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
702
+ onUninstall: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
703
+ onActivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
704
+ onDeactivate: z.ZodOptional<z.ZodCustom<() => void | Promise<void>, () => void | Promise<void>>>;
705
+ onUpdate: z.ZodOptional<z.ZodCustom<(previousVersion: string) => void | Promise<void>, (previousVersion: string) => void | Promise<void>>>;
706
+ migrationHooks: z.ZodOptional<z.ZodObject<{
707
+ beforeMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
708
+ transformRow: z.ZodOptional<z.ZodCustom<(table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>, (table: string, row: Record<string, unknown>, from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => Record<string, unknown> | Promise<Record<string, unknown>>>>;
709
+ afterMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => void | Promise<void>>>;
710
+ validateMigration: z.ZodOptional<z.ZodCustom<(from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>, (from: import("./manifest.js").DatabaseDialect, to: import("./manifest.js").DatabaseDialect) => import("./manifest.js").PluginMigrationValidation | Promise<import("./manifest.js").PluginMigrationValidation>>>;
711
+ }, z.core.$strict>>;
712
+ }, z.core.$strict>], "type">;
713
+ export declare function formatIssues(issues: z.core.$ZodIssue[]): string[];
714
+ export type ValidatePluginManifestResult = {
715
+ ok: true;
716
+ manifest: CMSPlugin;
717
+ } | {
718
+ ok: false;
719
+ errors: string[];
720
+ };
721
+ /**
722
+ * Validate an untrusted value as a CMSPlugin manifest. The registry's
723
+ * install() (Session 62) and `velora-plugin validate` (Month 7) both go
724
+ * through this — errors come back as readable `path: message` strings
725
+ * (e.g. `contributions.adminSections: Unrecognized key ...` for a
726
+ * contribution-matrix violation).
727
+ */
728
+ export declare function validatePluginManifest(value: unknown): ValidatePluginManifestResult;