@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,619 @@
1
+ /**
2
+ * Post Entity Contract
3
+ *
4
+ * Manages blog posts and articles with publishing workflow, content management,
5
+ * and SEO optimization. Posts support Lexical editor content, featured images,
6
+ * categories, and publication scheduling.
7
+ *
8
+ * Business Rules:
9
+ * - Slug must be unique across all posts
10
+ * - Status values: draft, published, archived
11
+ * - Published flag mirrors published status
12
+ * - publishedAt timestamp set when publishing
13
+ * - Content stored as Lexical editor JSON
14
+ * - Categories stored as string array
15
+ * - Author cascades to null on user deletion
16
+ */
17
+ import { z } from 'zod/v4';
18
+ export declare const POST_SCHEMA_VERSION = 1;
19
+ export declare const POST_STATUSES: readonly ["draft", "published", "archived"];
20
+ export type PostStatus = (typeof POST_STATUSES)[number];
21
+ export declare const LEXICAL_NODE_TYPES: readonly ["paragraph", "heading", "list", "listitem", "quote", "code", "text", "link", "image"];
22
+ export type LexicalNodeType = (typeof LEXICAL_NODE_TYPES)[number];
23
+ export declare const POST_LIMITS: {
24
+ readonly MIN_TITLE_LENGTH: 1;
25
+ readonly MAX_TITLE_LENGTH: 200;
26
+ readonly MIN_SLUG_LENGTH: 1;
27
+ readonly MAX_SLUG_LENGTH: 200;
28
+ readonly MAX_EXCERPT_LENGTH: 500;
29
+ readonly MAX_CATEGORIES: 10;
30
+ };
31
+ /**
32
+ * Lexical editor content schema (simplified)
33
+ */
34
+ export declare const LexicalContentSchema: z.ZodObject<{
35
+ root: z.ZodObject<{
36
+ children: z.ZodArray<z.ZodUnknown>;
37
+ direction: z.ZodOptional<z.ZodEnum<{
38
+ ltr: "ltr";
39
+ rtl: "rtl";
40
+ }>>;
41
+ format: z.ZodOptional<z.ZodString>;
42
+ indent: z.ZodOptional<z.ZodNumber>;
43
+ type: z.ZodString;
44
+ version: z.ZodOptional<z.ZodNumber>;
45
+ }, z.core.$strip>;
46
+ }, z.core.$strip>;
47
+ export type LexicalContent = z.infer<typeof LexicalContentSchema>;
48
+ /**
49
+ * Post meta (SEO) schema
50
+ */
51
+ export declare const PostMetaSchema: z.ZodObject<{
52
+ title: z.ZodOptional<z.ZodString>;
53
+ description: z.ZodOptional<z.ZodString>;
54
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
55
+ ogImage: z.ZodOptional<z.ZodString>;
56
+ ogTitle: z.ZodOptional<z.ZodString>;
57
+ ogDescription: z.ZodOptional<z.ZodString>;
58
+ twitterCard: z.ZodOptional<z.ZodEnum<{
59
+ summary: "summary";
60
+ app: "app";
61
+ summary_large_image: "summary_large_image";
62
+ player: "player";
63
+ }>>;
64
+ canonicalUrl: z.ZodOptional<z.ZodString>;
65
+ noIndex: z.ZodOptional<z.ZodBoolean>;
66
+ noFollow: z.ZodOptional<z.ZodBoolean>;
67
+ }, z.core.$strip>;
68
+ export type PostMeta = z.infer<typeof PostMetaSchema>;
69
+ /**
70
+ * Post object schema
71
+ */
72
+ export declare const PostObjectSchema: z.ZodObject<{
73
+ id: z.ZodString;
74
+ schemaVersion: z.ZodDefault<z.ZodString>;
75
+ title: z.ZodString;
76
+ slug: z.ZodString;
77
+ excerpt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
78
+ content: z.ZodOptional<z.ZodNullable<z.ZodObject<{
79
+ root: z.ZodObject<{
80
+ children: z.ZodArray<z.ZodUnknown>;
81
+ direction: z.ZodOptional<z.ZodEnum<{
82
+ ltr: "ltr";
83
+ rtl: "rtl";
84
+ }>>;
85
+ format: z.ZodOptional<z.ZodString>;
86
+ indent: z.ZodOptional<z.ZodNumber>;
87
+ type: z.ZodString;
88
+ version: z.ZodOptional<z.ZodNumber>;
89
+ }, z.core.$strip>;
90
+ }, z.core.$strip>>>;
91
+ featuredImageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
92
+ authorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
93
+ status: z.ZodEnum<{
94
+ draft: "draft";
95
+ published: "published";
96
+ archived: "archived";
97
+ }>;
98
+ published: z.ZodDefault<z.ZodBoolean>;
99
+ meta: z.ZodOptional<z.ZodNullable<z.ZodObject<{
100
+ title: z.ZodOptional<z.ZodString>;
101
+ description: z.ZodOptional<z.ZodString>;
102
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
103
+ ogImage: z.ZodOptional<z.ZodString>;
104
+ ogTitle: z.ZodOptional<z.ZodString>;
105
+ ogDescription: z.ZodOptional<z.ZodString>;
106
+ twitterCard: z.ZodOptional<z.ZodEnum<{
107
+ summary: "summary";
108
+ app: "app";
109
+ summary_large_image: "summary_large_image";
110
+ player: "player";
111
+ }>>;
112
+ canonicalUrl: z.ZodOptional<z.ZodString>;
113
+ noIndex: z.ZodOptional<z.ZodBoolean>;
114
+ noFollow: z.ZodOptional<z.ZodBoolean>;
115
+ }, z.core.$strip>>>;
116
+ categories: z.ZodDefault<z.ZodArray<z.ZodString>>;
117
+ createdAt: z.ZodDate;
118
+ updatedAt: z.ZodDate;
119
+ publishedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
120
+ }, z.core.$strip>;
121
+ /**
122
+ * Post schema with validation rules
123
+ */
124
+ export declare const PostBaseSchema: z.ZodObject<{
125
+ id: z.ZodString;
126
+ schemaVersion: z.ZodDefault<z.ZodString>;
127
+ title: z.ZodString;
128
+ slug: z.ZodString;
129
+ excerpt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
130
+ content: z.ZodOptional<z.ZodNullable<z.ZodObject<{
131
+ root: z.ZodObject<{
132
+ children: z.ZodArray<z.ZodUnknown>;
133
+ direction: z.ZodOptional<z.ZodEnum<{
134
+ ltr: "ltr";
135
+ rtl: "rtl";
136
+ }>>;
137
+ format: z.ZodOptional<z.ZodString>;
138
+ indent: z.ZodOptional<z.ZodNumber>;
139
+ type: z.ZodString;
140
+ version: z.ZodOptional<z.ZodNumber>;
141
+ }, z.core.$strip>;
142
+ }, z.core.$strip>>>;
143
+ featuredImageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
144
+ authorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
145
+ status: z.ZodEnum<{
146
+ draft: "draft";
147
+ published: "published";
148
+ archived: "archived";
149
+ }>;
150
+ published: z.ZodDefault<z.ZodBoolean>;
151
+ meta: z.ZodOptional<z.ZodNullable<z.ZodObject<{
152
+ title: z.ZodOptional<z.ZodString>;
153
+ description: z.ZodOptional<z.ZodString>;
154
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
155
+ ogImage: z.ZodOptional<z.ZodString>;
156
+ ogTitle: z.ZodOptional<z.ZodString>;
157
+ ogDescription: z.ZodOptional<z.ZodString>;
158
+ twitterCard: z.ZodOptional<z.ZodEnum<{
159
+ summary: "summary";
160
+ app: "app";
161
+ summary_large_image: "summary_large_image";
162
+ player: "player";
163
+ }>>;
164
+ canonicalUrl: z.ZodOptional<z.ZodString>;
165
+ noIndex: z.ZodOptional<z.ZodBoolean>;
166
+ noFollow: z.ZodOptional<z.ZodBoolean>;
167
+ }, z.core.$strip>>>;
168
+ categories: z.ZodDefault<z.ZodArray<z.ZodString>>;
169
+ createdAt: z.ZodDate;
170
+ updatedAt: z.ZodDate;
171
+ publishedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
172
+ }, z.core.$strip>;
173
+ export declare const PostSchema: z.ZodObject<{
174
+ id: z.ZodString;
175
+ schemaVersion: z.ZodDefault<z.ZodString>;
176
+ title: z.ZodString;
177
+ slug: z.ZodString;
178
+ excerpt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
179
+ content: z.ZodOptional<z.ZodNullable<z.ZodObject<{
180
+ root: z.ZodObject<{
181
+ children: z.ZodArray<z.ZodUnknown>;
182
+ direction: z.ZodOptional<z.ZodEnum<{
183
+ ltr: "ltr";
184
+ rtl: "rtl";
185
+ }>>;
186
+ format: z.ZodOptional<z.ZodString>;
187
+ indent: z.ZodOptional<z.ZodNumber>;
188
+ type: z.ZodString;
189
+ version: z.ZodOptional<z.ZodNumber>;
190
+ }, z.core.$strip>;
191
+ }, z.core.$strip>>>;
192
+ featuredImageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
193
+ authorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
194
+ status: z.ZodEnum<{
195
+ draft: "draft";
196
+ published: "published";
197
+ archived: "archived";
198
+ }>;
199
+ published: z.ZodDefault<z.ZodBoolean>;
200
+ meta: z.ZodOptional<z.ZodNullable<z.ZodObject<{
201
+ title: z.ZodOptional<z.ZodString>;
202
+ description: z.ZodOptional<z.ZodString>;
203
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
204
+ ogImage: z.ZodOptional<z.ZodString>;
205
+ ogTitle: z.ZodOptional<z.ZodString>;
206
+ ogDescription: z.ZodOptional<z.ZodString>;
207
+ twitterCard: z.ZodOptional<z.ZodEnum<{
208
+ summary: "summary";
209
+ app: "app";
210
+ summary_large_image: "summary_large_image";
211
+ player: "player";
212
+ }>>;
213
+ canonicalUrl: z.ZodOptional<z.ZodString>;
214
+ noIndex: z.ZodOptional<z.ZodBoolean>;
215
+ noFollow: z.ZodOptional<z.ZodBoolean>;
216
+ }, z.core.$strip>>>;
217
+ categories: z.ZodDefault<z.ZodArray<z.ZodString>>;
218
+ createdAt: z.ZodDate;
219
+ updatedAt: z.ZodDate;
220
+ publishedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
221
+ }, z.core.$strip>;
222
+ /**
223
+ * Schema for creating new posts
224
+ */
225
+ export declare const PostInsertSchema: z.ZodObject<{
226
+ id: z.ZodString;
227
+ meta: z.ZodOptional<z.ZodNullable<z.ZodObject<{
228
+ title: z.ZodOptional<z.ZodString>;
229
+ description: z.ZodOptional<z.ZodString>;
230
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
231
+ ogImage: z.ZodOptional<z.ZodString>;
232
+ ogTitle: z.ZodOptional<z.ZodString>;
233
+ ogDescription: z.ZodOptional<z.ZodString>;
234
+ twitterCard: z.ZodOptional<z.ZodEnum<{
235
+ summary: "summary";
236
+ app: "app";
237
+ summary_large_image: "summary_large_image";
238
+ player: "player";
239
+ }>>;
240
+ canonicalUrl: z.ZodOptional<z.ZodString>;
241
+ noIndex: z.ZodOptional<z.ZodBoolean>;
242
+ noFollow: z.ZodOptional<z.ZodBoolean>;
243
+ }, z.core.$strip>>>;
244
+ content: z.ZodOptional<z.ZodNullable<z.ZodObject<{
245
+ root: z.ZodObject<{
246
+ children: z.ZodArray<z.ZodUnknown>;
247
+ direction: z.ZodOptional<z.ZodEnum<{
248
+ ltr: "ltr";
249
+ rtl: "rtl";
250
+ }>>;
251
+ format: z.ZodOptional<z.ZodString>;
252
+ indent: z.ZodOptional<z.ZodNumber>;
253
+ type: z.ZodString;
254
+ version: z.ZodOptional<z.ZodNumber>;
255
+ }, z.core.$strip>;
256
+ }, z.core.$strip>>>;
257
+ title: z.ZodString;
258
+ published: z.ZodDefault<z.ZodBoolean>;
259
+ schemaVersion: z.ZodDefault<z.ZodString>;
260
+ slug: z.ZodString;
261
+ status: z.ZodEnum<{
262
+ draft: "draft";
263
+ published: "published";
264
+ archived: "archived";
265
+ }>;
266
+ publishedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
267
+ excerpt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
268
+ featuredImageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
269
+ authorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
270
+ categories: z.ZodDefault<z.ZodArray<z.ZodString>>;
271
+ createdAt: z.ZodOptional<z.ZodDate>;
272
+ updatedAt: z.ZodOptional<z.ZodDate>;
273
+ }, z.core.$strip>;
274
+ export type Post = z.infer<typeof PostSchema>;
275
+ export type PostInsert = z.infer<typeof PostInsertSchema>;
276
+ /**
277
+ * Check if post is draft
278
+ */
279
+ export declare function isDraft(post: Post): boolean;
280
+ /**
281
+ * Check if post is published
282
+ */
283
+ export declare function isPublished(post: Post): boolean;
284
+ /**
285
+ * Check if post is archived
286
+ */
287
+ export declare function isArchived(post: Post): boolean;
288
+ /**
289
+ * Check if post is publishable (has required fields)
290
+ */
291
+ export declare function isPublishable(post: Post): boolean;
292
+ /**
293
+ * Get status display label
294
+ */
295
+ export declare function getStatusLabel(status: PostStatus): string;
296
+ /**
297
+ * Create publish update
298
+ */
299
+ export declare function createPublishUpdate(): Partial<Post>;
300
+ /**
301
+ * Create unpublish update
302
+ */
303
+ export declare function createUnpublishUpdate(): Partial<Post>;
304
+ /**
305
+ * Create archive update
306
+ */
307
+ export declare function createArchiveUpdate(): Partial<Post>;
308
+ /**
309
+ * Create restore update (from archive)
310
+ */
311
+ export declare function createRestoreUpdate(): Partial<Post>;
312
+ /**
313
+ * Check if post has content
314
+ */
315
+ export declare function hasContent(post: Post): boolean;
316
+ /**
317
+ * Check if post has excerpt
318
+ */
319
+ export declare function hasExcerpt(post: Post): boolean;
320
+ /**
321
+ * Check if post has featured image
322
+ */
323
+ export declare function hasFeaturedImage(post: Post): boolean;
324
+ /**
325
+ * Estimate reading time in minutes
326
+ */
327
+ export declare function estimateReadingTime(post: Post): number;
328
+ /**
329
+ * Estimate word count from content
330
+ */
331
+ export declare function estimateWordCount(post: Post): number;
332
+ /**
333
+ * Check if post has author
334
+ */
335
+ export declare function hasAuthor(post: Post): boolean;
336
+ /**
337
+ * Check if post is authored by specific user
338
+ */
339
+ export declare function isAuthoredBy(post: Post, userId: string): boolean;
340
+ /**
341
+ * Check if post has categories
342
+ */
343
+ export declare function hasCategories(post: Post): boolean;
344
+ /**
345
+ * Check if post has specific category
346
+ */
347
+ export declare function hasCategory(post: Post, category: string): boolean;
348
+ /**
349
+ * Add category to post
350
+ */
351
+ export declare function addCategory(post: Post, category: string): string[];
352
+ /**
353
+ * Remove category from post
354
+ */
355
+ export declare function removeCategory(post: Post, category: string): string[];
356
+ /**
357
+ * Check if post has SEO meta
358
+ */
359
+ export declare function hasMeta(post: Post): boolean;
360
+ /**
361
+ * Get effective SEO title (meta.title or post.title)
362
+ */
363
+ export declare function getEffectiveSeoTitle(post: Post): string;
364
+ /**
365
+ * Get effective SEO description (meta.description or excerpt)
366
+ */
367
+ export declare function getEffectiveSeoDescription(post: Post): string | null;
368
+ /**
369
+ * Check if post is indexed by search engines
370
+ */
371
+ export declare function isIndexable(post: Post): boolean;
372
+ /**
373
+ * Generate slug from title
374
+ */
375
+ export declare function generateSlug(title: string): string;
376
+ /**
377
+ * Validate slug format
378
+ */
379
+ export declare function isValidSlug(slug: string): boolean;
380
+ /**
381
+ * Get post age in milliseconds
382
+ */
383
+ export declare function getPostAge(post: Post): number;
384
+ /**
385
+ * Get post age in days
386
+ */
387
+ export declare function getPostAgeInDays(post: Post): number;
388
+ /**
389
+ * Get time since last update in milliseconds
390
+ */
391
+ export declare function getTimeSinceUpdate(post: Post): number;
392
+ /**
393
+ * Get time since publication in milliseconds
394
+ */
395
+ export declare function getTimeSincePublication(post: Post): number | null;
396
+ /**
397
+ * Check if post is recent (< 7 days old)
398
+ */
399
+ export declare function isRecentPost(post: Post, daysThreshold?: number): boolean;
400
+ /**
401
+ * Check if post was recently updated (< 24 hours)
402
+ */
403
+ export declare function isRecentlyUpdated(post: Post, hoursThreshold?: number): boolean;
404
+ /**
405
+ * Create post insert data
406
+ */
407
+ export declare function createPostInsert(title: string, slug: string, options?: {
408
+ id?: string;
409
+ excerpt?: string | null;
410
+ content?: LexicalContent | null;
411
+ featuredImageId?: string | null;
412
+ authorId?: string | null;
413
+ status?: PostStatus;
414
+ meta?: PostMeta | null;
415
+ categories?: string[];
416
+ }): PostInsert;
417
+ /**
418
+ * Update post data
419
+ */
420
+ export declare function updatePost(updates: {
421
+ title?: string;
422
+ slug?: string;
423
+ excerpt?: string | null;
424
+ content?: LexicalContent | null;
425
+ featuredImageId?: string | null;
426
+ meta?: PostMeta | null;
427
+ categories?: string[];
428
+ }): Partial<Post>;
429
+ /**
430
+ * Post with computed fields for UI display
431
+ */
432
+ export interface PostWithComputed extends Post {
433
+ _computed: {
434
+ isDraft: boolean;
435
+ isPublished: boolean;
436
+ isArchived: boolean;
437
+ isPublishable: boolean;
438
+ hasContent: boolean;
439
+ hasExcerpt: boolean;
440
+ hasFeaturedImage: boolean;
441
+ hasAuthor: boolean;
442
+ hasCategories: boolean;
443
+ hasMeta: boolean;
444
+ isIndexable: boolean;
445
+ estimatedWordCount: number;
446
+ estimatedReadingTime: number;
447
+ ageInDays: number;
448
+ isRecent: boolean;
449
+ isRecentlyUpdated: boolean;
450
+ effectiveSeoTitle: string;
451
+ effectiveSeoDescription: string | null;
452
+ };
453
+ }
454
+ /**
455
+ * Convert post to format with computed fields
456
+ */
457
+ export declare function postToHuman(post: Post): PostWithComputed;
458
+ /**
459
+ * Post with metadata for agent/API consumption
460
+ */
461
+ export interface PostAgent extends Post {
462
+ metadata: {
463
+ status: PostStatus;
464
+ published: boolean;
465
+ hasContent: boolean;
466
+ wordCount: number;
467
+ readingTimeMinutes: number;
468
+ categoryCount: number;
469
+ ageMs: number;
470
+ timeSincePublicationMs: number | null;
471
+ isIndexable: boolean;
472
+ };
473
+ }
474
+ /**
475
+ * Convert post to agent-compatible format
476
+ */
477
+ export declare function postToAgent(post: Post): PostAgent;
478
+ /**
479
+ * Zod schema for post with computed fields
480
+ */
481
+ export declare const PostWithComputedSchema: z.ZodIntersection<z.ZodObject<{
482
+ id: z.ZodString;
483
+ schemaVersion: z.ZodDefault<z.ZodString>;
484
+ title: z.ZodString;
485
+ slug: z.ZodString;
486
+ excerpt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
487
+ content: z.ZodOptional<z.ZodNullable<z.ZodObject<{
488
+ root: z.ZodObject<{
489
+ children: z.ZodArray<z.ZodUnknown>;
490
+ direction: z.ZodOptional<z.ZodEnum<{
491
+ ltr: "ltr";
492
+ rtl: "rtl";
493
+ }>>;
494
+ format: z.ZodOptional<z.ZodString>;
495
+ indent: z.ZodOptional<z.ZodNumber>;
496
+ type: z.ZodString;
497
+ version: z.ZodOptional<z.ZodNumber>;
498
+ }, z.core.$strip>;
499
+ }, z.core.$strip>>>;
500
+ featuredImageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
501
+ authorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
502
+ status: z.ZodEnum<{
503
+ draft: "draft";
504
+ published: "published";
505
+ archived: "archived";
506
+ }>;
507
+ published: z.ZodDefault<z.ZodBoolean>;
508
+ meta: z.ZodOptional<z.ZodNullable<z.ZodObject<{
509
+ title: z.ZodOptional<z.ZodString>;
510
+ description: z.ZodOptional<z.ZodString>;
511
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
512
+ ogImage: z.ZodOptional<z.ZodString>;
513
+ ogTitle: z.ZodOptional<z.ZodString>;
514
+ ogDescription: z.ZodOptional<z.ZodString>;
515
+ twitterCard: z.ZodOptional<z.ZodEnum<{
516
+ summary: "summary";
517
+ app: "app";
518
+ summary_large_image: "summary_large_image";
519
+ player: "player";
520
+ }>>;
521
+ canonicalUrl: z.ZodOptional<z.ZodString>;
522
+ noIndex: z.ZodOptional<z.ZodBoolean>;
523
+ noFollow: z.ZodOptional<z.ZodBoolean>;
524
+ }, z.core.$strip>>>;
525
+ categories: z.ZodDefault<z.ZodArray<z.ZodString>>;
526
+ createdAt: z.ZodDate;
527
+ updatedAt: z.ZodDate;
528
+ publishedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
529
+ }, z.core.$strip>, z.ZodObject<{
530
+ _computed: z.ZodObject<{
531
+ isDraft: z.ZodBoolean;
532
+ isPublished: z.ZodBoolean;
533
+ isArchived: z.ZodBoolean;
534
+ isPublishable: z.ZodBoolean;
535
+ hasContent: z.ZodBoolean;
536
+ hasExcerpt: z.ZodBoolean;
537
+ hasFeaturedImage: z.ZodBoolean;
538
+ hasAuthor: z.ZodBoolean;
539
+ hasCategories: z.ZodBoolean;
540
+ hasMeta: z.ZodBoolean;
541
+ isIndexable: z.ZodBoolean;
542
+ estimatedWordCount: z.ZodNumber;
543
+ estimatedReadingTime: z.ZodNumber;
544
+ ageInDays: z.ZodNumber;
545
+ isRecent: z.ZodBoolean;
546
+ isRecentlyUpdated: z.ZodBoolean;
547
+ effectiveSeoTitle: z.ZodString;
548
+ effectiveSeoDescription: z.ZodNullable<z.ZodString>;
549
+ }, z.core.$strip>;
550
+ }, z.core.$strip>>;
551
+ /**
552
+ * Zod schema for post with agent metadata
553
+ */
554
+ export declare const PostAgentSchema: z.ZodIntersection<z.ZodObject<{
555
+ id: z.ZodString;
556
+ schemaVersion: z.ZodDefault<z.ZodString>;
557
+ title: z.ZodString;
558
+ slug: z.ZodString;
559
+ excerpt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
560
+ content: z.ZodOptional<z.ZodNullable<z.ZodObject<{
561
+ root: z.ZodObject<{
562
+ children: z.ZodArray<z.ZodUnknown>;
563
+ direction: z.ZodOptional<z.ZodEnum<{
564
+ ltr: "ltr";
565
+ rtl: "rtl";
566
+ }>>;
567
+ format: z.ZodOptional<z.ZodString>;
568
+ indent: z.ZodOptional<z.ZodNumber>;
569
+ type: z.ZodString;
570
+ version: z.ZodOptional<z.ZodNumber>;
571
+ }, z.core.$strip>;
572
+ }, z.core.$strip>>>;
573
+ featuredImageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
574
+ authorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
575
+ status: z.ZodEnum<{
576
+ draft: "draft";
577
+ published: "published";
578
+ archived: "archived";
579
+ }>;
580
+ published: z.ZodDefault<z.ZodBoolean>;
581
+ meta: z.ZodOptional<z.ZodNullable<z.ZodObject<{
582
+ title: z.ZodOptional<z.ZodString>;
583
+ description: z.ZodOptional<z.ZodString>;
584
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
585
+ ogImage: z.ZodOptional<z.ZodString>;
586
+ ogTitle: z.ZodOptional<z.ZodString>;
587
+ ogDescription: z.ZodOptional<z.ZodString>;
588
+ twitterCard: z.ZodOptional<z.ZodEnum<{
589
+ summary: "summary";
590
+ app: "app";
591
+ summary_large_image: "summary_large_image";
592
+ player: "player";
593
+ }>>;
594
+ canonicalUrl: z.ZodOptional<z.ZodString>;
595
+ noIndex: z.ZodOptional<z.ZodBoolean>;
596
+ noFollow: z.ZodOptional<z.ZodBoolean>;
597
+ }, z.core.$strip>>>;
598
+ categories: z.ZodDefault<z.ZodArray<z.ZodString>>;
599
+ createdAt: z.ZodDate;
600
+ updatedAt: z.ZodDate;
601
+ publishedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
602
+ }, z.core.$strip>, z.ZodObject<{
603
+ metadata: z.ZodObject<{
604
+ status: z.ZodEnum<{
605
+ draft: "draft";
606
+ published: "published";
607
+ archived: "archived";
608
+ }>;
609
+ published: z.ZodBoolean;
610
+ hasContent: z.ZodBoolean;
611
+ wordCount: z.ZodNumber;
612
+ readingTimeMinutes: z.ZodNumber;
613
+ categoryCount: z.ZodNumber;
614
+ ageMs: z.ZodNumber;
615
+ timeSincePublicationMs: z.ZodNullable<z.ZodNumber>;
616
+ isIndexable: z.ZodBoolean;
617
+ }, z.core.$strip>;
618
+ }, z.core.$strip>>;
619
+ //# sourceMappingURL=post.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../src/entities/post.ts"],"names":[],"mappings":"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"}