@openvtc/trust-tasks 0.26.16 → 0.26.18

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 (341) hide show
  1. package/CHANGELOG.md +201 -0
  2. package/dist/_shared/components.d.ts +790 -3
  3. package/dist/_shared/components.d.ts.map +1 -1
  4. package/dist/auth/oob/_shared/0.1/oob.d.ts +1 -1
  5. package/dist/auth/oob/_shared/0.1/oob.d.ts.map +1 -1
  6. package/dist/auth/oob/grant/0.2/payload.d.ts +262 -0
  7. package/dist/auth/oob/grant/0.2/payload.d.ts.map +1 -0
  8. package/dist/auth/oob/grant/0.2/payload.js +140 -0
  9. package/dist/auth/oob/grant/0.2/payload.js.map +1 -0
  10. package/dist/auth/oob/prove/0.2/payload.d.ts +836 -0
  11. package/dist/auth/oob/prove/0.2/payload.d.ts.map +1 -0
  12. package/dist/auth/oob/prove/0.2/payload.js +468 -0
  13. package/dist/auth/oob/prove/0.2/payload.js.map +1 -0
  14. package/dist/auth/oob/respond/0.2/payload.d.ts +235 -0
  15. package/dist/auth/oob/respond/0.2/payload.d.ts.map +1 -0
  16. package/dist/auth/oob/respond/0.2/payload.js +140 -0
  17. package/dist/auth/oob/respond/0.2/payload.js.map +1 -0
  18. package/dist/device/list/0.1/payload.d.ts +4 -4
  19. package/dist/device/list/0.1/payload.d.ts.map +1 -1
  20. package/dist/device/list/0.1/payload.js +2 -0
  21. package/dist/device/list/0.1/payload.js.map +1 -1
  22. package/dist/device/list/0.2/payload.d.ts +4 -4
  23. package/dist/device/list/0.2/payload.d.ts.map +1 -1
  24. package/dist/device/list/0.2/payload.js +2 -0
  25. package/dist/device/list/0.2/payload.js.map +1 -1
  26. package/dist/device/register/0.1/payload.d.ts +4 -4
  27. package/dist/device/register/0.1/payload.d.ts.map +1 -1
  28. package/dist/device/register/0.1/payload.js +2 -0
  29. package/dist/device/register/0.1/payload.js.map +1 -1
  30. package/dist/device/register/0.2/payload.d.ts +4 -4
  31. package/dist/device/register/0.2/payload.d.ts.map +1 -1
  32. package/dist/device/register/0.2/payload.js +2 -0
  33. package/dist/device/register/0.2/payload.js.map +1 -1
  34. package/dist/index.d.ts +55 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +55 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/keys/sign-document/0.1/payload.d.ts +627 -0
  39. package/dist/keys/sign-document/0.1/payload.d.ts.map +1 -0
  40. package/dist/keys/sign-document/0.1/payload.js +341 -0
  41. package/dist/keys/sign-document/0.1/payload.js.map +1 -0
  42. package/dist/persona/_shared/0.1/contact-annotations.d.ts +22 -0
  43. package/dist/persona/_shared/0.1/contact-annotations.d.ts.map +1 -0
  44. package/dist/persona/_shared/0.1/contact-annotations.js +6 -0
  45. package/dist/persona/_shared/0.1/contact-annotations.js.map +1 -0
  46. package/dist/persona/contact/get/1.1/payload.d.ts +1403 -0
  47. package/dist/persona/contact/get/1.1/payload.d.ts.map +1 -0
  48. package/dist/persona/contact/get/1.1/payload.js +804 -0
  49. package/dist/persona/contact/get/1.1/payload.js.map +1 -0
  50. package/dist/persona/contact/list/1.1/payload.d.ts +803 -0
  51. package/dist/persona/contact/list/1.1/payload.d.ts.map +1 -0
  52. package/dist/persona/contact/list/1.1/payload.js +417 -0
  53. package/dist/persona/contact/list/1.1/payload.js.map +1 -0
  54. package/dist/persona/contact/lists/delete/1.0/payload.d.ts +289 -0
  55. package/dist/persona/contact/lists/delete/1.0/payload.d.ts.map +1 -0
  56. package/dist/persona/contact/lists/delete/1.0/payload.js +166 -0
  57. package/dist/persona/contact/lists/delete/1.0/payload.js.map +1 -0
  58. package/dist/persona/contact/lists/list/1.0/payload.d.ts +527 -0
  59. package/dist/persona/contact/lists/list/1.0/payload.d.ts.map +1 -0
  60. package/dist/persona/contact/lists/list/1.0/payload.js +294 -0
  61. package/dist/persona/contact/lists/list/1.0/payload.js.map +1 -0
  62. package/dist/persona/contact/lists/put/1.0/payload.d.ts +629 -0
  63. package/dist/persona/contact/lists/put/1.0/payload.d.ts.map +1 -0
  64. package/dist/persona/contact/lists/put/1.0/payload.js +366 -0
  65. package/dist/persona/contact/lists/put/1.0/payload.js.map +1 -0
  66. package/dist/persona/contact/lists/show/1.0/payload.d.ts +476 -0
  67. package/dist/persona/contact/lists/show/1.0/payload.d.ts.map +1 -0
  68. package/dist/persona/contact/lists/show/1.0/payload.js +272 -0
  69. package/dist/persona/contact/lists/show/1.0/payload.js.map +1 -0
  70. package/dist/persona/contact/put/1.1/payload.d.ts +1444 -0
  71. package/dist/persona/contact/put/1.1/payload.d.ts.map +1 -0
  72. package/dist/persona/contact/put/1.1/payload.js +850 -0
  73. package/dist/persona/contact/put/1.1/payload.js.map +1 -0
  74. package/dist/rooms/keys/act/0.5/payload.d.ts +546 -0
  75. package/dist/rooms/keys/act/0.5/payload.d.ts.map +1 -0
  76. package/dist/rooms/keys/act/0.5/payload.js +305 -0
  77. package/dist/rooms/keys/act/0.5/payload.js.map +1 -0
  78. package/dist/rooms/keys/key-package/0.2/payload.d.ts +304 -0
  79. package/dist/rooms/keys/key-package/0.2/payload.d.ts.map +1 -0
  80. package/dist/rooms/keys/key-package/0.2/payload.js +166 -0
  81. package/dist/rooms/keys/key-package/0.2/payload.js.map +1 -0
  82. package/dist/rooms/keys/seal/0.1/payload.d.ts +24 -4
  83. package/dist/rooms/keys/seal/0.1/payload.d.ts.map +1 -1
  84. package/dist/rooms/keys/seal/0.1/payload.js +12 -2
  85. package/dist/rooms/keys/seal/0.1/payload.js.map +1 -1
  86. package/dist/rooms/keys/seal/0.2/payload.d.ts +24 -4
  87. package/dist/rooms/keys/seal/0.2/payload.d.ts.map +1 -1
  88. package/dist/rooms/keys/seal/0.2/payload.js +12 -2
  89. package/dist/rooms/keys/seal/0.2/payload.js.map +1 -1
  90. package/dist/rooms/owner/group/remove/0.3/payload.d.ts +600 -0
  91. package/dist/rooms/owner/group/remove/0.3/payload.d.ts.map +1 -0
  92. package/dist/rooms/owner/group/remove/0.3/payload.js +310 -0
  93. package/dist/rooms/owner/group/remove/0.3/payload.js.map +1 -0
  94. package/dist/rooms/owner/register/0.2/payload.d.ts +591 -0
  95. package/dist/rooms/owner/register/0.2/payload.d.ts.map +1 -0
  96. package/dist/rooms/owner/register/0.2/payload.js +335 -0
  97. package/dist/rooms/owner/register/0.2/payload.js.map +1 -0
  98. package/dist/rooms/records/get/0.1/payload.d.ts +24 -4
  99. package/dist/rooms/records/get/0.1/payload.d.ts.map +1 -1
  100. package/dist/rooms/records/get/0.1/payload.js +12 -2
  101. package/dist/rooms/records/get/0.1/payload.js.map +1 -1
  102. package/dist/rooms/records/get/0.2/payload.d.ts +24 -4
  103. package/dist/rooms/records/get/0.2/payload.d.ts.map +1 -1
  104. package/dist/rooms/records/get/0.2/payload.js +12 -2
  105. package/dist/rooms/records/get/0.2/payload.js.map +1 -1
  106. package/dist/rooms/records/put/0.1/payload.d.ts +24 -4
  107. package/dist/rooms/records/put/0.1/payload.d.ts.map +1 -1
  108. package/dist/rooms/records/put/0.1/payload.js +12 -2
  109. package/dist/rooms/records/put/0.1/payload.js.map +1 -1
  110. package/dist/rooms/records/put/0.2/payload.d.ts +24 -4
  111. package/dist/rooms/records/put/0.2/payload.d.ts.map +1 -1
  112. package/dist/rooms/records/put/0.2/payload.js +12 -2
  113. package/dist/rooms/records/put/0.2/payload.js.map +1 -1
  114. package/dist/vtc/_shared/0.1/community-room.d.ts +1 -1
  115. package/dist/vtc/_shared/0.1/community-room.d.ts.map +1 -1
  116. package/dist/vtc/admin/events/_shared/0.3/topic.d.ts +30 -0
  117. package/dist/vtc/admin/events/_shared/0.3/topic.d.ts.map +1 -0
  118. package/dist/vtc/admin/events/_shared/0.3/topic.js +6 -0
  119. package/dist/vtc/admin/events/_shared/0.3/topic.js.map +1 -0
  120. package/dist/vtc/admin/events/event/0.3/payload.d.ts +172 -0
  121. package/dist/vtc/admin/events/event/0.3/payload.d.ts.map +1 -0
  122. package/dist/vtc/admin/events/event/0.3/payload.js +102 -0
  123. package/dist/vtc/admin/events/event/0.3/payload.js.map +1 -0
  124. package/dist/vtc/admin/events/subscribe/0.3/payload.d.ts +409 -0
  125. package/dist/vtc/admin/events/subscribe/0.3/payload.d.ts.map +1 -0
  126. package/dist/vtc/admin/events/subscribe/0.3/payload.js +236 -0
  127. package/dist/vtc/admin/events/subscribe/0.3/payload.js.map +1 -0
  128. package/dist/vtc/directory/_shared/0.1/admin-note.d.ts +16 -0
  129. package/dist/vtc/directory/_shared/0.1/admin-note.d.ts.map +1 -0
  130. package/dist/vtc/directory/_shared/0.1/admin-note.js +6 -0
  131. package/dist/vtc/directory/_shared/0.1/admin-note.js.map +1 -0
  132. package/dist/vtc/directory/_shared/0.1/directory-card.d.ts +22 -0
  133. package/dist/vtc/directory/_shared/0.1/directory-card.d.ts.map +1 -0
  134. package/dist/vtc/directory/_shared/0.1/directory-card.js +6 -0
  135. package/dist/vtc/directory/_shared/0.1/directory-card.js.map +1 -0
  136. package/dist/vtc/directory/_shared/0.1/field-definition.d.ts +16 -0
  137. package/dist/vtc/directory/_shared/0.1/field-definition.d.ts.map +1 -0
  138. package/dist/vtc/directory/_shared/0.1/field-definition.js +6 -0
  139. package/dist/vtc/directory/_shared/0.1/field-definition.js.map +1 -0
  140. package/dist/vtc/directory/card/assert/0.1/payload.d.ts +780 -0
  141. package/dist/vtc/directory/card/assert/0.1/payload.d.ts.map +1 -0
  142. package/dist/vtc/directory/card/assert/0.1/payload.js +454 -0
  143. package/dist/vtc/directory/card/assert/0.1/payload.js.map +1 -0
  144. package/dist/vtc/directory/card/present/0.1/payload.d.ts +603 -0
  145. package/dist/vtc/directory/card/present/0.1/payload.d.ts.map +1 -0
  146. package/dist/vtc/directory/card/present/0.1/payload.js +297 -0
  147. package/dist/vtc/directory/card/present/0.1/payload.js.map +1 -0
  148. package/dist/vtc/directory/card/show/0.1/payload.d.ts +1144 -0
  149. package/dist/vtc/directory/card/show/0.1/payload.d.ts.map +1 -0
  150. package/dist/vtc/directory/card/show/0.1/payload.js +695 -0
  151. package/dist/vtc/directory/card/show/0.1/payload.js.map +1 -0
  152. package/dist/vtc/directory/card/update/0.1/payload.d.ts +1291 -0
  153. package/dist/vtc/directory/card/update/0.1/payload.d.ts.map +1 -0
  154. package/dist/vtc/directory/card/update/0.1/payload.js +765 -0
  155. package/dist/vtc/directory/card/update/0.1/payload.js.map +1 -0
  156. package/dist/vtc/directory/entries/list/0.1/payload.d.ts +5525 -0
  157. package/dist/vtc/directory/entries/list/0.1/payload.d.ts.map +1 -0
  158. package/dist/vtc/directory/entries/list/0.1/payload.js +656 -0
  159. package/dist/vtc/directory/entries/list/0.1/payload.js.map +1 -0
  160. package/dist/vtc/directory/entries/show/0.1/payload.d.ts +861 -0
  161. package/dist/vtc/directory/entries/show/0.1/payload.d.ts.map +1 -0
  162. package/dist/vtc/directory/entries/show/0.1/payload.js +502 -0
  163. package/dist/vtc/directory/entries/show/0.1/payload.js.map +1 -0
  164. package/dist/vtc/directory/export/0.1/payload.d.ts +346 -0
  165. package/dist/vtc/directory/export/0.1/payload.d.ts.map +1 -0
  166. package/dist/vtc/directory/export/0.1/payload.js +192 -0
  167. package/dist/vtc/directory/export/0.1/payload.js.map +1 -0
  168. package/dist/vtc/directory/fields/define/0.1/payload.d.ts +1355 -0
  169. package/dist/vtc/directory/fields/define/0.1/payload.d.ts.map +1 -0
  170. package/dist/vtc/directory/fields/define/0.1/payload.js +811 -0
  171. package/dist/vtc/directory/fields/define/0.1/payload.js.map +1 -0
  172. package/dist/vtc/directory/fields/list/0.1/payload.d.ts +1236 -0
  173. package/dist/vtc/directory/fields/list/0.1/payload.d.ts.map +1 -0
  174. package/dist/vtc/directory/fields/list/0.1/payload.js +739 -0
  175. package/dist/vtc/directory/fields/list/0.1/payload.js.map +1 -0
  176. package/dist/vtc/directory/fields/retire/0.1/payload.d.ts +1146 -0
  177. package/dist/vtc/directory/fields/retire/0.1/payload.d.ts.map +1 -0
  178. package/dist/vtc/directory/fields/retire/0.1/payload.js +684 -0
  179. package/dist/vtc/directory/fields/retire/0.1/payload.js.map +1 -0
  180. package/dist/vtc/directory/fields/update/0.1/payload.d.ts +1223 -0
  181. package/dist/vtc/directory/fields/update/0.1/payload.d.ts.map +1 -0
  182. package/dist/vtc/directory/fields/update/0.1/payload.js +715 -0
  183. package/dist/vtc/directory/fields/update/0.1/payload.js.map +1 -0
  184. package/dist/vtc/directory/introduce/0.1/payload.d.ts +417 -0
  185. package/dist/vtc/directory/introduce/0.1/payload.d.ts.map +1 -0
  186. package/dist/vtc/directory/introduce/0.1/payload.js +183 -0
  187. package/dist/vtc/directory/introduce/0.1/payload.js.map +1 -0
  188. package/dist/vtc/directory/introduction/0.1/payload.d.ts +423 -0
  189. package/dist/vtc/directory/introduction/0.1/payload.d.ts.map +1 -0
  190. package/dist/vtc/directory/introduction/0.1/payload.js +241 -0
  191. package/dist/vtc/directory/introduction/0.1/payload.js.map +1 -0
  192. package/dist/vtc/directory/notes/append/0.1/payload.d.ts +494 -0
  193. package/dist/vtc/directory/notes/append/0.1/payload.d.ts.map +1 -0
  194. package/dist/vtc/directory/notes/append/0.1/payload.js +281 -0
  195. package/dist/vtc/directory/notes/append/0.1/payload.js.map +1 -0
  196. package/dist/vtc/directory/notes/export/0.1/payload.d.ts +530 -0
  197. package/dist/vtc/directory/notes/export/0.1/payload.d.ts.map +1 -0
  198. package/dist/vtc/directory/notes/export/0.1/payload.js +294 -0
  199. package/dist/vtc/directory/notes/export/0.1/payload.js.map +1 -0
  200. package/dist/vtc/directory/notes/list/0.1/payload.d.ts +528 -0
  201. package/dist/vtc/directory/notes/list/0.1/payload.d.ts.map +1 -0
  202. package/dist/vtc/directory/notes/list/0.1/payload.js +294 -0
  203. package/dist/vtc/directory/notes/list/0.1/payload.js.map +1 -0
  204. package/dist/vtc/groups/_shared/0.1/group.d.ts +22 -0
  205. package/dist/vtc/groups/_shared/0.1/group.d.ts.map +1 -0
  206. package/dist/vtc/groups/_shared/0.1/group.js +6 -0
  207. package/dist/vtc/groups/_shared/0.1/group.js.map +1 -0
  208. package/dist/vtc/groups/bindings/add/0.1/payload.d.ts +914 -0
  209. package/dist/vtc/groups/bindings/add/0.1/payload.d.ts.map +1 -0
  210. package/dist/vtc/groups/bindings/add/0.1/payload.js +536 -0
  211. package/dist/vtc/groups/bindings/add/0.1/payload.js.map +1 -0
  212. package/dist/vtc/groups/bindings/list/0.1/payload.d.ts +910 -0
  213. package/dist/vtc/groups/bindings/list/0.1/payload.d.ts.map +1 -0
  214. package/dist/vtc/groups/bindings/list/0.1/payload.js +533 -0
  215. package/dist/vtc/groups/bindings/list/0.1/payload.js.map +1 -0
  216. package/dist/vtc/groups/bindings/remove/0.1/payload.d.ts +310 -0
  217. package/dist/vtc/groups/bindings/remove/0.1/payload.d.ts.map +1 -0
  218. package/dist/vtc/groups/bindings/remove/0.1/payload.js +182 -0
  219. package/dist/vtc/groups/bindings/remove/0.1/payload.js.map +1 -0
  220. package/dist/vtc/groups/create/0.1/payload.d.ts +1075 -0
  221. package/dist/vtc/groups/create/0.1/payload.d.ts.map +1 -0
  222. package/dist/vtc/groups/create/0.1/payload.js +631 -0
  223. package/dist/vtc/groups/create/0.1/payload.js.map +1 -0
  224. package/dist/vtc/groups/delete/0.1/payload.d.ts +317 -0
  225. package/dist/vtc/groups/delete/0.1/payload.d.ts.map +1 -0
  226. package/dist/vtc/groups/delete/0.1/payload.js +182 -0
  227. package/dist/vtc/groups/delete/0.1/payload.js.map +1 -0
  228. package/dist/vtc/groups/join/0.1/payload.d.ts +1262 -0
  229. package/dist/vtc/groups/join/0.1/payload.d.ts.map +1 -0
  230. package/dist/vtc/groups/join/0.1/payload.js +758 -0
  231. package/dist/vtc/groups/join/0.1/payload.js.map +1 -0
  232. package/dist/vtc/groups/leave/0.1/payload.d.ts +291 -0
  233. package/dist/vtc/groups/leave/0.1/payload.d.ts.map +1 -0
  234. package/dist/vtc/groups/leave/0.1/payload.js +179 -0
  235. package/dist/vtc/groups/leave/0.1/payload.js.map +1 -0
  236. package/dist/vtc/groups/list/0.1/payload.d.ts +1127 -0
  237. package/dist/vtc/groups/list/0.1/payload.d.ts.map +1 -0
  238. package/dist/vtc/groups/list/0.1/payload.js +674 -0
  239. package/dist/vtc/groups/list/0.1/payload.js.map +1 -0
  240. package/dist/vtc/groups/members/add/0.1/payload.d.ts +1014 -0
  241. package/dist/vtc/groups/members/add/0.1/payload.d.ts.map +1 -0
  242. package/dist/vtc/groups/members/add/0.1/payload.js +607 -0
  243. package/dist/vtc/groups/members/add/0.1/payload.js.map +1 -0
  244. package/dist/vtc/groups/members/list/0.1/payload.d.ts +1018 -0
  245. package/dist/vtc/groups/members/list/0.1/payload.d.ts.map +1 -0
  246. package/dist/vtc/groups/members/list/0.1/payload.js +606 -0
  247. package/dist/vtc/groups/members/list/0.1/payload.js.map +1 -0
  248. package/dist/vtc/groups/members/remove/0.1/payload.d.ts +351 -0
  249. package/dist/vtc/groups/members/remove/0.1/payload.d.ts.map +1 -0
  250. package/dist/vtc/groups/members/remove/0.1/payload.js +205 -0
  251. package/dist/vtc/groups/members/remove/0.1/payload.js.map +1 -0
  252. package/dist/vtc/groups/requests/decide/0.1/payload.d.ts +1236 -0
  253. package/dist/vtc/groups/requests/decide/0.1/payload.d.ts.map +1 -0
  254. package/dist/vtc/groups/requests/decide/0.1/payload.js +741 -0
  255. package/dist/vtc/groups/requests/decide/0.1/payload.js.map +1 -0
  256. package/dist/vtc/groups/requests/list/0.1/payload.d.ts +1063 -0
  257. package/dist/vtc/groups/requests/list/0.1/payload.d.ts.map +1 -0
  258. package/dist/vtc/groups/requests/list/0.1/payload.js +622 -0
  259. package/dist/vtc/groups/requests/list/0.1/payload.js.map +1 -0
  260. package/dist/vtc/groups/show/0.1/payload.d.ts +1012 -0
  261. package/dist/vtc/groups/show/0.1/payload.d.ts.map +1 -0
  262. package/dist/vtc/groups/show/0.1/payload.js +619 -0
  263. package/dist/vtc/groups/show/0.1/payload.js.map +1 -0
  264. package/dist/vtc/groups/update/0.1/payload.d.ts +1078 -0
  265. package/dist/vtc/groups/update/0.1/payload.d.ts.map +1 -0
  266. package/dist/vtc/groups/update/0.1/payload.js +633 -0
  267. package/dist/vtc/groups/update/0.1/payload.js.map +1 -0
  268. package/dist/vtc/rooms/memberships/list/0.1/payload.d.ts +696 -0
  269. package/dist/vtc/rooms/memberships/list/0.1/payload.d.ts.map +1 -0
  270. package/dist/vtc/rooms/memberships/list/0.1/payload.js +402 -0
  271. package/dist/vtc/rooms/memberships/list/0.1/payload.js.map +1 -0
  272. package/package.json +1 -1
  273. package/src/_shared/components.ts +835 -1
  274. package/src/auth/oob/_shared/0.1/oob.ts +1 -1
  275. package/src/auth/oob/grant/0.2/payload.ts +186 -0
  276. package/src/auth/oob/prove/0.2/payload.ts +523 -0
  277. package/src/auth/oob/respond/0.2/payload.ts +178 -0
  278. package/src/device/list/0.1/payload.ts +2 -0
  279. package/src/device/list/0.2/payload.ts +2 -0
  280. package/src/device/register/0.1/payload.ts +2 -0
  281. package/src/device/register/0.2/payload.ts +2 -0
  282. package/src/index.ts +55 -0
  283. package/src/keys/sign-document/0.1/payload.ts +437 -0
  284. package/src/persona/_shared/0.1/contact-annotations.ts +23 -0
  285. package/src/persona/contact/get/1.1/payload.ts +876 -0
  286. package/src/persona/contact/list/1.1/payload.ts +497 -0
  287. package/src/persona/contact/lists/delete/1.0/payload.ts +204 -0
  288. package/src/persona/contact/lists/list/1.0/payload.ts +332 -0
  289. package/src/persona/contact/lists/put/1.0/payload.ts +429 -0
  290. package/src/persona/contact/lists/show/1.0/payload.ts +305 -0
  291. package/src/persona/contact/put/1.1/payload.ts +958 -0
  292. package/src/rooms/keys/act/0.5/payload.ts +380 -0
  293. package/src/rooms/keys/key-package/0.2/payload.ts +219 -0
  294. package/src/rooms/keys/seal/0.1/payload.ts +12 -2
  295. package/src/rooms/keys/seal/0.2/payload.ts +12 -2
  296. package/src/rooms/owner/group/remove/0.3/payload.ts +415 -0
  297. package/src/rooms/owner/register/0.2/payload.ts +415 -0
  298. package/src/rooms/records/get/0.1/payload.ts +12 -2
  299. package/src/rooms/records/get/0.2/payload.ts +12 -2
  300. package/src/rooms/records/put/0.1/payload.ts +12 -2
  301. package/src/rooms/records/put/0.2/payload.ts +12 -2
  302. package/src/vtc/_shared/0.1/community-room.ts +1 -1
  303. package/src/vtc/admin/events/_shared/0.3/topic.ts +31 -0
  304. package/src/vtc/admin/events/event/0.3/payload.ts +136 -0
  305. package/src/vtc/admin/events/subscribe/0.3/payload.ts +314 -0
  306. package/src/vtc/directory/_shared/0.1/admin-note.ts +17 -0
  307. package/src/vtc/directory/_shared/0.1/directory-card.ts +23 -0
  308. package/src/vtc/directory/_shared/0.1/field-definition.ts +17 -0
  309. package/src/vtc/directory/card/assert/0.1/payload.ts +503 -0
  310. package/src/vtc/directory/card/present/0.1/payload.ts +437 -0
  311. package/src/vtc/directory/card/show/0.1/payload.ts +732 -0
  312. package/src/vtc/directory/card/update/0.1/payload.ts +827 -0
  313. package/src/vtc/directory/entries/list/0.1/payload.ts +5676 -0
  314. package/src/vtc/directory/entries/show/0.1/payload.ts +541 -0
  315. package/src/vtc/directory/export/0.1/payload.ts +241 -0
  316. package/src/vtc/directory/fields/define/0.1/payload.ts +847 -0
  317. package/src/vtc/directory/fields/list/0.1/payload.ts +780 -0
  318. package/src/vtc/directory/fields/retire/0.1/payload.ts +723 -0
  319. package/src/vtc/directory/fields/update/0.1/payload.ts +767 -0
  320. package/src/vtc/directory/introduce/0.1/payload.ts +324 -0
  321. package/src/vtc/directory/introduction/0.1/payload.ts +278 -0
  322. package/src/vtc/directory/notes/append/0.1/payload.ts +319 -0
  323. package/src/vtc/directory/notes/export/0.1/payload.ts +337 -0
  324. package/src/vtc/directory/notes/list/0.1/payload.ts +337 -0
  325. package/src/vtc/groups/_shared/0.1/group.ts +23 -0
  326. package/src/vtc/groups/bindings/add/0.1/payload.ts +573 -0
  327. package/src/vtc/groups/bindings/list/0.1/payload.ts +568 -0
  328. package/src/vtc/groups/bindings/remove/0.1/payload.ts +223 -0
  329. package/src/vtc/groups/create/0.1/payload.ts +683 -0
  330. package/src/vtc/groups/delete/0.1/payload.ts +224 -0
  331. package/src/vtc/groups/join/0.1/payload.ts +807 -0
  332. package/src/vtc/groups/leave/0.1/payload.ts +219 -0
  333. package/src/vtc/groups/list/0.1/payload.ts +728 -0
  334. package/src/vtc/groups/members/add/0.1/payload.ts +648 -0
  335. package/src/vtc/groups/members/list/0.1/payload.ts +647 -0
  336. package/src/vtc/groups/members/remove/0.1/payload.ts +251 -0
  337. package/src/vtc/groups/requests/decide/0.1/payload.ts +786 -0
  338. package/src/vtc/groups/requests/list/0.1/payload.ts +670 -0
  339. package/src/vtc/groups/show/0.1/payload.ts +652 -0
  340. package/src/vtc/groups/update/0.1/payload.ts +682 -0
  341. package/src/vtc/rooms/memberships/list/0.1/payload.ts +445 -0
@@ -0,0 +1,1223 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/vtc/directory/fields/update/0.1/payload.schema.json
4
+ */
5
+ import type { Audience, ClaimSelector, EnumOption, Ext, FieldConstraints, FieldDefinition, FieldDescription, FieldKey, FieldLabel, FieldSource, FieldState, FieldType } from "../../../../../_shared/components.js";
6
+ /**
7
+ * An administrator changes a directory field's label, help text, constraints, order, ceiling or default visibility, or disables or re-enables a base field. The outer document members are owned by the framework — SPEC §6.3.
8
+ */
9
+ export interface VTCDirectoryFieldsUpdatePayload {
10
+ key: FieldKey;
11
+ label?: FieldLabel;
12
+ description?: FieldDescription;
13
+ /**
14
+ * Replaces the constraints whole. Values already stored that no longer satisfy them stay until their writer next changes them; projections show them unchanged.
15
+ */
16
+ constraints?: FieldConstraints;
17
+ ceiling?: Audience;
18
+ defaultVisibility?: Audience;
19
+ required?: boolean;
20
+ searchable?: boolean;
21
+ facet?: boolean;
22
+ order?: number;
23
+ /**
24
+ * Base fields only: `false` disables the field (hidden from every projection, values kept), `true` re-enables it.
25
+ */
26
+ enabled?: boolean;
27
+ /**
28
+ * Why, recorded with the change and shown to anyone who must approve it.
29
+ */
30
+ reason?: string;
31
+ ext?: Ext;
32
+ }
33
+ /**
34
+ * The success response to a vtc/directory/fields/update/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/directory/fields/update/0.1#response.
35
+ */
36
+ export interface VTCDirectoryFieldsUpdateResponsePayload {
37
+ field: FieldDefinition;
38
+ ext?: Ext;
39
+ }
40
+ /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
41
+ export type { Audience, ClaimSelector, EnumOption, Ext, FieldConstraints, FieldDefinition, FieldDescription, FieldKey, FieldLabel, FieldSource, FieldState, FieldType };
42
+ /** Trust Task type URI. */
43
+ export declare const TYPE_URI: "https://trusttasks.org/spec/vtc/directory/fields/update/0.1";
44
+ /** Stable alias for this specification's request payload shape. */
45
+ export type Payload = VTCDirectoryFieldsUpdatePayload;
46
+ /** Trust Task response type URI (request type URI + "#response"). */
47
+ export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/vtc/directory/fields/update/0.1#response";
48
+ /** Stable alias for this specification's success-response payload shape. */
49
+ export type Response = VTCDirectoryFieldsUpdateResponsePayload;
50
+ /**
51
+ * This specification's payload schema, as a value.
52
+ *
53
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
54
+ * rather than only as a `.json` file because TypeScript types are erased
55
+ * at runtime: without a schema a consumer has nothing to validate, and
56
+ * every REQUIRED payload member is optional in practice. Cross-file
57
+ * `$ref`s are already inlined, so it needs no resolver.
58
+ */
59
+ export declare const PAYLOAD_SCHEMA: {
60
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
61
+ readonly $id: "https://trusttasks.org/spec/vtc/directory/fields/update/0.1";
62
+ readonly title: "VTC Directory — Fields — Update — payload";
63
+ readonly description: "An administrator changes a directory field's label, help text, constraints, order, ceiling or default visibility, or disables or re-enables a base field. The outer document members are owned by the framework — SPEC §6.3.";
64
+ readonly type: "object";
65
+ readonly additionalProperties: false;
66
+ readonly required: readonly ["key"];
67
+ readonly properties: {
68
+ readonly key: {
69
+ readonly $ref: "#/$defs/FieldKey";
70
+ };
71
+ readonly label: {
72
+ readonly $ref: "#/$defs/FieldLabel";
73
+ };
74
+ readonly description: {
75
+ readonly $ref: "#/$defs/FieldDescription";
76
+ };
77
+ readonly constraints: {
78
+ readonly $ref: "#/$defs/FieldConstraints";
79
+ readonly description: "Replaces the constraints whole. Values already stored that no longer satisfy them stay until their writer next changes them; projections show them unchanged.";
80
+ };
81
+ readonly ceiling: {
82
+ readonly $ref: "#/$defs/Audience";
83
+ };
84
+ readonly defaultVisibility: {
85
+ readonly $ref: "#/$defs/Audience";
86
+ };
87
+ readonly required: {
88
+ readonly type: "boolean";
89
+ };
90
+ readonly searchable: {
91
+ readonly type: "boolean";
92
+ };
93
+ readonly facet: {
94
+ readonly type: "boolean";
95
+ };
96
+ readonly order: {
97
+ readonly type: "integer";
98
+ readonly minimum: 0;
99
+ readonly maximum: 10000;
100
+ };
101
+ readonly enabled: {
102
+ readonly type: "boolean";
103
+ readonly description: "Base fields only: `false` disables the field (hidden from every projection, values kept), `true` re-enables it.";
104
+ };
105
+ readonly reason: {
106
+ readonly type: "string";
107
+ readonly minLength: 1;
108
+ readonly maxLength: 1024;
109
+ readonly description: "Why, recorded with the change and shown to anyone who must approve it.";
110
+ };
111
+ readonly ext: {
112
+ readonly $ref: "#/$defs/Ext";
113
+ };
114
+ };
115
+ readonly $defs: {
116
+ readonly Response: {
117
+ readonly $anchor: "response";
118
+ readonly title: "VTC Directory — Fields — Update — response payload";
119
+ readonly description: "The success response to a vtc/directory/fields/update/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/directory/fields/update/0.1#response.";
120
+ readonly type: "object";
121
+ readonly additionalProperties: false;
122
+ readonly required: readonly ["field"];
123
+ readonly properties: {
124
+ readonly field: {
125
+ readonly $ref: "#/$defs/FieldDefinition";
126
+ };
127
+ readonly ext: {
128
+ readonly $ref: "#/$defs/Ext";
129
+ };
130
+ };
131
+ };
132
+ readonly Ext: {
133
+ readonly title: "Ext";
134
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
135
+ readonly type: "object";
136
+ readonly minProperties: 1;
137
+ readonly additionalProperties: true;
138
+ readonly propertyNames: {
139
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
140
+ };
141
+ };
142
+ readonly FieldDefinition: {
143
+ readonly title: "FieldDefinition";
144
+ readonly description: "One field of the community's directory schema, as the community holds it. The audience order `admins` < `groups`/`connections` < `members` < `public` applies to `ceiling` and `defaultVisibility`; `defaultVisibility` is never wider than `ceiling`.";
145
+ readonly type: "object";
146
+ readonly additionalProperties: false;
147
+ readonly required: readonly ["key", "label", "type", "source", "base", "ceiling", "defaultVisibility", "required", "searchable", "facet", "order", "state"];
148
+ readonly properties: {
149
+ readonly key: {
150
+ readonly $ref: "#/$defs/FieldKey";
151
+ };
152
+ readonly label: {
153
+ readonly $ref: "#/$defs/FieldLabel";
154
+ };
155
+ readonly description: {
156
+ readonly $ref: "#/$defs/FieldDescription";
157
+ };
158
+ readonly type: {
159
+ readonly $ref: "#/$defs/FieldType";
160
+ };
161
+ readonly constraints: {
162
+ readonly $ref: "#/$defs/FieldConstraints";
163
+ };
164
+ readonly source: {
165
+ readonly $ref: "#/$defs/FieldSource";
166
+ };
167
+ readonly base: {
168
+ readonly type: "boolean";
169
+ readonly description: "`true` for a base field, present in every community; `false` for a field this community defined.";
170
+ };
171
+ readonly jsContactPath: {
172
+ readonly type: "string";
173
+ readonly minLength: 1;
174
+ readonly maxLength: 128;
175
+ readonly description: "Where the field lands when an entry is exported as a JSContact Card (RFC 9553), e.g. `name.full`, `nicknames`, `speakToAs.pronouns`. Absent: a vendor-specific property named by the key.";
176
+ };
177
+ readonly required: {
178
+ readonly type: "boolean";
179
+ };
180
+ readonly ceiling: {
181
+ readonly $ref: "#/$defs/Audience";
182
+ };
183
+ readonly defaultVisibility: {
184
+ readonly $ref: "#/$defs/Audience";
185
+ };
186
+ readonly searchable: {
187
+ readonly type: "boolean";
188
+ };
189
+ readonly facet: {
190
+ readonly type: "boolean";
191
+ };
192
+ readonly order: {
193
+ readonly type: "integer";
194
+ readonly minimum: 0;
195
+ readonly maximum: 10000;
196
+ };
197
+ readonly state: {
198
+ readonly $ref: "#/$defs/FieldState";
199
+ };
200
+ readonly retiredAt: {
201
+ readonly type: "string";
202
+ readonly format: "date-time";
203
+ readonly description: "When the field was retired. Present only on a retired field.";
204
+ };
205
+ readonly purgeAfter: {
206
+ readonly type: "string";
207
+ readonly format: "date-time";
208
+ readonly description: "When the values of a retired field are purged. Present only on a retired field.";
209
+ };
210
+ readonly updatedAt: {
211
+ readonly type: "string";
212
+ readonly format: "date-time";
213
+ };
214
+ readonly ext: {
215
+ readonly $ref: "#/$defs/Ext";
216
+ readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT widen a ceiling.";
217
+ };
218
+ };
219
+ };
220
+ readonly FieldState: {
221
+ readonly title: "FieldState";
222
+ readonly description: "`active`: in use. `disabled`: a base field the community has switched off; hidden from every projection and re-enablable. `retired`: a community field withdrawn for good; hidden at once, its values purged after the community's retention period, and its key never reused.";
223
+ readonly type: "string";
224
+ readonly enum: readonly ["active", "disabled", "retired"];
225
+ };
226
+ readonly FieldSource: {
227
+ readonly title: "FieldSource";
228
+ readonly description: "Who writes the value. `member`: self-asserted, through vtc/directory/card/update. `admin`: asserted by the community through vtc/directory/card/assert; the member reads it and cannot change it. `credential`: a claim the member discloses from a credential through vtc/directory/card/present, badged with its issuer. `derived`: a base field read from the community's own records (`role`, `joinedAt`, `did`, `personhood`) and never stored on a card. Each source is written only through its own path.";
229
+ readonly type: "string";
230
+ readonly enum: readonly ["member", "admin", "credential", "derived"];
231
+ };
232
+ readonly FieldConstraints: {
233
+ readonly title: "FieldConstraints";
234
+ readonly description: "Per-type constraints. A member that does not apply to the field's type is refused by the community with `valueInvalid` when the definition is written.";
235
+ readonly type: "object";
236
+ readonly additionalProperties: false;
237
+ readonly properties: {
238
+ readonly maxLength: {
239
+ readonly type: "integer";
240
+ readonly minimum: 1;
241
+ readonly maximum: 2000;
242
+ };
243
+ readonly minLength: {
244
+ readonly type: "integer";
245
+ readonly minimum: 0;
246
+ readonly maximum: 2000;
247
+ };
248
+ readonly pattern: {
249
+ readonly type: "string";
250
+ readonly minLength: 1;
251
+ readonly maxLength: 256;
252
+ readonly description: "ECMA-262 regular expression a text value MUST match.";
253
+ };
254
+ readonly options: {
255
+ readonly type: "array";
256
+ readonly minItems: 1;
257
+ readonly maxItems: 128;
258
+ readonly items: {
259
+ readonly $ref: "#/$defs/EnumOption";
260
+ };
261
+ readonly description: "The permitted values of an `enum` or `multiEnum` field.";
262
+ };
263
+ readonly maxItems: {
264
+ readonly type: "integer";
265
+ readonly minimum: 1;
266
+ readonly maximum: 32;
267
+ };
268
+ readonly minDate: {
269
+ readonly type: "string";
270
+ readonly format: "date";
271
+ };
272
+ readonly maxDate: {
273
+ readonly type: "string";
274
+ readonly format: "date";
275
+ };
276
+ readonly claim: {
277
+ readonly $ref: "#/$defs/ClaimSelector";
278
+ };
279
+ };
280
+ };
281
+ readonly ClaimSelector: {
282
+ readonly title: "ClaimSelector";
283
+ readonly description: "Which claim a `claim` field accepts, from which credentials and issuers.";
284
+ readonly type: "object";
285
+ readonly additionalProperties: false;
286
+ readonly required: readonly ["credentialType", "claimPath"];
287
+ readonly properties: {
288
+ readonly credentialType: {
289
+ readonly type: "string";
290
+ readonly minLength: 1;
291
+ readonly maxLength: 128;
292
+ readonly description: "A `type` the presented credential MUST carry.";
293
+ };
294
+ readonly claimPath: {
295
+ readonly type: "string";
296
+ readonly minLength: 1;
297
+ readonly maxLength: 256;
298
+ readonly description: "JSON Pointer (RFC 6901) to the claim within `credentialSubject`.";
299
+ };
300
+ readonly issuers: {
301
+ readonly type: "array";
302
+ readonly maxItems: 32;
303
+ readonly uniqueItems: true;
304
+ readonly items: {
305
+ readonly type: "string";
306
+ readonly pattern: "^did:";
307
+ readonly maxLength: 2048;
308
+ };
309
+ readonly description: "Issuers the community accepts for this field. Absent: the community's trusted issuers for the credential type, as its own policy decides.";
310
+ };
311
+ };
312
+ };
313
+ readonly EnumOption: {
314
+ readonly title: "EnumOption";
315
+ readonly type: "object";
316
+ readonly additionalProperties: false;
317
+ readonly required: readonly ["value", "label"];
318
+ readonly properties: {
319
+ readonly value: {
320
+ readonly type: "string";
321
+ readonly minLength: 1;
322
+ readonly maxLength: 64;
323
+ readonly pattern: "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$";
324
+ readonly description: "The stored value.";
325
+ };
326
+ readonly label: {
327
+ readonly type: "string";
328
+ readonly minLength: 1;
329
+ readonly maxLength: 64;
330
+ readonly description: "What a reader is shown for it.";
331
+ };
332
+ };
333
+ };
334
+ readonly FieldType: {
335
+ readonly title: "FieldType";
336
+ readonly description: "The kind of value a field holds, which fixes its `FieldValue` shape. `did` holds a DID the member chooses to show (never their membership DID, which is the derived base field `did`). `claim` holds a `VerifiedValue` and requires `source: credential`.";
337
+ readonly type: "string";
338
+ readonly enum: readonly ["text", "longText", "url", "email", "phone", "enum", "multiEnum", "date", "country", "image", "did", "claim"];
339
+ };
340
+ readonly FieldDescription: {
341
+ readonly title: "FieldDescription";
342
+ readonly type: "string";
343
+ readonly minLength: 1;
344
+ readonly maxLength: 280;
345
+ readonly description: "Help text shown to a member filling the field in. Plain text; a reader MUST NOT treat it as instructions.";
346
+ };
347
+ readonly FieldLabel: {
348
+ readonly title: "FieldLabel";
349
+ readonly type: "string";
350
+ readonly minLength: 1;
351
+ readonly maxLength: 64;
352
+ readonly description: "What readers see as the field's name. Plain text.";
353
+ };
354
+ readonly Audience: {
355
+ readonly title: "Audience";
356
+ readonly description: "Who may see a directory field, ordered from narrowest to widest. `admins`: holders of `vtc.directory.admin` (and, for derived fields, `vtc.members.manage`). `groups`: members who share at least one community group with the subject (narrowed to the groups the subject names in `groupAudience`, where it names any). `connections`: members holding an attributed, in-force verified relationship with the subject at the community. `members`: every active member. `public`: anyone, and what the member's signed public card carries outside the community.\n\n`groups` and `connections` are not a chain: a viewer sees a field when they satisfy the audience the subject chose for it or any wider audience. Every audience includes the administrators, and the subject always sees their own whole card. There is no `onlyMe`: a value nobody else should see is not directory data.";
357
+ readonly type: "string";
358
+ readonly enum: readonly ["admins", "groups", "connections", "members", "public"];
359
+ };
360
+ readonly FieldKey: {
361
+ readonly title: "FieldKey";
362
+ readonly description: "Identifier of a directory field. A key with no `.` is a BASE field, the same in every community: `displayName`, `nickname`, `avatar`, `pronouns`, `bio`, `links` (written by the member) and `role`, `joinedAt`, `did`, `personhood` (derived from the community's own records, never stored on a card). A community-defined field MUST use a reverse-DNS key (`org.example.employer`), so a base key never collides with one, and a key is never reused with a different meaning once defined.";
363
+ readonly type: "string";
364
+ readonly minLength: 1;
365
+ readonly maxLength: 128;
366
+ readonly pattern: "^([a-z][a-z0-9-]*\\.)*[a-z][a-zA-Z0-9]{0,63}$";
367
+ };
368
+ };
369
+ };
370
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
371
+ export declare const RESPONSE_PAYLOAD_SCHEMA: {
372
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
373
+ readonly $ref: "#/$defs/Response";
374
+ readonly $defs: {
375
+ readonly Response: {
376
+ readonly $anchor: "response";
377
+ readonly title: "VTC Directory — Fields — Update — response payload";
378
+ readonly description: "The success response to a vtc/directory/fields/update/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/directory/fields/update/0.1#response.";
379
+ readonly type: "object";
380
+ readonly additionalProperties: false;
381
+ readonly required: readonly ["field"];
382
+ readonly properties: {
383
+ readonly field: {
384
+ readonly $ref: "#/$defs/FieldDefinition";
385
+ };
386
+ readonly ext: {
387
+ readonly $ref: "#/$defs/Ext";
388
+ };
389
+ };
390
+ };
391
+ readonly Ext: {
392
+ readonly title: "Ext";
393
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
394
+ readonly type: "object";
395
+ readonly minProperties: 1;
396
+ readonly additionalProperties: true;
397
+ readonly propertyNames: {
398
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
399
+ };
400
+ };
401
+ readonly FieldDefinition: {
402
+ readonly title: "FieldDefinition";
403
+ readonly description: "One field of the community's directory schema, as the community holds it. The audience order `admins` < `groups`/`connections` < `members` < `public` applies to `ceiling` and `defaultVisibility`; `defaultVisibility` is never wider than `ceiling`.";
404
+ readonly type: "object";
405
+ readonly additionalProperties: false;
406
+ readonly required: readonly ["key", "label", "type", "source", "base", "ceiling", "defaultVisibility", "required", "searchable", "facet", "order", "state"];
407
+ readonly properties: {
408
+ readonly key: {
409
+ readonly $ref: "#/$defs/FieldKey";
410
+ };
411
+ readonly label: {
412
+ readonly $ref: "#/$defs/FieldLabel";
413
+ };
414
+ readonly description: {
415
+ readonly $ref: "#/$defs/FieldDescription";
416
+ };
417
+ readonly type: {
418
+ readonly $ref: "#/$defs/FieldType";
419
+ };
420
+ readonly constraints: {
421
+ readonly $ref: "#/$defs/FieldConstraints";
422
+ };
423
+ readonly source: {
424
+ readonly $ref: "#/$defs/FieldSource";
425
+ };
426
+ readonly base: {
427
+ readonly type: "boolean";
428
+ readonly description: "`true` for a base field, present in every community; `false` for a field this community defined.";
429
+ };
430
+ readonly jsContactPath: {
431
+ readonly type: "string";
432
+ readonly minLength: 1;
433
+ readonly maxLength: 128;
434
+ readonly description: "Where the field lands when an entry is exported as a JSContact Card (RFC 9553), e.g. `name.full`, `nicknames`, `speakToAs.pronouns`. Absent: a vendor-specific property named by the key.";
435
+ };
436
+ readonly required: {
437
+ readonly type: "boolean";
438
+ };
439
+ readonly ceiling: {
440
+ readonly $ref: "#/$defs/Audience";
441
+ };
442
+ readonly defaultVisibility: {
443
+ readonly $ref: "#/$defs/Audience";
444
+ };
445
+ readonly searchable: {
446
+ readonly type: "boolean";
447
+ };
448
+ readonly facet: {
449
+ readonly type: "boolean";
450
+ };
451
+ readonly order: {
452
+ readonly type: "integer";
453
+ readonly minimum: 0;
454
+ readonly maximum: 10000;
455
+ };
456
+ readonly state: {
457
+ readonly $ref: "#/$defs/FieldState";
458
+ };
459
+ readonly retiredAt: {
460
+ readonly type: "string";
461
+ readonly format: "date-time";
462
+ readonly description: "When the field was retired. Present only on a retired field.";
463
+ };
464
+ readonly purgeAfter: {
465
+ readonly type: "string";
466
+ readonly format: "date-time";
467
+ readonly description: "When the values of a retired field are purged. Present only on a retired field.";
468
+ };
469
+ readonly updatedAt: {
470
+ readonly type: "string";
471
+ readonly format: "date-time";
472
+ };
473
+ readonly ext: {
474
+ readonly $ref: "#/$defs/Ext";
475
+ readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT widen a ceiling.";
476
+ };
477
+ };
478
+ };
479
+ readonly FieldState: {
480
+ readonly title: "FieldState";
481
+ readonly description: "`active`: in use. `disabled`: a base field the community has switched off; hidden from every projection and re-enablable. `retired`: a community field withdrawn for good; hidden at once, its values purged after the community's retention period, and its key never reused.";
482
+ readonly type: "string";
483
+ readonly enum: readonly ["active", "disabled", "retired"];
484
+ };
485
+ readonly FieldSource: {
486
+ readonly title: "FieldSource";
487
+ readonly description: "Who writes the value. `member`: self-asserted, through vtc/directory/card/update. `admin`: asserted by the community through vtc/directory/card/assert; the member reads it and cannot change it. `credential`: a claim the member discloses from a credential through vtc/directory/card/present, badged with its issuer. `derived`: a base field read from the community's own records (`role`, `joinedAt`, `did`, `personhood`) and never stored on a card. Each source is written only through its own path.";
488
+ readonly type: "string";
489
+ readonly enum: readonly ["member", "admin", "credential", "derived"];
490
+ };
491
+ readonly FieldConstraints: {
492
+ readonly title: "FieldConstraints";
493
+ readonly description: "Per-type constraints. A member that does not apply to the field's type is refused by the community with `valueInvalid` when the definition is written.";
494
+ readonly type: "object";
495
+ readonly additionalProperties: false;
496
+ readonly properties: {
497
+ readonly maxLength: {
498
+ readonly type: "integer";
499
+ readonly minimum: 1;
500
+ readonly maximum: 2000;
501
+ };
502
+ readonly minLength: {
503
+ readonly type: "integer";
504
+ readonly minimum: 0;
505
+ readonly maximum: 2000;
506
+ };
507
+ readonly pattern: {
508
+ readonly type: "string";
509
+ readonly minLength: 1;
510
+ readonly maxLength: 256;
511
+ readonly description: "ECMA-262 regular expression a text value MUST match.";
512
+ };
513
+ readonly options: {
514
+ readonly type: "array";
515
+ readonly minItems: 1;
516
+ readonly maxItems: 128;
517
+ readonly items: {
518
+ readonly $ref: "#/$defs/EnumOption";
519
+ };
520
+ readonly description: "The permitted values of an `enum` or `multiEnum` field.";
521
+ };
522
+ readonly maxItems: {
523
+ readonly type: "integer";
524
+ readonly minimum: 1;
525
+ readonly maximum: 32;
526
+ };
527
+ readonly minDate: {
528
+ readonly type: "string";
529
+ readonly format: "date";
530
+ };
531
+ readonly maxDate: {
532
+ readonly type: "string";
533
+ readonly format: "date";
534
+ };
535
+ readonly claim: {
536
+ readonly $ref: "#/$defs/ClaimSelector";
537
+ };
538
+ };
539
+ };
540
+ readonly ClaimSelector: {
541
+ readonly title: "ClaimSelector";
542
+ readonly description: "Which claim a `claim` field accepts, from which credentials and issuers.";
543
+ readonly type: "object";
544
+ readonly additionalProperties: false;
545
+ readonly required: readonly ["credentialType", "claimPath"];
546
+ readonly properties: {
547
+ readonly credentialType: {
548
+ readonly type: "string";
549
+ readonly minLength: 1;
550
+ readonly maxLength: 128;
551
+ readonly description: "A `type` the presented credential MUST carry.";
552
+ };
553
+ readonly claimPath: {
554
+ readonly type: "string";
555
+ readonly minLength: 1;
556
+ readonly maxLength: 256;
557
+ readonly description: "JSON Pointer (RFC 6901) to the claim within `credentialSubject`.";
558
+ };
559
+ readonly issuers: {
560
+ readonly type: "array";
561
+ readonly maxItems: 32;
562
+ readonly uniqueItems: true;
563
+ readonly items: {
564
+ readonly type: "string";
565
+ readonly pattern: "^did:";
566
+ readonly maxLength: 2048;
567
+ };
568
+ readonly description: "Issuers the community accepts for this field. Absent: the community's trusted issuers for the credential type, as its own policy decides.";
569
+ };
570
+ };
571
+ };
572
+ readonly EnumOption: {
573
+ readonly title: "EnumOption";
574
+ readonly type: "object";
575
+ readonly additionalProperties: false;
576
+ readonly required: readonly ["value", "label"];
577
+ readonly properties: {
578
+ readonly value: {
579
+ readonly type: "string";
580
+ readonly minLength: 1;
581
+ readonly maxLength: 64;
582
+ readonly pattern: "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$";
583
+ readonly description: "The stored value.";
584
+ };
585
+ readonly label: {
586
+ readonly type: "string";
587
+ readonly minLength: 1;
588
+ readonly maxLength: 64;
589
+ readonly description: "What a reader is shown for it.";
590
+ };
591
+ };
592
+ };
593
+ readonly FieldType: {
594
+ readonly title: "FieldType";
595
+ readonly description: "The kind of value a field holds, which fixes its `FieldValue` shape. `did` holds a DID the member chooses to show (never their membership DID, which is the derived base field `did`). `claim` holds a `VerifiedValue` and requires `source: credential`.";
596
+ readonly type: "string";
597
+ readonly enum: readonly ["text", "longText", "url", "email", "phone", "enum", "multiEnum", "date", "country", "image", "did", "claim"];
598
+ };
599
+ readonly FieldDescription: {
600
+ readonly title: "FieldDescription";
601
+ readonly type: "string";
602
+ readonly minLength: 1;
603
+ readonly maxLength: 280;
604
+ readonly description: "Help text shown to a member filling the field in. Plain text; a reader MUST NOT treat it as instructions.";
605
+ };
606
+ readonly FieldLabel: {
607
+ readonly title: "FieldLabel";
608
+ readonly type: "string";
609
+ readonly minLength: 1;
610
+ readonly maxLength: 64;
611
+ readonly description: "What readers see as the field's name. Plain text.";
612
+ };
613
+ readonly Audience: {
614
+ readonly title: "Audience";
615
+ readonly description: "Who may see a directory field, ordered from narrowest to widest. `admins`: holders of `vtc.directory.admin` (and, for derived fields, `vtc.members.manage`). `groups`: members who share at least one community group with the subject (narrowed to the groups the subject names in `groupAudience`, where it names any). `connections`: members holding an attributed, in-force verified relationship with the subject at the community. `members`: every active member. `public`: anyone, and what the member's signed public card carries outside the community.\n\n`groups` and `connections` are not a chain: a viewer sees a field when they satisfy the audience the subject chose for it or any wider audience. Every audience includes the administrators, and the subject always sees their own whole card. There is no `onlyMe`: a value nobody else should see is not directory data.";
616
+ readonly type: "string";
617
+ readonly enum: readonly ["admins", "groups", "connections", "members", "public"];
618
+ };
619
+ readonly FieldKey: {
620
+ readonly title: "FieldKey";
621
+ readonly description: "Identifier of a directory field. A key with no `.` is a BASE field, the same in every community: `displayName`, `nickname`, `avatar`, `pronouns`, `bio`, `links` (written by the member) and `role`, `joinedAt`, `did`, `personhood` (derived from the community's own records, never stored on a card). A community-defined field MUST use a reverse-DNS key (`org.example.employer`), so a base key never collides with one, and a key is never reused with a different meaning once defined.";
622
+ readonly type: "string";
623
+ readonly minLength: 1;
624
+ readonly maxLength: 128;
625
+ readonly pattern: "^([a-z][a-z0-9-]*\\.)*[a-z][a-zA-Z0-9]{0,63}$";
626
+ };
627
+ };
628
+ };
629
+ /**
630
+ * SPEC.md §7.2 policy for the request variant, from this specification's
631
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
632
+ * per-specification and cannot be derived from the document alone, and
633
+ * item 2 needs the schema this carries.
634
+ */
635
+ export declare const SPEC: {
636
+ readonly typeUri: "https://trusttasks.org/spec/vtc/directory/fields/update/0.1";
637
+ readonly isBearer: false;
638
+ readonly isProofRequired: true;
639
+ readonly isRecipientRequired: true;
640
+ readonly isIssuedAtRequired: true;
641
+ readonly payloadSchema: {
642
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
643
+ readonly $id: "https://trusttasks.org/spec/vtc/directory/fields/update/0.1";
644
+ readonly title: "VTC Directory — Fields — Update — payload";
645
+ readonly description: "An administrator changes a directory field's label, help text, constraints, order, ceiling or default visibility, or disables or re-enables a base field. The outer document members are owned by the framework — SPEC §6.3.";
646
+ readonly type: "object";
647
+ readonly additionalProperties: false;
648
+ readonly required: readonly ["key"];
649
+ readonly properties: {
650
+ readonly key: {
651
+ readonly $ref: "#/$defs/FieldKey";
652
+ };
653
+ readonly label: {
654
+ readonly $ref: "#/$defs/FieldLabel";
655
+ };
656
+ readonly description: {
657
+ readonly $ref: "#/$defs/FieldDescription";
658
+ };
659
+ readonly constraints: {
660
+ readonly $ref: "#/$defs/FieldConstraints";
661
+ readonly description: "Replaces the constraints whole. Values already stored that no longer satisfy them stay until their writer next changes them; projections show them unchanged.";
662
+ };
663
+ readonly ceiling: {
664
+ readonly $ref: "#/$defs/Audience";
665
+ };
666
+ readonly defaultVisibility: {
667
+ readonly $ref: "#/$defs/Audience";
668
+ };
669
+ readonly required: {
670
+ readonly type: "boolean";
671
+ };
672
+ readonly searchable: {
673
+ readonly type: "boolean";
674
+ };
675
+ readonly facet: {
676
+ readonly type: "boolean";
677
+ };
678
+ readonly order: {
679
+ readonly type: "integer";
680
+ readonly minimum: 0;
681
+ readonly maximum: 10000;
682
+ };
683
+ readonly enabled: {
684
+ readonly type: "boolean";
685
+ readonly description: "Base fields only: `false` disables the field (hidden from every projection, values kept), `true` re-enables it.";
686
+ };
687
+ readonly reason: {
688
+ readonly type: "string";
689
+ readonly minLength: 1;
690
+ readonly maxLength: 1024;
691
+ readonly description: "Why, recorded with the change and shown to anyone who must approve it.";
692
+ };
693
+ readonly ext: {
694
+ readonly $ref: "#/$defs/Ext";
695
+ };
696
+ };
697
+ readonly $defs: {
698
+ readonly Response: {
699
+ readonly $anchor: "response";
700
+ readonly title: "VTC Directory — Fields — Update — response payload";
701
+ readonly description: "The success response to a vtc/directory/fields/update/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/directory/fields/update/0.1#response.";
702
+ readonly type: "object";
703
+ readonly additionalProperties: false;
704
+ readonly required: readonly ["field"];
705
+ readonly properties: {
706
+ readonly field: {
707
+ readonly $ref: "#/$defs/FieldDefinition";
708
+ };
709
+ readonly ext: {
710
+ readonly $ref: "#/$defs/Ext";
711
+ };
712
+ };
713
+ };
714
+ readonly Ext: {
715
+ readonly title: "Ext";
716
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
717
+ readonly type: "object";
718
+ readonly minProperties: 1;
719
+ readonly additionalProperties: true;
720
+ readonly propertyNames: {
721
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
722
+ };
723
+ };
724
+ readonly FieldDefinition: {
725
+ readonly title: "FieldDefinition";
726
+ readonly description: "One field of the community's directory schema, as the community holds it. The audience order `admins` < `groups`/`connections` < `members` < `public` applies to `ceiling` and `defaultVisibility`; `defaultVisibility` is never wider than `ceiling`.";
727
+ readonly type: "object";
728
+ readonly additionalProperties: false;
729
+ readonly required: readonly ["key", "label", "type", "source", "base", "ceiling", "defaultVisibility", "required", "searchable", "facet", "order", "state"];
730
+ readonly properties: {
731
+ readonly key: {
732
+ readonly $ref: "#/$defs/FieldKey";
733
+ };
734
+ readonly label: {
735
+ readonly $ref: "#/$defs/FieldLabel";
736
+ };
737
+ readonly description: {
738
+ readonly $ref: "#/$defs/FieldDescription";
739
+ };
740
+ readonly type: {
741
+ readonly $ref: "#/$defs/FieldType";
742
+ };
743
+ readonly constraints: {
744
+ readonly $ref: "#/$defs/FieldConstraints";
745
+ };
746
+ readonly source: {
747
+ readonly $ref: "#/$defs/FieldSource";
748
+ };
749
+ readonly base: {
750
+ readonly type: "boolean";
751
+ readonly description: "`true` for a base field, present in every community; `false` for a field this community defined.";
752
+ };
753
+ readonly jsContactPath: {
754
+ readonly type: "string";
755
+ readonly minLength: 1;
756
+ readonly maxLength: 128;
757
+ readonly description: "Where the field lands when an entry is exported as a JSContact Card (RFC 9553), e.g. `name.full`, `nicknames`, `speakToAs.pronouns`. Absent: a vendor-specific property named by the key.";
758
+ };
759
+ readonly required: {
760
+ readonly type: "boolean";
761
+ };
762
+ readonly ceiling: {
763
+ readonly $ref: "#/$defs/Audience";
764
+ };
765
+ readonly defaultVisibility: {
766
+ readonly $ref: "#/$defs/Audience";
767
+ };
768
+ readonly searchable: {
769
+ readonly type: "boolean";
770
+ };
771
+ readonly facet: {
772
+ readonly type: "boolean";
773
+ };
774
+ readonly order: {
775
+ readonly type: "integer";
776
+ readonly minimum: 0;
777
+ readonly maximum: 10000;
778
+ };
779
+ readonly state: {
780
+ readonly $ref: "#/$defs/FieldState";
781
+ };
782
+ readonly retiredAt: {
783
+ readonly type: "string";
784
+ readonly format: "date-time";
785
+ readonly description: "When the field was retired. Present only on a retired field.";
786
+ };
787
+ readonly purgeAfter: {
788
+ readonly type: "string";
789
+ readonly format: "date-time";
790
+ readonly description: "When the values of a retired field are purged. Present only on a retired field.";
791
+ };
792
+ readonly updatedAt: {
793
+ readonly type: "string";
794
+ readonly format: "date-time";
795
+ };
796
+ readonly ext: {
797
+ readonly $ref: "#/$defs/Ext";
798
+ readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT widen a ceiling.";
799
+ };
800
+ };
801
+ };
802
+ readonly FieldState: {
803
+ readonly title: "FieldState";
804
+ readonly description: "`active`: in use. `disabled`: a base field the community has switched off; hidden from every projection and re-enablable. `retired`: a community field withdrawn for good; hidden at once, its values purged after the community's retention period, and its key never reused.";
805
+ readonly type: "string";
806
+ readonly enum: readonly ["active", "disabled", "retired"];
807
+ };
808
+ readonly FieldSource: {
809
+ readonly title: "FieldSource";
810
+ readonly description: "Who writes the value. `member`: self-asserted, through vtc/directory/card/update. `admin`: asserted by the community through vtc/directory/card/assert; the member reads it and cannot change it. `credential`: a claim the member discloses from a credential through vtc/directory/card/present, badged with its issuer. `derived`: a base field read from the community's own records (`role`, `joinedAt`, `did`, `personhood`) and never stored on a card. Each source is written only through its own path.";
811
+ readonly type: "string";
812
+ readonly enum: readonly ["member", "admin", "credential", "derived"];
813
+ };
814
+ readonly FieldConstraints: {
815
+ readonly title: "FieldConstraints";
816
+ readonly description: "Per-type constraints. A member that does not apply to the field's type is refused by the community with `valueInvalid` when the definition is written.";
817
+ readonly type: "object";
818
+ readonly additionalProperties: false;
819
+ readonly properties: {
820
+ readonly maxLength: {
821
+ readonly type: "integer";
822
+ readonly minimum: 1;
823
+ readonly maximum: 2000;
824
+ };
825
+ readonly minLength: {
826
+ readonly type: "integer";
827
+ readonly minimum: 0;
828
+ readonly maximum: 2000;
829
+ };
830
+ readonly pattern: {
831
+ readonly type: "string";
832
+ readonly minLength: 1;
833
+ readonly maxLength: 256;
834
+ readonly description: "ECMA-262 regular expression a text value MUST match.";
835
+ };
836
+ readonly options: {
837
+ readonly type: "array";
838
+ readonly minItems: 1;
839
+ readonly maxItems: 128;
840
+ readonly items: {
841
+ readonly $ref: "#/$defs/EnumOption";
842
+ };
843
+ readonly description: "The permitted values of an `enum` or `multiEnum` field.";
844
+ };
845
+ readonly maxItems: {
846
+ readonly type: "integer";
847
+ readonly minimum: 1;
848
+ readonly maximum: 32;
849
+ };
850
+ readonly minDate: {
851
+ readonly type: "string";
852
+ readonly format: "date";
853
+ };
854
+ readonly maxDate: {
855
+ readonly type: "string";
856
+ readonly format: "date";
857
+ };
858
+ readonly claim: {
859
+ readonly $ref: "#/$defs/ClaimSelector";
860
+ };
861
+ };
862
+ };
863
+ readonly ClaimSelector: {
864
+ readonly title: "ClaimSelector";
865
+ readonly description: "Which claim a `claim` field accepts, from which credentials and issuers.";
866
+ readonly type: "object";
867
+ readonly additionalProperties: false;
868
+ readonly required: readonly ["credentialType", "claimPath"];
869
+ readonly properties: {
870
+ readonly credentialType: {
871
+ readonly type: "string";
872
+ readonly minLength: 1;
873
+ readonly maxLength: 128;
874
+ readonly description: "A `type` the presented credential MUST carry.";
875
+ };
876
+ readonly claimPath: {
877
+ readonly type: "string";
878
+ readonly minLength: 1;
879
+ readonly maxLength: 256;
880
+ readonly description: "JSON Pointer (RFC 6901) to the claim within `credentialSubject`.";
881
+ };
882
+ readonly issuers: {
883
+ readonly type: "array";
884
+ readonly maxItems: 32;
885
+ readonly uniqueItems: true;
886
+ readonly items: {
887
+ readonly type: "string";
888
+ readonly pattern: "^did:";
889
+ readonly maxLength: 2048;
890
+ };
891
+ readonly description: "Issuers the community accepts for this field. Absent: the community's trusted issuers for the credential type, as its own policy decides.";
892
+ };
893
+ };
894
+ };
895
+ readonly EnumOption: {
896
+ readonly title: "EnumOption";
897
+ readonly type: "object";
898
+ readonly additionalProperties: false;
899
+ readonly required: readonly ["value", "label"];
900
+ readonly properties: {
901
+ readonly value: {
902
+ readonly type: "string";
903
+ readonly minLength: 1;
904
+ readonly maxLength: 64;
905
+ readonly pattern: "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$";
906
+ readonly description: "The stored value.";
907
+ };
908
+ readonly label: {
909
+ readonly type: "string";
910
+ readonly minLength: 1;
911
+ readonly maxLength: 64;
912
+ readonly description: "What a reader is shown for it.";
913
+ };
914
+ };
915
+ };
916
+ readonly FieldType: {
917
+ readonly title: "FieldType";
918
+ readonly description: "The kind of value a field holds, which fixes its `FieldValue` shape. `did` holds a DID the member chooses to show (never their membership DID, which is the derived base field `did`). `claim` holds a `VerifiedValue` and requires `source: credential`.";
919
+ readonly type: "string";
920
+ readonly enum: readonly ["text", "longText", "url", "email", "phone", "enum", "multiEnum", "date", "country", "image", "did", "claim"];
921
+ };
922
+ readonly FieldDescription: {
923
+ readonly title: "FieldDescription";
924
+ readonly type: "string";
925
+ readonly minLength: 1;
926
+ readonly maxLength: 280;
927
+ readonly description: "Help text shown to a member filling the field in. Plain text; a reader MUST NOT treat it as instructions.";
928
+ };
929
+ readonly FieldLabel: {
930
+ readonly title: "FieldLabel";
931
+ readonly type: "string";
932
+ readonly minLength: 1;
933
+ readonly maxLength: 64;
934
+ readonly description: "What readers see as the field's name. Plain text.";
935
+ };
936
+ readonly Audience: {
937
+ readonly title: "Audience";
938
+ readonly description: "Who may see a directory field, ordered from narrowest to widest. `admins`: holders of `vtc.directory.admin` (and, for derived fields, `vtc.members.manage`). `groups`: members who share at least one community group with the subject (narrowed to the groups the subject names in `groupAudience`, where it names any). `connections`: members holding an attributed, in-force verified relationship with the subject at the community. `members`: every active member. `public`: anyone, and what the member's signed public card carries outside the community.\n\n`groups` and `connections` are not a chain: a viewer sees a field when they satisfy the audience the subject chose for it or any wider audience. Every audience includes the administrators, and the subject always sees their own whole card. There is no `onlyMe`: a value nobody else should see is not directory data.";
939
+ readonly type: "string";
940
+ readonly enum: readonly ["admins", "groups", "connections", "members", "public"];
941
+ };
942
+ readonly FieldKey: {
943
+ readonly title: "FieldKey";
944
+ readonly description: "Identifier of a directory field. A key with no `.` is a BASE field, the same in every community: `displayName`, `nickname`, `avatar`, `pronouns`, `bio`, `links` (written by the member) and `role`, `joinedAt`, `did`, `personhood` (derived from the community's own records, never stored on a card). A community-defined field MUST use a reverse-DNS key (`org.example.employer`), so a base key never collides with one, and a key is never reused with a different meaning once defined.";
945
+ readonly type: "string";
946
+ readonly minLength: 1;
947
+ readonly maxLength: 128;
948
+ readonly pattern: "^([a-z][a-z0-9-]*\\.)*[a-z][a-zA-Z0-9]{0,63}$";
949
+ };
950
+ };
951
+ };
952
+ };
953
+ /**
954
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
955
+ * tracks the *issuer* party's requirement because a response swaps the
956
+ * parties (§7.3 item 5).
957
+ */
958
+ export declare const RESPONSE_SPEC: {
959
+ readonly typeUri: "https://trusttasks.org/spec/vtc/directory/fields/update/0.1#response";
960
+ readonly isBearer: false;
961
+ readonly isProofRequired: true;
962
+ readonly isRecipientRequired: true;
963
+ readonly isIssuedAtRequired: true;
964
+ readonly payloadSchema: {
965
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
966
+ readonly $ref: "#/$defs/Response";
967
+ readonly $defs: {
968
+ readonly Response: {
969
+ readonly $anchor: "response";
970
+ readonly title: "VTC Directory — Fields — Update — response payload";
971
+ readonly description: "The success response to a vtc/directory/fields/update/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/directory/fields/update/0.1#response.";
972
+ readonly type: "object";
973
+ readonly additionalProperties: false;
974
+ readonly required: readonly ["field"];
975
+ readonly properties: {
976
+ readonly field: {
977
+ readonly $ref: "#/$defs/FieldDefinition";
978
+ };
979
+ readonly ext: {
980
+ readonly $ref: "#/$defs/Ext";
981
+ };
982
+ };
983
+ };
984
+ readonly Ext: {
985
+ readonly title: "Ext";
986
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
987
+ readonly type: "object";
988
+ readonly minProperties: 1;
989
+ readonly additionalProperties: true;
990
+ readonly propertyNames: {
991
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
992
+ };
993
+ };
994
+ readonly FieldDefinition: {
995
+ readonly title: "FieldDefinition";
996
+ readonly description: "One field of the community's directory schema, as the community holds it. The audience order `admins` < `groups`/`connections` < `members` < `public` applies to `ceiling` and `defaultVisibility`; `defaultVisibility` is never wider than `ceiling`.";
997
+ readonly type: "object";
998
+ readonly additionalProperties: false;
999
+ readonly required: readonly ["key", "label", "type", "source", "base", "ceiling", "defaultVisibility", "required", "searchable", "facet", "order", "state"];
1000
+ readonly properties: {
1001
+ readonly key: {
1002
+ readonly $ref: "#/$defs/FieldKey";
1003
+ };
1004
+ readonly label: {
1005
+ readonly $ref: "#/$defs/FieldLabel";
1006
+ };
1007
+ readonly description: {
1008
+ readonly $ref: "#/$defs/FieldDescription";
1009
+ };
1010
+ readonly type: {
1011
+ readonly $ref: "#/$defs/FieldType";
1012
+ };
1013
+ readonly constraints: {
1014
+ readonly $ref: "#/$defs/FieldConstraints";
1015
+ };
1016
+ readonly source: {
1017
+ readonly $ref: "#/$defs/FieldSource";
1018
+ };
1019
+ readonly base: {
1020
+ readonly type: "boolean";
1021
+ readonly description: "`true` for a base field, present in every community; `false` for a field this community defined.";
1022
+ };
1023
+ readonly jsContactPath: {
1024
+ readonly type: "string";
1025
+ readonly minLength: 1;
1026
+ readonly maxLength: 128;
1027
+ readonly description: "Where the field lands when an entry is exported as a JSContact Card (RFC 9553), e.g. `name.full`, `nicknames`, `speakToAs.pronouns`. Absent: a vendor-specific property named by the key.";
1028
+ };
1029
+ readonly required: {
1030
+ readonly type: "boolean";
1031
+ };
1032
+ readonly ceiling: {
1033
+ readonly $ref: "#/$defs/Audience";
1034
+ };
1035
+ readonly defaultVisibility: {
1036
+ readonly $ref: "#/$defs/Audience";
1037
+ };
1038
+ readonly searchable: {
1039
+ readonly type: "boolean";
1040
+ };
1041
+ readonly facet: {
1042
+ readonly type: "boolean";
1043
+ };
1044
+ readonly order: {
1045
+ readonly type: "integer";
1046
+ readonly minimum: 0;
1047
+ readonly maximum: 10000;
1048
+ };
1049
+ readonly state: {
1050
+ readonly $ref: "#/$defs/FieldState";
1051
+ };
1052
+ readonly retiredAt: {
1053
+ readonly type: "string";
1054
+ readonly format: "date-time";
1055
+ readonly description: "When the field was retired. Present only on a retired field.";
1056
+ };
1057
+ readonly purgeAfter: {
1058
+ readonly type: "string";
1059
+ readonly format: "date-time";
1060
+ readonly description: "When the values of a retired field are purged. Present only on a retired field.";
1061
+ };
1062
+ readonly updatedAt: {
1063
+ readonly type: "string";
1064
+ readonly format: "date-time";
1065
+ };
1066
+ readonly ext: {
1067
+ readonly $ref: "#/$defs/Ext";
1068
+ readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT widen a ceiling.";
1069
+ };
1070
+ };
1071
+ };
1072
+ readonly FieldState: {
1073
+ readonly title: "FieldState";
1074
+ readonly description: "`active`: in use. `disabled`: a base field the community has switched off; hidden from every projection and re-enablable. `retired`: a community field withdrawn for good; hidden at once, its values purged after the community's retention period, and its key never reused.";
1075
+ readonly type: "string";
1076
+ readonly enum: readonly ["active", "disabled", "retired"];
1077
+ };
1078
+ readonly FieldSource: {
1079
+ readonly title: "FieldSource";
1080
+ readonly description: "Who writes the value. `member`: self-asserted, through vtc/directory/card/update. `admin`: asserted by the community through vtc/directory/card/assert; the member reads it and cannot change it. `credential`: a claim the member discloses from a credential through vtc/directory/card/present, badged with its issuer. `derived`: a base field read from the community's own records (`role`, `joinedAt`, `did`, `personhood`) and never stored on a card. Each source is written only through its own path.";
1081
+ readonly type: "string";
1082
+ readonly enum: readonly ["member", "admin", "credential", "derived"];
1083
+ };
1084
+ readonly FieldConstraints: {
1085
+ readonly title: "FieldConstraints";
1086
+ readonly description: "Per-type constraints. A member that does not apply to the field's type is refused by the community with `valueInvalid` when the definition is written.";
1087
+ readonly type: "object";
1088
+ readonly additionalProperties: false;
1089
+ readonly properties: {
1090
+ readonly maxLength: {
1091
+ readonly type: "integer";
1092
+ readonly minimum: 1;
1093
+ readonly maximum: 2000;
1094
+ };
1095
+ readonly minLength: {
1096
+ readonly type: "integer";
1097
+ readonly minimum: 0;
1098
+ readonly maximum: 2000;
1099
+ };
1100
+ readonly pattern: {
1101
+ readonly type: "string";
1102
+ readonly minLength: 1;
1103
+ readonly maxLength: 256;
1104
+ readonly description: "ECMA-262 regular expression a text value MUST match.";
1105
+ };
1106
+ readonly options: {
1107
+ readonly type: "array";
1108
+ readonly minItems: 1;
1109
+ readonly maxItems: 128;
1110
+ readonly items: {
1111
+ readonly $ref: "#/$defs/EnumOption";
1112
+ };
1113
+ readonly description: "The permitted values of an `enum` or `multiEnum` field.";
1114
+ };
1115
+ readonly maxItems: {
1116
+ readonly type: "integer";
1117
+ readonly minimum: 1;
1118
+ readonly maximum: 32;
1119
+ };
1120
+ readonly minDate: {
1121
+ readonly type: "string";
1122
+ readonly format: "date";
1123
+ };
1124
+ readonly maxDate: {
1125
+ readonly type: "string";
1126
+ readonly format: "date";
1127
+ };
1128
+ readonly claim: {
1129
+ readonly $ref: "#/$defs/ClaimSelector";
1130
+ };
1131
+ };
1132
+ };
1133
+ readonly ClaimSelector: {
1134
+ readonly title: "ClaimSelector";
1135
+ readonly description: "Which claim a `claim` field accepts, from which credentials and issuers.";
1136
+ readonly type: "object";
1137
+ readonly additionalProperties: false;
1138
+ readonly required: readonly ["credentialType", "claimPath"];
1139
+ readonly properties: {
1140
+ readonly credentialType: {
1141
+ readonly type: "string";
1142
+ readonly minLength: 1;
1143
+ readonly maxLength: 128;
1144
+ readonly description: "A `type` the presented credential MUST carry.";
1145
+ };
1146
+ readonly claimPath: {
1147
+ readonly type: "string";
1148
+ readonly minLength: 1;
1149
+ readonly maxLength: 256;
1150
+ readonly description: "JSON Pointer (RFC 6901) to the claim within `credentialSubject`.";
1151
+ };
1152
+ readonly issuers: {
1153
+ readonly type: "array";
1154
+ readonly maxItems: 32;
1155
+ readonly uniqueItems: true;
1156
+ readonly items: {
1157
+ readonly type: "string";
1158
+ readonly pattern: "^did:";
1159
+ readonly maxLength: 2048;
1160
+ };
1161
+ readonly description: "Issuers the community accepts for this field. Absent: the community's trusted issuers for the credential type, as its own policy decides.";
1162
+ };
1163
+ };
1164
+ };
1165
+ readonly EnumOption: {
1166
+ readonly title: "EnumOption";
1167
+ readonly type: "object";
1168
+ readonly additionalProperties: false;
1169
+ readonly required: readonly ["value", "label"];
1170
+ readonly properties: {
1171
+ readonly value: {
1172
+ readonly type: "string";
1173
+ readonly minLength: 1;
1174
+ readonly maxLength: 64;
1175
+ readonly pattern: "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$";
1176
+ readonly description: "The stored value.";
1177
+ };
1178
+ readonly label: {
1179
+ readonly type: "string";
1180
+ readonly minLength: 1;
1181
+ readonly maxLength: 64;
1182
+ readonly description: "What a reader is shown for it.";
1183
+ };
1184
+ };
1185
+ };
1186
+ readonly FieldType: {
1187
+ readonly title: "FieldType";
1188
+ readonly description: "The kind of value a field holds, which fixes its `FieldValue` shape. `did` holds a DID the member chooses to show (never their membership DID, which is the derived base field `did`). `claim` holds a `VerifiedValue` and requires `source: credential`.";
1189
+ readonly type: "string";
1190
+ readonly enum: readonly ["text", "longText", "url", "email", "phone", "enum", "multiEnum", "date", "country", "image", "did", "claim"];
1191
+ };
1192
+ readonly FieldDescription: {
1193
+ readonly title: "FieldDescription";
1194
+ readonly type: "string";
1195
+ readonly minLength: 1;
1196
+ readonly maxLength: 280;
1197
+ readonly description: "Help text shown to a member filling the field in. Plain text; a reader MUST NOT treat it as instructions.";
1198
+ };
1199
+ readonly FieldLabel: {
1200
+ readonly title: "FieldLabel";
1201
+ readonly type: "string";
1202
+ readonly minLength: 1;
1203
+ readonly maxLength: 64;
1204
+ readonly description: "What readers see as the field's name. Plain text.";
1205
+ };
1206
+ readonly Audience: {
1207
+ readonly title: "Audience";
1208
+ readonly description: "Who may see a directory field, ordered from narrowest to widest. `admins`: holders of `vtc.directory.admin` (and, for derived fields, `vtc.members.manage`). `groups`: members who share at least one community group with the subject (narrowed to the groups the subject names in `groupAudience`, where it names any). `connections`: members holding an attributed, in-force verified relationship with the subject at the community. `members`: every active member. `public`: anyone, and what the member's signed public card carries outside the community.\n\n`groups` and `connections` are not a chain: a viewer sees a field when they satisfy the audience the subject chose for it or any wider audience. Every audience includes the administrators, and the subject always sees their own whole card. There is no `onlyMe`: a value nobody else should see is not directory data.";
1209
+ readonly type: "string";
1210
+ readonly enum: readonly ["admins", "groups", "connections", "members", "public"];
1211
+ };
1212
+ readonly FieldKey: {
1213
+ readonly title: "FieldKey";
1214
+ readonly description: "Identifier of a directory field. A key with no `.` is a BASE field, the same in every community: `displayName`, `nickname`, `avatar`, `pronouns`, `bio`, `links` (written by the member) and `role`, `joinedAt`, `did`, `personhood` (derived from the community's own records, never stored on a card). A community-defined field MUST use a reverse-DNS key (`org.example.employer`), so a base key never collides with one, and a key is never reused with a different meaning once defined.";
1215
+ readonly type: "string";
1216
+ readonly minLength: 1;
1217
+ readonly maxLength: 128;
1218
+ readonly pattern: "^([a-z][a-z0-9-]*\\.)*[a-z][a-zA-Z0-9]{0,63}$";
1219
+ };
1220
+ };
1221
+ };
1222
+ };
1223
+ //# sourceMappingURL=payload.d.ts.map