@revealui/contracts 1.0.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.
Files changed (191) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +160 -0
  3. package/dist/a2a/index.d.ts +383 -0
  4. package/dist/a2a/index.d.ts.map +1 -0
  5. package/dist/a2a/index.js +276 -0
  6. package/dist/a2a/index.js.map +1 -0
  7. package/dist/actions/action-validator.d.ts +48 -0
  8. package/dist/actions/action-validator.d.ts.map +1 -0
  9. package/dist/actions/action-validator.js +288 -0
  10. package/dist/actions/action-validator.js.map +1 -0
  11. package/dist/actions/index.d.ts +7 -0
  12. package/dist/actions/index.d.ts.map +1 -0
  13. package/dist/actions/index.js +7 -0
  14. package/dist/actions/index.js.map +1 -0
  15. package/dist/agents/index.d.ts +628 -0
  16. package/dist/agents/index.d.ts.map +1 -0
  17. package/dist/agents/index.js +511 -0
  18. package/dist/agents/index.js.map +1 -0
  19. package/dist/agents/types.d.ts +22 -0
  20. package/dist/agents/types.d.ts.map +1 -0
  21. package/dist/agents/types.js +2 -0
  22. package/dist/agents/types.js.map +1 -0
  23. package/dist/api/auth.d.ts +60 -0
  24. package/dist/api/auth.d.ts.map +1 -0
  25. package/dist/api/auth.js +84 -0
  26. package/dist/api/auth.js.map +1 -0
  27. package/dist/api/chat.d.ts +45 -0
  28. package/dist/api/chat.d.ts.map +1 -0
  29. package/dist/api/chat.js +55 -0
  30. package/dist/api/chat.js.map +1 -0
  31. package/dist/api/gdpr.d.ts +39 -0
  32. package/dist/api/gdpr.d.ts.map +1 -0
  33. package/dist/api/gdpr.js +53 -0
  34. package/dist/api/gdpr.js.map +1 -0
  35. package/dist/cms/collection.d.ts +108 -0
  36. package/dist/cms/collection.d.ts.map +1 -0
  37. package/dist/cms/collection.js +144 -0
  38. package/dist/cms/collection.js.map +1 -0
  39. package/dist/cms/compat.d.ts +128 -0
  40. package/dist/cms/compat.d.ts.map +1 -0
  41. package/dist/cms/compat.js +141 -0
  42. package/dist/cms/compat.js.map +1 -0
  43. package/dist/cms/config-contract.d.ts +278 -0
  44. package/dist/cms/config-contract.d.ts.map +1 -0
  45. package/dist/cms/config-contract.js +220 -0
  46. package/dist/cms/config-contract.js.map +1 -0
  47. package/dist/cms/config.d.ts +351 -0
  48. package/dist/cms/config.d.ts.map +1 -0
  49. package/dist/cms/config.js +50 -0
  50. package/dist/cms/config.js.map +1 -0
  51. package/dist/cms/errors.d.ts +122 -0
  52. package/dist/cms/errors.d.ts.map +1 -0
  53. package/dist/cms/errors.js +163 -0
  54. package/dist/cms/errors.js.map +1 -0
  55. package/dist/cms/extensibility.d.ts +211 -0
  56. package/dist/cms/extensibility.d.ts.map +1 -0
  57. package/dist/cms/extensibility.js +313 -0
  58. package/dist/cms/extensibility.js.map +1 -0
  59. package/dist/cms/field.d.ts +69 -0
  60. package/dist/cms/field.d.ts.map +1 -0
  61. package/dist/cms/field.js +94 -0
  62. package/dist/cms/field.js.map +1 -0
  63. package/dist/cms/functions.d.ts +466 -0
  64. package/dist/cms/functions.d.ts.map +1 -0
  65. package/dist/cms/functions.js +19 -0
  66. package/dist/cms/functions.js.map +1 -0
  67. package/dist/cms/global.d.ts +45 -0
  68. package/dist/cms/global.d.ts.map +1 -0
  69. package/dist/cms/global.js +62 -0
  70. package/dist/cms/global.js.map +1 -0
  71. package/dist/cms/index.d.ts +23 -0
  72. package/dist/cms/index.d.ts.map +1 -0
  73. package/dist/cms/index.js +42 -0
  74. package/dist/cms/index.js.map +1 -0
  75. package/dist/cms/structure.d.ts +1601 -0
  76. package/dist/cms/structure.d.ts.map +1 -0
  77. package/dist/cms/structure.js +757 -0
  78. package/dist/cms/structure.js.map +1 -0
  79. package/dist/content/index.d.ts +1542 -0
  80. package/dist/content/index.d.ts.map +1 -0
  81. package/dist/content/index.js +522 -0
  82. package/dist/content/index.js.map +1 -0
  83. package/dist/database/bridge.d.ts +177 -0
  84. package/dist/database/bridge.d.ts.map +1 -0
  85. package/dist/database/bridge.js +139 -0
  86. package/dist/database/bridge.js.map +1 -0
  87. package/dist/database/index.d.ts +8 -0
  88. package/dist/database/index.d.ts.map +1 -0
  89. package/dist/database/index.js +9 -0
  90. package/dist/database/index.js.map +1 -0
  91. package/dist/database/type-bridge.d.ts +178 -0
  92. package/dist/database/type-bridge.d.ts.map +1 -0
  93. package/dist/database/type-bridge.js +154 -0
  94. package/dist/database/type-bridge.js.map +1 -0
  95. package/dist/entities/agent-context.d.ts +280 -0
  96. package/dist/entities/agent-context.d.ts.map +1 -0
  97. package/dist/entities/agent-context.js +390 -0
  98. package/dist/entities/agent-context.js.map +1 -0
  99. package/dist/entities/agent-memory.d.ts +661 -0
  100. package/dist/entities/agent-memory.d.ts.map +1 -0
  101. package/dist/entities/agent-memory.js +544 -0
  102. package/dist/entities/agent-memory.js.map +1 -0
  103. package/dist/entities/board.d.ts +95 -0
  104. package/dist/entities/board.d.ts.map +1 -0
  105. package/dist/entities/board.js +99 -0
  106. package/dist/entities/board.js.map +1 -0
  107. package/dist/entities/code-provenance.d.ts +270 -0
  108. package/dist/entities/code-provenance.d.ts.map +1 -0
  109. package/dist/entities/code-provenance.js +339 -0
  110. package/dist/entities/code-provenance.js.map +1 -0
  111. package/dist/entities/index.d.ts +22 -0
  112. package/dist/entities/index.d.ts.map +1 -0
  113. package/dist/entities/index.js +22 -0
  114. package/dist/entities/index.js.map +1 -0
  115. package/dist/entities/media.d.ts +485 -0
  116. package/dist/entities/media.d.ts.map +1 -0
  117. package/dist/entities/media.js +606 -0
  118. package/dist/entities/media.js.map +1 -0
  119. package/dist/entities/page-revision.d.ts +390 -0
  120. package/dist/entities/page-revision.d.ts.map +1 -0
  121. package/dist/entities/page-revision.js +406 -0
  122. package/dist/entities/page-revision.js.map +1 -0
  123. package/dist/entities/page.d.ts +2349 -0
  124. package/dist/entities/page.d.ts.map +1 -0
  125. package/dist/entities/page.js +377 -0
  126. package/dist/entities/page.js.map +1 -0
  127. package/dist/entities/post.d.ts +619 -0
  128. package/dist/entities/post.d.ts.map +1 -0
  129. package/dist/entities/post.js +555 -0
  130. package/dist/entities/post.js.map +1 -0
  131. package/dist/entities/price.d.ts +772 -0
  132. package/dist/entities/price.d.ts.map +1 -0
  133. package/dist/entities/price.js +308 -0
  134. package/dist/entities/price.js.map +1 -0
  135. package/dist/entities/product.d.ts +753 -0
  136. package/dist/entities/product.d.ts.map +1 -0
  137. package/dist/entities/product.js +307 -0
  138. package/dist/entities/product.js.map +1 -0
  139. package/dist/entities/session.d.ts +222 -0
  140. package/dist/entities/session.d.ts.map +1 -0
  141. package/dist/entities/session.js +253 -0
  142. package/dist/entities/session.js.map +1 -0
  143. package/dist/entities/site.d.ts +387 -0
  144. package/dist/entities/site.d.ts.map +1 -0
  145. package/dist/entities/site.js +348 -0
  146. package/dist/entities/site.js.map +1 -0
  147. package/dist/entities/ticket-comment.d.ts +49 -0
  148. package/dist/entities/ticket-comment.d.ts.map +1 -0
  149. package/dist/entities/ticket-comment.js +58 -0
  150. package/dist/entities/ticket-comment.js.map +1 -0
  151. package/dist/entities/ticket-label.d.ts +64 -0
  152. package/dist/entities/ticket-label.d.ts.map +1 -0
  153. package/dist/entities/ticket-label.js +77 -0
  154. package/dist/entities/ticket-label.js.map +1 -0
  155. package/dist/entities/ticket.d.ts +204 -0
  156. package/dist/entities/ticket.d.ts.map +1 -0
  157. package/dist/entities/ticket.js +205 -0
  158. package/dist/entities/ticket.js.map +1 -0
  159. package/dist/entities/user.d.ts +336 -0
  160. package/dist/entities/user.d.ts.map +1 -0
  161. package/dist/entities/user.js +255 -0
  162. package/dist/entities/user.js.map +1 -0
  163. package/dist/foundation/contract.d.ts +221 -0
  164. package/dist/foundation/contract.d.ts.map +1 -0
  165. package/dist/foundation/contract.js +133 -0
  166. package/dist/foundation/contract.js.map +1 -0
  167. package/dist/foundation/index.d.ts +7 -0
  168. package/dist/foundation/index.d.ts.map +1 -0
  169. package/dist/foundation/index.js +7 -0
  170. package/dist/foundation/index.js.map +1 -0
  171. package/dist/generated/contracts.d.ts +1514 -0
  172. package/dist/generated/contracts.d.ts.map +1 -0
  173. package/dist/generated/contracts.js +959 -0
  174. package/dist/generated/contracts.js.map +1 -0
  175. package/dist/generated/database.d.ts +48 -0
  176. package/dist/generated/database.d.ts.map +1 -0
  177. package/dist/generated/database.js +17 -0
  178. package/dist/generated/database.js.map +1 -0
  179. package/dist/generated/zod-schemas.d.ts +14793 -0
  180. package/dist/generated/zod-schemas.d.ts.map +1 -0
  181. package/dist/generated/zod-schemas.js +547 -0
  182. package/dist/generated/zod-schemas.js.map +1 -0
  183. package/dist/index.d.ts +50 -0
  184. package/dist/index.d.ts.map +1 -0
  185. package/dist/index.js +81 -0
  186. package/dist/index.js.map +1 -0
  187. package/dist/representation/index.d.ts +304 -0
  188. package/dist/representation/index.d.ts.map +1 -0
  189. package/dist/representation/index.js +280 -0
  190. package/dist/representation/index.js.map +1 -0
  191. package/package.json +117 -0
@@ -0,0 +1,466 @@
1
+ /**
2
+ * Function Type Contracts (TypeScript)
3
+ *
4
+ * These are TypeScript-only type definitions for function signatures.
5
+ *
6
+ * WHY NOT ZOD?
7
+ * 1. z.function() only validates that something is callable, not its signature
8
+ * 2. Generic type parameters like <T> cannot be expressed in Zod schemas
9
+ * 3. Complex return types (unions, promises, conditional types) don't work
10
+ * 4. Function overloads cannot be represented
11
+ *
12
+ * These types are enforced at COMPILE TIME by TypeScript, not runtime.
13
+ * For runtime validation of function existence, use z.unknown() and
14
+ * TypeScript's type system to ensure correct usage.
15
+ *
16
+ * @module @revealui/contracts/core/contracts/functions
17
+ */
18
+ /**
19
+ * RevealUI Request interface for typing
20
+ */
21
+ export interface RevealRequest<TUser = unknown> {
22
+ user?: TUser | null;
23
+ /** The RevealUI CMS instance */
24
+ revealui?: unknown;
25
+ locale?: string;
26
+ fallbackLocale?: string;
27
+ context?: Record<string, unknown>;
28
+ transactionID?: string | null;
29
+ i18n?: unknown;
30
+ headers?: Headers | Map<string, string>;
31
+ data?: unknown;
32
+ body?: unknown;
33
+ /** Custom properties for extensibility */
34
+ custom?: Record<string, unknown>;
35
+ }
36
+ /**
37
+ * Access check result type
38
+ * - `true`: Allow access
39
+ * - `false`: Deny access
40
+ * - `Where`: Allow with query constraint (for read operations)
41
+ */
42
+ export type AccessResult = boolean | Where;
43
+ /**
44
+ * Where query for conditional access
45
+ */
46
+ export interface Where {
47
+ [field: string]: {
48
+ equals?: unknown;
49
+ } | {
50
+ not_equals?: unknown;
51
+ } | {
52
+ in?: unknown[];
53
+ } | {
54
+ not_in?: unknown[];
55
+ } | {
56
+ exists?: boolean;
57
+ } | {
58
+ greater_than?: number | string;
59
+ } | {
60
+ greater_than_equal?: number | string;
61
+ } | {
62
+ less_than?: number | string;
63
+ } | {
64
+ less_than_equal?: number | string;
65
+ } | {
66
+ like?: string;
67
+ } | {
68
+ contains?: string;
69
+ } | {
70
+ near?: [number, number, number?, number?];
71
+ } | {
72
+ within?: unknown;
73
+ } | {
74
+ intersects?: unknown;
75
+ } | {
76
+ and?: Where[];
77
+ } | {
78
+ or?: Where[];
79
+ } | Where;
80
+ }
81
+ /**
82
+ * Base access function arguments
83
+ */
84
+ export interface AccessArgs<T = unknown> {
85
+ req: RevealRequest;
86
+ id?: string | number;
87
+ data?: Partial<T>;
88
+ }
89
+ /**
90
+ * Collection-level access function
91
+ *
92
+ * @template T - The document type for this collection
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const isAdmin: AccessFunction = ({ req }) => {
97
+ * return req.user?.roles?.includes('admin') ?? false;
98
+ * };
99
+ *
100
+ * const isOwner: AccessFunction<Post> = ({ req, id }) => {
101
+ * if (!req.user) return false;
102
+ * return { author: { equals: req.user.id } };
103
+ * };
104
+ * ```
105
+ */
106
+ export type AccessFunction<T = unknown> = (args: AccessArgs<T>) => AccessResult | Promise<AccessResult>;
107
+ /**
108
+ * Collection access configuration
109
+ *
110
+ * @template T - The document type for this collection
111
+ */
112
+ export interface CollectionAccessConfig<T = unknown> {
113
+ create?: AccessFunction<T>;
114
+ read?: AccessFunction<T>;
115
+ update?: AccessFunction<T>;
116
+ delete?: AccessFunction<T>;
117
+ admin?: AccessFunction<T>;
118
+ unlock?: AccessFunction<T>;
119
+ }
120
+ /**
121
+ * Field-level access function arguments
122
+ */
123
+ export interface FieldAccessArgs<TDoc = unknown, TSibling = unknown> {
124
+ req: RevealRequest;
125
+ id?: string | number;
126
+ data?: TDoc;
127
+ siblingData?: Partial<TSibling>;
128
+ doc?: TDoc;
129
+ }
130
+ /**
131
+ * Field-level access function
132
+ * Field access only returns boolean (no Where queries)
133
+ *
134
+ * @template TDoc - The document type
135
+ * @template TSibling - The sibling data type (for nested fields)
136
+ */
137
+ export type FieldAccessFunction<TDoc = unknown, TSibling = unknown> = (args: FieldAccessArgs<TDoc, TSibling>) => boolean | Promise<boolean>;
138
+ /**
139
+ * Field access configuration
140
+ */
141
+ export interface FieldAccessConfig<TDoc = unknown, TSibling = unknown> {
142
+ create?: FieldAccessFunction<TDoc, TSibling>;
143
+ read?: FieldAccessFunction<TDoc, TSibling>;
144
+ update?: FieldAccessFunction<TDoc, TSibling>;
145
+ }
146
+ /**
147
+ * Shorthand for simple field access (single function for all operations)
148
+ */
149
+ export type FieldAccess<TDoc = unknown, TSibling = unknown> = FieldAccessFunction<TDoc, TSibling> | FieldAccessConfig<TDoc, TSibling>;
150
+ /**
151
+ * Global access configuration
152
+ */
153
+ export interface GlobalAccessConfig {
154
+ read?: (args: {
155
+ req: RevealRequest;
156
+ }) => boolean | Promise<boolean>;
157
+ update?: (args: {
158
+ req: RevealRequest;
159
+ data?: unknown;
160
+ }) => boolean | Promise<boolean>;
161
+ }
162
+ /**
163
+ * Before validate hook arguments
164
+ */
165
+ export interface BeforeValidateHookArgs<T = unknown> {
166
+ data: Partial<T>;
167
+ req: RevealRequest;
168
+ operation: 'create' | 'update';
169
+ originalDoc?: T;
170
+ context: Record<string, unknown>;
171
+ }
172
+ /**
173
+ * Before change hook arguments
174
+ */
175
+ export interface BeforeChangeHookArgs<T = unknown> {
176
+ data: Partial<T>;
177
+ req: RevealRequest;
178
+ operation: 'create' | 'update';
179
+ originalDoc?: T;
180
+ context: Record<string, unknown>;
181
+ }
182
+ /**
183
+ * After change hook arguments
184
+ */
185
+ export interface AfterChangeHookArgs<T = unknown> {
186
+ doc: T;
187
+ req: RevealRequest;
188
+ operation: 'create' | 'update';
189
+ previousDoc: T;
190
+ context: Record<string, unknown>;
191
+ }
192
+ /**
193
+ * Before read hook arguments
194
+ */
195
+ export interface BeforeReadHookArgs<T = unknown> {
196
+ doc: T;
197
+ req: RevealRequest;
198
+ query: Where;
199
+ context: Record<string, unknown>;
200
+ }
201
+ /**
202
+ * After read hook arguments
203
+ */
204
+ export interface AfterReadHookArgs<T = unknown> {
205
+ doc: T;
206
+ req: RevealRequest;
207
+ query?: Where;
208
+ findMany: boolean;
209
+ context: Record<string, unknown>;
210
+ }
211
+ /**
212
+ * Before delete hook arguments
213
+ */
214
+ export interface BeforeDeleteHookArgs {
215
+ req: RevealRequest;
216
+ id: string | number;
217
+ context: Record<string, unknown>;
218
+ }
219
+ /**
220
+ * After delete hook arguments
221
+ */
222
+ export interface AfterDeleteHookArgs<T = unknown> {
223
+ req: RevealRequest;
224
+ id: string | number;
225
+ doc: T;
226
+ context: Record<string, unknown>;
227
+ }
228
+ /**
229
+ * Before operation hook arguments
230
+ */
231
+ export interface BeforeOperationHookArgs {
232
+ operation: string;
233
+ req: RevealRequest;
234
+ args: unknown;
235
+ context: Record<string, unknown>;
236
+ }
237
+ /**
238
+ * After operation hook arguments
239
+ */
240
+ export interface AfterOperationHookArgs<TResult = unknown> {
241
+ operation: string;
242
+ req: RevealRequest;
243
+ args: unknown;
244
+ result: TResult;
245
+ context: Record<string, unknown>;
246
+ }
247
+ /**
248
+ * Collection before validate hook
249
+ *
250
+ * @template T - The document type
251
+ *
252
+ * @example
253
+ * ```typescript
254
+ * const normalizeTitle: CollectionBeforeValidateHook<Post> = ({ data }) => {
255
+ * if (data.title) {
256
+ * data.title = data.title.trim();
257
+ * }
258
+ * return data;
259
+ * };
260
+ * ```
261
+ */
262
+ export type CollectionBeforeValidateHook<T = unknown> = (args: BeforeValidateHookArgs<T>) => Partial<T> | void | Promise<Partial<T>> | Promise<void>;
263
+ /**
264
+ * Collection before change hook
265
+ *
266
+ * @template T - The document type
267
+ */
268
+ export type CollectionBeforeChangeHook<T = unknown> = (args: BeforeChangeHookArgs<T>) => Partial<T> | void | Promise<Partial<T>> | Promise<void>;
269
+ /**
270
+ * Collection after change hook
271
+ *
272
+ * @template T - The document type
273
+ *
274
+ * @example
275
+ * ```typescript
276
+ * const revalidatePost: CollectionAfterChangeHook<Post> = async ({ doc, req }) => {
277
+ * // Revalidate cache after post update
278
+ * await revalidatePath(`/posts/${doc.slug}`);
279
+ * return doc;
280
+ * };
281
+ * ```
282
+ */
283
+ export type CollectionAfterChangeHook<T = unknown> = (args: AfterChangeHookArgs<T>) => T | void | Promise<T> | Promise<void>;
284
+ /**
285
+ * Collection before read hook
286
+ */
287
+ export type CollectionBeforeReadHook<T = unknown> = (args: BeforeReadHookArgs<T>) => T | void | Promise<T> | Promise<void>;
288
+ /**
289
+ * Collection after read hook
290
+ *
291
+ * @template T - The document type
292
+ */
293
+ export type CollectionAfterReadHook<T = unknown> = (args: AfterReadHookArgs<T>) => T | Promise<T>;
294
+ /**
295
+ * Collection before delete hook
296
+ */
297
+ export type CollectionBeforeDeleteHook = (args: BeforeDeleteHookArgs) => void | Promise<void>;
298
+ /**
299
+ * Collection after delete hook
300
+ */
301
+ export type CollectionAfterDeleteHook<T = unknown> = (args: AfterDeleteHookArgs<T>) => T | void | Promise<T> | Promise<void>;
302
+ /**
303
+ * Collection before operation hook
304
+ */
305
+ export type CollectionBeforeOperationHook = (args: BeforeOperationHookArgs) => void | Promise<void>;
306
+ /**
307
+ * Collection after operation hook
308
+ */
309
+ export type CollectionAfterOperationHook<TResult = unknown> = (args: AfterOperationHookArgs<TResult>) => TResult | Promise<TResult>;
310
+ /**
311
+ * Complete collection hooks configuration
312
+ *
313
+ * @template T - The document type
314
+ */
315
+ export interface CollectionHooksConfig<T = unknown> {
316
+ beforeOperation?: CollectionBeforeOperationHook[];
317
+ beforeValidate?: CollectionBeforeValidateHook<T>[];
318
+ beforeChange?: CollectionBeforeChangeHook<T>[];
319
+ afterChange?: CollectionAfterChangeHook<T>[];
320
+ beforeRead?: CollectionBeforeReadHook<T>[];
321
+ afterRead?: CollectionAfterReadHook<T>[];
322
+ beforeDelete?: CollectionBeforeDeleteHook[];
323
+ afterDelete?: CollectionAfterDeleteHook<T>[];
324
+ afterOperation?: CollectionAfterOperationHook[];
325
+ }
326
+ /**
327
+ * Field before change hook arguments
328
+ */
329
+ export interface FieldBeforeChangeHookArgs<TValue = unknown, TDoc = unknown, TSibling = unknown> {
330
+ value: TValue;
331
+ previousValue?: TValue;
332
+ data: TDoc;
333
+ siblingData: Partial<TSibling>;
334
+ req: RevealRequest;
335
+ operation: 'create' | 'update';
336
+ originalDoc?: TDoc;
337
+ context: Record<string, unknown>;
338
+ field: unknown;
339
+ }
340
+ /**
341
+ * Field after read hook arguments
342
+ */
343
+ export interface FieldAfterReadHookArgs<TValue = unknown, TDoc = unknown, TSibling = unknown> {
344
+ value: TValue;
345
+ data: TDoc;
346
+ siblingData: TSibling;
347
+ req: RevealRequest;
348
+ context: Record<string, unknown>;
349
+ field: unknown;
350
+ }
351
+ /**
352
+ * Field before change hook
353
+ */
354
+ export type FieldBeforeChangeHook<TValue = unknown, TDoc = unknown, TSibling = unknown> = (args: FieldBeforeChangeHookArgs<TValue, TDoc, TSibling>) => TValue | Promise<TValue>;
355
+ /**
356
+ * Field after read hook
357
+ */
358
+ export type FieldAfterReadHook<TValue = unknown, TDoc = unknown, TSibling = unknown> = (args: FieldAfterReadHookArgs<TValue, TDoc, TSibling>) => TValue | Promise<TValue>;
359
+ /**
360
+ * Field hooks configuration
361
+ */
362
+ export interface FieldHooksConfig<TValue = unknown, TDoc = unknown, TSibling = unknown> {
363
+ beforeValidate?: FieldBeforeChangeHook<TValue, TDoc, TSibling>[];
364
+ beforeChange?: FieldBeforeChangeHook<TValue, TDoc, TSibling>[];
365
+ afterChange?: FieldBeforeChangeHook<TValue, TDoc, TSibling>[];
366
+ afterRead?: FieldAfterReadHook<TValue, TDoc, TSibling>[];
367
+ }
368
+ /**
369
+ * Global before read hook
370
+ */
371
+ export type GlobalBeforeReadHook<T = unknown> = (args: {
372
+ doc: T;
373
+ req: RevealRequest;
374
+ context: Record<string, unknown>;
375
+ }) => T | void | Promise<T> | Promise<void>;
376
+ /**
377
+ * Global after read hook
378
+ */
379
+ export type GlobalAfterReadHook<T = unknown> = (args: {
380
+ doc: T;
381
+ req: RevealRequest;
382
+ context: Record<string, unknown>;
383
+ }) => T | Promise<T>;
384
+ /**
385
+ * Global before change hook
386
+ */
387
+ export type GlobalBeforeChangeHook<T = unknown> = (args: {
388
+ data: Partial<T>;
389
+ req: RevealRequest;
390
+ originalDoc?: T;
391
+ context: Record<string, unknown>;
392
+ }) => Partial<T> | void | Promise<Partial<T>> | Promise<void>;
393
+ /**
394
+ * Global after change hook
395
+ */
396
+ export type GlobalAfterChangeHook<T = unknown> = (args: {
397
+ doc: T;
398
+ req: RevealRequest;
399
+ previousDoc?: T;
400
+ context: Record<string, unknown>;
401
+ }) => T | void | Promise<T> | Promise<void>;
402
+ /**
403
+ * Global hooks configuration
404
+ */
405
+ export interface GlobalHooksConfig<T = unknown> {
406
+ beforeRead?: GlobalBeforeReadHook<T>[];
407
+ afterRead?: GlobalAfterReadHook<T>[];
408
+ beforeChange?: GlobalBeforeChangeHook<T>[];
409
+ afterChange?: GlobalAfterChangeHook<T>[];
410
+ }
411
+ /**
412
+ * Field validation function arguments
413
+ */
414
+ export interface FieldValidateArgs<TValue = unknown, TDoc = unknown, TSibling = unknown> {
415
+ value: TValue;
416
+ data: Partial<TDoc>;
417
+ siblingData: Partial<TSibling>;
418
+ req: RevealRequest;
419
+ operation: 'create' | 'update';
420
+ }
421
+ /**
422
+ * Field validation function
423
+ *
424
+ * @returns `true` if valid, error message string if invalid
425
+ *
426
+ * @example
427
+ * ```typescript
428
+ * const validateSlug: FieldValidateFunction<string> = ({ value }) => {
429
+ * if (!value) return 'Slug is required';
430
+ * if (!/^[a-z0-9-]+$/.test(value)) return 'Slug must be lowercase alphanumeric with hyphens';
431
+ * return true;
432
+ * };
433
+ * ```
434
+ */
435
+ export type FieldValidateFunction<TValue = unknown, TDoc = unknown, TSibling = unknown> = (args: FieldValidateArgs<TValue, TDoc, TSibling>) => string | true | Promise<string | true>;
436
+ /**
437
+ * Custom endpoint handler
438
+ */
439
+ export type EndpointHandler = (req: RevealRequest) => Response | Promise<Response>;
440
+ /**
441
+ * Endpoint configuration
442
+ */
443
+ export interface EndpointConfig {
444
+ path: string;
445
+ method: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'connect' | 'options' | 'head';
446
+ handler: EndpointHandler;
447
+ root?: boolean;
448
+ custom?: Record<string, unknown>;
449
+ }
450
+ /**
451
+ * Field condition function (for conditional display)
452
+ */
453
+ export type ConditionFunction<TDoc = unknown, TSibling = unknown> = (data: TDoc, siblingData: TSibling, args: {
454
+ user?: unknown;
455
+ }) => boolean;
456
+ /**
457
+ * Filter options function (for relationship fields)
458
+ */
459
+ export type FilterOptionsFunction<T = unknown> = (args: {
460
+ relationTo: string;
461
+ data: Partial<T>;
462
+ siblingData: Partial<unknown>;
463
+ id?: string | number;
464
+ user?: unknown;
465
+ }) => Where | boolean | null;
466
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/cms/functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Function Type Contracts (TypeScript)
3
+ *
4
+ * These are TypeScript-only type definitions for function signatures.
5
+ *
6
+ * WHY NOT ZOD?
7
+ * 1. z.function() only validates that something is callable, not its signature
8
+ * 2. Generic type parameters like <T> cannot be expressed in Zod schemas
9
+ * 3. Complex return types (unions, promises, conditional types) don't work
10
+ * 4. Function overloads cannot be represented
11
+ *
12
+ * These types are enforced at COMPILE TIME by TypeScript, not runtime.
13
+ * For runtime validation of function existence, use z.unknown() and
14
+ * TypeScript's type system to ensure correct usage.
15
+ *
16
+ * @module @revealui/contracts/core/contracts/functions
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/cms/functions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Global Contract
3
+ *
4
+ * Unified contract for Global configurations that combines:
5
+ * - TypeScript types (compile-time)
6
+ * - Zod schemas (runtime validation)
7
+ * - Validation functions
8
+ * - Type guards
9
+ *
10
+ * This is the single source of truth for Global definitions.
11
+ *
12
+ * @module @revealui/contracts/core/contracts/global
13
+ */
14
+ import { type Contract, type ContractType } from '../foundation/contract.js';
15
+ import type { Field, GlobalConfig } from './config.js';
16
+ import { type GlobalStructure } from './structure.js';
17
+ /**
18
+ * Global Contract
19
+ *
20
+ * This contract validates Global configurations at runtime
21
+ * and provides TypeScript types at compile time.
22
+ */
23
+ export declare const GlobalContract: Contract<GlobalStructure>;
24
+ /**
25
+ * Type for Global configuration
26
+ * Extracted from the GlobalContract
27
+ */
28
+ export type GlobalContractType = ContractType<typeof GlobalContract>;
29
+ /**
30
+ * Validate a global configuration
31
+ */
32
+ export declare function validateGlobal(data: unknown): ReturnType<typeof GlobalContract.validate>;
33
+ /**
34
+ * Type guard for global configurations
35
+ */
36
+ export declare function isGlobalConfig(data: unknown): data is GlobalContractType;
37
+ /**
38
+ * Parse global configuration (throws on validation failure)
39
+ */
40
+ export declare function parseGlobal(data: unknown): GlobalContractType;
41
+ /**
42
+ * Creates a basic global config with defaults
43
+ */
44
+ export declare function createGlobalConfig(slug: string, fields: Field[], options?: Partial<Omit<GlobalConfig, 'slug' | 'fields'>>): GlobalConfig;
45
+ //# sourceMappingURL=global.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../src/cms/global.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAkB,MAAM,2BAA2B,CAAA;AAC5F,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAyB,KAAK,eAAe,EAAyB,MAAM,gBAAgB,CAAA;AAEnG;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,eAAe,CAOnD,CAAA;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAA;AAEpE;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAExF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,kBAAkB,CAExE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,kBAAkB,CAE7D;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GACvD,YAAY,CAOd"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Global Contract
3
+ *
4
+ * Unified contract for Global configurations that combines:
5
+ * - TypeScript types (compile-time)
6
+ * - Zod schemas (runtime validation)
7
+ * - Validation functions
8
+ * - Type guards
9
+ *
10
+ * This is the single source of truth for Global definitions.
11
+ *
12
+ * @module @revealui/contracts/core/contracts/global
13
+ */
14
+ import { createContract } from '../foundation/contract.js';
15
+ import { GLOBAL_SCHEMA_VERSION, GlobalStructureSchema } from './structure.js';
16
+ /**
17
+ * Global Contract
18
+ *
19
+ * This contract validates Global configurations at runtime
20
+ * and provides TypeScript types at compile time.
21
+ */
22
+ export const GlobalContract = createContract({
23
+ name: 'Global',
24
+ version: '1.0.0',
25
+ schema: GlobalStructureSchema,
26
+ description: 'Global configuration contract',
27
+ docsUrl: 'https://revealui.dev/docs/api-reference/globals',
28
+ tags: ['global', 'config', 'cms'],
29
+ });
30
+ /**
31
+ * Validate a global configuration
32
+ */
33
+ export function validateGlobal(data) {
34
+ return GlobalContract.validate(data);
35
+ }
36
+ /**
37
+ * Type guard for global configurations
38
+ */
39
+ export function isGlobalConfig(data) {
40
+ return GlobalContract.isType(data);
41
+ }
42
+ /**
43
+ * Parse global configuration (throws on validation failure)
44
+ */
45
+ export function parseGlobal(data) {
46
+ return GlobalContract.parse(data);
47
+ }
48
+ // =============================================================================
49
+ // Factory Functions
50
+ // =============================================================================
51
+ /**
52
+ * Creates a basic global config with defaults
53
+ */
54
+ export function createGlobalConfig(slug, fields, options) {
55
+ return {
56
+ schemaVersion: GLOBAL_SCHEMA_VERSION,
57
+ slug,
58
+ fields,
59
+ ...options,
60
+ };
61
+ }
62
+ //# sourceMappingURL=global.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/cms/global.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAoC,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE5F,OAAO,EAAE,qBAAqB,EAAwB,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEnG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAA8B,cAAc,CAAC;IACtE,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,qBAAqB;IAC7B,WAAW,EAAE,+BAA+B;IAC5C,OAAO,EAAE,iDAAiD;IAC1D,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC;CAClC,CAAC,CAAA;AAQF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,MAAe,EACf,OAAwD;IAExD,OAAO;QACL,aAAa,EAAE,qBAAqB;QACpC,IAAI;QACJ,MAAM;QACN,GAAG,OAAO;KACX,CAAA;AACH,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * CMS Contracts
3
+ *
4
+ * This module exports all contract types for the CMS type system.
5
+ *
6
+ * @module @revealui/contracts/cms
7
+ */
8
+ export { type Contract, type ContractMetadata, type ContractType, type ContractValidationFailure, type ContractValidationResult, type ContractValidationSuccess, type CreateContractOptions, contractRegistry, createContract, } from '../foundation/contract.js';
9
+ export { CollectionContract, type CollectionContractType, createAuthCollectionConfig, createCollectionConfig, createUploadCollectionConfig, isCollectionConfig, parseCollection, validateCollection, } from './collection.js';
10
+ export type { RevealUICollectionConfig, RevealUIExtensions, RevealUIGlobalConfig, } from './compat.js';
11
+ export { assertValidSlug, fromCMSCollectionConfig, fromCMSGlobalConfig, getRevealUIExtensions, hasRevealUIExtensions, isValidSlug, toCMSCollectionConfig, toCMSConfig, toCMSGlobalConfig, toSlug, } from './compat.js';
12
+ export type { AdminConfig, CollectionConfig, Config, DatabaseAdapterConfig, EmailConfig, Field, GlobalConfig, LocalizationConfig, SanitizedConfig, TypedCollectionConfig, TypedGlobalConfig, UnknownRecord, } from './config.js';
13
+ export { defineCollection, defineField, defineGlobal, } from './config.js';
14
+ export { ConfigContract, type ConfigContractType, isConfigStructure, parseConfigStructure, validateConfigStructure, } from './config-contract.js';
15
+ export { ConfigValidationError, safeValidate, type ValidationResult, validateWithErrors, } from './errors.js';
16
+ export type { CustomFieldTypeConfig, CustomFieldTypeRegistry, CustomValidationRule, PluginFieldExtension, ValidationRuleRegistry, } from './extensibility.js';
17
+ export { applyPluginExtensions, BUILTIN_FIELD_TYPES, type BuiltinFieldType, clearCustomFieldTypes, clearPluginExtensions, ExtendedFieldTypeSchema, getCustomFieldType, getCustomFieldTypes, getPluginExtensions, getValidationRule, getValidationRules, getValidFieldTypes, isValidFieldType, mergeCollectionConfigs, mergeFields, registerCustomFieldType, registerPluginExtension, registerValidationRule, runValidationRule, unregisterCustomFieldType, } from './extensibility.js';
18
+ export { FieldContract, type FieldContractType, hasNestedFields, isArrayField, isFieldConfig, isGroupField, isLayoutField, isNumberField, isRelationshipField, isTextField, parseField, validateField, } from './field.js';
19
+ export type { AccessArgs, AccessFunction, AccessResult, AfterChangeHookArgs, AfterDeleteHookArgs, AfterOperationHookArgs, AfterReadHookArgs, BeforeChangeHookArgs, BeforeDeleteHookArgs, BeforeOperationHookArgs, BeforeReadHookArgs, BeforeValidateHookArgs, CollectionAccessConfig, CollectionAfterChangeHook, CollectionAfterDeleteHook, CollectionAfterOperationHook, CollectionAfterReadHook, CollectionBeforeChangeHook, CollectionBeforeDeleteHook, CollectionBeforeOperationHook, CollectionBeforeReadHook, CollectionBeforeValidateHook, CollectionHooksConfig, ConditionFunction, EndpointConfig, EndpointHandler, FieldAccess, FieldAccessArgs, FieldAccessConfig, FieldAccessFunction, FieldAfterReadHook, FieldAfterReadHookArgs, FieldBeforeChangeHook, FieldBeforeChangeHookArgs, FieldHooksConfig, FieldValidateArgs, GlobalAccessConfig, GlobalAfterChangeHook, GlobalAfterReadHook, GlobalBeforeChangeHook, GlobalBeforeReadHook, GlobalHooksConfig, RevealRequest, Where, } from './functions.js';
20
+ export { createGlobalConfig, GlobalContract, type GlobalContractType, isGlobalConfig, parseGlobal, validateGlobal, } from './global.js';
21
+ export type { ArrayField, AuthConfig, BlockDefinition, CollectionAccess, CollectionAdminConfig, CollectionHooks, CollectionLabels, CollectionStructure, FieldAdminConfig, FieldOption, FieldStructure, FieldType, GlobalAccess, GlobalAdminConfig, GlobalHooks, GlobalLabels, GlobalStructure, GlobalVersionsConfig, GroupField, NumberField, RelationshipField, RowField, SanitizedCollectionConfig, SanitizedGlobalConfig, SelectField, TabDefinition, TabsField, TextField, TypeScriptConfig, UploadConfig, VersionConfig, } from './structure.js';
22
+ export { ArrayFieldSchema, AuthConfigSchema, BlockDefinitionSchema, COLLECTION_SCHEMA_VERSION, CollectionAccessSchema, CollectionAdminConfigSchema, CollectionConfigSchema, CollectionHooksSchema, CollectionLabelsSchema, CollectionStructureSchema, FIELD_SCHEMA_VERSION, FieldAccessConfigSchema, FieldAdminConfigSchema, FieldHooksConfigSchema, FieldOptionSchema, FieldSchema, FieldStructureSchema, FieldTypeSchema, GLOBAL_SCHEMA_VERSION, GlobalAccessSchema, GlobalAdminConfigSchema, GlobalConfigSchema, GlobalHooksSchema, GlobalLabelsSchema, GlobalStructureSchema, GlobalVersionsConfigSchema, GroupFieldSchema, NumberFieldSchema, RelationshipFieldSchema, RowFieldSchema, SanitizedCollectionConfigSchema, SanitizedGlobalConfigSchema, SelectFieldSchema, TabDefinitionSchema, TabsFieldSchema, TextFieldSchema, TypeScriptConfigSchema, UploadConfigSchema, VersionConfigSchema, VersionsConfigSchema, } from './structure.js';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cms/index.ts"],"names":[],"mappings":"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"}