@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,753 @@
1
+ /**
2
+ * Product Schema
3
+ *
4
+ * Products represent Stripe-backed product information with associated pricing.
5
+ * They support content management and integrate with RevealUI's CMS.
6
+ *
7
+ * This schema provides:
8
+ * - Stripe product validation (prod_xxx format)
9
+ * - Stripe product data structure validation
10
+ * - Business rules (published products require valid Stripe data)
11
+ * - Type-safe relationship handling
12
+ * - Runtime validation with Zod
13
+ */
14
+ import { z } from 'zod/v4';
15
+ export declare const PRODUCT_SCHEMA_VERSION = 1;
16
+ /**
17
+ * Stripe Product ID format: prod_xxxxx
18
+ * @example "prod_MowQVLkdIwHu7ixraBm864M"
19
+ */
20
+ export declare const StripeProductIDSchema: z.ZodString;
21
+ export type StripeProductID = z.infer<typeof StripeProductIDSchema>;
22
+ /**
23
+ * Stripe Product object structure (subset of fields from Stripe API)
24
+ * Stored as JSON in product metadata
25
+ */
26
+ export declare const StripeProductDataSchema: z.ZodObject<{
27
+ id: z.ZodString;
28
+ object: z.ZodLiteral<"product">;
29
+ active: z.ZodBoolean;
30
+ name: z.ZodString;
31
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
32
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
33
+ images: z.ZodOptional<z.ZodArray<z.ZodString>>;
34
+ features: z.ZodOptional<z.ZodArray<z.ZodObject<{
35
+ name: z.ZodString;
36
+ }, z.core.$strip>>>;
37
+ default_price: z.ZodOptional<z.ZodNullable<z.ZodString>>;
38
+ shippable: z.ZodOptional<z.ZodBoolean>;
39
+ url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
40
+ }, z.core.$strip>;
41
+ export type StripeProductData = z.infer<typeof StripeProductDataSchema>;
42
+ /**
43
+ * Stripe Price List (stored in priceJSON)
44
+ */
45
+ export declare const StripePriceListSchema: z.ZodObject<{
46
+ object: z.ZodLiteral<"list">;
47
+ data: z.ZodArray<z.ZodObject<{
48
+ id: z.ZodString;
49
+ object: z.ZodLiteral<"price">;
50
+ active: z.ZodOptional<z.ZodBoolean>;
51
+ currency: z.ZodString;
52
+ unit_amount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
53
+ type: z.ZodOptional<z.ZodEnum<{
54
+ one_time: "one_time";
55
+ recurring: "recurring";
56
+ }>>;
57
+ recurring: z.ZodOptional<z.ZodObject<{
58
+ interval: z.ZodEnum<{
59
+ day: "day";
60
+ week: "week";
61
+ month: "month";
62
+ year: "year";
63
+ }>;
64
+ interval_count: z.ZodNumber;
65
+ }, z.core.$strip>>;
66
+ }, z.core.$strip>>;
67
+ has_more: z.ZodBoolean;
68
+ }, z.core.$strip>;
69
+ export type StripePriceList = z.infer<typeof StripePriceListSchema>;
70
+ export declare const ProductStatusSchema: z.ZodEnum<{
71
+ draft: "draft";
72
+ published: "published";
73
+ }>;
74
+ export type ProductStatus = z.infer<typeof ProductStatusSchema>;
75
+ declare const ProductBaseSchema: z.ZodObject<{
76
+ version: z.ZodDefault<z.ZodNumber>;
77
+ human: z.ZodOptional<z.ZodObject<{
78
+ label: z.ZodString;
79
+ description: z.ZodOptional<z.ZodString>;
80
+ icon: z.ZodOptional<z.ZodString>;
81
+ color: z.ZodOptional<z.ZodString>;
82
+ preview: z.ZodOptional<z.ZodString>;
83
+ suggestions: z.ZodOptional<z.ZodArray<z.ZodString>>;
84
+ helpText: z.ZodOptional<z.ZodString>;
85
+ }, z.core.$strip>>;
86
+ agent: z.ZodOptional<z.ZodObject<{
87
+ semanticType: z.ZodString;
88
+ embedding: z.ZodOptional<z.ZodObject<{
89
+ model: z.ZodString;
90
+ vector: z.ZodArray<z.ZodNumber>;
91
+ dimension: z.ZodNumber;
92
+ generatedAt: z.ZodString;
93
+ }, z.core.$strip>>;
94
+ constraints: z.ZodOptional<z.ZodArray<z.ZodObject<{
95
+ type: z.ZodEnum<{
96
+ custom: "custom";
97
+ readonly: "readonly";
98
+ pattern: "pattern";
99
+ required: "required";
100
+ immutable: "immutable";
101
+ range: "range";
102
+ dependency: "dependency";
103
+ capability: "capability";
104
+ permission: "permission";
105
+ }>;
106
+ field: z.ZodOptional<z.ZodString>;
107
+ params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
108
+ message: z.ZodOptional<z.ZodString>;
109
+ }, z.core.$strip>>>;
110
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
111
+ name: z.ZodString;
112
+ description: z.ZodString;
113
+ params: z.ZodRecord<z.ZodString, z.ZodObject<{
114
+ type: z.ZodString;
115
+ required: z.ZodOptional<z.ZodBoolean>;
116
+ description: z.ZodOptional<z.ZodString>;
117
+ default: z.ZodOptional<z.ZodUnknown>;
118
+ enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
119
+ }, z.core.$strip>>;
120
+ returns: z.ZodOptional<z.ZodObject<{
121
+ type: z.ZodString;
122
+ description: z.ZodOptional<z.ZodString>;
123
+ }, z.core.$strip>>;
124
+ requiredCapabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
125
+ sideEffects: z.ZodOptional<z.ZodArray<z.ZodString>>;
126
+ destructive: z.ZodOptional<z.ZodBoolean>;
127
+ }, z.core.$strip>>>;
128
+ relations: z.ZodOptional<z.ZodArray<z.ZodObject<{
129
+ type: z.ZodEnum<{
130
+ dependency: "dependency";
131
+ parent: "parent";
132
+ child: "child";
133
+ sibling: "sibling";
134
+ reference: "reference";
135
+ related: "related";
136
+ }>;
137
+ targetId: z.ZodString;
138
+ targetType: z.ZodString;
139
+ weight: z.ZodDefault<z.ZodNumber>;
140
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
141
+ }, z.core.$strip>>>;
142
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
143
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
144
+ priority: z.ZodOptional<z.ZodNumber>;
145
+ }, z.core.$strip>>;
146
+ schemaVersion: z.ZodDefault<z.ZodNumber>;
147
+ id: z.ZodNumber;
148
+ title: z.ZodString;
149
+ publishedOn: z.ZodOptional<z.ZodNullable<z.ZodString>>;
150
+ layout: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
151
+ blockType: z.ZodString;
152
+ blockName: z.ZodOptional<z.ZodString>;
153
+ }, z.core.$loose>>>>;
154
+ stripeProductID: z.ZodOptional<z.ZodNullable<z.ZodString>>;
155
+ priceJSON: z.ZodPipe<z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<unknown, string | null | undefined>>, z.ZodNullable<z.ZodObject<{
156
+ object: z.ZodLiteral<"list">;
157
+ data: z.ZodArray<z.ZodObject<{
158
+ id: z.ZodString;
159
+ object: z.ZodLiteral<"price">;
160
+ active: z.ZodOptional<z.ZodBoolean>;
161
+ currency: z.ZodString;
162
+ unit_amount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
163
+ type: z.ZodOptional<z.ZodEnum<{
164
+ one_time: "one_time";
165
+ recurring: "recurring";
166
+ }>>;
167
+ recurring: z.ZodOptional<z.ZodObject<{
168
+ interval: z.ZodEnum<{
169
+ day: "day";
170
+ week: "week";
171
+ month: "month";
172
+ year: "year";
173
+ }>;
174
+ interval_count: z.ZodNumber;
175
+ }, z.core.$strip>>;
176
+ }, z.core.$strip>>;
177
+ has_more: z.ZodBoolean;
178
+ }, z.core.$strip>>>;
179
+ enablePaywall: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
180
+ paywall: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
181
+ blockType: z.ZodString;
182
+ blockName: z.ZodOptional<z.ZodString>;
183
+ }, z.core.$loose>>>>;
184
+ categories: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{}, z.core.$loose>]>>>>;
185
+ relatedProducts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{}, z.core.$loose>]>>>>;
186
+ skipSync: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
187
+ updatedAt: z.ZodString;
188
+ createdAt: z.ZodString;
189
+ _status: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
190
+ draft: "draft";
191
+ published: "published";
192
+ }>>>;
193
+ }, z.core.$strip>;
194
+ export type Product = z.infer<typeof ProductBaseSchema>;
195
+ /** Main schema export */
196
+ export declare const ProductSchema: z.ZodObject<{
197
+ version: z.ZodDefault<z.ZodNumber>;
198
+ human: z.ZodOptional<z.ZodObject<{
199
+ label: z.ZodString;
200
+ description: z.ZodOptional<z.ZodString>;
201
+ icon: z.ZodOptional<z.ZodString>;
202
+ color: z.ZodOptional<z.ZodString>;
203
+ preview: z.ZodOptional<z.ZodString>;
204
+ suggestions: z.ZodOptional<z.ZodArray<z.ZodString>>;
205
+ helpText: z.ZodOptional<z.ZodString>;
206
+ }, z.core.$strip>>;
207
+ agent: z.ZodOptional<z.ZodObject<{
208
+ semanticType: z.ZodString;
209
+ embedding: z.ZodOptional<z.ZodObject<{
210
+ model: z.ZodString;
211
+ vector: z.ZodArray<z.ZodNumber>;
212
+ dimension: z.ZodNumber;
213
+ generatedAt: z.ZodString;
214
+ }, z.core.$strip>>;
215
+ constraints: z.ZodOptional<z.ZodArray<z.ZodObject<{
216
+ type: z.ZodEnum<{
217
+ custom: "custom";
218
+ readonly: "readonly";
219
+ pattern: "pattern";
220
+ required: "required";
221
+ immutable: "immutable";
222
+ range: "range";
223
+ dependency: "dependency";
224
+ capability: "capability";
225
+ permission: "permission";
226
+ }>;
227
+ field: z.ZodOptional<z.ZodString>;
228
+ params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
229
+ message: z.ZodOptional<z.ZodString>;
230
+ }, z.core.$strip>>>;
231
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
232
+ name: z.ZodString;
233
+ description: z.ZodString;
234
+ params: z.ZodRecord<z.ZodString, z.ZodObject<{
235
+ type: z.ZodString;
236
+ required: z.ZodOptional<z.ZodBoolean>;
237
+ description: z.ZodOptional<z.ZodString>;
238
+ default: z.ZodOptional<z.ZodUnknown>;
239
+ enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
240
+ }, z.core.$strip>>;
241
+ returns: z.ZodOptional<z.ZodObject<{
242
+ type: z.ZodString;
243
+ description: z.ZodOptional<z.ZodString>;
244
+ }, z.core.$strip>>;
245
+ requiredCapabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
246
+ sideEffects: z.ZodOptional<z.ZodArray<z.ZodString>>;
247
+ destructive: z.ZodOptional<z.ZodBoolean>;
248
+ }, z.core.$strip>>>;
249
+ relations: z.ZodOptional<z.ZodArray<z.ZodObject<{
250
+ type: z.ZodEnum<{
251
+ dependency: "dependency";
252
+ parent: "parent";
253
+ child: "child";
254
+ sibling: "sibling";
255
+ reference: "reference";
256
+ related: "related";
257
+ }>;
258
+ targetId: z.ZodString;
259
+ targetType: z.ZodString;
260
+ weight: z.ZodDefault<z.ZodNumber>;
261
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
262
+ }, z.core.$strip>>>;
263
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
264
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
265
+ priority: z.ZodOptional<z.ZodNumber>;
266
+ }, z.core.$strip>>;
267
+ schemaVersion: z.ZodDefault<z.ZodNumber>;
268
+ id: z.ZodNumber;
269
+ title: z.ZodString;
270
+ publishedOn: z.ZodOptional<z.ZodNullable<z.ZodString>>;
271
+ layout: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
272
+ blockType: z.ZodString;
273
+ blockName: z.ZodOptional<z.ZodString>;
274
+ }, z.core.$loose>>>>;
275
+ stripeProductID: z.ZodOptional<z.ZodNullable<z.ZodString>>;
276
+ priceJSON: z.ZodPipe<z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<unknown, string | null | undefined>>, z.ZodNullable<z.ZodObject<{
277
+ object: z.ZodLiteral<"list">;
278
+ data: z.ZodArray<z.ZodObject<{
279
+ id: z.ZodString;
280
+ object: z.ZodLiteral<"price">;
281
+ active: z.ZodOptional<z.ZodBoolean>;
282
+ currency: z.ZodString;
283
+ unit_amount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
284
+ type: z.ZodOptional<z.ZodEnum<{
285
+ one_time: "one_time";
286
+ recurring: "recurring";
287
+ }>>;
288
+ recurring: z.ZodOptional<z.ZodObject<{
289
+ interval: z.ZodEnum<{
290
+ day: "day";
291
+ week: "week";
292
+ month: "month";
293
+ year: "year";
294
+ }>;
295
+ interval_count: z.ZodNumber;
296
+ }, z.core.$strip>>;
297
+ }, z.core.$strip>>;
298
+ has_more: z.ZodBoolean;
299
+ }, z.core.$strip>>>;
300
+ enablePaywall: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
301
+ paywall: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
302
+ blockType: z.ZodString;
303
+ blockName: z.ZodOptional<z.ZodString>;
304
+ }, z.core.$loose>>>>;
305
+ categories: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{}, z.core.$loose>]>>>>;
306
+ relatedProducts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{}, z.core.$loose>]>>>>;
307
+ skipSync: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
308
+ updatedAt: z.ZodString;
309
+ createdAt: z.ZodString;
310
+ _status: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
311
+ draft: "draft";
312
+ published: "published";
313
+ }>>>;
314
+ }, z.core.$strip>;
315
+ export declare const CreateProductInputSchema: z.ZodObject<{
316
+ title: z.ZodString;
317
+ stripeProductID: z.ZodOptional<z.ZodString>;
318
+ enablePaywall: z.ZodOptional<z.ZodBoolean>;
319
+ categories: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
320
+ relatedProducts: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
321
+ _status: z.ZodOptional<z.ZodEnum<{
322
+ draft: "draft";
323
+ published: "published";
324
+ }>>;
325
+ }, z.core.$strip>;
326
+ export type CreateProductInput = z.infer<typeof CreateProductInputSchema>;
327
+ export declare const UpdateProductInputSchema: z.ZodObject<{
328
+ title: z.ZodOptional<z.ZodString>;
329
+ stripeProductID: z.ZodOptional<z.ZodOptional<z.ZodString>>;
330
+ enablePaywall: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
331
+ categories: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodNumber>>>;
332
+ relatedProducts: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodNumber>>>;
333
+ _status: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
334
+ draft: "draft";
335
+ published: "published";
336
+ }>>>;
337
+ }, z.core.$strip>;
338
+ export type UpdateProductInput = z.infer<typeof UpdateProductInputSchema>;
339
+ /**
340
+ * Product with categories populated
341
+ */
342
+ export declare const ProductWithCategoriesSchema: z.ZodObject<{
343
+ version: z.ZodDefault<z.ZodNumber>;
344
+ human: z.ZodOptional<z.ZodObject<{
345
+ label: z.ZodString;
346
+ description: z.ZodOptional<z.ZodString>;
347
+ icon: z.ZodOptional<z.ZodString>;
348
+ color: z.ZodOptional<z.ZodString>;
349
+ preview: z.ZodOptional<z.ZodString>;
350
+ suggestions: z.ZodOptional<z.ZodArray<z.ZodString>>;
351
+ helpText: z.ZodOptional<z.ZodString>;
352
+ }, z.core.$strip>>;
353
+ agent: z.ZodOptional<z.ZodObject<{
354
+ semanticType: z.ZodString;
355
+ embedding: z.ZodOptional<z.ZodObject<{
356
+ model: z.ZodString;
357
+ vector: z.ZodArray<z.ZodNumber>;
358
+ dimension: z.ZodNumber;
359
+ generatedAt: z.ZodString;
360
+ }, z.core.$strip>>;
361
+ constraints: z.ZodOptional<z.ZodArray<z.ZodObject<{
362
+ type: z.ZodEnum<{
363
+ custom: "custom";
364
+ readonly: "readonly";
365
+ pattern: "pattern";
366
+ required: "required";
367
+ immutable: "immutable";
368
+ range: "range";
369
+ dependency: "dependency";
370
+ capability: "capability";
371
+ permission: "permission";
372
+ }>;
373
+ field: z.ZodOptional<z.ZodString>;
374
+ params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
375
+ message: z.ZodOptional<z.ZodString>;
376
+ }, z.core.$strip>>>;
377
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
378
+ name: z.ZodString;
379
+ description: z.ZodString;
380
+ params: z.ZodRecord<z.ZodString, z.ZodObject<{
381
+ type: z.ZodString;
382
+ required: z.ZodOptional<z.ZodBoolean>;
383
+ description: z.ZodOptional<z.ZodString>;
384
+ default: z.ZodOptional<z.ZodUnknown>;
385
+ enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
386
+ }, z.core.$strip>>;
387
+ returns: z.ZodOptional<z.ZodObject<{
388
+ type: z.ZodString;
389
+ description: z.ZodOptional<z.ZodString>;
390
+ }, z.core.$strip>>;
391
+ requiredCapabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
392
+ sideEffects: z.ZodOptional<z.ZodArray<z.ZodString>>;
393
+ destructive: z.ZodOptional<z.ZodBoolean>;
394
+ }, z.core.$strip>>>;
395
+ relations: z.ZodOptional<z.ZodArray<z.ZodObject<{
396
+ type: z.ZodEnum<{
397
+ dependency: "dependency";
398
+ parent: "parent";
399
+ child: "child";
400
+ sibling: "sibling";
401
+ reference: "reference";
402
+ related: "related";
403
+ }>;
404
+ targetId: z.ZodString;
405
+ targetType: z.ZodString;
406
+ weight: z.ZodDefault<z.ZodNumber>;
407
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
408
+ }, z.core.$strip>>>;
409
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
410
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
411
+ priority: z.ZodOptional<z.ZodNumber>;
412
+ }, z.core.$strip>>;
413
+ schemaVersion: z.ZodDefault<z.ZodNumber>;
414
+ id: z.ZodNumber;
415
+ title: z.ZodString;
416
+ publishedOn: z.ZodOptional<z.ZodNullable<z.ZodString>>;
417
+ layout: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
418
+ blockType: z.ZodString;
419
+ blockName: z.ZodOptional<z.ZodString>;
420
+ }, z.core.$loose>>>>;
421
+ stripeProductID: z.ZodOptional<z.ZodNullable<z.ZodString>>;
422
+ priceJSON: z.ZodPipe<z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<unknown, string | null | undefined>>, z.ZodNullable<z.ZodObject<{
423
+ object: z.ZodLiteral<"list">;
424
+ data: z.ZodArray<z.ZodObject<{
425
+ id: z.ZodString;
426
+ object: z.ZodLiteral<"price">;
427
+ active: z.ZodOptional<z.ZodBoolean>;
428
+ currency: z.ZodString;
429
+ unit_amount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
430
+ type: z.ZodOptional<z.ZodEnum<{
431
+ one_time: "one_time";
432
+ recurring: "recurring";
433
+ }>>;
434
+ recurring: z.ZodOptional<z.ZodObject<{
435
+ interval: z.ZodEnum<{
436
+ day: "day";
437
+ week: "week";
438
+ month: "month";
439
+ year: "year";
440
+ }>;
441
+ interval_count: z.ZodNumber;
442
+ }, z.core.$strip>>;
443
+ }, z.core.$strip>>;
444
+ has_more: z.ZodBoolean;
445
+ }, z.core.$strip>>>;
446
+ enablePaywall: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
447
+ paywall: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
448
+ blockType: z.ZodString;
449
+ blockName: z.ZodOptional<z.ZodString>;
450
+ }, z.core.$loose>>>>;
451
+ relatedProducts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{}, z.core.$loose>]>>>>;
452
+ skipSync: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
453
+ updatedAt: z.ZodString;
454
+ createdAt: z.ZodString;
455
+ _status: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
456
+ draft: "draft";
457
+ published: "published";
458
+ }>>>;
459
+ categories: z.ZodNullable<z.ZodArray<z.ZodObject<{
460
+ id: z.ZodNumber;
461
+ name: z.ZodString;
462
+ }, z.core.$loose>>>;
463
+ }, z.core.$strip>;
464
+ export type ProductWithCategories = z.infer<typeof ProductWithCategoriesSchema>;
465
+ /**
466
+ * Product with all relationships populated
467
+ */
468
+ export declare const ProductWithRelatedSchema: z.ZodObject<{
469
+ version: z.ZodDefault<z.ZodNumber>;
470
+ human: z.ZodOptional<z.ZodObject<{
471
+ label: z.ZodString;
472
+ description: z.ZodOptional<z.ZodString>;
473
+ icon: z.ZodOptional<z.ZodString>;
474
+ color: z.ZodOptional<z.ZodString>;
475
+ preview: z.ZodOptional<z.ZodString>;
476
+ suggestions: z.ZodOptional<z.ZodArray<z.ZodString>>;
477
+ helpText: z.ZodOptional<z.ZodString>;
478
+ }, z.core.$strip>>;
479
+ agent: z.ZodOptional<z.ZodObject<{
480
+ semanticType: z.ZodString;
481
+ embedding: z.ZodOptional<z.ZodObject<{
482
+ model: z.ZodString;
483
+ vector: z.ZodArray<z.ZodNumber>;
484
+ dimension: z.ZodNumber;
485
+ generatedAt: z.ZodString;
486
+ }, z.core.$strip>>;
487
+ constraints: z.ZodOptional<z.ZodArray<z.ZodObject<{
488
+ type: z.ZodEnum<{
489
+ custom: "custom";
490
+ readonly: "readonly";
491
+ pattern: "pattern";
492
+ required: "required";
493
+ immutable: "immutable";
494
+ range: "range";
495
+ dependency: "dependency";
496
+ capability: "capability";
497
+ permission: "permission";
498
+ }>;
499
+ field: z.ZodOptional<z.ZodString>;
500
+ params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
501
+ message: z.ZodOptional<z.ZodString>;
502
+ }, z.core.$strip>>>;
503
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
504
+ name: z.ZodString;
505
+ description: z.ZodString;
506
+ params: z.ZodRecord<z.ZodString, z.ZodObject<{
507
+ type: z.ZodString;
508
+ required: z.ZodOptional<z.ZodBoolean>;
509
+ description: z.ZodOptional<z.ZodString>;
510
+ default: z.ZodOptional<z.ZodUnknown>;
511
+ enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
512
+ }, z.core.$strip>>;
513
+ returns: z.ZodOptional<z.ZodObject<{
514
+ type: z.ZodString;
515
+ description: z.ZodOptional<z.ZodString>;
516
+ }, z.core.$strip>>;
517
+ requiredCapabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
518
+ sideEffects: z.ZodOptional<z.ZodArray<z.ZodString>>;
519
+ destructive: z.ZodOptional<z.ZodBoolean>;
520
+ }, z.core.$strip>>>;
521
+ relations: z.ZodOptional<z.ZodArray<z.ZodObject<{
522
+ type: z.ZodEnum<{
523
+ dependency: "dependency";
524
+ parent: "parent";
525
+ child: "child";
526
+ sibling: "sibling";
527
+ reference: "reference";
528
+ related: "related";
529
+ }>;
530
+ targetId: z.ZodString;
531
+ targetType: z.ZodString;
532
+ weight: z.ZodDefault<z.ZodNumber>;
533
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
534
+ }, z.core.$strip>>>;
535
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
536
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
537
+ priority: z.ZodOptional<z.ZodNumber>;
538
+ }, z.core.$strip>>;
539
+ schemaVersion: z.ZodDefault<z.ZodNumber>;
540
+ id: z.ZodNumber;
541
+ title: z.ZodString;
542
+ publishedOn: z.ZodOptional<z.ZodNullable<z.ZodString>>;
543
+ layout: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
544
+ blockType: z.ZodString;
545
+ blockName: z.ZodOptional<z.ZodString>;
546
+ }, z.core.$loose>>>>;
547
+ stripeProductID: z.ZodOptional<z.ZodNullable<z.ZodString>>;
548
+ priceJSON: z.ZodPipe<z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<unknown, string | null | undefined>>, z.ZodNullable<z.ZodObject<{
549
+ object: z.ZodLiteral<"list">;
550
+ data: z.ZodArray<z.ZodObject<{
551
+ id: z.ZodString;
552
+ object: z.ZodLiteral<"price">;
553
+ active: z.ZodOptional<z.ZodBoolean>;
554
+ currency: z.ZodString;
555
+ unit_amount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
556
+ type: z.ZodOptional<z.ZodEnum<{
557
+ one_time: "one_time";
558
+ recurring: "recurring";
559
+ }>>;
560
+ recurring: z.ZodOptional<z.ZodObject<{
561
+ interval: z.ZodEnum<{
562
+ day: "day";
563
+ week: "week";
564
+ month: "month";
565
+ year: "year";
566
+ }>;
567
+ interval_count: z.ZodNumber;
568
+ }, z.core.$strip>>;
569
+ }, z.core.$strip>>;
570
+ has_more: z.ZodBoolean;
571
+ }, z.core.$strip>>>;
572
+ enablePaywall: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
573
+ paywall: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
574
+ blockType: z.ZodString;
575
+ blockName: z.ZodOptional<z.ZodString>;
576
+ }, z.core.$loose>>>>;
577
+ skipSync: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
578
+ updatedAt: z.ZodString;
579
+ createdAt: z.ZodString;
580
+ _status: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
581
+ draft: "draft";
582
+ published: "published";
583
+ }>>>;
584
+ categories: z.ZodNullable<z.ZodArray<z.ZodObject<{
585
+ id: z.ZodNumber;
586
+ name: z.ZodString;
587
+ }, z.core.$loose>>>;
588
+ relatedProducts: z.ZodNullable<z.ZodArray<z.ZodObject<{
589
+ id: z.ZodNumber;
590
+ title: z.ZodString;
591
+ stripeProductID: z.ZodNullable<z.ZodString>;
592
+ }, z.core.$strip>>>;
593
+ }, z.core.$strip>;
594
+ export type ProductWithRelated = z.infer<typeof ProductWithRelatedSchema>;
595
+ /**
596
+ * Check if product has a valid Stripe product configured
597
+ */
598
+ export declare function hasStripeProduct(product: Product): product is Product & {
599
+ stripeProductID: string;
600
+ };
601
+ /**
602
+ * Check if product is published
603
+ */
604
+ export declare function isPublishedProduct(product: Product): boolean;
605
+ /**
606
+ * Check if product has prices
607
+ */
608
+ export declare function hasProductPrices(product: Product): product is Product & {
609
+ priceJSON: StripePriceList;
610
+ };
611
+ /**
612
+ * Check if product has images
613
+ */
614
+ export declare function hasProductImages(product: Product): boolean;
615
+ /**
616
+ * Get available prices for a product
617
+ */
618
+ export declare function getAvailablePrices(product: Product): StripePriceList['data'];
619
+ /**
620
+ * Get price count for product
621
+ */
622
+ export declare function getPriceCount(product: Product): number;
623
+ /**
624
+ * Get price range for product (lowest to highest)
625
+ */
626
+ export declare function getPriceRange(product: Product): {
627
+ min: number | null;
628
+ max: number | null;
629
+ currency: string | null;
630
+ } | null;
631
+ /**
632
+ * Get default price ID for product
633
+ */
634
+ export declare function getDefaultPriceId(product: Product): string | null;
635
+ /**
636
+ * Format price range for display
637
+ */
638
+ export declare function formatPriceRange(product: Product): string | null;
639
+ export declare const ProductContract: import("../index.js").Contract<{
640
+ version: number;
641
+ schemaVersion: number;
642
+ id: number;
643
+ title: string;
644
+ priceJSON: {
645
+ object: "list";
646
+ data: {
647
+ id: string;
648
+ object: "price";
649
+ currency: string;
650
+ active?: boolean | undefined;
651
+ unit_amount?: number | null | undefined;
652
+ type?: "one_time" | "recurring" | undefined;
653
+ recurring?: {
654
+ interval: "day" | "week" | "month" | "year";
655
+ interval_count: number;
656
+ } | undefined;
657
+ }[];
658
+ has_more: boolean;
659
+ } | null;
660
+ updatedAt: string;
661
+ createdAt: string;
662
+ human?: {
663
+ label: string;
664
+ description?: string | undefined;
665
+ icon?: string | undefined;
666
+ color?: string | undefined;
667
+ preview?: string | undefined;
668
+ suggestions?: string[] | undefined;
669
+ helpText?: string | undefined;
670
+ } | undefined;
671
+ agent?: {
672
+ semanticType: string;
673
+ embedding?: {
674
+ model: string;
675
+ vector: number[];
676
+ dimension: number;
677
+ generatedAt: string;
678
+ } | undefined;
679
+ constraints?: {
680
+ type: "custom" | "readonly" | "pattern" | "required" | "immutable" | "range" | "dependency" | "capability" | "permission";
681
+ params: Record<string, unknown>;
682
+ field?: string | undefined;
683
+ message?: string | undefined;
684
+ }[] | undefined;
685
+ actions?: {
686
+ name: string;
687
+ description: string;
688
+ params: Record<string, {
689
+ type: string;
690
+ required?: boolean | undefined;
691
+ description?: string | undefined;
692
+ default?: unknown;
693
+ enum?: string[] | undefined;
694
+ }>;
695
+ returns?: {
696
+ type: string;
697
+ description?: string | undefined;
698
+ } | undefined;
699
+ requiredCapabilities?: string[] | undefined;
700
+ sideEffects?: string[] | undefined;
701
+ destructive?: boolean | undefined;
702
+ }[] | undefined;
703
+ relations?: {
704
+ type: "dependency" | "parent" | "child" | "sibling" | "reference" | "related";
705
+ targetId: string;
706
+ targetType: string;
707
+ weight: number;
708
+ metadata?: Record<string, unknown> | undefined;
709
+ }[] | undefined;
710
+ metadata?: Record<string, unknown> | undefined;
711
+ keywords?: string[] | undefined;
712
+ priority?: number | undefined;
713
+ } | undefined;
714
+ publishedOn?: string | null | undefined;
715
+ layout?: {
716
+ [x: string]: unknown;
717
+ blockType: string;
718
+ blockName?: string | undefined;
719
+ }[] | null | undefined;
720
+ stripeProductID?: string | null | undefined;
721
+ enablePaywall?: boolean | null | undefined;
722
+ paywall?: {
723
+ [x: string]: unknown;
724
+ blockType: string;
725
+ blockName?: string | undefined;
726
+ }[] | null | undefined;
727
+ categories?: (number | {
728
+ [x: string]: unknown;
729
+ })[] | null | undefined;
730
+ relatedProducts?: (number | {
731
+ [x: string]: unknown;
732
+ })[] | null | undefined;
733
+ skipSync?: boolean | null | undefined;
734
+ _status?: "draft" | "published" | null | undefined;
735
+ }>;
736
+ export declare const CreateProductContract: import("../index.js").Contract<{
737
+ title: string;
738
+ stripeProductID?: string | undefined;
739
+ enablePaywall?: boolean | undefined;
740
+ categories?: number[] | undefined;
741
+ relatedProducts?: number[] | undefined;
742
+ _status?: "draft" | "published" | undefined;
743
+ }>;
744
+ export declare const UpdateProductContract: import("../index.js").Contract<{
745
+ title?: string | undefined;
746
+ stripeProductID?: string | undefined;
747
+ enablePaywall?: boolean | undefined;
748
+ categories?: number[] | undefined;
749
+ relatedProducts?: number[] | undefined;
750
+ _status?: "draft" | "published" | undefined;
751
+ }>;
752
+ export {};
753
+ //# sourceMappingURL=product.d.ts.map