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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/component/validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,EACX,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,MAAM,EAAE,EACd,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,UAAU,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,MAAM,aAAa,CAAC;AAGrB,OAAO,EACN,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,GACtB,CAAC;AAGF,OAAO,EACN,UAAU,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACZ,eAAe,EACf,cAAc,GACd,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iJAahC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -0,0 +1,641 @@
1
+ /**
2
+ * Shared validators for the CMS component.
3
+ *
4
+ * These validators can be imported and used in function definitions
5
+ * to ensure type-safe arguments and return values.
6
+ *
7
+ * Provides:
8
+ * - Field type validators for content type definitions
9
+ * - Argument validators for CRUD operations
10
+ * - Document validators for return types (derived from schema)
11
+ *
12
+ * Document validators are derived from the schema using convex-helpers `doc()`
13
+ * function, ensuring they stay in sync with schema definitions automatically.
14
+ */
15
+ import { v } from "convex/values";
16
+ import { paginationOptsValidator } from "convex/server";
17
+ import { doc } from "convex-helpers/validators";
18
+ import schema, { fieldTypeValidator, fieldDefinitionValidator, contentStatusValidator, mediaTypeValidator, variantTypeValidator, variantStatusValidator, fieldTypes, contentStatuses, mediaTypes, variantTypes, variantStatuses, variantFormats, } from "./schema.js";
19
+ // Re-export schema validators for convenience
20
+ export { fieldTypeValidator, fieldDefinitionValidator, contentStatusValidator, mediaTypeValidator, variantTypeValidator, variantStatusValidator, };
21
+ // Re-export schema constants for convenience
22
+ export { fieldTypes, contentStatuses, mediaTypes, variantTypes, variantStatuses, variantFormats, };
23
+ // =============================================================================
24
+ // Content Type Validators
25
+ // =============================================================================
26
+ /**
27
+ * Args for creating a content type - only user-provided fields.
28
+ * Fields like isActive, deletedAt are set by the mutation.
29
+ */
30
+ export const createContentTypeArgs = v.object({
31
+ name: v.string(),
32
+ displayName: v.string(),
33
+ createdBy: v.string(),
34
+ description: v.optional(v.string()),
35
+ fields: v.array(fieldDefinitionValidator),
36
+ icon: v.optional(v.string()),
37
+ singleton: v.optional(v.boolean()),
38
+ slugField: v.optional(v.string()),
39
+ titleField: v.optional(v.string()),
40
+ sortOrder: v.optional(v.number()),
41
+ // isActive defaults to true in the mutation
42
+ // deletedAt is not set on creation
43
+ });
44
+ /**
45
+ * Args for updating a content type - all fields optional except id.
46
+ */
47
+ export const updateContentTypeArgs = v.object({
48
+ id: v.id("contentTypes"),
49
+ displayName: v.optional(v.string()),
50
+ description: v.optional(v.string()),
51
+ fields: v.optional(v.array(fieldDefinitionValidator)),
52
+ icon: v.optional(v.string()),
53
+ singleton: v.optional(v.boolean()),
54
+ slugField: v.optional(v.string()),
55
+ titleField: v.optional(v.string()),
56
+ sortOrder: v.optional(v.number()),
57
+ isActive: v.optional(v.boolean()),
58
+ updatedBy: v.optional(v.string()),
59
+ // name cannot be updated (used as identifier)
60
+ });
61
+ export const deleteContentTypeArgs = v.object({
62
+ id: v.id("contentTypes"),
63
+ cascade: v.optional(v.boolean()),
64
+ hardDelete: v.optional(v.boolean()),
65
+ deletedBy: v.optional(v.string()),
66
+ });
67
+ // =============================================================================
68
+ // Content Entry Validators
69
+ // =============================================================================
70
+ /**
71
+ * Args for creating a content entry - only user-provided fields.
72
+ * Fields like version, deletedAt, searchText are set by the mutation.
73
+ */
74
+ export const createContentEntryArgs = v.object({
75
+ contentTypeId: v.id("contentTypes"),
76
+ slug: v.optional(v.string()), // Optional - auto-generated if not provided
77
+ data: v.any(),
78
+ locale: v.optional(v.string()),
79
+ primaryEntryId: v.optional(v.id("contentEntries")),
80
+ status: v.optional(contentStatusValidator), // Defaults to "draft"
81
+ scheduledPublishAt: v.optional(v.number()),
82
+ createdBy: v.optional(v.string()),
83
+ // version is set to 1 by the mutation
84
+ // deletedAt, searchText are not set on creation
85
+ });
86
+ export const updateContentEntryArgs = v.object({
87
+ id: v.id("contentEntries"),
88
+ slug: v.optional(v.string()),
89
+ data: v.optional(v.any()),
90
+ status: v.optional(contentStatusValidator),
91
+ scheduledPublishAt: v.optional(v.number()),
92
+ updatedBy: v.optional(v.string()),
93
+ regenerateSlug: v.optional(v.boolean()),
94
+ });
95
+ export const publishEntryArgs = v.object({
96
+ id: v.id("contentEntries"),
97
+ changeDescription: v.optional(v.string()),
98
+ updatedBy: v.optional(v.string()),
99
+ });
100
+ export const scheduleEntryArgs = v.object({
101
+ id: v.id("contentEntries"),
102
+ publishAt: v.number(),
103
+ updatedBy: v.optional(v.string()),
104
+ });
105
+ export const unpublishEntryArgs = v.object({
106
+ id: v.id("contentEntries"),
107
+ updatedBy: v.optional(v.string()),
108
+ });
109
+ export const deleteContentEntryArgs = v.object({
110
+ id: v.id("contentEntries"),
111
+ deletedBy: v.optional(v.string()),
112
+ hardDelete: v.optional(v.boolean()),
113
+ });
114
+ export const duplicateContentEntryArgs = v.object({
115
+ sourceEntryId: v.id("contentEntries"),
116
+ slug: v.optional(v.string()),
117
+ copyMediaReferences: v.optional(v.boolean()),
118
+ locale: v.optional(v.string()),
119
+ createdBy: v.optional(v.string()),
120
+ });
121
+ // =============================================================================
122
+ // Version Validators
123
+ // =============================================================================
124
+ export const getVersionHistoryArgs = v.object({
125
+ entryId: v.id("contentEntries"),
126
+ paginationOpts: paginationOptsValidator,
127
+ });
128
+ export const getVersionArgs = v.object({
129
+ entryId: v.id("contentEntries"),
130
+ versionId: v.optional(v.id("contentVersions")),
131
+ versionNumber: v.optional(v.number()),
132
+ });
133
+ export const rollbackVersionArgs = v.object({
134
+ entryId: v.id("contentEntries"),
135
+ versionNumber: v.number(),
136
+ updatedBy: v.optional(v.string()),
137
+ });
138
+ export const createVersionSnapshotArgs = v.object({
139
+ entryId: v.id("contentEntries"),
140
+ changeDescription: v.optional(v.string()),
141
+ createdBy: v.optional(v.string()),
142
+ wasPublished: v.optional(v.boolean()),
143
+ });
144
+ export const compareVersionsArgs = v.object({
145
+ entryId: v.id("contentEntries"),
146
+ fromVersionNumber: v.number(),
147
+ toVersionNumber: v.number(),
148
+ });
149
+ export const versionFieldDiff = v.object({
150
+ field: v.string(),
151
+ fromValue: v.optional(v.any()),
152
+ toValue: v.optional(v.any()),
153
+ changeType: v.union(v.literal("added"), v.literal("removed"), v.literal("modified")),
154
+ });
155
+ export const compareVersionsResult = v.object({
156
+ hasChanges: v.boolean(),
157
+ fromVersion: v.object({
158
+ versionNumber: v.number(),
159
+ status: contentStatusValidator,
160
+ slug: v.string(),
161
+ wasPublished: v.boolean(),
162
+ createdAt: v.number(),
163
+ }),
164
+ toVersion: v.object({
165
+ versionNumber: v.number(),
166
+ status: contentStatusValidator,
167
+ slug: v.string(),
168
+ wasPublished: v.boolean(),
169
+ createdAt: v.number(),
170
+ }),
171
+ changedFields: v.array(v.string()),
172
+ fieldDiffs: v.array(versionFieldDiff),
173
+ slugChanged: v.boolean(),
174
+ statusChanged: v.boolean(),
175
+ changeSummary: v.string(),
176
+ });
177
+ // =============================================================================
178
+ // Media Asset Validators
179
+ // =============================================================================
180
+ /**
181
+ * Args for creating a media asset.
182
+ * Required: storageId, mimeType, name
183
+ * Optional: metadata fields like title, description, altText
184
+ */
185
+ export const createMediaAssetArgs = v.object({
186
+ storageId: v.id("_storage"),
187
+ mimeType: v.string(),
188
+ name: v.string(),
189
+ title: v.optional(v.string()),
190
+ description: v.optional(v.string()),
191
+ parentId: v.optional(v.id("mediaItems")),
192
+ tags: v.optional(v.array(v.string())),
193
+ size: v.optional(v.number()),
194
+ metadata: v.optional(v.record(v.string(), v.any())),
195
+ width: v.optional(v.number()),
196
+ height: v.optional(v.number()),
197
+ duration: v.optional(v.number()),
198
+ altText: v.optional(v.string()),
199
+ createdBy: v.optional(v.string()),
200
+ });
201
+ /**
202
+ * Args for updating a media asset - all fields optional except id.
203
+ * Cannot change: storageId, mimeType (immutable properties)
204
+ */
205
+ export const updateMediaAssetArgs = v.object({
206
+ id: v.id("mediaItems"),
207
+ name: v.optional(v.string()),
208
+ title: v.optional(v.string()),
209
+ description: v.optional(v.string()),
210
+ parentId: v.optional(v.id("mediaItems")),
211
+ tags: v.optional(v.array(v.string())),
212
+ metadata: v.optional(v.record(v.string(), v.any())),
213
+ width: v.optional(v.number()),
214
+ height: v.optional(v.number()),
215
+ duration: v.optional(v.number()),
216
+ altText: v.optional(v.string()),
217
+ updatedBy: v.optional(v.string()),
218
+ });
219
+ export const deleteMediaAssetArgs = v.object({
220
+ id: v.id("mediaItems"),
221
+ deletedBy: v.optional(v.string()),
222
+ hardDelete: v.optional(v.boolean()),
223
+ forceDelete: v.optional(v.boolean()),
224
+ });
225
+ export const restoreMediaAssetArgs = v.object({
226
+ id: v.id("mediaItems"),
227
+ restoredBy: v.optional(v.string()),
228
+ });
229
+ // =============================================================================
230
+ // Media Folder Validators
231
+ // =============================================================================
232
+ /**
233
+ * Args for creating a media folder.
234
+ * Required: name
235
+ * Optional: title, description, parentId, etc.
236
+ */
237
+ export const createMediaFolderArgs = v.object({
238
+ name: v.string(),
239
+ title: v.optional(v.string()),
240
+ description: v.optional(v.string()),
241
+ parentId: v.optional(v.id("mediaItems")),
242
+ tags: v.optional(v.array(v.string())),
243
+ metadata: v.optional(v.record(v.string(), v.any())),
244
+ sortOrder: v.optional(v.number()),
245
+ createdBy: v.optional(v.string()),
246
+ });
247
+ /**
248
+ * Args for updating a media folder - all fields optional except id.
249
+ */
250
+ export const updateMediaFolderArgs = v.object({
251
+ id: v.id("mediaItems"),
252
+ name: v.optional(v.string()),
253
+ title: v.optional(v.string()),
254
+ description: v.optional(v.string()),
255
+ parentId: v.optional(v.id("mediaItems")),
256
+ tags: v.optional(v.array(v.string())),
257
+ metadata: v.optional(v.record(v.string(), v.any())),
258
+ sortOrder: v.optional(v.number()),
259
+ updatedBy: v.optional(v.string()),
260
+ });
261
+ export const moveFolderArgs = v.object({
262
+ id: v.id("mediaItems"),
263
+ newParentId: v.optional(v.id("mediaItems")),
264
+ updatedBy: v.optional(v.string()),
265
+ });
266
+ export const deleteMediaFolderArgs = v.object({
267
+ id: v.id("mediaItems"),
268
+ deletedBy: v.optional(v.string()),
269
+ hardDelete: v.optional(v.boolean()),
270
+ recursive: v.optional(v.boolean()),
271
+ });
272
+ export const restoreMediaFolderArgs = v.object({
273
+ id: v.id("mediaItems"),
274
+ restoredBy: v.optional(v.string()),
275
+ recursive: v.optional(v.boolean()),
276
+ });
277
+ export const moveMediaAssetsArgs = v.object({
278
+ assetIds: v.array(v.id("mediaItems")),
279
+ targetFolderId: v.optional(v.id("mediaItems")),
280
+ movedBy: v.optional(v.string()),
281
+ });
282
+ export const moveMediaAssetItemResult = v.object({
283
+ id: v.id("mediaItems"),
284
+ success: v.boolean(),
285
+ error: v.optional(v.string()),
286
+ previousFolderId: v.optional(v.id("mediaItems")),
287
+ });
288
+ export const moveMediaAssetsResult = v.object({
289
+ total: v.number(),
290
+ succeeded: v.number(),
291
+ failed: v.number(),
292
+ targetFolderId: v.optional(v.id("mediaItems")),
293
+ targetFolderPath: v.optional(v.string()),
294
+ results: v.array(moveMediaAssetItemResult),
295
+ });
296
+ // =============================================================================
297
+ // Media Variant Validators
298
+ // =============================================================================
299
+ export const createMediaVariantArgs = v.object({
300
+ assetId: v.id("mediaItems"),
301
+ storageId: v.id("_storage"),
302
+ variantType: variantTypeValidator,
303
+ width: v.optional(v.number()),
304
+ height: v.optional(v.number()),
305
+ format: v.string(),
306
+ mimeType: v.string(),
307
+ size: v.number(),
308
+ quality: v.optional(v.number()),
309
+ preset: v.optional(v.string()),
310
+ autoGenerated: v.optional(v.boolean()),
311
+ createdBy: v.optional(v.string()),
312
+ });
313
+ export const requestVariantGenerationArgs = v.object({
314
+ assetId: v.id("mediaItems"),
315
+ variantType: variantTypeValidator,
316
+ width: v.optional(v.number()),
317
+ height: v.optional(v.number()),
318
+ format: v.string(),
319
+ quality: v.optional(v.number()),
320
+ preset: v.optional(v.string()),
321
+ requestedBy: v.optional(v.string()),
322
+ });
323
+ export const updateVariantStatusArgs = v.object({
324
+ id: v.id("mediaVariants"),
325
+ status: variantStatusValidator,
326
+ storageId: v.optional(v.id("_storage")),
327
+ size: v.optional(v.number()),
328
+ mimeType: v.optional(v.string()),
329
+ width: v.optional(v.number()),
330
+ height: v.optional(v.number()),
331
+ errorMessage: v.optional(v.string()),
332
+ });
333
+ export const deleteMediaVariantArgs = v.object({
334
+ id: v.id("mediaVariants"),
335
+ hardDelete: v.optional(v.boolean()),
336
+ deletedBy: v.optional(v.string()),
337
+ });
338
+ export const deleteAssetVariantsArgs = v.object({
339
+ assetId: v.id("mediaItems"),
340
+ hardDelete: v.optional(v.boolean()),
341
+ deletedBy: v.optional(v.string()),
342
+ });
343
+ export const getMediaVariantArgs = v.object({
344
+ id: v.id("mediaVariants"),
345
+ includeDeleted: v.optional(v.boolean()),
346
+ });
347
+ export const listMediaVariantsArgs = v.object({
348
+ assetId: v.id("mediaItems"),
349
+ variantType: v.optional(variantTypeValidator),
350
+ format: v.optional(v.string()),
351
+ preset: v.optional(v.string()),
352
+ status: v.optional(variantStatusValidator),
353
+ includeDeleted: v.optional(v.boolean()),
354
+ });
355
+ export const getBestVariantArgs = v.object({
356
+ assetId: v.id("mediaItems"),
357
+ targetWidth: v.optional(v.number()),
358
+ targetHeight: v.optional(v.number()),
359
+ preferredFormat: v.optional(v.string()),
360
+ fallbackToOriginal: v.optional(v.boolean()),
361
+ });
362
+ export const mediaVariantDoc = doc(schema, "mediaVariants");
363
+ export const mediaVariantWithUrlDoc = v.object({
364
+ ...mediaVariantDoc.fields,
365
+ url: v.union(v.string(), v.null()),
366
+ });
367
+ export const variantPresetValidator = v.object({
368
+ name: v.string(),
369
+ variantType: variantTypeValidator,
370
+ width: v.optional(v.number()),
371
+ height: v.optional(v.number()),
372
+ format: v.string(),
373
+ quality: v.optional(v.number()),
374
+ description: v.optional(v.string()),
375
+ });
376
+ export const generateVariantsResult = v.object({
377
+ total: v.number(),
378
+ succeeded: v.number(),
379
+ failed: v.number(),
380
+ results: v.array(v.object({
381
+ preset: v.string(),
382
+ success: v.boolean(),
383
+ variantId: v.optional(v.id("mediaVariants")),
384
+ error: v.optional(v.string()),
385
+ })),
386
+ });
387
+ export const srcsetEntryValidator = v.object({
388
+ url: v.string(),
389
+ descriptor: v.string(),
390
+ width: v.number(),
391
+ format: v.string(),
392
+ });
393
+ export const responsiveSrcsetResult = v.object({
394
+ src: v.union(v.string(), v.null()),
395
+ srcset: v.string(),
396
+ entries: v.array(srcsetEntryValidator),
397
+ sizes: v.optional(v.string()),
398
+ });
399
+ // =============================================================================
400
+ // Query/Pagination Validators
401
+ // =============================================================================
402
+ export const paginationResultValidator = (itemValidator) => v.object({
403
+ page: v.array(itemValidator),
404
+ continueCursor: v.union(v.string(), v.null()),
405
+ isDone: v.boolean(),
406
+ });
407
+ export const contentQueryArgs = v.object({
408
+ contentTypeId: v.optional(v.id("contentTypes")),
409
+ contentTypeName: v.optional(v.string()),
410
+ status: v.optional(contentStatusValidator),
411
+ statusIn: v.optional(v.array(contentStatusValidator)),
412
+ locale: v.optional(v.string()),
413
+ search: v.optional(v.string()),
414
+ includeDeleted: v.optional(v.boolean()),
415
+ cursor: v.optional(v.string()),
416
+ limit: v.optional(v.number()),
417
+ });
418
+ export const mediaQueryArgs = v.object({
419
+ folderId: v.optional(v.id("mediaItems")),
420
+ type: v.optional(mediaTypeValidator),
421
+ mimeType: v.optional(v.string()),
422
+ search: v.optional(v.string()),
423
+ tags: v.optional(v.array(v.string())),
424
+ includeDeleted: v.optional(v.boolean()),
425
+ cursor: v.optional(v.string()),
426
+ limit: v.optional(v.number()),
427
+ });
428
+ export const mediaSortDirectionValidator = v.union(v.literal("asc"), v.literal("desc"));
429
+ export const mediaSortFieldValidator = v.union(v.literal("_creationTime"), v.literal("filename"), v.literal("size"), v.literal("type"), v.literal("mimeType"));
430
+ export const listMediaAssetsArgs = v.object({
431
+ folderId: v.optional(v.id("mediaItems")),
432
+ includeRootLevel: v.optional(v.boolean()),
433
+ type: v.optional(mediaTypeValidator),
434
+ mimeType: v.optional(v.string()),
435
+ mimeTypePrefix: v.optional(v.string()),
436
+ search: v.optional(v.string()),
437
+ tags: v.optional(v.array(v.string())),
438
+ includeDeleted: v.optional(v.boolean()),
439
+ deletedOnly: v.optional(v.boolean()),
440
+ sortField: v.optional(mediaSortFieldValidator),
441
+ sortDirection: v.optional(mediaSortDirectionValidator),
442
+ paginationOpts: paginationOptsValidator,
443
+ });
444
+ // =============================================================================
445
+ // Document Validators (for return types)
446
+ // =============================================================================
447
+ export const contentTypeDoc = doc(schema, "contentTypes");
448
+ export const contentEntryDoc = doc(schema, "contentEntries");
449
+ export const contentVersionDoc = doc(schema, "contentVersions");
450
+ export const mediaItemDoc = doc(schema, "mediaItems");
451
+ // Re-export schema validators for media items
452
+ export { mediaAssetItemValidator, mediaFolderItemValidator, mediaItemValidator, } from "./schema.js";
453
+ export const taxonomyDoc = doc(schema, "taxonomies");
454
+ export const taxonomyTermDoc = doc(schema, "taxonomyTerms");
455
+ export const contentEntryTagDoc = doc(schema, "contentEntryTags");
456
+ export const webhookConfigDoc = doc(schema, "webhookConfigs");
457
+ export const webhookDeliveryDoc = doc(schema, "webhookDeliveries");
458
+ export const mediaAssetReference = v.object({
459
+ entryId: v.id("contentEntries"),
460
+ slug: v.string(),
461
+ contentTypeName: v.string(),
462
+ fields: v.array(v.string()),
463
+ });
464
+ // =============================================================================
465
+ // Bulk Operation Validators
466
+ // =============================================================================
467
+ /**
468
+ * Maximum number of entries that can be processed in a single bulk operation.
469
+ * Respects Convex transaction limits (16,000 documents written max).
470
+ */
471
+ export const BULK_OPERATION_BATCH_SIZE = 100;
472
+ export const bulkPublishArgs = v.object({
473
+ ids: v.array(v.id("contentEntries")),
474
+ changeDescription: v.optional(v.string()),
475
+ updatedBy: v.optional(v.string()),
476
+ });
477
+ export const bulkUnpublishArgs = v.object({
478
+ ids: v.array(v.id("contentEntries")),
479
+ updatedBy: v.optional(v.string()),
480
+ });
481
+ export const bulkDeleteArgs = v.object({
482
+ ids: v.array(v.id("contentEntries")),
483
+ deletedBy: v.optional(v.string()),
484
+ hardDelete: v.optional(v.boolean()),
485
+ });
486
+ export const bulkUpdateArgs = v.object({
487
+ ids: v.array(v.id("contentEntries")),
488
+ data: v.optional(v.any()),
489
+ status: v.optional(contentStatusValidator),
490
+ updatedBy: v.optional(v.string()),
491
+ });
492
+ export const bulkOperationItemResult = v.object({
493
+ id: v.id("contentEntries"),
494
+ success: v.boolean(),
495
+ error: v.optional(v.string()),
496
+ });
497
+ export const bulkOperationResult = v.object({
498
+ total: v.number(),
499
+ succeeded: v.number(),
500
+ failed: v.number(),
501
+ results: v.array(bulkOperationItemResult),
502
+ });
503
+ // =============================================================================
504
+ // Trash Operation Validators
505
+ // =============================================================================
506
+ /** Default retention period in days for soft-deleted items. */
507
+ export const DEFAULT_TRASH_RETENTION_DAYS = 30;
508
+ export const trashConfigDoc = doc(schema, "trashConfig");
509
+ export const updateTrashConfigArgs = v.object({
510
+ retentionDays: v.optional(v.number()),
511
+ autoCleanupEnabled: v.optional(v.boolean()),
512
+ updatedBy: v.optional(v.string()),
513
+ });
514
+ export const listTrashArgs = v.object({
515
+ contentTypeId: v.optional(v.id("contentTypes")),
516
+ contentTypeName: v.optional(v.string()),
517
+ search: v.optional(v.string()),
518
+ paginationOpts: paginationOptsValidator,
519
+ });
520
+ export const emptyTrashArgs = v.object({
521
+ olderThanDays: v.optional(v.number()),
522
+ contentTypeId: v.optional(v.id("contentTypes")),
523
+ deletedBy: v.optional(v.string()),
524
+ });
525
+ export const emptyTrashResult = v.object({
526
+ deletedCount: v.number(),
527
+ deletedVersionsCount: v.number(),
528
+ errors: v.array(v.object({
529
+ id: v.id("contentEntries"),
530
+ error: v.string(),
531
+ })),
532
+ });
533
+ export const trashItemDoc = v.object({
534
+ ...contentEntryDoc.fields,
535
+ deletedDaysAgo: v.number(),
536
+ expiresAt: v.optional(v.number()),
537
+ contentTypeName: v.optional(v.string()),
538
+ });
539
+ // =============================================================================
540
+ // Content Lock Validators
541
+ // =============================================================================
542
+ /** Default lock duration in milliseconds (30 minutes). */
543
+ export const DEFAULT_LOCK_DURATION_MS = 30 * 60 * 1000;
544
+ /** Maximum lock duration in milliseconds (4 hours). */
545
+ export const MAX_LOCK_DURATION_MS = 4 * 60 * 60 * 1000;
546
+ export const acquireLockArgs = v.object({
547
+ id: v.id("contentEntries"),
548
+ userId: v.string(),
549
+ lockDuration: v.optional(v.number()),
550
+ });
551
+ export const releaseLockArgs = v.object({
552
+ id: v.id("contentEntries"),
553
+ userId: v.string(),
554
+ });
555
+ export const forceReleaseLockArgs = v.object({
556
+ id: v.id("contentEntries"),
557
+ releasedBy: v.string(),
558
+ });
559
+ export const renewLockArgs = v.object({
560
+ id: v.id("contentEntries"),
561
+ userId: v.string(),
562
+ lockDuration: v.optional(v.number()),
563
+ });
564
+ export const checkLockArgs = v.object({
565
+ id: v.id("contentEntries"),
566
+ });
567
+ export const listLockedEntriesArgs = v.object({
568
+ contentTypeId: v.optional(v.id("contentTypes")),
569
+ lockedBy: v.optional(v.string()),
570
+ paginationOpts: paginationOptsValidator,
571
+ });
572
+ export const lockStatusDoc = v.object({
573
+ isLocked: v.boolean(),
574
+ lockedBy: v.optional(v.string()),
575
+ lockExpiresAt: v.optional(v.number()),
576
+ timeRemaining: v.optional(v.number()),
577
+ isExpired: v.optional(v.boolean()),
578
+ });
579
+ export const lockAcquisitionResult = v.object({
580
+ success: v.boolean(),
581
+ entry: v.optional(contentEntryDoc),
582
+ error: v.optional(v.string()),
583
+ currentLockHolder: v.optional(v.string()),
584
+ currentLockExpiresAt: v.optional(v.number()),
585
+ });
586
+ // =============================================================================
587
+ // CMS Event Validators
588
+ // =============================================================================
589
+ export const eventResourceTypes = [
590
+ "contentEntry",
591
+ "contentType",
592
+ "mediaAsset",
593
+ "mediaFolder",
594
+ ];
595
+ export const eventActions = [
596
+ "created",
597
+ "updated",
598
+ "published",
599
+ "unpublished",
600
+ "deleted",
601
+ "restored",
602
+ "duplicated",
603
+ "scheduled",
604
+ ];
605
+ export const eventResourceTypeValidator = v.union(v.literal("contentEntry"), v.literal("contentType"), v.literal("mediaAsset"), v.literal("mediaFolder"));
606
+ export const eventActionValidator = v.union(v.literal("created"), v.literal("updated"), v.literal("published"), v.literal("unpublished"), v.literal("deleted"), v.literal("restored"), v.literal("duplicated"), v.literal("scheduled"));
607
+ export const cmsEventDoc = doc(schema, "cmsEvents");
608
+ export const listEventsArgs = v.object({
609
+ resourceType: v.optional(eventResourceTypeValidator),
610
+ action: v.optional(eventActionValidator),
611
+ processed: v.optional(v.boolean()),
612
+ limit: v.optional(v.number()),
613
+ cursor: v.optional(v.string()),
614
+ });
615
+ export const getResourceEventsArgs = v.object({
616
+ resourceType: eventResourceTypeValidator,
617
+ resourceId: v.string(),
618
+ limit: v.optional(v.number()),
619
+ });
620
+ export const markEventsProcessedArgs = v.object({
621
+ eventIds: v.array(v.id("cmsEvents")),
622
+ });
623
+ export const cleanupEventsArgs = v.object({
624
+ retentionDays: v.optional(v.number()),
625
+ });
626
+ // =============================================================================
627
+ // Mutation Authorization Context
628
+ // =============================================================================
629
+ /**
630
+ * Validator for mutation-level authorization context.
631
+ * Enables defense-in-depth: client wrapper performs auth checks AND mutations
632
+ * can validate auth when context is provided.
633
+ */
634
+ export const mutationAuthContext = v.object({
635
+ userId: v.string(),
636
+ role: v.union(v.string(), v.null()),
637
+ resourceOwnerId: v.optional(v.string()),
638
+ });
639
+ // Export the schema for reference
640
+ export { schema };
641
+ //# sourceMappingURL=validators.js.map