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,85 @@
1
+ /**
2
+ * Code-Only Schema System
3
+ *
4
+ * This module provides type-safe content type definitions using Convex validators.
5
+ * Types are automatically inferred via Convex's native `Infer<typeof validator>` pattern.
6
+ *
7
+ * ## Quick Start
8
+ *
9
+ * ```typescript
10
+ * import { v, Infer } from "convex/values";
11
+ * import { defineContentType, InferContentType } from "@convex-cms/core";
12
+ *
13
+ * // Define a content type with a Convex validator
14
+ * export const blogPost = defineContentType({
15
+ * name: "blog_post",
16
+ * validator: v.object({
17
+ * title: v.string(),
18
+ * content: v.string(),
19
+ * publishedAt: v.optional(v.number()),
20
+ * }),
21
+ * meta: {
22
+ * displayName: "Blog Post",
23
+ * titleField: "title",
24
+ * },
25
+ * });
26
+ *
27
+ * // Type is automatically inferred
28
+ * type BlogPostData = InferContentType<typeof blogPost>;
29
+ * // { title: string; content: string; publishedAt?: number }
30
+ * ```
31
+ *
32
+ * ## Creating a Schema
33
+ *
34
+ * ```typescript
35
+ * import { createContentSchema, InferSchema } from "@convex-cms/core";
36
+ *
37
+ * // Combine multiple content types into a schema
38
+ * export const contentSchema = createContentSchema({
39
+ * blogPost,
40
+ * author,
41
+ * product,
42
+ * });
43
+ *
44
+ * // Infer all types at once
45
+ * export type ContentTypes = InferSchema<typeof contentSchema.definitions>;
46
+ * // {
47
+ * // blog_post: { title: string; content: string; ... };
48
+ * // author: { name: string; bio?: string; ... };
49
+ * // product: { name: string; price: number; ... };
50
+ * // }
51
+ * ```
52
+ *
53
+ * ## Using with CMS Client
54
+ *
55
+ * ```typescript
56
+ * import { createCmsClient } from "@convex-cms/core";
57
+ * import { components } from "./_generated/api";
58
+ * import { contentSchema } from "./schema";
59
+ *
60
+ * // Create a schema-aware CMS client
61
+ * export const cms = createCmsClient(components.convexCms, {
62
+ * schema: contentSchema,
63
+ * // ... other options
64
+ * });
65
+ *
66
+ * // Now get() returns typed data
67
+ * const post = await cms.contentEntries.get<"blog_post">(ctx, id);
68
+ * post.data.title // ✅ string - fully typed
69
+ * post.data.typo // ❌ Error: Property 'typo' does not exist
70
+ * ```
71
+ *
72
+ * @module
73
+ */
74
+ export { defineContentType, createContentSchema, toFieldDefinitions } from "./defineContentType.js";
75
+ export type { ContentTypeConfig, ContentTypeDefinition, ContentTypeMeta, FieldMeta, FieldRenderAs, } from "./types.js";
76
+ export type { InferContentType, InferSchema, ContentSchema, SchemaContentTypeNames, SchemaContentType, ContentTypeFieldNames, } from "./types.js";
77
+ export type { ContentSchemaInstance, DatabaseFieldDefinition } from "./defineContentType.js";
78
+ export { isContentTypeDefinition } from "./types.js";
79
+ export { createTypedCmsClient, TypedContentEntriesApiImpl } from "./typedClient.js";
80
+ export { detectSchemaDrift, formatDriftReport, hasErrors, filterReportByContentTypes, } from "./schemaDrift.js";
81
+ export type { DriftSeverity, DriftType, DriftIssue, DriftSummary, SchemaDriftReport, DetectDriftOptions, } from "./schemaDrift.js";
82
+ export { generateTypesFromDatabase, generateTypesFromDefinitions, validateGeneratedCode, } from "./codegen.js";
83
+ export type { CodegenOptions, CodegenResult, } from "./codegen.js";
84
+ export type { TypedContentEntry, TypedPaginationResult, TypedContentEntriesApi, TypedCreateEntryOptions, TypedUpdateEntryOptions, TypedListEntriesOptions, SchemaDataType, ValidContentTypeName, HasContentType, GetContentTypeDefinition, TypedCmsClientConfig, TypedCmsClient, } from "./typedClient.js";
85
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/schema/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AAMH,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAOpG,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAG7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAMrD,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAMpF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AAOtB,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,GACf,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Code-Only Schema System
3
+ *
4
+ * This module provides type-safe content type definitions using Convex validators.
5
+ * Types are automatically inferred via Convex's native `Infer<typeof validator>` pattern.
6
+ *
7
+ * ## Quick Start
8
+ *
9
+ * ```typescript
10
+ * import { v, Infer } from "convex/values";
11
+ * import { defineContentType, InferContentType } from "@convex-cms/core";
12
+ *
13
+ * // Define a content type with a Convex validator
14
+ * export const blogPost = defineContentType({
15
+ * name: "blog_post",
16
+ * validator: v.object({
17
+ * title: v.string(),
18
+ * content: v.string(),
19
+ * publishedAt: v.optional(v.number()),
20
+ * }),
21
+ * meta: {
22
+ * displayName: "Blog Post",
23
+ * titleField: "title",
24
+ * },
25
+ * });
26
+ *
27
+ * // Type is automatically inferred
28
+ * type BlogPostData = InferContentType<typeof blogPost>;
29
+ * // { title: string; content: string; publishedAt?: number }
30
+ * ```
31
+ *
32
+ * ## Creating a Schema
33
+ *
34
+ * ```typescript
35
+ * import { createContentSchema, InferSchema } from "@convex-cms/core";
36
+ *
37
+ * // Combine multiple content types into a schema
38
+ * export const contentSchema = createContentSchema({
39
+ * blogPost,
40
+ * author,
41
+ * product,
42
+ * });
43
+ *
44
+ * // Infer all types at once
45
+ * export type ContentTypes = InferSchema<typeof contentSchema.definitions>;
46
+ * // {
47
+ * // blog_post: { title: string; content: string; ... };
48
+ * // author: { name: string; bio?: string; ... };
49
+ * // product: { name: string; price: number; ... };
50
+ * // }
51
+ * ```
52
+ *
53
+ * ## Using with CMS Client
54
+ *
55
+ * ```typescript
56
+ * import { createCmsClient } from "@convex-cms/core";
57
+ * import { components } from "./_generated/api";
58
+ * import { contentSchema } from "./schema";
59
+ *
60
+ * // Create a schema-aware CMS client
61
+ * export const cms = createCmsClient(components.convexCms, {
62
+ * schema: contentSchema,
63
+ * // ... other options
64
+ * });
65
+ *
66
+ * // Now get() returns typed data
67
+ * const post = await cms.contentEntries.get<"blog_post">(ctx, id);
68
+ * post.data.title // ✅ string - fully typed
69
+ * post.data.typo // ❌ Error: Property 'typo' does not exist
70
+ * ```
71
+ *
72
+ * @module
73
+ */
74
+ // =============================================================================
75
+ // Core Functions
76
+ // =============================================================================
77
+ export { defineContentType, createContentSchema, toFieldDefinitions } from "./defineContentType.js";
78
+ // Runtime utilities
79
+ export { isContentTypeDefinition } from "./types.js";
80
+ // =============================================================================
81
+ // Typed Client Factory
82
+ // =============================================================================
83
+ export { createTypedCmsClient, TypedContentEntriesApiImpl } from "./typedClient.js";
84
+ // =============================================================================
85
+ // Schema Drift Detection
86
+ // =============================================================================
87
+ export { detectSchemaDrift, formatDriftReport, hasErrors, filterReportByContentTypes, } from "./schemaDrift.js";
88
+ // =============================================================================
89
+ // Type Code Generation
90
+ // =============================================================================
91
+ export { generateTypesFromDatabase, generateTypesFromDefinitions, validateGeneratedCode, } from "./codegen.js";
92
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/schema/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AAEH,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AA4BpG,oBAAoB;AACpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAEpF,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAW1B,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Schema Drift Detection
3
+ *
4
+ * Compares code-defined schemas against database schemas to detect
5
+ * discrepancies that could cause runtime issues.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { detectSchemaDrift } from "@convex-cms/core";
10
+ *
11
+ * const report = await detectSchemaDrift(ctx, cms, contentSchema);
12
+ *
13
+ * if (report.hasDrift) {
14
+ * console.warn("Schema drift detected:");
15
+ * console.log(report.summary);
16
+ *
17
+ * for (const diff of report.fieldDifferences) {
18
+ * console.log(`${diff.contentType}.${diff.field}: ${diff.message}`);
19
+ * }
20
+ * }
21
+ * ```
22
+ */
23
+ import type { ContentTypeDefinition } from "./types.js";
24
+ import type { ContentSchemaInstance } from "./defineContentType.js";
25
+ import type { ConvexContext } from "../wrapper.js";
26
+ import type { CmsClient } from "../wrapper.js";
27
+ /**
28
+ * Severity level for drift issues.
29
+ */
30
+ export type DriftSeverity = "error" | "warning" | "info";
31
+ /**
32
+ * Type of schema difference detected.
33
+ */
34
+ export type DriftType = "CONTENT_TYPE_MISSING_IN_DB" | "CONTENT_TYPE_MISSING_IN_CODE" | "FIELD_MISSING_IN_DB" | "FIELD_MISSING_IN_CODE" | "FIELD_TYPE_MISMATCH" | "FIELD_REQUIRED_MISMATCH" | "FIELD_OPTIONS_MISMATCH" | "CONTENT_TYPE_METADATA_MISMATCH";
35
+ /**
36
+ * A single schema drift issue.
37
+ */
38
+ export interface DriftIssue {
39
+ /**
40
+ * Type of drift detected.
41
+ */
42
+ type: DriftType;
43
+ /**
44
+ * Severity level.
45
+ */
46
+ severity: DriftSeverity;
47
+ /**
48
+ * Content type name involved.
49
+ */
50
+ contentType: string;
51
+ /**
52
+ * Field name (if applicable).
53
+ */
54
+ field?: string;
55
+ /**
56
+ * Human-readable description of the issue.
57
+ */
58
+ message: string;
59
+ /**
60
+ * Expected value (from code).
61
+ */
62
+ expected?: unknown;
63
+ /**
64
+ * Actual value (from database).
65
+ */
66
+ actual?: unknown;
67
+ }
68
+ /**
69
+ * Summary statistics for the drift report.
70
+ */
71
+ export interface DriftSummary {
72
+ /**
73
+ * Number of content types only in code (not in database).
74
+ */
75
+ missingInDatabase: number;
76
+ /**
77
+ * Number of content types only in database (not in code).
78
+ */
79
+ missingInCode: number;
80
+ /**
81
+ * Number of field-level differences.
82
+ */
83
+ fieldDifferences: number;
84
+ /**
85
+ * Total number of issues found.
86
+ */
87
+ totalIssues: number;
88
+ /**
89
+ * Number of error-level issues.
90
+ */
91
+ errors: number;
92
+ /**
93
+ * Number of warning-level issues.
94
+ */
95
+ warnings: number;
96
+ }
97
+ /**
98
+ * Full schema drift detection report.
99
+ */
100
+ export interface SchemaDriftReport {
101
+ /**
102
+ * Whether any drift was detected.
103
+ */
104
+ hasDrift: boolean;
105
+ /**
106
+ * Summary statistics.
107
+ */
108
+ summary: DriftSummary;
109
+ /**
110
+ * All detected issues.
111
+ */
112
+ issues: DriftIssue[];
113
+ /**
114
+ * Content types defined in code but not in database.
115
+ */
116
+ missingInDatabase: string[];
117
+ /**
118
+ * Content types in database but not in code.
119
+ */
120
+ missingInCode: string[];
121
+ /**
122
+ * Timestamp when the check was performed.
123
+ */
124
+ checkedAt: number;
125
+ }
126
+ /**
127
+ * Options for drift detection.
128
+ */
129
+ export interface DetectDriftOptions {
130
+ /**
131
+ * Whether to include info-level issues in the report.
132
+ * @default false
133
+ */
134
+ includeInfoLevel?: boolean;
135
+ /**
136
+ * Content type names to check. If not provided, checks all.
137
+ */
138
+ contentTypes?: string[];
139
+ /**
140
+ * Whether to treat missing-in-database as errors.
141
+ * When true, code types not in DB are errors; when false, they're warnings.
142
+ * @default true
143
+ */
144
+ strictMissingInDb?: boolean;
145
+ /**
146
+ * Whether to treat missing-in-code as errors.
147
+ * When false, DB types not in code are warnings (allows admin-created types).
148
+ * @default false
149
+ */
150
+ strictMissingInCode?: boolean;
151
+ }
152
+ /**
153
+ * Detects schema drift between code-defined schemas and database state.
154
+ *
155
+ * @param ctx - Convex context
156
+ * @param cmsClient - The CMS client to use for database queries
157
+ * @param schema - The code-defined content schema
158
+ * @param options - Detection options
159
+ * @returns A drift report with all detected issues
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * const report = await detectSchemaDrift(ctx, cms, contentSchema);
164
+ *
165
+ * if (report.hasDrift) {
166
+ * console.error("Schema drift detected!");
167
+ * console.log(`Errors: ${report.summary.errors}`);
168
+ * console.log(`Warnings: ${report.summary.warnings}`);
169
+ *
170
+ * for (const issue of report.issues) {
171
+ * console.log(`[${issue.severity}] ${issue.message}`);
172
+ * }
173
+ * }
174
+ * ```
175
+ */
176
+ export declare function detectSchemaDrift<TSchema extends ContentSchemaInstance<Record<string, ContentTypeDefinition>>>(ctx: ConvexContext, cmsClient: CmsClient, schema: TSchema, options?: DetectDriftOptions): Promise<SchemaDriftReport>;
177
+ /**
178
+ * Format a drift report as a human-readable string.
179
+ *
180
+ * @param report - The drift report to format
181
+ * @returns A formatted string suitable for console output
182
+ */
183
+ export declare function formatDriftReport(report: SchemaDriftReport): string;
184
+ /**
185
+ * Check if a drift report h errors (not just warnings).
186
+ *
187
+ * @param report - The drift report to check
188
+ * @returns true if there are error-level issues
189
+ */
190
+ export declare function hasErrors(report: SchemaDriftReport): boolean;
191
+ /**
192
+ * Filter a drift report to only include specific content types.
193
+ *
194
+ * @param report - The full drift report
195
+ * @param contentTypes - Content type names to include
196
+ * @returns A filtered report
197
+ */
198
+ export declare function filterReportByContentTypes(report: SchemaDriftReport, contentTypes: string[]): SchemaDriftReport;
199
+ //# sourceMappingURL=schemaDrift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaDrift.d.ts","sourceRoot":"","sources":["../../../src/client/schema/schemaDrift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAO/C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,4BAA4B,GAC5B,8BAA8B,GAC9B,qBAAqB,GACrB,uBAAuB,GACvB,qBAAqB,GACrB,yBAAyB,GACzB,wBAAwB,GACxB,gCAAgC,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,UAAU,EAAE,CAAC;IAErB;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,SAAS,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,EAE5E,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAwF5B;AAyKD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAyCnE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,MAAM,EAAE,GACrB,iBAAiB,CAoBnB"}