@plumix/core 0.5.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 (454) 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/context/app.d.ts +12 -0
  6. package/dist/context/app.d.ts.map +1 -1
  7. package/dist/context/app.js +10 -4
  8. package/dist/context/app.js.map +1 -1
  9. package/dist/context/memo.d.ts +22 -0
  10. package/dist/context/memo.d.ts.map +1 -0
  11. package/dist/context/memo.js +27 -0
  12. package/dist/context/memo.js.map +1 -0
  13. package/dist/context/traced-slots.d.ts +17 -0
  14. package/dist/context/traced-slots.d.ts.map +1 -0
  15. package/dist/context/traced-slots.js +57 -0
  16. package/dist/context/traced-slots.js.map +1 -0
  17. package/dist/entries/read-service.d.ts +6 -0
  18. package/dist/entries/read-service.d.ts.map +1 -1
  19. package/dist/entries/read-service.js +19 -3
  20. package/dist/entries/read-service.js.map +1 -1
  21. package/dist/index.d.ts +6 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +3 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/plugin/errors.d.ts +7 -1
  26. package/dist/plugin/errors.d.ts.map +1 -1
  27. package/dist/plugin/errors.js +5 -0
  28. package/dist/plugin/errors.js.map +1 -1
  29. package/dist/plugin/fields/builder.d.ts +106 -0
  30. package/dist/plugin/fields/builder.d.ts.map +1 -0
  31. package/dist/plugin/fields/builder.js +162 -0
  32. package/dist/plugin/fields/builder.js.map +1 -0
  33. package/dist/plugin/fields/color.d.ts +78 -18
  34. package/dist/plugin/fields/color.d.ts.map +1 -1
  35. package/dist/plugin/fields/color.js +116 -25
  36. package/dist/plugin/fields/color.js.map +1 -1
  37. package/dist/plugin/fields/condition.d.ts +40 -0
  38. package/dist/plugin/fields/condition.d.ts.map +1 -0
  39. package/dist/plugin/fields/condition.js +115 -0
  40. package/dist/plugin/fields/condition.js.map +1 -0
  41. package/dist/plugin/fields/contributions.d.ts +233 -0
  42. package/dist/plugin/fields/contributions.d.ts.map +1 -0
  43. package/dist/plugin/fields/contributions.js +1 -0
  44. package/dist/plugin/fields/contributions.js.map +1 -0
  45. package/dist/plugin/fields/entry.d.ts +24 -20
  46. package/dist/plugin/fields/entry.d.ts.map +1 -1
  47. package/dist/plugin/fields/entry.js +13 -21
  48. package/dist/plugin/fields/entry.js.map +1 -1
  49. package/dist/plugin/fields/errors.d.ts +23 -11
  50. package/dist/plugin/fields/errors.d.ts.map +1 -1
  51. package/dist/plugin/fields/errors.js +20 -13
  52. package/dist/plugin/fields/errors.js.map +1 -1
  53. package/dist/plugin/fields/group.d.ts +90 -0
  54. package/dist/plugin/fields/group.d.ts.map +1 -0
  55. package/dist/plugin/fields/group.js +124 -0
  56. package/dist/plugin/fields/group.js.map +1 -0
  57. package/dist/plugin/fields/index.d.ts +22 -45
  58. package/dist/plugin/fields/index.d.ts.map +1 -1
  59. package/dist/plugin/fields/index.js +25 -30
  60. package/dist/plugin/fields/index.js.map +1 -1
  61. package/dist/plugin/fields/json.d.ts +71 -9
  62. package/dist/plugin/fields/json.d.ts.map +1 -1
  63. package/dist/plugin/fields/json.js +110 -16
  64. package/dist/plugin/fields/json.js.map +1 -1
  65. package/dist/plugin/fields/link.d.ts +96 -0
  66. package/dist/plugin/fields/link.d.ts.map +1 -0
  67. package/dist/plugin/fields/link.js +160 -0
  68. package/dist/plugin/fields/link.js.map +1 -0
  69. package/dist/plugin/fields/number.d.ts +86 -13
  70. package/dist/plugin/fields/number.d.ts.map +1 -1
  71. package/dist/plugin/fields/number.js +133 -20
  72. package/dist/plugin/fields/number.js.map +1 -1
  73. package/dist/plugin/fields/range.d.ts +101 -17
  74. package/dist/plugin/fields/range.d.ts.map +1 -1
  75. package/dist/plugin/fields/range.js +153 -38
  76. package/dist/plugin/fields/range.js.map +1 -1
  77. package/dist/plugin/fields/reference.d.ts +171 -0
  78. package/dist/plugin/fields/reference.d.ts.map +1 -0
  79. package/dist/plugin/fields/reference.js +193 -0
  80. package/dist/plugin/fields/reference.js.map +1 -0
  81. package/dist/plugin/fields/repeater.d.ts +111 -8
  82. package/dist/plugin/fields/repeater.d.ts.map +1 -1
  83. package/dist/plugin/fields/repeater.js +157 -66
  84. package/dist/plugin/fields/repeater.js.map +1 -1
  85. package/dist/plugin/fields/richtext-validate.d.ts +7 -0
  86. package/dist/plugin/fields/richtext-validate.d.ts.map +1 -1
  87. package/dist/plugin/fields/richtext-validate.js +11 -5
  88. package/dist/plugin/fields/richtext-validate.js.map +1 -1
  89. package/dist/plugin/fields/richtext.d.ts +78 -12
  90. package/dist/plugin/fields/richtext.d.ts.map +1 -1
  91. package/dist/plugin/fields/richtext.js +121 -26
  92. package/dist/plugin/fields/richtext.js.map +1 -1
  93. package/dist/plugin/fields/select.d.ts +150 -10
  94. package/dist/plugin/fields/select.d.ts.map +1 -1
  95. package/dist/plugin/fields/select.js +205 -17
  96. package/dist/plugin/fields/select.js.map +1 -1
  97. package/dist/plugin/fields/sub-fields.d.ts +12 -0
  98. package/dist/plugin/fields/sub-fields.d.ts.map +1 -0
  99. package/dist/plugin/fields/sub-fields.js +62 -0
  100. package/dist/plugin/fields/sub-fields.js.map +1 -0
  101. package/dist/plugin/fields/temporal.d.ts +124 -0
  102. package/dist/plugin/fields/temporal.d.ts.map +1 -0
  103. package/dist/plugin/fields/temporal.js +180 -0
  104. package/dist/plugin/fields/temporal.js.map +1 -0
  105. package/dist/plugin/fields/term.d.ts +11 -16
  106. package/dist/plugin/fields/term.d.ts.map +1 -1
  107. package/dist/plugin/fields/term.js +11 -19
  108. package/dist/plugin/fields/term.js.map +1 -1
  109. package/dist/plugin/fields/toggle.d.ts +97 -0
  110. package/dist/plugin/fields/toggle.d.ts.map +1 -0
  111. package/dist/plugin/fields/toggle.js +135 -0
  112. package/dist/plugin/fields/toggle.js.map +1 -0
  113. package/dist/plugin/fields/user.d.ts +14 -26
  114. package/dist/plugin/fields/user.d.ts.map +1 -1
  115. package/dist/plugin/fields/user.js +11 -25
  116. package/dist/plugin/fields/user.js.map +1 -1
  117. package/dist/plugin/lookup.d.ts +74 -10
  118. package/dist/plugin/lookup.d.ts.map +1 -1
  119. package/dist/plugin/manifest.d.ts +319 -160
  120. package/dist/plugin/manifest.d.ts.map +1 -1
  121. package/dist/plugin/manifest.js +94 -4
  122. package/dist/plugin/manifest.js.map +1 -1
  123. package/dist/plugin/setup-context.d.ts +10 -4
  124. package/dist/plugin/setup-context.d.ts.map +1 -1
  125. package/dist/plugin/setup-context.js +10 -3
  126. package/dist/plugin/setup-context.js.map +1 -1
  127. package/dist/plugin/validation/meta-box-fields.d.ts.map +1 -1
  128. package/dist/plugin/validation/meta-box-fields.js +16 -0
  129. package/dist/plugin/validation/meta-box-fields.js.map +1 -1
  130. package/dist/route/render/asset-manifest.d.ts +1 -1
  131. package/dist/route/render/asset-manifest.d.ts.map +1 -1
  132. package/dist/route/render/asset-manifest.js +7 -1
  133. package/dist/route/render/asset-manifest.js.map +1 -1
  134. package/dist/route/render/build-resolved-entries.d.ts.map +1 -1
  135. package/dist/route/render/build-resolved-entries.js +25 -12
  136. package/dist/route/render/build-resolved-entries.js.map +1 -1
  137. package/dist/route/render/render-template.d.ts +1 -1
  138. package/dist/route/render/render-template.d.ts.map +1 -1
  139. package/dist/route/render/render-template.js +50 -23
  140. package/dist/route/render/render-template.js.map +1 -1
  141. package/dist/route/render/template-builders.d.ts +15 -10
  142. package/dist/route/render/template-builders.d.ts.map +1 -1
  143. package/dist/route/render/template-builders.js.map +1 -1
  144. package/dist/rpc/base.d.ts +7 -0
  145. package/dist/rpc/base.d.ts.map +1 -1
  146. package/dist/rpc/errors.d.ts +7 -0
  147. package/dist/rpc/errors.d.ts.map +1 -1
  148. package/dist/rpc/errors.js +16 -0
  149. package/dist/rpc/errors.js.map +1 -1
  150. package/dist/rpc/meta/core.d.ts +92 -14
  151. package/dist/rpc/meta/core.d.ts.map +1 -1
  152. package/dist/rpc/meta/core.js +524 -406
  153. package/dist/rpc/meta/core.js.map +1 -1
  154. package/dist/rpc/meta/field-messages.d.ts +67 -0
  155. package/dist/rpc/meta/field-messages.d.ts.map +1 -0
  156. package/dist/rpc/meta/field-messages.js +67 -0
  157. package/dist/rpc/meta/field-messages.js.map +1 -0
  158. package/dist/rpc/meta/field-pipeline.d.ts +52 -0
  159. package/dist/rpc/meta/field-pipeline.d.ts.map +1 -0
  160. package/dist/rpc/meta/field-pipeline.js +501 -0
  161. package/dist/rpc/meta/field-pipeline.js.map +1 -0
  162. package/dist/rpc/procedures/auth/allowed-domains/create.d.ts +7 -0
  163. package/dist/rpc/procedures/auth/allowed-domains/create.d.ts.map +1 -1
  164. package/dist/rpc/procedures/auth/allowed-domains/delete.d.ts +7 -0
  165. package/dist/rpc/procedures/auth/allowed-domains/delete.d.ts.map +1 -1
  166. package/dist/rpc/procedures/auth/allowed-domains/index.d.ts +28 -0
  167. package/dist/rpc/procedures/auth/allowed-domains/index.d.ts.map +1 -1
  168. package/dist/rpc/procedures/auth/allowed-domains/list.d.ts +7 -0
  169. package/dist/rpc/procedures/auth/allowed-domains/list.d.ts.map +1 -1
  170. package/dist/rpc/procedures/auth/allowed-domains/update.d.ts +7 -0
  171. package/dist/rpc/procedures/auth/allowed-domains/update.d.ts.map +1 -1
  172. package/dist/rpc/procedures/auth/api-tokens/admin-list.d.ts +7 -0
  173. package/dist/rpc/procedures/auth/api-tokens/admin-list.d.ts.map +1 -1
  174. package/dist/rpc/procedures/auth/api-tokens/admin-revoke.d.ts +7 -0
  175. package/dist/rpc/procedures/auth/api-tokens/admin-revoke.d.ts.map +1 -1
  176. package/dist/rpc/procedures/auth/api-tokens/create.d.ts +7 -0
  177. package/dist/rpc/procedures/auth/api-tokens/create.d.ts.map +1 -1
  178. package/dist/rpc/procedures/auth/api-tokens/index.d.ts +35 -0
  179. package/dist/rpc/procedures/auth/api-tokens/index.d.ts.map +1 -1
  180. package/dist/rpc/procedures/auth/api-tokens/list.d.ts +7 -0
  181. package/dist/rpc/procedures/auth/api-tokens/list.d.ts.map +1 -1
  182. package/dist/rpc/procedures/auth/api-tokens/revoke.d.ts +7 -0
  183. package/dist/rpc/procedures/auth/api-tokens/revoke.d.ts.map +1 -1
  184. package/dist/rpc/procedures/auth/credentials/delete.d.ts +7 -0
  185. package/dist/rpc/procedures/auth/credentials/delete.d.ts.map +1 -1
  186. package/dist/rpc/procedures/auth/credentials/index.d.ts +21 -0
  187. package/dist/rpc/procedures/auth/credentials/index.d.ts.map +1 -1
  188. package/dist/rpc/procedures/auth/credentials/list.d.ts +7 -0
  189. package/dist/rpc/procedures/auth/credentials/list.d.ts.map +1 -1
  190. package/dist/rpc/procedures/auth/credentials/rename.d.ts +7 -0
  191. package/dist/rpc/procedures/auth/credentials/rename.d.ts.map +1 -1
  192. package/dist/rpc/procedures/auth/device-flow/approve.d.ts +7 -0
  193. package/dist/rpc/procedures/auth/device-flow/approve.d.ts.map +1 -1
  194. package/dist/rpc/procedures/auth/device-flow/deny.d.ts +7 -0
  195. package/dist/rpc/procedures/auth/device-flow/deny.d.ts.map +1 -1
  196. package/dist/rpc/procedures/auth/device-flow/index.d.ts +21 -0
  197. package/dist/rpc/procedures/auth/device-flow/index.d.ts.map +1 -1
  198. package/dist/rpc/procedures/auth/device-flow/lookup.d.ts +7 -0
  199. package/dist/rpc/procedures/auth/device-flow/lookup.d.ts.map +1 -1
  200. package/dist/rpc/procedures/auth/index.d.ts +154 -0
  201. package/dist/rpc/procedures/auth/index.d.ts.map +1 -1
  202. package/dist/rpc/procedures/auth/login-links.d.ts +7 -0
  203. package/dist/rpc/procedures/auth/login-links.d.ts.map +1 -1
  204. package/dist/rpc/procedures/auth/mailer/index.d.ts +7 -0
  205. package/dist/rpc/procedures/auth/mailer/index.d.ts.map +1 -1
  206. package/dist/rpc/procedures/auth/mailer/test-send.d.ts +7 -0
  207. package/dist/rpc/procedures/auth/mailer/test-send.d.ts.map +1 -1
  208. package/dist/rpc/procedures/auth/oauth-providers.d.ts +7 -0
  209. package/dist/rpc/procedures/auth/oauth-providers.d.ts.map +1 -1
  210. package/dist/rpc/procedures/auth/session.d.ts +7 -0
  211. package/dist/rpc/procedures/auth/session.d.ts.map +1 -1
  212. package/dist/rpc/procedures/auth/sessions/index.d.ts +21 -0
  213. package/dist/rpc/procedures/auth/sessions/index.d.ts.map +1 -1
  214. package/dist/rpc/procedures/auth/sessions/list.d.ts +7 -0
  215. package/dist/rpc/procedures/auth/sessions/list.d.ts.map +1 -1
  216. package/dist/rpc/procedures/auth/sessions/revoke-others.d.ts +7 -0
  217. package/dist/rpc/procedures/auth/sessions/revoke-others.d.ts.map +1 -1
  218. package/dist/rpc/procedures/auth/sessions/revoke.d.ts +7 -0
  219. package/dist/rpc/procedures/auth/sessions/revoke.d.ts.map +1 -1
  220. package/dist/rpc/procedures/entry/activity.d.ts +7 -0
  221. package/dist/rpc/procedures/entry/activity.d.ts.map +1 -1
  222. package/dist/rpc/procedures/entry/bulk.d.ts +21 -0
  223. package/dist/rpc/procedures/entry/bulk.d.ts.map +1 -1
  224. package/dist/rpc/procedures/entry/create-preview-link.d.ts +7 -0
  225. package/dist/rpc/procedures/entry/create-preview-link.d.ts.map +1 -1
  226. package/dist/rpc/procedures/entry/create.d.ts +8 -1
  227. package/dist/rpc/procedures/entry/create.d.ts.map +1 -1
  228. package/dist/rpc/procedures/entry/create.js +8 -8
  229. package/dist/rpc/procedures/entry/create.js.map +1 -1
  230. package/dist/rpc/procedures/entry/dashboard.d.ts +14 -0
  231. package/dist/rpc/procedures/entry/dashboard.d.ts.map +1 -1
  232. package/dist/rpc/procedures/entry/delete-permanent.d.ts +7 -0
  233. package/dist/rpc/procedures/entry/delete-permanent.d.ts.map +1 -1
  234. package/dist/rpc/procedures/entry/discard-draft.d.ts +7 -0
  235. package/dist/rpc/procedures/entry/discard-draft.d.ts.map +1 -1
  236. package/dist/rpc/procedures/entry/duplicate.d.ts +7 -0
  237. package/dist/rpc/procedures/entry/duplicate.d.ts.map +1 -1
  238. package/dist/rpc/procedures/entry/duplicate.js +2 -2
  239. package/dist/rpc/procedures/entry/duplicate.js.map +1 -1
  240. package/dist/rpc/procedures/entry/get.d.ts +7 -0
  241. package/dist/rpc/procedures/entry/get.d.ts.map +1 -1
  242. package/dist/rpc/procedures/entry/get.js +2 -2
  243. package/dist/rpc/procedures/entry/get.js.map +1 -1
  244. package/dist/rpc/procedures/entry/index.d.ts +156 -2
  245. package/dist/rpc/procedures/entry/index.d.ts.map +1 -1
  246. package/dist/rpc/procedures/entry/list.d.ts +7 -0
  247. package/dist/rpc/procedures/entry/list.d.ts.map +1 -1
  248. package/dist/rpc/procedures/entry/lookup.d.ts +8 -2
  249. package/dist/rpc/procedures/entry/lookup.d.ts.map +1 -1
  250. package/dist/rpc/procedures/entry/lookup.js +74 -12
  251. package/dist/rpc/procedures/entry/lookup.js.map +1 -1
  252. package/dist/rpc/procedures/entry/meta.d.ts +37 -3
  253. package/dist/rpc/procedures/entry/meta.d.ts.map +1 -1
  254. package/dist/rpc/procedures/entry/meta.js +63 -7
  255. package/dist/rpc/procedures/entry/meta.js.map +1 -1
  256. package/dist/rpc/procedures/entry/publish.d.ts +7 -0
  257. package/dist/rpc/procedures/entry/publish.d.ts.map +1 -1
  258. package/dist/rpc/procedures/entry/publish.js +6 -4
  259. package/dist/rpc/procedures/entry/publish.js.map +1 -1
  260. package/dist/rpc/procedures/entry/refresh-block-loader.d.ts +7 -0
  261. package/dist/rpc/procedures/entry/refresh-block-loader.d.ts.map +1 -1
  262. package/dist/rpc/procedures/entry/restore.d.ts +7 -0
  263. package/dist/rpc/procedures/entry/restore.d.ts.map +1 -1
  264. package/dist/rpc/procedures/entry/revisions.d.ts +56 -0
  265. package/dist/rpc/procedures/entry/revisions.d.ts.map +1 -1
  266. package/dist/rpc/procedures/entry/schemas.d.ts +2 -2
  267. package/dist/rpc/procedures/entry/schemas.d.ts.map +1 -1
  268. package/dist/rpc/procedures/entry/schemas.js +9 -2
  269. package/dist/rpc/procedures/entry/schemas.js.map +1 -1
  270. package/dist/rpc/procedures/entry/trash.d.ts +7 -0
  271. package/dist/rpc/procedures/entry/trash.d.ts.map +1 -1
  272. package/dist/rpc/procedures/entry/update.d.ts +8 -1
  273. package/dist/rpc/procedures/entry/update.d.ts.map +1 -1
  274. package/dist/rpc/procedures/entry/update.js +77 -18
  275. package/dist/rpc/procedures/entry/update.js.map +1 -1
  276. package/dist/rpc/procedures/lookup/index.d.ts +14 -0
  277. package/dist/rpc/procedures/lookup/index.d.ts.map +1 -1
  278. package/dist/rpc/procedures/lookup/list.d.ts +7 -0
  279. package/dist/rpc/procedures/lookup/list.d.ts.map +1 -1
  280. package/dist/rpc/procedures/lookup/resolve.d.ts +7 -0
  281. package/dist/rpc/procedures/lookup/resolve.d.ts.map +1 -1
  282. package/dist/rpc/procedures/lookup/resolve.js +1 -1
  283. package/dist/rpc/procedures/lookup/resolve.js.map +1 -1
  284. package/dist/rpc/procedures/lookup.errors.d.ts +2 -1
  285. package/dist/rpc/procedures/lookup.errors.d.ts.map +1 -1
  286. package/dist/rpc/procedures/lookup.errors.js +3 -0
  287. package/dist/rpc/procedures/lookup.errors.js.map +1 -1
  288. package/dist/rpc/procedures/search/index.d.ts +7 -0
  289. package/dist/rpc/procedures/search/index.d.ts.map +1 -1
  290. package/dist/rpc/procedures/settings/get.d.ts +7 -0
  291. package/dist/rpc/procedures/settings/get.d.ts.map +1 -1
  292. package/dist/rpc/procedures/settings/index.d.ts +14 -0
  293. package/dist/rpc/procedures/settings/index.d.ts.map +1 -1
  294. package/dist/rpc/procedures/settings/upsert.d.ts +7 -0
  295. package/dist/rpc/procedures/settings/upsert.d.ts.map +1 -1
  296. package/dist/rpc/procedures/settings/upsert.js +9 -0
  297. package/dist/rpc/procedures/settings/upsert.js.map +1 -1
  298. package/dist/rpc/procedures/term/create.d.ts +7 -0
  299. package/dist/rpc/procedures/term/create.d.ts.map +1 -1
  300. package/dist/rpc/procedures/term/create.js +3 -3
  301. package/dist/rpc/procedures/term/create.js.map +1 -1
  302. package/dist/rpc/procedures/term/delete.d.ts +7 -0
  303. package/dist/rpc/procedures/term/delete.d.ts.map +1 -1
  304. package/dist/rpc/procedures/term/get.d.ts +7 -0
  305. package/dist/rpc/procedures/term/get.d.ts.map +1 -1
  306. package/dist/rpc/procedures/term/index.d.ts +35 -0
  307. package/dist/rpc/procedures/term/index.d.ts.map +1 -1
  308. package/dist/rpc/procedures/term/list.d.ts +7 -0
  309. package/dist/rpc/procedures/term/list.d.ts.map +1 -1
  310. package/dist/rpc/procedures/term/lookup.d.ts +7 -2
  311. package/dist/rpc/procedures/term/lookup.d.ts.map +1 -1
  312. package/dist/rpc/procedures/term/lookup.js +29 -8
  313. package/dist/rpc/procedures/term/lookup.js.map +1 -1
  314. package/dist/rpc/procedures/term/meta.d.ts +3 -2
  315. package/dist/rpc/procedures/term/meta.d.ts.map +1 -1
  316. package/dist/rpc/procedures/term/meta.js +7 -5
  317. package/dist/rpc/procedures/term/meta.js.map +1 -1
  318. package/dist/rpc/procedures/term/update.d.ts +7 -0
  319. package/dist/rpc/procedures/term/update.d.ts.map +1 -1
  320. package/dist/rpc/procedures/term/update.js +4 -4
  321. package/dist/rpc/procedures/term/update.js.map +1 -1
  322. package/dist/rpc/procedures/user/cancel-email-change.d.ts +7 -0
  323. package/dist/rpc/procedures/user/cancel-email-change.d.ts.map +1 -1
  324. package/dist/rpc/procedures/user/delete.d.ts +7 -0
  325. package/dist/rpc/procedures/user/delete.d.ts.map +1 -1
  326. package/dist/rpc/procedures/user/disable.d.ts +7 -0
  327. package/dist/rpc/procedures/user/disable.d.ts.map +1 -1
  328. package/dist/rpc/procedures/user/enable.d.ts +7 -0
  329. package/dist/rpc/procedures/user/enable.d.ts.map +1 -1
  330. package/dist/rpc/procedures/user/get.d.ts +7 -0
  331. package/dist/rpc/procedures/user/get.d.ts.map +1 -1
  332. package/dist/rpc/procedures/user/get.js +2 -2
  333. package/dist/rpc/procedures/user/get.js.map +1 -1
  334. package/dist/rpc/procedures/user/index.d.ts +77 -0
  335. package/dist/rpc/procedures/user/index.d.ts.map +1 -1
  336. package/dist/rpc/procedures/user/invite.d.ts +7 -0
  337. package/dist/rpc/procedures/user/invite.d.ts.map +1 -1
  338. package/dist/rpc/procedures/user/list.d.ts +7 -0
  339. package/dist/rpc/procedures/user/list.d.ts.map +1 -1
  340. package/dist/rpc/procedures/user/lookup.d.ts +6 -2
  341. package/dist/rpc/procedures/user/lookup.d.ts.map +1 -1
  342. package/dist/rpc/procedures/user/lookup.js +29 -0
  343. package/dist/rpc/procedures/user/lookup.js.map +1 -1
  344. package/dist/rpc/procedures/user/meta.d.ts +3 -2
  345. package/dist/rpc/procedures/user/meta.d.ts.map +1 -1
  346. package/dist/rpc/procedures/user/meta.js +7 -5
  347. package/dist/rpc/procedures/user/meta.js.map +1 -1
  348. package/dist/rpc/procedures/user/pending-email-change.d.ts +7 -0
  349. package/dist/rpc/procedures/user/pending-email-change.d.ts.map +1 -1
  350. package/dist/rpc/procedures/user/request-email-change.d.ts +7 -0
  351. package/dist/rpc/procedures/user/request-email-change.d.ts.map +1 -1
  352. package/dist/rpc/procedures/user/set-locale.d.ts +7 -0
  353. package/dist/rpc/procedures/user/set-locale.d.ts.map +1 -1
  354. package/dist/rpc/procedures/user/update.d.ts +7 -0
  355. package/dist/rpc/procedures/user/update.d.ts.map +1 -1
  356. package/dist/rpc/procedures/user/update.js +4 -4
  357. package/dist/rpc/procedures/user/update.js.map +1 -1
  358. package/dist/rpc/router.d.ts +457 -2
  359. package/dist/rpc/router.d.ts.map +1 -1
  360. package/dist/rpc/validation.d.ts +1 -0
  361. package/dist/rpc/validation.d.ts.map +1 -1
  362. package/dist/rpc/validation.js +1 -0
  363. package/dist/rpc/validation.js.map +1 -1
  364. package/dist/runtime/dispatcher.d.ts.map +1 -1
  365. package/dist/runtime/dispatcher.js +90 -39
  366. package/dist/runtime/dispatcher.js.map +1 -1
  367. package/dist/seo/feed.d.ts.map +1 -1
  368. package/dist/seo/feed.js +7 -1
  369. package/dist/seo/feed.js.map +1 -1
  370. package/dist/settings-core.js +1 -1
  371. package/dist/settings-core.js.map +1 -1
  372. package/dist/telemetry-otel.d.ts +29 -0
  373. package/dist/telemetry-otel.d.ts.map +1 -0
  374. package/dist/telemetry-otel.js +218 -0
  375. package/dist/telemetry-otel.js.map +1 -0
  376. package/dist/template-deps-core.d.ts.map +1 -1
  377. package/dist/template-deps-core.js +31 -14
  378. package/dist/template-deps-core.js.map +1 -1
  379. package/dist/template-deps.d.ts.map +1 -1
  380. package/dist/template-deps.js +12 -8
  381. package/dist/template-deps.js.map +1 -1
  382. package/dist/template-registry.d.ts +0 -16
  383. package/dist/template-registry.d.ts.map +1 -1
  384. package/dist/terms/read-service.js +2 -2
  385. package/dist/terms/read-service.js.map +1 -1
  386. package/dist/test/index.d.ts +3 -0
  387. package/dist/test/index.d.ts.map +1 -1
  388. package/dist/test/index.js +4 -0
  389. package/dist/test/index.js.map +1 -1
  390. package/dist/test/traced-context.d.ts +17 -0
  391. package/dist/test/traced-context.d.ts.map +1 -0
  392. package/dist/test/traced-context.js +28 -0
  393. package/dist/test/traced-context.js.map +1 -0
  394. package/package.json +6 -2
  395. package/dist/plugin/fields/checkbox.d.ts +0 -19
  396. package/dist/plugin/fields/checkbox.d.ts.map +0 -1
  397. package/dist/plugin/fields/checkbox.js +0 -20
  398. package/dist/plugin/fields/checkbox.js.map +0 -1
  399. package/dist/plugin/fields/date.d.ts +0 -24
  400. package/dist/plugin/fields/date.d.ts.map +0 -1
  401. package/dist/plugin/fields/date.js +0 -23
  402. package/dist/plugin/fields/date.js.map +0 -1
  403. package/dist/plugin/fields/datetime.d.ts +0 -26
  404. package/dist/plugin/fields/datetime.d.ts.map +0 -1
  405. package/dist/plugin/fields/datetime.js +0 -25
  406. package/dist/plugin/fields/datetime.js.map +0 -1
  407. package/dist/plugin/fields/email.d.ts +0 -17
  408. package/dist/plugin/fields/email.d.ts.map +0 -1
  409. package/dist/plugin/fields/email.js +0 -18
  410. package/dist/plugin/fields/email.js.map +0 -1
  411. package/dist/plugin/fields/entry-list.d.ts +0 -28
  412. package/dist/plugin/fields/entry-list.d.ts.map +0 -1
  413. package/dist/plugin/fields/entry-list.js +0 -31
  414. package/dist/plugin/fields/entry-list.js.map +0 -1
  415. package/dist/plugin/fields/multiselect.d.ts +0 -21
  416. package/dist/plugin/fields/multiselect.d.ts.map +0 -1
  417. package/dist/plugin/fields/multiselect.js +0 -43
  418. package/dist/plugin/fields/multiselect.js.map +0 -1
  419. package/dist/plugin/fields/password.d.ts +0 -24
  420. package/dist/plugin/fields/password.d.ts.map +0 -1
  421. package/dist/plugin/fields/password.js +0 -25
  422. package/dist/plugin/fields/password.js.map +0 -1
  423. package/dist/plugin/fields/radio.d.ts +0 -16
  424. package/dist/plugin/fields/radio.d.ts.map +0 -1
  425. package/dist/plugin/fields/radio.js +0 -17
  426. package/dist/plugin/fields/radio.js.map +0 -1
  427. package/dist/plugin/fields/repeater-validate.d.ts +0 -34
  428. package/dist/plugin/fields/repeater-validate.d.ts.map +0 -1
  429. package/dist/plugin/fields/repeater-validate.js +0 -104
  430. package/dist/plugin/fields/repeater-validate.js.map +0 -1
  431. package/dist/plugin/fields/term-list.d.ts +0 -27
  432. package/dist/plugin/fields/term-list.d.ts.map +0 -1
  433. package/dist/plugin/fields/term-list.js +0 -30
  434. package/dist/plugin/fields/term-list.js.map +0 -1
  435. package/dist/plugin/fields/text.d.ts +0 -37
  436. package/dist/plugin/fields/text.d.ts.map +0 -1
  437. package/dist/plugin/fields/text.js +0 -31
  438. package/dist/plugin/fields/text.js.map +0 -1
  439. package/dist/plugin/fields/textarea.d.ts +0 -20
  440. package/dist/plugin/fields/textarea.d.ts.map +0 -1
  441. package/dist/plugin/fields/textarea.js +0 -21
  442. package/dist/plugin/fields/textarea.js.map +0 -1
  443. package/dist/plugin/fields/time.d.ts +0 -24
  444. package/dist/plugin/fields/time.d.ts.map +0 -1
  445. package/dist/plugin/fields/time.js +0 -23
  446. package/dist/plugin/fields/time.js.map +0 -1
  447. package/dist/plugin/fields/url.d.ts +0 -17
  448. package/dist/plugin/fields/url.d.ts.map +0 -1
  449. package/dist/plugin/fields/url.js +0 -18
  450. package/dist/plugin/fields/url.js.map +0 -1
  451. package/dist/plugin/fields/user-list.d.ts +0 -29
  452. package/dist/plugin/fields/user-list.d.ts.map +0 -1
  453. package/dist/plugin/fields/user-list.js +0 -31
  454. package/dist/plugin/fields/user-list.js.map +0 -1
@@ -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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"}
@@ -1,16 +1,119 @@
1
1
  import type { Label } from "../../i18n/label.js";
2
- import type { MetaBoxField, MetaBoxFieldSpan, RepeaterMetaBoxField } from "../manifest.js";
3
- export interface RepeaterFieldOptions {
4
- readonly key: string;
5
- readonly label: Label;
6
- readonly required?: boolean;
2
+ import type { FieldBuilder, MetaBoxField, MetaBoxFieldInput, MetaBoxFieldSpan, RepeaterDialogSize, RepeaterLayout, RepeaterMetaBoxField } from "../manifest.js";
3
+ import type { MetaFieldCondition, MetaFieldConditionRule } from "./condition.js";
4
+ import type { InferFields, InferStoredFields } from "./contributions.js";
5
+ interface RepeaterFieldState {
6
+ readonly subFields: readonly MetaBoxField[];
7
+ readonly visibleWhen?: MetaFieldCondition;
8
+ readonly label?: Label;
7
9
  readonly description?: Label;
8
- readonly default?: unknown;
10
+ readonly required?: true;
9
11
  readonly span?: MetaBoxFieldSpan;
10
12
  readonly capability?: string;
11
- readonly subFields: readonly MetaBoxField[];
13
+ readonly showInApi?: true;
12
14
  readonly min?: number;
13
15
  readonly max?: number;
16
+ readonly addLabel?: Label;
17
+ readonly layout?: RepeaterLayout;
18
+ readonly collapsed?: string;
19
+ readonly dialogSize?: RepeaterDialogSize;
20
+ }
21
+ /**
22
+ * Entry point of the `repeater()` chain — only `.fields()` is available
23
+ * until the row schema is declared, so a repeater without sub-fields
24
+ * can't reach `build()` (registration surfaces require a `build`
25
+ * method), and `.collapsed()` can be typed against the declared keys.
26
+ */
27
+ export declare class RepeaterFieldSeed<K extends string = string> {
28
+ #private;
29
+ constructor(key: K);
30
+ /**
31
+ * Declare the row schema — infers the typed row shape. Sub-fields may
32
+ * be any registered field type, including nested repeaters and
33
+ * groups; types recurse. Validated eagerly (key shape, uniqueness,
34
+ * prototype-pollution guard).
35
+ */
36
+ fields<const F extends readonly MetaBoxFieldInput[]>(fields: F): RepeaterFieldBuilder<F, K>;
37
+ }
38
+ /**
39
+ * Fluent chain for repeater fields. Immutable — every call returns a
40
+ * fresh instance, so a shared base chain can be forked without
41
+ * aliasing.
42
+ *
43
+ * `F` is the declared row-schema tuple (drives the recursive row type
44
+ * and `.collapsed()` key typing); `K` is the literal field key; `V` is
45
+ * the phantom read type — `readonly InferFields<F>[] | undefined`,
46
+ * narrowed to the non-optional array by `.required()`; `S` is the
47
+ * phantom stored shape (`InferStoredFields<F>` rows). All purely
48
+ * type-level — nothing at runtime carries them.
49
+ */
50
+ export declare class RepeaterFieldBuilder<F extends readonly MetaBoxFieldInput[], K extends string = string, V = readonly InferFields<F>[] | undefined, S = readonly InferStoredFields<F>[] | undefined> implements FieldBuilder<RepeaterMetaBoxField> {
51
+ #private;
52
+ /** Phantom literal key of the field — type-level only, never assigned. */
53
+ readonly _key: K;
54
+ /** Phantom read type of the field — type-level only, never assigned. */
55
+ readonly _value: V;
56
+ /** Phantom stored shape of the field — type-level only, never assigned. */
57
+ readonly _stored: S;
58
+ constructor(key: string, state: RepeaterFieldState);
59
+ /** Override the derived (humanized-key) label. */
60
+ label(label: Label): RepeaterFieldBuilder<F, K, V, S>;
61
+ /** Help text rendered under the label. */
62
+ description(description: Label): RepeaterFieldBuilder<F, K, V, S>;
63
+ /** Minimum row count — enforced server-side by the constraint walker. */
64
+ min(min: number): RepeaterFieldBuilder<F, K, V, S>;
65
+ /** Maximum row count — enforced server-side and by the admin add button. */
66
+ max(max: number): RepeaterFieldBuilder<F, K, V, S>;
67
+ /** Custom label for the admin add-row button. */
68
+ addLabel(addLabel: Label): RepeaterFieldBuilder<F, K, V, S>;
69
+ /** Admin row layout — see {@link RepeaterLayout}. */
70
+ layout(layout: RepeaterLayout): RepeaterFieldBuilder<F, K, V, S>;
71
+ /**
72
+ * Width of the row-editor dialog — see {@link RepeaterDialogSize}.
73
+ * Widen it for dense, multi-column rows; default `md`.
74
+ */
75
+ dialogSize(dialogSize: RepeaterDialogSize): RepeaterFieldBuilder<F, K, V, S>;
76
+ /**
77
+ * Make rows collapsible in the admin, labelling each collapsed row by
78
+ * the chosen sub-field's stored value. The key is typed against the
79
+ * declared row schema, so a nonexistent sub-field is a compile error.
80
+ */
81
+ collapsed(subFieldKey: keyof InferFields<F> & string): RepeaterFieldBuilder<F, K, V, S>;
82
+ /** Mark the field required — narrows the read/stored types to the
83
+ * non-optional array (rejects zero rows server-side). */
84
+ required(): RepeaterFieldBuilder<F, K, readonly InferFields<F>[], readonly InferStoredFields<F>[]>;
85
+ /**
86
+ * Column span within the box's 12-column grid — a universal layout
87
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
88
+ */
89
+ span(span: MetaBoxFieldSpan): RepeaterFieldBuilder<F, K, V, S>;
90
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
91
+ capability(capability: string): RepeaterFieldBuilder<F, K, V, S>;
92
+ /** Opt this field's value into public REST responses (default-deny). */
93
+ showInApi(): RepeaterFieldBuilder<F, K, V, S>;
94
+ /** Rule factory: this repeater has no rows (unset or cleared). */
95
+ isEmpty(): MetaFieldConditionRule;
96
+ /** Rule factory: this repeater has at least one row. */
97
+ isNotEmpty(): MetaFieldConditionRule;
98
+ /**
99
+ * Show this field only when every rule passes (one AND group) —
100
+ * rules come from sibling fields' condition factories. Replaces any
101
+ * previously declared condition; `.orVisibleWhen()` adds
102
+ * alternatives.
103
+ */
104
+ visibleWhen(...rules: MetaFieldConditionRule[]): RepeaterFieldBuilder<F, K, V, S>;
105
+ /** Add an OR alternative — one more AND group of rules. */
106
+ orVisibleWhen(...rules: MetaFieldConditionRule[]): RepeaterFieldBuilder<F, K, V, S>;
107
+ /** Compile the chain into the wire/manifest field definition. */
108
+ build(): RepeaterMetaBoxField;
14
109
  }
15
- export declare function repeater(options: RepeaterFieldOptions): RepeaterMetaBoxField;
110
+ /**
111
+ * Repeatable list of structured rows —
112
+ * `repeater("links").fields([text("label"), url("href")])`. Only
113
+ * `.fields()` is available on the bare constructor; the returned
114
+ * builder carries row-count bounds (`.min()`/`.max()`), UX affordances
115
+ * (`.addLabel()`, `.layout()`, `.collapsed()`), and the universal chain.
116
+ */
117
+ export declare function repeater<K extends string>(key: K): RepeaterFieldSeed<K>;
118
+ export {};
16
119
  //# sourceMappingURL=repeater.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repeater.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/repeater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAoBD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,CAgD5E"}
1
+ {"version":3,"file":"repeater.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/repeater.ts"],"names":[],"mappings":"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"}