convex-cms 0.0.3 → 0.0.5-alpha.2

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 (375) hide show
  1. package/README.md +107 -60
  2. package/admin/README.md +99 -0
  3. package/admin/src/components/AdminLayout.tsx +22 -0
  4. package/admin/src/components/BreakingChangesWarningDialog.tsx +81 -0
  5. package/admin/src/components/BulkActionBar.tsx +190 -0
  6. package/admin/src/components/BulkOperationModal.tsx +177 -0
  7. package/admin/src/components/ContentEntryEditor.tsx +1104 -0
  8. package/admin/src/components/ContentTypeFormModal.tsx +1012 -0
  9. package/admin/src/components/ErrorBoundary.tsx +83 -0
  10. package/admin/src/components/ErrorState.tsx +147 -0
  11. package/admin/src/components/Header.tsx +294 -0
  12. package/admin/src/components/RouteGuard.tsx +264 -0
  13. package/admin/src/components/Sidebar.tsx +90 -0
  14. package/admin/src/components/TaxonomyEditor.tsx +348 -0
  15. package/admin/src/components/TermTree.tsx +533 -0
  16. package/admin/src/components/UploadDropzone.tsx +383 -0
  17. package/admin/src/components/VersionCompare.tsx +250 -0
  18. package/admin/src/components/VersionHistory.tsx +279 -0
  19. package/admin/src/components/VersionRollbackModal.tsx +79 -0
  20. package/admin/src/components/cmsds/CmsButton.tsx +101 -0
  21. package/admin/src/components/cmsds/CmsDialog.tsx +139 -0
  22. package/admin/src/components/cmsds/CmsDropdown.tsx +62 -0
  23. package/admin/src/components/cmsds/CmsEmptyState.tsx +54 -0
  24. package/admin/src/components/cmsds/CmsField.tsx +47 -0
  25. package/admin/src/components/cmsds/CmsPageHeader.tsx +35 -0
  26. package/admin/src/components/cmsds/CmsStatusBadge.tsx +153 -0
  27. package/admin/src/components/cmsds/CmsSurface.tsx +52 -0
  28. package/admin/src/components/cmsds/CmsTable.tsx +164 -0
  29. package/admin/src/components/cmsds/CmsToolbar.tsx +58 -0
  30. package/admin/src/components/cmsds/index.ts +10 -0
  31. package/admin/src/components/fields/BooleanField.tsx +74 -0
  32. package/admin/src/components/fields/CategoryField.tsx +394 -0
  33. package/admin/src/components/fields/DateField.tsx +173 -0
  34. package/admin/src/components/fields/DefaultFieldRenderer.tsx +74 -0
  35. package/admin/src/components/fields/FieldRenderer.tsx +180 -0
  36. package/admin/src/components/fields/FieldWrapper.tsx +57 -0
  37. package/admin/src/components/fields/JsonField.tsx +172 -0
  38. package/admin/src/components/fields/MediaField.tsx +367 -0
  39. package/admin/src/components/fields/MultiSelectField.tsx +118 -0
  40. package/admin/src/components/fields/NumberField.tsx +77 -0
  41. package/admin/src/components/fields/ReferenceField.tsx +386 -0
  42. package/admin/src/components/fields/RichTextField.tsx +171 -0
  43. package/admin/src/components/fields/SelectField.tsx +62 -0
  44. package/admin/src/components/fields/TagField.tsx +325 -0
  45. package/admin/src/components/fields/TextAreaField.tsx +68 -0
  46. package/admin/src/components/fields/TextField.tsx +56 -0
  47. package/admin/src/components/fields/index.ts +54 -0
  48. package/admin/src/components/fields/registry.ts +64 -0
  49. package/admin/src/components/fields/types.ts +217 -0
  50. package/admin/src/components/filters/TaxonomyFilter.tsx +254 -0
  51. package/admin/src/components/filters/index.ts +1 -0
  52. package/admin/src/components/index.ts +8 -0
  53. package/admin/src/components/media/MediaAssetActions.tsx +115 -0
  54. package/admin/src/components/media/MediaAssetEditDialog.tsx +217 -0
  55. package/admin/src/components/media/MediaBulkActionBar.tsx +51 -0
  56. package/admin/src/components/media/MediaFolderActions.tsx +69 -0
  57. package/admin/src/components/media/MediaFolderEditDialog.tsx +126 -0
  58. package/admin/src/components/media/MediaMoveModal.tsx +179 -0
  59. package/admin/src/components/media/MediaPreviewModal.tsx +370 -0
  60. package/admin/src/components/media/MediaTaxonomyPicker.tsx +304 -0
  61. package/admin/src/components/media/MediaTrashBulkActionBar.tsx +59 -0
  62. package/admin/src/components/ui/accordion.tsx +64 -0
  63. package/admin/src/components/ui/alert-dialog.tsx +155 -0
  64. package/admin/src/components/ui/alert.tsx +66 -0
  65. package/admin/src/components/ui/avatar.tsx +53 -0
  66. package/admin/src/components/ui/badge.tsx +46 -0
  67. package/admin/src/components/ui/breadcrumb.tsx +109 -0
  68. package/admin/src/components/ui/button.tsx +62 -0
  69. package/admin/src/components/ui/calendar.tsx +220 -0
  70. package/admin/src/components/ui/card.tsx +92 -0
  71. package/admin/src/components/ui/checkbox.tsx +30 -0
  72. package/admin/src/components/ui/command.tsx +182 -0
  73. package/admin/src/components/ui/dialog.tsx +143 -0
  74. package/admin/src/components/ui/dropdown-menu.tsx +257 -0
  75. package/admin/src/components/ui/form.tsx +167 -0
  76. package/admin/src/components/ui/input.tsx +21 -0
  77. package/admin/src/components/ui/label.tsx +24 -0
  78. package/admin/src/components/ui/popover.tsx +46 -0
  79. package/admin/src/components/ui/scroll-area.tsx +56 -0
  80. package/admin/src/components/ui/select.tsx +190 -0
  81. package/admin/src/components/ui/separator.tsx +26 -0
  82. package/admin/src/components/ui/sheet.tsx +137 -0
  83. package/admin/src/components/ui/sidebar.tsx +724 -0
  84. package/admin/src/components/ui/skeleton.tsx +13 -0
  85. package/admin/src/components/ui/sonner.tsx +38 -0
  86. package/admin/src/components/ui/switch.tsx +31 -0
  87. package/admin/src/components/ui/table.tsx +114 -0
  88. package/admin/src/components/ui/tabs.tsx +66 -0
  89. package/admin/src/components/ui/textarea.tsx +18 -0
  90. package/admin/src/components/ui/tooltip.tsx +61 -0
  91. package/admin/src/contexts/AdminConfigContext.tsx +30 -0
  92. package/admin/src/contexts/AuthContext.tsx +330 -0
  93. package/admin/src/contexts/BreadcrumbContext.tsx +49 -0
  94. package/admin/src/contexts/SettingsConfigContext.tsx +57 -0
  95. package/admin/src/contexts/ThemeContext.tsx +91 -0
  96. package/admin/src/contexts/index.ts +20 -0
  97. package/admin/src/embed/components/EmbedHeader.tsx +103 -0
  98. package/admin/src/embed/components/EmbedLayout.tsx +29 -0
  99. package/admin/src/embed/components/EmbedSidebar.tsx +119 -0
  100. package/admin/src/embed/components/index.ts +3 -0
  101. package/admin/src/embed/contexts/ApiContext.tsx +32 -0
  102. package/admin/src/embed/index.tsx +184 -0
  103. package/admin/src/embed/navigation.tsx +202 -0
  104. package/admin/src/embed/pages/Content.tsx +19 -0
  105. package/admin/src/embed/pages/ContentTypes.tsx +19 -0
  106. package/admin/src/embed/pages/Dashboard.tsx +19 -0
  107. package/admin/src/embed/pages/Media.tsx +19 -0
  108. package/admin/src/embed/pages/Settings.tsx +22 -0
  109. package/admin/src/embed/pages/Taxonomies.tsx +22 -0
  110. package/admin/src/embed/pages/Trash.tsx +22 -0
  111. package/admin/src/embed/pages/index.ts +7 -0
  112. package/admin/src/embed/types.ts +24 -0
  113. package/admin/src/hooks/index.ts +2 -0
  114. package/admin/src/hooks/use-mobile.ts +19 -0
  115. package/admin/src/hooks/useBreadcrumbLabel.ts +15 -0
  116. package/admin/src/hooks/usePermissions.ts +211 -0
  117. package/admin/src/lib/admin-config.ts +111 -0
  118. package/admin/src/lib/cn.ts +6 -0
  119. package/admin/src/lib/config.server.ts +56 -0
  120. package/admin/src/lib/convex.ts +26 -0
  121. package/admin/src/lib/embed-adapter.ts +80 -0
  122. package/admin/src/lib/icons.tsx +96 -0
  123. package/admin/src/lib/loadAdminConfig.ts +92 -0
  124. package/admin/src/lib/motion.ts +29 -0
  125. package/admin/src/lib/navigation.ts +43 -0
  126. package/admin/src/lib/tanstack-adapter.ts +82 -0
  127. package/admin/src/pages/ContentPage.tsx +337 -0
  128. package/admin/src/pages/ContentTypesPage.tsx +457 -0
  129. package/admin/src/pages/DashboardPage.tsx +163 -0
  130. package/admin/src/pages/MediaPage.tsx +34 -0
  131. package/admin/src/pages/SettingsPage.tsx +486 -0
  132. package/admin/src/pages/TaxonomiesPage.tsx +289 -0
  133. package/admin/src/pages/TrashPage.tsx +421 -0
  134. package/admin/src/pages/index.ts +14 -0
  135. package/admin/src/routeTree.gen.ts +262 -0
  136. package/admin/src/router.tsx +22 -0
  137. package/admin/src/routes/__root.tsx +250 -0
  138. package/admin/src/routes/content-types.tsx +20 -0
  139. package/admin/src/routes/content.tsx +20 -0
  140. package/admin/src/routes/entries/$entryId.tsx +107 -0
  141. package/admin/src/routes/entries/new.$contentTypeId.tsx +69 -0
  142. package/admin/src/routes/entries/type/$contentTypeId.tsx +503 -0
  143. package/admin/src/routes/index.tsx +20 -0
  144. package/admin/src/routes/media.tsx +1095 -0
  145. package/admin/src/routes/settings.tsx +20 -0
  146. package/admin/src/routes/taxonomies.tsx +20 -0
  147. package/admin/src/routes/trash.tsx +20 -0
  148. package/admin/src/styles/globals.css +69 -0
  149. package/admin/src/styles/tailwind-config.css +74 -0
  150. package/admin/src/styles/theme.css +73 -0
  151. package/admin/src/types/index.ts +221 -0
  152. package/admin/src/utils/errorParsing.ts +163 -0
  153. package/admin/src/utils/index.ts +5 -0
  154. package/admin/src/vite-env.d.ts +14 -0
  155. package/admin/tailwind.preset.cjs +102 -0
  156. package/admin-dist/nitro.json +1 -1
  157. package/admin-dist/public/assets/{CmsEmptyState-CRswfTzk.js → CmsEmptyState-CkqBIab3.js} +2 -2
  158. package/admin-dist/public/assets/{CmsPageHeader-CirpXndm.js → CmsPageHeader-CUtl5MMG.js} +1 -1
  159. package/admin-dist/public/assets/{CmsStatusBadge-CbEUpQu-.js → CmsStatusBadge-CUYFgEe-.js} +1 -1
  160. package/admin-dist/public/assets/CmsSurface-CsJfAVa3.js +1 -0
  161. package/admin-dist/public/assets/{CmsToolbar-BI2nZOXp.js → CmsToolbar-CnfbcxeP.js} +1 -1
  162. package/admin-dist/public/assets/{ContentEntryEditor-CBeCyK_m.js → ContentEntryEditor-BU220CCy.js} +1 -1
  163. package/admin-dist/public/assets/TaxonomyFilter-CWCxC5HZ.js +1 -0
  164. package/admin-dist/public/assets/_contentTypeId-DK8cskRt.js +1 -0
  165. package/admin-dist/public/assets/{_entryId-CKU_glsK.js → _entryId-CuVMExbb.js} +1 -1
  166. package/admin-dist/public/assets/alert-CF1BSzGR.js +1 -0
  167. package/admin-dist/public/assets/{badge-hvUOzpVZ.js → badge-CmuOIVKp.js} +1 -1
  168. package/admin-dist/public/assets/{circle-check-big-CF_pR17r.js → circle-check-big-BKDVG6DU.js} +1 -1
  169. package/admin-dist/public/assets/{command-DU82cJlt.js → command-XJxnF2Sd.js} +1 -1
  170. package/admin-dist/public/assets/content-QBUxdxbS.js +1 -0
  171. package/admin-dist/public/assets/content-types-CrNEm8Hf.js +2 -0
  172. package/admin-dist/public/assets/globals-B7Wsfh_v.css +1 -0
  173. package/admin-dist/public/assets/index-C7xOwudI.js +1 -0
  174. package/admin-dist/public/assets/{label-KNtpL71g.js → label-CHCnXeBk.js} +1 -1
  175. package/admin-dist/public/assets/{link-2-Bw2aI4V4.js → link-2-Bb34judH.js} +1 -1
  176. package/admin-dist/public/assets/{list-sYepHjt_.js → list-9Pzt48ld.js} +1 -1
  177. package/admin-dist/public/assets/{main-CKj5yfEi.js → main-CjQ2VI9L.js} +3 -3
  178. package/admin-dist/public/assets/media-Dc5PWt2Q.js +1 -0
  179. package/admin-dist/public/assets/{new._contentTypeId-C3LstjNs.js → new._contentTypeId-C_I4YxIa.js} +1 -1
  180. package/admin-dist/public/assets/{plus-DUn8v_Xf.js → plus-Ceef7DHk.js} +1 -1
  181. package/admin-dist/public/assets/{rotate-ccw-DJEoHcRI.js → rotate-ccw-7k7-4VUq.js} +1 -1
  182. package/admin-dist/public/assets/scroll-area-CC6wujnp.js +1 -0
  183. package/admin-dist/public/assets/{search-MuAUDJKR.js → search-DwoUV2pv.js} +1 -1
  184. package/admin-dist/public/assets/select-hOZTp8aC.js +1 -0
  185. package/admin-dist/public/assets/settings-t2PbCZh4.js +1 -0
  186. package/admin-dist/public/assets/switch-jX2pDaNU.js +1 -0
  187. package/admin-dist/public/assets/tabs-q4EbZk7c.js +1 -0
  188. package/admin-dist/public/assets/tanstack-adapter-B-Glm4kH.js +1 -0
  189. package/admin-dist/public/assets/taxonomies-kyk5P4ZW.js +1 -0
  190. package/admin-dist/public/assets/{textarea-BTy7nwzR.js → textarea-B6SfBmr0.js} +1 -1
  191. package/admin-dist/public/assets/trash-BOCnIznD.js +1 -0
  192. package/admin-dist/public/assets/{triangle-alert-E52Vfeuh.js → triangle-alert-CXFIO_Gu.js} +1 -1
  193. package/admin-dist/public/assets/useBreadcrumbLabel-_6qBagc3.js +1 -0
  194. package/admin-dist/public/assets/{usePermissions-Basjs9BT.js → usePermissions-M1ijZ7a6.js} +1 -1
  195. package/admin-dist/server/_chunks/_libs/@tanstack/react-router.mjs +7 -0
  196. package/admin-dist/server/_ssr/{badge-6BsP37vG.mjs → CmsButton-DOiTVKQq.mjs} +33 -33
  197. package/admin-dist/server/_ssr/{CmsEmptyState-DU7-7-mV.mjs → CmsEmptyState-fbnGt3LD.mjs} +2 -2
  198. package/admin-dist/server/_ssr/{CmsPageHeader-CseW0AHm.mjs → CmsPageHeader-DHRrdOZa.mjs} +1 -1
  199. package/admin-dist/server/_ssr/{CmsStatusBadge-B_pi4KCp.mjs → CmsStatusBadge-s7obWbKZ.mjs} +2 -2
  200. package/admin-dist/server/_ssr/CmsSurface-rFoYjb62.mjs +44 -0
  201. package/admin-dist/server/_ssr/{CmsToolbar-X75ex6ek.mjs → CmsToolbar-zTE45z2q.mjs} +2 -2
  202. package/admin-dist/server/_ssr/{ContentEntryEditor-CepusRsA.mjs → ContentEntryEditor-BLoEjT_m.mjs} +12 -12
  203. package/admin-dist/server/_ssr/{TaxonomyFilter-Bwrq0-cz.mjs → TaxonomyFilter-XAtaJC2z.mjs} +5 -5
  204. package/admin-dist/server/_ssr/{_contentTypeId-BqYKEcLr.mjs → _contentTypeId-Csl4822C.mjs} +13 -13
  205. package/admin-dist/server/_ssr/{_entryId-CRfnqeDf.mjs → _entryId-D8alLFBx.mjs} +15 -15
  206. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-BffZedId.mjs +4 -0
  207. package/admin-dist/server/_ssr/{command-fy8epIKf.mjs → command-C0Di14--.mjs} +1 -1
  208. package/admin-dist/server/_ssr/{content-B5RhL7uW.mjs → content-CT-FPsmV.mjs} +170 -98
  209. package/admin-dist/server/_ssr/{content-types-BIOqCQYN.mjs → content-types-C8cBFdzE.mjs} +260 -115
  210. package/admin-dist/server/_ssr/{index-DHSHDPt1.mjs → index-BJtcrEc-.mjs} +88 -17
  211. package/admin-dist/server/_ssr/index.mjs +2 -2
  212. package/admin-dist/server/_ssr/{label-C8Dko1j7.mjs → label-qn2Afwl4.mjs} +1 -1
  213. package/admin-dist/server/_ssr/{media-CSx3XttC.mjs → media-qv5IAsMZ.mjs} +43 -43
  214. package/admin-dist/server/_ssr/{new._contentTypeId-DzanEZQM.mjs → new._contentTypeId-DdGyrhqs.mjs} +13 -13
  215. package/admin-dist/server/_ssr/{router-DDWcF-kt.mjs → router-nSVkxb6Y.mjs} +11 -11
  216. package/admin-dist/server/_ssr/{scroll-area-bjPYwhXN.mjs → scroll-area-BCinP455.mjs} +1 -1
  217. package/admin-dist/server/_ssr/{select-BUhDDf4T.mjs → select-BKQlQScw.mjs} +1 -1
  218. package/admin-dist/server/_ssr/{settings-DAsxnw2q.mjs → settings-BCr2KQlk.mjs} +236 -139
  219. package/admin-dist/server/_ssr/{switch-BgyRtQ1Z.mjs → switch-BaOi42fE.mjs} +1 -1
  220. package/admin-dist/server/_ssr/{tabs-DzMdRB1A.mjs → tabs-DYXEi9kq.mjs} +5 -3
  221. package/admin-dist/server/_ssr/tanstack-adapter-Bsz8kha-.mjs +119 -0
  222. package/admin-dist/server/_ssr/{taxonomies-C8j8g5Q5.mjs → taxonomies-CueMHTbE.mjs} +184 -73
  223. package/admin-dist/server/_ssr/{textarea-9jNeYJSc.mjs → textarea-CI0Jqx2x.mjs} +1 -1
  224. package/admin-dist/server/_ssr/{trash-DYMxwhZB.mjs → trash-DE6W8GoX.mjs} +211 -88
  225. package/admin-dist/server/_ssr/{useBreadcrumbLabel-FNSAr2Ha.mjs → useBreadcrumbLabel-B5Yi72lM.mjs} +1 -1
  226. package/admin-dist/server/_ssr/{usePermissions-BJGGahrJ.mjs → usePermissions-C3nZ-Izm.mjs} +1 -1
  227. package/admin-dist/server/index.mjs +189 -182
  228. package/dist/cli/commands/init.d.ts +6 -0
  229. package/dist/cli/commands/init.d.ts.map +1 -0
  230. package/dist/cli/commands/init.js +156 -0
  231. package/dist/cli/commands/init.js.map +1 -0
  232. package/dist/cli/index.js +6 -0
  233. package/dist/cli/index.js.map +1 -1
  234. package/dist/client/admin/bulk.d.ts +79 -0
  235. package/dist/client/admin/bulk.d.ts.map +1 -0
  236. package/dist/client/admin/bulk.js +72 -0
  237. package/dist/client/admin/bulk.js.map +1 -0
  238. package/dist/client/admin/contentLock.d.ts +118 -0
  239. package/dist/client/admin/contentLock.d.ts.map +1 -0
  240. package/dist/client/admin/contentLock.js +81 -0
  241. package/dist/client/admin/contentLock.js.map +1 -0
  242. package/dist/client/admin/contentTypes.d.ts +1204 -0
  243. package/dist/client/admin/contentTypes.d.ts.map +1 -0
  244. package/dist/client/admin/contentTypes.js +122 -0
  245. package/dist/client/admin/contentTypes.js.map +1 -0
  246. package/dist/client/admin/dashboard.d.ts +16 -0
  247. package/dist/client/admin/dashboard.d.ts.map +1 -0
  248. package/dist/client/admin/dashboard.js +33 -0
  249. package/dist/client/admin/dashboard.js.map +1 -0
  250. package/dist/client/admin/entries.d.ts +358 -0
  251. package/dist/client/admin/entries.d.ts.map +1 -0
  252. package/dist/client/admin/entries.js +220 -0
  253. package/dist/client/admin/entries.js.map +1 -0
  254. package/dist/client/admin/index.d.ts +6568 -0
  255. package/dist/client/admin/index.d.ts.map +1 -0
  256. package/dist/client/admin/index.js +305 -0
  257. package/dist/client/admin/index.js.map +1 -0
  258. package/dist/client/admin/media.d.ts +1038 -0
  259. package/dist/client/admin/media.d.ts.map +1 -0
  260. package/dist/client/admin/media.js +489 -0
  261. package/dist/client/admin/media.js.map +1 -0
  262. package/dist/client/admin/taxonomies.d.ts +339 -0
  263. package/dist/client/admin/taxonomies.d.ts.map +1 -0
  264. package/dist/client/admin/taxonomies.js +364 -0
  265. package/dist/client/admin/taxonomies.js.map +1 -0
  266. package/dist/client/admin/trash.d.ts +91 -0
  267. package/dist/client/admin/trash.d.ts.map +1 -0
  268. package/dist/client/admin/trash.js +71 -0
  269. package/dist/client/admin/trash.js.map +1 -0
  270. package/dist/client/admin/types.d.ts +320 -0
  271. package/dist/client/admin/types.d.ts.map +1 -0
  272. package/dist/client/admin/types.js +7 -0
  273. package/dist/client/admin/types.js.map +1 -0
  274. package/dist/client/admin/validators.d.ts +3886 -0
  275. package/dist/client/admin/validators.d.ts.map +1 -0
  276. package/dist/client/admin/validators.js +322 -0
  277. package/dist/client/admin/validators.js.map +1 -0
  278. package/dist/client/admin/versions.d.ts +106 -0
  279. package/dist/client/admin/versions.d.ts.map +1 -0
  280. package/dist/client/admin/versions.js +57 -0
  281. package/dist/client/admin/versions.js.map +1 -0
  282. package/dist/client/adminApiTypes.d.ts +27 -0
  283. package/dist/client/adminApiTypes.d.ts.map +1 -0
  284. package/dist/client/adminApiTypes.js +12 -0
  285. package/dist/client/adminApiTypes.js.map +1 -0
  286. package/dist/client/{admin-config.d.ts → adminConfig.d.ts} +4 -4
  287. package/dist/client/adminConfig.d.ts.map +1 -0
  288. package/dist/client/{admin-config.js → adminConfig.js} +3 -3
  289. package/dist/client/adminConfig.js.map +1 -0
  290. package/dist/client/agentTools.d.ts +11 -21
  291. package/dist/client/agentTools.d.ts.map +1 -1
  292. package/dist/client/agentTools.js +4 -4
  293. package/dist/client/index.d.ts +6 -6
  294. package/dist/client/index.d.ts.map +1 -1
  295. package/dist/client/index.js +19 -6
  296. package/dist/client/index.js.map +1 -1
  297. package/dist/client/schema/codegen.d.ts +2 -2
  298. package/dist/client/schema/codegen.d.ts.map +1 -1
  299. package/dist/client/schema/codegen.js +3 -3
  300. package/dist/client/schema/codegen.js.map +1 -1
  301. package/dist/client/schema/defineContentType.d.ts +3 -3
  302. package/dist/client/schema/defineContentType.js +3 -3
  303. package/dist/client/schema/index.d.ts +7 -7
  304. package/dist/client/schema/index.d.ts.map +1 -1
  305. package/dist/client/schema/index.js +5 -5
  306. package/dist/client/schema/index.js.map +1 -1
  307. package/dist/client/schema/schemaDrift.d.ts +1 -1
  308. package/dist/client/schema/schemaDrift.js +1 -1
  309. package/dist/client/schema/typedClient.d.ts +2 -2
  310. package/dist/client/schema/typedClient.js +2 -2
  311. package/dist/client/schema/types.d.ts +1 -1
  312. package/dist/client/schema/types.js +1 -1
  313. package/dist/client/wrapper.d.ts +108 -65
  314. package/dist/client/wrapper.d.ts.map +1 -1
  315. package/dist/client/wrapper.js +22 -22
  316. package/dist/client/wrapper.js.map +1 -1
  317. package/dist/component/contentEntries.d.ts +4 -4
  318. package/dist/component/contentEntryMutations.d.ts +46 -0
  319. package/dist/component/contentEntryMutations.d.ts.map +1 -1
  320. package/dist/component/contentEntryMutations.js +1 -1
  321. package/dist/component/contentEntryMutations.js.map +1 -1
  322. package/dist/component/contentTypeMigration.d.ts +1 -1
  323. package/dist/component/contentTypeMutations.d.ts +22 -0
  324. package/dist/component/contentTypeMutations.d.ts.map +1 -1
  325. package/dist/component/contentTypeMutations.js +1 -1
  326. package/dist/component/contentTypeMutations.js.map +1 -1
  327. package/dist/component/convex.config.d.ts +2 -2
  328. package/dist/component/convex.config.js +2 -2
  329. package/dist/component/index.d.ts +1 -1
  330. package/dist/component/index.js +1 -1
  331. package/dist/component/lib/ragContentChunker.d.ts +1 -1
  332. package/dist/component/lib/ragContentChunker.js +1 -1
  333. package/dist/component/mediaAssetMutations.d.ts +47 -0
  334. package/dist/component/mediaAssetMutations.d.ts.map +1 -1
  335. package/dist/component/mediaAssetMutations.js +1 -1
  336. package/dist/component/mediaAssetMutations.js.map +1 -1
  337. package/dist/component/roles.d.ts +1 -1
  338. package/dist/component/roles.js +1 -1
  339. package/dist/component/schema.d.ts +9 -0
  340. package/dist/component/schema.d.ts.map +1 -1
  341. package/dist/component/schema.js +1 -1
  342. package/dist/component/schema.js.map +1 -1
  343. package/dist/react/index.d.ts +2 -2
  344. package/dist/react/index.d.ts.map +1 -1
  345. package/dist/react/index.js +13 -7
  346. package/dist/react/index.js.map +1 -1
  347. package/dist/test.d.ts +2 -2
  348. package/dist/test.js +2 -2
  349. package/package.json +115 -13
  350. package/admin-dist/public/assets/ErrorState-BIVaWmom.js +0 -1
  351. package/admin-dist/public/assets/TaxonomyFilter-ChaY6Y_x.js +0 -1
  352. package/admin-dist/public/assets/_contentTypeId-DQ8k_Rvw.js +0 -1
  353. package/admin-dist/public/assets/alert-BXjTqrwQ.js +0 -1
  354. package/admin-dist/public/assets/content-_LXl3pp7.js +0 -1
  355. package/admin-dist/public/assets/content-types-KjxaXGxY.js +0 -2
  356. package/admin-dist/public/assets/globals-CS6BZ0zp.css +0 -1
  357. package/admin-dist/public/assets/index-DNGIZHL-.js +0 -1
  358. package/admin-dist/public/assets/media-Bkrkffm7.js +0 -1
  359. package/admin-dist/public/assets/scroll-area-DfIlT0in.js +0 -1
  360. package/admin-dist/public/assets/select-BD29IXCI.js +0 -1
  361. package/admin-dist/public/assets/settings-DmMyn_6A.js +0 -1
  362. package/admin-dist/public/assets/switch-h3Rrnl5i.js +0 -1
  363. package/admin-dist/public/assets/tabs-imc8h-Dp.js +0 -1
  364. package/admin-dist/public/assets/taxonomies-dAsrT65H.js +0 -1
  365. package/admin-dist/public/assets/trash-SAWKZZHv.js +0 -1
  366. package/admin-dist/public/assets/useBreadcrumbLabel-BECBMCzM.js +0 -1
  367. package/admin-dist/server/_ssr/ErrorState-cI-bKLez.mjs +0 -89
  368. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-BwDlABVk.mjs +0 -4
  369. package/admin-dist/server/_ssr/alert-CVt45UUP.mjs +0 -92
  370. package/dist/client/admin-config.d.ts.map +0 -1
  371. package/dist/client/admin-config.js.map +0 -1
  372. package/dist/client/adminApi.d.ts +0 -2273
  373. package/dist/client/adminApi.d.ts.map +0 -1
  374. package/dist/client/adminApi.js +0 -716
  375. package/dist/client/adminApi.js.map +0 -1
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/schema/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AAMH,OAAO,EACN,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,wBAAwB,CAAC;AAOhC,YAAY,EACX,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,aAAa,GACb,MAAM,YAAY,CAAC;AAGpB,YAAY,EACX,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,GACrB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACX,qBAAqB,EACrB,uBAAuB,GACvB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAMrD,OAAO,EACN,oBAAoB,EACpB,0BAA0B,GAC1B,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,0BAA0B,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACX,aAAa,EACb,SAAS,EACT,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EACN,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,GACrB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAOlE,YAAY,EACX,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,GACd,MAAM,kBAAkB,CAAC"}
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * ```typescript
10
10
  * import { v, Infer } from "convex/values";
11
- * import { defineContentType, InferContentType } from "@convex-cms/core";
11
+ * import { defineContentType, InferContentType } from "convex-cms";
12
12
  *
13
13
  * // Define a content type with a Convex validator
14
14
  * export const blogPost = defineContentType({
@@ -32,7 +32,7 @@
32
32
  * ## Creating a Schema
33
33
  *
34
34
  * ```typescript
35
- * import { createContentSchema, InferSchema } from "@convex-cms/core";
35
+ * import { createContentSchema, InferSchema } from "convex-cms";
36
36
  *
37
37
  * // Combine multiple content types into a schema
38
38
  * export const contentSchema = createContentSchema({
@@ -53,7 +53,7 @@
53
53
  * ## Using with CMS Client
54
54
  *
55
55
  * ```typescript
56
- * import { createCmsClient } from "@convex-cms/core";
56
+ * import { createCmsClient } from "convex-cms";
57
57
  * import { components } from "./_generated/api";
58
58
  * import { contentSchema } from "./schema";
59
59
  *
@@ -74,13 +74,13 @@
74
74
  // =============================================================================
75
75
  // Core Functions
76
76
  // =============================================================================
77
- export { defineContentType, createContentSchema, toFieldDefinitions } from "./defineContentType.js";
77
+ export { defineContentType, createContentSchema, toFieldDefinitions, } from "./defineContentType.js";
78
78
  // Runtime utilities
79
79
  export { isContentTypeDefinition } from "./types.js";
80
80
  // =============================================================================
81
81
  // Typed Client Factory
82
82
  // =============================================================================
83
- export { createTypedCmsClient, TypedContentEntriesApiImpl } from "./typedClient.js";
83
+ export { createTypedCmsClient, TypedContentEntriesApiImpl, } from "./typedClient.js";
84
84
  // =============================================================================
85
85
  // Schema Drift Detection
86
86
  // =============================================================================
@@ -1 +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"}
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,EACN,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,wBAAwB,CAAC;AA+BhC,oBAAoB;AACpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,OAAO,EACN,oBAAoB,EACpB,0BAA0B,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,0BAA0B,GAC1B,MAAM,kBAAkB,CAAC;AAW1B,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,OAAO,EACN,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,GACrB,MAAM,cAAc,CAAC"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @example
8
8
  * ```typescript
9
- * import { detectSchemaDrift } from "@convex-cms/core";
9
+ * import { detectSchemaDrift } from "convex-cms";
10
10
  *
11
11
  * const report = await detectSchemaDrift(ctx, cms, contentSchema);
12
12
  *
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @example
8
8
  * ```typescript
9
- * import { detectSchemaDrift } from "@convex-cms/core";
9
+ * import { detectSchemaDrift } from "convex-cms";
10
10
  *
11
11
  * const report = await detectSchemaDrift(ctx, cms, contentSchema);
12
12
  *
@@ -8,7 +8,7 @@
8
8
  * @example
9
9
  * ```typescript
10
10
  * import { v } from "convex/values";
11
- * import { defineContentType, createContentSchema, createTypedCmsClient } from "@convex-cms/core";
11
+ * import { defineContentType, createContentSchema, createTypedCmsClient } from "convex-cms";
12
12
  * import { components } from "./_generated/api";
13
13
  *
14
14
  * // Define content types with validators
@@ -371,7 +371,7 @@ export declare class TypedContentEntriesApiImpl<TSchema extends ContentSchemaIns
371
371
  * @example
372
372
  * ```typescript
373
373
  * import { v } from "convex/values";
374
- * import { defineContentType, createContentSchema, createTypedCmsClient } from "@convex-cms/core";
374
+ * import { defineContentType, createContentSchema, createTypedCmsClient } from "convex-cms";
375
375
  * import { components } from "./_generated/api";
376
376
  *
377
377
  * // Define content types
@@ -8,7 +8,7 @@
8
8
  * @example
9
9
  * ```typescript
10
10
  * import { v } from "convex/values";
11
- * import { defineContentType, createContentSchema, createTypedCmsClient } from "@convex-cms/core";
11
+ * import { defineContentType, createContentSchema, createTypedCmsClient } from "convex-cms";
12
12
  * import { components } from "./_generated/api";
13
13
  *
14
14
  * // Define content types with validators
@@ -225,7 +225,7 @@ export class TypedContentEntriesApiImpl {
225
225
  * @example
226
226
  * ```typescript
227
227
  * import { v } from "convex/values";
228
- * import { defineContentType, createContentSchema, createTypedCmsClient } from "@convex-cms/core";
228
+ * import { defineContentType, createContentSchema, createTypedCmsClient } from "convex-cms";
229
229
  * import { components } from "./_generated/api";
230
230
  *
231
231
  * // Define content types
@@ -7,7 +7,7 @@
7
7
  * @example
8
8
  * ```typescript
9
9
  * import { v, Infer } from "convex/values";
10
- * import { defineContentType, InferContentType } from "@convex-cms/core";
10
+ * import { defineContentType, InferContentType } from "convex-cms";
11
11
  *
12
12
  * export const blogPost = defineContentType({
13
13
  * name: "blog_post",
@@ -7,7 +7,7 @@
7
7
  * @example
8
8
  * ```typescript
9
9
  * import { v, Infer } from "convex/values";
10
- * import { defineContentType, InferContentType } from "@convex-cms/core";
10
+ * import { defineContentType, InferContentType } from "convex-cms";
11
11
  *
12
12
  * export const blogPost = defineContentType({
13
13
  * name: "blog_post",
@@ -1,5 +1,5 @@
1
1
  /** CMS Client Wrapper with typed method APIs */
2
- import type { GenericDataModel, GenericMutationCtx } from "convex/server";
2
+ import type { GenericDataModel, GenericMutationCtx, GenericQueryCtx } from "convex/server";
3
3
  import type { ComponentApi as GeneratedComponentApi } from "../component/_generated/component.js";
4
4
  import type { ComponentConfig, ResolvedComponentConfig, FeatureFlags, LocaleCode, ContentType, ContentEntry, ContentVersion, MediaAsset, MediaFolder, PaginationResult, PaginationOpts, GetUserRoleResult, AuthorizationHookContext, CmsOperation, VersionComparison, MediaVariant, MediaVariantWithUrl } from "./types.js";
5
5
  import { ContentQueryBuilder } from "./queryBuilder.js";
@@ -70,8 +70,51 @@ export interface RateLimitHelper {
70
70
  metadata?: Record<string, unknown>;
71
71
  }): Promise<RateLimitResult>;
72
72
  }
73
- /** Convex context for CMS operations - includes db/auth for authorization hooks */
74
- export type ConvexContext = Pick<GenericMutationCtx<GenericDataModel>, "runMutation" | "runQuery" | "db" | "auth">;
73
+ /**
74
+ * Read-only context for CMS queries - enables reactivity via useQuery.
75
+ *
76
+ * Use this context type for read operations like get(), list(), search(), etc.
77
+ * This allows query functions to call CMS read methods and participate in
78
+ * Convex's reactive subscription system.
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * export const listPosts = query({
83
+ * handler: async (ctx) => {
84
+ * // ctx (QueryCtx) is compatible with CmsReadContext
85
+ * return await cms.contentEntries.list(ctx, {});
86
+ * },
87
+ * });
88
+ * ```
89
+ */
90
+ export type CmsReadContext = Pick<GenericQueryCtx<GenericDataModel>, "runQuery">;
91
+ /**
92
+ * Full mutation context for CMS write operations.
93
+ *
94
+ * Required for create, update, delete, publish, and other write operations.
95
+ * Includes db and auth access needed for authorization hooks.
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * export const createPost = mutation({
100
+ * handler: async (ctx, args) => {
101
+ * // ctx (MutationCtx) provides CmsMutationContext
102
+ * return await cms.contentEntries.create(ctx, args);
103
+ * },
104
+ * });
105
+ * ```
106
+ */
107
+ export type CmsMutationContext = Pick<GenericMutationCtx<GenericDataModel>, "runMutation" | "runQuery" | "db" | "auth">;
108
+ /**
109
+ * Internal type for methods that accept either read or mutation context.
110
+ * Read methods use this to work in both query and mutation handlers.
111
+ */
112
+ type ReadableContext = CmsReadContext | CmsMutationContext;
113
+ /**
114
+ * @deprecated Use CmsReadContext for read operations or CmsMutationContext for writes.
115
+ * This alias is preserved for backward compatibility.
116
+ */
117
+ export type ConvexContext = CmsMutationContext;
75
118
  /** Component API type from `components.convexCms` */
76
119
  export type TypedComponentApi = GeneratedComponentApi;
77
120
  /**
@@ -114,7 +157,7 @@ export declare class ContentTypesApi {
114
157
  /**
115
158
  * Get a content type by ID or name.
116
159
  *
117
- * @param ctx - Convex query context
160
+ * @param ctx - Convex query or mutation context
118
161
  * @param args - Get arguments (id or name)
119
162
  * @returns The content type or null if not found
120
163
  *
@@ -133,13 +176,13 @@ export declare class ContentTypesApi {
133
176
  * });
134
177
  * ```
135
178
  */
136
- get(ctx: ConvexContext, args: GetContentTypeArgs): Promise<ContentType | null>;
179
+ get(ctx: ReadableContext, args: GetContentTypeArgs): Promise<ContentType | null>;
137
180
  /**
138
181
  * Get a content type by name.
139
182
  *
140
183
  * Convenience method that wraps `get()` for name-based lookup.
141
184
  *
142
- * @param ctx - Convex query context
185
+ * @param ctx - Convex query or mutation context
143
186
  * @param name - The machine-readable name of the content type
144
187
  * @param includeDeleted - Whether to include soft-deleted types
145
188
  * @returns The content type or null if not found
@@ -152,12 +195,12 @@ export declare class ContentTypesApi {
152
195
  * }
153
196
  * ```
154
197
  */
155
- getByName(ctx: ConvexContext, name: string, includeDeleted?: boolean): Promise<ContentType | null>;
156
- getById(ctx: ConvexContext, id: string, includeDeleted?: boolean): Promise<ContentType | null>;
157
- exists(ctx: ConvexContext, name: string, includeDeleted?: boolean): Promise<boolean>;
158
- list(ctx: ConvexContext, args?: ListContentTypesArgs): Promise<PaginationResult<ContentType>>;
159
- listActive(ctx: ConvexContext, paginationOpts?: PaginationOpts): Promise<PaginationResult<ContentType>>;
160
- getAll(ctx: ConvexContext, includeInactive?: boolean): Promise<ContentType[]>;
198
+ getByName(ctx: ReadableContext, name: string, includeDeleted?: boolean): Promise<ContentType | null>;
199
+ getById(ctx: ReadableContext, id: string, includeDeleted?: boolean): Promise<ContentType | null>;
200
+ exists(ctx: ReadableContext, name: string, includeDeleted?: boolean): Promise<boolean>;
201
+ list(ctx: ReadableContext, args?: ListContentTypesArgs): Promise<PaginationResult<ContentType>>;
202
+ listActive(ctx: ReadableContext, paginationOpts?: PaginationOpts): Promise<PaginationResult<ContentType>>;
203
+ getAll(ctx: ReadableContext, includeInactive?: boolean): Promise<ContentType[]>;
161
204
  /**
162
205
  * @example
163
206
  * ```typescript
@@ -165,7 +208,7 @@ export declare class ContentTypesApi {
165
208
  * console.log(`You have ${count} content types`);
166
209
  * ```
167
210
  */
168
- count(ctx: ConvexContext, includeInactive?: boolean): Promise<number>;
211
+ count(ctx: ReadableContext, includeInactive?: boolean): Promise<number>;
169
212
  /**
170
213
  * Deactivate a content type without deleting it.
171
214
  *
@@ -211,11 +254,11 @@ export declare class ContentEntriesApi {
211
254
  create(ctx: ConvexContext, args: CreateContentEntryArgs): Promise<ContentEntry>;
212
255
  update(ctx: ConvexContext, args: UpdateContentEntryArgs): Promise<ContentEntry>;
213
256
  delete(ctx: ConvexContext, args: DeleteContentEntryArgs): Promise<ContentEntry>;
214
- get(ctx: ConvexContext, args: GetContentEntryArgs): Promise<ContentEntry | null>;
257
+ get(ctx: ReadableContext, args: GetContentEntryArgs): Promise<ContentEntry | null>;
215
258
  /** Looks up by contentTypeId+slug or contentTypeName+slug */
216
- getBySlug(ctx: ConvexContext, args: GetContentEntryBySlugArgs): Promise<ContentEntry | null>;
259
+ getBySlug(ctx: ReadableContext, args: GetContentEntryBySlugArgs): Promise<ContentEntry | null>;
217
260
  /** Standard Convex pagination format compatible with usePaginatedQuery */
218
- list(ctx: ConvexContext, args: ListContentEntriesArgs): Promise<PaginationResult<ContentEntry>>;
261
+ list(ctx: ReadableContext, args: ListContentEntriesArgs): Promise<PaginationResult<ContentEntry>>;
219
262
  /**
220
263
  * Publish a content entry.
221
264
  *
@@ -453,7 +496,7 @@ export declare class ContentEntriesApi {
453
496
  * }
454
497
  * ```
455
498
  */
456
- listWithLocale(ctx: ConvexContext, args: ListContentEntriesArgs, localeOptions: ResolveLocaleContentOptions): Promise<PaginationResult<ContentEntry & LocaleResolvedEntry>>;
499
+ listWithLocale(ctx: ReadableContext, args: ListContentEntriesArgs, localeOptions: ResolveLocaleContentOptions): Promise<PaginationResult<ContentEntry & LocaleResolvedEntry>>;
457
500
  /**
458
501
  * Get a content entry by ID with automatic locale resolution.
459
502
  *
@@ -482,7 +525,7 @@ export declare class ContentEntriesApi {
482
525
  * }
483
526
  * ```
484
527
  */
485
- getWithLocale(ctx: ConvexContext, args: GetContentEntryArgs, localeOptions: ResolveLocaleContentOptions): Promise<(ContentEntry & LocaleResolvedEntry) | null>;
528
+ getWithLocale(ctx: ReadableContext, args: GetContentEntryArgs, localeOptions: ResolveLocaleContentOptions): Promise<(ContentEntry & LocaleResolvedEntry) | null>;
486
529
  /**
487
530
  * Get a content entry by slug with automatic locale resolution.
488
531
  *
@@ -508,7 +551,7 @@ export declare class ContentEntriesApi {
508
551
  * );
509
552
  * ```
510
553
  */
511
- getBySlugWithLocale(ctx: ConvexContext, args: GetContentEntryBySlugArgs, localeOptions: ResolveLocaleContentOptions): Promise<(ContentEntry & LocaleResolvedEntry) | null>;
554
+ getBySlugWithLocale(ctx: ReadableContext, args: GetContentEntryBySlugArgs, localeOptions: ResolveLocaleContentOptions): Promise<(ContentEntry & LocaleResolvedEntry) | null>;
512
555
  /**
513
556
  * Duplicate a content entry.
514
557
  *
@@ -753,11 +796,11 @@ export declare class VersionsApi {
753
796
  * }
754
797
  * ```
755
798
  */
756
- getHistory(ctx: ConvexContext, args: GetVersionHistoryArgs): Promise<PaginationResult<ContentVersion> | null>;
799
+ getHistory(ctx: ReadableContext, args: GetVersionHistoryArgs): Promise<PaginationResult<ContentVersion> | null>;
757
800
  /**
758
801
  * Get a specific version by ID or version number.
759
802
  *
760
- * @param ctx - Convex query context
803
+ * @param ctx - Convex query or mutation context
761
804
  * @param args - Get arguments (entryId required, plus versionId or versionNumber)
762
805
  * @returns The version or null if not found
763
806
  *
@@ -776,11 +819,11 @@ export declare class VersionsApi {
776
819
  * });
777
820
  * ```
778
821
  */
779
- get(ctx: ConvexContext, args: GetVersionArgs): Promise<ContentVersion | null>;
822
+ get(ctx: ReadableContext, args: GetVersionArgs): Promise<ContentVersion | null>;
780
823
  /**
781
824
  * Get a version by its version number (convenience method).
782
825
  *
783
- * @param ctx - Convex query context
826
+ * @param ctx - Convex query or mutation context
784
827
  * @param entryId - The content entry ID
785
828
  * @param versionNumber - The version number to retrieve
786
829
  * @returns The version or null if not found
@@ -790,11 +833,11 @@ export declare class VersionsApi {
790
833
  * const version3 = await cms.versions.getByNumber(ctx, entry._id, 3);
791
834
  * ```
792
835
  */
793
- getByNumber(ctx: ConvexContext, entryId: string, versionNumber: number): Promise<ContentVersion | null>;
836
+ getByNumber(ctx: ReadableContext, entryId: string, versionNumber: number): Promise<ContentVersion | null>;
794
837
  /**
795
838
  * Get a version by its document ID (convenience method).
796
839
  *
797
- * @param ctx - Convex query context
840
+ * @param ctx - Convex query or mutation context
798
841
  * @param entryId - The content entry ID
799
842
  * @param versionId - The version document ID
800
843
  * @returns The version or null if not found
@@ -804,11 +847,11 @@ export declare class VersionsApi {
804
847
  * const version = await cms.versions.getById(ctx, entry._id, versionDocId);
805
848
  * ```
806
849
  */
807
- getById(ctx: ConvexContext, entryId: string, versionId: string): Promise<ContentVersion | null>;
850
+ getById(ctx: ReadableContext, entryId: string, versionId: string): Promise<ContentVersion | null>;
808
851
  /**
809
852
  * Get the latest (most recent) version snapshot for an entry.
810
853
  *
811
- * @param ctx - Convex query context
854
+ * @param ctx - Convex query or mutation context
812
855
  * @param entryId - The content entry ID
813
856
  * @returns The latest version or null if no versions exist
814
857
  *
@@ -818,14 +861,14 @@ export declare class VersionsApi {
818
861
  * console.log(`Current version: ${latest?.versionNumber}`);
819
862
  * ```
820
863
  */
821
- getLatest(ctx: ConvexContext, entryId: string): Promise<ContentVersion | null>;
864
+ getLatest(ctx: ReadableContext, entryId: string): Promise<ContentVersion | null>;
822
865
  /**
823
866
  * Get the latest published version for an entry.
824
867
  *
825
868
  * Searches through version history to find the most recent version
826
869
  * that was published (wasPublished = true).
827
870
  *
828
- * @param ctx - Convex query context
871
+ * @param ctx - Convex query or mutation context
829
872
  * @param entryId - The content entry ID
830
873
  * @returns The latest published version or null if none published
831
874
  *
@@ -837,11 +880,11 @@ export declare class VersionsApi {
837
880
  * }
838
881
  * ```
839
882
  */
840
- getLatestPublished(ctx: ConvexContext, entryId: string): Promise<ContentVersion | null>;
883
+ getLatestPublished(ctx: ReadableContext, entryId: string): Promise<ContentVersion | null>;
841
884
  /**
842
885
  * Get all published versions for an entry.
843
886
  *
844
- * @param ctx - Convex query context
887
+ * @param ctx - Convex query or mutation context
845
888
  * @param entryId - The content entry ID
846
889
  * @param limit - Maximum number of published versions to return (default: 10)
847
890
  * @returns Array of published versions (newest first)
@@ -852,7 +895,7 @@ export declare class VersionsApi {
852
895
  * console.log(`Found ${publishedVersions.length} published versions`);
853
896
  * ```
854
897
  */
855
- getPublishedHistory(ctx: ConvexContext, entryId: string, limit?: number): Promise<ContentVersion[]>;
898
+ getPublishedHistory(ctx: ReadableContext, entryId: string, limit?: number): Promise<ContentVersion[]>;
856
899
  /**
857
900
  * Compare two versions and generate a detailed diff.
858
901
  *
@@ -881,13 +924,13 @@ export declare class VersionsApi {
881
924
  * }
882
925
  * ```
883
926
  */
884
- compare(ctx: ConvexContext, args: CompareVersionsArgs): Promise<VersionComparison | null>;
927
+ compare(ctx: ReadableContext, args: CompareVersionsArgs): Promise<VersionComparison | null>;
885
928
  /**
886
929
  * Compare the current entry state with a specific version.
887
930
  *
888
931
  * Useful for seeing what has changed since a particular point in time.
889
932
  *
890
- * @param ctx - Convex query context
933
+ * @param ctx - Convex query or mutation context
891
934
  * @param entryId - The content entry ID
892
935
  * @param versionNumber - The version number to compare against
893
936
  * @returns Comparison between the version and current state, or null
@@ -898,11 +941,11 @@ export declare class VersionsApi {
898
941
  * const diff = await cms.versions.compareWithCurrent(ctx, entry._id, 3);
899
942
  * ```
900
943
  */
901
- compareWithCurrent(ctx: ConvexContext, entryId: string, versionNumber: number): Promise<VersionComparison | null>;
944
+ compareWithCurrent(ctx: ReadableContext, entryId: string, versionNumber: number): Promise<VersionComparison | null>;
902
945
  /**
903
946
  * Check if a specific version exists.
904
947
  *
905
- * @param ctx - Convex query context
948
+ * @param ctx - Convex query or mutation context
906
949
  * @param entryId - The content entry ID
907
950
  * @param versionNumber - The version number to check
908
951
  * @returns true if the version exists
@@ -914,11 +957,11 @@ export declare class VersionsApi {
914
957
  * }
915
958
  * ```
916
959
  */
917
- exists(ctx: ConvexContext, entryId: string, versionNumber: number): Promise<boolean>;
960
+ exists(ctx: ReadableContext, entryId: string, versionNumber: number): Promise<boolean>;
918
961
  /**
919
962
  * Count total number of versions for an entry.
920
963
  *
921
- * @param ctx - Convex query context
964
+ * @param ctx - Convex query or mutation context
922
965
  * @param entryId - The content entry ID
923
966
  * @returns Total number of version snapshots
924
967
  *
@@ -928,7 +971,7 @@ export declare class VersionsApi {
928
971
  * console.log(`Entry has ${count} versions`);
929
972
  * ```
930
973
  */
931
- count(ctx: ConvexContext, entryId: string): Promise<number>;
974
+ count(ctx: ReadableContext, entryId: string): Promise<number>;
932
975
  /**
933
976
  * Rollback a content entry to a previous version.
934
977
  *
@@ -1036,19 +1079,19 @@ export declare class MediaAssetsApi {
1036
1079
  /**
1037
1080
  * Get a media asset by ID.
1038
1081
  *
1039
- * @param ctx - Convex query context
1082
+ * @param ctx - Convex query or mutation context
1040
1083
  * @param args - Get arguments
1041
1084
  * @returns The asset or null if not found
1042
1085
  */
1043
- get(ctx: ConvexContext, args: GetMediaAssetArgs): Promise<MediaAsset | null>;
1086
+ get(ctx: ReadableContext, args: GetMediaAssetArgs): Promise<MediaAsset | null>;
1044
1087
  /**
1045
1088
  * List media assets with optional filters.
1046
1089
  *
1047
- * @param ctx - Convex query context
1090
+ * @param ctx - Convex query or mutation context
1048
1091
  * @param args - Query options
1049
1092
  * @returns Paginated list of assets
1050
1093
  */
1051
- list(ctx: ConvexContext, args?: ListMediaAssetsArgs): Promise<PaginationResult<MediaAsset>>;
1094
+ list(ctx: ReadableContext, args?: ListMediaAssetsArgs): Promise<PaginationResult<MediaAsset>>;
1052
1095
  /**
1053
1096
  * Generate a temporary upload URL for client-side file uploads.
1054
1097
  *
@@ -1127,7 +1170,7 @@ export declare class MediaAssetsApi {
1127
1170
  * }
1128
1171
  * ```
1129
1172
  */
1130
- findReferences(ctx: ConvexContext, args: FindMediaAssetReferencesArgs): Promise<MediaAssetReference[]>;
1173
+ findReferences(ctx: ReadableContext, args: FindMediaAssetReferencesArgs): Promise<MediaAssetReference[]>;
1131
1174
  /**
1132
1175
  * Get taxonomy terms associated with a media asset.
1133
1176
  *
@@ -1142,7 +1185,7 @@ export declare class MediaAssetsApi {
1142
1185
  * });
1143
1186
  * ```
1144
1187
  */
1145
- getTerms(ctx: ConvexContext, args: {
1188
+ getTerms(ctx: ReadableContext, args: {
1146
1189
  mediaId: string;
1147
1190
  taxonomyId?: string;
1148
1191
  }): Promise<unknown[]>;
@@ -1284,19 +1327,19 @@ export declare class MediaFoldersApi {
1284
1327
  /**
1285
1328
  * Get a media folder by ID.
1286
1329
  *
1287
- * @param ctx - Convex query context
1330
+ * @param ctx - Convex query or mutation context
1288
1331
  * @param args - Get arguments
1289
1332
  * @returns The folder or null if not found
1290
1333
  */
1291
- get(ctx: ConvexContext, args: GetMediaFolderArgs): Promise<MediaFolder | null>;
1334
+ get(ctx: ReadableContext, args: GetMediaFolderArgs): Promise<MediaFolder | null>;
1292
1335
  /**
1293
1336
  * List media folders.
1294
1337
  *
1295
- * @param ctx - Convex query context
1338
+ * @param ctx - Convex query or mutation context
1296
1339
  * @param args - Optional filter arguments
1297
1340
  * @returns Array of folders
1298
1341
  */
1299
- list(ctx: ConvexContext, args?: ListMediaFoldersArgs): Promise<MediaFolder[]>;
1342
+ list(ctx: ReadableContext, args?: ListMediaFoldersArgs): Promise<MediaFolder[]>;
1300
1343
  /**
1301
1344
  * Move a folder to a new parent.
1302
1345
  *
@@ -1337,13 +1380,13 @@ export declare class MediaFoldersApi {
1337
1380
  * });
1338
1381
  * ```
1339
1382
  */
1340
- getByPath(ctx: ConvexContext, args: GetMediaFolderByPathArgs): Promise<MediaFolder | null>;
1383
+ getByPath(ctx: ReadableContext, args: GetMediaFolderByPathArgs): Promise<MediaFolder | null>;
1341
1384
  /**
1342
1385
  * Get the entire folder tree as a flat list sorted by path.
1343
1386
  *
1344
1387
  * Useful for building folder navigation or selectors.
1345
1388
  *
1346
- * @param ctx - Convex query context
1389
+ * @param ctx - Convex query or mutation context
1347
1390
  * @param args - Optional filter arguments
1348
1391
  * @returns Array of all folders sorted hierarchically by path
1349
1392
  *
@@ -1356,7 +1399,7 @@ export declare class MediaFoldersApi {
1356
1399
  * const rootFolders = folders.filter(f => !f.parentId);
1357
1400
  * ```
1358
1401
  */
1359
- getTree(ctx: ConvexContext, args?: GetFolderTreeArgs): Promise<MediaFolder[]>;
1402
+ getTree(ctx: ReadableContext, args?: GetFolderTreeArgs): Promise<MediaFolder[]>;
1360
1403
  }
1361
1404
  /**
1362
1405
  * Wrapper for media variant operations.
@@ -1428,18 +1471,18 @@ export declare class MediaVariantsApi {
1428
1471
  /**
1429
1472
  * Get a variant by ID.
1430
1473
  *
1431
- * @param ctx - Convex query context
1474
+ * @param ctx - Convex query or mutation context
1432
1475
  * @param args - Query arguments
1433
1476
  * @returns The variant with URL or null
1434
1477
  */
1435
- get(ctx: ConvexContext, args: {
1478
+ get(ctx: ReadableContext, args: {
1436
1479
  id: string;
1437
1480
  includeDeleted?: boolean;
1438
1481
  }): Promise<MediaVariantWithUrl | null>;
1439
1482
  /**
1440
1483
  * List variants for an asset.
1441
1484
  *
1442
- * @param ctx - Convex query context
1485
+ * @param ctx - Convex query or mutation context
1443
1486
  * @param args - Query arguments with filters
1444
1487
  * @returns Array of variants with URLs
1445
1488
  *
@@ -1453,11 +1496,11 @@ export declare class MediaVariantsApi {
1453
1496
  * });
1454
1497
  * ```
1455
1498
  */
1456
- list(ctx: ConvexContext, args: ListMediaVariantsArgs): Promise<MediaVariantWithUrl[]>;
1499
+ list(ctx: ReadableContext, args: ListMediaVariantsArgs): Promise<MediaVariantWithUrl[]>;
1457
1500
  /**
1458
1501
  * Find the best matching variant for target dimensions.
1459
1502
  *
1460
- * @param ctx - Convex query context
1503
+ * @param ctx - Convex query or mutation context
1461
1504
  * @param args - Target size and preferences
1462
1505
  * @returns Best matching variant or null
1463
1506
  *
@@ -1471,13 +1514,13 @@ export declare class MediaVariantsApi {
1471
1514
  * });
1472
1515
  * ```
1473
1516
  */
1474
- getBestVariant(ctx: ConvexContext, args: GetBestVariantArgs): Promise<(MediaVariantWithUrl & {
1517
+ getBestVariant(ctx: ReadableContext, args: GetBestVariantArgs): Promise<(MediaVariantWithUrl & {
1475
1518
  isOriginal: boolean;
1476
1519
  }) | null>;
1477
1520
  /**
1478
1521
  * Get responsive srcset data for HTML img/picture tags.
1479
1522
  *
1480
- * @param ctx - Convex query context
1523
+ * @param ctx - Convex query or mutation context
1481
1524
  * @param args - Asset ID and optional format filter
1482
1525
  * @returns Srcset data for responsive images
1483
1526
  *
@@ -1492,7 +1535,7 @@ export declare class MediaVariantsApi {
1492
1535
  * <img src={srcset.src} srcset={srcset.srcset} sizes="100vw" />
1493
1536
  * ```
1494
1537
  */
1495
- getResponsiveSrcset(ctx: ConvexContext, args: {
1538
+ getResponsiveSrcset(ctx: ReadableContext, args: {
1496
1539
  assetId: string;
1497
1540
  format?: string;
1498
1541
  }): Promise<ResponsiveSrcsetResult>;
@@ -1503,16 +1546,16 @@ export declare class MediaVariantsApi {
1503
1546
  * @param args - Asset ID
1504
1547
  * @returns Asset with variants or null
1505
1548
  */
1506
- getAssetWithVariants(ctx: ConvexContext, args: {
1549
+ getAssetWithVariants(ctx: ReadableContext, args: {
1507
1550
  assetId: string;
1508
1551
  }): Promise<AssetWithVariants | null>;
1509
1552
  /**
1510
1553
  * Get available variant presets.
1511
1554
  *
1512
- * @param ctx - Convex query context
1555
+ * @param ctx - Convex query or mutation context
1513
1556
  * @returns Array of preset configurations
1514
1557
  */
1515
- getPresets(ctx: ConvexContext): Promise<VariantPreset[]>;
1558
+ getPresets(ctx: ReadableContext): Promise<VariantPreset[]>;
1516
1559
  /**
1517
1560
  * Generate variants from preset configurations.
1518
1561
  *
@@ -1573,7 +1616,7 @@ export declare class MediaVariantsApi {
1573
1616
  *
1574
1617
  * @example
1575
1618
  * ```typescript
1576
- * import { createCmsClient } from "@convex-cms/core";
1619
+ * import { createCmsClient } from "convex-cms";
1577
1620
  * import { components } from "./_generated/api";
1578
1621
  *
1579
1622
  * export const cms = createCmsClient(components.convexCms, {
@@ -2175,7 +2218,7 @@ export interface ResourcePermissionGranted {
2175
2218
  *
2176
2219
  * @example
2177
2220
  * ```typescript
2178
- * import { createCmsClient } from "@convex-cms/core";
2221
+ * import { createCmsClient } from "convex-cms";
2179
2222
  * import { components } from "./_generated/api";
2180
2223
  *
2181
2224
  * // Create with default configuration