@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,180 @@
1
+ var _a;
2
+ import { isValidTemporalValue } from "../manifest.js";
3
+ import { humanizeFieldKey } from "./builder.js";
4
+ import { FieldConfigError } from "./errors.js";
5
+ /**
6
+ * Fluent chain for the temporal fields (`date`, `datetime`, `time`).
7
+ * Storage is always the ISO-shaped string the native input produces —
8
+ * the phantom stored shape `S` stays a string even when
9
+ * `.returns("date")` projects the read type `V` to a JS `Date` at
10
+ * decode time. `.sanitize()` / `.validate()` run on the write side,
11
+ * so their callbacks always see the stored string regardless of the
12
+ * read projection.
13
+ */
14
+ export class TemporalFieldBuilder {
15
+ #inputType;
16
+ #key;
17
+ #state;
18
+ constructor(inputType, key, state = {}) {
19
+ this.#inputType = inputType;
20
+ this.#key = key;
21
+ this.#state = state;
22
+ }
23
+ #fork(patch) {
24
+ return new _a(this.#inputType, this.#key, {
25
+ ...this.#state,
26
+ ...patch,
27
+ });
28
+ }
29
+ /** Override the derived (humanized-key) label. */
30
+ label(label) {
31
+ return this.#fork({ label });
32
+ }
33
+ /** Help text rendered under the label. */
34
+ description(description) {
35
+ return this.#fork({ description });
36
+ }
37
+ /**
38
+ * Default for absent keys — an ISO string in the field's stored
39
+ * shape, applied at read decode (and seeded into the admin form).
40
+ * Narrows the read type to non-optional; the stored shape stays
41
+ * optional.
42
+ */
43
+ default(value) {
44
+ return this.#fork({ default: value });
45
+ }
46
+ /** Mark the field required — narrows the read and stored types to non-optional. */
47
+ required() {
48
+ return this.#fork({ required: true });
49
+ }
50
+ /**
51
+ * Column span within the box's 12-column grid — a universal layout
52
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
53
+ */
54
+ span(span) {
55
+ return this.#fork({ span });
56
+ }
57
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
58
+ capability(capability) {
59
+ return this.#fork({ capability });
60
+ }
61
+ /** Opt this field's value into public REST responses (default-deny). */
62
+ showInApi() {
63
+ return this.#fork({ showInApi: true });
64
+ }
65
+ /** Rule factory: this field's value equals `value` — pass the rule
66
+ * to a dependent field's `.visibleWhen()`. */
67
+ is(value) {
68
+ return { key: this.#key, op: "eq", value };
69
+ }
70
+ /** Rule factory: this field's value differs from `value`. */
71
+ isNot(value) {
72
+ return { key: this.#key, op: "neq", value };
73
+ }
74
+ /** Rule factory: this field has no value (unset or cleared). */
75
+ isEmpty() {
76
+ return { key: this.#key, op: "empty" };
77
+ }
78
+ /** Rule factory: this field has a value. */
79
+ isNotEmpty() {
80
+ return { key: this.#key, op: "not_empty" };
81
+ }
82
+ /**
83
+ * Show this field only when every rule passes (one AND group) —
84
+ * rules come from sibling fields' condition factories. Replaces any
85
+ * previously declared condition; `.orVisibleWhen()` adds
86
+ * alternatives.
87
+ */
88
+ visibleWhen(...rules) {
89
+ return this.#fork({ visibleWhen: [rules] });
90
+ }
91
+ /** Add an OR alternative — one more AND group of rules. */
92
+ orVisibleWhen(...rules) {
93
+ return this.#fork({
94
+ visibleWhen: [...(this.#state.visibleWhen ?? []), rules],
95
+ });
96
+ }
97
+ /** Lower bound in the field's stored ISO shape, enforced by the constraint walker. */
98
+ min(min) {
99
+ return this.#fork({ min });
100
+ }
101
+ /** Upper bound in the field's stored ISO shape, enforced by the constraint walker. */
102
+ max(max) {
103
+ return this.#fork({ max });
104
+ }
105
+ /**
106
+ * Project reads to a JS `Date` at decode time — the read type
107
+ * follows; storage remains the ISO string. Wall-clock components
108
+ * anchor to UTC (`date` at UTC midnight, `time` on 1970-01-01 UTC)
109
+ * so they survive any server/browser timezone split — read them
110
+ * back with `getUTC*` or `timeZone: "UTC"` formatting. `Date`
111
+ * values written back encode from UTC components symmetrically.
112
+ */
113
+ returns(shape) {
114
+ return this.#fork({ returns: shape });
115
+ }
116
+ /**
117
+ * Normalising transform, applied after coercion and before
118
+ * persistence. Always receives the stored ISO string — the
119
+ * `.returns("date")` projection is read-side only.
120
+ */
121
+ sanitize(sanitize) {
122
+ return this.#fork({ sanitize: sanitize });
123
+ }
124
+ /**
125
+ * Custom validation — `true` for valid, or an i18n-able failure
126
+ * message (sync or async). Runs after `.sanitize()` on the stored
127
+ * ISO string.
128
+ */
129
+ validate(validate) {
130
+ return this.#fork({ validate: validate });
131
+ }
132
+ /** Compile the chain into the wire/manifest field definition. */
133
+ build() {
134
+ // A typo'd bound would otherwise silently reject every write —
135
+ // bounds compare lexicographically against the stored shape, so a
136
+ // malformed one sorts nonsensically. Fail loudly at registration.
137
+ for (const bound of ["min", "max"]) {
138
+ const value = this.#state[bound];
139
+ if (value !== undefined &&
140
+ !isValidTemporalValue(this.#inputType, value)) {
141
+ throw FieldConfigError.temporalBoundInvalid({
142
+ fieldKey: this.#key,
143
+ bound,
144
+ value,
145
+ });
146
+ }
147
+ }
148
+ return {
149
+ ...this.#state,
150
+ key: this.#key,
151
+ label: this.#state.label ?? humanizeFieldKey(this.#key),
152
+ type: "string",
153
+ inputType: this.#inputType,
154
+ };
155
+ }
156
+ }
157
+ _a = TemporalFieldBuilder;
158
+ /**
159
+ * Date-only field, stored as `YYYY-MM-DD`. Renders as a native
160
+ * `<input type="date">` in the admin. `.returns("date")` reads a JS
161
+ * `Date` instead of the ISO string.
162
+ */
163
+ export function date(key) {
164
+ return new TemporalFieldBuilder("date", key);
165
+ }
166
+ /**
167
+ * Date + time field, stored as `YYYY-MM-DDTHH:MM` (optional `:SS`) —
168
+ * naive local time from `<input type="datetime-local">`.
169
+ */
170
+ export function datetime(key) {
171
+ return new TemporalFieldBuilder("datetime", key);
172
+ }
173
+ /**
174
+ * Time-only field, stored as `HH:MM` (optional `:SS`). Combine with a
175
+ * `date` field when both are needed.
176
+ */
177
+ export function time(key) {
178
+ return new TemporalFieldBuilder("time", key);
179
+ }
180
+ //# sourceMappingURL=temporal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temporal.js","sourceRoot":"","sources":["../../../src/plugin/fields/temporal.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { Label } from "../../i18n/label.js";
2
- import type { MetaBoxFieldSpan, TermReferenceMetaBoxField } from "../manifest.js";
1
+ import { ReferenceFieldBuilder } from "./reference.js";
3
2
  /**
4
3
  * Public scope shape for the `term()` reference field. Carried on
5
4
  * the field's `referenceTarget.scope`; the term `LookupAdapter`
@@ -11,24 +10,20 @@ export interface TermFieldScope {
11
10
  * Restrict matches to these taxonomies. Required at the field
12
11
  * level — term references without a taxonomy filter would surface
13
12
  * tags + categories + custom taxonomies in one indistinct list.
13
+ * Seeded from the `term()` constructor argument.
14
14
  */
15
15
  readonly termTaxonomies: readonly string[];
16
16
  }
17
- export interface TermFieldOptions {
18
- readonly key: string;
19
- readonly label: Label;
20
- readonly required?: boolean;
21
- readonly description?: Label;
22
- readonly default?: string;
23
- readonly span?: MetaBoxFieldSpan;
24
- readonly capability?: string;
25
- readonly termTaxonomies: readonly string[];
26
- }
27
17
  /**
28
- * Build a typed `term` reference field. Storage is the bare term id;
29
- * reads return the resolved label/subtitle (or `null` for orphans).
18
+ * Build a typed `term` reference field
19
+ * `term("primary", ["category"])`. The required taxonomy scope is the
20
+ * constructor's second argument; `.multiple()` flips to an id array.
21
+ *
22
+ * Storage is the bare term id (an id array under `.multiple()`). Reads
23
+ * hydrate to the term summary by default (`.returns("id")` opts back
24
+ * to the bare id); single reads stay optional (a target can orphan).
30
25
  * The admin renders a picker that calls the lookup RPC with
31
- * `{ kind: "term", scope: { termTaxonomies } }`.
26
+ * `{ kind: "term", scope }`.
32
27
  */
33
- export declare function term(options: TermFieldOptions): TermReferenceMetaBoxField;
28
+ export declare function term<K extends string>(key: K, termTaxonomies: readonly string[]): ReferenceFieldBuilder<"term", K>;
34
29
  //# sourceMappingURL=term.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"term.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/term.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,gBAAgB,CAAC;AAExB;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB;IAC/B,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,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,yBAAyB,CAgBzE"}
1
+ {"version":3,"file":"term.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/term.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EACnC,GAAG,EAAE,CAAC,EACN,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,CAElC"}
@@ -1,24 +1,16 @@
1
+ import { ReferenceFieldBuilder } from "./reference.js";
1
2
  /**
2
- * Build a typed `term` reference field. Storage is the bare term id;
3
- * reads return the resolved label/subtitle (or `null` for orphans).
3
+ * Build a typed `term` reference field
4
+ * `term("primary", ["category"])`. The required taxonomy scope is the
5
+ * constructor's second argument; `.multiple()` flips to an id array.
6
+ *
7
+ * Storage is the bare term id (an id array under `.multiple()`). Reads
8
+ * hydrate to the term summary by default (`.returns("id")` opts back
9
+ * to the bare id); single reads stay optional (a target can orphan).
4
10
  * The admin renders a picker that calls the lookup RPC with
5
- * `{ kind: "term", scope: { termTaxonomies } }`.
11
+ * `{ kind: "term", scope }`.
6
12
  */
7
- export function term(options) {
8
- const scope = {
9
- termTaxonomies: options.termTaxonomies,
10
- };
11
- return {
12
- key: options.key,
13
- label: options.label,
14
- type: "string",
15
- inputType: "term",
16
- referenceTarget: { kind: "term", scope },
17
- required: options.required,
18
- description: options.description,
19
- default: options.default,
20
- span: options.span,
21
- capability: options.capability,
22
- };
13
+ export function term(key, termTaxonomies) {
14
+ return new ReferenceFieldBuilder("term", key, { termTaxonomies });
23
15
  }
24
16
  //# sourceMappingURL=term.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"term.js","sourceRoot":"","sources":["../../../src/plugin/fields/term.ts"],"names":[],"mappings":"AAgCA;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,OAAyB;IAC5C,MAAM,KAAK,GAAmB;QAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;IACF,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;QACxC,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;KAC/B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"term.js","sourceRoot":"","sources":["../../../src/plugin/fields/term.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAkBvD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,IAAI,CAClB,GAAM,EACN,cAAiC;IAEjC,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,97 @@
1
+ import type { Label } from "../../i18n/label.js";
2
+ import type { FieldBuilder, MetaBoxFieldSpan, MetaBoxFieldValidate, ToggleMetaBoxField } from "../manifest.js";
3
+ import type { MetaFieldCondition, MetaFieldConditionRule } from "./condition.js";
4
+ interface ToggleFieldState {
5
+ readonly visibleWhen?: MetaFieldCondition;
6
+ readonly onText?: Label;
7
+ readonly offText?: Label;
8
+ readonly label?: Label;
9
+ readonly description?: Label;
10
+ readonly default?: boolean;
11
+ readonly required?: true;
12
+ readonly span?: MetaBoxFieldSpan;
13
+ readonly capability?: string;
14
+ readonly showInApi?: true;
15
+ readonly sanitize?: (value: unknown) => unknown;
16
+ readonly validate?: MetaBoxFieldValidate;
17
+ }
18
+ /**
19
+ * Fluent chain for the boolean switch field. Immutable — every call
20
+ * returns a fresh instance, so a shared base chain can be forked
21
+ * without aliasing. `V` is the phantom read type: `boolean |
22
+ * undefined` unadorned, narrowed to `boolean` by `.required()` /
23
+ * `.default()`. Purely type-level — nothing at runtime carries it.
24
+ */
25
+ export declare class ToggleFieldBuilder<K extends string = string, V extends boolean | undefined = boolean | undefined, S extends boolean | undefined = boolean | undefined> implements FieldBuilder<ToggleMetaBoxField> {
26
+ #private;
27
+ /** Phantom literal key of the field — type-level only, never assigned. */
28
+ readonly _key: K;
29
+ /** Phantom read type of the field — type-level only, never assigned. */
30
+ readonly _value: V;
31
+ /** Phantom stored shape — `.required()` narrows it (write-enforced);
32
+ * `.default()` does not (defaults apply at decode time). */
33
+ readonly _stored: S;
34
+ constructor(key: K, state?: ToggleFieldState);
35
+ /** Label shown beside the switch while it is on. */
36
+ onText(onText: Label): ToggleFieldBuilder<K, V, S>;
37
+ /** Label shown beside the switch while it is off. */
38
+ offText(offText: Label): ToggleFieldBuilder<K, V, S>;
39
+ /** Override the derived (humanized-key) label. */
40
+ label(label: Label): ToggleFieldBuilder<K, V, S>;
41
+ /** Help text rendered under the label. */
42
+ description(description: Label): ToggleFieldBuilder<K, V, S>;
43
+ /** Admin-form prefill for unsaved keys — narrows the read type to `boolean`. */
44
+ default(value: boolean): ToggleFieldBuilder<K, boolean, S>;
45
+ /** Mark the field required — narrows the read type to `boolean`. */
46
+ required(): ToggleFieldBuilder<K, boolean, boolean>;
47
+ /**
48
+ * Column span within the box's 12-column grid — a universal layout
49
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
50
+ */
51
+ span(span: MetaBoxFieldSpan): ToggleFieldBuilder<K, V, S>;
52
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
53
+ capability(capability: string): ToggleFieldBuilder<K, V, S>;
54
+ /** Opt this field's value into public REST responses (default-deny). */
55
+ showInApi(): ToggleFieldBuilder<K, V, S>;
56
+ /** Rule factory: this field's value equals `value` — pass the rule
57
+ * to a dependent field's `.visibleWhen()`. */
58
+ is(value: boolean): MetaFieldConditionRule;
59
+ /** Rule factory: this field's value differs from `value`. */
60
+ isNot(value: boolean): MetaFieldConditionRule;
61
+ /** Rule factory: this field has no value (unset or cleared). */
62
+ isEmpty(): MetaFieldConditionRule;
63
+ /** Rule factory: this field has a value. */
64
+ isNotEmpty(): MetaFieldConditionRule;
65
+ /** Rule factory: the switch is on. */
66
+ isOn(): MetaFieldConditionRule;
67
+ /** Rule factory: the switch is off. `neq true` rather than
68
+ * `eq false`, so an unset toggle (which renders as off) counts. */
69
+ isOff(): MetaFieldConditionRule;
70
+ /**
71
+ * Show this field only when every rule passes (one AND group) —
72
+ * rules come from sibling fields' condition factories. Replaces any
73
+ * previously declared condition; `.orVisibleWhen()` adds
74
+ * alternatives.
75
+ */
76
+ visibleWhen(...rules: MetaFieldConditionRule[]): ToggleFieldBuilder<K, V, S>;
77
+ /** Add an OR alternative — one more AND group of rules. */
78
+ orVisibleWhen(...rules: MetaFieldConditionRule[]): ToggleFieldBuilder<K, V, S>;
79
+ /** Normalising transform, applied after coercion and before persistence. */
80
+ sanitize(sanitize: (value: NonNullable<V>) => NonNullable<V>): ToggleFieldBuilder<K, V, S>;
81
+ /**
82
+ * Custom validation — `true` for valid, or an i18n-able failure
83
+ * message (sync or async). Runs after `.sanitize()` and the
84
+ * declarative constraints.
85
+ */
86
+ validate(validate: (value: NonNullable<V>) => true | Label | Promise<true | Label>): ToggleFieldBuilder<K, V, S>;
87
+ /** Compile the chain into the wire/manifest field definition. */
88
+ build(): ToggleMetaBoxField;
89
+ }
90
+ /**
91
+ * Boolean switch field — `toggle("featured").onText("Yes").offText("No")`.
92
+ * Reads as `boolean | undefined`, narrowed by `.required()` /
93
+ * `.default()`.
94
+ */
95
+ export declare function toggle<K extends string>(key: K): ToggleFieldBuilder<K>;
96
+ export {};
97
+ //# sourceMappingURL=toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/toggle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ var _a;
2
+ import { humanizeFieldKey } from "./builder.js";
3
+ /**
4
+ * Fluent chain for the boolean switch field. Immutable — every call
5
+ * returns a fresh instance, so a shared base chain can be forked
6
+ * without aliasing. `V` is the phantom read type: `boolean |
7
+ * undefined` unadorned, narrowed to `boolean` by `.required()` /
8
+ * `.default()`. Purely type-level — nothing at runtime carries it.
9
+ */
10
+ export class ToggleFieldBuilder {
11
+ #key;
12
+ #state;
13
+ constructor(key, state = {}) {
14
+ this.#key = key;
15
+ this.#state = state;
16
+ }
17
+ #fork(patch) {
18
+ return new _a(this.#key, {
19
+ ...this.#state,
20
+ ...patch,
21
+ });
22
+ }
23
+ /** Label shown beside the switch while it is on. */
24
+ onText(onText) {
25
+ return this.#fork({ onText });
26
+ }
27
+ /** Label shown beside the switch while it is off. */
28
+ offText(offText) {
29
+ return this.#fork({ offText });
30
+ }
31
+ /** Override the derived (humanized-key) label. */
32
+ label(label) {
33
+ return this.#fork({ label });
34
+ }
35
+ /** Help text rendered under the label. */
36
+ description(description) {
37
+ return this.#fork({ description });
38
+ }
39
+ /** Admin-form prefill for unsaved keys — narrows the read type to `boolean`. */
40
+ default(value) {
41
+ return this.#fork({ default: value });
42
+ }
43
+ /** Mark the field required — narrows the read type to `boolean`. */
44
+ required() {
45
+ return this.#fork({ required: true });
46
+ }
47
+ /**
48
+ * Column span within the box's 12-column grid — a universal layout
49
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
50
+ */
51
+ span(span) {
52
+ return this.#fork({ span });
53
+ }
54
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
55
+ capability(capability) {
56
+ return this.#fork({ capability });
57
+ }
58
+ /** Opt this field's value into public REST responses (default-deny). */
59
+ showInApi() {
60
+ return this.#fork({ showInApi: true });
61
+ }
62
+ /** Rule factory: this field's value equals `value` — pass the rule
63
+ * to a dependent field's `.visibleWhen()`. */
64
+ is(value) {
65
+ return { key: this.#key, op: "eq", value };
66
+ }
67
+ /** Rule factory: this field's value differs from `value`. */
68
+ isNot(value) {
69
+ return { key: this.#key, op: "neq", value };
70
+ }
71
+ /** Rule factory: this field has no value (unset or cleared). */
72
+ isEmpty() {
73
+ return { key: this.#key, op: "empty" };
74
+ }
75
+ /** Rule factory: this field has a value. */
76
+ isNotEmpty() {
77
+ return { key: this.#key, op: "not_empty" };
78
+ }
79
+ /** Rule factory: the switch is on. */
80
+ isOn() {
81
+ return { key: this.#key, op: "eq", value: true };
82
+ }
83
+ /** Rule factory: the switch is off. `neq true` rather than
84
+ * `eq false`, so an unset toggle (which renders as off) counts. */
85
+ isOff() {
86
+ return { key: this.#key, op: "neq", value: true };
87
+ }
88
+ /**
89
+ * Show this field only when every rule passes (one AND group) —
90
+ * rules come from sibling fields' condition factories. Replaces any
91
+ * previously declared condition; `.orVisibleWhen()` adds
92
+ * alternatives.
93
+ */
94
+ visibleWhen(...rules) {
95
+ return this.#fork({ visibleWhen: [rules] });
96
+ }
97
+ /** Add an OR alternative — one more AND group of rules. */
98
+ orVisibleWhen(...rules) {
99
+ return this.#fork({
100
+ visibleWhen: [...(this.#state.visibleWhen ?? []), rules],
101
+ });
102
+ }
103
+ /** Normalising transform, applied after coercion and before persistence. */
104
+ sanitize(sanitize) {
105
+ return this.#fork({ sanitize: sanitize });
106
+ }
107
+ /**
108
+ * Custom validation — `true` for valid, or an i18n-able failure
109
+ * message (sync or async). Runs after `.sanitize()` and the
110
+ * declarative constraints.
111
+ */
112
+ validate(validate) {
113
+ return this.#fork({ validate: validate });
114
+ }
115
+ /** Compile the chain into the wire/manifest field definition. */
116
+ build() {
117
+ return {
118
+ ...this.#state,
119
+ key: this.#key,
120
+ label: this.#state.label ?? humanizeFieldKey(this.#key),
121
+ type: "boolean",
122
+ inputType: "toggle",
123
+ };
124
+ }
125
+ }
126
+ _a = ToggleFieldBuilder;
127
+ /**
128
+ * Boolean switch field — `toggle("featured").onText("Yes").offText("No")`.
129
+ * Reads as `boolean | undefined`, narrowed by `.required()` /
130
+ * `.default()`.
131
+ */
132
+ export function toggle(key) {
133
+ return new ToggleFieldBuilder(key);
134
+ }
135
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../../src/plugin/fields/toggle.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import type { UserRole } from "../../db/schema/users.js";
2
- import type { Label } from "../../i18n/label.js";
3
- import type { MetaBoxFieldSpan, UserMetaBoxField } from "../manifest.js";
2
+ import { ReferenceFieldBuilder } from "./reference.js";
4
3
  /**
5
4
  * Public scope shape for the `user()` reference field. Carried on
6
5
  * the field's `referenceTarget.scope`; the user `LookupAdapter`
@@ -8,36 +7,25 @@ import type { MetaBoxFieldSpan, UserMetaBoxField } from "../manifest.js";
8
7
  * read-time orphan resolution.
9
8
  */
10
9
  export interface UserFieldScope {
11
- /** Restrict matches to these roles. Empty/absent → any role. */
10
+ /** Restrict matches to these roles. Empty/absent → any role. Set via `.roles()`. */
12
11
  readonly roles?: readonly UserRole[];
13
12
  /**
14
- * Whether to surface disabled accounts. Default `false` —
15
- * disabled users are usually invalid reference targets even
16
- * though the row still exists.
13
+ * Whether to surface disabled accounts. Default `false` — disabled
14
+ * users are usually invalid reference targets even though the row
15
+ * still exists. Set via `.includeDisabled()`.
17
16
  */
18
17
  readonly includeDisabled?: boolean;
19
18
  }
20
- export interface UserFieldOptions {
21
- readonly key: string;
22
- readonly label: Label;
23
- readonly required?: boolean;
24
- readonly description?: Label;
25
- readonly default?: string;
26
- readonly span?: MetaBoxFieldSpan;
27
- readonly capability?: string;
28
- readonly roles?: readonly UserRole[];
29
- readonly includeDisabled?: boolean;
30
- }
31
19
  /**
32
- * Build a typed `user` reference field. Storage is the bare user id
33
- * as a string (`"42"` `users.id = 42`); reads return the resolved
34
- * user (or `null` when the target is gone or no longer matches
35
- * scope). The admin renders a picker that calls the lookup RPC with
36
- * `{ kind: "user", scope: { roles, includeDisabled } }`.
20
+ * Build a typed `user` reference field `user("owner")`. Scope is
21
+ * optional and chained (`.roles([...])`, `.includeDisabled()`);
22
+ * `.multiple()` flips to an id array.
37
23
  *
38
- * Scope rolls the two filters (`roles`, `includeDisabled`) into the
39
- * builder's flat option shape internally they're packaged into a
40
- * `referenceTarget.scope` object the user adapter consumes.
24
+ * Storage is the bare user id as a string (an id array under
25
+ * `.multiple()`). Reads hydrate to the user summary by default
26
+ * (`.returns("id")` opts back to the bare id); single reads stay
27
+ * optional (a target can orphan). The admin renders a picker that
28
+ * calls the lookup RPC with `{ kind: "user", scope }`.
41
29
  */
42
- export declare function user(options: UserFieldOptions): UserMetaBoxField;
30
+ export declare function user<K extends string>(key: K): ReferenceFieldBuilder<"user", K>;
43
31
  //# sourceMappingURL=user.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,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,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CAiBhE"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EACnC,GAAG,EAAE,CAAC,GACL,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,CAElC"}
@@ -1,30 +1,16 @@
1
+ import { ReferenceFieldBuilder } from "./reference.js";
1
2
  /**
2
- * Build a typed `user` reference field. Storage is the bare user id
3
- * as a string (`"42"` `users.id = 42`); reads return the resolved
4
- * user (or `null` when the target is gone or no longer matches
5
- * scope). The admin renders a picker that calls the lookup RPC with
6
- * `{ kind: "user", scope: { roles, includeDisabled } }`.
3
+ * Build a typed `user` reference field `user("owner")`. Scope is
4
+ * optional and chained (`.roles([...])`, `.includeDisabled()`);
5
+ * `.multiple()` flips to an id array.
7
6
  *
8
- * Scope rolls the two filters (`roles`, `includeDisabled`) into the
9
- * builder's flat option shape internally they're packaged into a
10
- * `referenceTarget.scope` object the user adapter consumes.
7
+ * Storage is the bare user id as a string (an id array under
8
+ * `.multiple()`). Reads hydrate to the user summary by default
9
+ * (`.returns("id")` opts back to the bare id); single reads stay
10
+ * optional (a target can orphan). The admin renders a picker that
11
+ * calls the lookup RPC with `{ kind: "user", scope }`.
11
12
  */
12
- export function user(options) {
13
- const scope = {
14
- roles: options.roles,
15
- includeDisabled: options.includeDisabled,
16
- };
17
- return {
18
- key: options.key,
19
- label: options.label,
20
- type: "string",
21
- inputType: "user",
22
- referenceTarget: { kind: "user", scope },
23
- required: options.required,
24
- description: options.description,
25
- default: options.default,
26
- span: options.span,
27
- capability: options.capability,
28
- };
13
+ export function user(key) {
14
+ return new ReferenceFieldBuilder("user", key, {});
29
15
  }
30
16
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/plugin/fields/user.ts"],"names":[],"mappings":"AAiCA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,IAAI,CAAC,OAAyB;IAC5C,MAAM,KAAK,GAAmB;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC;IACF,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;QACxC,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;KAC/B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/plugin/fields/user.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAmBvD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,IAAI,CAClB,GAAM;IAEN,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC"}