@vexcms/core 0.0.19 → 0.1.0-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 (323) hide show
  1. package/LICENSE +202 -0
  2. package/dist/.build +1 -0
  3. package/dist/access/buildChecks.d.ts +58 -0
  4. package/dist/access/buildChecks.d.ts.map +1 -0
  5. package/dist/access/canAccessAdminPanel.d.ts +53 -0
  6. package/dist/access/canAccessAdminPanel.d.ts.map +1 -0
  7. package/dist/access/compileConstraints.d.ts +155 -0
  8. package/dist/access/compileConstraints.d.ts.map +1 -0
  9. package/dist/access/config.d.ts +62 -0
  10. package/dist/access/config.d.ts.map +1 -0
  11. package/dist/access/constants.d.ts +95 -0
  12. package/dist/access/constants.d.ts.map +1 -0
  13. package/dist/access/constraintTypes.d.ts +337 -0
  14. package/dist/access/constraintTypes.d.ts.map +1 -0
  15. package/dist/access/createAccessQueryBuilder.d.ts +59 -0
  16. package/dist/access/createAccessQueryBuilder.d.ts.map +1 -0
  17. package/dist/access/createFilterConstraintBuilder.d.ts +26 -0
  18. package/dist/access/createFilterConstraintBuilder.d.ts.map +1 -0
  19. package/dist/access/createIndexConstraintBuilder.d.ts +40 -0
  20. package/dist/access/createIndexConstraintBuilder.d.ts.map +1 -0
  21. package/dist/access/hasPermission.d.ts +85 -0
  22. package/dist/access/hasPermission.d.ts.map +1 -0
  23. package/dist/access/index.d.ts +13 -0
  24. package/dist/access/index.d.ts.map +1 -0
  25. package/dist/access/pickQueryIndex.d.ts +42 -0
  26. package/dist/access/pickQueryIndex.d.ts.map +1 -0
  27. package/dist/access/resolveAccessRule.d.ts +85 -0
  28. package/dist/access/resolveAccessRule.d.ts.map +1 -0
  29. package/dist/access/types.d.ts +738 -0
  30. package/dist/access/types.d.ts.map +1 -0
  31. package/dist/access/validateAccessConstraints.d.ts +57 -0
  32. package/dist/access/validateAccessConstraints.d.ts.map +1 -0
  33. package/dist/api/client.d.ts +20 -0
  34. package/dist/api/client.d.ts.map +1 -0
  35. package/dist/api/client.js +117 -0
  36. package/dist/api/client.js.map +1 -0
  37. package/dist/api/convex.d.ts +296 -0
  38. package/dist/api/convex.d.ts.map +1 -0
  39. package/dist/api/create/client.d.ts +50 -0
  40. package/dist/api/create/client.d.ts.map +1 -0
  41. package/dist/api/create/server.d.ts +43 -0
  42. package/dist/api/create/server.d.ts.map +1 -0
  43. package/dist/api/depth.d.ts +39 -0
  44. package/dist/api/depth.d.ts.map +1 -0
  45. package/dist/api/find/client.d.ts +90 -0
  46. package/dist/api/find/client.d.ts.map +1 -0
  47. package/dist/api/find/server.d.ts +73 -0
  48. package/dist/api/find/server.d.ts.map +1 -0
  49. package/dist/api/get/client.d.ts +56 -0
  50. package/dist/api/get/client.d.ts.map +1 -0
  51. package/dist/api/get/server.d.ts +49 -0
  52. package/dist/api/get/server.d.ts.map +1 -0
  53. package/dist/api/globals/find.client.d.ts +20 -0
  54. package/dist/api/globals/find.client.d.ts.map +1 -0
  55. package/dist/api/globals/find.server.d.ts +29 -0
  56. package/dist/api/globals/find.server.d.ts.map +1 -0
  57. package/dist/api/globals/get.client.d.ts +46 -0
  58. package/dist/api/globals/get.client.d.ts.map +1 -0
  59. package/dist/api/globals/get.server.d.ts +55 -0
  60. package/dist/api/globals/get.server.d.ts.map +1 -0
  61. package/dist/api/globals/types.d.ts +65 -0
  62. package/dist/api/globals/types.d.ts.map +1 -0
  63. package/dist/api/globals/upsert.client.d.ts +24 -0
  64. package/dist/api/globals/upsert.client.d.ts.map +1 -0
  65. package/dist/api/globals/upsert.server.d.ts +47 -0
  66. package/dist/api/globals/upsert.server.d.ts.map +1 -0
  67. package/dist/api/populate.d.ts +23 -0
  68. package/dist/api/populate.d.ts.map +1 -0
  69. package/dist/api/remove/client.d.ts +58 -0
  70. package/dist/api/remove/client.d.ts.map +1 -0
  71. package/dist/api/remove/server.d.ts +65 -0
  72. package/dist/api/remove/server.d.ts.map +1 -0
  73. package/dist/api/search/client.d.ts +58 -0
  74. package/dist/api/search/client.d.ts.map +1 -0
  75. package/dist/api/search/server.d.ts +54 -0
  76. package/dist/api/search/server.d.ts.map +1 -0
  77. package/dist/api/server.d.ts +370 -0
  78. package/dist/api/server.d.ts.map +1 -0
  79. package/dist/api/server.js +33 -0
  80. package/dist/api/server.js.map +1 -0
  81. package/dist/api/types.d.ts +525 -0
  82. package/dist/api/types.d.ts.map +1 -0
  83. package/dist/api/update/client.d.ts +53 -0
  84. package/dist/api/update/client.d.ts.map +1 -0
  85. package/dist/api/update/server.d.ts +47 -0
  86. package/dist/api/update/server.d.ts.map +1 -0
  87. package/dist/api/utils.d.ts +57 -0
  88. package/dist/api/utils.d.ts.map +1 -0
  89. package/dist/auth/mergeCollections.d.ts +28 -0
  90. package/dist/auth/mergeCollections.d.ts.map +1 -0
  91. package/dist/auth/types.d.ts +84 -0
  92. package/dist/auth/types.d.ts.map +1 -0
  93. package/dist/chunk-2DU7JDEX.js +1877 -0
  94. package/dist/chunk-2DU7JDEX.js.map +1 -0
  95. package/dist/chunk-2IB2DCN7.js +75 -0
  96. package/dist/chunk-2IB2DCN7.js.map +1 -0
  97. package/dist/collections/config.d.ts +28 -0
  98. package/dist/collections/config.d.ts.map +1 -0
  99. package/dist/collections/constants.d.ts +27 -0
  100. package/dist/collections/constants.d.ts.map +1 -0
  101. package/dist/collections/index.d.ts +7 -0
  102. package/dist/collections/index.d.ts.map +1 -0
  103. package/dist/collections/indexFields.d.ts +20 -0
  104. package/dist/collections/indexFields.d.ts.map +1 -0
  105. package/dist/collections/interfaceGen.d.ts +59 -0
  106. package/dist/collections/interfaceGen.d.ts.map +1 -0
  107. package/dist/collections/internal/index.d.ts +2 -0
  108. package/dist/collections/internal/index.d.ts.map +1 -0
  109. package/dist/collections/types.d.ts +282 -0
  110. package/dist/collections/types.d.ts.map +1 -0
  111. package/dist/collections/utils.d.ts +71 -0
  112. package/dist/collections/utils.d.ts.map +1 -0
  113. package/dist/collections/validator.d.ts +73 -0
  114. package/dist/collections/validator.d.ts.map +1 -0
  115. package/dist/config/config.d.ts +43 -0
  116. package/dist/config/config.d.ts.map +1 -0
  117. package/dist/config/index.d.ts +5 -0
  118. package/dist/config/index.d.ts.map +1 -0
  119. package/dist/config/sanitizeConfig.d.ts +82 -0
  120. package/dist/config/sanitizeConfig.d.ts.map +1 -0
  121. package/dist/config/types.d.ts +316 -0
  122. package/dist/config/types.d.ts.map +1 -0
  123. package/dist/fields/array/config.d.ts +57 -0
  124. package/dist/fields/array/config.d.ts.map +1 -0
  125. package/dist/fields/array/index.d.ts +5 -0
  126. package/dist/fields/array/index.d.ts.map +1 -0
  127. package/dist/fields/array/inputSchema.d.ts +32 -0
  128. package/dist/fields/array/inputSchema.d.ts.map +1 -0
  129. package/dist/fields/array/types.d.ts +127 -0
  130. package/dist/fields/array/types.d.ts.map +1 -0
  131. package/dist/fields/array/validator.d.ts +30 -0
  132. package/dist/fields/array/validator.d.ts.map +1 -0
  133. package/dist/fields/baseTypes.d.ts +251 -0
  134. package/dist/fields/baseTypes.d.ts.map +1 -0
  135. package/dist/fields/blocks/config.d.ts +63 -0
  136. package/dist/fields/blocks/config.d.ts.map +1 -0
  137. package/dist/fields/blocks/index.d.ts +5 -0
  138. package/dist/fields/blocks/index.d.ts.map +1 -0
  139. package/dist/fields/blocks/inputSchema.d.ts +22 -0
  140. package/dist/fields/blocks/inputSchema.d.ts.map +1 -0
  141. package/dist/fields/blocks/types.d.ts +253 -0
  142. package/dist/fields/blocks/types.d.ts.map +1 -0
  143. package/dist/fields/blocks/validator.d.ts +32 -0
  144. package/dist/fields/blocks/validator.d.ts.map +1 -0
  145. package/dist/fields/checkbox/config.d.ts +46 -0
  146. package/dist/fields/checkbox/config.d.ts.map +1 -0
  147. package/dist/fields/checkbox/index.d.ts +5 -0
  148. package/dist/fields/checkbox/index.d.ts.map +1 -0
  149. package/dist/fields/checkbox/inputSchema.d.ts +27 -0
  150. package/dist/fields/checkbox/inputSchema.d.ts.map +1 -0
  151. package/dist/fields/checkbox/types.d.ts +67 -0
  152. package/dist/fields/checkbox/types.d.ts.map +1 -0
  153. package/dist/fields/checkbox/validator.d.ts +34 -0
  154. package/dist/fields/checkbox/validator.d.ts.map +1 -0
  155. package/dist/fields/color/config.d.ts +49 -0
  156. package/dist/fields/color/config.d.ts.map +1 -0
  157. package/dist/fields/color/convert.d.ts +72 -0
  158. package/dist/fields/color/convert.d.ts.map +1 -0
  159. package/dist/fields/color/formats.d.ts +38 -0
  160. package/dist/fields/color/formats.d.ts.map +1 -0
  161. package/dist/fields/color/index.d.ts +8 -0
  162. package/dist/fields/color/index.d.ts.map +1 -0
  163. package/dist/fields/color/inputSchema.d.ts +29 -0
  164. package/dist/fields/color/inputSchema.d.ts.map +1 -0
  165. package/dist/fields/color/types.d.ts +100 -0
  166. package/dist/fields/color/types.d.ts.map +1 -0
  167. package/dist/fields/color/utils.d.ts +100 -0
  168. package/dist/fields/color/utils.d.ts.map +1 -0
  169. package/dist/fields/color/validator.d.ts +27 -0
  170. package/dist/fields/color/validator.d.ts.map +1 -0
  171. package/dist/fields/constants.d.ts +108 -0
  172. package/dist/fields/constants.d.ts.map +1 -0
  173. package/dist/fields/date/config.d.ts +57 -0
  174. package/dist/fields/date/config.d.ts.map +1 -0
  175. package/dist/fields/date/index.d.ts +5 -0
  176. package/dist/fields/date/index.d.ts.map +1 -0
  177. package/dist/fields/date/inputSchema.d.ts +29 -0
  178. package/dist/fields/date/inputSchema.d.ts.map +1 -0
  179. package/dist/fields/date/types.d.ts +147 -0
  180. package/dist/fields/date/types.d.ts.map +1 -0
  181. package/dist/fields/date/validator.d.ts +34 -0
  182. package/dist/fields/date/validator.d.ts.map +1 -0
  183. package/dist/fields/group/config.d.ts +47 -0
  184. package/dist/fields/group/config.d.ts.map +1 -0
  185. package/dist/fields/group/index.d.ts +5 -0
  186. package/dist/fields/group/index.d.ts.map +1 -0
  187. package/dist/fields/group/inputSchema.d.ts +27 -0
  188. package/dist/fields/group/inputSchema.d.ts.map +1 -0
  189. package/dist/fields/group/types.d.ts +105 -0
  190. package/dist/fields/group/types.d.ts.map +1 -0
  191. package/dist/fields/group/validator.d.ts +41 -0
  192. package/dist/fields/group/validator.d.ts.map +1 -0
  193. package/dist/fields/index.d.ts +20 -0
  194. package/dist/fields/index.d.ts.map +1 -0
  195. package/dist/fields/inputSchemas/index.d.ts +23 -0
  196. package/dist/fields/inputSchemas/index.d.ts.map +1 -0
  197. package/dist/fields/inputSchemas/utils.d.ts +25 -0
  198. package/dist/fields/inputSchemas/utils.d.ts.map +1 -0
  199. package/dist/fields/interfaceGen.d.ts +15 -0
  200. package/dist/fields/interfaceGen.d.ts.map +1 -0
  201. package/dist/fields/number/config.d.ts +48 -0
  202. package/dist/fields/number/config.d.ts.map +1 -0
  203. package/dist/fields/number/index.d.ts +5 -0
  204. package/dist/fields/number/index.d.ts.map +1 -0
  205. package/dist/fields/number/inputSchema.d.ts +23 -0
  206. package/dist/fields/number/inputSchema.d.ts.map +1 -0
  207. package/dist/fields/number/types.d.ts +100 -0
  208. package/dist/fields/number/types.d.ts.map +1 -0
  209. package/dist/fields/number/validator.d.ts +39 -0
  210. package/dist/fields/number/validator.d.ts.map +1 -0
  211. package/dist/fields/relationship/config.d.ts +45 -0
  212. package/dist/fields/relationship/config.d.ts.map +1 -0
  213. package/dist/fields/relationship/index.d.ts +5 -0
  214. package/dist/fields/relationship/index.d.ts.map +1 -0
  215. package/dist/fields/relationship/inputSchema.d.ts +31 -0
  216. package/dist/fields/relationship/inputSchema.d.ts.map +1 -0
  217. package/dist/fields/relationship/types.d.ts +126 -0
  218. package/dist/fields/relationship/types.d.ts.map +1 -0
  219. package/dist/fields/relationship/validator.d.ts +27 -0
  220. package/dist/fields/relationship/validator.d.ts.map +1 -0
  221. package/dist/fields/select/config.d.ts +59 -0
  222. package/dist/fields/select/config.d.ts.map +1 -0
  223. package/dist/fields/select/index.d.ts +5 -0
  224. package/dist/fields/select/index.d.ts.map +1 -0
  225. package/dist/fields/select/inputSchema.d.ts +28 -0
  226. package/dist/fields/select/inputSchema.d.ts.map +1 -0
  227. package/dist/fields/select/types.d.ts +89 -0
  228. package/dist/fields/select/types.d.ts.map +1 -0
  229. package/dist/fields/select/validator.d.ts +31 -0
  230. package/dist/fields/select/validator.d.ts.map +1 -0
  231. package/dist/fields/text/config.d.ts +48 -0
  232. package/dist/fields/text/config.d.ts.map +1 -0
  233. package/dist/fields/text/index.d.ts +5 -0
  234. package/dist/fields/text/index.d.ts.map +1 -0
  235. package/dist/fields/text/inputSchema.d.ts +24 -0
  236. package/dist/fields/text/inputSchema.d.ts.map +1 -0
  237. package/dist/fields/text/types.d.ts +132 -0
  238. package/dist/fields/text/types.d.ts.map +1 -0
  239. package/dist/fields/text/validator.d.ts +39 -0
  240. package/dist/fields/text/validator.d.ts.map +1 -0
  241. package/dist/fields/types.d.ts +135 -0
  242. package/dist/fields/types.d.ts.map +1 -0
  243. package/dist/fields/upload/config.d.ts +24 -0
  244. package/dist/fields/upload/config.d.ts.map +1 -0
  245. package/dist/fields/upload/index.d.ts +5 -0
  246. package/dist/fields/upload/index.d.ts.map +1 -0
  247. package/dist/fields/upload/inputSchema.d.ts +17 -0
  248. package/dist/fields/upload/inputSchema.d.ts.map +1 -0
  249. package/dist/fields/upload/types.d.ts +78 -0
  250. package/dist/fields/upload/types.d.ts.map +1 -0
  251. package/dist/fields/upload/validator.d.ts +16 -0
  252. package/dist/fields/upload/validator.d.ts.map +1 -0
  253. package/dist/fields/url/config.d.ts +49 -0
  254. package/dist/fields/url/config.d.ts.map +1 -0
  255. package/dist/fields/url/index.d.ts +5 -0
  256. package/dist/fields/url/index.d.ts.map +1 -0
  257. package/dist/fields/url/inputSchema.d.ts +31 -0
  258. package/dist/fields/url/inputSchema.d.ts.map +1 -0
  259. package/dist/fields/url/types.d.ts +70 -0
  260. package/dist/fields/url/types.d.ts.map +1 -0
  261. package/dist/fields/url/validator.d.ts +37 -0
  262. package/dist/fields/url/validator.d.ts.map +1 -0
  263. package/dist/fields/utils.d.ts +47 -0
  264. package/dist/fields/utils.d.ts.map +1 -0
  265. package/dist/fields/validators/index.d.ts +23 -0
  266. package/dist/fields/validators/index.d.ts.map +1 -0
  267. package/dist/fields/validators/utils.d.ts +24 -0
  268. package/dist/fields/validators/utils.d.ts.map +1 -0
  269. package/dist/framework.d.ts +227 -0
  270. package/dist/framework.d.ts.map +1 -0
  271. package/dist/globals/config/config.d.ts +1 -0
  272. package/dist/globals/config/config.d.ts.map +1 -0
  273. package/dist/globals/config/types.d.ts +1 -0
  274. package/dist/globals/config/types.d.ts.map +1 -0
  275. package/dist/globals/config.d.ts +47 -0
  276. package/dist/globals/config.d.ts.map +1 -0
  277. package/dist/globals/index.d.ts +5 -0
  278. package/dist/globals/index.d.ts.map +1 -0
  279. package/dist/globals/interfaceGen.d.ts +33 -0
  280. package/dist/globals/interfaceGen.d.ts.map +1 -0
  281. package/dist/globals/types.d.ts +175 -0
  282. package/dist/globals/types.d.ts.map +1 -0
  283. package/dist/globals/utils.d.ts +37 -0
  284. package/dist/globals/utils.d.ts.map +1 -0
  285. package/dist/index.d.ts +15 -3165
  286. package/dist/index.d.ts.map +1 -0
  287. package/dist/index.js +2101 -3470
  288. package/dist/index.js.map +1 -1
  289. package/dist/media/api/index.d.ts +5 -0
  290. package/dist/media/api/index.d.ts.map +1 -0
  291. package/dist/media/api/mutations.d.ts +76 -0
  292. package/dist/media/api/mutations.d.ts.map +1 -0
  293. package/dist/media/api/queries.d.ts +28 -0
  294. package/dist/media/api/queries.d.ts.map +1 -0
  295. package/dist/media/api/server.d.ts +68 -0
  296. package/dist/media/api/server.d.ts.map +1 -0
  297. package/dist/media/api/types.d.ts +171 -0
  298. package/dist/media/api/types.d.ts.map +1 -0
  299. package/dist/media/config.d.ts +25 -0
  300. package/dist/media/config.d.ts.map +1 -0
  301. package/dist/media/index.d.ts +6 -0
  302. package/dist/media/index.d.ts.map +1 -0
  303. package/dist/media/types.d.ts +332 -0
  304. package/dist/media/types.d.ts.map +1 -0
  305. package/dist/media/utils.d.ts +35 -0
  306. package/dist/media/utils.d.ts.map +1 -0
  307. package/dist/media/validators.d.ts +61 -0
  308. package/dist/media/validators.d.ts.map +1 -0
  309. package/dist/schema/generateVexSchema.d.ts +36 -0
  310. package/dist/schema/generateVexSchema.d.ts.map +1 -0
  311. package/dist/schema/index.d.ts +3 -0
  312. package/dist/schema/index.d.ts.map +1 -0
  313. package/dist/schema/migrate.d.ts +73 -0
  314. package/dist/schema/migrate.d.ts.map +1 -0
  315. package/dist/types/generateVexTypes.d.ts +41 -0
  316. package/dist/types/generateVexTypes.d.ts.map +1 -0
  317. package/dist/types/generated.d.ts +382 -0
  318. package/dist/types/generated.d.ts.map +1 -0
  319. package/dist/types/index.d.ts +5 -0
  320. package/dist/types/index.d.ts.map +1 -0
  321. package/dist/utils.d.ts +57 -0
  322. package/dist/utils.d.ts.map +1 -0
  323. package/package.json +67 -24
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/date/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,MAAM,WAAW,cAAc,CAC7B,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE;QACL;;;;WAIG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;;;WAIG;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B;;;WAGG;QACH,UAAU,CAAC,EAAE;YACX,+CAA+C;YAC/C,IAAI,EAAE,OAAO,CAAC;YACd,iDAAiD;YACjD,MAAM,EAAE,OAAO,CAAC;YAChB,mDAAmD;YACnD,MAAM,EAAE,OAAO,CAAC;SACjB,CAAC;KACH,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,SAAS,CAAC,UAAU,CAAC;IAClF,QAAQ,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7C,uGAAuG;IACvG,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,KAAK,EAAE,gBAAgB,CAAC;IACxB,qGAAqG;IACrG,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,EAAE;QACJ,yFAAyF;QACzF,MAAM,EAAE,OAAO,CAAC;QAChB,8FAA8F;QAC9F,eAAe,EAAE,OAAO,CAAC;QACzB,8DAA8D;QAC9D,UAAU,EAAE;YACV,0CAA0C;YAC1C,IAAI,EAAE,OAAO,CAAC;YACd,4CAA4C;YAC5C,MAAM,EAAE,OAAO,CAAC;YAChB,6CAA6C;YAC7C,MAAM,EAAE,OAAO,CAAC;SACjB,CAAC;KACH,CAAC;CACH"}
@@ -0,0 +1,34 @@
1
+ import type { DateField } from "./types";
2
+ /**
3
+ * Converts a date field definition to a Convex schema validator.
4
+ *
5
+ * Generates the appropriate `v.number()` or `v.optional(v.number())` code
6
+ * for the Convex schema based on the field's required property.
7
+ * Date values are stored as Unix timestamps in milliseconds.
8
+ *
9
+ * **Important notes:**
10
+ * - The `time` property is a UI concern only — it does NOT affect the schema type
11
+ * - The index property is handled separately by index collection logic
12
+ *
13
+ * This function is used by the CLI during schema generation to build
14
+ * the Convex schema file.
15
+ *
16
+ * @param props - dateFieldToValidator() input props
17
+ * @param props.field - The date field definition
18
+ * @returns Convex value type string: `"v.number()"` or `"v.optional(v.number())"`
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const field1 = date({ required: true })
23
+ * dateFieldToValidator({ field: field1 }) // "v.number()"
24
+ *
25
+ * const field2 = date({ required: false })
26
+ * dateFieldToValidator({ field: field2 }) // "v.optional(v.number())"
27
+ * ```
28
+ *
29
+ * @internal - Used by schema generation, not typically called by users
30
+ */
31
+ export declare function dateFieldToValidator(props: {
32
+ field: DateField;
33
+ }): string;
34
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/fields/date/validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG,MAAM,CAKxE"}
@@ -0,0 +1,47 @@
1
+ import { BaseFieldMeta } from "../types";
2
+ import type { GroupFieldInput, GroupField } from "./types";
3
+ /**
4
+ * Creates a group field with all defaults applied.
5
+ *
6
+ * Group fields store a named set of sub-fields as a single nested Convex
7
+ * `v.object({...})`. Each sub-field respects its own `required` setting —
8
+ * required sub-fields emit bare validators (e.g. `v.string()`); optional
9
+ * ones emit `v.optional(v.string())`.
10
+ *
11
+ * **Defaults applied:**
12
+ * - `label` — `""` (inferred from the field key by `defineCollection`)
13
+ * - `required` — `false`
14
+ * - `defaultValue` — `{}`
15
+ * - `admin.hidden` — `false`
16
+ * - `admin.readOnly` — `false`
17
+ * - `admin.position` — `"main"`
18
+ * - `admin.width` — `"full"`
19
+ * - `admin.cellAlignment` — `"left"`
20
+ *
21
+ * @param options - Group field configuration. `fields` is required; all other
22
+ * properties are optional.
23
+ * @returns Resolved group field definition with all defaults applied.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * import { group, text, url } from "@vexcms/core"
28
+ *
29
+ * posts: defineCollection({
30
+ * fields: {
31
+ * seo: group({
32
+ * label: "SEO",
33
+ * fields: {
34
+ * title: text({ required: true }),
35
+ * description: text(),
36
+ * ogImage: url(),
37
+ * },
38
+ * }),
39
+ * },
40
+ * })
41
+ * ```
42
+ *
43
+ * @see {@link GroupFieldInput} for the full input type
44
+ * @see {@link GroupField} for the resolved output type
45
+ */
46
+ export declare function group<TFieldMeta extends BaseFieldMeta = BaseFieldMeta>(options: GroupFieldInput<TFieldMeta>): GroupField<TFieldMeta>;
47
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/fields/group/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,KAAK,CAAC,UAAU,SAAS,aAAa,GAAG,aAAa,EACpE,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,GACnC,UAAU,CAAC,UAAU,CAAC,CA8BxB"}
@@ -0,0 +1,5 @@
1
+ export * from "./config";
2
+ export * from "./types";
3
+ export * from "./validator";
4
+ export * from "./inputSchema";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/group/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { ZodType } from "zod";
2
+ import type { GroupField } from "./types";
3
+ /**
4
+ * Builds a Zod schema for validating a group field value in the admin form.
5
+ *
6
+ * Constructs a `z.object({...})` where each key maps to the sub-field's own
7
+ * Zod schema via `adminFieldToInputSchema`. Sub-field defaults and optionality
8
+ * are handled recursively. The outer object receives `.optional()` when
9
+ * `field.required` is `false` via `applyBaseInputSchemaMeta`.
10
+ *
11
+ * @param props - Input props.
12
+ * @param props.field - The resolved group field definition.
13
+ * @returns A Zod object schema with a `.default({})` and optionality applied.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const field = group({ fields: { title: text({ required: true }), body: text() } })
18
+ * groupFieldToInputSchema({ field })
19
+ * // → z.object({ title: z.string(), body: z.string().optional() }).optional().default({})
20
+ * ```
21
+ *
22
+ * @internal — Used by admin form schema construction via `adminFieldToInputSchema`.
23
+ */
24
+ export declare function groupFieldToInputSchema<TFieldMeta extends {} = {}>(props: {
25
+ field: GroupField<TFieldMeta>;
26
+ }): ZodType;
27
+ //# sourceMappingURL=inputSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputSchema.d.ts","sourceRoot":"","sources":["../../../src/fields/group/inputSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAGjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE;IACzE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;CAC/B,GAAG,OAAO,CAaV"}
@@ -0,0 +1,105 @@
1
+ import { ADMIN_FIELDS } from "../constants";
2
+ import { BaseField, BaseFieldInput, FieldAdminConfig } from "../baseTypes";
3
+ import { AdminField } from "../types";
4
+ /**
5
+ * Configuration input for a `group()` field.
6
+ *
7
+ * Group fields store a named set of sub-fields as a single nested object.
8
+ * All properties except `fields` are optional; unset properties fall back
9
+ * to the defaults applied by `group()`.
10
+ *
11
+ * **Defaults applied by `group()`:**
12
+ * ```ts
13
+ * {
14
+ * type: "group",
15
+ * label: "", // inferred from the field key by defineCollection
16
+ * required: false,
17
+ * defaultOpen: true,
18
+ * defaultValue: {},
19
+ * admin: {
20
+ * hidden: false,
21
+ * readOnly: false,
22
+ * position: "main",
23
+ * width: "full",
24
+ * cellAlignment: "left",
25
+ * }
26
+ * }
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * seo: group({
31
+ * label: "SEO",
32
+ * fields: {
33
+ * title: text({ required: true }),
34
+ * description: text(),
35
+ * },
36
+ * defaultOpen: false, // accordion starts collapsed
37
+ * })
38
+ *
39
+ * @see {@link GroupField} for the resolved output type
40
+ * @see {@link group} for the config function that produces this type
41
+ */
42
+ export interface GroupFieldInput<TFieldMeta extends {} = {}> extends BaseFieldInput<TFieldMeta> {
43
+ /**
44
+ * Sub-fields that form the object's shape.
45
+ *
46
+ * Accepts any `AdminField` value, including nested `group()` or `array()`.
47
+ * Each sub-field uses its own `required` setting for both Zod validation
48
+ * and Convex schema generation.
49
+ */
50
+ fields: Record<string, AdminField>;
51
+ /** Pre-filled value shown when creating a new document. Defaults to `{}`. */
52
+ defaultValue?: Record<string, unknown>;
53
+ /**
54
+ * Whether the accordion fieldset starts open in the admin form.
55
+ *
56
+ * Defaults to `true`. Set `false` for secondary or rarely-edited groups
57
+ * (e.g. SEO metadata on a page) to reduce visual noise on load.
58
+ */
59
+ defaultOpen?: boolean;
60
+ interfaceName?: string;
61
+ }
62
+ /**
63
+ * Resolved configuration for a `group()` field, after all defaults are applied.
64
+ *
65
+ * This is the type field input components and validator functions receive.
66
+ * `interfaceType` is a computed TypeScript object-type string built from the
67
+ * sub-fields (e.g. `"{ title: string; description?: string }"`), used by
68
+ * `generateVexTypes` to emit accurately-typed document interfaces.
69
+ *
70
+ * @see {@link GroupFieldInput} for the user-facing input type
71
+ * @see {@link group} for the config function that produces this type
72
+ */
73
+ export interface GroupField<TFieldMeta extends {} = {}> extends BaseField<TFieldMeta> {
74
+ readonly type: typeof ADMIN_FIELDS.group.type;
75
+ /** Display label shown in the admin form. Always set — inferred from field key if not provided. */
76
+ label: string;
77
+ /** Whether this field is required in the database schema. */
78
+ required: boolean;
79
+ /** Resolved admin UI configuration with all defaults applied. */
80
+ admin: FieldAdminConfig;
81
+ /**
82
+ * Sub-fields that form the object's shape.
83
+ *
84
+ * Each sub-field retains its own `required`, `label`, and admin settings.
85
+ * Convex and Zod validators are generated per-field respecting those settings.
86
+ */
87
+ fields: Record<string, AdminField>;
88
+ /**
89
+ * Computed TypeScript object-type string for `generateVexTypes`.
90
+ *
91
+ * Built from sub-fields in `group()` — e.g. `"{ title: string; description?: string }"`.
92
+ * Automatically reflects nested groups or arrays within the sub-fields.
93
+ */
94
+ interfaceType: string;
95
+ interfaceName?: string;
96
+ /** Pre-filled value shown when creating a new document. */
97
+ defaultValue: Record<string, unknown>;
98
+ /**
99
+ * Whether the accordion fieldset starts open in the admin form.
100
+ *
101
+ * Resolved value after defaults — always `true` unless explicitly set `false`.
102
+ */
103
+ defaultOpen: boolean;
104
+ }
105
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/group/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,WAAW,eAAe,CAC9B,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,CAAC;IAClC;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU,CACzB,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,SAAS,CAAC,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;IAC9C,mGAAmG;IACnG,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,KAAK,EAAE,gBAAgB,CAAC;IACxB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB"}
@@ -0,0 +1,41 @@
1
+ import type { GroupField } from "./types";
2
+ /**
3
+ * Converts a group field definition to a Convex schema validator string.
4
+ *
5
+ * Generates `v.object({ key: validator, ... })` where each sub-field's
6
+ * validator is built by the existing `adminFieldToValidator` dispatch.
7
+ * Sub-fields respect their own `required` setting — required sub-fields
8
+ * emit bare validators; optional ones emit `v.optional(...)`.
9
+ *
10
+ * The outer object is wrapped in `v.optional(...)` when `field.required`
11
+ * is `false`.
12
+ *
13
+ * @param props - Input props.
14
+ * @param props.field - The resolved group field definition.
15
+ * @returns A Convex validator string.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const field = group({
20
+ * fields: { title: text({ required: true }), body: text() },
21
+ * })
22
+ * groupFieldToValidator({ field })
23
+ * // → 'v.optional(v.object({ title: v.string(), body: v.optional(v.string()) }))'
24
+ * ```
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const field = group({
29
+ * required: true,
30
+ * fields: { score: number({ required: true }) },
31
+ * })
32
+ * groupFieldToValidator({ field })
33
+ * // → 'v.object({ score: v.number() })'
34
+ * ```
35
+ *
36
+ * @internal — Used by CLI schema generation via `adminFieldToValidator`.
37
+ */
38
+ export declare function groupFieldToValidator<TFieldMeta extends {} = {}>(props: {
39
+ field: GroupField<TFieldMeta>;
40
+ }): string;
41
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/fields/group/validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE;IACvE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;CAC/B,GAAG,MAAM,CAcT"}
@@ -0,0 +1,20 @@
1
+ export * from "./constants";
2
+ export * from "./baseTypes";
3
+ export * from "./types";
4
+ export * from "./validators";
5
+ export * from "./inputSchemas";
6
+ export * from "./interfaceGen";
7
+ export * from "./utils";
8
+ export * from "./text";
9
+ export * from "./select";
10
+ export * from "./relationship";
11
+ export * from "./number";
12
+ export * from "./checkbox";
13
+ export * from "./date";
14
+ export * from "./url";
15
+ export * from "./color";
16
+ export * from "./array";
17
+ export * from "./group";
18
+ export * from "./blocks";
19
+ export * from "./upload";
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AAExB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { AdminField } from "../types";
2
+ /**
3
+ * Converts any field definition to its form input schema using zod.
4
+ *
5
+ * Dispatches to the field-type-specific input schema function based on `field.type`.
6
+ * Used by the admin panel while form rendering to build the form input for individual fields, collections, blocks, and globals.
7
+ *
8
+ * @param props Input props
9
+ * @param props.field - The resolved field definition to convert
10
+ * @returns A ZodType (e.g. `z.string()`, `z.boolean().optional().default(false)`)
11
+ * @throws An Error if an unrecognized field type is given. Reaching this is a
12
+ * compile error: the default arm binds the exhausted union to `never`, so a new
13
+ * member of `AdminField` fails typecheck here until a case is added
14
+ *
15
+ * @see {@link textFieldToInputSchema} for the text field implementation
16
+ * @see {@link numberFieldToInputSchema} for the number field implementation
17
+ * @see {@link checkboxFieldToInputSchema} for the checkbox field implementation
18
+ * @internal
19
+ */
20
+ export declare function adminFieldToInputSchema(props: {
21
+ field: AdminField;
22
+ }): import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>;
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/inputSchemas/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AActC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,sGAqCnE"}
@@ -0,0 +1,25 @@
1
+ import type { ZodType } from "zod";
2
+ import type { AdminField } from "../types";
3
+ /**
4
+ * Attaches field metadata and wraps in `.optional()` for non-required fields.
5
+ *
6
+ * Used during form schema generation to apply the correct Zod validator based on
7
+ * whether the field is marked as required in its config.
8
+ *
9
+ * @param props - Input props.
10
+ * @param props.field - The resolved field definition, used to check `required` and `defaultValue`
11
+ * @param props.inputSchema - The base Zod schema for the field (e.g. `z.string()`)
12
+ * @returns The schema with `.meta(fieldMeta)` for required fields, or `.meta(fieldMeta).optional()` for non-required fields. No `.default()` is applied — each field's own schema is responsible for baking in a default value.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * applyBaseInputSchemaMeta({ field: textField, inputSchema: z.string() })
17
+ * // required field → z.string().meta({ label, description })
18
+ * // optional field → z.string().meta({ label, description }).optional()
19
+ * ```
20
+ */
21
+ export declare function applyBaseInputSchemaMeta(props: {
22
+ field: AdminField;
23
+ inputSchema: ZodType;
24
+ }): ZodType;
25
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/fields/inputSchemas/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAWV"}
@@ -0,0 +1,15 @@
1
+ import { CollectionConfig } from "../types";
2
+ /**
3
+ * Recursively collects `export type` declarations for every group field that
4
+ * carries an `interfaceName`, at any depth in the field tree.
5
+ *
6
+ * Traversal is depth-first so nested named types are always declared before
7
+ * the parent types that reference them. Both direct group sub-fields and
8
+ * group items inside array fields are visited.
9
+ *
10
+ * @param fields - The field map to walk (collection-level or group sub-fields).
11
+ * @returns Ordered list of `export type Name = ...` strings, ready to prepend
12
+ * to the generated interface block.
13
+ */
14
+ export declare function getFieldInterfaces(fields: CollectionConfig["fields"]): string[];
15
+ //# sourceMappingURL=interfaceGen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaceGen.d.ts","sourceRoot":"","sources":["../../src/fields/interfaceGen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,CAuC/E"}
@@ -0,0 +1,48 @@
1
+ import type { NumberFieldInput, NumberField } from "./types";
2
+ /**
3
+ * Creates a number field with all defaults applied.
4
+ *
5
+ * Number fields store numeric values.
6
+ * Common uses: prices, quantities, ratings, ages, counts.
7
+ *
8
+ * Accepts {@link NumberFieldInput} (all optional) and returns {@link NumberField} with all defaults applied.
9
+ *
10
+ * **Defaults applied:**
11
+ * - `label` — `""` (inferred from the field key by `defineCollection`)
12
+ * - `required` — `false`
13
+ * - `admin.hidden` — `false`
14
+ * - `admin.readOnly` — `false`
15
+ * - `admin.position` — `"main"`
16
+ * - `admin.width` — `"full"`
17
+ * - `admin.cellAlignment` — `"left"`
18
+ *
19
+ * @param options - Number field configuration. All properties are optional.
20
+ * @returns Resolved number field definition with all defaults applied.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import { number, defineCollection } from '@vexcms/core'
25
+ *
26
+ * products: defineCollection({
27
+ * fields: {
28
+ * // Minimal — label inferred from key ("Price")
29
+ * price: number(),
30
+ *
31
+ * // Required quantity with a minimum of 1 and a database index
32
+ * quantity: number({ required: true, min: { value: 1 }, index: "by_quantity" }),
33
+ *
34
+ * // Rating capped between 0 and 5
35
+ * rating: number({
36
+ * min: { value: 0, error: "Rating cannot be negative" },
37
+ * max: { value: 5, error: "Rating cannot exceed 5" },
38
+ * admin: { width: "half" },
39
+ * }),
40
+ * }
41
+ * })
42
+ * ```
43
+ *
44
+ * @see {@link NumberFieldInput} for the full input type
45
+ * @see {@link NumberField} for the resolved output type
46
+ */
47
+ export declare function number<TFieldMeta extends {} = {}>(options?: NumberFieldInput<TFieldMeta>): NumberField<TFieldMeta>;
48
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/fields/number/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,MAAM,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,EAC/C,OAAO,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,GACrC,WAAW,CAAC,UAAU,CAAC,CAgCzB"}
@@ -0,0 +1,5 @@
1
+ export * from "./config";
2
+ export * from "./types";
3
+ export * from "./validator";
4
+ export * from "./inputSchema";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/number/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { ZodType } from "zod";
2
+ import { NumberField } from "./types";
3
+ /**
4
+ * Builds a Zod schema for validating a number field value in the admin form.
5
+ *
6
+ * Applies `min` and `max` constraints when configured, then wraps in
7
+ * `.optional()` for non-required fields via `applyBaseInputSchemaMeta`.
8
+ *
9
+ * @param props - Input props.
10
+ * @param props.field - The resolved number field definition
11
+ * @returns A Zod number schema with range constraints, a baked-in `.default(field.defaultValue)`, and optionality applied
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const field = number({ required: true, min: { value: 0 }, max: { value: 100 } })
16
+ * numberFieldToInputSchema({ field })
17
+ * // → z.number().min(0).max(100).default(0)
18
+ * ```
19
+ */
20
+ export declare function numberFieldToInputSchema(props: {
21
+ field: NumberField;
22
+ }): ZodType;
23
+ //# sourceMappingURL=inputSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputSchema.d.ts","sourceRoot":"","sources":["../../../src/fields/number/inputSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,KAAK,EAAE,WAAW,CAAC;CACpB,GAAG,OAAO,CAuCV"}
@@ -0,0 +1,100 @@
1
+ import { ADMIN_FIELDS } from "../constants";
2
+ import { BaseField, BaseFieldInput, FieldAdminConfig } from "../baseTypes";
3
+ /**
4
+ * Configuration input for a `number()` field.
5
+ *
6
+ * Number fields store numeric values — prices, quantities, ratings, ages, counts, etc.
7
+ * All properties are optional; unset properties fall back to the defaults listed below.
8
+ *
9
+ * **Defaults applied by `number()`:**
10
+ * ```ts
11
+ * {
12
+ * type: "number",
13
+ * label: "", // inferred from the field key by defineCollection
14
+ * required: false, // field is optional by default
15
+ * admin: {
16
+ * hidden: false, // visible in the admin form
17
+ * readOnly: false, // editable by default
18
+ * position: "main", // placed in the main content column, not the sidebar
19
+ * width: "full", // spans the full form width, not half
20
+ * cellAlignment: "left", // value aligned left in the data table column
21
+ * }
22
+ * }
23
+ * ```
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * // Minimal — label is inferred from the key ("Price")
28
+ * price: number()
29
+ *
30
+ * // Required quantity with a minimum of 1 and a database index
31
+ * quantity: number({ required: true, min: { value: 1 }, index: "by_quantity" })
32
+ *
33
+ * // Rating capped between 0 and 5 with custom error messages
34
+ * rating: number({
35
+ * min: { value: 0, error: "Rating cannot be negative" },
36
+ * max: { value: 5, error: "Rating cannot exceed 5" },
37
+ * admin: { width: "half" },
38
+ * })
39
+ *
40
+ * // Pre-filled default for a score field
41
+ * score: number({ defaultValue: 100 })
42
+ * ```
43
+ *
44
+ * @see {@link NumberField} for the resolved type after defaults are applied
45
+ * @see {@link number} for the config function that applies defaults
46
+ * @see {@link BaseFieldInput} for shared properties (`label`, `description`, `required`, `admin`, `index`, `searchIndex`)
47
+ */
48
+ export interface NumberFieldInput<TFieldMeta extends {} = {}> extends BaseFieldInput<TFieldMeta> {
49
+ /**
50
+ * Pre-filled value shown in the admin form when creating a new document.
51
+ * Does not affect database values — only the form's initial state.
52
+ */
53
+ defaultValue?: number;
54
+ /** Minimum allowed numeric value config. */
55
+ min?: {
56
+ /** Minimum allowed numeric value. */
57
+ value: number;
58
+ /** Error message shown when the value is below the minimum. */
59
+ error?: string;
60
+ };
61
+ /** Maximum allowed numeric value config. */
62
+ max?: {
63
+ /** Maximum allowed numeric value. */
64
+ value: number;
65
+ /** Error message shown when the value exceeds the maximum. */
66
+ error?: string;
67
+ };
68
+ }
69
+ /**
70
+ * Resolved configuration for a `number()` field, after all defaults are applied.
71
+ *
72
+ * @see {@link NumberFieldInput} for the user-facing input type
73
+ * @see {@link number} for the config function that produces this type
74
+ */
75
+ export interface NumberField<TFieldMeta extends {} = {}> extends BaseField<TFieldMeta> {
76
+ readonly type: typeof ADMIN_FIELDS.number.type;
77
+ /** Display label shown in the admin form. Always set — inferred from the field key if not provided. */
78
+ label: string;
79
+ /** Whether this field is required in the database schema. */
80
+ required: boolean;
81
+ /** Resolved admin UI configuration with all defaults applied. */
82
+ admin: FieldAdminConfig;
83
+ /** Pre-filled numeric value shown in the admin form when creating a new document. */
84
+ defaultValue: number;
85
+ /** Minimum allowed numeric value config. */
86
+ min?: {
87
+ /** Minimum allowed numeric value. */
88
+ value: number;
89
+ /** Error message shown when the value is below the minimum. */
90
+ error?: string;
91
+ };
92
+ /** Maximum allowed numeric value config. */
93
+ max?: {
94
+ /** Maximum allowed numeric value. */
95
+ value: number;
96
+ /** Error message shown when the value exceeds the maximum. */
97
+ error?: string;
98
+ };
99
+ }
100
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/number/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,WAAW,gBAAgB,CAC/B,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,GAAG,CAAC,EAAE;QACJ,qCAAqC;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,+DAA+D;QAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,4CAA4C;IAC5C,GAAG,CAAC,EAAE;QACJ,qCAAqC;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,8DAA8D;QAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,SAAS,CAAC,UAAU,CAAC;IACpF,QAAQ,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/C,uGAAuG;IACvG,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,KAAK,EAAE,gBAAgB,CAAC;IACxB,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,GAAG,CAAC,EAAE;QACJ,qCAAqC;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,+DAA+D;QAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,4CAA4C;IAC5C,GAAG,CAAC,EAAE;QACJ,qCAAqC;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,8DAA8D;QAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
@@ -0,0 +1,39 @@
1
+ import type { NumberField } from "./types";
2
+ /**
3
+ * Converts a number field definition to a Convex schema validator.
4
+ *
5
+ * Generates the appropriate v.number() or v.optional(v.number()) code
6
+ * for the Convex schema based on the field's required property.
7
+ *
8
+ * **Important notes:**
9
+ * - min/max are runtime validation constraints, NOT schema constraints
10
+ * - They don't affect the generated Convex value type
11
+ * - Validation happens in the admin panel and mutation handlers
12
+ * - The index property is handled separately by index collection logic
13
+ *
14
+ * This function is used by the CLI during schema generation to build
15
+ * the Convex schema file.
16
+ *
17
+ * @param props - numberFieldToValidator() input props
18
+ * @param props.field - The number field definition
19
+ * @returns Convex value type string: "v.number()" or "v.optional(v.number())"
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const field1 = number({ required: true })
24
+ * numberFieldToValidator({ field: field1 }) // "v.number()"
25
+ *
26
+ * const field2 = number({ required: false })
27
+ * numberFieldToValidator({ field: field2 }) // "v.optional(v.number())"
28
+ *
29
+ * const field3 = number({ min: { value: 0 }, max: { value: 100 } })
30
+ * numberFieldToValidator({ field: field3 }) // "v.optional(v.number())"
31
+ * // Note: Range constraints don't affect schema, handled at validation layer
32
+ * ```
33
+ *
34
+ * @internal - Used by schema generation, not typically called by users
35
+ */
36
+ export declare function numberFieldToValidator(props: {
37
+ field: NumberField;
38
+ }): string;
39
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/fields/number/validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GAAG,MAAM,CAK5E"}