@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,175 @@
1
+ import type { ApplyComponent, ComponentHKT, AdminField } from "../fields";
2
+ import type { GlobalSlug } from "../types/generated";
3
+ import type { LucideIconName } from "../utils";
4
+ /**
5
+ * Field keys that are reserved by the VexCMS globals system and cannot be
6
+ * used as user-defined field names on a global. These are the system fields
7
+ * that appear on every flat global document returned by the API.
8
+ */
9
+ export type ReservedGlobalFieldKey = "_id" | "_creationTime" | "_slug";
10
+ /**
11
+ * User-facing admin panel configuration input for `defineGlobal()`.
12
+ *
13
+ * Intentionally narrower than `AdminCollectionConfigInput` — globals cannot
14
+ * be relationship targets (no picker), have no list view (no `table` config),
15
+ * and always use `label` as the admin page title (no `useAsTitle`).
16
+ * Consequently this interface has only one generic: `TComponent`.
17
+ *
18
+ * @typeParam TComponent - Component HKT binding; defaults to `ComponentHKT`.
19
+ */
20
+ export interface GlobalAdminConfigInput<TComponent extends ComponentHKT = ComponentHKT> {
21
+ /**
22
+ * Sidebar group label this global appears under (e.g. `"Site Builder"`).
23
+ * Ungrouped when omitted.
24
+ */
25
+ group?: string;
26
+ /**
27
+ * Short description shown beneath the global label in `GlobalsListView`.
28
+ */
29
+ description?: string;
30
+ /**
31
+ * Live preview configuration. Reserved for future `LivePreviewPanel`
32
+ * integration — included now so adding live preview later is non-breaking.
33
+ */
34
+ livePreview?: {
35
+ url: string;
36
+ };
37
+ /**
38
+ * Lucide icon name shown in the admin sidebar.
39
+ * See https://lucide.dev/icons/
40
+ */
41
+ icon?: LucideIconName;
42
+ /**
43
+ * Custom React component for rendering this global in contexts where a
44
+ * compact preview is needed (e.g. future cross-global reference UI).
45
+ * Typed via the HKT machinery — resolves to `ComponentType<...>` in React.
46
+ */
47
+ components?: {
48
+ preview?: ApplyComponent<TComponent, {
49
+ slug: string;
50
+ }>;
51
+ };
52
+ }
53
+ /**
54
+ * Resolved admin config after `defineGlobal()` applies defaults.
55
+ *
56
+ * @typeParam TComponent - Component HKT binding.
57
+ */
58
+ export interface GlobalAdminConfig<TComponent extends ComponentHKT = ComponentHKT> {
59
+ /** Sidebar group label. Empty string when not set. */
60
+ group: string;
61
+ /** Description. Empty string when not set. */
62
+ description: string;
63
+ /** Live preview config. */
64
+ livePreview?: {
65
+ url: string;
66
+ };
67
+ /** Lucide icon name. */
68
+ icon?: LucideIconName;
69
+ /** Custom preview component. */
70
+ components: {
71
+ preview?: ApplyComponent<TComponent, {
72
+ slug: string;
73
+ }>;
74
+ };
75
+ }
76
+ /**
77
+ * User-facing input to `defineGlobal()`.
78
+ *
79
+ * Mirrors `CollectionConfigInput` with the same five generics. The constraint
80
+ * `[TFieldSlug & ReservedGlobalFieldKey] extends [never]` is enforced in
81
+ * `defineGlobal`'s function signature — a compile-time error is emitted if
82
+ * any field key is `_id`, `_creationTime`, or `_slug`.
83
+ *
84
+ * @typeParam TFieldMeta - Metadata attached to each field definition.
85
+ * @typeParam TGlobalMeta - Metadata attached to the global config itself.
86
+ * @typeParam TGlobalSlug - The slug string literal type (inferred by `defineGlobal`).
87
+ * @typeParam TFieldSlug - Union of field key string literals.
88
+ * @typeParam TComponent - Component HKT binding.
89
+ *
90
+ * @example
91
+ * ```ts
92
+ * defineGlobal({
93
+ * slug: "siteSettings",
94
+ * label: "Site Settings",
95
+ * fields: {
96
+ * siteName: text({ label: "Site Name", required: true }),
97
+ * activeTheme: relationship({ label: "Active Theme", collection: "themes" }),
98
+ * },
99
+ * admin: { group: "Site Builder" },
100
+ * });
101
+ * ```
102
+ *
103
+ * @see {@link GlobalConfig} for the resolved return type
104
+ * @see {@link defineGlobal} for the config function
105
+ */
106
+ export interface GlobalConfigInput<TFieldMeta extends {} = {}, TGlobalMeta extends {} = {}, TGlobalSlug extends string = string, TFieldSlug extends string = string, TComponent extends ComponentHKT = ComponentHKT> {
107
+ /**
108
+ * Unique slug for this global. Becomes the `_slug` discriminator on the flat
109
+ * document and the lookup key in `vex_globals`. Must be camelCase and unique
110
+ * across all globals in the project.
111
+ */
112
+ slug: TGlobalSlug;
113
+ /**
114
+ * Human-readable label shown in the admin sidebar and page heading.
115
+ * Always used as the admin page title — globals have no `useAsTitle`.
116
+ * @example "Site Settings"
117
+ */
118
+ label: string;
119
+ /**
120
+ * Field definitions for this global. All field types supported by
121
+ * `defineCollection` are valid. Field keys must not be `_id`,
122
+ * `_creationTime`, or `_slug` (enforced at compile time by `defineGlobal`).
123
+ */
124
+ fields: Record<TFieldSlug, AdminField<TFieldMeta>>;
125
+ /** Admin panel display and behaviour config. */
126
+ admin?: GlobalAdminConfigInput<TComponent>;
127
+ /**
128
+ * Override the generated TypeScript interface name. Inferred from `slug`
129
+ * with `Global` suffix when omitted (e.g. `"siteSettings"` → `"SiteSettingsGlobal"`).
130
+ */
131
+ interfaceName?: string;
132
+ /** Arbitrary metadata attached to this global config. */
133
+ meta?: TGlobalMeta;
134
+ /**
135
+ * Draft and versioning config. Parsed but ignored in v35 — versioning for
136
+ * globals lands in Spec 36. Included now for forward compatibility so
137
+ * `defineGlobal` call sites don't need to change when Spec 36 ships.
138
+ */
139
+ versions?: {
140
+ /** Enable draft/publish workflow. Default: `false`. */
141
+ drafts?: boolean;
142
+ };
143
+ }
144
+ /**
145
+ * Resolved global config returned by `defineGlobal()` and stored in
146
+ * `VexConfig.globals`.
147
+ *
148
+ * @typeParam TFieldMeta - Field-level metadata.
149
+ * @typeParam TGlobalMeta - Global-level metadata.
150
+ * @typeParam TGlobalSlug - The exact slug type (narrowed from `GlobalSlug`).
151
+ * @typeParam TFieldSlug - Union of field key string literals.
152
+ * @typeParam TComponent - Component HKT binding.
153
+ */
154
+ export interface GlobalConfig<TFieldMeta extends {} = {}, TGlobalMeta extends {} = {}, TGlobalSlug extends GlobalSlug = GlobalSlug, TFieldSlug extends string = string, TComponent extends ComponentHKT = ComponentHKT> {
155
+ /** Unique slug — the lookup key in `vex_globals`. */
156
+ slug: TGlobalSlug;
157
+ /** Human-readable label. */
158
+ label: string;
159
+ /** Resolved field definitions. */
160
+ fields: Record<TFieldSlug, AdminField<TFieldMeta>>;
161
+ /** Resolved admin config. */
162
+ admin: GlobalAdminConfig<TComponent>;
163
+ /**
164
+ * PascalCase interface name for generated TypeScript types.
165
+ * E.g. `"siteSettings"` → `"SiteSettingsGlobal"`.
166
+ */
167
+ interfaceName: string;
168
+ /** Global-level metadata. */
169
+ meta: TGlobalMeta;
170
+ /** Resolved versioning config. Always present after defaults. */
171
+ versions: {
172
+ drafts: boolean;
173
+ };
174
+ }
175
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/globals/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ import type { GlobalConfig } from "./types";
3
+ import type { VexDocumentGlobal } from "../types";
4
+ /**
5
+ * Builds `defaultValues` for a TanStack Form from a global config.
6
+ *
7
+ * Mirrors `getCollectionDefaultValues` — operates on `GlobalConfig` rather
8
+ * than `CollectionConfig`. When `document` is provided (edit mode), uses its
9
+ * field values; otherwise falls back to each field's `defaultValue`.
10
+ *
11
+ * @param props - Input props.
12
+ * @param props.global - The global config whose fields define the form shape.
13
+ * @param props.document - Optional existing flat global document (edit mode).
14
+ * `null` means "no document persisted yet" — create mode with defaults.
15
+ * @returns `Record<fieldKey, value>` ready for `useForm({ defaultValues })`.
16
+ */
17
+ export declare function getGlobalDefaultValues(props: {
18
+ global: GlobalConfig;
19
+ document?: VexDocumentGlobal | null;
20
+ }): Record<string, unknown>;
21
+ /**
22
+ * Builds a Zod object schema for validating all fields in a global.
23
+ *
24
+ * Mirrors `getCollectionInputSchema` — same field-level logic, operates on
25
+ * `GlobalConfig`. Used by `updateGlobal` server function to validate user
26
+ * data before writing to `vex_globals`.
27
+ *
28
+ * @param props - Input props.
29
+ * @param props.global - The global config whose fields define the schema.
30
+ * @returns A `z.object` schema with one key per field.
31
+ */
32
+ export declare function getGlobalInputSchema(props: {
33
+ global: GlobalConfig;
34
+ }): z.ZodObject<{
35
+ [x: string]: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
36
+ }, z.core.$strip>;
37
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/globals/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAgB,MAAM,KAAK,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACrC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW1B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE;;kBAOnE"}