convex-cms 0.0.1

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 (379) hide show
  1. package/dist/cli/commands/admin.d.ts +16 -0
  2. package/dist/cli/commands/admin.d.ts.map +1 -0
  3. package/dist/cli/commands/admin.js +88 -0
  4. package/dist/cli/commands/admin.js.map +1 -0
  5. package/dist/cli/index.d.ts +3 -0
  6. package/dist/cli/index.d.ts.map +1 -0
  7. package/dist/cli/index.js +18 -0
  8. package/dist/cli/index.js.map +1 -0
  9. package/dist/cli/utils/detectConvexUrl.d.ts +13 -0
  10. package/dist/cli/utils/detectConvexUrl.d.ts.map +1 -0
  11. package/dist/cli/utils/detectConvexUrl.js +48 -0
  12. package/dist/cli/utils/detectConvexUrl.js.map +1 -0
  13. package/dist/cli/utils/openBrowser.d.ts +7 -0
  14. package/dist/cli/utils/openBrowser.d.ts.map +1 -0
  15. package/dist/cli/utils/openBrowser.js +17 -0
  16. package/dist/cli/utils/openBrowser.js.map +1 -0
  17. package/dist/client/admin-config.d.ts +126 -0
  18. package/dist/client/admin-config.d.ts.map +1 -0
  19. package/dist/client/admin-config.js +117 -0
  20. package/dist/client/admin-config.js.map +1 -0
  21. package/dist/client/adminApi.d.ts +2273 -0
  22. package/dist/client/adminApi.d.ts.map +1 -0
  23. package/dist/client/adminApi.js +716 -0
  24. package/dist/client/adminApi.js.map +1 -0
  25. package/dist/client/agentTools.d.ts +933 -0
  26. package/dist/client/agentTools.d.ts.map +1 -0
  27. package/dist/client/agentTools.js +1004 -0
  28. package/dist/client/agentTools.js.map +1 -0
  29. package/dist/client/argTypes.d.ts +212 -0
  30. package/dist/client/argTypes.d.ts.map +1 -0
  31. package/dist/client/argTypes.js +5 -0
  32. package/dist/client/argTypes.js.map +1 -0
  33. package/dist/client/field-types.d.ts +55 -0
  34. package/dist/client/field-types.d.ts.map +1 -0
  35. package/dist/client/field-types.js +152 -0
  36. package/dist/client/field-types.js.map +1 -0
  37. package/dist/client/index.d.ts +189 -0
  38. package/dist/client/index.d.ts.map +1 -0
  39. package/dist/client/index.js +668 -0
  40. package/dist/client/index.js.map +1 -0
  41. package/dist/client/queryBuilder.d.ts +765 -0
  42. package/dist/client/queryBuilder.d.ts.map +1 -0
  43. package/dist/client/queryBuilder.js +970 -0
  44. package/dist/client/queryBuilder.js.map +1 -0
  45. package/dist/client/schema/codegen.d.ts +128 -0
  46. package/dist/client/schema/codegen.d.ts.map +1 -0
  47. package/dist/client/schema/codegen.js +318 -0
  48. package/dist/client/schema/codegen.js.map +1 -0
  49. package/dist/client/schema/defineContentType.d.ts +221 -0
  50. package/dist/client/schema/defineContentType.d.ts.map +1 -0
  51. package/dist/client/schema/defineContentType.js +380 -0
  52. package/dist/client/schema/defineContentType.js.map +1 -0
  53. package/dist/client/schema/index.d.ts +85 -0
  54. package/dist/client/schema/index.d.ts.map +1 -0
  55. package/dist/client/schema/index.js +92 -0
  56. package/dist/client/schema/index.js.map +1 -0
  57. package/dist/client/schema/schemaDrift.d.ts +199 -0
  58. package/dist/client/schema/schemaDrift.d.ts.map +1 -0
  59. package/dist/client/schema/schemaDrift.js +340 -0
  60. package/dist/client/schema/schemaDrift.js.map +1 -0
  61. package/dist/client/schema/typedClient.d.ts +401 -0
  62. package/dist/client/schema/typedClient.d.ts.map +1 -0
  63. package/dist/client/schema/typedClient.js +269 -0
  64. package/dist/client/schema/typedClient.js.map +1 -0
  65. package/dist/client/schema/types.d.ts +477 -0
  66. package/dist/client/schema/types.d.ts.map +1 -0
  67. package/dist/client/schema/types.js +39 -0
  68. package/dist/client/schema/types.js.map +1 -0
  69. package/dist/client/types.d.ts +449 -0
  70. package/dist/client/types.d.ts.map +1 -0
  71. package/dist/client/types.js +149 -0
  72. package/dist/client/types.js.map +1 -0
  73. package/dist/client/workflows.d.ts +51 -0
  74. package/dist/client/workflows.d.ts.map +1 -0
  75. package/dist/client/workflows.js +103 -0
  76. package/dist/client/workflows.js.map +1 -0
  77. package/dist/client/wrapper.d.ts +2198 -0
  78. package/dist/client/wrapper.d.ts.map +1 -0
  79. package/dist/client/wrapper.js +2651 -0
  80. package/dist/client/wrapper.js.map +1 -0
  81. package/dist/component/_generated/api.d.ts +124 -0
  82. package/dist/component/_generated/api.d.ts.map +1 -0
  83. package/dist/component/_generated/api.js +31 -0
  84. package/dist/component/_generated/api.js.map +1 -0
  85. package/dist/component/_generated/component.d.ts +4321 -0
  86. package/dist/component/_generated/component.d.ts.map +1 -0
  87. package/dist/component/_generated/component.js +11 -0
  88. package/dist/component/_generated/component.js.map +1 -0
  89. package/dist/component/_generated/dataModel.d.ts +46 -0
  90. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  91. package/dist/component/_generated/dataModel.js +11 -0
  92. package/dist/component/_generated/dataModel.js.map +1 -0
  93. package/dist/component/_generated/server.d.ts +121 -0
  94. package/dist/component/_generated/server.d.ts.map +1 -0
  95. package/dist/component/_generated/server.js +78 -0
  96. package/dist/component/_generated/server.js.map +1 -0
  97. package/dist/component/auditLog.d.ts +410 -0
  98. package/dist/component/auditLog.d.ts.map +1 -0
  99. package/dist/component/auditLog.js +607 -0
  100. package/dist/component/auditLog.js.map +1 -0
  101. package/dist/component/authorization.d.ts +323 -0
  102. package/dist/component/authorization.d.ts.map +1 -0
  103. package/dist/component/authorization.js +464 -0
  104. package/dist/component/authorization.js.map +1 -0
  105. package/dist/component/authorizationHooks.d.ts +184 -0
  106. package/dist/component/authorizationHooks.d.ts.map +1 -0
  107. package/dist/component/authorizationHooks.js +521 -0
  108. package/dist/component/authorizationHooks.js.map +1 -0
  109. package/dist/component/bulkOperations.d.ts +200 -0
  110. package/dist/component/bulkOperations.d.ts.map +1 -0
  111. package/dist/component/bulkOperations.js +568 -0
  112. package/dist/component/bulkOperations.js.map +1 -0
  113. package/dist/component/contentEntries.d.ts +719 -0
  114. package/dist/component/contentEntries.d.ts.map +1 -0
  115. package/dist/component/contentEntries.js +1617 -0
  116. package/dist/component/contentEntries.js.map +1 -0
  117. package/dist/component/contentEntryMutations.d.ts +505 -0
  118. package/dist/component/contentEntryMutations.d.ts.map +1 -0
  119. package/dist/component/contentEntryMutations.js +1009 -0
  120. package/dist/component/contentEntryMutations.js.map +1 -0
  121. package/dist/component/contentEntryValidation.d.ts +115 -0
  122. package/dist/component/contentEntryValidation.d.ts.map +1 -0
  123. package/dist/component/contentEntryValidation.js +546 -0
  124. package/dist/component/contentEntryValidation.js.map +1 -0
  125. package/dist/component/contentLock.d.ts +328 -0
  126. package/dist/component/contentLock.d.ts.map +1 -0
  127. package/dist/component/contentLock.js +471 -0
  128. package/dist/component/contentLock.js.map +1 -0
  129. package/dist/component/contentTypeMigration.d.ts +411 -0
  130. package/dist/component/contentTypeMigration.d.ts.map +1 -0
  131. package/dist/component/contentTypeMigration.js +805 -0
  132. package/dist/component/contentTypeMigration.js.map +1 -0
  133. package/dist/component/contentTypeMutations.d.ts +975 -0
  134. package/dist/component/contentTypeMutations.d.ts.map +1 -0
  135. package/dist/component/contentTypeMutations.js +768 -0
  136. package/dist/component/contentTypeMutations.js.map +1 -0
  137. package/dist/component/contentTypes.d.ts +538 -0
  138. package/dist/component/contentTypes.d.ts.map +1 -0
  139. package/dist/component/contentTypes.js +304 -0
  140. package/dist/component/contentTypes.js.map +1 -0
  141. package/dist/component/convex.config.d.ts +42 -0
  142. package/dist/component/convex.config.d.ts.map +1 -0
  143. package/dist/component/convex.config.js +43 -0
  144. package/dist/component/convex.config.js.map +1 -0
  145. package/dist/component/documentTypes.d.ts +186 -0
  146. package/dist/component/documentTypes.d.ts.map +1 -0
  147. package/dist/component/documentTypes.js +23 -0
  148. package/dist/component/documentTypes.js.map +1 -0
  149. package/dist/component/eventEmitter.d.ts +281 -0
  150. package/dist/component/eventEmitter.d.ts.map +1 -0
  151. package/dist/component/eventEmitter.js +300 -0
  152. package/dist/component/eventEmitter.js.map +1 -0
  153. package/dist/component/exportImport.d.ts +1120 -0
  154. package/dist/component/exportImport.d.ts.map +1 -0
  155. package/dist/component/exportImport.js +931 -0
  156. package/dist/component/exportImport.js.map +1 -0
  157. package/dist/component/index.d.ts +28 -0
  158. package/dist/component/index.d.ts.map +1 -0
  159. package/dist/component/index.js +142 -0
  160. package/dist/component/index.js.map +1 -0
  161. package/dist/component/lib/deepReferenceResolver.d.ts +252 -0
  162. package/dist/component/lib/deepReferenceResolver.d.ts.map +1 -0
  163. package/dist/component/lib/deepReferenceResolver.js +601 -0
  164. package/dist/component/lib/deepReferenceResolver.js.map +1 -0
  165. package/dist/component/lib/errors.d.ts +306 -0
  166. package/dist/component/lib/errors.d.ts.map +1 -0
  167. package/dist/component/lib/errors.js +407 -0
  168. package/dist/component/lib/errors.js.map +1 -0
  169. package/dist/component/lib/index.d.ts +10 -0
  170. package/dist/component/lib/index.d.ts.map +1 -0
  171. package/dist/component/lib/index.js +33 -0
  172. package/dist/component/lib/index.js.map +1 -0
  173. package/dist/component/lib/mediaReferenceResolver.d.ts +217 -0
  174. package/dist/component/lib/mediaReferenceResolver.d.ts.map +1 -0
  175. package/dist/component/lib/mediaReferenceResolver.js +326 -0
  176. package/dist/component/lib/mediaReferenceResolver.js.map +1 -0
  177. package/dist/component/lib/metadataExtractor.d.ts +245 -0
  178. package/dist/component/lib/metadataExtractor.d.ts.map +1 -0
  179. package/dist/component/lib/metadataExtractor.js +548 -0
  180. package/dist/component/lib/metadataExtractor.js.map +1 -0
  181. package/dist/component/lib/mutationAuth.d.ts +95 -0
  182. package/dist/component/lib/mutationAuth.d.ts.map +1 -0
  183. package/dist/component/lib/mutationAuth.js +146 -0
  184. package/dist/component/lib/mutationAuth.js.map +1 -0
  185. package/dist/component/lib/queries.d.ts +17 -0
  186. package/dist/component/lib/queries.d.ts.map +1 -0
  187. package/dist/component/lib/queries.js +49 -0
  188. package/dist/component/lib/queries.js.map +1 -0
  189. package/dist/component/lib/ragContentChunker.d.ts +423 -0
  190. package/dist/component/lib/ragContentChunker.d.ts.map +1 -0
  191. package/dist/component/lib/ragContentChunker.js +897 -0
  192. package/dist/component/lib/ragContentChunker.js.map +1 -0
  193. package/dist/component/lib/referenceResolver.d.ts +175 -0
  194. package/dist/component/lib/referenceResolver.d.ts.map +1 -0
  195. package/dist/component/lib/referenceResolver.js +293 -0
  196. package/dist/component/lib/referenceResolver.js.map +1 -0
  197. package/dist/component/lib/slugGenerator.d.ts +71 -0
  198. package/dist/component/lib/slugGenerator.d.ts.map +1 -0
  199. package/dist/component/lib/slugGenerator.js +207 -0
  200. package/dist/component/lib/slugGenerator.js.map +1 -0
  201. package/dist/component/lib/slugUniqueness.d.ts +131 -0
  202. package/dist/component/lib/slugUniqueness.d.ts.map +1 -0
  203. package/dist/component/lib/slugUniqueness.js +229 -0
  204. package/dist/component/lib/slugUniqueness.js.map +1 -0
  205. package/dist/component/lib/softDelete.d.ts +18 -0
  206. package/dist/component/lib/softDelete.d.ts.map +1 -0
  207. package/dist/component/lib/softDelete.js +29 -0
  208. package/dist/component/lib/softDelete.js.map +1 -0
  209. package/dist/component/localeFallbackChain.d.ts +410 -0
  210. package/dist/component/localeFallbackChain.d.ts.map +1 -0
  211. package/dist/component/localeFallbackChain.js +467 -0
  212. package/dist/component/localeFallbackChain.js.map +1 -0
  213. package/dist/component/localeFields.d.ts +508 -0
  214. package/dist/component/localeFields.d.ts.map +1 -0
  215. package/dist/component/localeFields.js +592 -0
  216. package/dist/component/localeFields.js.map +1 -0
  217. package/dist/component/mediaAssetMutations.d.ts +235 -0
  218. package/dist/component/mediaAssetMutations.d.ts.map +1 -0
  219. package/dist/component/mediaAssetMutations.js +558 -0
  220. package/dist/component/mediaAssetMutations.js.map +1 -0
  221. package/dist/component/mediaAssets.d.ts +168 -0
  222. package/dist/component/mediaAssets.d.ts.map +1 -0
  223. package/dist/component/mediaAssets.js +618 -0
  224. package/dist/component/mediaAssets.js.map +1 -0
  225. package/dist/component/mediaFolderMutations.d.ts +642 -0
  226. package/dist/component/mediaFolderMutations.d.ts.map +1 -0
  227. package/dist/component/mediaFolderMutations.js +849 -0
  228. package/dist/component/mediaFolderMutations.js.map +1 -0
  229. package/dist/component/mediaUploadMutations.d.ts +136 -0
  230. package/dist/component/mediaUploadMutations.d.ts.map +1 -0
  231. package/dist/component/mediaUploadMutations.js +205 -0
  232. package/dist/component/mediaUploadMutations.js.map +1 -0
  233. package/dist/component/mediaVariantMutations.d.ts +468 -0
  234. package/dist/component/mediaVariantMutations.d.ts.map +1 -0
  235. package/dist/component/mediaVariantMutations.js +737 -0
  236. package/dist/component/mediaVariantMutations.js.map +1 -0
  237. package/dist/component/mediaVariants.d.ts +525 -0
  238. package/dist/component/mediaVariants.d.ts.map +1 -0
  239. package/dist/component/mediaVariants.js +661 -0
  240. package/dist/component/mediaVariants.js.map +1 -0
  241. package/dist/component/ragContentIndexer.d.ts +595 -0
  242. package/dist/component/ragContentIndexer.d.ts.map +1 -0
  243. package/dist/component/ragContentIndexer.js +794 -0
  244. package/dist/component/ragContentIndexer.js.map +1 -0
  245. package/dist/component/rateLimitHooks.d.ts +266 -0
  246. package/dist/component/rateLimitHooks.d.ts.map +1 -0
  247. package/dist/component/rateLimitHooks.js +412 -0
  248. package/dist/component/rateLimitHooks.js.map +1 -0
  249. package/dist/component/roles.d.ts +649 -0
  250. package/dist/component/roles.d.ts.map +1 -0
  251. package/dist/component/roles.js +884 -0
  252. package/dist/component/roles.js.map +1 -0
  253. package/dist/component/scheduledPublish.d.ts +182 -0
  254. package/dist/component/scheduledPublish.d.ts.map +1 -0
  255. package/dist/component/scheduledPublish.js +304 -0
  256. package/dist/component/scheduledPublish.js.map +1 -0
  257. package/dist/component/schema.d.ts +4114 -0
  258. package/dist/component/schema.d.ts.map +1 -0
  259. package/dist/component/schema.js +469 -0
  260. package/dist/component/schema.js.map +1 -0
  261. package/dist/component/taxonomies.d.ts +476 -0
  262. package/dist/component/taxonomies.d.ts.map +1 -0
  263. package/dist/component/taxonomies.js +785 -0
  264. package/dist/component/taxonomies.js.map +1 -0
  265. package/dist/component/taxonomyMutations.d.ts +206 -0
  266. package/dist/component/taxonomyMutations.d.ts.map +1 -0
  267. package/dist/component/taxonomyMutations.js +1001 -0
  268. package/dist/component/taxonomyMutations.js.map +1 -0
  269. package/dist/component/trash.d.ts +265 -0
  270. package/dist/component/trash.d.ts.map +1 -0
  271. package/dist/component/trash.js +621 -0
  272. package/dist/component/trash.js.map +1 -0
  273. package/dist/component/types.d.ts +4 -0
  274. package/dist/component/types.d.ts.map +1 -0
  275. package/dist/component/types.js +2 -0
  276. package/dist/component/types.js.map +1 -0
  277. package/dist/component/userContext.d.ts +508 -0
  278. package/dist/component/userContext.d.ts.map +1 -0
  279. package/dist/component/userContext.js +615 -0
  280. package/dist/component/userContext.js.map +1 -0
  281. package/dist/component/validation.d.ts +387 -0
  282. package/dist/component/validation.d.ts.map +1 -0
  283. package/dist/component/validation.js +1052 -0
  284. package/dist/component/validation.js.map +1 -0
  285. package/dist/component/validators.d.ts +4645 -0
  286. package/dist/component/validators.d.ts.map +1 -0
  287. package/dist/component/validators.js +641 -0
  288. package/dist/component/validators.js.map +1 -0
  289. package/dist/component/versionMutations.d.ts +216 -0
  290. package/dist/component/versionMutations.d.ts.map +1 -0
  291. package/dist/component/versionMutations.js +321 -0
  292. package/dist/component/versionMutations.js.map +1 -0
  293. package/dist/component/webhookTrigger.d.ts +770 -0
  294. package/dist/component/webhookTrigger.d.ts.map +1 -0
  295. package/dist/component/webhookTrigger.js +1413 -0
  296. package/dist/component/webhookTrigger.js.map +1 -0
  297. package/dist/react/index.d.ts +316 -0
  298. package/dist/react/index.d.ts.map +1 -0
  299. package/dist/react/index.js +558 -0
  300. package/dist/react/index.js.map +1 -0
  301. package/dist/test.d.ts +2230 -0
  302. package/dist/test.d.ts.map +1 -0
  303. package/dist/test.js +1107 -0
  304. package/dist/test.js.map +1 -0
  305. package/package.json +95 -0
  306. package/src/cli/commands/admin.ts +104 -0
  307. package/src/cli/index.ts +21 -0
  308. package/src/cli/utils/detectConvexUrl.ts +54 -0
  309. package/src/cli/utils/openBrowser.ts +16 -0
  310. package/src/client/admin-config.ts +138 -0
  311. package/src/client/adminApi.ts +942 -0
  312. package/src/client/agentTools.ts +1311 -0
  313. package/src/client/argTypes.ts +316 -0
  314. package/src/client/field-types.ts +187 -0
  315. package/src/client/index.ts +1301 -0
  316. package/src/client/queryBuilder.ts +1100 -0
  317. package/src/client/schema/codegen.ts +500 -0
  318. package/src/client/schema/defineContentType.ts +501 -0
  319. package/src/client/schema/index.ts +169 -0
  320. package/src/client/schema/schemaDrift.ts +574 -0
  321. package/src/client/schema/typedClient.ts +688 -0
  322. package/src/client/schema/types.ts +666 -0
  323. package/src/client/types.ts +723 -0
  324. package/src/client/workflows.ts +141 -0
  325. package/src/client/wrapper.ts +4304 -0
  326. package/src/component/_generated/api.ts +140 -0
  327. package/src/component/_generated/component.ts +5029 -0
  328. package/src/component/_generated/dataModel.ts +60 -0
  329. package/src/component/_generated/server.ts +156 -0
  330. package/src/component/authorization.ts +647 -0
  331. package/src/component/authorizationHooks.ts +668 -0
  332. package/src/component/bulkOperations.ts +687 -0
  333. package/src/component/contentEntries.ts +1976 -0
  334. package/src/component/contentEntryMutations.ts +1223 -0
  335. package/src/component/contentEntryValidation.ts +707 -0
  336. package/src/component/contentLock.ts +550 -0
  337. package/src/component/contentTypeMigration.ts +1064 -0
  338. package/src/component/contentTypeMutations.ts +969 -0
  339. package/src/component/contentTypes.ts +346 -0
  340. package/src/component/convex.config.ts +44 -0
  341. package/src/component/documentTypes.ts +240 -0
  342. package/src/component/eventEmitter.ts +485 -0
  343. package/src/component/exportImport.ts +1169 -0
  344. package/src/component/index.ts +491 -0
  345. package/src/component/lib/deepReferenceResolver.ts +999 -0
  346. package/src/component/lib/errors.ts +816 -0
  347. package/src/component/lib/index.ts +145 -0
  348. package/src/component/lib/mediaReferenceResolver.ts +495 -0
  349. package/src/component/lib/metadataExtractor.ts +792 -0
  350. package/src/component/lib/mutationAuth.ts +199 -0
  351. package/src/component/lib/queries.ts +79 -0
  352. package/src/component/lib/ragContentChunker.ts +1371 -0
  353. package/src/component/lib/referenceResolver.ts +430 -0
  354. package/src/component/lib/slugGenerator.ts +262 -0
  355. package/src/component/lib/slugUniqueness.ts +333 -0
  356. package/src/component/lib/softDelete.ts +44 -0
  357. package/src/component/localeFallbackChain.ts +673 -0
  358. package/src/component/localeFields.ts +896 -0
  359. package/src/component/mediaAssetMutations.ts +725 -0
  360. package/src/component/mediaAssets.ts +932 -0
  361. package/src/component/mediaFolderMutations.ts +1046 -0
  362. package/src/component/mediaUploadMutations.ts +224 -0
  363. package/src/component/mediaVariantMutations.ts +900 -0
  364. package/src/component/mediaVariants.ts +793 -0
  365. package/src/component/ragContentIndexer.ts +1067 -0
  366. package/src/component/rateLimitHooks.ts +572 -0
  367. package/src/component/roles.ts +1360 -0
  368. package/src/component/scheduledPublish.ts +358 -0
  369. package/src/component/schema.ts +617 -0
  370. package/src/component/taxonomies.ts +949 -0
  371. package/src/component/taxonomyMutations.ts +1210 -0
  372. package/src/component/trash.ts +724 -0
  373. package/src/component/userContext.ts +898 -0
  374. package/src/component/validation.ts +1388 -0
  375. package/src/component/validators.ts +949 -0
  376. package/src/component/versionMutations.ts +392 -0
  377. package/src/component/webhookTrigger.ts +1922 -0
  378. package/src/react/index.ts +898 -0
  379. package/src/test.ts +1580 -0
package/dist/test.d.ts ADDED
@@ -0,0 +1,2230 @@
1
+ /**
2
+ * Test helpers for the Convex CMS component.
3
+ *
4
+ * This module provides utilities for testing applications that use the Convex CMS component:
5
+ * - Component registration helpers for convex-test
6
+ * - Mock data factories for content types, entries, and media assets
7
+ * - Assertion utilities for validating CMS-specific structures
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { convexTest } from "convex-test";
12
+ * import { describe, it, expect } from "vitest";
13
+ * import {
14
+ * register,
15
+ * contentTypeFactory,
16
+ * contentEntryFactory,
17
+ * assertContentType,
18
+ * } from "@convex-cms/core/test";
19
+ * import schema from "./schema";
20
+ *
21
+ * const modules = import.meta.glob("./**\/*.ts");
22
+ *
23
+ * describe("my CMS tests", () => {
24
+ * it("creates content types correctly", async () => {
25
+ * const t = convexTest(schema, modules);
26
+ * register(t, "convexCms");
27
+ *
28
+ * // Create test data using factories
29
+ * const blogPostType = contentTypeFactory.blogPost();
30
+ *
31
+ * // Insert into test database
32
+ * const typeId = await t.run(async (ctx) => {
33
+ * return await ctx.db.insert("contentTypes", blogPostType);
34
+ * });
35
+ *
36
+ * // Assert the structure is correct
37
+ * const result = await t.run(async (ctx) => {
38
+ * return await ctx.db.get(typeId);
39
+ * });
40
+ * assertContentType(result);
41
+ * });
42
+ * });
43
+ * ```
44
+ *
45
+ * @module
46
+ */
47
+ import type { TestConvex } from "convex-test";
48
+ import type { GenericSchema, SchemaDefinition } from "convex/server";
49
+ import type { GenericId } from "convex/values";
50
+ import schema from "./component/schema.js";
51
+ import type { FieldType, ContentStatus } from "./component/validators.js";
52
+ type Id<TableName extends string> = GenericId<TableName>;
53
+ declare const modules: Record<string, () => Promise<unknown>>;
54
+ /**
55
+ * Simplified field definition for test factories.
56
+ * This is a flattened interface that covers all field types for convenience.
57
+ * When used in ContentTypeData, it must be cast to the schema's discriminated union type.
58
+ */
59
+ export interface TestFieldDefinition {
60
+ name: string;
61
+ label: string;
62
+ type: FieldType;
63
+ required: boolean;
64
+ searchable?: boolean;
65
+ localized?: boolean;
66
+ description?: string;
67
+ defaultValue?: unknown;
68
+ options?: FieldOptions;
69
+ }
70
+ /**
71
+ * Field-specific options.
72
+ */
73
+ export interface FieldOptions {
74
+ minLength?: number;
75
+ maxLength?: number;
76
+ pattern?: string;
77
+ min?: number;
78
+ max?: number;
79
+ step?: number;
80
+ precision?: number;
81
+ allowedContentTypes?: string[];
82
+ multiple?: boolean;
83
+ minItems?: number;
84
+ allowedMimeTypes?: string[];
85
+ maxFileSize?: number;
86
+ options?: {
87
+ value: string;
88
+ label: string;
89
+ }[];
90
+ allowedBlocks?: string[];
91
+ allowedMarks?: string[];
92
+ }
93
+ /**
94
+ * These types represent the data you INSERT into the database,
95
+ * derived from internal document types by omitting system fields.
96
+ * This ensures test factories stay in sync with schema definitions.
97
+ */
98
+ import type { ContentTypeInternal, ContentEntryInternal, MediaAssetInternal, MediaFolderInternal } from "./component/documentTypes.js";
99
+ /**
100
+ * Content type data structure (without system fields).
101
+ * For testing, some fields that are required at runtime have defaults.
102
+ * Uses the simplified TestFieldDefinition for convenience in test factories.
103
+ */
104
+ export type ContentTypeData = Omit<ContentTypeInternal, "_id" | "_creationTime" | "fields" | "createdBy"> & {
105
+ createdBy?: string;
106
+ fields: TestFieldDefinition[];
107
+ };
108
+ /**
109
+ * Content entry data structure (without system fields).
110
+ * Derived from ContentEntryInternal for type safety.
111
+ */
112
+ export type ContentEntryData = Omit<ContentEntryInternal, "_id" | "_creationTime">;
113
+ /**
114
+ * Media asset data structure (without system fields).
115
+ * Uses 'name' for filename (matching unified schema).
116
+ */
117
+ export type MediaAssetData = Omit<MediaAssetInternal, "_id" | "_creationTime">;
118
+ /**
119
+ * Media folder data structure (without system fields).
120
+ * Derived from MediaFolderInternal for type safety.
121
+ */
122
+ export type MediaFolderData = Omit<MediaFolderInternal, "_id" | "_creationTime">;
123
+ /**
124
+ * Register the Convex CMS component with a convex-test instance.
125
+ *
126
+ * @param t - The test convex instance from calling `convexTest()`
127
+ * @param name - The name of the component as registered in convex.config.ts
128
+ * Defaults to "convexCms"
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * import { convexTest } from "convex-test";
133
+ * import { register } from "@convex-cms/core/test";
134
+ * import schema from "./schema";
135
+ *
136
+ * const modules = import.meta.glob("./**\/*.ts");
137
+ *
138
+ * test("my test", async () => {
139
+ * const t = convexTest(schema, modules);
140
+ * register(t, "convexCms");
141
+ * // Your tests here
142
+ * });
143
+ * ```
144
+ */
145
+ export declare function register(t: TestConvex<SchemaDefinition<GenericSchema, boolean>>, name?: string): void;
146
+ /**
147
+ * Factory functions for creating common field definitions.
148
+ * These produce valid field structures for use in content type definitions.
149
+ */
150
+ export declare const fieldFactory: {
151
+ /**
152
+ * Create a text field definition.
153
+ */
154
+ text(name: string, label: string, options?: {
155
+ required?: boolean;
156
+ searchable?: boolean;
157
+ localized?: boolean;
158
+ description?: string;
159
+ defaultValue?: string;
160
+ minLength?: number;
161
+ maxLength?: number;
162
+ pattern?: string;
163
+ }): TestFieldDefinition;
164
+ /**
165
+ * Create a rich text field definition.
166
+ */
167
+ richText(name: string, label: string, options?: {
168
+ required?: boolean;
169
+ searchable?: boolean;
170
+ localized?: boolean;
171
+ description?: string;
172
+ allowedBlocks?: string[];
173
+ allowedMarks?: string[];
174
+ }): TestFieldDefinition;
175
+ /**
176
+ * Create a number field definition.
177
+ */
178
+ number(name: string, label: string, options?: {
179
+ required?: boolean;
180
+ description?: string;
181
+ defaultValue?: number;
182
+ min?: number;
183
+ max?: number;
184
+ step?: number;
185
+ precision?: number;
186
+ }): TestFieldDefinition;
187
+ /**
188
+ * Create a boolean field definition.
189
+ */
190
+ boolean(name: string, label: string, options?: {
191
+ required?: boolean;
192
+ description?: string;
193
+ defaultValue?: boolean;
194
+ }): TestFieldDefinition;
195
+ /**
196
+ * Create a date field definition.
197
+ */
198
+ date(name: string, label: string, options?: {
199
+ required?: boolean;
200
+ description?: string;
201
+ }): TestFieldDefinition;
202
+ /**
203
+ * Create a datetime field definition.
204
+ */
205
+ datetime(name: string, label: string, options?: {
206
+ required?: boolean;
207
+ description?: string;
208
+ }): TestFieldDefinition;
209
+ /**
210
+ * Create a reference field definition.
211
+ */
212
+ reference(name: string, label: string, options?: {
213
+ required?: boolean;
214
+ description?: string;
215
+ allowedContentTypes?: string[];
216
+ multiple?: boolean;
217
+ minItems?: number;
218
+ }): TestFieldDefinition;
219
+ /**
220
+ * Create a media field definition.
221
+ */
222
+ media(name: string, label: string, options?: {
223
+ required?: boolean;
224
+ description?: string;
225
+ allowedMimeTypes?: string[];
226
+ maxFileSize?: number;
227
+ multiple?: boolean;
228
+ }): TestFieldDefinition;
229
+ /**
230
+ * Create a JSON field definition.
231
+ */
232
+ json(name: string, label: string, options?: {
233
+ required?: boolean;
234
+ description?: string;
235
+ defaultValue?: unknown;
236
+ }): TestFieldDefinition;
237
+ /**
238
+ * Create a select field definition.
239
+ */
240
+ select(name: string, label: string, selectOptions: {
241
+ value: string;
242
+ label: string;
243
+ }[], options?: {
244
+ required?: boolean;
245
+ description?: string;
246
+ defaultValue?: string;
247
+ }): TestFieldDefinition;
248
+ /**
249
+ * Create a multi-select field definition.
250
+ */
251
+ multiSelect(name: string, label: string, selectOptions: {
252
+ value: string;
253
+ label: string;
254
+ }[], options?: {
255
+ required?: boolean;
256
+ description?: string;
257
+ defaultValue?: string[];
258
+ }): TestFieldDefinition;
259
+ };
260
+ /**
261
+ * Factory functions for creating test content type data.
262
+ * All factories return data suitable for inserting into the contentTypes table.
263
+ */
264
+ export declare const contentTypeFactory: {
265
+ /**
266
+ * Create a minimal valid content type.
267
+ */
268
+ minimal(name?: string): ContentTypeData;
269
+ /**
270
+ * Create a blog post content type with common fields.
271
+ */
272
+ blogPost(overrides?: Partial<ContentTypeData>): ContentTypeData;
273
+ /**
274
+ * Create a product content type for e-commerce testing.
275
+ */
276
+ product(overrides?: Partial<ContentTypeData>): ContentTypeData;
277
+ /**
278
+ * Create an author content type.
279
+ */
280
+ author(overrides?: Partial<ContentTypeData>): ContentTypeData;
281
+ /**
282
+ * Create a category content type.
283
+ */
284
+ category(overrides?: Partial<ContentTypeData>): ContentTypeData;
285
+ /**
286
+ * Create a page content type (singleton-compatible).
287
+ */
288
+ page(overrides?: Partial<ContentTypeData>): ContentTypeData;
289
+ /**
290
+ * Create a singleton content type (e.g., for site settings).
291
+ */
292
+ siteSettings(overrides?: Partial<ContentTypeData>): ContentTypeData;
293
+ /**
294
+ * Create a content type with all supported field types.
295
+ * Useful for comprehensive testing.
296
+ */
297
+ allFieldTypes(overrides?: Partial<ContentTypeData>): ContentTypeData;
298
+ /**
299
+ * Create a custom content type with specified fields.
300
+ */
301
+ custom(name: string, displayName: string, fields: TestFieldDefinition[], overrides?: Partial<ContentTypeData>): ContentTypeData;
302
+ };
303
+ /**
304
+ * Factory functions for creating test content entry data.
305
+ * All factories return data suitable for inserting into the contentEntries table.
306
+ *
307
+ * Note: You'll need to provide a valid contentTypeId when inserting into the database.
308
+ */
309
+ export declare const contentEntryFactory: {
310
+ /**
311
+ * Reset the internal counter used for generating unique slugs.
312
+ * Call this in beforeEach() if you need predictable slug values.
313
+ */
314
+ resetCounter(): void;
315
+ /**
316
+ * Create a minimal valid content entry.
317
+ */
318
+ minimal(contentTypeId: Id<"contentTypes">, overrides?: Partial<ContentEntryData>): ContentEntryData;
319
+ /**
320
+ * Create a draft content entry.
321
+ */
322
+ draft(contentTypeId: Id<"contentTypes">, data: Record<string, unknown>, overrides?: Partial<ContentEntryData>): ContentEntryData;
323
+ /**
324
+ * Create a published content entry.
325
+ */
326
+ published(contentTypeId: Id<"contentTypes">, data: Record<string, unknown>, overrides?: Partial<ContentEntryData>): ContentEntryData;
327
+ /**
328
+ * Create an archived content entry.
329
+ */
330
+ archived(contentTypeId: Id<"contentTypes">, data: Record<string, unknown>, overrides?: Partial<ContentEntryData>): ContentEntryData;
331
+ /**
332
+ * Create a scheduled content entry.
333
+ */
334
+ scheduled(contentTypeId: Id<"contentTypes">, data: Record<string, unknown>, scheduledPublishAt: number, overrides?: Partial<ContentEntryData>): ContentEntryData;
335
+ /**
336
+ * Create a soft-deleted content entry.
337
+ */
338
+ deleted(contentTypeId: Id<"contentTypes">, data: Record<string, unknown>, overrides?: Partial<ContentEntryData>): ContentEntryData;
339
+ /**
340
+ * Create a localized content entry variant.
341
+ */
342
+ localized(contentTypeId: Id<"contentTypes">, primaryEntryId: Id<"contentEntries">, locale: string, data: Record<string, unknown>, overrides?: Partial<ContentEntryData>): ContentEntryData;
343
+ /**
344
+ * Create a blog post entry with typical data.
345
+ */
346
+ blogPost(contentTypeId: Id<"contentTypes">, overrides?: Partial<ContentEntryData>): ContentEntryData;
347
+ /**
348
+ * Create a product entry with typical data.
349
+ */
350
+ product(contentTypeId: Id<"contentTypes">, overrides?: Partial<ContentEntryData>): ContentEntryData;
351
+ /**
352
+ * Create multiple entries at once.
353
+ */
354
+ batch(contentTypeId: Id<"contentTypes">, count: number, factory?: (contentTypeId: Id<"contentTypes">, index: number) => Partial<ContentEntryData>): ContentEntryData[];
355
+ };
356
+ /**
357
+ * Factory functions for creating test media asset data.
358
+ * All factories return data suitable for inserting into the mediaAssets table.
359
+ *
360
+ * Note: You'll need to provide a valid storageId when inserting into the database.
361
+ */
362
+ export declare const mediaAssetFactory: {
363
+ /**
364
+ * Reset the internal counter used for generating unique filenames.
365
+ */
366
+ resetCounter(): void;
367
+ /**
368
+ * Create a minimal valid media asset.
369
+ */
370
+ minimal(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
371
+ /**
372
+ * Create an image asset.
373
+ */
374
+ image(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
375
+ /**
376
+ * Create a PNG image asset.
377
+ */
378
+ png(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
379
+ /**
380
+ * Create a video asset.
381
+ */
382
+ video(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
383
+ /**
384
+ * Create an audio asset.
385
+ */
386
+ audio(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
387
+ /**
388
+ * Create a document asset (PDF).
389
+ */
390
+ document(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
391
+ /**
392
+ * Create a soft-deleted media asset.
393
+ */
394
+ deleted(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
395
+ /**
396
+ * Create multiple assets at once.
397
+ */
398
+ batch(storageIds: Id<"_storage">[], factory?: (storageId: Id<"_storage">, index: number) => Partial<MediaAssetData>): MediaAssetData[];
399
+ };
400
+ /**
401
+ * Factory functions for creating test media folder data.
402
+ */
403
+ export declare const mediaFolderFactory: {
404
+ /**
405
+ * Reset the internal counter used for generating unique folder names.
406
+ */
407
+ resetCounter(): void;
408
+ /**
409
+ * Create a root-level folder.
410
+ */
411
+ root(name: string, overrides?: Partial<MediaFolderData>): MediaFolderData;
412
+ /**
413
+ * Create a child folder.
414
+ */
415
+ child(name: string, parentId: Id<"mediaItems">, parentPath: string, overrides?: Partial<MediaFolderData>): MediaFolderData;
416
+ /**
417
+ * Create a common folder structure for testing.
418
+ */
419
+ common(): {
420
+ images: MediaFolderData;
421
+ videos: MediaFolderData;
422
+ documents: MediaFolderData;
423
+ };
424
+ };
425
+ /**
426
+ * Assert that a value is a valid content type document.
427
+ * Throws an error if the assertion fails.
428
+ */
429
+ export declare function assertContentType(value: unknown, message?: string): asserts value is ContentTypeData & {
430
+ _id: string;
431
+ _creationTime: number;
432
+ };
433
+ /**
434
+ * Assert that a value is a valid content entry document.
435
+ * Throws an error if the assertion fails.
436
+ */
437
+ export declare function assertContentEntry(value: unknown, message?: string): asserts value is ContentEntryData & {
438
+ _id: string;
439
+ _creationTime: number;
440
+ };
441
+ /**
442
+ * Assert that a value is a valid media asset document.
443
+ * Throws an error if the assertion fails.
444
+ */
445
+ export declare function assertMediaAsset(value: unknown, message?: string): asserts value is MediaAssetData & {
446
+ _id: string;
447
+ _creationTime: number;
448
+ };
449
+ /**
450
+ * Assert that a content entry has a specific status.
451
+ */
452
+ export declare function assertStatus(entry: {
453
+ status: string;
454
+ }, expectedStatus: ContentStatus, message?: string): void;
455
+ /**
456
+ * Assert that a content entry is published.
457
+ */
458
+ export declare function assertPublished(entry: {
459
+ status: string;
460
+ lastPublishedAt?: number;
461
+ }, message?: string): void;
462
+ /**
463
+ * Assert that a document is soft-deleted.
464
+ */
465
+ export declare function assertDeleted(doc: {
466
+ deletedAt?: number;
467
+ }, message?: string): void;
468
+ /**
469
+ * Assert that a document is not soft-deleted.
470
+ */
471
+ export declare function assertNotDeleted(doc: {
472
+ deletedAt?: number;
473
+ }, message?: string): void;
474
+ /**
475
+ * Assert that a field definition has expected properties.
476
+ */
477
+ export declare function assertField(fields: TestFieldDefinition[], fieldName: string, expectations: Partial<TestFieldDefinition>, message?: string): void;
478
+ /**
479
+ * Generate a unique slug for testing.
480
+ */
481
+ export declare function uniqueSlug(prefix?: string): string;
482
+ /**
483
+ * Generate a unique name for testing.
484
+ */
485
+ export declare function uniqueName(prefix?: string): string;
486
+ /**
487
+ * Create a timestamp in the past.
488
+ */
489
+ export declare function pastTimestamp(daysAgo: number): number;
490
+ /**
491
+ * Create a timestamp in the future.
492
+ */
493
+ export declare function futureTimestamp(daysFromNow: number): number;
494
+ /**
495
+ * Export schema and modules for advanced testing scenarios.
496
+ */
497
+ export { schema, modules };
498
+ /**
499
+ * Re-export type constants for convenience.
500
+ */
501
+ export { fieldTypes, contentStatuses, mediaTypes, variantTypes, variantStatuses, variantFormats, } from "./component/schema.js";
502
+ /**
503
+ * Default export for convenient importing.
504
+ */
505
+ declare const _default: {
506
+ register: typeof register;
507
+ schema: SchemaDefinition<{
508
+ contentTypes: import("convex/server").TableDefinition<import("convex/values").VObject<{
509
+ description?: string | undefined;
510
+ deletedAt?: number | undefined;
511
+ updatedBy?: string | undefined;
512
+ sortOrder?: number | undefined;
513
+ icon?: string | undefined;
514
+ singleton?: boolean | undefined;
515
+ slugField?: string | undefined;
516
+ titleField?: string | undefined;
517
+ fields: ({
518
+ options?: {
519
+ minLength?: number | undefined;
520
+ maxLength?: number | undefined;
521
+ pattern?: string | undefined;
522
+ } | undefined;
523
+ searchable?: boolean | undefined;
524
+ localized?: boolean | undefined;
525
+ description?: string | undefined;
526
+ defaultValue?: any;
527
+ required: boolean;
528
+ type: "text";
529
+ name: string;
530
+ label: string;
531
+ } | {
532
+ options?: {
533
+ min?: number | undefined;
534
+ max?: number | undefined;
535
+ step?: number | undefined;
536
+ precision?: number | undefined;
537
+ } | undefined;
538
+ searchable?: boolean | undefined;
539
+ localized?: boolean | undefined;
540
+ description?: string | undefined;
541
+ defaultValue?: any;
542
+ required: boolean;
543
+ type: "number";
544
+ name: string;
545
+ label: string;
546
+ } | {
547
+ options?: {
548
+ trueLabel?: string | undefined;
549
+ falseLabel?: string | undefined;
550
+ } | undefined;
551
+ searchable?: boolean | undefined;
552
+ localized?: boolean | undefined;
553
+ description?: string | undefined;
554
+ defaultValue?: any;
555
+ required: boolean;
556
+ type: "boolean";
557
+ name: string;
558
+ label: string;
559
+ } | {
560
+ options?: {
561
+ allowedBlocks?: string[] | undefined;
562
+ allowedMarks?: string[] | undefined;
563
+ } | undefined;
564
+ searchable?: boolean | undefined;
565
+ localized?: boolean | undefined;
566
+ description?: string | undefined;
567
+ defaultValue?: any;
568
+ required: boolean;
569
+ type: "richText";
570
+ name: string;
571
+ label: string;
572
+ } | {
573
+ options?: {
574
+ mediaType?: "image" | "video" | "audio" | "document" | "other" | undefined;
575
+ allowedMimeTypes?: string[] | undefined;
576
+ maxFileSize?: number | undefined;
577
+ multiple?: boolean | undefined;
578
+ } | undefined;
579
+ searchable?: boolean | undefined;
580
+ localized?: boolean | undefined;
581
+ description?: string | undefined;
582
+ defaultValue?: any;
583
+ required: boolean;
584
+ type: "media";
585
+ name: string;
586
+ label: string;
587
+ } | {
588
+ options?: {
589
+ options?: {
590
+ label: string;
591
+ value: string;
592
+ }[] | undefined;
593
+ } | undefined;
594
+ searchable?: boolean | undefined;
595
+ localized?: boolean | undefined;
596
+ description?: string | undefined;
597
+ defaultValue?: any;
598
+ required: boolean;
599
+ type: "select";
600
+ name: string;
601
+ label: string;
602
+ } | {
603
+ options?: {
604
+ taxonomyId?: GenericId<"taxonomies"> | undefined;
605
+ allowCreate?: boolean | undefined;
606
+ maxTags?: number | undefined;
607
+ minTags?: number | undefined;
608
+ } | undefined;
609
+ searchable?: boolean | undefined;
610
+ localized?: boolean | undefined;
611
+ description?: string | undefined;
612
+ defaultValue?: any;
613
+ required: boolean;
614
+ type: "tags";
615
+ name: string;
616
+ label: string;
617
+ } | {
618
+ options?: {
619
+ allowMultiple?: boolean | undefined;
620
+ } | undefined;
621
+ searchable?: boolean | undefined;
622
+ localized?: boolean | undefined;
623
+ description?: string | undefined;
624
+ defaultValue?: any;
625
+ required: boolean;
626
+ type: "category";
627
+ name: string;
628
+ label: string;
629
+ } | {
630
+ options?: {
631
+ schema?: any;
632
+ } | undefined;
633
+ searchable?: boolean | undefined;
634
+ localized?: boolean | undefined;
635
+ description?: string | undefined;
636
+ defaultValue?: any;
637
+ required: boolean;
638
+ type: "json";
639
+ name: string;
640
+ label: string;
641
+ } | {
642
+ options?: {
643
+ multiple?: boolean | undefined;
644
+ allowedContentTypes?: string[] | undefined;
645
+ minItems?: number | undefined;
646
+ } | undefined;
647
+ searchable?: boolean | undefined;
648
+ localized?: boolean | undefined;
649
+ description?: string | undefined;
650
+ defaultValue?: any;
651
+ required: boolean;
652
+ type: "reference";
653
+ name: string;
654
+ label: string;
655
+ } | {
656
+ options?: {
657
+ options?: {
658
+ label: string;
659
+ value: string;
660
+ }[] | undefined;
661
+ } | undefined;
662
+ searchable?: boolean | undefined;
663
+ localized?: boolean | undefined;
664
+ description?: string | undefined;
665
+ defaultValue?: any;
666
+ required: boolean;
667
+ type: "multiSelect";
668
+ name: string;
669
+ label: string;
670
+ } | {
671
+ options?: {
672
+ min?: number | undefined;
673
+ max?: number | undefined;
674
+ } | undefined;
675
+ searchable?: boolean | undefined;
676
+ localized?: boolean | undefined;
677
+ description?: string | undefined;
678
+ defaultValue?: any;
679
+ required: boolean;
680
+ type: "date";
681
+ name: string;
682
+ label: string;
683
+ } | {
684
+ options?: {
685
+ min?: number | undefined;
686
+ max?: number | undefined;
687
+ } | undefined;
688
+ searchable?: boolean | undefined;
689
+ localized?: boolean | undefined;
690
+ description?: string | undefined;
691
+ defaultValue?: any;
692
+ required: boolean;
693
+ type: "datetime";
694
+ name: string;
695
+ label: string;
696
+ })[];
697
+ name: string;
698
+ createdBy: string;
699
+ displayName: string;
700
+ isActive: boolean;
701
+ }, {
702
+ name: import("convex/values").VString<string, "required">;
703
+ displayName: import("convex/values").VString<string, "required">;
704
+ createdBy: import("convex/values").VString<string, "required">;
705
+ description: import("convex/values").VString<string | undefined, "optional">;
706
+ fields: import("convex/values").VArray<({
707
+ options?: {
708
+ minLength?: number | undefined;
709
+ maxLength?: number | undefined;
710
+ pattern?: string | undefined;
711
+ } | undefined;
712
+ searchable?: boolean | undefined;
713
+ localized?: boolean | undefined;
714
+ description?: string | undefined;
715
+ defaultValue?: any;
716
+ required: boolean;
717
+ type: "text";
718
+ name: string;
719
+ label: string;
720
+ } | {
721
+ options?: {
722
+ min?: number | undefined;
723
+ max?: number | undefined;
724
+ step?: number | undefined;
725
+ precision?: number | undefined;
726
+ } | undefined;
727
+ searchable?: boolean | undefined;
728
+ localized?: boolean | undefined;
729
+ description?: string | undefined;
730
+ defaultValue?: any;
731
+ required: boolean;
732
+ type: "number";
733
+ name: string;
734
+ label: string;
735
+ } | {
736
+ options?: {
737
+ trueLabel?: string | undefined;
738
+ falseLabel?: string | undefined;
739
+ } | undefined;
740
+ searchable?: boolean | undefined;
741
+ localized?: boolean | undefined;
742
+ description?: string | undefined;
743
+ defaultValue?: any;
744
+ required: boolean;
745
+ type: "boolean";
746
+ name: string;
747
+ label: string;
748
+ } | {
749
+ options?: {
750
+ allowedBlocks?: string[] | undefined;
751
+ allowedMarks?: string[] | undefined;
752
+ } | undefined;
753
+ searchable?: boolean | undefined;
754
+ localized?: boolean | undefined;
755
+ description?: string | undefined;
756
+ defaultValue?: any;
757
+ required: boolean;
758
+ type: "richText";
759
+ name: string;
760
+ label: string;
761
+ } | {
762
+ options?: {
763
+ mediaType?: "image" | "video" | "audio" | "document" | "other" | undefined;
764
+ allowedMimeTypes?: string[] | undefined;
765
+ maxFileSize?: number | undefined;
766
+ multiple?: boolean | undefined;
767
+ } | undefined;
768
+ searchable?: boolean | undefined;
769
+ localized?: boolean | undefined;
770
+ description?: string | undefined;
771
+ defaultValue?: any;
772
+ required: boolean;
773
+ type: "media";
774
+ name: string;
775
+ label: string;
776
+ } | {
777
+ options?: {
778
+ options?: {
779
+ label: string;
780
+ value: string;
781
+ }[] | undefined;
782
+ } | undefined;
783
+ searchable?: boolean | undefined;
784
+ localized?: boolean | undefined;
785
+ description?: string | undefined;
786
+ defaultValue?: any;
787
+ required: boolean;
788
+ type: "select";
789
+ name: string;
790
+ label: string;
791
+ } | {
792
+ options?: {
793
+ taxonomyId?: GenericId<"taxonomies"> | undefined;
794
+ allowCreate?: boolean | undefined;
795
+ maxTags?: number | undefined;
796
+ minTags?: number | undefined;
797
+ } | undefined;
798
+ searchable?: boolean | undefined;
799
+ localized?: boolean | undefined;
800
+ description?: string | undefined;
801
+ defaultValue?: any;
802
+ required: boolean;
803
+ type: "tags";
804
+ name: string;
805
+ label: string;
806
+ } | {
807
+ options?: {
808
+ allowMultiple?: boolean | undefined;
809
+ } | undefined;
810
+ searchable?: boolean | undefined;
811
+ localized?: boolean | undefined;
812
+ description?: string | undefined;
813
+ defaultValue?: any;
814
+ required: boolean;
815
+ type: "category";
816
+ name: string;
817
+ label: string;
818
+ } | {
819
+ options?: {
820
+ schema?: any;
821
+ } | undefined;
822
+ searchable?: boolean | undefined;
823
+ localized?: boolean | undefined;
824
+ description?: string | undefined;
825
+ defaultValue?: any;
826
+ required: boolean;
827
+ type: "json";
828
+ name: string;
829
+ label: string;
830
+ } | {
831
+ options?: {
832
+ multiple?: boolean | undefined;
833
+ allowedContentTypes?: string[] | undefined;
834
+ minItems?: number | undefined;
835
+ } | undefined;
836
+ searchable?: boolean | undefined;
837
+ localized?: boolean | undefined;
838
+ description?: string | undefined;
839
+ defaultValue?: any;
840
+ required: boolean;
841
+ type: "reference";
842
+ name: string;
843
+ label: string;
844
+ } | {
845
+ options?: {
846
+ options?: {
847
+ label: string;
848
+ value: string;
849
+ }[] | undefined;
850
+ } | undefined;
851
+ searchable?: boolean | undefined;
852
+ localized?: boolean | undefined;
853
+ description?: string | undefined;
854
+ defaultValue?: any;
855
+ required: boolean;
856
+ type: "multiSelect";
857
+ name: string;
858
+ label: string;
859
+ } | {
860
+ options?: {
861
+ min?: number | undefined;
862
+ max?: number | undefined;
863
+ } | undefined;
864
+ searchable?: boolean | undefined;
865
+ localized?: boolean | undefined;
866
+ description?: string | undefined;
867
+ defaultValue?: any;
868
+ required: boolean;
869
+ type: "date";
870
+ name: string;
871
+ label: string;
872
+ } | {
873
+ options?: {
874
+ min?: number | undefined;
875
+ max?: number | undefined;
876
+ } | undefined;
877
+ searchable?: boolean | undefined;
878
+ localized?: boolean | undefined;
879
+ description?: string | undefined;
880
+ defaultValue?: any;
881
+ required: boolean;
882
+ type: "datetime";
883
+ name: string;
884
+ label: string;
885
+ })[], import("convex/values").VUnion<{
886
+ options?: {
887
+ minLength?: number | undefined;
888
+ maxLength?: number | undefined;
889
+ pattern?: string | undefined;
890
+ } | undefined;
891
+ searchable?: boolean | undefined;
892
+ localized?: boolean | undefined;
893
+ description?: string | undefined;
894
+ defaultValue?: any;
895
+ required: boolean;
896
+ type: "text";
897
+ name: string;
898
+ label: string;
899
+ } | {
900
+ options?: {
901
+ min?: number | undefined;
902
+ max?: number | undefined;
903
+ step?: number | undefined;
904
+ precision?: number | undefined;
905
+ } | undefined;
906
+ searchable?: boolean | undefined;
907
+ localized?: boolean | undefined;
908
+ description?: string | undefined;
909
+ defaultValue?: any;
910
+ required: boolean;
911
+ type: "number";
912
+ name: string;
913
+ label: string;
914
+ } | {
915
+ options?: {
916
+ trueLabel?: string | undefined;
917
+ falseLabel?: string | undefined;
918
+ } | undefined;
919
+ searchable?: boolean | undefined;
920
+ localized?: boolean | undefined;
921
+ description?: string | undefined;
922
+ defaultValue?: any;
923
+ required: boolean;
924
+ type: "boolean";
925
+ name: string;
926
+ label: string;
927
+ } | {
928
+ options?: {
929
+ allowedBlocks?: string[] | undefined;
930
+ allowedMarks?: string[] | undefined;
931
+ } | undefined;
932
+ searchable?: boolean | undefined;
933
+ localized?: boolean | undefined;
934
+ description?: string | undefined;
935
+ defaultValue?: any;
936
+ required: boolean;
937
+ type: "richText";
938
+ name: string;
939
+ label: string;
940
+ } | {
941
+ options?: {
942
+ mediaType?: "image" | "video" | "audio" | "document" | "other" | undefined;
943
+ allowedMimeTypes?: string[] | undefined;
944
+ maxFileSize?: number | undefined;
945
+ multiple?: boolean | undefined;
946
+ } | undefined;
947
+ searchable?: boolean | undefined;
948
+ localized?: boolean | undefined;
949
+ description?: string | undefined;
950
+ defaultValue?: any;
951
+ required: boolean;
952
+ type: "media";
953
+ name: string;
954
+ label: string;
955
+ } | {
956
+ options?: {
957
+ options?: {
958
+ label: string;
959
+ value: string;
960
+ }[] | undefined;
961
+ } | undefined;
962
+ searchable?: boolean | undefined;
963
+ localized?: boolean | undefined;
964
+ description?: string | undefined;
965
+ defaultValue?: any;
966
+ required: boolean;
967
+ type: "select";
968
+ name: string;
969
+ label: string;
970
+ } | {
971
+ options?: {
972
+ taxonomyId?: GenericId<"taxonomies"> | undefined;
973
+ allowCreate?: boolean | undefined;
974
+ maxTags?: number | undefined;
975
+ minTags?: number | undefined;
976
+ } | undefined;
977
+ searchable?: boolean | undefined;
978
+ localized?: boolean | undefined;
979
+ description?: string | undefined;
980
+ defaultValue?: any;
981
+ required: boolean;
982
+ type: "tags";
983
+ name: string;
984
+ label: string;
985
+ } | {
986
+ options?: {
987
+ allowMultiple?: boolean | undefined;
988
+ } | undefined;
989
+ searchable?: boolean | undefined;
990
+ localized?: boolean | undefined;
991
+ description?: string | undefined;
992
+ defaultValue?: any;
993
+ required: boolean;
994
+ type: "category";
995
+ name: string;
996
+ label: string;
997
+ } | {
998
+ options?: {
999
+ schema?: any;
1000
+ } | undefined;
1001
+ searchable?: boolean | undefined;
1002
+ localized?: boolean | undefined;
1003
+ description?: string | undefined;
1004
+ defaultValue?: any;
1005
+ required: boolean;
1006
+ type: "json";
1007
+ name: string;
1008
+ label: string;
1009
+ } | {
1010
+ options?: {
1011
+ multiple?: boolean | undefined;
1012
+ allowedContentTypes?: string[] | undefined;
1013
+ minItems?: number | undefined;
1014
+ } | undefined;
1015
+ searchable?: boolean | undefined;
1016
+ localized?: boolean | undefined;
1017
+ description?: string | undefined;
1018
+ defaultValue?: any;
1019
+ required: boolean;
1020
+ type: "reference";
1021
+ name: string;
1022
+ label: string;
1023
+ } | {
1024
+ options?: {
1025
+ options?: {
1026
+ label: string;
1027
+ value: string;
1028
+ }[] | undefined;
1029
+ } | undefined;
1030
+ searchable?: boolean | undefined;
1031
+ localized?: boolean | undefined;
1032
+ description?: string | undefined;
1033
+ defaultValue?: any;
1034
+ required: boolean;
1035
+ type: "multiSelect";
1036
+ name: string;
1037
+ label: string;
1038
+ } | {
1039
+ options?: {
1040
+ min?: number | undefined;
1041
+ max?: number | undefined;
1042
+ } | undefined;
1043
+ searchable?: boolean | undefined;
1044
+ localized?: boolean | undefined;
1045
+ description?: string | undefined;
1046
+ defaultValue?: any;
1047
+ required: boolean;
1048
+ type: "date";
1049
+ name: string;
1050
+ label: string;
1051
+ } | {
1052
+ options?: {
1053
+ min?: number | undefined;
1054
+ max?: number | undefined;
1055
+ } | undefined;
1056
+ searchable?: boolean | undefined;
1057
+ localized?: boolean | undefined;
1058
+ description?: string | undefined;
1059
+ defaultValue?: any;
1060
+ required: boolean;
1061
+ type: "datetime";
1062
+ name: string;
1063
+ label: string;
1064
+ }, [import("convex/values").VObject<{
1065
+ options?: {
1066
+ minLength?: number | undefined;
1067
+ maxLength?: number | undefined;
1068
+ pattern?: string | undefined;
1069
+ } | undefined;
1070
+ searchable?: boolean | undefined;
1071
+ localized?: boolean | undefined;
1072
+ description?: string | undefined;
1073
+ defaultValue?: any;
1074
+ required: boolean;
1075
+ type: "text";
1076
+ name: string;
1077
+ label: string;
1078
+ }, {
1079
+ type: import("convex/values").VLiteral<"text", "required">;
1080
+ options: import("convex/values").VObject<{
1081
+ minLength?: number | undefined;
1082
+ maxLength?: number | undefined;
1083
+ pattern?: string | undefined;
1084
+ } | undefined, {
1085
+ minLength: import("convex/values").VFloat64<number | undefined, "optional">;
1086
+ maxLength: import("convex/values").VFloat64<number | undefined, "optional">;
1087
+ pattern: import("convex/values").VString<string | undefined, "optional">;
1088
+ }, "optional", "minLength" | "maxLength" | "pattern">;
1089
+ name: import("convex/values").VString<string, "required">;
1090
+ label: import("convex/values").VString<string, "required">;
1091
+ required: import("convex/values").VBoolean<boolean, "required">;
1092
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1093
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1094
+ description: import("convex/values").VString<string | undefined, "optional">;
1095
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1096
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | "options.minLength" | "options.maxLength" | "options.pattern" | `defaultValue.${string}`>, import("convex/values").VObject<{
1097
+ options?: {
1098
+ min?: number | undefined;
1099
+ max?: number | undefined;
1100
+ step?: number | undefined;
1101
+ precision?: number | undefined;
1102
+ } | undefined;
1103
+ searchable?: boolean | undefined;
1104
+ localized?: boolean | undefined;
1105
+ description?: string | undefined;
1106
+ defaultValue?: any;
1107
+ required: boolean;
1108
+ type: "number";
1109
+ name: string;
1110
+ label: string;
1111
+ }, {
1112
+ type: import("convex/values").VLiteral<"number", "required">;
1113
+ options: import("convex/values").VObject<{
1114
+ min?: number | undefined;
1115
+ max?: number | undefined;
1116
+ step?: number | undefined;
1117
+ precision?: number | undefined;
1118
+ } | undefined, {
1119
+ min: import("convex/values").VFloat64<number | undefined, "optional">;
1120
+ max: import("convex/values").VFloat64<number | undefined, "optional">;
1121
+ step: import("convex/values").VFloat64<number | undefined, "optional">;
1122
+ precision: import("convex/values").VFloat64<number | undefined, "optional">;
1123
+ }, "optional", "min" | "max" | "step" | "precision">;
1124
+ name: import("convex/values").VString<string, "required">;
1125
+ label: import("convex/values").VString<string, "required">;
1126
+ required: import("convex/values").VBoolean<boolean, "required">;
1127
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1128
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1129
+ description: import("convex/values").VString<string | undefined, "optional">;
1130
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1131
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.min" | "options.max" | "options.step" | "options.precision">, import("convex/values").VObject<{
1132
+ options?: {
1133
+ trueLabel?: string | undefined;
1134
+ falseLabel?: string | undefined;
1135
+ } | undefined;
1136
+ searchable?: boolean | undefined;
1137
+ localized?: boolean | undefined;
1138
+ description?: string | undefined;
1139
+ defaultValue?: any;
1140
+ required: boolean;
1141
+ type: "boolean";
1142
+ name: string;
1143
+ label: string;
1144
+ }, {
1145
+ type: import("convex/values").VLiteral<"boolean", "required">;
1146
+ options: import("convex/values").VObject<{
1147
+ trueLabel?: string | undefined;
1148
+ falseLabel?: string | undefined;
1149
+ } | undefined, {
1150
+ trueLabel: import("convex/values").VString<string | undefined, "optional">;
1151
+ falseLabel: import("convex/values").VString<string | undefined, "optional">;
1152
+ }, "optional", "trueLabel" | "falseLabel">;
1153
+ name: import("convex/values").VString<string, "required">;
1154
+ label: import("convex/values").VString<string, "required">;
1155
+ required: import("convex/values").VBoolean<boolean, "required">;
1156
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1157
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1158
+ description: import("convex/values").VString<string | undefined, "optional">;
1159
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1160
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.trueLabel" | "options.falseLabel">, import("convex/values").VObject<{
1161
+ options?: {
1162
+ allowedBlocks?: string[] | undefined;
1163
+ allowedMarks?: string[] | undefined;
1164
+ } | undefined;
1165
+ searchable?: boolean | undefined;
1166
+ localized?: boolean | undefined;
1167
+ description?: string | undefined;
1168
+ defaultValue?: any;
1169
+ required: boolean;
1170
+ type: "richText";
1171
+ name: string;
1172
+ label: string;
1173
+ }, {
1174
+ type: import("convex/values").VLiteral<"richText", "required">;
1175
+ options: import("convex/values").VObject<{
1176
+ allowedBlocks?: string[] | undefined;
1177
+ allowedMarks?: string[] | undefined;
1178
+ } | undefined, {
1179
+ allowedBlocks: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
1180
+ allowedMarks: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
1181
+ }, "optional", "allowedBlocks" | "allowedMarks">;
1182
+ name: import("convex/values").VString<string, "required">;
1183
+ label: import("convex/values").VString<string, "required">;
1184
+ required: import("convex/values").VBoolean<boolean, "required">;
1185
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1186
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1187
+ description: import("convex/values").VString<string | undefined, "optional">;
1188
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1189
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.allowedBlocks" | "options.allowedMarks">, import("convex/values").VObject<{
1190
+ options?: {
1191
+ mediaType?: "image" | "video" | "audio" | "document" | "other" | undefined;
1192
+ allowedMimeTypes?: string[] | undefined;
1193
+ maxFileSize?: number | undefined;
1194
+ multiple?: boolean | undefined;
1195
+ } | undefined;
1196
+ searchable?: boolean | undefined;
1197
+ localized?: boolean | undefined;
1198
+ description?: string | undefined;
1199
+ defaultValue?: any;
1200
+ required: boolean;
1201
+ type: "media";
1202
+ name: string;
1203
+ label: string;
1204
+ }, {
1205
+ type: import("convex/values").VLiteral<"media", "required">;
1206
+ options: import("convex/values").VObject<{
1207
+ mediaType?: "image" | "video" | "audio" | "document" | "other" | undefined;
1208
+ allowedMimeTypes?: string[] | undefined;
1209
+ maxFileSize?: number | undefined;
1210
+ multiple?: boolean | undefined;
1211
+ } | undefined, {
1212
+ mediaType: import("convex/values").VUnion<"image" | "video" | "audio" | "document" | "other" | undefined, [import("convex/values").VLiteral<"image", "required">, import("convex/values").VLiteral<"video", "required">, import("convex/values").VLiteral<"audio", "required">, import("convex/values").VLiteral<"document", "required">, import("convex/values").VLiteral<"other", "required">], "optional", never>;
1213
+ allowedMimeTypes: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
1214
+ maxFileSize: import("convex/values").VFloat64<number | undefined, "optional">;
1215
+ multiple: import("convex/values").VBoolean<boolean | undefined, "optional">;
1216
+ }, "optional", "mediaType" | "allowedMimeTypes" | "maxFileSize" | "multiple">;
1217
+ name: import("convex/values").VString<string, "required">;
1218
+ label: import("convex/values").VString<string, "required">;
1219
+ required: import("convex/values").VBoolean<boolean, "required">;
1220
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1221
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1222
+ description: import("convex/values").VString<string | undefined, "optional">;
1223
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1224
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.mediaType" | "options.allowedMimeTypes" | "options.maxFileSize" | "options.multiple">, import("convex/values").VObject<{
1225
+ options?: {
1226
+ options?: {
1227
+ label: string;
1228
+ value: string;
1229
+ }[] | undefined;
1230
+ } | undefined;
1231
+ searchable?: boolean | undefined;
1232
+ localized?: boolean | undefined;
1233
+ description?: string | undefined;
1234
+ defaultValue?: any;
1235
+ required: boolean;
1236
+ type: "select";
1237
+ name: string;
1238
+ label: string;
1239
+ }, {
1240
+ type: import("convex/values").VLiteral<"select", "required">;
1241
+ options: import("convex/values").VObject<{
1242
+ options?: {
1243
+ label: string;
1244
+ value: string;
1245
+ }[] | undefined;
1246
+ } | undefined, {
1247
+ options: import("convex/values").VArray<{
1248
+ label: string;
1249
+ value: string;
1250
+ }[] | undefined, import("convex/values").VObject<{
1251
+ label: string;
1252
+ value: string;
1253
+ }, {
1254
+ value: import("convex/values").VString<string, "required">;
1255
+ label: import("convex/values").VString<string, "required">;
1256
+ }, "required", "label" | "value">, "optional">;
1257
+ }, "optional", "options">;
1258
+ name: import("convex/values").VString<string, "required">;
1259
+ label: import("convex/values").VString<string, "required">;
1260
+ required: import("convex/values").VBoolean<boolean, "required">;
1261
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1262
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1263
+ description: import("convex/values").VString<string | undefined, "optional">;
1264
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1265
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.options">, import("convex/values").VObject<{
1266
+ options?: {
1267
+ options?: {
1268
+ label: string;
1269
+ value: string;
1270
+ }[] | undefined;
1271
+ } | undefined;
1272
+ searchable?: boolean | undefined;
1273
+ localized?: boolean | undefined;
1274
+ description?: string | undefined;
1275
+ defaultValue?: any;
1276
+ required: boolean;
1277
+ type: "multiSelect";
1278
+ name: string;
1279
+ label: string;
1280
+ }, {
1281
+ type: import("convex/values").VLiteral<"multiSelect", "required">;
1282
+ options: import("convex/values").VObject<{
1283
+ options?: {
1284
+ label: string;
1285
+ value: string;
1286
+ }[] | undefined;
1287
+ } | undefined, {
1288
+ options: import("convex/values").VArray<{
1289
+ label: string;
1290
+ value: string;
1291
+ }[] | undefined, import("convex/values").VObject<{
1292
+ label: string;
1293
+ value: string;
1294
+ }, {
1295
+ value: import("convex/values").VString<string, "required">;
1296
+ label: import("convex/values").VString<string, "required">;
1297
+ }, "required", "label" | "value">, "optional">;
1298
+ }, "optional", "options">;
1299
+ name: import("convex/values").VString<string, "required">;
1300
+ label: import("convex/values").VString<string, "required">;
1301
+ required: import("convex/values").VBoolean<boolean, "required">;
1302
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1303
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1304
+ description: import("convex/values").VString<string | undefined, "optional">;
1305
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1306
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.options">, import("convex/values").VObject<{
1307
+ options?: {
1308
+ taxonomyId?: GenericId<"taxonomies"> | undefined;
1309
+ allowCreate?: boolean | undefined;
1310
+ maxTags?: number | undefined;
1311
+ minTags?: number | undefined;
1312
+ } | undefined;
1313
+ searchable?: boolean | undefined;
1314
+ localized?: boolean | undefined;
1315
+ description?: string | undefined;
1316
+ defaultValue?: any;
1317
+ required: boolean;
1318
+ type: "tags";
1319
+ name: string;
1320
+ label: string;
1321
+ }, {
1322
+ type: import("convex/values").VLiteral<"tags", "required">;
1323
+ options: import("convex/values").VObject<{
1324
+ taxonomyId?: GenericId<"taxonomies"> | undefined;
1325
+ allowCreate?: boolean | undefined;
1326
+ maxTags?: number | undefined;
1327
+ minTags?: number | undefined;
1328
+ } | undefined, {
1329
+ taxonomyId: import("convex/values").VId<GenericId<"taxonomies"> | undefined, "optional">;
1330
+ allowCreate: import("convex/values").VBoolean<boolean | undefined, "optional">;
1331
+ maxTags: import("convex/values").VFloat64<number | undefined, "optional">;
1332
+ minTags: import("convex/values").VFloat64<number | undefined, "optional">;
1333
+ }, "optional", "taxonomyId" | "allowCreate" | "maxTags" | "minTags">;
1334
+ name: import("convex/values").VString<string, "required">;
1335
+ label: import("convex/values").VString<string, "required">;
1336
+ required: import("convex/values").VBoolean<boolean, "required">;
1337
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1338
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1339
+ description: import("convex/values").VString<string | undefined, "optional">;
1340
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1341
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.taxonomyId" | "options.allowCreate" | "options.maxTags" | "options.minTags">, import("convex/values").VObject<{
1342
+ options?: {
1343
+ allowMultiple?: boolean | undefined;
1344
+ } | undefined;
1345
+ searchable?: boolean | undefined;
1346
+ localized?: boolean | undefined;
1347
+ description?: string | undefined;
1348
+ defaultValue?: any;
1349
+ required: boolean;
1350
+ type: "category";
1351
+ name: string;
1352
+ label: string;
1353
+ }, {
1354
+ type: import("convex/values").VLiteral<"category", "required">;
1355
+ options: import("convex/values").VObject<{
1356
+ allowMultiple?: boolean | undefined;
1357
+ } | undefined, {
1358
+ allowMultiple: import("convex/values").VBoolean<boolean | undefined, "optional">;
1359
+ }, "optional", "allowMultiple">;
1360
+ name: import("convex/values").VString<string, "required">;
1361
+ label: import("convex/values").VString<string, "required">;
1362
+ required: import("convex/values").VBoolean<boolean, "required">;
1363
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1364
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1365
+ description: import("convex/values").VString<string | undefined, "optional">;
1366
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1367
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.allowMultiple">, import("convex/values").VObject<{
1368
+ options?: {
1369
+ schema?: any;
1370
+ } | undefined;
1371
+ searchable?: boolean | undefined;
1372
+ localized?: boolean | undefined;
1373
+ description?: string | undefined;
1374
+ defaultValue?: any;
1375
+ required: boolean;
1376
+ type: "json";
1377
+ name: string;
1378
+ label: string;
1379
+ }, {
1380
+ type: import("convex/values").VLiteral<"json", "required">;
1381
+ options: import("convex/values").VObject<{
1382
+ schema?: any;
1383
+ } | undefined, {
1384
+ schema: import("convex/values").VAny<any, "optional", string>;
1385
+ }, "optional", "schema" | `schema.${string}`>;
1386
+ name: import("convex/values").VString<string, "required">;
1387
+ label: import("convex/values").VString<string, "required">;
1388
+ required: import("convex/values").VBoolean<boolean, "required">;
1389
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1390
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1391
+ description: import("convex/values").VString<string | undefined, "optional">;
1392
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1393
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.schema" | `options.schema.${string}`>, import("convex/values").VObject<{
1394
+ options?: {
1395
+ min?: number | undefined;
1396
+ max?: number | undefined;
1397
+ } | undefined;
1398
+ searchable?: boolean | undefined;
1399
+ localized?: boolean | undefined;
1400
+ description?: string | undefined;
1401
+ defaultValue?: any;
1402
+ required: boolean;
1403
+ type: "date";
1404
+ name: string;
1405
+ label: string;
1406
+ }, {
1407
+ type: import("convex/values").VLiteral<"date", "required">;
1408
+ options: import("convex/values").VObject<{
1409
+ min?: number | undefined;
1410
+ max?: number | undefined;
1411
+ } | undefined, {
1412
+ min: import("convex/values").VFloat64<number | undefined, "optional">;
1413
+ max: import("convex/values").VFloat64<number | undefined, "optional">;
1414
+ }, "optional", "min" | "max">;
1415
+ name: import("convex/values").VString<string, "required">;
1416
+ label: import("convex/values").VString<string, "required">;
1417
+ required: import("convex/values").VBoolean<boolean, "required">;
1418
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1419
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1420
+ description: import("convex/values").VString<string | undefined, "optional">;
1421
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1422
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.min" | "options.max">, import("convex/values").VObject<{
1423
+ options?: {
1424
+ min?: number | undefined;
1425
+ max?: number | undefined;
1426
+ } | undefined;
1427
+ searchable?: boolean | undefined;
1428
+ localized?: boolean | undefined;
1429
+ description?: string | undefined;
1430
+ defaultValue?: any;
1431
+ required: boolean;
1432
+ type: "datetime";
1433
+ name: string;
1434
+ label: string;
1435
+ }, {
1436
+ type: import("convex/values").VLiteral<"datetime", "required">;
1437
+ options: import("convex/values").VObject<{
1438
+ min?: number | undefined;
1439
+ max?: number | undefined;
1440
+ } | undefined, {
1441
+ min: import("convex/values").VFloat64<number | undefined, "optional">;
1442
+ max: import("convex/values").VFloat64<number | undefined, "optional">;
1443
+ }, "optional", "min" | "max">;
1444
+ name: import("convex/values").VString<string, "required">;
1445
+ label: import("convex/values").VString<string, "required">;
1446
+ required: import("convex/values").VBoolean<boolean, "required">;
1447
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1448
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1449
+ description: import("convex/values").VString<string | undefined, "optional">;
1450
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1451
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.min" | "options.max">, import("convex/values").VObject<{
1452
+ options?: {
1453
+ multiple?: boolean | undefined;
1454
+ allowedContentTypes?: string[] | undefined;
1455
+ minItems?: number | undefined;
1456
+ } | undefined;
1457
+ searchable?: boolean | undefined;
1458
+ localized?: boolean | undefined;
1459
+ description?: string | undefined;
1460
+ defaultValue?: any;
1461
+ required: boolean;
1462
+ type: "reference";
1463
+ name: string;
1464
+ label: string;
1465
+ }, {
1466
+ type: import("convex/values").VLiteral<"reference", "required">;
1467
+ options: import("convex/values").VObject<{
1468
+ multiple?: boolean | undefined;
1469
+ allowedContentTypes?: string[] | undefined;
1470
+ minItems?: number | undefined;
1471
+ } | undefined, {
1472
+ allowedContentTypes: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
1473
+ multiple: import("convex/values").VBoolean<boolean | undefined, "optional">;
1474
+ minItems: import("convex/values").VFloat64<number | undefined, "optional">;
1475
+ }, "optional", "multiple" | "allowedContentTypes" | "minItems">;
1476
+ name: import("convex/values").VString<string, "required">;
1477
+ label: import("convex/values").VString<string, "required">;
1478
+ required: import("convex/values").VBoolean<boolean, "required">;
1479
+ searchable: import("convex/values").VBoolean<boolean | undefined, "optional">;
1480
+ localized: import("convex/values").VBoolean<boolean | undefined, "optional">;
1481
+ description: import("convex/values").VString<string | undefined, "optional">;
1482
+ defaultValue: import("convex/values").VAny<any, "optional", string>;
1483
+ }, "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | `defaultValue.${string}` | "options.multiple" | "options.allowedContentTypes" | "options.minItems">], "required", "required" | "type" | "options" | "name" | "label" | "searchable" | "localized" | "description" | "defaultValue" | "options.minLength" | "options.maxLength" | "options.pattern" | `defaultValue.${string}` | "options.min" | "options.max" | "options.step" | "options.precision" | "options.trueLabel" | "options.falseLabel" | "options.allowedBlocks" | "options.allowedMarks" | "options.mediaType" | "options.allowedMimeTypes" | "options.maxFileSize" | "options.multiple" | "options.options" | "options.taxonomyId" | "options.allowCreate" | "options.maxTags" | "options.minTags" | "options.allowMultiple" | "options.schema" | `options.schema.${string}` | "options.allowedContentTypes" | "options.minItems">, "required">;
1484
+ icon: import("convex/values").VString<string | undefined, "optional">;
1485
+ singleton: import("convex/values").VBoolean<boolean | undefined, "optional">;
1486
+ slugField: import("convex/values").VString<string | undefined, "optional">;
1487
+ titleField: import("convex/values").VString<string | undefined, "optional">;
1488
+ sortOrder: import("convex/values").VFloat64<number | undefined, "optional">;
1489
+ isActive: import("convex/values").VBoolean<boolean, "required">;
1490
+ deletedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1491
+ updatedBy: import("convex/values").VString<string | undefined, "optional">;
1492
+ }, "required", "fields" | "name" | "description" | "deletedAt" | "createdBy" | "updatedBy" | "sortOrder" | "displayName" | "icon" | "singleton" | "slugField" | "titleField" | "isActive">, {
1493
+ by_name: ["name", "_creationTime"];
1494
+ by_active: ["isActive", "_creationTime"];
1495
+ by_deleted: ["deletedAt", "_creationTime"];
1496
+ }, {}, {}>;
1497
+ contentEntries: import("convex/server").TableDefinition<import("convex/values").VObject<{
1498
+ deletedAt?: number | undefined;
1499
+ createdBy?: string | undefined;
1500
+ updatedBy?: string | undefined;
1501
+ searchText?: string | undefined;
1502
+ locale?: string | undefined;
1503
+ primaryEntryId?: GenericId<"contentEntries"> | undefined;
1504
+ scheduledPublishAt?: number | undefined;
1505
+ firstPublishedAt?: number | undefined;
1506
+ lastPublishedAt?: number | undefined;
1507
+ lockedBy?: string | undefined;
1508
+ lockExpiresAt?: number | undefined;
1509
+ contentTypeId: GenericId<"contentTypes">;
1510
+ slug: string;
1511
+ status: string;
1512
+ data: any;
1513
+ version: number;
1514
+ }, {
1515
+ contentTypeId: import("convex/values").VId<GenericId<"contentTypes">, "required">;
1516
+ slug: import("convex/values").VString<string, "required">;
1517
+ status: import("convex/values").VString<string, "required">;
1518
+ data: import("convex/values").VAny<any, "required", string>;
1519
+ locale: import("convex/values").VString<string | undefined, "optional">;
1520
+ primaryEntryId: import("convex/values").VId<GenericId<"contentEntries"> | undefined, "optional">;
1521
+ version: import("convex/values").VFloat64<number, "required">;
1522
+ scheduledPublishAt: import("convex/values").VFloat64<number | undefined, "optional">;
1523
+ firstPublishedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1524
+ lastPublishedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1525
+ lockedBy: import("convex/values").VString<string | undefined, "optional">;
1526
+ lockExpiresAt: import("convex/values").VFloat64<number | undefined, "optional">;
1527
+ deletedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1528
+ createdBy: import("convex/values").VString<string | undefined, "optional">;
1529
+ updatedBy: import("convex/values").VString<string | undefined, "optional">;
1530
+ searchText: import("convex/values").VString<string | undefined, "optional">;
1531
+ }, "required", "deletedAt" | "createdBy" | "updatedBy" | "searchText" | "contentTypeId" | "slug" | "status" | "data" | "locale" | "primaryEntryId" | "version" | "scheduledPublishAt" | "firstPublishedAt" | "lastPublishedAt" | "lockedBy" | "lockExpiresAt" | `data.${string}`>, {
1532
+ by_content_type: ["contentTypeId", "_creationTime"];
1533
+ by_content_type_and_slug: ["contentTypeId", "slug", "_creationTime"];
1534
+ by_status: ["status", "_creationTime"];
1535
+ by_content_type_and_status: ["contentTypeId", "status", "_creationTime"];
1536
+ by_primary_entry: ["primaryEntryId", "_creationTime"];
1537
+ by_locale: ["locale", "_creationTime"];
1538
+ by_deleted: ["deletedAt", "_creationTime"];
1539
+ by_scheduled_publish: ["status", "scheduledPublishAt", "_creationTime"];
1540
+ by_locked: ["lockedBy", "_creationTime"];
1541
+ }, {
1542
+ search_content: {
1543
+ searchField: "searchText";
1544
+ filterFields: "contentTypeId" | "status" | "locale";
1545
+ };
1546
+ }, {}>;
1547
+ contentVersions: import("convex/server").TableDefinition<import("convex/values").VObject<{
1548
+ createdBy?: string | undefined;
1549
+ changeDescription?: string | undefined;
1550
+ publishedAt?: number | undefined;
1551
+ slug: string;
1552
+ status: string;
1553
+ data: any;
1554
+ entryId: GenericId<"contentEntries">;
1555
+ versionNumber: number;
1556
+ wasPublished: boolean;
1557
+ }, {
1558
+ entryId: import("convex/values").VId<GenericId<"contentEntries">, "required">;
1559
+ versionNumber: import("convex/values").VFloat64<number, "required">;
1560
+ data: import("convex/values").VAny<any, "required", string>;
1561
+ slug: import("convex/values").VString<string, "required">;
1562
+ status: import("convex/values").VString<string, "required">;
1563
+ changeDescription: import("convex/values").VString<string | undefined, "optional">;
1564
+ createdBy: import("convex/values").VString<string | undefined, "optional">;
1565
+ wasPublished: import("convex/values").VBoolean<boolean, "required">;
1566
+ publishedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1567
+ }, "required", "createdBy" | "slug" | "status" | "data" | `data.${string}` | "entryId" | "versionNumber" | "changeDescription" | "wasPublished" | "publishedAt">, {
1568
+ by_entry: ["entryId", "_creationTime"];
1569
+ by_entry_and_version: ["entryId", "versionNumber", "_creationTime"];
1570
+ by_entry_and_published: ["entryId", "wasPublished", "_creationTime"];
1571
+ }, {}, {}>;
1572
+ mediaItems: import("convex/server").TableDefinition<import("convex/values").VUnion<{
1573
+ tags?: string[] | undefined;
1574
+ description?: string | undefined;
1575
+ width?: number | undefined;
1576
+ height?: number | undefined;
1577
+ duration?: number | undefined;
1578
+ altText?: string | undefined;
1579
+ title?: string | undefined;
1580
+ parentId?: GenericId<"mediaItems"> | undefined;
1581
+ size?: number | undefined;
1582
+ metadata?: Record<string, any> | undefined;
1583
+ deletedAt?: number | undefined;
1584
+ createdBy?: string | undefined;
1585
+ updatedBy?: string | undefined;
1586
+ searchText?: string | undefined;
1587
+ name: string;
1588
+ kind: "asset";
1589
+ storageId: GenericId<"_storage">;
1590
+ mimeType: string;
1591
+ path: string;
1592
+ } | {
1593
+ tags?: string[] | undefined;
1594
+ description?: string | undefined;
1595
+ title?: string | undefined;
1596
+ parentId?: GenericId<"mediaItems"> | undefined;
1597
+ size?: number | undefined;
1598
+ metadata?: Record<string, any> | undefined;
1599
+ deletedAt?: number | undefined;
1600
+ createdBy?: string | undefined;
1601
+ updatedBy?: string | undefined;
1602
+ searchText?: string | undefined;
1603
+ sortOrder?: number | undefined;
1604
+ name: string;
1605
+ kind: "folder";
1606
+ path: string;
1607
+ }, [import("convex/values").VObject<{
1608
+ tags?: string[] | undefined;
1609
+ description?: string | undefined;
1610
+ width?: number | undefined;
1611
+ height?: number | undefined;
1612
+ duration?: number | undefined;
1613
+ altText?: string | undefined;
1614
+ title?: string | undefined;
1615
+ parentId?: GenericId<"mediaItems"> | undefined;
1616
+ size?: number | undefined;
1617
+ metadata?: Record<string, any> | undefined;
1618
+ deletedAt?: number | undefined;
1619
+ createdBy?: string | undefined;
1620
+ updatedBy?: string | undefined;
1621
+ searchText?: string | undefined;
1622
+ name: string;
1623
+ kind: "asset";
1624
+ storageId: GenericId<"_storage">;
1625
+ mimeType: string;
1626
+ path: string;
1627
+ }, {
1628
+ kind: import("convex/values").VLiteral<"asset", "required">;
1629
+ storageId: import("convex/values").VId<GenericId<"_storage">, "required">;
1630
+ mimeType: import("convex/values").VString<string, "required">;
1631
+ width: import("convex/values").VFloat64<number | undefined, "optional">;
1632
+ height: import("convex/values").VFloat64<number | undefined, "optional">;
1633
+ duration: import("convex/values").VFloat64<number | undefined, "optional">;
1634
+ altText: import("convex/values").VString<string | undefined, "optional">;
1635
+ name: import("convex/values").VString<string, "required">;
1636
+ title: import("convex/values").VString<string | undefined, "optional">;
1637
+ description: import("convex/values").VString<string | undefined, "optional">;
1638
+ parentId: import("convex/values").VId<GenericId<"mediaItems"> | undefined, "optional">;
1639
+ path: import("convex/values").VString<string, "required">;
1640
+ tags: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
1641
+ size: import("convex/values").VFloat64<number | undefined, "optional">;
1642
+ metadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
1643
+ deletedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1644
+ createdBy: import("convex/values").VString<string | undefined, "optional">;
1645
+ updatedBy: import("convex/values").VString<string | undefined, "optional">;
1646
+ searchText: import("convex/values").VString<string | undefined, "optional">;
1647
+ }, "required", "tags" | "name" | "description" | "kind" | "storageId" | "mimeType" | "width" | "height" | "duration" | "altText" | "title" | "parentId" | "path" | "size" | "metadata" | "deletedAt" | "createdBy" | "updatedBy" | "searchText" | `metadata.${string}`>, import("convex/values").VObject<{
1648
+ tags?: string[] | undefined;
1649
+ description?: string | undefined;
1650
+ title?: string | undefined;
1651
+ parentId?: GenericId<"mediaItems"> | undefined;
1652
+ size?: number | undefined;
1653
+ metadata?: Record<string, any> | undefined;
1654
+ deletedAt?: number | undefined;
1655
+ createdBy?: string | undefined;
1656
+ updatedBy?: string | undefined;
1657
+ searchText?: string | undefined;
1658
+ sortOrder?: number | undefined;
1659
+ name: string;
1660
+ kind: "folder";
1661
+ path: string;
1662
+ }, {
1663
+ kind: import("convex/values").VLiteral<"folder", "required">;
1664
+ sortOrder: import("convex/values").VFloat64<number | undefined, "optional">;
1665
+ name: import("convex/values").VString<string, "required">;
1666
+ title: import("convex/values").VString<string | undefined, "optional">;
1667
+ description: import("convex/values").VString<string | undefined, "optional">;
1668
+ parentId: import("convex/values").VId<GenericId<"mediaItems"> | undefined, "optional">;
1669
+ path: import("convex/values").VString<string, "required">;
1670
+ tags: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
1671
+ size: import("convex/values").VFloat64<number | undefined, "optional">;
1672
+ metadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
1673
+ deletedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1674
+ createdBy: import("convex/values").VString<string | undefined, "optional">;
1675
+ updatedBy: import("convex/values").VString<string | undefined, "optional">;
1676
+ searchText: import("convex/values").VString<string | undefined, "optional">;
1677
+ }, "required", "tags" | "name" | "description" | "kind" | "title" | "parentId" | "path" | "size" | "metadata" | "deletedAt" | "createdBy" | "updatedBy" | "searchText" | `metadata.${string}` | "sortOrder">], "required", "tags" | "name" | "description" | "kind" | "storageId" | "mimeType" | "width" | "height" | "duration" | "altText" | "title" | "parentId" | "path" | "size" | "metadata" | "deletedAt" | "createdBy" | "updatedBy" | "searchText" | `metadata.${string}` | "sortOrder">, {
1678
+ by_parent: ["parentId", "_creationTime"];
1679
+ by_path: ["path", "_creationTime"];
1680
+ by_kind: ["kind", "_creationTime"];
1681
+ by_kind_and_parent: ["kind", "parentId", "_creationTime"];
1682
+ by_storage_id: ["storageId", "_creationTime"];
1683
+ by_mime_type: ["mimeType", "_creationTime"];
1684
+ by_deleted: ["deletedAt", "_creationTime"];
1685
+ }, {
1686
+ search_media: {
1687
+ searchField: "searchText";
1688
+ filterFields: never;
1689
+ };
1690
+ }, {}>;
1691
+ mediaVariants: import("convex/server").TableDefinition<import("convex/values").VObject<{
1692
+ width?: number | undefined;
1693
+ height?: number | undefined;
1694
+ deletedAt?: number | undefined;
1695
+ createdBy?: string | undefined;
1696
+ quality?: number | undefined;
1697
+ preset?: string | undefined;
1698
+ errorMessage?: string | undefined;
1699
+ processingStartedAt?: number | undefined;
1700
+ processingCompletedAt?: number | undefined;
1701
+ format: string;
1702
+ storageId: GenericId<"_storage">;
1703
+ mimeType: string;
1704
+ size: number;
1705
+ status: "pending" | "processing" | "completed" | "failed";
1706
+ assetId: GenericId<"mediaItems">;
1707
+ variantType: "thumbnail" | "responsive" | "format";
1708
+ autoGenerated: boolean;
1709
+ }, {
1710
+ assetId: import("convex/values").VId<GenericId<"mediaItems">, "required">;
1711
+ storageId: import("convex/values").VId<GenericId<"_storage">, "required">;
1712
+ variantType: import("convex/values").VUnion<"thumbnail" | "responsive" | "format", [import("convex/values").VLiteral<"thumbnail", "required">, import("convex/values").VLiteral<"responsive", "required">, import("convex/values").VLiteral<"format", "required">], "required", never>;
1713
+ width: import("convex/values").VFloat64<number | undefined, "optional">;
1714
+ height: import("convex/values").VFloat64<number | undefined, "optional">;
1715
+ format: import("convex/values").VString<string, "required">;
1716
+ mimeType: import("convex/values").VString<string, "required">;
1717
+ size: import("convex/values").VFloat64<number, "required">;
1718
+ quality: import("convex/values").VFloat64<number | undefined, "optional">;
1719
+ preset: import("convex/values").VString<string | undefined, "optional">;
1720
+ autoGenerated: import("convex/values").VBoolean<boolean, "required">;
1721
+ status: import("convex/values").VUnion<"pending" | "processing" | "completed" | "failed", [import("convex/values").VLiteral<"pending", "required">, import("convex/values").VLiteral<"processing", "required">, import("convex/values").VLiteral<"completed", "required">, import("convex/values").VLiteral<"failed", "required">], "required", never>;
1722
+ errorMessage: import("convex/values").VString<string | undefined, "optional">;
1723
+ processingStartedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1724
+ processingCompletedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1725
+ deletedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1726
+ createdBy: import("convex/values").VString<string | undefined, "optional">;
1727
+ }, "required", "format" | "storageId" | "mimeType" | "width" | "height" | "size" | "deletedAt" | "createdBy" | "status" | "assetId" | "variantType" | "quality" | "preset" | "autoGenerated" | "errorMessage" | "processingStartedAt" | "processingCompletedAt">, {
1728
+ by_asset: ["assetId", "_creationTime"];
1729
+ by_asset_and_type: ["assetId", "variantType", "_creationTime"];
1730
+ by_asset_and_preset: ["assetId", "preset", "_creationTime"];
1731
+ by_asset_and_format: ["assetId", "format", "_creationTime"];
1732
+ by_status: ["status", "_creationTime"];
1733
+ by_deleted: ["deletedAt", "_creationTime"];
1734
+ }, {}, {}>;
1735
+ taxonomies: import("convex/server").TableDefinition<import("convex/values").VObject<{
1736
+ description?: string | undefined;
1737
+ deletedAt?: number | undefined;
1738
+ createdBy?: string | undefined;
1739
+ updatedBy?: string | undefined;
1740
+ sortOrder?: number | undefined;
1741
+ icon?: string | undefined;
1742
+ name: string;
1743
+ displayName: string;
1744
+ isActive: boolean;
1745
+ isHierarchical: boolean;
1746
+ allowInlineCreation: boolean;
1747
+ }, {
1748
+ name: import("convex/values").VString<string, "required">;
1749
+ displayName: import("convex/values").VString<string, "required">;
1750
+ description: import("convex/values").VString<string | undefined, "optional">;
1751
+ isHierarchical: import("convex/values").VBoolean<boolean, "required">;
1752
+ allowInlineCreation: import("convex/values").VBoolean<boolean, "required">;
1753
+ icon: import("convex/values").VString<string | undefined, "optional">;
1754
+ sortOrder: import("convex/values").VFloat64<number | undefined, "optional">;
1755
+ isActive: import("convex/values").VBoolean<boolean, "required">;
1756
+ deletedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1757
+ createdBy: import("convex/values").VString<string | undefined, "optional">;
1758
+ updatedBy: import("convex/values").VString<string | undefined, "optional">;
1759
+ }, "required", "name" | "description" | "deletedAt" | "createdBy" | "updatedBy" | "sortOrder" | "displayName" | "icon" | "isActive" | "isHierarchical" | "allowInlineCreation">, {
1760
+ by_name: ["name", "_creationTime"];
1761
+ by_active: ["isActive", "_creationTime"];
1762
+ by_deleted: ["deletedAt", "_creationTime"];
1763
+ }, {}, {}>;
1764
+ taxonomyTerms: import("convex/server").TableDefinition<import("convex/values").VObject<{
1765
+ description?: string | undefined;
1766
+ parentId?: GenericId<"taxonomyTerms"> | undefined;
1767
+ path?: string | undefined;
1768
+ deletedAt?: number | undefined;
1769
+ createdBy?: string | undefined;
1770
+ updatedBy?: string | undefined;
1771
+ searchText?: string | undefined;
1772
+ sortOrder?: number | undefined;
1773
+ icon?: string | undefined;
1774
+ color?: string | undefined;
1775
+ name: string;
1776
+ taxonomyId: GenericId<"taxonomies">;
1777
+ slug: string;
1778
+ depth: number;
1779
+ usageCount: number;
1780
+ }, {
1781
+ taxonomyId: import("convex/values").VId<GenericId<"taxonomies">, "required">;
1782
+ slug: import("convex/values").VString<string, "required">;
1783
+ name: import("convex/values").VString<string, "required">;
1784
+ description: import("convex/values").VString<string | undefined, "optional">;
1785
+ parentId: import("convex/values").VId<GenericId<"taxonomyTerms"> | undefined, "optional">;
1786
+ path: import("convex/values").VString<string | undefined, "optional">;
1787
+ depth: import("convex/values").VFloat64<number, "required">;
1788
+ color: import("convex/values").VString<string | undefined, "optional">;
1789
+ icon: import("convex/values").VString<string | undefined, "optional">;
1790
+ sortOrder: import("convex/values").VFloat64<number | undefined, "optional">;
1791
+ usageCount: import("convex/values").VFloat64<number, "required">;
1792
+ deletedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1793
+ createdBy: import("convex/values").VString<string | undefined, "optional">;
1794
+ updatedBy: import("convex/values").VString<string | undefined, "optional">;
1795
+ searchText: import("convex/values").VString<string | undefined, "optional">;
1796
+ }, "required", "name" | "description" | "taxonomyId" | "parentId" | "path" | "deletedAt" | "createdBy" | "updatedBy" | "searchText" | "sortOrder" | "icon" | "slug" | "depth" | "color" | "usageCount">, {
1797
+ by_taxonomy: ["taxonomyId", "_creationTime"];
1798
+ by_taxonomy_and_slug: ["taxonomyId", "slug", "_creationTime"];
1799
+ by_parent: ["parentId", "_creationTime"];
1800
+ by_taxonomy_and_path: ["taxonomyId", "path", "_creationTime"];
1801
+ by_deleted: ["deletedAt", "_creationTime"];
1802
+ by_taxonomy_and_usage: ["taxonomyId", "usageCount", "_creationTime"];
1803
+ }, {
1804
+ search_terms: {
1805
+ searchField: "searchText";
1806
+ filterFields: "taxonomyId";
1807
+ };
1808
+ }, {}>;
1809
+ contentEntryTags: import("convex/server").TableDefinition<import("convex/values").VObject<{
1810
+ sortOrder?: number | undefined;
1811
+ taxonomyId: GenericId<"taxonomies">;
1812
+ entryId: GenericId<"contentEntries">;
1813
+ termId: GenericId<"taxonomyTerms">;
1814
+ fieldName: string;
1815
+ }, {
1816
+ entryId: import("convex/values").VId<GenericId<"contentEntries">, "required">;
1817
+ termId: import("convex/values").VId<GenericId<"taxonomyTerms">, "required">;
1818
+ taxonomyId: import("convex/values").VId<GenericId<"taxonomies">, "required">;
1819
+ fieldName: import("convex/values").VString<string, "required">;
1820
+ sortOrder: import("convex/values").VFloat64<number | undefined, "optional">;
1821
+ }, "required", "taxonomyId" | "sortOrder" | "entryId" | "termId" | "fieldName">, {
1822
+ by_entry: ["entryId", "_creationTime"];
1823
+ by_term: ["termId", "_creationTime"];
1824
+ by_taxonomy: ["taxonomyId", "_creationTime"];
1825
+ by_entry_and_field: ["entryId", "fieldName", "_creationTime"];
1826
+ by_taxonomy_and_term: ["taxonomyId", "termId", "_creationTime"];
1827
+ }, {}, {}>;
1828
+ mediaAssetTags: import("convex/server").TableDefinition<import("convex/values").VObject<{
1829
+ sortOrder?: number | undefined;
1830
+ taxonomyId: GenericId<"taxonomies">;
1831
+ termId: GenericId<"taxonomyTerms">;
1832
+ mediaId: GenericId<"mediaItems">;
1833
+ }, {
1834
+ mediaId: import("convex/values").VId<GenericId<"mediaItems">, "required">;
1835
+ termId: import("convex/values").VId<GenericId<"taxonomyTerms">, "required">;
1836
+ taxonomyId: import("convex/values").VId<GenericId<"taxonomies">, "required">;
1837
+ sortOrder: import("convex/values").VFloat64<number | undefined, "optional">;
1838
+ }, "required", "taxonomyId" | "sortOrder" | "termId" | "mediaId">, {
1839
+ by_media: ["mediaId", "_creationTime"];
1840
+ by_term: ["termId", "_creationTime"];
1841
+ by_taxonomy: ["taxonomyId", "_creationTime"];
1842
+ by_media_and_taxonomy: ["mediaId", "taxonomyId", "_creationTime"];
1843
+ by_taxonomy_and_term: ["taxonomyId", "termId", "_creationTime"];
1844
+ }, {}, {}>;
1845
+ trashConfig: import("convex/server").TableDefinition<import("convex/values").VObject<{
1846
+ updatedBy?: string | undefined;
1847
+ lastCleanupAt?: number | undefined;
1848
+ lastCleanupCount?: number | undefined;
1849
+ retentionDays: number;
1850
+ autoCleanupEnabled: boolean;
1851
+ }, {
1852
+ retentionDays: import("convex/values").VFloat64<number, "required">;
1853
+ autoCleanupEnabled: import("convex/values").VBoolean<boolean, "required">;
1854
+ lastCleanupAt: import("convex/values").VFloat64<number | undefined, "optional">;
1855
+ lastCleanupCount: import("convex/values").VFloat64<number | undefined, "optional">;
1856
+ updatedBy: import("convex/values").VString<string | undefined, "optional">;
1857
+ }, "required", "updatedBy" | "retentionDays" | "autoCleanupEnabled" | "lastCleanupAt" | "lastCleanupCount">, {}, {}, {}>;
1858
+ cmsEvents: import("convex/server").TableDefinition<import("convex/values").VObject<{
1859
+ metadata?: any;
1860
+ userId?: string | undefined;
1861
+ processedAt?: number | undefined;
1862
+ correlationId?: string | undefined;
1863
+ eventType: string;
1864
+ resourceType: "contentEntry" | "contentType" | "mediaAsset" | "mediaFolder";
1865
+ resourceId: string;
1866
+ action: "published" | "scheduled" | "created" | "updated" | "unpublished" | "deleted" | "restored" | "duplicated";
1867
+ payload: any;
1868
+ processed: boolean;
1869
+ }, {
1870
+ eventType: import("convex/values").VString<string, "required">;
1871
+ resourceType: import("convex/values").VUnion<"contentEntry" | "contentType" | "mediaAsset" | "mediaFolder", [import("convex/values").VLiteral<"contentEntry", "required">, import("convex/values").VLiteral<"contentType", "required">, import("convex/values").VLiteral<"mediaAsset", "required">, import("convex/values").VLiteral<"mediaFolder", "required">], "required", never>;
1872
+ resourceId: import("convex/values").VString<string, "required">;
1873
+ action: import("convex/values").VUnion<"published" | "scheduled" | "created" | "updated" | "unpublished" | "deleted" | "restored" | "duplicated", [import("convex/values").VLiteral<"created", "required">, import("convex/values").VLiteral<"updated", "required">, import("convex/values").VLiteral<"published", "required">, import("convex/values").VLiteral<"unpublished", "required">, import("convex/values").VLiteral<"deleted", "required">, import("convex/values").VLiteral<"restored", "required">, import("convex/values").VLiteral<"duplicated", "required">, import("convex/values").VLiteral<"scheduled", "required">], "required", never>;
1874
+ payload: import("convex/values").VAny<any, "required", string>;
1875
+ userId: import("convex/values").VString<string | undefined, "optional">;
1876
+ processed: import("convex/values").VBoolean<boolean, "required">;
1877
+ processedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1878
+ correlationId: import("convex/values").VString<string | undefined, "optional">;
1879
+ metadata: import("convex/values").VAny<any, "optional", string>;
1880
+ }, "required", "metadata" | `metadata.${string}` | "eventType" | "resourceType" | "resourceId" | "action" | "payload" | "userId" | "processed" | "processedAt" | "correlationId" | `payload.${string}`>, {
1881
+ by_event_type: ["eventType", "_creationTime"];
1882
+ by_resource: ["resourceType", "resourceId", "_creationTime"];
1883
+ by_processed: ["processed", "_creationTime"];
1884
+ by_user: ["userId", "_creationTime"];
1885
+ by_correlation_id: ["correlationId", "_creationTime"];
1886
+ }, {}, {}>;
1887
+ webhookConfigs: import("convex/server").TableDefinition<import("convex/values").VObject<{
1888
+ description?: string | undefined;
1889
+ contentTypes?: string[] | undefined;
1890
+ deletedAt?: number | undefined;
1891
+ createdBy?: string | undefined;
1892
+ updatedBy?: string | undefined;
1893
+ secret?: string | undefined;
1894
+ resourceTypes?: ("contentEntry" | "contentType" | "mediaAsset" | "mediaFolder")[] | undefined;
1895
+ headers?: any;
1896
+ maxRetries?: number | undefined;
1897
+ timeoutMs?: number | undefined;
1898
+ name: string;
1899
+ url: string;
1900
+ eventTypes: string[];
1901
+ enabled: boolean;
1902
+ }, {
1903
+ name: import("convex/values").VString<string, "required">;
1904
+ description: import("convex/values").VString<string | undefined, "optional">;
1905
+ url: import("convex/values").VString<string, "required">;
1906
+ secret: import("convex/values").VString<string | undefined, "optional">;
1907
+ eventTypes: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
1908
+ resourceTypes: import("convex/values").VArray<("contentEntry" | "contentType" | "mediaAsset" | "mediaFolder")[] | undefined, import("convex/values").VUnion<"contentEntry" | "contentType" | "mediaAsset" | "mediaFolder", [import("convex/values").VLiteral<"contentEntry", "required">, import("convex/values").VLiteral<"contentType", "required">, import("convex/values").VLiteral<"mediaAsset", "required">, import("convex/values").VLiteral<"mediaFolder", "required">], "required", never>, "optional">;
1909
+ contentTypes: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
1910
+ headers: import("convex/values").VAny<any, "optional", string>;
1911
+ enabled: import("convex/values").VBoolean<boolean, "required">;
1912
+ maxRetries: import("convex/values").VFloat64<number | undefined, "optional">;
1913
+ timeoutMs: import("convex/values").VFloat64<number | undefined, "optional">;
1914
+ deletedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1915
+ createdBy: import("convex/values").VString<string | undefined, "optional">;
1916
+ updatedBy: import("convex/values").VString<string | undefined, "optional">;
1917
+ }, "required", "name" | "description" | "contentTypes" | "deletedAt" | "createdBy" | "updatedBy" | "url" | "secret" | "eventTypes" | "resourceTypes" | "headers" | "enabled" | "maxRetries" | "timeoutMs" | `headers.${string}`>, {
1918
+ by_enabled: ["enabled", "_creationTime"];
1919
+ by_deleted: ["deletedAt", "_creationTime"];
1920
+ }, {}, {}>;
1921
+ webhookDeliveries: import("convex/server").TableDefinition<import("convex/values").VObject<{
1922
+ lastAttemptAt?: number | undefined;
1923
+ nextRetryAt?: number | undefined;
1924
+ lastStatusCode?: number | undefined;
1925
+ lastError?: string | undefined;
1926
+ lastResponseBody?: string | undefined;
1927
+ lastDurationMs?: number | undefined;
1928
+ deliveredAt?: number | undefined;
1929
+ status: "pending" | "processing" | "failed" | "delivered" | "retrying";
1930
+ eventType: string;
1931
+ payload: any;
1932
+ webhookId: GenericId<"webhookConfigs">;
1933
+ eventId: GenericId<"cmsEvents">;
1934
+ attemptCount: number;
1935
+ maxAttempts: number;
1936
+ }, {
1937
+ webhookId: import("convex/values").VId<GenericId<"webhookConfigs">, "required">;
1938
+ eventId: import("convex/values").VId<GenericId<"cmsEvents">, "required">;
1939
+ eventType: import("convex/values").VString<string, "required">;
1940
+ status: import("convex/values").VUnion<"pending" | "processing" | "failed" | "delivered" | "retrying", [import("convex/values").VLiteral<"pending", "required">, import("convex/values").VLiteral<"processing", "required">, import("convex/values").VLiteral<"delivered", "required">, import("convex/values").VLiteral<"failed", "required">, import("convex/values").VLiteral<"retrying", "required">], "required", never>;
1941
+ attemptCount: import("convex/values").VFloat64<number, "required">;
1942
+ maxAttempts: import("convex/values").VFloat64<number, "required">;
1943
+ lastAttemptAt: import("convex/values").VFloat64<number | undefined, "optional">;
1944
+ nextRetryAt: import("convex/values").VFloat64<number | undefined, "optional">;
1945
+ lastStatusCode: import("convex/values").VFloat64<number | undefined, "optional">;
1946
+ lastError: import("convex/values").VString<string | undefined, "optional">;
1947
+ lastResponseBody: import("convex/values").VString<string | undefined, "optional">;
1948
+ lastDurationMs: import("convex/values").VFloat64<number | undefined, "optional">;
1949
+ payload: import("convex/values").VAny<any, "required", string>;
1950
+ deliveredAt: import("convex/values").VFloat64<number | undefined, "optional">;
1951
+ }, "required", "status" | "eventType" | "payload" | `payload.${string}` | "webhookId" | "eventId" | "attemptCount" | "maxAttempts" | "lastAttemptAt" | "nextRetryAt" | "lastStatusCode" | "lastError" | "lastResponseBody" | "lastDurationMs" | "deliveredAt">, {
1952
+ by_webhook: ["webhookId", "_creationTime"];
1953
+ by_event: ["eventId", "_creationTime"];
1954
+ by_status: ["status", "_creationTime"];
1955
+ by_next_retry: ["status", "nextRetryAt", "_creationTime"];
1956
+ by_webhook_and_status: ["webhookId", "status", "_creationTime"];
1957
+ }, {}, {}>;
1958
+ }, true>;
1959
+ modules: Record<string, () => Promise<unknown>>;
1960
+ fieldFactory: {
1961
+ /**
1962
+ * Create a text field definition.
1963
+ */
1964
+ text(name: string, label: string, options?: {
1965
+ required?: boolean;
1966
+ searchable?: boolean;
1967
+ localized?: boolean;
1968
+ description?: string;
1969
+ defaultValue?: string;
1970
+ minLength?: number;
1971
+ maxLength?: number;
1972
+ pattern?: string;
1973
+ }): TestFieldDefinition;
1974
+ /**
1975
+ * Create a rich text field definition.
1976
+ */
1977
+ richText(name: string, label: string, options?: {
1978
+ required?: boolean;
1979
+ searchable?: boolean;
1980
+ localized?: boolean;
1981
+ description?: string;
1982
+ allowedBlocks?: string[];
1983
+ allowedMarks?: string[];
1984
+ }): TestFieldDefinition;
1985
+ /**
1986
+ * Create a number field definition.
1987
+ */
1988
+ number(name: string, label: string, options?: {
1989
+ required?: boolean;
1990
+ description?: string;
1991
+ defaultValue?: number;
1992
+ min?: number;
1993
+ max?: number;
1994
+ step?: number;
1995
+ precision?: number;
1996
+ }): TestFieldDefinition;
1997
+ /**
1998
+ * Create a boolean field definition.
1999
+ */
2000
+ boolean(name: string, label: string, options?: {
2001
+ required?: boolean;
2002
+ description?: string;
2003
+ defaultValue?: boolean;
2004
+ }): TestFieldDefinition;
2005
+ /**
2006
+ * Create a date field definition.
2007
+ */
2008
+ date(name: string, label: string, options?: {
2009
+ required?: boolean;
2010
+ description?: string;
2011
+ }): TestFieldDefinition;
2012
+ /**
2013
+ * Create a datetime field definition.
2014
+ */
2015
+ datetime(name: string, label: string, options?: {
2016
+ required?: boolean;
2017
+ description?: string;
2018
+ }): TestFieldDefinition;
2019
+ /**
2020
+ * Create a reference field definition.
2021
+ */
2022
+ reference(name: string, label: string, options?: {
2023
+ required?: boolean;
2024
+ description?: string;
2025
+ allowedContentTypes?: string[];
2026
+ multiple?: boolean;
2027
+ minItems?: number;
2028
+ }): TestFieldDefinition;
2029
+ /**
2030
+ * Create a media field definition.
2031
+ */
2032
+ media(name: string, label: string, options?: {
2033
+ required?: boolean;
2034
+ description?: string;
2035
+ allowedMimeTypes?: string[];
2036
+ maxFileSize?: number;
2037
+ multiple?: boolean;
2038
+ }): TestFieldDefinition;
2039
+ /**
2040
+ * Create a JSON field definition.
2041
+ */
2042
+ json(name: string, label: string, options?: {
2043
+ required?: boolean;
2044
+ description?: string;
2045
+ defaultValue?: unknown;
2046
+ }): TestFieldDefinition;
2047
+ /**
2048
+ * Create a select field definition.
2049
+ */
2050
+ select(name: string, label: string, selectOptions: {
2051
+ value: string;
2052
+ label: string;
2053
+ }[], options?: {
2054
+ required?: boolean;
2055
+ description?: string;
2056
+ defaultValue?: string;
2057
+ }): TestFieldDefinition;
2058
+ /**
2059
+ * Create a multi-select field definition.
2060
+ */
2061
+ multiSelect(name: string, label: string, selectOptions: {
2062
+ value: string;
2063
+ label: string;
2064
+ }[], options?: {
2065
+ required?: boolean;
2066
+ description?: string;
2067
+ defaultValue?: string[];
2068
+ }): TestFieldDefinition;
2069
+ };
2070
+ contentTypeFactory: {
2071
+ /**
2072
+ * Create a minimal valid content type.
2073
+ */
2074
+ minimal(name?: string): ContentTypeData;
2075
+ /**
2076
+ * Create a blog post content type with common fields.
2077
+ */
2078
+ blogPost(overrides?: Partial<ContentTypeData>): ContentTypeData;
2079
+ /**
2080
+ * Create a product content type for e-commerce testing.
2081
+ */
2082
+ product(overrides?: Partial<ContentTypeData>): ContentTypeData;
2083
+ /**
2084
+ * Create an author content type.
2085
+ */
2086
+ author(overrides?: Partial<ContentTypeData>): ContentTypeData;
2087
+ /**
2088
+ * Create a category content type.
2089
+ */
2090
+ category(overrides?: Partial<ContentTypeData>): ContentTypeData;
2091
+ /**
2092
+ * Create a page content type (singleton-compatible).
2093
+ */
2094
+ page(overrides?: Partial<ContentTypeData>): ContentTypeData;
2095
+ /**
2096
+ * Create a singleton content type (e.g., for site settings).
2097
+ */
2098
+ siteSettings(overrides?: Partial<ContentTypeData>): ContentTypeData;
2099
+ /**
2100
+ * Create a content type with all supported field types.
2101
+ * Useful for comprehensive testing.
2102
+ */
2103
+ allFieldTypes(overrides?: Partial<ContentTypeData>): ContentTypeData;
2104
+ /**
2105
+ * Create a custom content type with specified fields.
2106
+ */
2107
+ custom(name: string, displayName: string, fields: TestFieldDefinition[], overrides?: Partial<ContentTypeData>): ContentTypeData;
2108
+ };
2109
+ contentEntryFactory: {
2110
+ /**
2111
+ * Reset the internal counter used for generating unique slugs.
2112
+ * Call this in beforeEach() if you need predictable slug values.
2113
+ */
2114
+ resetCounter(): void;
2115
+ /**
2116
+ * Create a minimal valid content entry.
2117
+ */
2118
+ minimal(contentTypeId: Id<"contentTypes">, overrides?: Partial<ContentEntryData>): ContentEntryData;
2119
+ /**
2120
+ * Create a draft content entry.
2121
+ */
2122
+ draft(contentTypeId: Id<"contentTypes">, data: Record<string, unknown>, overrides?: Partial<ContentEntryData>): ContentEntryData;
2123
+ /**
2124
+ * Create a published content entry.
2125
+ */
2126
+ published(contentTypeId: Id<"contentTypes">, data: Record<string, unknown>, overrides?: Partial<ContentEntryData>): ContentEntryData;
2127
+ /**
2128
+ * Create an archived content entry.
2129
+ */
2130
+ archived(contentTypeId: Id<"contentTypes">, data: Record<string, unknown>, overrides?: Partial<ContentEntryData>): ContentEntryData;
2131
+ /**
2132
+ * Create a scheduled content entry.
2133
+ */
2134
+ scheduled(contentTypeId: Id<"contentTypes">, data: Record<string, unknown>, scheduledPublishAt: number, overrides?: Partial<ContentEntryData>): ContentEntryData;
2135
+ /**
2136
+ * Create a soft-deleted content entry.
2137
+ */
2138
+ deleted(contentTypeId: Id<"contentTypes">, data: Record<string, unknown>, overrides?: Partial<ContentEntryData>): ContentEntryData;
2139
+ /**
2140
+ * Create a localized content entry variant.
2141
+ */
2142
+ localized(contentTypeId: Id<"contentTypes">, primaryEntryId: Id<"contentEntries">, locale: string, data: Record<string, unknown>, overrides?: Partial<ContentEntryData>): ContentEntryData;
2143
+ /**
2144
+ * Create a blog post entry with typical data.
2145
+ */
2146
+ blogPost(contentTypeId: Id<"contentTypes">, overrides?: Partial<ContentEntryData>): ContentEntryData;
2147
+ /**
2148
+ * Create a product entry with typical data.
2149
+ */
2150
+ product(contentTypeId: Id<"contentTypes">, overrides?: Partial<ContentEntryData>): ContentEntryData;
2151
+ /**
2152
+ * Create multiple entries at once.
2153
+ */
2154
+ batch(contentTypeId: Id<"contentTypes">, count: number, factory?: (contentTypeId: Id<"contentTypes">, index: number) => Partial<ContentEntryData>): ContentEntryData[];
2155
+ };
2156
+ mediaAssetFactory: {
2157
+ /**
2158
+ * Reset the internal counter used for generating unique filenames.
2159
+ */
2160
+ resetCounter(): void;
2161
+ /**
2162
+ * Create a minimal valid media asset.
2163
+ */
2164
+ minimal(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
2165
+ /**
2166
+ * Create an image asset.
2167
+ */
2168
+ image(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
2169
+ /**
2170
+ * Create a PNG image asset.
2171
+ */
2172
+ png(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
2173
+ /**
2174
+ * Create a video asset.
2175
+ */
2176
+ video(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
2177
+ /**
2178
+ * Create an audio asset.
2179
+ */
2180
+ audio(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
2181
+ /**
2182
+ * Create a document asset (PDF).
2183
+ */
2184
+ document(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
2185
+ /**
2186
+ * Create a soft-deleted media asset.
2187
+ */
2188
+ deleted(storageId: Id<"_storage">, overrides?: Partial<MediaAssetData>): MediaAssetData;
2189
+ /**
2190
+ * Create multiple assets at once.
2191
+ */
2192
+ batch(storageIds: Id<"_storage">[], factory?: (storageId: Id<"_storage">, index: number) => Partial<MediaAssetData>): MediaAssetData[];
2193
+ };
2194
+ mediaFolderFactory: {
2195
+ /**
2196
+ * Reset the internal counter used for generating unique folder names.
2197
+ */
2198
+ resetCounter(): void;
2199
+ /**
2200
+ * Create a root-level folder.
2201
+ */
2202
+ root(name: string, overrides?: Partial<MediaFolderData>): MediaFolderData;
2203
+ /**
2204
+ * Create a child folder.
2205
+ */
2206
+ child(name: string, parentId: Id<"mediaItems">, parentPath: string, overrides?: Partial<MediaFolderData>): MediaFolderData;
2207
+ /**
2208
+ * Create a common folder structure for testing.
2209
+ */
2210
+ common(): {
2211
+ images: MediaFolderData;
2212
+ videos: MediaFolderData;
2213
+ documents: MediaFolderData;
2214
+ };
2215
+ };
2216
+ assertContentType: typeof assertContentType;
2217
+ assertContentEntry: typeof assertContentEntry;
2218
+ assertMediaAsset: typeof assertMediaAsset;
2219
+ assertStatus: typeof assertStatus;
2220
+ assertPublished: typeof assertPublished;
2221
+ assertDeleted: typeof assertDeleted;
2222
+ assertNotDeleted: typeof assertNotDeleted;
2223
+ assertField: typeof assertField;
2224
+ uniqueSlug: typeof uniqueSlug;
2225
+ uniqueName: typeof uniqueName;
2226
+ pastTimestamp: typeof pastTimestamp;
2227
+ futureTimestamp: typeof futureTimestamp;
2228
+ };
2229
+ export default _default;
2230
+ //# sourceMappingURL=test.d.ts.map