@plumix/core 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/dist/cache/embedded-tags.d.ts +5 -0
  2. package/dist/cache/embedded-tags.d.ts.map +1 -0
  3. package/dist/cache/embedded-tags.js +30 -0
  4. package/dist/cache/embedded-tags.js.map +1 -0
  5. package/dist/entries/read-service.d.ts.map +1 -1
  6. package/dist/entries/read-service.js +5 -3
  7. package/dist/entries/read-service.js.map +1 -1
  8. package/dist/index.d.ts +3 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/plugin/errors.d.ts +7 -1
  13. package/dist/plugin/errors.d.ts.map +1 -1
  14. package/dist/plugin/errors.js +5 -0
  15. package/dist/plugin/errors.js.map +1 -1
  16. package/dist/plugin/fields/builder.d.ts +106 -0
  17. package/dist/plugin/fields/builder.d.ts.map +1 -0
  18. package/dist/plugin/fields/builder.js +162 -0
  19. package/dist/plugin/fields/builder.js.map +1 -0
  20. package/dist/plugin/fields/color.d.ts +78 -18
  21. package/dist/plugin/fields/color.d.ts.map +1 -1
  22. package/dist/plugin/fields/color.js +116 -25
  23. package/dist/plugin/fields/color.js.map +1 -1
  24. package/dist/plugin/fields/condition.d.ts +40 -0
  25. package/dist/plugin/fields/condition.d.ts.map +1 -0
  26. package/dist/plugin/fields/condition.js +115 -0
  27. package/dist/plugin/fields/condition.js.map +1 -0
  28. package/dist/plugin/fields/contributions.d.ts +233 -0
  29. package/dist/plugin/fields/contributions.d.ts.map +1 -0
  30. package/dist/plugin/fields/contributions.js +1 -0
  31. package/dist/plugin/fields/contributions.js.map +1 -0
  32. package/dist/plugin/fields/entry.d.ts +18 -22
  33. package/dist/plugin/fields/entry.d.ts.map +1 -1
  34. package/dist/plugin/fields/entry.js +13 -21
  35. package/dist/plugin/fields/entry.js.map +1 -1
  36. package/dist/plugin/fields/errors.d.ts +23 -11
  37. package/dist/plugin/fields/errors.d.ts.map +1 -1
  38. package/dist/plugin/fields/errors.js +20 -13
  39. package/dist/plugin/fields/errors.js.map +1 -1
  40. package/dist/plugin/fields/group.d.ts +90 -0
  41. package/dist/plugin/fields/group.d.ts.map +1 -0
  42. package/dist/plugin/fields/group.js +124 -0
  43. package/dist/plugin/fields/group.js.map +1 -0
  44. package/dist/plugin/fields/index.d.ts +22 -45
  45. package/dist/plugin/fields/index.d.ts.map +1 -1
  46. package/dist/plugin/fields/index.js +25 -30
  47. package/dist/plugin/fields/index.js.map +1 -1
  48. package/dist/plugin/fields/json.d.ts +71 -9
  49. package/dist/plugin/fields/json.d.ts.map +1 -1
  50. package/dist/plugin/fields/json.js +110 -16
  51. package/dist/plugin/fields/json.js.map +1 -1
  52. package/dist/plugin/fields/link.d.ts +96 -0
  53. package/dist/plugin/fields/link.d.ts.map +1 -0
  54. package/dist/plugin/fields/link.js +160 -0
  55. package/dist/plugin/fields/link.js.map +1 -0
  56. package/dist/plugin/fields/number.d.ts +86 -13
  57. package/dist/plugin/fields/number.d.ts.map +1 -1
  58. package/dist/plugin/fields/number.js +133 -20
  59. package/dist/plugin/fields/number.js.map +1 -1
  60. package/dist/plugin/fields/range.d.ts +101 -17
  61. package/dist/plugin/fields/range.d.ts.map +1 -1
  62. package/dist/plugin/fields/range.js +153 -38
  63. package/dist/plugin/fields/range.js.map +1 -1
  64. package/dist/plugin/fields/reference.d.ts +171 -0
  65. package/dist/plugin/fields/reference.d.ts.map +1 -0
  66. package/dist/plugin/fields/reference.js +193 -0
  67. package/dist/plugin/fields/reference.js.map +1 -0
  68. package/dist/plugin/fields/repeater.d.ts +111 -8
  69. package/dist/plugin/fields/repeater.d.ts.map +1 -1
  70. package/dist/plugin/fields/repeater.js +157 -66
  71. package/dist/plugin/fields/repeater.js.map +1 -1
  72. package/dist/plugin/fields/richtext-validate.d.ts +7 -0
  73. package/dist/plugin/fields/richtext-validate.d.ts.map +1 -1
  74. package/dist/plugin/fields/richtext-validate.js +11 -5
  75. package/dist/plugin/fields/richtext-validate.js.map +1 -1
  76. package/dist/plugin/fields/richtext.d.ts +78 -12
  77. package/dist/plugin/fields/richtext.d.ts.map +1 -1
  78. package/dist/plugin/fields/richtext.js +121 -26
  79. package/dist/plugin/fields/richtext.js.map +1 -1
  80. package/dist/plugin/fields/select.d.ts +150 -10
  81. package/dist/plugin/fields/select.d.ts.map +1 -1
  82. package/dist/plugin/fields/select.js +205 -17
  83. package/dist/plugin/fields/select.js.map +1 -1
  84. package/dist/plugin/fields/sub-fields.d.ts +12 -0
  85. package/dist/plugin/fields/sub-fields.d.ts.map +1 -0
  86. package/dist/plugin/fields/sub-fields.js +62 -0
  87. package/dist/plugin/fields/sub-fields.js.map +1 -0
  88. package/dist/plugin/fields/temporal.d.ts +124 -0
  89. package/dist/plugin/fields/temporal.d.ts.map +1 -0
  90. package/dist/plugin/fields/temporal.js +180 -0
  91. package/dist/plugin/fields/temporal.js.map +1 -0
  92. package/dist/plugin/fields/term.d.ts +11 -16
  93. package/dist/plugin/fields/term.d.ts.map +1 -1
  94. package/dist/plugin/fields/term.js +11 -19
  95. package/dist/plugin/fields/term.js.map +1 -1
  96. package/dist/plugin/fields/toggle.d.ts +97 -0
  97. package/dist/plugin/fields/toggle.d.ts.map +1 -0
  98. package/dist/plugin/fields/toggle.js +135 -0
  99. package/dist/plugin/fields/toggle.js.map +1 -0
  100. package/dist/plugin/fields/user.d.ts +14 -26
  101. package/dist/plugin/fields/user.d.ts.map +1 -1
  102. package/dist/plugin/fields/user.js +11 -25
  103. package/dist/plugin/fields/user.js.map +1 -1
  104. package/dist/plugin/lookup.d.ts +70 -1
  105. package/dist/plugin/lookup.d.ts.map +1 -1
  106. package/dist/plugin/manifest.d.ts +308 -128
  107. package/dist/plugin/manifest.d.ts.map +1 -1
  108. package/dist/plugin/manifest.js +94 -4
  109. package/dist/plugin/manifest.js.map +1 -1
  110. package/dist/plugin/setup-context.d.ts +5 -4
  111. package/dist/plugin/setup-context.d.ts.map +1 -1
  112. package/dist/plugin/setup-context.js +10 -3
  113. package/dist/plugin/setup-context.js.map +1 -1
  114. package/dist/plugin/validation/meta-box-fields.d.ts.map +1 -1
  115. package/dist/plugin/validation/meta-box-fields.js +16 -0
  116. package/dist/plugin/validation/meta-box-fields.js.map +1 -1
  117. package/dist/route/render/build-resolved-entries.d.ts.map +1 -1
  118. package/dist/route/render/build-resolved-entries.js +7 -2
  119. package/dist/route/render/build-resolved-entries.js.map +1 -1
  120. package/dist/route/render/render-template.d.ts.map +1 -1
  121. package/dist/route/render/render-template.js +12 -2
  122. package/dist/route/render/render-template.js.map +1 -1
  123. package/dist/route/render/template-builders.d.ts +15 -10
  124. package/dist/route/render/template-builders.d.ts.map +1 -1
  125. package/dist/route/render/template-builders.js.map +1 -1
  126. package/dist/rpc/base.d.ts +7 -0
  127. package/dist/rpc/base.d.ts.map +1 -1
  128. package/dist/rpc/errors.d.ts +7 -0
  129. package/dist/rpc/errors.d.ts.map +1 -1
  130. package/dist/rpc/errors.js +16 -0
  131. package/dist/rpc/errors.js.map +1 -1
  132. package/dist/rpc/meta/core.d.ts +89 -10
  133. package/dist/rpc/meta/core.d.ts.map +1 -1
  134. package/dist/rpc/meta/core.js +465 -282
  135. package/dist/rpc/meta/core.js.map +1 -1
  136. package/dist/rpc/meta/field-messages.d.ts +67 -0
  137. package/dist/rpc/meta/field-messages.d.ts.map +1 -0
  138. package/dist/rpc/meta/field-messages.js +67 -0
  139. package/dist/rpc/meta/field-messages.js.map +1 -0
  140. package/dist/rpc/meta/field-pipeline.d.ts +52 -0
  141. package/dist/rpc/meta/field-pipeline.d.ts.map +1 -0
  142. package/dist/rpc/meta/field-pipeline.js +501 -0
  143. package/dist/rpc/meta/field-pipeline.js.map +1 -0
  144. package/dist/rpc/procedures/auth/allowed-domains/create.d.ts +7 -0
  145. package/dist/rpc/procedures/auth/allowed-domains/create.d.ts.map +1 -1
  146. package/dist/rpc/procedures/auth/allowed-domains/delete.d.ts +7 -0
  147. package/dist/rpc/procedures/auth/allowed-domains/delete.d.ts.map +1 -1
  148. package/dist/rpc/procedures/auth/allowed-domains/index.d.ts +28 -0
  149. package/dist/rpc/procedures/auth/allowed-domains/index.d.ts.map +1 -1
  150. package/dist/rpc/procedures/auth/allowed-domains/list.d.ts +7 -0
  151. package/dist/rpc/procedures/auth/allowed-domains/list.d.ts.map +1 -1
  152. package/dist/rpc/procedures/auth/allowed-domains/update.d.ts +7 -0
  153. package/dist/rpc/procedures/auth/allowed-domains/update.d.ts.map +1 -1
  154. package/dist/rpc/procedures/auth/api-tokens/admin-list.d.ts +7 -0
  155. package/dist/rpc/procedures/auth/api-tokens/admin-list.d.ts.map +1 -1
  156. package/dist/rpc/procedures/auth/api-tokens/admin-revoke.d.ts +7 -0
  157. package/dist/rpc/procedures/auth/api-tokens/admin-revoke.d.ts.map +1 -1
  158. package/dist/rpc/procedures/auth/api-tokens/create.d.ts +7 -0
  159. package/dist/rpc/procedures/auth/api-tokens/create.d.ts.map +1 -1
  160. package/dist/rpc/procedures/auth/api-tokens/index.d.ts +35 -0
  161. package/dist/rpc/procedures/auth/api-tokens/index.d.ts.map +1 -1
  162. package/dist/rpc/procedures/auth/api-tokens/list.d.ts +7 -0
  163. package/dist/rpc/procedures/auth/api-tokens/list.d.ts.map +1 -1
  164. package/dist/rpc/procedures/auth/api-tokens/revoke.d.ts +7 -0
  165. package/dist/rpc/procedures/auth/api-tokens/revoke.d.ts.map +1 -1
  166. package/dist/rpc/procedures/auth/credentials/delete.d.ts +7 -0
  167. package/dist/rpc/procedures/auth/credentials/delete.d.ts.map +1 -1
  168. package/dist/rpc/procedures/auth/credentials/index.d.ts +21 -0
  169. package/dist/rpc/procedures/auth/credentials/index.d.ts.map +1 -1
  170. package/dist/rpc/procedures/auth/credentials/list.d.ts +7 -0
  171. package/dist/rpc/procedures/auth/credentials/list.d.ts.map +1 -1
  172. package/dist/rpc/procedures/auth/credentials/rename.d.ts +7 -0
  173. package/dist/rpc/procedures/auth/credentials/rename.d.ts.map +1 -1
  174. package/dist/rpc/procedures/auth/device-flow/approve.d.ts +7 -0
  175. package/dist/rpc/procedures/auth/device-flow/approve.d.ts.map +1 -1
  176. package/dist/rpc/procedures/auth/device-flow/deny.d.ts +7 -0
  177. package/dist/rpc/procedures/auth/device-flow/deny.d.ts.map +1 -1
  178. package/dist/rpc/procedures/auth/device-flow/index.d.ts +21 -0
  179. package/dist/rpc/procedures/auth/device-flow/index.d.ts.map +1 -1
  180. package/dist/rpc/procedures/auth/device-flow/lookup.d.ts +7 -0
  181. package/dist/rpc/procedures/auth/device-flow/lookup.d.ts.map +1 -1
  182. package/dist/rpc/procedures/auth/index.d.ts +154 -0
  183. package/dist/rpc/procedures/auth/index.d.ts.map +1 -1
  184. package/dist/rpc/procedures/auth/login-links.d.ts +7 -0
  185. package/dist/rpc/procedures/auth/login-links.d.ts.map +1 -1
  186. package/dist/rpc/procedures/auth/mailer/index.d.ts +7 -0
  187. package/dist/rpc/procedures/auth/mailer/index.d.ts.map +1 -1
  188. package/dist/rpc/procedures/auth/mailer/test-send.d.ts +7 -0
  189. package/dist/rpc/procedures/auth/mailer/test-send.d.ts.map +1 -1
  190. package/dist/rpc/procedures/auth/oauth-providers.d.ts +7 -0
  191. package/dist/rpc/procedures/auth/oauth-providers.d.ts.map +1 -1
  192. package/dist/rpc/procedures/auth/session.d.ts +7 -0
  193. package/dist/rpc/procedures/auth/session.d.ts.map +1 -1
  194. package/dist/rpc/procedures/auth/sessions/index.d.ts +21 -0
  195. package/dist/rpc/procedures/auth/sessions/index.d.ts.map +1 -1
  196. package/dist/rpc/procedures/auth/sessions/list.d.ts +7 -0
  197. package/dist/rpc/procedures/auth/sessions/list.d.ts.map +1 -1
  198. package/dist/rpc/procedures/auth/sessions/revoke-others.d.ts +7 -0
  199. package/dist/rpc/procedures/auth/sessions/revoke-others.d.ts.map +1 -1
  200. package/dist/rpc/procedures/auth/sessions/revoke.d.ts +7 -0
  201. package/dist/rpc/procedures/auth/sessions/revoke.d.ts.map +1 -1
  202. package/dist/rpc/procedures/entry/activity.d.ts +7 -0
  203. package/dist/rpc/procedures/entry/activity.d.ts.map +1 -1
  204. package/dist/rpc/procedures/entry/bulk.d.ts +21 -0
  205. package/dist/rpc/procedures/entry/bulk.d.ts.map +1 -1
  206. package/dist/rpc/procedures/entry/create-preview-link.d.ts +7 -0
  207. package/dist/rpc/procedures/entry/create-preview-link.d.ts.map +1 -1
  208. package/dist/rpc/procedures/entry/create.d.ts +8 -1
  209. package/dist/rpc/procedures/entry/create.d.ts.map +1 -1
  210. package/dist/rpc/procedures/entry/create.js +8 -8
  211. package/dist/rpc/procedures/entry/create.js.map +1 -1
  212. package/dist/rpc/procedures/entry/dashboard.d.ts +14 -0
  213. package/dist/rpc/procedures/entry/dashboard.d.ts.map +1 -1
  214. package/dist/rpc/procedures/entry/delete-permanent.d.ts +7 -0
  215. package/dist/rpc/procedures/entry/delete-permanent.d.ts.map +1 -1
  216. package/dist/rpc/procedures/entry/discard-draft.d.ts +7 -0
  217. package/dist/rpc/procedures/entry/discard-draft.d.ts.map +1 -1
  218. package/dist/rpc/procedures/entry/duplicate.d.ts +7 -0
  219. package/dist/rpc/procedures/entry/duplicate.d.ts.map +1 -1
  220. package/dist/rpc/procedures/entry/duplicate.js +2 -2
  221. package/dist/rpc/procedures/entry/duplicate.js.map +1 -1
  222. package/dist/rpc/procedures/entry/get.d.ts +7 -0
  223. package/dist/rpc/procedures/entry/get.d.ts.map +1 -1
  224. package/dist/rpc/procedures/entry/get.js +2 -2
  225. package/dist/rpc/procedures/entry/get.js.map +1 -1
  226. package/dist/rpc/procedures/entry/index.d.ts +156 -2
  227. package/dist/rpc/procedures/entry/index.d.ts.map +1 -1
  228. package/dist/rpc/procedures/entry/list.d.ts +7 -0
  229. package/dist/rpc/procedures/entry/list.d.ts.map +1 -1
  230. package/dist/rpc/procedures/entry/lookup.d.ts +8 -2
  231. package/dist/rpc/procedures/entry/lookup.d.ts.map +1 -1
  232. package/dist/rpc/procedures/entry/lookup.js +60 -1
  233. package/dist/rpc/procedures/entry/lookup.js.map +1 -1
  234. package/dist/rpc/procedures/entry/meta.d.ts +37 -3
  235. package/dist/rpc/procedures/entry/meta.d.ts.map +1 -1
  236. package/dist/rpc/procedures/entry/meta.js +63 -7
  237. package/dist/rpc/procedures/entry/meta.js.map +1 -1
  238. package/dist/rpc/procedures/entry/publish.d.ts +7 -0
  239. package/dist/rpc/procedures/entry/publish.d.ts.map +1 -1
  240. package/dist/rpc/procedures/entry/publish.js +6 -4
  241. package/dist/rpc/procedures/entry/publish.js.map +1 -1
  242. package/dist/rpc/procedures/entry/refresh-block-loader.d.ts +7 -0
  243. package/dist/rpc/procedures/entry/refresh-block-loader.d.ts.map +1 -1
  244. package/dist/rpc/procedures/entry/restore.d.ts +7 -0
  245. package/dist/rpc/procedures/entry/restore.d.ts.map +1 -1
  246. package/dist/rpc/procedures/entry/revisions.d.ts +56 -0
  247. package/dist/rpc/procedures/entry/revisions.d.ts.map +1 -1
  248. package/dist/rpc/procedures/entry/schemas.d.ts +2 -2
  249. package/dist/rpc/procedures/entry/schemas.d.ts.map +1 -1
  250. package/dist/rpc/procedures/entry/schemas.js +9 -2
  251. package/dist/rpc/procedures/entry/schemas.js.map +1 -1
  252. package/dist/rpc/procedures/entry/trash.d.ts +7 -0
  253. package/dist/rpc/procedures/entry/trash.d.ts.map +1 -1
  254. package/dist/rpc/procedures/entry/update.d.ts +8 -1
  255. package/dist/rpc/procedures/entry/update.d.ts.map +1 -1
  256. package/dist/rpc/procedures/entry/update.js +77 -18
  257. package/dist/rpc/procedures/entry/update.js.map +1 -1
  258. package/dist/rpc/procedures/lookup/index.d.ts +14 -0
  259. package/dist/rpc/procedures/lookup/index.d.ts.map +1 -1
  260. package/dist/rpc/procedures/lookup/list.d.ts +7 -0
  261. package/dist/rpc/procedures/lookup/list.d.ts.map +1 -1
  262. package/dist/rpc/procedures/lookup/resolve.d.ts +7 -0
  263. package/dist/rpc/procedures/lookup/resolve.d.ts.map +1 -1
  264. package/dist/rpc/procedures/lookup/resolve.js +1 -1
  265. package/dist/rpc/procedures/lookup/resolve.js.map +1 -1
  266. package/dist/rpc/procedures/search/index.d.ts +7 -0
  267. package/dist/rpc/procedures/search/index.d.ts.map +1 -1
  268. package/dist/rpc/procedures/settings/get.d.ts +7 -0
  269. package/dist/rpc/procedures/settings/get.d.ts.map +1 -1
  270. package/dist/rpc/procedures/settings/index.d.ts +14 -0
  271. package/dist/rpc/procedures/settings/index.d.ts.map +1 -1
  272. package/dist/rpc/procedures/settings/upsert.d.ts +7 -0
  273. package/dist/rpc/procedures/settings/upsert.d.ts.map +1 -1
  274. package/dist/rpc/procedures/settings/upsert.js +9 -0
  275. package/dist/rpc/procedures/settings/upsert.js.map +1 -1
  276. package/dist/rpc/procedures/term/create.d.ts +7 -0
  277. package/dist/rpc/procedures/term/create.d.ts.map +1 -1
  278. package/dist/rpc/procedures/term/create.js +3 -3
  279. package/dist/rpc/procedures/term/create.js.map +1 -1
  280. package/dist/rpc/procedures/term/delete.d.ts +7 -0
  281. package/dist/rpc/procedures/term/delete.d.ts.map +1 -1
  282. package/dist/rpc/procedures/term/get.d.ts +7 -0
  283. package/dist/rpc/procedures/term/get.d.ts.map +1 -1
  284. package/dist/rpc/procedures/term/index.d.ts +35 -0
  285. package/dist/rpc/procedures/term/index.d.ts.map +1 -1
  286. package/dist/rpc/procedures/term/list.d.ts +7 -0
  287. package/dist/rpc/procedures/term/list.d.ts.map +1 -1
  288. package/dist/rpc/procedures/term/lookup.d.ts +7 -2
  289. package/dist/rpc/procedures/term/lookup.d.ts.map +1 -1
  290. package/dist/rpc/procedures/term/lookup.js +26 -0
  291. package/dist/rpc/procedures/term/lookup.js.map +1 -1
  292. package/dist/rpc/procedures/term/meta.d.ts +3 -2
  293. package/dist/rpc/procedures/term/meta.d.ts.map +1 -1
  294. package/dist/rpc/procedures/term/meta.js +7 -5
  295. package/dist/rpc/procedures/term/meta.js.map +1 -1
  296. package/dist/rpc/procedures/term/update.d.ts +7 -0
  297. package/dist/rpc/procedures/term/update.d.ts.map +1 -1
  298. package/dist/rpc/procedures/term/update.js +4 -4
  299. package/dist/rpc/procedures/term/update.js.map +1 -1
  300. package/dist/rpc/procedures/user/cancel-email-change.d.ts +7 -0
  301. package/dist/rpc/procedures/user/cancel-email-change.d.ts.map +1 -1
  302. package/dist/rpc/procedures/user/delete.d.ts +7 -0
  303. package/dist/rpc/procedures/user/delete.d.ts.map +1 -1
  304. package/dist/rpc/procedures/user/disable.d.ts +7 -0
  305. package/dist/rpc/procedures/user/disable.d.ts.map +1 -1
  306. package/dist/rpc/procedures/user/enable.d.ts +7 -0
  307. package/dist/rpc/procedures/user/enable.d.ts.map +1 -1
  308. package/dist/rpc/procedures/user/get.d.ts +7 -0
  309. package/dist/rpc/procedures/user/get.d.ts.map +1 -1
  310. package/dist/rpc/procedures/user/get.js +2 -2
  311. package/dist/rpc/procedures/user/get.js.map +1 -1
  312. package/dist/rpc/procedures/user/index.d.ts +77 -0
  313. package/dist/rpc/procedures/user/index.d.ts.map +1 -1
  314. package/dist/rpc/procedures/user/invite.d.ts +7 -0
  315. package/dist/rpc/procedures/user/invite.d.ts.map +1 -1
  316. package/dist/rpc/procedures/user/list.d.ts +7 -0
  317. package/dist/rpc/procedures/user/list.d.ts.map +1 -1
  318. package/dist/rpc/procedures/user/lookup.d.ts +6 -2
  319. package/dist/rpc/procedures/user/lookup.d.ts.map +1 -1
  320. package/dist/rpc/procedures/user/lookup.js +29 -0
  321. package/dist/rpc/procedures/user/lookup.js.map +1 -1
  322. package/dist/rpc/procedures/user/meta.d.ts +3 -2
  323. package/dist/rpc/procedures/user/meta.d.ts.map +1 -1
  324. package/dist/rpc/procedures/user/meta.js +7 -5
  325. package/dist/rpc/procedures/user/meta.js.map +1 -1
  326. package/dist/rpc/procedures/user/pending-email-change.d.ts +7 -0
  327. package/dist/rpc/procedures/user/pending-email-change.d.ts.map +1 -1
  328. package/dist/rpc/procedures/user/request-email-change.d.ts +7 -0
  329. package/dist/rpc/procedures/user/request-email-change.d.ts.map +1 -1
  330. package/dist/rpc/procedures/user/set-locale.d.ts +7 -0
  331. package/dist/rpc/procedures/user/set-locale.d.ts.map +1 -1
  332. package/dist/rpc/procedures/user/update.d.ts +7 -0
  333. package/dist/rpc/procedures/user/update.d.ts.map +1 -1
  334. package/dist/rpc/procedures/user/update.js +4 -4
  335. package/dist/rpc/procedures/user/update.js.map +1 -1
  336. package/dist/rpc/router.d.ts +457 -2
  337. package/dist/rpc/router.d.ts.map +1 -1
  338. package/dist/rpc/validation.d.ts +1 -0
  339. package/dist/rpc/validation.d.ts.map +1 -1
  340. package/dist/rpc/validation.js +1 -0
  341. package/dist/rpc/validation.js.map +1 -1
  342. package/dist/runtime/dispatcher.d.ts.map +1 -1
  343. package/dist/runtime/dispatcher.js +20 -10
  344. package/dist/runtime/dispatcher.js.map +1 -1
  345. package/dist/seo/feed.d.ts.map +1 -1
  346. package/dist/seo/feed.js +7 -1
  347. package/dist/seo/feed.js.map +1 -1
  348. package/dist/settings-core.js +1 -1
  349. package/dist/settings-core.js.map +1 -1
  350. package/dist/template-registry.d.ts +0 -16
  351. package/dist/template-registry.d.ts.map +1 -1
  352. package/dist/terms/read-service.js +2 -2
  353. package/dist/terms/read-service.js.map +1 -1
  354. package/dist/test/traced-context.d.ts +1 -1
  355. package/dist/test/traced-context.d.ts.map +1 -1
  356. package/dist/test/traced-context.js +2 -2
  357. package/dist/test/traced-context.js.map +1 -1
  358. package/package.json +2 -2
  359. package/dist/plugin/fields/checkbox.d.ts +0 -19
  360. package/dist/plugin/fields/checkbox.d.ts.map +0 -1
  361. package/dist/plugin/fields/checkbox.js +0 -20
  362. package/dist/plugin/fields/checkbox.js.map +0 -1
  363. package/dist/plugin/fields/date.d.ts +0 -24
  364. package/dist/plugin/fields/date.d.ts.map +0 -1
  365. package/dist/plugin/fields/date.js +0 -23
  366. package/dist/plugin/fields/date.js.map +0 -1
  367. package/dist/plugin/fields/datetime.d.ts +0 -26
  368. package/dist/plugin/fields/datetime.d.ts.map +0 -1
  369. package/dist/plugin/fields/datetime.js +0 -25
  370. package/dist/plugin/fields/datetime.js.map +0 -1
  371. package/dist/plugin/fields/email.d.ts +0 -17
  372. package/dist/plugin/fields/email.d.ts.map +0 -1
  373. package/dist/plugin/fields/email.js +0 -18
  374. package/dist/plugin/fields/email.js.map +0 -1
  375. package/dist/plugin/fields/entry-list.d.ts +0 -28
  376. package/dist/plugin/fields/entry-list.d.ts.map +0 -1
  377. package/dist/plugin/fields/entry-list.js +0 -31
  378. package/dist/plugin/fields/entry-list.js.map +0 -1
  379. package/dist/plugin/fields/multiselect.d.ts +0 -21
  380. package/dist/plugin/fields/multiselect.d.ts.map +0 -1
  381. package/dist/plugin/fields/multiselect.js +0 -43
  382. package/dist/plugin/fields/multiselect.js.map +0 -1
  383. package/dist/plugin/fields/password.d.ts +0 -24
  384. package/dist/plugin/fields/password.d.ts.map +0 -1
  385. package/dist/plugin/fields/password.js +0 -25
  386. package/dist/plugin/fields/password.js.map +0 -1
  387. package/dist/plugin/fields/radio.d.ts +0 -16
  388. package/dist/plugin/fields/radio.d.ts.map +0 -1
  389. package/dist/plugin/fields/radio.js +0 -17
  390. package/dist/plugin/fields/radio.js.map +0 -1
  391. package/dist/plugin/fields/repeater-validate.d.ts +0 -34
  392. package/dist/plugin/fields/repeater-validate.d.ts.map +0 -1
  393. package/dist/plugin/fields/repeater-validate.js +0 -104
  394. package/dist/plugin/fields/repeater-validate.js.map +0 -1
  395. package/dist/plugin/fields/term-list.d.ts +0 -27
  396. package/dist/plugin/fields/term-list.d.ts.map +0 -1
  397. package/dist/plugin/fields/term-list.js +0 -30
  398. package/dist/plugin/fields/term-list.js.map +0 -1
  399. package/dist/plugin/fields/text.d.ts +0 -37
  400. package/dist/plugin/fields/text.d.ts.map +0 -1
  401. package/dist/plugin/fields/text.js +0 -31
  402. package/dist/plugin/fields/text.js.map +0 -1
  403. package/dist/plugin/fields/textarea.d.ts +0 -20
  404. package/dist/plugin/fields/textarea.d.ts.map +0 -1
  405. package/dist/plugin/fields/textarea.js +0 -21
  406. package/dist/plugin/fields/textarea.js.map +0 -1
  407. package/dist/plugin/fields/time.d.ts +0 -24
  408. package/dist/plugin/fields/time.d.ts.map +0 -1
  409. package/dist/plugin/fields/time.js +0 -23
  410. package/dist/plugin/fields/time.js.map +0 -1
  411. package/dist/plugin/fields/url.d.ts +0 -17
  412. package/dist/plugin/fields/url.d.ts.map +0 -1
  413. package/dist/plugin/fields/url.js +0 -18
  414. package/dist/plugin/fields/url.js.map +0 -1
  415. package/dist/plugin/fields/user-list.d.ts +0 -29
  416. package/dist/plugin/fields/user-list.d.ts.map +0 -1
  417. package/dist/plugin/fields/user-list.js +0 -31
  418. package/dist/plugin/fields/user-list.js.map +0 -1
@@ -1,46 +1,161 @@
1
+ var _a;
2
+ import { humanizeFieldKey } from "./builder.js";
1
3
  import { FieldConfigError } from "./errors.js";
2
4
  /**
3
- * Build a typed `range` meta-box field. Renders as a slider in the
4
- * admin. Both `min` and `max` are required; `min <= max` is enforced
5
- * at registration time. The builder injects a default sanitizer that
6
- * rejects values outside `[min, max]` on write.
5
+ * Entry point of the `range()` chain only `.bounds()` is available
6
+ * until the slider's `[min, max]` track is declared, so a range without
7
+ * bounds can't reach `build()` (registration surfaces require a `build`
8
+ * method). Forgetting the bounds is a compile error, not a runtime throw.
7
9
  */
8
- export function range(options) {
9
- if (options.min > options.max) {
10
- throw FieldConfigError.rangeMinGreaterThanMax({
11
- fieldKey: options.key,
12
- min: options.min,
13
- max: options.max,
14
- });
10
+ export class RangeFieldSeed {
11
+ #key;
12
+ constructor(key) {
13
+ this.#key = key;
14
+ }
15
+ /**
16
+ * Declare the slider's inclusive `[min, max]` track — both required.
17
+ * `min <= max` is enforced when the chain compiles at registration.
18
+ */
19
+ bounds(min, max) {
20
+ return new RangeFieldBuilder(this.#key, { min, max });
15
21
  }
16
- const { min, max } = options;
17
- return {
18
- key: options.key,
19
- label: options.label,
20
- type: "number",
21
- inputType: "range",
22
- min,
23
- max,
24
- step: options.step,
25
- required: options.required,
26
- description: options.description,
27
- default: options.default,
28
- span: options.span,
29
- capability: options.capability,
30
- sanitize: options.sanitize ?? buildBoundsSanitizer(min, max),
31
- };
32
22
  }
33
- function buildBoundsSanitizer(min, max) {
34
- return (value) => {
35
- if (typeof value !== "number" || !Number.isFinite(value)) {
36
- // eslint-disable-next-line no-restricted-syntax -- sanitizer flow-control sentinel; migrated in the field-sanitizer-error slice
37
- throw new Error("invalid_value");
38
- }
39
- if (value < min || value > max) {
40
- // eslint-disable-next-line no-restricted-syntax -- sanitizer flow-control sentinel; migrated in the field-sanitizer-error slice
41
- throw new Error("invalid_value");
23
+ /**
24
+ * Fluent chain for the `range` slider field. Its `[min, max]` track is
25
+ * fixed by `.bounds()` on the seed (so the bounds are always present here);
26
+ * `min <= max` is enforced when the chain compiles at registration.
27
+ * `build()` injects a default sanitizer that rejects values outside
28
+ * `[min, max]` on write; a custom `.sanitize()` replaces it entirely.
29
+ */
30
+ export class RangeFieldBuilder {
31
+ #key;
32
+ #state;
33
+ constructor(key, state) {
34
+ this.#key = key;
35
+ this.#state = state;
36
+ }
37
+ #fork(patch) {
38
+ return new _a(this.#key, {
39
+ ...this.#state,
40
+ ...patch,
41
+ });
42
+ }
43
+ /** Override the derived (humanized-key) label. */
44
+ label(label) {
45
+ return this.#fork({ label });
46
+ }
47
+ /** Help text rendered under the label. */
48
+ description(description) {
49
+ return this.#fork({ description });
50
+ }
51
+ /** Default for absent keys, applied at read decode (and seeded into
52
+ * the admin form) — narrows the read type to `number`; the stored
53
+ * shape stays optional. */
54
+ default(value) {
55
+ return this.#fork({ default: value });
56
+ }
57
+ /** Mark the field required — narrows the read and stored types to `number`. */
58
+ required() {
59
+ return this.#fork({ required: true });
60
+ }
61
+ /**
62
+ * Column span within the box's 12-column grid — a universal layout
63
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
64
+ */
65
+ span(span) {
66
+ return this.#fork({ span });
67
+ }
68
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
69
+ capability(capability) {
70
+ return this.#fork({ capability });
71
+ }
72
+ /** Opt this field's value into public REST responses (default-deny). */
73
+ showInApi() {
74
+ return this.#fork({ showInApi: true });
75
+ }
76
+ /** Rule factory: this field's value equals `value` — pass the rule
77
+ * to a dependent field's `.visibleWhen()`. */
78
+ is(value) {
79
+ return { key: this.#key, op: "eq", value };
80
+ }
81
+ /** Rule factory: this field's value differs from `value`. */
82
+ isNot(value) {
83
+ return { key: this.#key, op: "neq", value };
84
+ }
85
+ /** Rule factory: this field has no value (unset or cleared). */
86
+ isEmpty() {
87
+ return { key: this.#key, op: "empty" };
88
+ }
89
+ /** Rule factory: this field has a value. */
90
+ isNotEmpty() {
91
+ return { key: this.#key, op: "not_empty" };
92
+ }
93
+ /** Rule factory: this field's value is greater than `value`. */
94
+ gt(value) {
95
+ return { key: this.#key, op: "gt", value };
96
+ }
97
+ /** Rule factory: this field's value is less than `value`. */
98
+ lt(value) {
99
+ return { key: this.#key, op: "lt", value };
100
+ }
101
+ /**
102
+ * Show this field only when every rule passes (one AND group) —
103
+ * rules come from sibling fields' condition factories. Replaces any
104
+ * previously declared condition; `.orVisibleWhen()` adds
105
+ * alternatives.
106
+ */
107
+ visibleWhen(...rules) {
108
+ return this.#fork({ visibleWhen: [rules] });
109
+ }
110
+ /** Add an OR alternative — one more AND group of rules. */
111
+ orVisibleWhen(...rules) {
112
+ return this.#fork({
113
+ visibleWhen: [...(this.#state.visibleWhen ?? []), rules],
114
+ });
115
+ }
116
+ step(step) {
117
+ return this.#fork({ step });
118
+ }
119
+ /** Normalising transform, applied after coercion and before persistence. */
120
+ sanitize(sanitize) {
121
+ return this.#fork({ sanitize: sanitize });
122
+ }
123
+ /**
124
+ * Custom validation — `true` for valid, or an i18n-able failure
125
+ * message (sync or async). Runs after `.sanitize()` and the
126
+ * declarative constraints.
127
+ */
128
+ validate(validate) {
129
+ return this.#fork({ validate: validate });
130
+ }
131
+ /** Compile the chain into the wire/manifest field definition. */
132
+ build() {
133
+ const { min, max } = this.#state;
134
+ if (min > max) {
135
+ throw FieldConfigError.rangeMinGreaterThanMax({
136
+ fieldKey: this.#key,
137
+ min,
138
+ max,
139
+ });
42
140
  }
43
- return value;
44
- };
141
+ return {
142
+ ...this.#state,
143
+ key: this.#key,
144
+ label: this.#state.label ?? humanizeFieldKey(this.#key),
145
+ type: "number",
146
+ inputType: "range",
147
+ };
148
+ }
149
+ }
150
+ _a = RangeFieldBuilder;
151
+ /**
152
+ * Bounded numeric slider — `range("opacity").bounds(0, 100)`. The
153
+ * `[min, max]` track is required: only `.bounds()` is available on the
154
+ * bare constructor, so omitting it is a compile error. `min <= max` is
155
+ * enforced at registration; bounds are enforced server-side by the
156
+ * constraint walker.
157
+ */
158
+ export function range(key) {
159
+ return new RangeFieldSeed(key);
45
160
  }
46
161
  //# sourceMappingURL=range.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/plugin/fields/range.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAqB/C;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,OAA0B;IAC9C,IAAI,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,gBAAgB,CAAC,sBAAsB,CAAC;YAC5C,QAAQ,EAAE,OAAO,CAAC,GAAG;YACrB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC7B,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,OAAO;QAClB,GAAG;QACH,GAAG;QACH,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAAW,EACX,GAAW;IAEX,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,gIAAgI;YAChI,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAC/B,gIAAgI;YAChI,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/plugin/fields/range.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,171 @@
1
+ import type { EntryStatus } from "../../db/schema/entries.js";
2
+ import type { UserRole } from "../../db/schema/users.js";
3
+ import type { Label } from "../../i18n/label.js";
4
+ import type { ReferenceHydrationShapes } from "../lookup.js";
5
+ import type { EntryListMetaBoxField, EntryReferenceMetaBoxField, FieldBuilder, MetaBoxFieldSpan, MetaBoxFieldValidate, ReferenceReadProjection, TermListMetaBoxField, TermReferenceMetaBoxField, UserListMetaBoxField, UserMetaBoxField } from "../manifest.js";
6
+ import type { MetaFieldCondition, MetaFieldConditionRule } from "./condition.js";
7
+ /**
8
+ * The hydrated read shape for a reference `kind`, sourced from the
9
+ * shared {@link ReferenceHydrationShapes} registry so the builder's
10
+ * default read type tracks whatever the adapter actually resolves.
11
+ * Plugin-registered kinds augment that registry; an unregistered kind
12
+ * folds to `never`.
13
+ */
14
+ type ReferenceSummaryOf<Kind extends string> = Kind extends keyof ReferenceHydrationShapes ? ReferenceHydrationShapes[Kind] : never;
15
+ /** One read element: the hydrated summary by default, the bare id after `.returns("id")`. */
16
+ type ReferenceReadItem<Summary, Returns extends "id" | "hydrated"> = Returns extends "id" ? string : Summary;
17
+ /**
18
+ * The phantom read type. Single references are *always* optional — a
19
+ * live target can be deleted after the id is written, so even a
20
+ * `.required()` field reads `undefined` for an orphan. Multi references
21
+ * read a dense array (orphans drop out); the array itself is present
22
+ * once `.required()` guarantees a write, optional otherwise.
23
+ */
24
+ type ReferenceReadValue<Summary, Multiple extends boolean, Required extends boolean, Returns extends "id" | "hydrated"> = Multiple extends true ? Required extends true ? readonly ReferenceReadItem<Summary, Returns>[] : readonly ReferenceReadItem<Summary, Returns>[] | undefined : ReferenceReadItem<Summary, Returns> | undefined;
25
+ /**
26
+ * The phantom stored shape — bare ids, what `whereMeta` addresses.
27
+ * `.required()` narrows away `undefined` (write-enforced); the read
28
+ * projection (`.returns()`) never touches it.
29
+ */
30
+ type ReferenceStoredValue<Multiple extends boolean, Required extends boolean> = Multiple extends true ? Required extends true ? readonly string[] : readonly string[] | undefined : Required extends true ? string : string | undefined;
31
+ /** The compiled field variant a `(kind, cardinality)` pair builds to. */
32
+ type ReferenceFieldOf<Kind extends string, Multiple extends boolean> = Kind extends "entry" ? Multiple extends true ? EntryListMetaBoxField : EntryReferenceMetaBoxField : Kind extends "term" ? Multiple extends true ? TermListMetaBoxField : TermReferenceMetaBoxField : Kind extends "user" ? Multiple extends true ? UserListMetaBoxField : UserMetaBoxField : never;
33
+ interface ReferenceFieldState {
34
+ readonly visibleWhen?: MetaFieldCondition;
35
+ readonly label?: Label;
36
+ readonly description?: Label;
37
+ readonly default?: string | readonly string[];
38
+ readonly required?: true;
39
+ readonly multiple?: true;
40
+ readonly returns?: ReferenceReadProjection;
41
+ readonly max?: number;
42
+ readonly span?: MetaBoxFieldSpan;
43
+ readonly capability?: string;
44
+ readonly showInApi?: true;
45
+ readonly sanitize?: (value: unknown) => unknown;
46
+ readonly validate?: MetaBoxFieldValidate;
47
+ }
48
+ /**
49
+ * Fluent chain shared by the core reference fields (`entry`, `term`,
50
+ * `user`). Immutable — every call returns a fresh instance. The type
51
+ * parameters are the declaration's compile-time state:
52
+ *
53
+ * - `Kind` selects the adapter and, through {@link ReferenceSummaryOf},
54
+ * the hydrated read shape; it also gates the kind-specific scope
55
+ * chains (`.roles()` on `user`, `.status()` / `.includeTrashed()` on
56
+ * `entry`);
57
+ * - `K` is the literal field key;
58
+ * - `Multiple` flips storage + read type to arrays (`.multiple()`);
59
+ * - `Required` narrows the stored shape and, for multi fields, the read
60
+ * type (`.required()`);
61
+ * - `Returns` swaps the hydrated read for the bare id (`.returns("id")`).
62
+ *
63
+ * All phantom — nothing at runtime carries them. Reads default to the
64
+ * hydrated summary so the typed value never lies about what the read
65
+ * pipeline resolves. The scope object lives on the runtime instance,
66
+ * seeded by the factory and refined by the scope chains.
67
+ */
68
+ export declare class ReferenceFieldBuilder<Kind extends string, K extends string = string, Multiple extends boolean = false, Required extends boolean = false, Returns extends "id" | "hydrated" = "hydrated"> implements FieldBuilder {
69
+ #private;
70
+ /** Phantom literal key of the field — type-level only, never assigned. */
71
+ readonly _key: K;
72
+ /** Phantom read type — hydrated summary by default, id after `.returns("id")`. */
73
+ readonly _value: ReferenceReadValue<ReferenceSummaryOf<Kind>, Multiple, Required, Returns>;
74
+ /** Phantom stored shape — bare ids; `.required()` narrows optionality. */
75
+ readonly _stored: ReferenceStoredValue<Multiple, Required>;
76
+ /** Phantom cardinality marker backing the compile-time gate on `.multiple()` / `.max()`. */
77
+ readonly _multiple: Multiple;
78
+ constructor(kind: Kind, key: string, scope: Record<string, unknown>, state?: ReferenceFieldState);
79
+ /**
80
+ * Store an array of ids instead of a single one (`type` flips to
81
+ * `json`, reads become a dense array). Declare cardinality before
82
+ * `.required()` narrows the shapes — the `this`-type gate keeps a
83
+ * post-narrowing `.multiple()` from compiling.
84
+ */
85
+ multiple(this: ReferenceFieldBuilder<Kind, K, false, false, Returns>): ReferenceFieldBuilder<Kind, K, true, false, Returns>;
86
+ /**
87
+ * Cap the array length — multi-value fields only. Carried on the
88
+ * definition and the wire; the constraint walker enforces it server-side.
89
+ */
90
+ max(this: ReferenceFieldBuilder<Kind, K, true, Required, Returns>, max: number): ReferenceFieldBuilder<Kind, K, true, Required, Returns>;
91
+ /**
92
+ * Read the bare stored id(s) instead of the hydrated summary — opts
93
+ * this field out of the read-time hydration join. Storage and the
94
+ * write contract are unaffected.
95
+ */
96
+ returns(shape: "id"): ReferenceFieldBuilder<Kind, K, Multiple, Required, "id">;
97
+ /**
98
+ * Mark the field required — enforced at write time by the constraint
99
+ * walker. Narrows the stored shape; a single reference's read stays
100
+ * optional (targets can orphan after the write).
101
+ */
102
+ required(): ReferenceFieldBuilder<Kind, K, Multiple, true, Returns>;
103
+ /**
104
+ * Restrict an `entry` reference to a lifecycle status (supersedes the
105
+ * `includeTrashed` default). Public-render consumers pass `"published"`
106
+ * so drafts never surface.
107
+ */
108
+ status(this: ReferenceFieldBuilder<"entry", K, Multiple, Required, Returns>, status: EntryStatus): ReferenceFieldBuilder<"entry", K, Multiple, Required, Returns>;
109
+ /** Surface trashed entries in an `entry` reference (default: hidden). */
110
+ includeTrashed(this: ReferenceFieldBuilder<"entry", K, Multiple, Required, Returns>): ReferenceFieldBuilder<"entry", K, Multiple, Required, Returns>;
111
+ /** Restrict a `user` reference to these roles (absent → any role). */
112
+ roles(this: ReferenceFieldBuilder<"user", K, Multiple, Required, Returns>, roles: readonly UserRole[]): ReferenceFieldBuilder<"user", K, Multiple, Required, Returns>;
113
+ /** Surface disabled accounts in a `user` reference (default: hidden). */
114
+ includeDisabled(this: ReferenceFieldBuilder<"user", K, Multiple, Required, Returns>): ReferenceFieldBuilder<"user", K, Multiple, Required, Returns>;
115
+ /** Override the derived (humanized-key) label. */
116
+ label(label: Label): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
117
+ /** Help text rendered under the label. */
118
+ description(description: Label): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
119
+ /**
120
+ * Prefill for absent keys — a stored id (or id array for multi
121
+ * fields), seeded into the admin form. Purely a form/decode seed:
122
+ * a reference read stays optional regardless (the default id can
123
+ * itself orphan).
124
+ */
125
+ default(value: Multiple extends true ? readonly string[] : string): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
126
+ /**
127
+ * Column span within the box's 12-column grid — a universal layout
128
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
129
+ */
130
+ span(span: MetaBoxFieldSpan): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
131
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
132
+ capability(capability: string): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
133
+ /** Opt this field's value into public REST responses (default-deny). */
134
+ showInApi(): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
135
+ /** Rule factory: this field's stored id equals `value`. */
136
+ is(value: string): MetaFieldConditionRule;
137
+ /** Rule factory: this field's stored id differs from `value`. */
138
+ isNot(value: string): MetaFieldConditionRule;
139
+ /** Rule factory: this field has no value (unset or cleared). */
140
+ isEmpty(): MetaFieldConditionRule;
141
+ /** Rule factory: this field has a value. */
142
+ isNotEmpty(): MetaFieldConditionRule;
143
+ /** Rule factory: the selection includes `id` — multi-value only. */
144
+ contains(this: ReferenceFieldBuilder<Kind, K, true, Required, Returns>, id: string): MetaFieldConditionRule;
145
+ /** Rule factory: the selection does not include `id` — multi-value only. */
146
+ notContains(this: ReferenceFieldBuilder<Kind, K, true, Required, Returns>, id: string): MetaFieldConditionRule;
147
+ /**
148
+ * Show this field only when every rule passes (one AND group) — rules
149
+ * come from sibling fields' condition factories. Replaces any
150
+ * previously declared condition; `.orVisibleWhen()` adds alternatives.
151
+ */
152
+ visibleWhen(...rules: MetaFieldConditionRule[]): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
153
+ /** Add an OR alternative — one more AND group of rules. */
154
+ orVisibleWhen(...rules: MetaFieldConditionRule[]): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
155
+ /**
156
+ * Normalising transform, applied after coercion and before
157
+ * persistence. Receives the stored id(s) — the read-time hydration is
158
+ * a separate, later step.
159
+ */
160
+ sanitize(sanitize: (value: unknown) => unknown): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
161
+ /**
162
+ * Custom validation — `true` for valid, or an i18n-able failure
163
+ * message (sync or async). Runs after `.sanitize()` and the
164
+ * declarative constraints.
165
+ */
166
+ validate(validate: MetaBoxFieldValidate): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
167
+ /** Compile the chain into the wire/manifest field definition. */
168
+ build(): ReferenceFieldOf<Kind, Multiple>;
169
+ }
170
+ export {};
171
+ //# sourceMappingURL=reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/reference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,193 @@
1
+ var _a;
2
+ import { humanizeFieldKey } from "./builder.js";
3
+ /**
4
+ * Fluent chain shared by the core reference fields (`entry`, `term`,
5
+ * `user`). Immutable — every call returns a fresh instance. The type
6
+ * parameters are the declaration's compile-time state:
7
+ *
8
+ * - `Kind` selects the adapter and, through {@link ReferenceSummaryOf},
9
+ * the hydrated read shape; it also gates the kind-specific scope
10
+ * chains (`.roles()` on `user`, `.status()` / `.includeTrashed()` on
11
+ * `entry`);
12
+ * - `K` is the literal field key;
13
+ * - `Multiple` flips storage + read type to arrays (`.multiple()`);
14
+ * - `Required` narrows the stored shape and, for multi fields, the read
15
+ * type (`.required()`);
16
+ * - `Returns` swaps the hydrated read for the bare id (`.returns("id")`).
17
+ *
18
+ * All phantom — nothing at runtime carries them. Reads default to the
19
+ * hydrated summary so the typed value never lies about what the read
20
+ * pipeline resolves. The scope object lives on the runtime instance,
21
+ * seeded by the factory and refined by the scope chains.
22
+ */
23
+ export class ReferenceFieldBuilder {
24
+ #kind;
25
+ #key;
26
+ #scope;
27
+ #state;
28
+ constructor(kind, key, scope, state = {}) {
29
+ this.#kind = kind;
30
+ this.#key = key;
31
+ this.#scope = scope;
32
+ this.#state = state;
33
+ }
34
+ #fork(patch, scopePatch) {
35
+ return new _a(this.#kind, this.#key, scopePatch ? { ...this.#scope, ...scopePatch } : this.#scope, { ...this.#state, ...patch });
36
+ }
37
+ /**
38
+ * Store an array of ids instead of a single one (`type` flips to
39
+ * `json`, reads become a dense array). Declare cardinality before
40
+ * `.required()` narrows the shapes — the `this`-type gate keeps a
41
+ * post-narrowing `.multiple()` from compiling.
42
+ */
43
+ multiple() {
44
+ return this.#fork({ multiple: true });
45
+ }
46
+ /**
47
+ * Cap the array length — multi-value fields only. Carried on the
48
+ * definition and the wire; the constraint walker enforces it server-side.
49
+ */
50
+ max(max) {
51
+ return this.#fork({ max });
52
+ }
53
+ /**
54
+ * Read the bare stored id(s) instead of the hydrated summary — opts
55
+ * this field out of the read-time hydration join. Storage and the
56
+ * write contract are unaffected.
57
+ */
58
+ returns(shape) {
59
+ return this.#fork({ returns: shape });
60
+ }
61
+ /**
62
+ * Mark the field required — enforced at write time by the constraint
63
+ * walker. Narrows the stored shape; a single reference's read stays
64
+ * optional (targets can orphan after the write).
65
+ */
66
+ required() {
67
+ return this.#fork({ required: true });
68
+ }
69
+ /**
70
+ * Restrict an `entry` reference to a lifecycle status (supersedes the
71
+ * `includeTrashed` default). Public-render consumers pass `"published"`
72
+ * so drafts never surface.
73
+ */
74
+ status(status) {
75
+ return this.#fork({}, { status });
76
+ }
77
+ /** Surface trashed entries in an `entry` reference (default: hidden). */
78
+ includeTrashed() {
79
+ return this.#fork({}, { includeTrashed: true });
80
+ }
81
+ /** Restrict a `user` reference to these roles (absent → any role). */
82
+ roles(roles) {
83
+ return this.#fork({}, { roles });
84
+ }
85
+ /** Surface disabled accounts in a `user` reference (default: hidden). */
86
+ includeDisabled() {
87
+ return this.#fork({}, { includeDisabled: true });
88
+ }
89
+ /** Override the derived (humanized-key) label. */
90
+ label(label) {
91
+ return this.#fork({ label });
92
+ }
93
+ /** Help text rendered under the label. */
94
+ description(description) {
95
+ return this.#fork({ description });
96
+ }
97
+ /**
98
+ * Prefill for absent keys — a stored id (or id array for multi
99
+ * fields), seeded into the admin form. Purely a form/decode seed:
100
+ * a reference read stays optional regardless (the default id can
101
+ * itself orphan).
102
+ */
103
+ default(value) {
104
+ return this.#fork({ default: value });
105
+ }
106
+ /**
107
+ * Column span within the box's 12-column grid — a universal layout
108
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
109
+ */
110
+ span(span) {
111
+ return this.#fork({ span });
112
+ }
113
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
114
+ capability(capability) {
115
+ return this.#fork({ capability });
116
+ }
117
+ /** Opt this field's value into public REST responses (default-deny). */
118
+ showInApi() {
119
+ return this.#fork({ showInApi: true });
120
+ }
121
+ /** Rule factory: this field's stored id equals `value`. */
122
+ is(value) {
123
+ return { key: this.#key, op: "eq", value };
124
+ }
125
+ /** Rule factory: this field's stored id differs from `value`. */
126
+ isNot(value) {
127
+ return { key: this.#key, op: "neq", value };
128
+ }
129
+ /** Rule factory: this field has no value (unset or cleared). */
130
+ isEmpty() {
131
+ return { key: this.#key, op: "empty" };
132
+ }
133
+ /** Rule factory: this field has a value. */
134
+ isNotEmpty() {
135
+ return { key: this.#key, op: "not_empty" };
136
+ }
137
+ /** Rule factory: the selection includes `id` — multi-value only. */
138
+ contains(id) {
139
+ return { key: this.#key, op: "contains", value: id };
140
+ }
141
+ /** Rule factory: the selection does not include `id` — multi-value only. */
142
+ notContains(id) {
143
+ return { key: this.#key, op: "not_contains", value: id };
144
+ }
145
+ /**
146
+ * Show this field only when every rule passes (one AND group) — rules
147
+ * come from sibling fields' condition factories. Replaces any
148
+ * previously declared condition; `.orVisibleWhen()` adds alternatives.
149
+ */
150
+ visibleWhen(...rules) {
151
+ return this.#fork({ visibleWhen: [rules] });
152
+ }
153
+ /** Add an OR alternative — one more AND group of rules. */
154
+ orVisibleWhen(...rules) {
155
+ return this.#fork({
156
+ visibleWhen: [...(this.#state.visibleWhen ?? []), rules],
157
+ });
158
+ }
159
+ /**
160
+ * Normalising transform, applied after coercion and before
161
+ * persistence. Receives the stored id(s) — the read-time hydration is
162
+ * a separate, later step.
163
+ */
164
+ sanitize(sanitize) {
165
+ return this.#fork({ sanitize });
166
+ }
167
+ /**
168
+ * Custom validation — `true` for valid, or an i18n-able failure
169
+ * message (sync or async). Runs after `.sanitize()` and the
170
+ * declarative constraints.
171
+ */
172
+ validate(validate) {
173
+ return this.#fork({ validate });
174
+ }
175
+ /** Compile the chain into the wire/manifest field definition. */
176
+ build() {
177
+ const { multiple, ...state } = this.#state;
178
+ const target = multiple
179
+ ? { kind: this.#kind, scope: this.#scope, multiple: true }
180
+ : { kind: this.#kind, scope: this.#scope };
181
+ const field = {
182
+ ...state,
183
+ key: this.#key,
184
+ label: state.label ?? humanizeFieldKey(this.#key),
185
+ type: multiple ? "json" : "string",
186
+ inputType: multiple ? `${this.#kind}List` : this.#kind,
187
+ referenceTarget: target,
188
+ };
189
+ return field;
190
+ }
191
+ }
192
+ _a = ReferenceFieldBuilder;
193
+ //# sourceMappingURL=reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../src/plugin/fields/reference.ts"],"names":[],"mappings":"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"}