convex-cms 0.0.2 → 0.0.5-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/README.md +109 -13
  2. package/admin-dist/nitro.json +15 -0
  3. package/admin-dist/public/assets/CmsEmptyState-CiMQwSQV.js +5 -0
  4. package/admin-dist/public/assets/CmsPageHeader-ohOq0luT.js +1 -0
  5. package/admin-dist/public/assets/CmsStatusBadge-BdNf0V9v.js +1 -0
  6. package/admin-dist/public/assets/CmsSurface-CWup6Jh7.js +1 -0
  7. package/admin-dist/public/assets/CmsToolbar-cEBlCHa3.js +1 -0
  8. package/admin-dist/public/assets/ContentEntryEditor-BY5ypfUs.js +4 -0
  9. package/admin-dist/public/assets/ErrorState-C4nJ-ml4.js +1 -0
  10. package/admin-dist/public/assets/TaxonomyFilter-BgE_SR_O.js +1 -0
  11. package/admin-dist/public/assets/_contentTypeId-DtZectcC.js +1 -0
  12. package/admin-dist/public/assets/_entryId-BpSmrfAm.js +1 -0
  13. package/admin-dist/public/assets/alert-Bf2l8kxw.js +1 -0
  14. package/admin-dist/public/assets/badge-qPrc4AUM.js +1 -0
  15. package/admin-dist/public/assets/circle-check-big-Dgozy3vV.js +1 -0
  16. package/admin-dist/public/assets/command-QOmNhlb0.js +1 -0
  17. package/admin-dist/public/assets/content-OEBGlxg1.js +1 -0
  18. package/admin-dist/public/assets/content-types-CjQliqVV.js +2 -0
  19. package/admin-dist/public/assets/globals-hAmgC66w.css +1 -0
  20. package/admin-dist/public/assets/index-BH_ECMhv.js +1 -0
  21. package/admin-dist/public/assets/label-DCsUdvFh.js +1 -0
  22. package/admin-dist/public/assets/link-2-Czw1N61H.js +1 -0
  23. package/admin-dist/public/assets/list-DtCsXj8-.js +1 -0
  24. package/admin-dist/public/assets/main-CXgkZMhe.js +97 -0
  25. package/admin-dist/public/assets/media-DTJ3-ViE.js +1 -0
  26. package/admin-dist/public/assets/new._contentTypeId-CoTDxKzf.js +1 -0
  27. package/admin-dist/public/assets/plus-xCFJK0RC.js +1 -0
  28. package/admin-dist/public/assets/rotate-ccw-DIqK63wY.js +1 -0
  29. package/admin-dist/public/assets/scroll-area-B-yrE66a.js +1 -0
  30. package/admin-dist/public/assets/search-CbCbboeU.js +1 -0
  31. package/admin-dist/public/assets/select-Co3TZFJb.js +1 -0
  32. package/admin-dist/public/assets/settings-BspTTv_o.js +1 -0
  33. package/admin-dist/public/assets/switch-CfavASmR.js +1 -0
  34. package/admin-dist/public/assets/tabs-CN5s5u2W.js +1 -0
  35. package/admin-dist/public/assets/tanstack-adapter-npeE3RdY.js +1 -0
  36. package/admin-dist/public/assets/taxonomies-CgG46fIF.js +1 -0
  37. package/admin-dist/public/assets/textarea-BJ0XFZpT.js +1 -0
  38. package/admin-dist/public/assets/trash-B3daldm5.js +1 -0
  39. package/admin-dist/public/assets/triangle-alert-BZRcqsUg.js +1 -0
  40. package/admin-dist/public/assets/useBreadcrumbLabel-DwZlwvFF.js +1 -0
  41. package/admin-dist/public/assets/usePermissions-C1JQhfqb.js +1 -0
  42. package/admin-dist/public/favicon.ico +0 -0
  43. package/admin-dist/server/_chunks/_libs/@date-fns/tz.mjs +217 -0
  44. package/admin-dist/server/_chunks/_libs/@floating-ui/core.mjs +719 -0
  45. package/admin-dist/server/_chunks/_libs/@floating-ui/dom.mjs +622 -0
  46. package/admin-dist/server/_chunks/_libs/@floating-ui/react-dom.mjs +292 -0
  47. package/admin-dist/server/_chunks/_libs/@floating-ui/utils.mjs +320 -0
  48. package/admin-dist/server/_chunks/_libs/@radix-ui/number.mjs +6 -0
  49. package/admin-dist/server/_chunks/_libs/@radix-ui/primitive.mjs +11 -0
  50. package/admin-dist/server/_chunks/_libs/@radix-ui/react-arrow.mjs +23 -0
  51. package/admin-dist/server/_chunks/_libs/@radix-ui/react-avatar.mjs +119 -0
  52. package/admin-dist/server/_chunks/_libs/@radix-ui/react-checkbox.mjs +270 -0
  53. package/admin-dist/server/_chunks/_libs/@radix-ui/react-collection.mjs +69 -0
  54. package/admin-dist/server/_chunks/_libs/@radix-ui/react-compose-refs.mjs +39 -0
  55. package/admin-dist/server/_chunks/_libs/@radix-ui/react-context.mjs +137 -0
  56. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dialog.mjs +325 -0
  57. package/admin-dist/server/_chunks/_libs/@radix-ui/react-direction.mjs +9 -0
  58. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dismissable-layer.mjs +210 -0
  59. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dropdown-menu.mjs +253 -0
  60. package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-guards.mjs +29 -0
  61. package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-scope.mjs +206 -0
  62. package/admin-dist/server/_chunks/_libs/@radix-ui/react-id.mjs +14 -0
  63. package/admin-dist/server/_chunks/_libs/@radix-ui/react-label.mjs +23 -0
  64. package/admin-dist/server/_chunks/_libs/@radix-ui/react-menu.mjs +812 -0
  65. package/admin-dist/server/_chunks/_libs/@radix-ui/react-popover.mjs +300 -0
  66. package/admin-dist/server/_chunks/_libs/@radix-ui/react-popper.mjs +286 -0
  67. package/admin-dist/server/_chunks/_libs/@radix-ui/react-portal.mjs +16 -0
  68. package/admin-dist/server/_chunks/_libs/@radix-ui/react-presence.mjs +128 -0
  69. package/admin-dist/server/_chunks/_libs/@radix-ui/react-primitive.mjs +141 -0
  70. package/admin-dist/server/_chunks/_libs/@radix-ui/react-roving-focus.mjs +224 -0
  71. package/admin-dist/server/_chunks/_libs/@radix-ui/react-scroll-area.mjs +721 -0
  72. package/admin-dist/server/_chunks/_libs/@radix-ui/react-select.mjs +1163 -0
  73. package/admin-dist/server/_chunks/_libs/@radix-ui/react-separator.mjs +28 -0
  74. package/admin-dist/server/_chunks/_libs/@radix-ui/react-slot.mjs +601 -0
  75. package/admin-dist/server/_chunks/_libs/@radix-ui/react-switch.mjs +152 -0
  76. package/admin-dist/server/_chunks/_libs/@radix-ui/react-tabs.mjs +189 -0
  77. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-callback-ref.mjs +11 -0
  78. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-controllable-state.mjs +69 -0
  79. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-effect-event.mjs +1 -0
  80. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-escape-keydown.mjs +17 -0
  81. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-is-hydrated.mjs +15 -0
  82. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-layout-effect.mjs +6 -0
  83. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-previous.mjs +14 -0
  84. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-size.mjs +39 -0
  85. package/admin-dist/server/_chunks/_libs/@radix-ui/react-visually-hidden.mjs +33 -0
  86. package/admin-dist/server/_chunks/_libs/@tanstack/history.mjs +409 -0
  87. package/admin-dist/server/_chunks/_libs/@tanstack/react-router.mjs +1718 -0
  88. package/admin-dist/server/_chunks/_libs/@tanstack/react-store.mjs +56 -0
  89. package/admin-dist/server/_chunks/_libs/@tanstack/router-core.mjs +4829 -0
  90. package/admin-dist/server/_chunks/_libs/@tanstack/store.mjs +134 -0
  91. package/admin-dist/server/_chunks/_libs/react-dom.mjs +10781 -0
  92. package/admin-dist/server/_chunks/_libs/react.mjs +513 -0
  93. package/admin-dist/server/_libs/aria-hidden.mjs +122 -0
  94. package/admin-dist/server/_libs/class-variance-authority.mjs +44 -0
  95. package/admin-dist/server/_libs/clsx.mjs +16 -0
  96. package/admin-dist/server/_libs/cmdk.mjs +315 -0
  97. package/admin-dist/server/_libs/convex.mjs +4841 -0
  98. package/admin-dist/server/_libs/cookie-es.mjs +58 -0
  99. package/admin-dist/server/_libs/croner.mjs +1 -0
  100. package/admin-dist/server/_libs/crossws.mjs +1 -0
  101. package/admin-dist/server/_libs/date-fns.mjs +1716 -0
  102. package/admin-dist/server/_libs/detect-node-es.mjs +1 -0
  103. package/admin-dist/server/_libs/get-nonce.mjs +9 -0
  104. package/admin-dist/server/_libs/h3-v2.mjs +277 -0
  105. package/admin-dist/server/_libs/h3.mjs +401 -0
  106. package/admin-dist/server/_libs/hookable.mjs +1 -0
  107. package/admin-dist/server/_libs/isbot.mjs +20 -0
  108. package/admin-dist/server/_libs/lucide-react.mjs +850 -0
  109. package/admin-dist/server/_libs/ohash.mjs +1 -0
  110. package/admin-dist/server/_libs/react-day-picker.mjs +2201 -0
  111. package/admin-dist/server/_libs/react-remove-scroll-bar.mjs +82 -0
  112. package/admin-dist/server/_libs/react-remove-scroll.mjs +328 -0
  113. package/admin-dist/server/_libs/react-style-singleton.mjs +69 -0
  114. package/admin-dist/server/_libs/rou3.mjs +8 -0
  115. package/admin-dist/server/_libs/seroval-plugins.mjs +58 -0
  116. package/admin-dist/server/_libs/seroval.mjs +1765 -0
  117. package/admin-dist/server/_libs/srvx.mjs +719 -0
  118. package/admin-dist/server/_libs/tailwind-merge.mjs +3010 -0
  119. package/admin-dist/server/_libs/tiny-invariant.mjs +12 -0
  120. package/admin-dist/server/_libs/tiny-warning.mjs +5 -0
  121. package/admin-dist/server/_libs/tslib.mjs +39 -0
  122. package/admin-dist/server/_libs/ufo.mjs +54 -0
  123. package/admin-dist/server/_libs/unctx.mjs +1 -0
  124. package/admin-dist/server/_libs/unstorage.mjs +1 -0
  125. package/admin-dist/server/_libs/use-callback-ref.mjs +66 -0
  126. package/admin-dist/server/_libs/use-sidecar.mjs +106 -0
  127. package/admin-dist/server/_libs/use-sync-external-store.mjs +139 -0
  128. package/admin-dist/server/_libs/zod.mjs +4223 -0
  129. package/admin-dist/server/_ssr/CmsButton-B45JAKR1.mjs +125 -0
  130. package/admin-dist/server/_ssr/CmsEmptyState-D_BQFAVR.mjs +290 -0
  131. package/admin-dist/server/_ssr/CmsPageHeader-CrUZA59A.mjs +24 -0
  132. package/admin-dist/server/_ssr/CmsStatusBadge-B-sj6yaj.mjs +127 -0
  133. package/admin-dist/server/_ssr/CmsSurface-DKJZhpjk.mjs +44 -0
  134. package/admin-dist/server/_ssr/CmsToolbar-ByaW5iXf.mjs +49 -0
  135. package/admin-dist/server/_ssr/ContentEntryEditor-D3_Jb1dq.mjs +3720 -0
  136. package/admin-dist/server/_ssr/ErrorState-cI-bKLez.mjs +89 -0
  137. package/admin-dist/server/_ssr/TaxonomyFilter-BRJkuCtA.mjs +188 -0
  138. package/admin-dist/server/_ssr/_contentTypeId-B9kA6CaM.mjs +379 -0
  139. package/admin-dist/server/_ssr/_entryId-BddcMkZN.mjs +161 -0
  140. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-Dd7AmelK.mjs +4 -0
  141. package/admin-dist/server/_ssr/command-CGtVr8Gb.mjs +128 -0
  142. package/admin-dist/server/_ssr/config.server-D7JHDcDv.mjs +117 -0
  143. package/admin-dist/server/_ssr/content-D1tbeOd0.mjs +647 -0
  144. package/admin-dist/server/_ssr/content-types-BZqY_BER.mjs +1342 -0
  145. package/admin-dist/server/_ssr/index-BIdq4xaC.mjs +264 -0
  146. package/admin-dist/server/_ssr/index.mjs +1275 -0
  147. package/admin-dist/server/_ssr/label-T-QNKAr6.mjs +22 -0
  148. package/admin-dist/server/_ssr/media-C-xqjBrl.mjs +1832 -0
  149. package/admin-dist/server/_ssr/new._contentTypeId-DWic9cRq.mjs +144 -0
  150. package/admin-dist/server/_ssr/router-D1BMAMJT.mjs +1556 -0
  151. package/admin-dist/server/_ssr/scroll-area-C0pic_WA.mjs +59 -0
  152. package/admin-dist/server/_ssr/select-CqmuN2F6.mjs +142 -0
  153. package/admin-dist/server/_ssr/settings-CAkncGGV.mjs +430 -0
  154. package/admin-dist/server/_ssr/start-HYkvq4Ni.mjs +4 -0
  155. package/admin-dist/server/_ssr/switch-CgmuJkT9.mjs +31 -0
  156. package/admin-dist/server/_ssr/tabs-CnMj0aRy.mjs +630 -0
  157. package/admin-dist/server/_ssr/tanstack-adapter-BXZrMauE.mjs +119 -0
  158. package/admin-dist/server/_ssr/taxonomies-thl3BfVm.mjs +1015 -0
  159. package/admin-dist/server/_ssr/textarea-4K5OJgeh.mjs +18 -0
  160. package/admin-dist/server/_ssr/trash-B40Gx5zP.mjs +411 -0
  161. package/admin-dist/server/_ssr/useBreadcrumbLabel-rn-fL4zV.mjs +16 -0
  162. package/admin-dist/server/_ssr/usePermissions-CKeM6_Vw.mjs +68 -0
  163. package/admin-dist/server/favicon.ico +0 -0
  164. package/admin-dist/server/index.mjs +641 -0
  165. package/dist/cli/commands/init.d.ts +6 -0
  166. package/dist/cli/commands/init.d.ts.map +1 -0
  167. package/dist/cli/commands/init.js +156 -0
  168. package/dist/cli/commands/init.js.map +1 -0
  169. package/dist/cli/index.js +6 -0
  170. package/dist/cli/index.js.map +1 -1
  171. package/dist/client/admin-config.d.ts +2 -3
  172. package/dist/client/admin-config.d.ts.map +1 -1
  173. package/dist/client/admin-config.js +2 -3
  174. package/dist/client/admin-config.js.map +1 -1
  175. package/dist/client/adminApi.d.ts +1877 -1851
  176. package/dist/client/adminApi.d.ts.map +1 -1
  177. package/dist/client/adminApi.js +649 -629
  178. package/dist/client/adminApi.js.map +1 -1
  179. package/dist/client/agentTools.d.ts +1231 -139
  180. package/dist/client/agentTools.d.ts.map +1 -1
  181. package/dist/client/agentTools.js +37 -13
  182. package/dist/client/agentTools.js.map +1 -1
  183. package/dist/client/index.d.ts +5 -5
  184. package/dist/client/index.d.ts.map +1 -1
  185. package/dist/client/index.js +4 -4
  186. package/dist/client/index.js.map +1 -1
  187. package/dist/client/schema/codegen.d.ts +2 -2
  188. package/dist/client/schema/codegen.d.ts.map +1 -1
  189. package/dist/client/schema/codegen.js +3 -3
  190. package/dist/client/schema/codegen.js.map +1 -1
  191. package/dist/client/schema/defineContentType.d.ts +3 -3
  192. package/dist/client/schema/defineContentType.js +3 -3
  193. package/dist/client/schema/index.d.ts +7 -7
  194. package/dist/client/schema/index.d.ts.map +1 -1
  195. package/dist/client/schema/index.js +5 -5
  196. package/dist/client/schema/index.js.map +1 -1
  197. package/dist/client/schema/schemaDrift.d.ts +1 -1
  198. package/dist/client/schema/schemaDrift.js +1 -1
  199. package/dist/client/schema/typedClient.d.ts +2 -2
  200. package/dist/client/schema/typedClient.js +2 -2
  201. package/dist/client/schema/types.d.ts +1 -1
  202. package/dist/client/schema/types.js +1 -1
  203. package/dist/client/wrapper.d.ts +108 -65
  204. package/dist/client/wrapper.d.ts.map +1 -1
  205. package/dist/client/wrapper.js +22 -22
  206. package/dist/client/wrapper.js.map +1 -1
  207. package/dist/component/_generated/component.d.ts +9 -0
  208. package/dist/component/_generated/component.d.ts.map +1 -1
  209. package/dist/component/convex.config.d.ts +2 -2
  210. package/dist/component/convex.config.js +2 -2
  211. package/dist/component/index.d.ts +1 -1
  212. package/dist/component/index.js +1 -1
  213. package/dist/component/lib/ragContentChunker.d.ts +1 -1
  214. package/dist/component/lib/ragContentChunker.js +1 -1
  215. package/dist/component/mediaAssets.d.ts +35 -0
  216. package/dist/component/mediaAssets.d.ts.map +1 -1
  217. package/dist/component/mediaAssets.js +81 -0
  218. package/dist/component/mediaAssets.js.map +1 -1
  219. package/dist/component/roles.d.ts +1 -1
  220. package/dist/component/roles.js +1 -1
  221. package/dist/react/index.d.ts +2 -2
  222. package/dist/react/index.d.ts.map +1 -1
  223. package/dist/react/index.js +13 -7
  224. package/dist/react/index.js.map +1 -1
  225. package/dist/test.d.ts +2 -2
  226. package/dist/test.d.ts.map +1 -1
  227. package/dist/test.js +4 -3
  228. package/dist/test.js.map +1 -1
  229. package/package.json +37 -13
  230. package/dist/component/auditLog.d.ts +0 -410
  231. package/dist/component/auditLog.d.ts.map +0 -1
  232. package/dist/component/auditLog.js +0 -607
  233. package/dist/component/auditLog.js.map +0 -1
  234. package/dist/component/types.d.ts +0 -4
  235. package/dist/component/types.d.ts.map +0 -1
  236. package/dist/component/types.js +0 -2
  237. package/dist/component/types.js.map +0 -1
  238. package/src/cli/commands/admin.ts +0 -104
  239. package/src/cli/index.ts +0 -21
  240. package/src/cli/utils/detectConvexUrl.ts +0 -54
  241. package/src/cli/utils/openBrowser.ts +0 -16
  242. package/src/client/admin-config.ts +0 -138
  243. package/src/client/adminApi.ts +0 -942
  244. package/src/client/agentTools.ts +0 -1311
  245. package/src/client/argTypes.ts +0 -316
  246. package/src/client/field-types.ts +0 -187
  247. package/src/client/index.ts +0 -1301
  248. package/src/client/queryBuilder.ts +0 -1100
  249. package/src/client/schema/codegen.ts +0 -500
  250. package/src/client/schema/defineContentType.ts +0 -501
  251. package/src/client/schema/index.ts +0 -169
  252. package/src/client/schema/schemaDrift.ts +0 -574
  253. package/src/client/schema/typedClient.ts +0 -688
  254. package/src/client/schema/types.ts +0 -666
  255. package/src/client/types.ts +0 -723
  256. package/src/client/workflows.ts +0 -141
  257. package/src/client/wrapper.ts +0 -4304
  258. package/src/component/_generated/api.ts +0 -140
  259. package/src/component/_generated/component.ts +0 -5029
  260. package/src/component/_generated/dataModel.ts +0 -60
  261. package/src/component/_generated/server.ts +0 -156
  262. package/src/component/authorization.ts +0 -647
  263. package/src/component/authorizationHooks.ts +0 -668
  264. package/src/component/bulkOperations.ts +0 -687
  265. package/src/component/contentEntries.ts +0 -1976
  266. package/src/component/contentEntryMutations.ts +0 -1223
  267. package/src/component/contentEntryValidation.ts +0 -707
  268. package/src/component/contentLock.ts +0 -550
  269. package/src/component/contentTypeMigration.ts +0 -1064
  270. package/src/component/contentTypeMutations.ts +0 -969
  271. package/src/component/contentTypes.ts +0 -346
  272. package/src/component/convex.config.ts +0 -44
  273. package/src/component/documentTypes.ts +0 -240
  274. package/src/component/eventEmitter.ts +0 -485
  275. package/src/component/exportImport.ts +0 -1169
  276. package/src/component/index.ts +0 -491
  277. package/src/component/lib/deepReferenceResolver.ts +0 -999
  278. package/src/component/lib/errors.ts +0 -816
  279. package/src/component/lib/index.ts +0 -145
  280. package/src/component/lib/mediaReferenceResolver.ts +0 -495
  281. package/src/component/lib/metadataExtractor.ts +0 -792
  282. package/src/component/lib/mutationAuth.ts +0 -199
  283. package/src/component/lib/queries.ts +0 -79
  284. package/src/component/lib/ragContentChunker.ts +0 -1371
  285. package/src/component/lib/referenceResolver.ts +0 -430
  286. package/src/component/lib/slugGenerator.ts +0 -262
  287. package/src/component/lib/slugUniqueness.ts +0 -333
  288. package/src/component/lib/softDelete.ts +0 -44
  289. package/src/component/localeFallbackChain.ts +0 -673
  290. package/src/component/localeFields.ts +0 -896
  291. package/src/component/mediaAssetMutations.ts +0 -725
  292. package/src/component/mediaAssets.ts +0 -932
  293. package/src/component/mediaFolderMutations.ts +0 -1046
  294. package/src/component/mediaUploadMutations.ts +0 -224
  295. package/src/component/mediaVariantMutations.ts +0 -900
  296. package/src/component/mediaVariants.ts +0 -793
  297. package/src/component/ragContentIndexer.ts +0 -1067
  298. package/src/component/rateLimitHooks.ts +0 -572
  299. package/src/component/roles.ts +0 -1360
  300. package/src/component/scheduledPublish.ts +0 -358
  301. package/src/component/schema.ts +0 -617
  302. package/src/component/taxonomies.ts +0 -949
  303. package/src/component/taxonomyMutations.ts +0 -1210
  304. package/src/component/trash.ts +0 -724
  305. package/src/component/userContext.ts +0 -898
  306. package/src/component/validation.ts +0 -1388
  307. package/src/component/validators.ts +0 -949
  308. package/src/component/versionMutations.ts +0 -392
  309. package/src/component/webhookTrigger.ts +0 -1922
  310. package/src/react/index.ts +0 -898
  311. package/src/test.ts +0 -1580
@@ -1,316 +0,0 @@
1
- /**
2
- * Derived argument types using `Infer<>` and `StringifyIds<>` for API boundary serialization.
3
- */
4
-
5
- import type { Infer } from "convex/values";
6
- import type {
7
- StringifyIds,
8
- ContentType,
9
- MediaVariantWithUrl,
10
- } from "../component/documentTypes.js";
11
- import * as validators from "../component/validators.js";
12
-
13
- // =============================================================================
14
- // Content Type Arguments
15
- // =============================================================================
16
-
17
- export type CreateContentTypeArgs = StringifyIds<Infer<typeof validators.createContentTypeArgs>>;
18
-
19
- type UpdateContentTypeArgsBase = StringifyIds<Infer<typeof validators.updateContentTypeArgs>>;
20
-
21
- /** Extends base validator type with wrapper-specific `force` field for breaking changes */
22
- export interface UpdateContentTypeArgs extends UpdateContentTypeArgsBase {
23
- force?: boolean;
24
- }
25
-
26
- export type DeleteContentTypeArgs = StringifyIds<Infer<typeof validators.deleteContentTypeArgs>>;
27
-
28
- // =============================================================================
29
- // Content Entry Arguments
30
- // =============================================================================
31
-
32
- export type CreateContentEntryArgs = StringifyIds<Infer<typeof validators.createContentEntryArgs>>;
33
- export type UpdateContentEntryArgs = StringifyIds<Infer<typeof validators.updateContentEntryArgs>>;
34
- export type DeleteContentEntryArgs = StringifyIds<Infer<typeof validators.deleteContentEntryArgs>>;
35
- export type PublishEntryArgs = StringifyIds<Infer<typeof validators.publishEntryArgs>>;
36
- export type ScheduleEntryArgs = StringifyIds<Infer<typeof validators.scheduleEntryArgs>>;
37
- export type UnpublishEntryArgs = StringifyIds<Infer<typeof validators.unpublishEntryArgs>>;
38
- export type DuplicateEntryArgs = StringifyIds<Infer<typeof validators.duplicateContentEntryArgs>>;
39
-
40
- // =============================================================================
41
- // Version Arguments
42
- // =============================================================================
43
-
44
- export type GetVersionHistoryArgs = StringifyIds<Infer<typeof validators.getVersionHistoryArgs>>;
45
- export type GetVersionArgs = StringifyIds<Infer<typeof validators.getVersionArgs>>;
46
- export type RollbackVersionArgs = StringifyIds<Infer<typeof validators.rollbackVersionArgs>>;
47
- export type CompareVersionsArgs = StringifyIds<Infer<typeof validators.compareVersionsArgs>>;
48
-
49
- // =============================================================================
50
- // Media Asset Arguments
51
- // =============================================================================
52
-
53
- export type CreateMediaAssetArgs = StringifyIds<Infer<typeof validators.createMediaAssetArgs>>;
54
- export type UpdateMediaAssetArgs = StringifyIds<Infer<typeof validators.updateMediaAssetArgs>>;
55
- export type DeleteMediaAssetArgs = StringifyIds<Infer<typeof validators.deleteMediaAssetArgs>>;
56
- export type RestoreMediaAssetArgs = StringifyIds<Infer<typeof validators.restoreMediaAssetArgs>>;
57
-
58
- // =============================================================================
59
- // Media Folder Arguments
60
- // =============================================================================
61
-
62
- export type CreateMediaFolderArgs = StringifyIds<Infer<typeof validators.createMediaFolderArgs>>;
63
- export type UpdateMediaFolderArgs = StringifyIds<Infer<typeof validators.updateMediaFolderArgs>>;
64
- export type MoveFolderArgs = StringifyIds<Infer<typeof validators.moveFolderArgs>>;
65
- export type DeleteMediaFolderArgs = StringifyIds<Infer<typeof validators.deleteMediaFolderArgs>>;
66
- export type RestoreMediaFolderArgs = StringifyIds<Infer<typeof validators.restoreMediaFolderArgs>>;
67
- export type MoveMediaAssetsArgs = StringifyIds<Infer<typeof validators.moveMediaAssetsArgs>>;
68
-
69
- // =============================================================================
70
- // Media Variant Arguments
71
- // =============================================================================
72
-
73
- export type CreateMediaVariantArgs = StringifyIds<Infer<typeof validators.createMediaVariantArgs>>;
74
- export type RequestVariantGenerationArgs = StringifyIds<Infer<typeof validators.requestVariantGenerationArgs>>;
75
- export type UpdateVariantStatusArgs = StringifyIds<Infer<typeof validators.updateVariantStatusArgs>>;
76
- export type DeleteMediaVariantArgs = StringifyIds<Infer<typeof validators.deleteMediaVariantArgs>>;
77
- export type DeleteAssetVariantsArgs = StringifyIds<Infer<typeof validators.deleteAssetVariantsArgs>>;
78
- export type GetMediaVariantArgs = StringifyIds<Infer<typeof validators.getMediaVariantArgs>>;
79
- export type ListMediaVariantsArgs = StringifyIds<Infer<typeof validators.listMediaVariantsArgs>>;
80
- export type GetBestVariantArgs = StringifyIds<Infer<typeof validators.getBestVariantArgs>>;
81
-
82
- // =============================================================================
83
- // Bulk Operation Arguments
84
- // =============================================================================
85
-
86
- export type BulkPublishArgs = StringifyIds<Infer<typeof validators.bulkPublishArgs>>;
87
- export type BulkUnpublishArgs = StringifyIds<Infer<typeof validators.bulkUnpublishArgs>>;
88
- export type BulkDeleteArgs = StringifyIds<Infer<typeof validators.bulkDeleteArgs>>;
89
- export type BulkUpdateArgs = StringifyIds<Infer<typeof validators.bulkUpdateArgs>>;
90
-
91
- // =============================================================================
92
- // Trash Operation Arguments
93
- // =============================================================================
94
-
95
- export type UpdateTrashConfigArgs = StringifyIds<Infer<typeof validators.updateTrashConfigArgs>>;
96
- export type ListTrashArgs = StringifyIds<Infer<typeof validators.listTrashArgs>>;
97
- export type EmptyTrashArgs = StringifyIds<Infer<typeof validators.emptyTrashArgs>>;
98
-
99
- // =============================================================================
100
- // Content Lock Arguments
101
- // =============================================================================
102
-
103
- export type AcquireLockArgs = StringifyIds<Infer<typeof validators.acquireLockArgs>>;
104
- export type ReleaseLockArgs = StringifyIds<Infer<typeof validators.releaseLockArgs>>;
105
- export type ForceReleaseLockArgs = StringifyIds<Infer<typeof validators.forceReleaseLockArgs>>;
106
- export type RenewLockArgs = StringifyIds<Infer<typeof validators.renewLockArgs>>;
107
- export type CheckLockArgs = StringifyIds<Infer<typeof validators.checkLockArgs>>;
108
- export type ListLockedEntriesArgs = StringifyIds<Infer<typeof validators.listLockedEntriesArgs>>;
109
-
110
- // =============================================================================
111
- // Query Arguments
112
- // =============================================================================
113
-
114
- export type ContentQueryArgs = StringifyIds<Infer<typeof validators.contentQueryArgs>>;
115
- export type MediaQueryArgs = StringifyIds<Infer<typeof validators.mediaQueryArgs>>;
116
- export type ListMediaAssetsArgsFromValidator = StringifyIds<Infer<typeof validators.listMediaAssetsArgs>>;
117
-
118
- // =============================================================================
119
- // Wrapper-Specific Argument Types (no direct validator equivalents)
120
- // =============================================================================
121
-
122
- import type {
123
- ContentQueryOptions,
124
- MediaQueryOptions,
125
- VariantType,
126
- PaginationOpts,
127
- } from "./types.js";
128
-
129
- export interface GetContentTypeArgs {
130
- id?: string;
131
- name?: string;
132
- includeDeleted?: boolean;
133
- }
134
-
135
- export interface ListContentTypesArgs {
136
- isActive?: boolean;
137
- includeDeleted?: boolean;
138
- sortBy?: "name" | "createdAt";
139
- sortDirection?: "asc" | "desc";
140
- paginationOpts?: PaginationOpts;
141
- }
142
-
143
- export interface GetContentEntryArgs {
144
- id: string;
145
- }
146
-
147
- export interface GetContentEntryBySlugArgs {
148
- contentTypeId?: string;
149
- contentTypeName?: string;
150
- slug: string;
151
- locale?: string;
152
- }
153
-
154
- export type ListContentEntriesArgs = ContentQueryOptions;
155
-
156
- export interface RestoreEntryArgs {
157
- id: string;
158
- restoredBy?: string;
159
- }
160
-
161
- export interface BulkRestoreArgs {
162
- ids: string[];
163
- restoredBy?: string;
164
- }
165
-
166
- export interface GetMediaAssetArgs {
167
- id: string;
168
- }
169
-
170
- export type ListMediaAssetsArgs = MediaQueryOptions;
171
-
172
- export interface GetMediaFolderArgs {
173
- id: string;
174
- }
175
-
176
- export interface ListMediaFoldersArgs {
177
- parentId?: string;
178
- includeDeleted?: boolean;
179
- }
180
-
181
- export interface GenerateUploadUrlArgs {
182
- maxFileSize?: number;
183
- allowedMimeTypes?: string[];
184
- requestedBy?: string;
185
- }
186
-
187
- export interface FindMediaAssetReferencesArgs {
188
- id: string;
189
- limit?: number;
190
- }
191
-
192
- export interface GetMediaFolderByPathArgs {
193
- path: string;
194
- includeDeleted?: boolean;
195
- }
196
-
197
- export interface GetFolderTreeArgs {
198
- includeDeleted?: boolean;
199
- }
200
-
201
- export interface GenerateFromPresetsArgs {
202
- assetId: string;
203
- presets: string[];
204
- requestedBy?: string;
205
- }
206
-
207
- // =============================================================================
208
- // Result Types
209
- // =============================================================================
210
-
211
- export interface BreakingChange {
212
- type:
213
- | "FIELD_REMOVED"
214
- | "FIELD_TYPE_CHANGED"
215
- | "FIELD_MADE_REQUIRED"
216
- | "SELECT_OPTIONS_REMOVED"
217
- | "REFERENCE_TYPES_RESTRICTED"
218
- | "VALIDATION_TIGHTENED";
219
- fieldName: string;
220
- message: string;
221
- affectedEntriesCount: number;
222
- }
223
-
224
- export interface UpdateContentTypeResult extends ContentType {
225
- breakingChanges?: BreakingChange[];
226
- }
227
-
228
- export interface DeleteContentTypeResult {
229
- success: boolean;
230
- deletedId: string;
231
- deletedEntriesCount: number;
232
- deletedVersionsCount: number;
233
- wasHardDelete: boolean;
234
- }
235
-
236
- export interface BulkOperationItemResult {
237
- id: string;
238
- success: boolean;
239
- error?: string;
240
- }
241
-
242
- export interface BulkOperationResult {
243
- total: number;
244
- succeeded: number;
245
- failed: number;
246
- results: BulkOperationItemResult[];
247
- }
248
-
249
- export interface GenerateUploadUrlResult {
250
- uploadUrl: string;
251
- expiresAt: number;
252
- maxFileSize: number;
253
- allowedMimeTypes?: string[];
254
- }
255
-
256
- export interface MediaAssetReference {
257
- entryId: string;
258
- slug: string;
259
- contentTypeName: string;
260
- fields: string[];
261
- }
262
-
263
- export interface GenerateVariantsResult {
264
- total: number;
265
- succeeded: number;
266
- failed: number;
267
- results: {
268
- preset: string;
269
- success: boolean;
270
- variantId?: string;
271
- error?: string;
272
- }[];
273
- }
274
-
275
- export interface SrcsetEntry {
276
- url: string;
277
- descriptor: string;
278
- width: number;
279
- format: string;
280
- }
281
-
282
- export interface ResponsiveSrcsetResult {
283
- src: string | null;
284
- srcset: string;
285
- entries: SrcsetEntry[];
286
- sizes?: string;
287
- }
288
-
289
- export interface VariantPreset {
290
- name: string;
291
- variantType: VariantType;
292
- width?: number;
293
- height?: number;
294
- format: string;
295
- quality?: number;
296
- description?: string;
297
- }
298
-
299
- export interface AssetWithVariants {
300
- original: {
301
- _id: string;
302
- _creationTime: number;
303
- name: string;
304
- mimeType: string;
305
- size: number;
306
- width?: number;
307
- height?: number;
308
- url: string | null;
309
- };
310
- variants: MediaVariantWithUrl[];
311
- variantsByType: {
312
- thumbnail?: MediaVariantWithUrl;
313
- responsive: MediaVariantWithUrl[];
314
- format: MediaVariantWithUrl[];
315
- };
316
- }
@@ -1,187 +0,0 @@
1
- /**
2
- * Custom Field Type Registry
3
- *
4
- * Allows defining custom field types beyond the 13 built-in types.
5
- * Custom field types store as 'json' in the database but have their own
6
- * validation, default values, and UI rendering through the registry.
7
- */
8
-
9
- import { v, type Validator } from "convex/values";
10
-
11
- export interface FieldTypeDefinition<T = unknown> {
12
- name: string;
13
- displayName: string;
14
- description?: string;
15
- icon?: string;
16
- validator: Validator<T, "required", string>;
17
- defaultValue?: T;
18
- extractSearchText?: (value: T) => string;
19
- validate?: (value: T, options?: Record<string, unknown>) => FieldValidationResult;
20
- optionsSchema?: Record<string, unknown>;
21
- }
22
-
23
- export interface FieldValidationResult {
24
- valid: boolean;
25
- error?: string;
26
- }
27
-
28
- const fieldTypeRegistry = new Map<string, FieldTypeDefinition>();
29
-
30
- const BUILT_IN_TYPES: FieldTypeDefinition[] = [
31
- { name: "text", displayName: "Text", icon: "Type", validator: v.string(), defaultValue: "" },
32
- {
33
- name: "richText",
34
- displayName: "Rich Text",
35
- icon: "FileText",
36
- validator: v.string(),
37
- defaultValue: "",
38
- },
39
- { name: "number", displayName: "Number", icon: "Hash", validator: v.number(), defaultValue: 0 },
40
- {
41
- name: "boolean",
42
- displayName: "Boolean",
43
- icon: "ToggleLeft",
44
- validator: v.boolean(),
45
- defaultValue: false,
46
- },
47
- {
48
- name: "date",
49
- displayName: "Date",
50
- icon: "Calendar",
51
- validator: v.union(v.string(), v.null()),
52
- defaultValue: null,
53
- },
54
- {
55
- name: "datetime",
56
- displayName: "Date & Time",
57
- icon: "Clock",
58
- validator: v.union(v.string(), v.null()),
59
- defaultValue: null,
60
- },
61
- {
62
- name: "reference",
63
- displayName: "Reference",
64
- icon: "Link",
65
- validator: v.union(v.string(), v.array(v.string()), v.null()),
66
- defaultValue: null,
67
- },
68
- {
69
- name: "media",
70
- displayName: "Media",
71
- icon: "Image",
72
- validator: v.union(v.string(), v.null()),
73
- defaultValue: null,
74
- },
75
- { name: "json", displayName: "JSON", icon: "Braces", validator: v.any(), defaultValue: null },
76
- {
77
- name: "select",
78
- displayName: "Select",
79
- icon: "ChevronDown",
80
- validator: v.string(),
81
- defaultValue: "",
82
- },
83
- {
84
- name: "multiSelect",
85
- displayName: "Multi Select",
86
- icon: "CheckSquare",
87
- validator: v.array(v.string()),
88
- defaultValue: [],
89
- },
90
- {
91
- name: "tags",
92
- displayName: "Tags",
93
- icon: "Tags",
94
- validator: v.array(v.string()),
95
- defaultValue: [],
96
- },
97
- {
98
- name: "category",
99
- displayName: "Category",
100
- icon: "Folder",
101
- validator: v.union(v.string(), v.array(v.string()), v.null()),
102
- defaultValue: null,
103
- },
104
- ];
105
-
106
- BUILT_IN_TYPES.forEach((type) => fieldTypeRegistry.set(type.name, type));
107
-
108
- const BUILT_IN_NAMES = new Set(BUILT_IN_TYPES.map((t) => t.name));
109
-
110
- /**
111
- * Define a custom field type.
112
- *
113
- * @example
114
- * const addressField = defineFieldType({
115
- * name: "address",
116
- * displayName: "Address",
117
- * icon: "MapPin",
118
- * validator: v.object({
119
- * street: v.string(),
120
- * city: v.string(),
121
- * postalCode: v.string(),
122
- * country: v.string(),
123
- * }),
124
- * defaultValue: { street: "", city: "", postalCode: "", country: "" },
125
- * extractSearchText: (value) => `${value.street} ${value.city}`,
126
- * });
127
- */
128
- export function defineFieldType<T>(definition: FieldTypeDefinition<T>): FieldTypeDefinition<T> {
129
- if (!/^[a-z][a-zA-Z0-9]*$/.test(definition.name)) {
130
- throw new Error(
131
- `Field type name "${definition.name}" must be camelCase starting with lowercase letter`
132
- );
133
- }
134
- if (BUILT_IN_NAMES.has(definition.name)) {
135
- throw new Error(`Cannot redefine built-in field type "${definition.name}"`);
136
- }
137
- return Object.freeze(definition);
138
- }
139
-
140
- export function registerFieldType(definition: FieldTypeDefinition): void {
141
- if (BUILT_IN_NAMES.has(definition.name)) {
142
- throw new Error(`Cannot redefine built-in field type "${definition.name}"`);
143
- }
144
- fieldTypeRegistry.set(definition.name, definition);
145
- }
146
-
147
- export function registerFieldTypes(definitions: FieldTypeDefinition[]): void {
148
- for (const definition of definitions) {
149
- registerFieldType(definition);
150
- }
151
- }
152
-
153
- export function getFieldTypeDefinition(name: string): FieldTypeDefinition | undefined {
154
- return fieldTypeRegistry.get(name);
155
- }
156
-
157
- export function getAllFieldTypes(): FieldTypeDefinition[] {
158
- return Array.from(fieldTypeRegistry.values());
159
- }
160
-
161
- export function getCustomFieldTypes(): FieldTypeDefinition[] {
162
- return Array.from(fieldTypeRegistry.values()).filter((t) => !BUILT_IN_NAMES.has(t.name));
163
- }
164
-
165
- export function isBuiltInFieldType(name: string): boolean {
166
- return BUILT_IN_NAMES.has(name);
167
- }
168
-
169
- export function isCustomFieldType(name: string): boolean {
170
- return fieldTypeRegistry.has(name) && !BUILT_IN_NAMES.has(name);
171
- }
172
-
173
- export function hasFieldType(name: string): boolean {
174
- return fieldTypeRegistry.has(name);
175
- }
176
-
177
- export function getFieldTypeDefaultValue(name: string): unknown {
178
- const type = fieldTypeRegistry.get(name);
179
- return type?.defaultValue;
180
- }
181
-
182
- export function getFieldTypeIcon(name: string): string | undefined {
183
- const type = fieldTypeRegistry.get(name);
184
- return type?.icon;
185
- }
186
-
187
- export { BUILT_IN_TYPES };