@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
@@ -1,20 +1,160 @@
1
1
  import type { Label } from "../../i18n/label.js";
2
- import type { MetaBoxFieldOption, MetaBoxFieldSpan, SelectMetaBoxField } from "../manifest.js";
3
- export interface SelectFieldOptions {
4
- readonly key: string;
5
- readonly label: Label;
2
+ import type { FieldBuilder, MetaBoxFieldOption, MetaBoxFieldSpan, MetaBoxFieldValidate, MultiSelectMetaBoxField, SelectAppearance, SelectMetaBoxField, SingleSelectMetaBoxField } from "../manifest.js";
3
+ import type { MetaFieldCondition, MetaFieldConditionRule } from "./condition.js";
4
+ /**
5
+ * An option passed to `.options()` — either the full `{ value, label }`
6
+ * shape or a string shorthand whose label derives from the humanized
7
+ * value (`"videoHero"` → "Video hero").
8
+ */
9
+ export type SelectOptionInput = string | MetaBoxFieldOption;
10
+ /** Literal value union inferred from an `.options()` array. */
11
+ type OptionValue<T extends SelectOptionInput> = T extends string ? T : T extends MetaBoxFieldOption ? T["value"] : never;
12
+ /** Appearances legal for the given cardinality — radio and the dropdown
13
+ * are single-only, checkboxes multi-only, buttons works on both. */
14
+ type AppearanceFor<Multiple extends boolean> = Multiple extends true ? "buttons" | "checkboxes" : "select" | "radio" | "buttons";
15
+ interface SelectFieldState {
16
+ readonly visibleWhen?: MetaFieldCondition;
6
17
  readonly options: readonly MetaBoxFieldOption[];
7
- readonly required?: boolean;
18
+ readonly multiple?: true;
19
+ readonly max?: number;
20
+ readonly appearance?: SelectAppearance;
21
+ readonly label?: Label;
8
22
  readonly description?: Label;
9
- readonly default?: string;
23
+ readonly default?: string | readonly string[];
24
+ readonly required?: true;
10
25
  readonly span?: MetaBoxFieldSpan;
11
26
  readonly capability?: string;
27
+ readonly showInApi?: true;
12
28
  readonly sanitize?: (value: unknown) => unknown;
29
+ readonly validate?: MetaBoxFieldValidate;
30
+ }
31
+ /**
32
+ * Entry point of the `select()` chain — only `.options()` is available
33
+ * until the option list is declared, so a choice field without choices
34
+ * can't reach `build()` (registration surfaces require a `build`
35
+ * method).
36
+ */
37
+ export declare class SelectFieldSeed<K extends string = string> {
38
+ #private;
39
+ constructor(key: K);
40
+ /** Declare the option list — infers the value literal union. */
41
+ options<const Options extends readonly SelectOptionInput[]>(options: Options): SelectFieldBuilder<OptionValue<Options[number]>, K>;
42
+ }
43
+ /**
44
+ * Fluent chain for choice fields. Immutable — every call returns a
45
+ * fresh instance, so a shared base chain can be forked without
46
+ * aliasing.
47
+ *
48
+ * Type parameters are the declaration's compile-time state: `O` is the
49
+ * option literal union inferred by `.options()`; `Multiple` is the
50
+ * cardinality (`.multiple()` flips it and the stored shape); `A` is
51
+ * the chosen appearance, tracked so cardinality-illegal combinations
52
+ * (radio + multiple) fail to compile in either call order; `V` is the
53
+ * phantom read type — `O | undefined` unadorned, an array after
54
+ * `.multiple()`, narrowed by `.required()` / `.default()`. All purely
55
+ * type-level — nothing at runtime carries them.
56
+ */
57
+ export declare class SelectFieldBuilder<O extends string, K extends string = string, Multiple extends boolean = false, A extends SelectAppearance | undefined = undefined, V = O | undefined, S = O | undefined> implements FieldBuilder<SelectMetaBoxField> {
58
+ #private;
59
+ /** Phantom literal key of the field — type-level only, never assigned. */
60
+ readonly _key: K;
61
+ /** Phantom read type of the field — type-level only, never assigned. */
62
+ readonly _value: V;
63
+ /** Phantom stored shape — `.required()` narrows it (write-enforced);
64
+ * `.default()` does not (defaults apply at decode time). */
65
+ readonly _stored: S;
66
+ /** Phantom cardinality/appearance markers backing the compile-time
67
+ * gating of `.multiple()`, `.max()`, and `.appearance()`. */
68
+ readonly _multiple: Multiple;
69
+ readonly _appearance: A;
70
+ constructor(key: string, state: SelectFieldState);
71
+ /**
72
+ * Store an array of selected option values instead of a single one
73
+ * (`type` flips to `json`). A type-level gate keeps it legal:
74
+ * declare cardinality right after `.options()` — before `.default()`
75
+ * / `.required()` narrow the value — and never after a single-only
76
+ * `.appearance()` (`"select"` / `"radio"`).
77
+ */
78
+ multiple(this: undefined extends V ? SelectFieldBuilder<O, K, false, "buttons" | undefined, V, S> : never): SelectFieldBuilder<O, K, true, A, readonly O[] | undefined, readonly O[] | undefined>;
79
+ /**
80
+ * Cap the selection count — multi-value fields only. Carried on the
81
+ * definition and the wire today; server-side enforcement lands with
82
+ * the generic constraint walker.
83
+ */
84
+ max(this: SelectFieldBuilder<O, K, true, A, V, S>, max: number): SelectFieldBuilder<O, K, true, A, V, S>;
85
+ /**
86
+ * Pick the admin control rendering the option list — the pure-UI
87
+ * axis; the value shape never changes. Single-value fields accept
88
+ * `"select"` (dropdown, the default), `"radio"`, and `"buttons"`;
89
+ * multi-value fields accept `"buttons"` (the default) and
90
+ * `"checkboxes"`.
91
+ */
92
+ appearance<A2 extends AppearanceFor<Multiple>>(appearance: A2): SelectFieldBuilder<O, K, Multiple, A2, V, S>;
93
+ /** Override the derived (humanized-key) label. */
94
+ label(label: Label): SelectFieldBuilder<O, K, Multiple, A, V, S>;
95
+ /** Help text rendered under the label. */
96
+ description(description: Label): SelectFieldBuilder<O, K, Multiple, A, V, S>;
97
+ /** Admin-form prefill for unsaved keys — narrows away `undefined`. */
98
+ default(value: Multiple extends true ? readonly O[] : O): SelectFieldBuilder<O, K, Multiple, A, NonNullable<V>, S>;
99
+ /** Mark the field required — narrows away `undefined`. */
100
+ required(): SelectFieldBuilder<O, K, Multiple, A, NonNullable<V>, NonNullable<S>>;
101
+ /**
102
+ * Column span within the box's 12-column grid — a universal layout
103
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
104
+ */
105
+ span(span: MetaBoxFieldSpan): SelectFieldBuilder<O, K, Multiple, A, V, S>;
106
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
107
+ capability(capability: string): SelectFieldBuilder<O, K, Multiple, A, V, S>;
108
+ /** Opt this field's value into public REST responses (default-deny). */
109
+ showInApi(): SelectFieldBuilder<O, K, Multiple, A, V, S>;
110
+ /** Rule factory: this field's value equals `value` — pass the rule
111
+ * to a dependent field's `.visibleWhen()`. The comparand is typed
112
+ * by the chain's cardinality: one option value, or the exact
113
+ * selection array after `.multiple()`. */
114
+ is(value: NonNullable<S>): MetaFieldConditionRule;
115
+ /** Rule factory: this field's value differs from `value`. */
116
+ isNot(value: NonNullable<S>): MetaFieldConditionRule;
117
+ /** Rule factory: this field has no value (unset or cleared). */
118
+ isEmpty(): MetaFieldConditionRule;
119
+ /** Rule factory: this field has a value. */
120
+ isNotEmpty(): MetaFieldConditionRule;
121
+ /** Rule factory: the selection includes `value` — multi-value only. */
122
+ contains(this: SelectFieldBuilder<O, K, true, A, V, S>, value: O): MetaFieldConditionRule;
123
+ /** Rule factory: the selection does not include `value` — multi-value only. */
124
+ notContains(this: SelectFieldBuilder<O, K, true, A, V, S>, value: O): MetaFieldConditionRule;
125
+ /** Rule factory: more than `count` options selected — multi-value only. */
126
+ countGt(this: SelectFieldBuilder<O, K, true, A, V, S>, count: number): MetaFieldConditionRule;
127
+ /** Rule factory: fewer than `count` options selected — multi-value only. */
128
+ countLt(this: SelectFieldBuilder<O, K, true, A, V, S>, count: number): MetaFieldConditionRule;
129
+ /**
130
+ * Show this field only when every rule passes (one AND group) —
131
+ * rules come from sibling fields' condition factories. Replaces any
132
+ * previously declared condition; `.orVisibleWhen()` adds
133
+ * alternatives.
134
+ */
135
+ visibleWhen(...rules: MetaFieldConditionRule[]): SelectFieldBuilder<O, K, Multiple, A, V, S>;
136
+ /** Add an OR alternative — one more AND group of rules. */
137
+ orVisibleWhen(...rules: MetaFieldConditionRule[]): SelectFieldBuilder<O, K, Multiple, A, V, S>;
138
+ /** Normalising transform, applied after coercion and before persistence. */
139
+ sanitize(sanitize: (value: NonNullable<V>) => NonNullable<V>): SelectFieldBuilder<O, K, Multiple, A, V, S>;
140
+ /**
141
+ * Custom validation — `true` for valid, or an i18n-able failure
142
+ * message (sync or async). Runs after `.sanitize()` and the
143
+ * declarative constraints.
144
+ */
145
+ validate(validate: (value: NonNullable<V>) => true | Label | Promise<true | Label>): SelectFieldBuilder<O, K, Multiple, A, V, S>;
146
+ /** Compile the chain into the wire/manifest field definition —
147
+ * the `multiple`/`type`-correlated variant matching the chain's
148
+ * cardinality. */
149
+ build(): Multiple extends true ? MultiSelectMetaBoxField : SingleSelectMetaBoxField;
13
150
  }
14
151
  /**
15
- * Build a typed `select` meta-box field. `options` is required the
16
- * builder enforces this at the type level so a dropdown without choices
17
- * fails to compile.
152
+ * Choice field over a fixed option list
153
+ * `select("size").options(["s", "m", "l"])`. Single-value by default;
154
+ * `.multiple()` stores an array, `.appearance()` picks the admin
155
+ * control. The option list is required: only `.options()` is available
156
+ * on the bare constructor.
18
157
  */
19
- export declare function select(options: SelectFieldOptions): SelectMetaBoxField;
158
+ export declare function select<K extends string>(key: K): SelectFieldSeed<K>;
159
+ export {};
20
160
  //# sourceMappingURL=select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/select.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,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,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACjD;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CActE"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/select.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,209 @@
1
+ var _a;
2
+ import { humanizeFieldKey } from "./builder.js";
1
3
  /**
2
- * Build a typed `select` meta-box field. `options` is required — the
3
- * builder enforces this at the type level so a dropdown without choices
4
- * fails to compile.
4
+ * Entry point of the `select()` chain only `.options()` is available
5
+ * until the option list is declared, so a choice field without choices
6
+ * can't reach `build()` (registration surfaces require a `build`
7
+ * method).
5
8
  */
6
- export function select(options) {
7
- return {
8
- key: options.key,
9
- label: options.label,
10
- type: "string",
11
- inputType: "select",
12
- options: options.options,
13
- required: options.required,
14
- description: options.description,
15
- default: options.default,
16
- span: options.span,
17
- capability: options.capability,
18
- sanitize: options.sanitize,
19
- };
9
+ export class SelectFieldSeed {
10
+ #key;
11
+ constructor(key) {
12
+ this.#key = key;
13
+ }
14
+ /** Declare the option list — infers the value literal union. */
15
+ options(options) {
16
+ return new SelectFieldBuilder(this.#key, {
17
+ options: options.map((opt) => typeof opt === "string"
18
+ ? { value: opt, label: humanizeFieldKey(opt) }
19
+ : opt),
20
+ });
21
+ }
22
+ }
23
+ /**
24
+ * Fluent chain for choice fields. Immutable — every call returns a
25
+ * fresh instance, so a shared base chain can be forked without
26
+ * aliasing.
27
+ *
28
+ * Type parameters are the declaration's compile-time state: `O` is the
29
+ * option literal union inferred by `.options()`; `Multiple` is the
30
+ * cardinality (`.multiple()` flips it and the stored shape); `A` is
31
+ * the chosen appearance, tracked so cardinality-illegal combinations
32
+ * (radio + multiple) fail to compile in either call order; `V` is the
33
+ * phantom read type — `O | undefined` unadorned, an array after
34
+ * `.multiple()`, narrowed by `.required()` / `.default()`. All purely
35
+ * type-level — nothing at runtime carries them.
36
+ */
37
+ export class SelectFieldBuilder {
38
+ #key;
39
+ #state;
40
+ constructor(key, state) {
41
+ this.#key = key;
42
+ this.#state = state;
43
+ }
44
+ #fork(patch) {
45
+ return new _a(this.#key, {
46
+ ...this.#state,
47
+ ...patch,
48
+ });
49
+ }
50
+ /**
51
+ * Store an array of selected option values instead of a single one
52
+ * (`type` flips to `json`). A type-level gate keeps it legal:
53
+ * declare cardinality right after `.options()` — before `.default()`
54
+ * / `.required()` narrow the value — and never after a single-only
55
+ * `.appearance()` (`"select"` / `"radio"`).
56
+ */
57
+ multiple() {
58
+ // The conditional this-type erases the class shape inside the body;
59
+ // restore it to reach the private #fork.
60
+ const self = this;
61
+ return self.#fork({ multiple: true });
62
+ }
63
+ /**
64
+ * Cap the selection count — multi-value fields only. Carried on the
65
+ * definition and the wire today; server-side enforcement lands with
66
+ * the generic constraint walker.
67
+ */
68
+ max(max) {
69
+ return this.#fork({ max });
70
+ }
71
+ /**
72
+ * Pick the admin control rendering the option list — the pure-UI
73
+ * axis; the value shape never changes. Single-value fields accept
74
+ * `"select"` (dropdown, the default), `"radio"`, and `"buttons"`;
75
+ * multi-value fields accept `"buttons"` (the default) and
76
+ * `"checkboxes"`.
77
+ */
78
+ appearance(appearance) {
79
+ return this.#fork({ appearance });
80
+ }
81
+ /** Override the derived (humanized-key) label. */
82
+ label(label) {
83
+ return this.#fork({ label });
84
+ }
85
+ /** Help text rendered under the label. */
86
+ description(description) {
87
+ return this.#fork({ description });
88
+ }
89
+ /** Admin-form prefill for unsaved keys — narrows away `undefined`. */
90
+ default(value) {
91
+ return this.#fork({ default: value });
92
+ }
93
+ /** Mark the field required — narrows away `undefined`. */
94
+ required() {
95
+ return this.#fork({
96
+ required: true,
97
+ });
98
+ }
99
+ /**
100
+ * Column span within the box's 12-column grid — a universal layout
101
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
102
+ */
103
+ span(span) {
104
+ return this.#fork({ span });
105
+ }
106
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
107
+ capability(capability) {
108
+ return this.#fork({ capability });
109
+ }
110
+ /** Opt this field's value into public REST responses (default-deny). */
111
+ showInApi() {
112
+ return this.#fork({ showInApi: true });
113
+ }
114
+ /** Rule factory: this field's value equals `value` — pass the rule
115
+ * to a dependent field's `.visibleWhen()`. The comparand is typed
116
+ * by the chain's cardinality: one option value, or the exact
117
+ * selection array after `.multiple()`. */
118
+ is(value) {
119
+ return { key: this.#key, op: "eq", value };
120
+ }
121
+ /** Rule factory: this field's value differs from `value`. */
122
+ isNot(value) {
123
+ return { key: this.#key, op: "neq", value };
124
+ }
125
+ /** Rule factory: this field has no value (unset or cleared). */
126
+ isEmpty() {
127
+ return { key: this.#key, op: "empty" };
128
+ }
129
+ /** Rule factory: this field has a value. */
130
+ isNotEmpty() {
131
+ return { key: this.#key, op: "not_empty" };
132
+ }
133
+ /** Rule factory: the selection includes `value` — multi-value only. */
134
+ contains(value) {
135
+ return { key: this.#key, op: "contains", value };
136
+ }
137
+ /** Rule factory: the selection does not include `value` — multi-value only. */
138
+ notContains(value) {
139
+ return { key: this.#key, op: "not_contains", value };
140
+ }
141
+ /** Rule factory: more than `count` options selected — multi-value only. */
142
+ countGt(count) {
143
+ return { key: this.#key, op: "count_gt", value: count };
144
+ }
145
+ /** Rule factory: fewer than `count` options selected — multi-value only. */
146
+ countLt(count) {
147
+ return { key: this.#key, op: "count_lt", value: count };
148
+ }
149
+ /**
150
+ * Show this field only when every rule passes (one AND group) —
151
+ * rules come from sibling fields' condition factories. Replaces any
152
+ * previously declared condition; `.orVisibleWhen()` adds
153
+ * alternatives.
154
+ */
155
+ visibleWhen(...rules) {
156
+ return this.#fork({ visibleWhen: [rules] });
157
+ }
158
+ /** Add an OR alternative — one more AND group of rules. */
159
+ orVisibleWhen(...rules) {
160
+ return this.#fork({
161
+ visibleWhen: [...(this.#state.visibleWhen ?? []), rules],
162
+ });
163
+ }
164
+ /** Normalising transform, applied after coercion and before persistence. */
165
+ sanitize(sanitize) {
166
+ return this.#fork({ sanitize: sanitize });
167
+ }
168
+ /**
169
+ * Custom validation — `true` for valid, or an i18n-able failure
170
+ * message (sync or async). Runs after `.sanitize()` and the
171
+ * declarative constraints.
172
+ */
173
+ validate(validate) {
174
+ return this.#fork({ validate: validate });
175
+ }
176
+ /** Compile the chain into the wire/manifest field definition —
177
+ * the `multiple`/`type`-correlated variant matching the chain's
178
+ * cardinality. */
179
+ build() {
180
+ const { multiple, ...state } = this.#state;
181
+ // Option membership, de-dupe, and `.max()` selection counts are
182
+ // enforced server-side by the constraint walker.
183
+ const common = {
184
+ ...state,
185
+ key: this.#key,
186
+ label: state.label ?? humanizeFieldKey(this.#key),
187
+ inputType: "select",
188
+ };
189
+ // Branch so each arm satisfies its correlated `multiple`/`type`
190
+ // variant; the cast collapses the runtime union onto the
191
+ // `Multiple`-conditional return, which TS can't correlate itself.
192
+ const field = multiple
193
+ ? { ...common, type: "json", multiple: true }
194
+ : { ...common, type: "string" };
195
+ return field;
196
+ }
197
+ }
198
+ _a = SelectFieldBuilder;
199
+ /**
200
+ * Choice field over a fixed option list —
201
+ * `select("size").options(["s", "m", "l"])`. Single-value by default;
202
+ * `.multiple()` stores an array, `.appearance()` picks the admin
203
+ * control. The option list is required: only `.options()` is available
204
+ * on the bare constructor.
205
+ */
206
+ export function select(key) {
207
+ return new SelectFieldSeed(key);
20
208
  }
21
209
  //# sourceMappingURL=select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/plugin/fields/select.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,OAA2B;IAChD,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/plugin/fields/select.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { MetaBoxField } from "../manifest.js";
2
+ import type { SubFieldContainer } from "./errors.js";
3
+ /**
4
+ * Validate the child fields of a composite field (`repeater` / `group`)
5
+ * at registration: key shape, prototype-pollution guard, uniqueness,
6
+ * and the not-yet-implemented nested-condition rejection. Nested
7
+ * repeaters and groups are permitted — each composite validates its own
8
+ * immediate children, so arbitrarily deep nesting is covered as each
9
+ * builder is constructed.
10
+ */
11
+ export declare function assertSubFields(container: SubFieldContainer, containerKey: string, subFields: readonly MetaBoxField[]): void;
12
+ //# sourceMappingURL=sub-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-fields.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/sub-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAmBrD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,SAAS,YAAY,EAAE,GACjC,IAAI,CAqCN"}
@@ -0,0 +1,62 @@
1
+ import { FieldConfigError } from "./errors.js";
2
+ // Mirrors `META_FIELD_KEY_RE` in plugin/validation/meta-box-fields.ts.
3
+ // The top-level registrar validates field keys against this regex but
4
+ // doesn't recurse into composite children, so repeater / group enforce
5
+ // it locally — guards row/member-object shape and protects against
6
+ // duplicate-key clobber.
7
+ const SUBFIELD_KEY_RE = /^[a-zA-Z0-9_:-]+$/;
8
+ // `__proto__` / `constructor` / `prototype` match the key regex but
9
+ // writing them into a fresh object literal mutates the prototype chain.
10
+ // Reject at registration regardless of regex pass.
11
+ const FORBIDDEN_SUBFIELD_KEYS = new Set([
12
+ "__proto__",
13
+ "constructor",
14
+ "prototype",
15
+ ]);
16
+ /**
17
+ * Validate the child fields of a composite field (`repeater` / `group`)
18
+ * at registration: key shape, prototype-pollution guard, uniqueness,
19
+ * and the not-yet-implemented nested-condition rejection. Nested
20
+ * repeaters and groups are permitted — each composite validates its own
21
+ * immediate children, so arbitrarily deep nesting is covered as each
22
+ * builder is constructed.
23
+ */
24
+ export function assertSubFields(container, containerKey, subFields) {
25
+ const seen = new Set();
26
+ for (const sf of subFields) {
27
+ if (FORBIDDEN_SUBFIELD_KEYS.has(sf.key)) {
28
+ throw FieldConfigError.subFieldKeyForbidden({
29
+ container,
30
+ containerKey,
31
+ subFieldKey: sf.key,
32
+ });
33
+ }
34
+ if (!SUBFIELD_KEY_RE.test(sf.key)) {
35
+ throw FieldConfigError.subFieldKeyInvalid({
36
+ container,
37
+ containerKey,
38
+ subFieldKey: sf.key,
39
+ pattern: SUBFIELD_KEY_RE.source,
40
+ });
41
+ }
42
+ if (seen.has(sf.key)) {
43
+ throw FieldConfigError.subFieldDuplicate({
44
+ container,
45
+ containerKey,
46
+ subFieldKey: sf.key,
47
+ });
48
+ }
49
+ // Nested conditions aren't wired: the admin evaluator and the write
50
+ // pipeline both read driver values from the top-level box scope, so
51
+ // a row/member `visibleWhen` would register a silent no-op.
52
+ if (sf.visibleWhen !== undefined) {
53
+ throw FieldConfigError.subFieldCondition({
54
+ container,
55
+ containerKey,
56
+ subFieldKey: sf.key,
57
+ });
58
+ }
59
+ seen.add(sf.key);
60
+ }
61
+ }
62
+ //# sourceMappingURL=sub-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-fields.js","sourceRoot":"","sources":["../../../src/plugin/fields/sub-fields.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,uEAAuE;AACvE,sEAAsE;AACtE,uEAAuE;AACvE,mEAAmE;AACnE,yBAAyB;AACzB,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAE5C,oEAAoE;AACpE,wEAAwE;AACxE,mDAAmD;AACnD,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAC3D,WAAW;IACX,aAAa;IACb,WAAW;CACZ,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,SAA4B,EAC5B,YAAoB,EACpB,SAAkC;IAElC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,gBAAgB,CAAC,oBAAoB,CAAC;gBAC1C,SAAS;gBACT,YAAY;gBACZ,WAAW,EAAE,EAAE,CAAC,GAAG;aACpB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,gBAAgB,CAAC,kBAAkB,CAAC;gBACxC,SAAS;gBACT,YAAY;gBACZ,WAAW,EAAE,EAAE,CAAC,GAAG;gBACnB,OAAO,EAAE,eAAe,CAAC,MAAM;aAChC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,gBAAgB,CAAC,iBAAiB,CAAC;gBACvC,SAAS;gBACT,YAAY;gBACZ,WAAW,EAAE,EAAE,CAAC,GAAG;aACpB,CAAC,CAAC;QACL,CAAC;QACD,oEAAoE;QACpE,oEAAoE;QACpE,4DAA4D;QAC5D,IAAI,EAAE,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,gBAAgB,CAAC,iBAAiB,CAAC;gBACvC,SAAS;gBACT,YAAY;gBACZ,WAAW,EAAE,EAAE,CAAC,GAAG;aACpB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,124 @@
1
+ import type { Label } from "../../i18n/label.js";
2
+ import type { FieldBuilder, MetaBoxFieldSpan, MetaBoxFieldValidate, TemporalInputType, TemporalMetaBoxField } from "../manifest.js";
3
+ import type { MetaFieldCondition, MetaFieldConditionRule } from "./condition.js";
4
+ export type { TemporalInputType } from "../manifest.js";
5
+ /** Read type after `.returns("date")` — optionality carries over from `V`. */
6
+ type ProjectedDate<V> = undefined extends V ? Date | undefined : Date;
7
+ interface TemporalFieldState {
8
+ readonly visibleWhen?: MetaFieldCondition;
9
+ readonly label?: Label;
10
+ readonly description?: Label;
11
+ readonly default?: string;
12
+ readonly required?: true;
13
+ readonly span?: MetaBoxFieldSpan;
14
+ readonly capability?: string;
15
+ readonly showInApi?: true;
16
+ readonly min?: string;
17
+ readonly max?: string;
18
+ readonly returns?: "date";
19
+ readonly sanitize?: (value: unknown) => unknown;
20
+ readonly validate?: MetaBoxFieldValidate;
21
+ }
22
+ /**
23
+ * Fluent chain for the temporal fields (`date`, `datetime`, `time`).
24
+ * Storage is always the ISO-shaped string the native input produces —
25
+ * the phantom stored shape `S` stays a string even when
26
+ * `.returns("date")` projects the read type `V` to a JS `Date` at
27
+ * decode time. `.sanitize()` / `.validate()` run on the write side,
28
+ * so their callbacks always see the stored string regardless of the
29
+ * read projection.
30
+ */
31
+ export declare class TemporalFieldBuilder<Input extends TemporalInputType = TemporalInputType, K extends string = string, V extends string | Date | undefined = string | undefined, S extends string | undefined = string | undefined> implements FieldBuilder<TemporalMetaBoxField<Input>> {
32
+ #private;
33
+ /** Phantom literal key of the field — type-level only, never assigned. */
34
+ readonly _key: K;
35
+ /** Phantom read type of the field — type-level only, never assigned. */
36
+ readonly _value: V;
37
+ /** Phantom stored shape of the field — type-level only, never assigned. */
38
+ readonly _stored: S;
39
+ constructor(inputType: Input, key: string, state?: TemporalFieldState);
40
+ /** Override the derived (humanized-key) label. */
41
+ label(label: Label): TemporalFieldBuilder<Input, K, V, S>;
42
+ /** Help text rendered under the label. */
43
+ description(description: Label): TemporalFieldBuilder<Input, K, V, S>;
44
+ /**
45
+ * Default for absent keys — an ISO string in the field's stored
46
+ * shape, applied at read decode (and seeded into the admin form).
47
+ * Narrows the read type to non-optional; the stored shape stays
48
+ * optional.
49
+ */
50
+ default(value: string): TemporalFieldBuilder<Input, K, NonNullable<V>, S>;
51
+ /** Mark the field required — narrows the read and stored types to non-optional. */
52
+ required(): TemporalFieldBuilder<Input, K, NonNullable<V>, string>;
53
+ /**
54
+ * Column span within the box's 12-column grid — a universal layout
55
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
56
+ */
57
+ span(span: MetaBoxFieldSpan): TemporalFieldBuilder<Input, K, V, S>;
58
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
59
+ capability(capability: string): TemporalFieldBuilder<Input, K, V, S>;
60
+ /** Opt this field's value into public REST responses (default-deny). */
61
+ showInApi(): TemporalFieldBuilder<Input, K, V, S>;
62
+ /** Rule factory: this field's value equals `value` — pass the rule
63
+ * to a dependent field's `.visibleWhen()`. */
64
+ is(value: string): MetaFieldConditionRule;
65
+ /** Rule factory: this field's value differs from `value`. */
66
+ isNot(value: string): MetaFieldConditionRule;
67
+ /** Rule factory: this field has no value (unset or cleared). */
68
+ isEmpty(): MetaFieldConditionRule;
69
+ /** Rule factory: this field has a value. */
70
+ isNotEmpty(): MetaFieldConditionRule;
71
+ /**
72
+ * Show this field only when every rule passes (one AND group) —
73
+ * rules come from sibling fields' condition factories. Replaces any
74
+ * previously declared condition; `.orVisibleWhen()` adds
75
+ * alternatives.
76
+ */
77
+ visibleWhen(...rules: MetaFieldConditionRule[]): TemporalFieldBuilder<Input, K, V, S>;
78
+ /** Add an OR alternative — one more AND group of rules. */
79
+ orVisibleWhen(...rules: MetaFieldConditionRule[]): TemporalFieldBuilder<Input, K, V, S>;
80
+ /** Lower bound in the field's stored ISO shape, enforced by the constraint walker. */
81
+ min(min: string): TemporalFieldBuilder<Input, K, V, S>;
82
+ /** Upper bound in the field's stored ISO shape, enforced by the constraint walker. */
83
+ max(max: string): TemporalFieldBuilder<Input, K, V, S>;
84
+ /**
85
+ * Project reads to a JS `Date` at decode time — the read type
86
+ * follows; storage remains the ISO string. Wall-clock components
87
+ * anchor to UTC (`date` at UTC midnight, `time` on 1970-01-01 UTC)
88
+ * so they survive any server/browser timezone split — read them
89
+ * back with `getUTC*` or `timeZone: "UTC"` formatting. `Date`
90
+ * values written back encode from UTC components symmetrically.
91
+ */
92
+ returns(shape: "date"): TemporalFieldBuilder<Input, K, ProjectedDate<V>, S>;
93
+ /**
94
+ * Normalising transform, applied after coercion and before
95
+ * persistence. Always receives the stored ISO string — the
96
+ * `.returns("date")` projection is read-side only.
97
+ */
98
+ sanitize(sanitize: (value: string) => string): TemporalFieldBuilder<Input, K, V, S>;
99
+ /**
100
+ * Custom validation — `true` for valid, or an i18n-able failure
101
+ * message (sync or async). Runs after `.sanitize()` on the stored
102
+ * ISO string.
103
+ */
104
+ validate(validate: (value: string) => true | Label | Promise<true | Label>): TemporalFieldBuilder<Input, K, V, S>;
105
+ /** Compile the chain into the wire/manifest field definition. */
106
+ build(): TemporalMetaBoxField<Input>;
107
+ }
108
+ /**
109
+ * Date-only field, stored as `YYYY-MM-DD`. Renders as a native
110
+ * `<input type="date">` in the admin. `.returns("date")` reads a JS
111
+ * `Date` instead of the ISO string.
112
+ */
113
+ export declare function date<K extends string>(key: K): TemporalFieldBuilder<"date", K>;
114
+ /**
115
+ * Date + time field, stored as `YYYY-MM-DDTHH:MM` (optional `:SS`) —
116
+ * naive local time from `<input type="datetime-local">`.
117
+ */
118
+ export declare function datetime<K extends string>(key: K): TemporalFieldBuilder<"datetime", K>;
119
+ /**
120
+ * Time-only field, stored as `HH:MM` (optional `:SS`). Combine with a
121
+ * `date` field when both are needed.
122
+ */
123
+ export declare function time<K extends string>(key: K): TemporalFieldBuilder<"time", K>;
124
+ //# sourceMappingURL=temporal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temporal.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/temporal.ts"],"names":[],"mappings":"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"}