convex-cms 0.0.2 → 0.0.3

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 (265) hide show
  1. package/admin-dist/nitro.json +15 -0
  2. package/admin-dist/public/assets/CmsEmptyState-CRswfTzk.js +5 -0
  3. package/admin-dist/public/assets/CmsPageHeader-CirpXndm.js +1 -0
  4. package/admin-dist/public/assets/CmsStatusBadge-CbEUpQu-.js +1 -0
  5. package/admin-dist/public/assets/CmsToolbar-BI2nZOXp.js +1 -0
  6. package/admin-dist/public/assets/ContentEntryEditor-CBeCyK_m.js +4 -0
  7. package/admin-dist/public/assets/ErrorState-BIVaWmom.js +1 -0
  8. package/admin-dist/public/assets/TaxonomyFilter-ChaY6Y_x.js +1 -0
  9. package/admin-dist/public/assets/_contentTypeId-DQ8k_Rvw.js +1 -0
  10. package/admin-dist/public/assets/_entryId-CKU_glsK.js +1 -0
  11. package/admin-dist/public/assets/alert-BXjTqrwQ.js +1 -0
  12. package/admin-dist/public/assets/badge-hvUOzpVZ.js +1 -0
  13. package/admin-dist/public/assets/circle-check-big-CF_pR17r.js +1 -0
  14. package/admin-dist/public/assets/command-DU82cJlt.js +1 -0
  15. package/admin-dist/public/assets/content-_LXl3pp7.js +1 -0
  16. package/admin-dist/public/assets/content-types-KjxaXGxY.js +2 -0
  17. package/admin-dist/public/assets/globals-CS6BZ0zp.css +1 -0
  18. package/admin-dist/public/assets/index-DNGIZHL-.js +1 -0
  19. package/admin-dist/public/assets/label-KNtpL71g.js +1 -0
  20. package/admin-dist/public/assets/link-2-Bw2aI4V4.js +1 -0
  21. package/admin-dist/public/assets/list-sYepHjt_.js +1 -0
  22. package/admin-dist/public/assets/main-CKj5yfEi.js +97 -0
  23. package/admin-dist/public/assets/media-Bkrkffm7.js +1 -0
  24. package/admin-dist/public/assets/new._contentTypeId-C3LstjNs.js +1 -0
  25. package/admin-dist/public/assets/plus-DUn8v_Xf.js +1 -0
  26. package/admin-dist/public/assets/rotate-ccw-DJEoHcRI.js +1 -0
  27. package/admin-dist/public/assets/scroll-area-DfIlT0in.js +1 -0
  28. package/admin-dist/public/assets/search-MuAUDJKR.js +1 -0
  29. package/admin-dist/public/assets/select-BD29IXCI.js +1 -0
  30. package/admin-dist/public/assets/settings-DmMyn_6A.js +1 -0
  31. package/admin-dist/public/assets/switch-h3Rrnl5i.js +1 -0
  32. package/admin-dist/public/assets/tabs-imc8h-Dp.js +1 -0
  33. package/admin-dist/public/assets/taxonomies-dAsrT65H.js +1 -0
  34. package/admin-dist/public/assets/textarea-BTy7nwzR.js +1 -0
  35. package/admin-dist/public/assets/trash-SAWKZZHv.js +1 -0
  36. package/admin-dist/public/assets/triangle-alert-E52Vfeuh.js +1 -0
  37. package/admin-dist/public/assets/useBreadcrumbLabel-BECBMCzM.js +1 -0
  38. package/admin-dist/public/assets/usePermissions-Basjs9BT.js +1 -0
  39. package/admin-dist/public/favicon.ico +0 -0
  40. package/admin-dist/server/_chunks/_libs/@date-fns/tz.mjs +217 -0
  41. package/admin-dist/server/_chunks/_libs/@floating-ui/core.mjs +719 -0
  42. package/admin-dist/server/_chunks/_libs/@floating-ui/dom.mjs +622 -0
  43. package/admin-dist/server/_chunks/_libs/@floating-ui/react-dom.mjs +292 -0
  44. package/admin-dist/server/_chunks/_libs/@floating-ui/utils.mjs +320 -0
  45. package/admin-dist/server/_chunks/_libs/@radix-ui/number.mjs +6 -0
  46. package/admin-dist/server/_chunks/_libs/@radix-ui/primitive.mjs +11 -0
  47. package/admin-dist/server/_chunks/_libs/@radix-ui/react-arrow.mjs +23 -0
  48. package/admin-dist/server/_chunks/_libs/@radix-ui/react-avatar.mjs +119 -0
  49. package/admin-dist/server/_chunks/_libs/@radix-ui/react-checkbox.mjs +270 -0
  50. package/admin-dist/server/_chunks/_libs/@radix-ui/react-collection.mjs +69 -0
  51. package/admin-dist/server/_chunks/_libs/@radix-ui/react-compose-refs.mjs +39 -0
  52. package/admin-dist/server/_chunks/_libs/@radix-ui/react-context.mjs +137 -0
  53. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dialog.mjs +325 -0
  54. package/admin-dist/server/_chunks/_libs/@radix-ui/react-direction.mjs +9 -0
  55. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dismissable-layer.mjs +210 -0
  56. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dropdown-menu.mjs +253 -0
  57. package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-guards.mjs +29 -0
  58. package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-scope.mjs +206 -0
  59. package/admin-dist/server/_chunks/_libs/@radix-ui/react-id.mjs +14 -0
  60. package/admin-dist/server/_chunks/_libs/@radix-ui/react-label.mjs +23 -0
  61. package/admin-dist/server/_chunks/_libs/@radix-ui/react-menu.mjs +812 -0
  62. package/admin-dist/server/_chunks/_libs/@radix-ui/react-popover.mjs +300 -0
  63. package/admin-dist/server/_chunks/_libs/@radix-ui/react-popper.mjs +286 -0
  64. package/admin-dist/server/_chunks/_libs/@radix-ui/react-portal.mjs +16 -0
  65. package/admin-dist/server/_chunks/_libs/@radix-ui/react-presence.mjs +128 -0
  66. package/admin-dist/server/_chunks/_libs/@radix-ui/react-primitive.mjs +141 -0
  67. package/admin-dist/server/_chunks/_libs/@radix-ui/react-roving-focus.mjs +224 -0
  68. package/admin-dist/server/_chunks/_libs/@radix-ui/react-scroll-area.mjs +721 -0
  69. package/admin-dist/server/_chunks/_libs/@radix-ui/react-select.mjs +1163 -0
  70. package/admin-dist/server/_chunks/_libs/@radix-ui/react-separator.mjs +28 -0
  71. package/admin-dist/server/_chunks/_libs/@radix-ui/react-slot.mjs +601 -0
  72. package/admin-dist/server/_chunks/_libs/@radix-ui/react-switch.mjs +152 -0
  73. package/admin-dist/server/_chunks/_libs/@radix-ui/react-tabs.mjs +189 -0
  74. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-callback-ref.mjs +11 -0
  75. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-controllable-state.mjs +69 -0
  76. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-effect-event.mjs +1 -0
  77. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-escape-keydown.mjs +17 -0
  78. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-is-hydrated.mjs +15 -0
  79. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-layout-effect.mjs +6 -0
  80. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-previous.mjs +14 -0
  81. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-size.mjs +39 -0
  82. package/admin-dist/server/_chunks/_libs/@radix-ui/react-visually-hidden.mjs +33 -0
  83. package/admin-dist/server/_chunks/_libs/@tanstack/history.mjs +409 -0
  84. package/admin-dist/server/_chunks/_libs/@tanstack/react-router.mjs +1711 -0
  85. package/admin-dist/server/_chunks/_libs/@tanstack/react-store.mjs +56 -0
  86. package/admin-dist/server/_chunks/_libs/@tanstack/router-core.mjs +4829 -0
  87. package/admin-dist/server/_chunks/_libs/@tanstack/store.mjs +134 -0
  88. package/admin-dist/server/_chunks/_libs/react-dom.mjs +10781 -0
  89. package/admin-dist/server/_chunks/_libs/react.mjs +513 -0
  90. package/admin-dist/server/_libs/aria-hidden.mjs +122 -0
  91. package/admin-dist/server/_libs/class-variance-authority.mjs +44 -0
  92. package/admin-dist/server/_libs/clsx.mjs +16 -0
  93. package/admin-dist/server/_libs/cmdk.mjs +315 -0
  94. package/admin-dist/server/_libs/convex.mjs +4841 -0
  95. package/admin-dist/server/_libs/cookie-es.mjs +58 -0
  96. package/admin-dist/server/_libs/croner.mjs +1 -0
  97. package/admin-dist/server/_libs/crossws.mjs +1 -0
  98. package/admin-dist/server/_libs/date-fns.mjs +1716 -0
  99. package/admin-dist/server/_libs/detect-node-es.mjs +1 -0
  100. package/admin-dist/server/_libs/get-nonce.mjs +9 -0
  101. package/admin-dist/server/_libs/h3-v2.mjs +277 -0
  102. package/admin-dist/server/_libs/h3.mjs +401 -0
  103. package/admin-dist/server/_libs/hookable.mjs +1 -0
  104. package/admin-dist/server/_libs/isbot.mjs +20 -0
  105. package/admin-dist/server/_libs/lucide-react.mjs +850 -0
  106. package/admin-dist/server/_libs/ohash.mjs +1 -0
  107. package/admin-dist/server/_libs/react-day-picker.mjs +2201 -0
  108. package/admin-dist/server/_libs/react-remove-scroll-bar.mjs +82 -0
  109. package/admin-dist/server/_libs/react-remove-scroll.mjs +328 -0
  110. package/admin-dist/server/_libs/react-style-singleton.mjs +69 -0
  111. package/admin-dist/server/_libs/rou3.mjs +8 -0
  112. package/admin-dist/server/_libs/seroval-plugins.mjs +58 -0
  113. package/admin-dist/server/_libs/seroval.mjs +1765 -0
  114. package/admin-dist/server/_libs/srvx.mjs +719 -0
  115. package/admin-dist/server/_libs/tailwind-merge.mjs +3010 -0
  116. package/admin-dist/server/_libs/tiny-invariant.mjs +12 -0
  117. package/admin-dist/server/_libs/tiny-warning.mjs +5 -0
  118. package/admin-dist/server/_libs/tslib.mjs +39 -0
  119. package/admin-dist/server/_libs/ufo.mjs +54 -0
  120. package/admin-dist/server/_libs/unctx.mjs +1 -0
  121. package/admin-dist/server/_libs/unstorage.mjs +1 -0
  122. package/admin-dist/server/_libs/use-callback-ref.mjs +66 -0
  123. package/admin-dist/server/_libs/use-sidecar.mjs +106 -0
  124. package/admin-dist/server/_libs/use-sync-external-store.mjs +139 -0
  125. package/admin-dist/server/_libs/zod.mjs +4223 -0
  126. package/admin-dist/server/_ssr/CmsEmptyState-DU7-7-mV.mjs +290 -0
  127. package/admin-dist/server/_ssr/CmsPageHeader-CseW0AHm.mjs +24 -0
  128. package/admin-dist/server/_ssr/CmsStatusBadge-B_pi4KCp.mjs +127 -0
  129. package/admin-dist/server/_ssr/CmsToolbar-X75ex6ek.mjs +49 -0
  130. package/admin-dist/server/_ssr/ContentEntryEditor-CepusRsA.mjs +3720 -0
  131. package/admin-dist/server/_ssr/ErrorState-cI-bKLez.mjs +89 -0
  132. package/admin-dist/server/_ssr/TaxonomyFilter-Bwrq0-cz.mjs +188 -0
  133. package/admin-dist/server/_ssr/_contentTypeId-BqYKEcLr.mjs +379 -0
  134. package/admin-dist/server/_ssr/_entryId-CRfnqeDf.mjs +161 -0
  135. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-BwDlABVk.mjs +4 -0
  136. package/admin-dist/server/_ssr/alert-CVt45UUP.mjs +92 -0
  137. package/admin-dist/server/_ssr/badge-6BsP37vG.mjs +125 -0
  138. package/admin-dist/server/_ssr/command-fy8epIKf.mjs +128 -0
  139. package/admin-dist/server/_ssr/config.server-D7JHDcDv.mjs +117 -0
  140. package/admin-dist/server/_ssr/content-B5RhL7uW.mjs +532 -0
  141. package/admin-dist/server/_ssr/content-types-BIOqCQYN.mjs +1166 -0
  142. package/admin-dist/server/_ssr/index-DHSHDPt1.mjs +193 -0
  143. package/admin-dist/server/_ssr/index.mjs +1275 -0
  144. package/admin-dist/server/_ssr/label-C8Dko1j7.mjs +22 -0
  145. package/admin-dist/server/_ssr/media-CSx3XttC.mjs +1832 -0
  146. package/admin-dist/server/_ssr/new._contentTypeId-DzanEZQM.mjs +144 -0
  147. package/admin-dist/server/_ssr/router-DDWcF-kt.mjs +1556 -0
  148. package/admin-dist/server/_ssr/scroll-area-bjPYwhXN.mjs +59 -0
  149. package/admin-dist/server/_ssr/select-BUhDDf4T.mjs +142 -0
  150. package/admin-dist/server/_ssr/settings-DAsxnw2q.mjs +348 -0
  151. package/admin-dist/server/_ssr/start-HYkvq4Ni.mjs +4 -0
  152. package/admin-dist/server/_ssr/switch-BgyRtQ1Z.mjs +31 -0
  153. package/admin-dist/server/_ssr/tabs-DzMdRB1A.mjs +628 -0
  154. package/admin-dist/server/_ssr/taxonomies-C8j8g5Q5.mjs +915 -0
  155. package/admin-dist/server/_ssr/textarea-9jNeYJSc.mjs +18 -0
  156. package/admin-dist/server/_ssr/trash-DYMxwhZB.mjs +291 -0
  157. package/admin-dist/server/_ssr/useBreadcrumbLabel-FNSAr2Ha.mjs +16 -0
  158. package/admin-dist/server/_ssr/usePermissions-BJGGahrJ.mjs +68 -0
  159. package/admin-dist/server/favicon.ico +0 -0
  160. package/admin-dist/server/index.mjs +627 -0
  161. package/dist/cli/index.js +0 -0
  162. package/dist/client/admin-config.d.ts +0 -1
  163. package/dist/client/admin-config.d.ts.map +1 -1
  164. package/dist/client/admin-config.js +0 -1
  165. package/dist/client/admin-config.js.map +1 -1
  166. package/dist/client/adminApi.d.ts.map +1 -1
  167. package/dist/client/agentTools.d.ts +1237 -135
  168. package/dist/client/agentTools.d.ts.map +1 -1
  169. package/dist/client/agentTools.js +33 -9
  170. package/dist/client/agentTools.js.map +1 -1
  171. package/dist/client/index.d.ts +1 -1
  172. package/dist/client/index.d.ts.map +1 -1
  173. package/dist/client/index.js.map +1 -1
  174. package/dist/component/_generated/component.d.ts +9 -0
  175. package/dist/component/_generated/component.d.ts.map +1 -1
  176. package/dist/component/mediaAssets.d.ts +35 -0
  177. package/dist/component/mediaAssets.d.ts.map +1 -1
  178. package/dist/component/mediaAssets.js +81 -0
  179. package/dist/component/mediaAssets.js.map +1 -1
  180. package/dist/test.d.ts.map +1 -1
  181. package/dist/test.js +2 -1
  182. package/dist/test.js.map +1 -1
  183. package/package.json +9 -5
  184. package/dist/component/auditLog.d.ts +0 -410
  185. package/dist/component/auditLog.d.ts.map +0 -1
  186. package/dist/component/auditLog.js +0 -607
  187. package/dist/component/auditLog.js.map +0 -1
  188. package/dist/component/types.d.ts +0 -4
  189. package/dist/component/types.d.ts.map +0 -1
  190. package/dist/component/types.js +0 -2
  191. package/dist/component/types.js.map +0 -1
  192. package/src/cli/commands/admin.ts +0 -104
  193. package/src/cli/index.ts +0 -21
  194. package/src/cli/utils/detectConvexUrl.ts +0 -54
  195. package/src/cli/utils/openBrowser.ts +0 -16
  196. package/src/client/admin-config.ts +0 -138
  197. package/src/client/adminApi.ts +0 -942
  198. package/src/client/agentTools.ts +0 -1311
  199. package/src/client/argTypes.ts +0 -316
  200. package/src/client/field-types.ts +0 -187
  201. package/src/client/index.ts +0 -1301
  202. package/src/client/queryBuilder.ts +0 -1100
  203. package/src/client/schema/codegen.ts +0 -500
  204. package/src/client/schema/defineContentType.ts +0 -501
  205. package/src/client/schema/index.ts +0 -169
  206. package/src/client/schema/schemaDrift.ts +0 -574
  207. package/src/client/schema/typedClient.ts +0 -688
  208. package/src/client/schema/types.ts +0 -666
  209. package/src/client/types.ts +0 -723
  210. package/src/client/workflows.ts +0 -141
  211. package/src/client/wrapper.ts +0 -4304
  212. package/src/component/_generated/api.ts +0 -140
  213. package/src/component/_generated/component.ts +0 -5029
  214. package/src/component/_generated/dataModel.ts +0 -60
  215. package/src/component/_generated/server.ts +0 -156
  216. package/src/component/authorization.ts +0 -647
  217. package/src/component/authorizationHooks.ts +0 -668
  218. package/src/component/bulkOperations.ts +0 -687
  219. package/src/component/contentEntries.ts +0 -1976
  220. package/src/component/contentEntryMutations.ts +0 -1223
  221. package/src/component/contentEntryValidation.ts +0 -707
  222. package/src/component/contentLock.ts +0 -550
  223. package/src/component/contentTypeMigration.ts +0 -1064
  224. package/src/component/contentTypeMutations.ts +0 -969
  225. package/src/component/contentTypes.ts +0 -346
  226. package/src/component/convex.config.ts +0 -44
  227. package/src/component/documentTypes.ts +0 -240
  228. package/src/component/eventEmitter.ts +0 -485
  229. package/src/component/exportImport.ts +0 -1169
  230. package/src/component/index.ts +0 -491
  231. package/src/component/lib/deepReferenceResolver.ts +0 -999
  232. package/src/component/lib/errors.ts +0 -816
  233. package/src/component/lib/index.ts +0 -145
  234. package/src/component/lib/mediaReferenceResolver.ts +0 -495
  235. package/src/component/lib/metadataExtractor.ts +0 -792
  236. package/src/component/lib/mutationAuth.ts +0 -199
  237. package/src/component/lib/queries.ts +0 -79
  238. package/src/component/lib/ragContentChunker.ts +0 -1371
  239. package/src/component/lib/referenceResolver.ts +0 -430
  240. package/src/component/lib/slugGenerator.ts +0 -262
  241. package/src/component/lib/slugUniqueness.ts +0 -333
  242. package/src/component/lib/softDelete.ts +0 -44
  243. package/src/component/localeFallbackChain.ts +0 -673
  244. package/src/component/localeFields.ts +0 -896
  245. package/src/component/mediaAssetMutations.ts +0 -725
  246. package/src/component/mediaAssets.ts +0 -932
  247. package/src/component/mediaFolderMutations.ts +0 -1046
  248. package/src/component/mediaUploadMutations.ts +0 -224
  249. package/src/component/mediaVariantMutations.ts +0 -900
  250. package/src/component/mediaVariants.ts +0 -793
  251. package/src/component/ragContentIndexer.ts +0 -1067
  252. package/src/component/rateLimitHooks.ts +0 -572
  253. package/src/component/roles.ts +0 -1360
  254. package/src/component/scheduledPublish.ts +0 -358
  255. package/src/component/schema.ts +0 -617
  256. package/src/component/taxonomies.ts +0 -949
  257. package/src/component/taxonomyMutations.ts +0 -1210
  258. package/src/component/trash.ts +0 -724
  259. package/src/component/userContext.ts +0 -898
  260. package/src/component/validation.ts +0 -1388
  261. package/src/component/validators.ts +0 -949
  262. package/src/component/versionMutations.ts +0 -392
  263. package/src/component/webhookTrigger.ts +0 -1922
  264. package/src/react/index.ts +0 -898
  265. 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 };