@openvtc/trust-tasks 0.26.17 → 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 (323) hide show
  1. package/CHANGELOG.md +166 -0
  2. package/dist/_shared/components.d.ts +755 -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 +52 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +52 -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/seal/0.1/payload.d.ts +24 -4
  75. package/dist/rooms/keys/seal/0.1/payload.d.ts.map +1 -1
  76. package/dist/rooms/keys/seal/0.1/payload.js +12 -2
  77. package/dist/rooms/keys/seal/0.1/payload.js.map +1 -1
  78. package/dist/rooms/keys/seal/0.2/payload.d.ts +24 -4
  79. package/dist/rooms/keys/seal/0.2/payload.d.ts.map +1 -1
  80. package/dist/rooms/keys/seal/0.2/payload.js +12 -2
  81. package/dist/rooms/keys/seal/0.2/payload.js.map +1 -1
  82. package/dist/rooms/owner/group/remove/0.3/payload.d.ts +600 -0
  83. package/dist/rooms/owner/group/remove/0.3/payload.d.ts.map +1 -0
  84. package/dist/rooms/owner/group/remove/0.3/payload.js +310 -0
  85. package/dist/rooms/owner/group/remove/0.3/payload.js.map +1 -0
  86. package/dist/rooms/owner/register/0.2/payload.d.ts +591 -0
  87. package/dist/rooms/owner/register/0.2/payload.d.ts.map +1 -0
  88. package/dist/rooms/owner/register/0.2/payload.js +335 -0
  89. package/dist/rooms/owner/register/0.2/payload.js.map +1 -0
  90. package/dist/rooms/records/get/0.1/payload.d.ts +24 -4
  91. package/dist/rooms/records/get/0.1/payload.d.ts.map +1 -1
  92. package/dist/rooms/records/get/0.1/payload.js +12 -2
  93. package/dist/rooms/records/get/0.1/payload.js.map +1 -1
  94. package/dist/rooms/records/get/0.2/payload.d.ts +24 -4
  95. package/dist/rooms/records/get/0.2/payload.d.ts.map +1 -1
  96. package/dist/rooms/records/get/0.2/payload.js +12 -2
  97. package/dist/rooms/records/get/0.2/payload.js.map +1 -1
  98. package/dist/rooms/records/put/0.1/payload.d.ts +24 -4
  99. package/dist/rooms/records/put/0.1/payload.d.ts.map +1 -1
  100. package/dist/rooms/records/put/0.1/payload.js +12 -2
  101. package/dist/rooms/records/put/0.1/payload.js.map +1 -1
  102. package/dist/rooms/records/put/0.2/payload.d.ts +24 -4
  103. package/dist/rooms/records/put/0.2/payload.d.ts.map +1 -1
  104. package/dist/rooms/records/put/0.2/payload.js +12 -2
  105. package/dist/rooms/records/put/0.2/payload.js.map +1 -1
  106. package/dist/vtc/admin/events/_shared/0.3/topic.d.ts +30 -0
  107. package/dist/vtc/admin/events/_shared/0.3/topic.d.ts.map +1 -0
  108. package/dist/vtc/admin/events/_shared/0.3/topic.js +6 -0
  109. package/dist/vtc/admin/events/_shared/0.3/topic.js.map +1 -0
  110. package/dist/vtc/admin/events/event/0.3/payload.d.ts +172 -0
  111. package/dist/vtc/admin/events/event/0.3/payload.d.ts.map +1 -0
  112. package/dist/vtc/admin/events/event/0.3/payload.js +102 -0
  113. package/dist/vtc/admin/events/event/0.3/payload.js.map +1 -0
  114. package/dist/vtc/admin/events/subscribe/0.3/payload.d.ts +409 -0
  115. package/dist/vtc/admin/events/subscribe/0.3/payload.d.ts.map +1 -0
  116. package/dist/vtc/admin/events/subscribe/0.3/payload.js +236 -0
  117. package/dist/vtc/admin/events/subscribe/0.3/payload.js.map +1 -0
  118. package/dist/vtc/directory/_shared/0.1/admin-note.d.ts +16 -0
  119. package/dist/vtc/directory/_shared/0.1/admin-note.d.ts.map +1 -0
  120. package/dist/vtc/directory/_shared/0.1/admin-note.js +6 -0
  121. package/dist/vtc/directory/_shared/0.1/admin-note.js.map +1 -0
  122. package/dist/vtc/directory/_shared/0.1/directory-card.d.ts +22 -0
  123. package/dist/vtc/directory/_shared/0.1/directory-card.d.ts.map +1 -0
  124. package/dist/vtc/directory/_shared/0.1/directory-card.js +6 -0
  125. package/dist/vtc/directory/_shared/0.1/directory-card.js.map +1 -0
  126. package/dist/vtc/directory/_shared/0.1/field-definition.d.ts +16 -0
  127. package/dist/vtc/directory/_shared/0.1/field-definition.d.ts.map +1 -0
  128. package/dist/vtc/directory/_shared/0.1/field-definition.js +6 -0
  129. package/dist/vtc/directory/_shared/0.1/field-definition.js.map +1 -0
  130. package/dist/vtc/directory/card/assert/0.1/payload.d.ts +780 -0
  131. package/dist/vtc/directory/card/assert/0.1/payload.d.ts.map +1 -0
  132. package/dist/vtc/directory/card/assert/0.1/payload.js +454 -0
  133. package/dist/vtc/directory/card/assert/0.1/payload.js.map +1 -0
  134. package/dist/vtc/directory/card/present/0.1/payload.d.ts +603 -0
  135. package/dist/vtc/directory/card/present/0.1/payload.d.ts.map +1 -0
  136. package/dist/vtc/directory/card/present/0.1/payload.js +297 -0
  137. package/dist/vtc/directory/card/present/0.1/payload.js.map +1 -0
  138. package/dist/vtc/directory/card/show/0.1/payload.d.ts +1144 -0
  139. package/dist/vtc/directory/card/show/0.1/payload.d.ts.map +1 -0
  140. package/dist/vtc/directory/card/show/0.1/payload.js +695 -0
  141. package/dist/vtc/directory/card/show/0.1/payload.js.map +1 -0
  142. package/dist/vtc/directory/card/update/0.1/payload.d.ts +1291 -0
  143. package/dist/vtc/directory/card/update/0.1/payload.d.ts.map +1 -0
  144. package/dist/vtc/directory/card/update/0.1/payload.js +765 -0
  145. package/dist/vtc/directory/card/update/0.1/payload.js.map +1 -0
  146. package/dist/vtc/directory/entries/list/0.1/payload.d.ts +5525 -0
  147. package/dist/vtc/directory/entries/list/0.1/payload.d.ts.map +1 -0
  148. package/dist/vtc/directory/entries/list/0.1/payload.js +656 -0
  149. package/dist/vtc/directory/entries/list/0.1/payload.js.map +1 -0
  150. package/dist/vtc/directory/entries/show/0.1/payload.d.ts +861 -0
  151. package/dist/vtc/directory/entries/show/0.1/payload.d.ts.map +1 -0
  152. package/dist/vtc/directory/entries/show/0.1/payload.js +502 -0
  153. package/dist/vtc/directory/entries/show/0.1/payload.js.map +1 -0
  154. package/dist/vtc/directory/export/0.1/payload.d.ts +346 -0
  155. package/dist/vtc/directory/export/0.1/payload.d.ts.map +1 -0
  156. package/dist/vtc/directory/export/0.1/payload.js +192 -0
  157. package/dist/vtc/directory/export/0.1/payload.js.map +1 -0
  158. package/dist/vtc/directory/fields/define/0.1/payload.d.ts +1355 -0
  159. package/dist/vtc/directory/fields/define/0.1/payload.d.ts.map +1 -0
  160. package/dist/vtc/directory/fields/define/0.1/payload.js +811 -0
  161. package/dist/vtc/directory/fields/define/0.1/payload.js.map +1 -0
  162. package/dist/vtc/directory/fields/list/0.1/payload.d.ts +1236 -0
  163. package/dist/vtc/directory/fields/list/0.1/payload.d.ts.map +1 -0
  164. package/dist/vtc/directory/fields/list/0.1/payload.js +739 -0
  165. package/dist/vtc/directory/fields/list/0.1/payload.js.map +1 -0
  166. package/dist/vtc/directory/fields/retire/0.1/payload.d.ts +1146 -0
  167. package/dist/vtc/directory/fields/retire/0.1/payload.d.ts.map +1 -0
  168. package/dist/vtc/directory/fields/retire/0.1/payload.js +684 -0
  169. package/dist/vtc/directory/fields/retire/0.1/payload.js.map +1 -0
  170. package/dist/vtc/directory/fields/update/0.1/payload.d.ts +1223 -0
  171. package/dist/vtc/directory/fields/update/0.1/payload.d.ts.map +1 -0
  172. package/dist/vtc/directory/fields/update/0.1/payload.js +715 -0
  173. package/dist/vtc/directory/fields/update/0.1/payload.js.map +1 -0
  174. package/dist/vtc/directory/introduce/0.1/payload.d.ts +417 -0
  175. package/dist/vtc/directory/introduce/0.1/payload.d.ts.map +1 -0
  176. package/dist/vtc/directory/introduce/0.1/payload.js +183 -0
  177. package/dist/vtc/directory/introduce/0.1/payload.js.map +1 -0
  178. package/dist/vtc/directory/introduction/0.1/payload.d.ts +423 -0
  179. package/dist/vtc/directory/introduction/0.1/payload.d.ts.map +1 -0
  180. package/dist/vtc/directory/introduction/0.1/payload.js +241 -0
  181. package/dist/vtc/directory/introduction/0.1/payload.js.map +1 -0
  182. package/dist/vtc/directory/notes/append/0.1/payload.d.ts +494 -0
  183. package/dist/vtc/directory/notes/append/0.1/payload.d.ts.map +1 -0
  184. package/dist/vtc/directory/notes/append/0.1/payload.js +281 -0
  185. package/dist/vtc/directory/notes/append/0.1/payload.js.map +1 -0
  186. package/dist/vtc/directory/notes/export/0.1/payload.d.ts +530 -0
  187. package/dist/vtc/directory/notes/export/0.1/payload.d.ts.map +1 -0
  188. package/dist/vtc/directory/notes/export/0.1/payload.js +294 -0
  189. package/dist/vtc/directory/notes/export/0.1/payload.js.map +1 -0
  190. package/dist/vtc/directory/notes/list/0.1/payload.d.ts +528 -0
  191. package/dist/vtc/directory/notes/list/0.1/payload.d.ts.map +1 -0
  192. package/dist/vtc/directory/notes/list/0.1/payload.js +294 -0
  193. package/dist/vtc/directory/notes/list/0.1/payload.js.map +1 -0
  194. package/dist/vtc/groups/_shared/0.1/group.d.ts +22 -0
  195. package/dist/vtc/groups/_shared/0.1/group.d.ts.map +1 -0
  196. package/dist/vtc/groups/_shared/0.1/group.js +6 -0
  197. package/dist/vtc/groups/_shared/0.1/group.js.map +1 -0
  198. package/dist/vtc/groups/bindings/add/0.1/payload.d.ts +914 -0
  199. package/dist/vtc/groups/bindings/add/0.1/payload.d.ts.map +1 -0
  200. package/dist/vtc/groups/bindings/add/0.1/payload.js +536 -0
  201. package/dist/vtc/groups/bindings/add/0.1/payload.js.map +1 -0
  202. package/dist/vtc/groups/bindings/list/0.1/payload.d.ts +910 -0
  203. package/dist/vtc/groups/bindings/list/0.1/payload.d.ts.map +1 -0
  204. package/dist/vtc/groups/bindings/list/0.1/payload.js +533 -0
  205. package/dist/vtc/groups/bindings/list/0.1/payload.js.map +1 -0
  206. package/dist/vtc/groups/bindings/remove/0.1/payload.d.ts +310 -0
  207. package/dist/vtc/groups/bindings/remove/0.1/payload.d.ts.map +1 -0
  208. package/dist/vtc/groups/bindings/remove/0.1/payload.js +182 -0
  209. package/dist/vtc/groups/bindings/remove/0.1/payload.js.map +1 -0
  210. package/dist/vtc/groups/create/0.1/payload.d.ts +1075 -0
  211. package/dist/vtc/groups/create/0.1/payload.d.ts.map +1 -0
  212. package/dist/vtc/groups/create/0.1/payload.js +631 -0
  213. package/dist/vtc/groups/create/0.1/payload.js.map +1 -0
  214. package/dist/vtc/groups/delete/0.1/payload.d.ts +317 -0
  215. package/dist/vtc/groups/delete/0.1/payload.d.ts.map +1 -0
  216. package/dist/vtc/groups/delete/0.1/payload.js +182 -0
  217. package/dist/vtc/groups/delete/0.1/payload.js.map +1 -0
  218. package/dist/vtc/groups/join/0.1/payload.d.ts +1262 -0
  219. package/dist/vtc/groups/join/0.1/payload.d.ts.map +1 -0
  220. package/dist/vtc/groups/join/0.1/payload.js +758 -0
  221. package/dist/vtc/groups/join/0.1/payload.js.map +1 -0
  222. package/dist/vtc/groups/leave/0.1/payload.d.ts +291 -0
  223. package/dist/vtc/groups/leave/0.1/payload.d.ts.map +1 -0
  224. package/dist/vtc/groups/leave/0.1/payload.js +179 -0
  225. package/dist/vtc/groups/leave/0.1/payload.js.map +1 -0
  226. package/dist/vtc/groups/list/0.1/payload.d.ts +1127 -0
  227. package/dist/vtc/groups/list/0.1/payload.d.ts.map +1 -0
  228. package/dist/vtc/groups/list/0.1/payload.js +674 -0
  229. package/dist/vtc/groups/list/0.1/payload.js.map +1 -0
  230. package/dist/vtc/groups/members/add/0.1/payload.d.ts +1014 -0
  231. package/dist/vtc/groups/members/add/0.1/payload.d.ts.map +1 -0
  232. package/dist/vtc/groups/members/add/0.1/payload.js +607 -0
  233. package/dist/vtc/groups/members/add/0.1/payload.js.map +1 -0
  234. package/dist/vtc/groups/members/list/0.1/payload.d.ts +1018 -0
  235. package/dist/vtc/groups/members/list/0.1/payload.d.ts.map +1 -0
  236. package/dist/vtc/groups/members/list/0.1/payload.js +606 -0
  237. package/dist/vtc/groups/members/list/0.1/payload.js.map +1 -0
  238. package/dist/vtc/groups/members/remove/0.1/payload.d.ts +351 -0
  239. package/dist/vtc/groups/members/remove/0.1/payload.d.ts.map +1 -0
  240. package/dist/vtc/groups/members/remove/0.1/payload.js +205 -0
  241. package/dist/vtc/groups/members/remove/0.1/payload.js.map +1 -0
  242. package/dist/vtc/groups/requests/decide/0.1/payload.d.ts +1236 -0
  243. package/dist/vtc/groups/requests/decide/0.1/payload.d.ts.map +1 -0
  244. package/dist/vtc/groups/requests/decide/0.1/payload.js +741 -0
  245. package/dist/vtc/groups/requests/decide/0.1/payload.js.map +1 -0
  246. package/dist/vtc/groups/requests/list/0.1/payload.d.ts +1063 -0
  247. package/dist/vtc/groups/requests/list/0.1/payload.d.ts.map +1 -0
  248. package/dist/vtc/groups/requests/list/0.1/payload.js +622 -0
  249. package/dist/vtc/groups/requests/list/0.1/payload.js.map +1 -0
  250. package/dist/vtc/groups/show/0.1/payload.d.ts +1012 -0
  251. package/dist/vtc/groups/show/0.1/payload.d.ts.map +1 -0
  252. package/dist/vtc/groups/show/0.1/payload.js +619 -0
  253. package/dist/vtc/groups/show/0.1/payload.js.map +1 -0
  254. package/dist/vtc/groups/update/0.1/payload.d.ts +1078 -0
  255. package/dist/vtc/groups/update/0.1/payload.d.ts.map +1 -0
  256. package/dist/vtc/groups/update/0.1/payload.js +633 -0
  257. package/dist/vtc/groups/update/0.1/payload.js.map +1 -0
  258. package/package.json +1 -1
  259. package/src/_shared/components.ts +800 -1
  260. package/src/auth/oob/_shared/0.1/oob.ts +1 -1
  261. package/src/auth/oob/grant/0.2/payload.ts +186 -0
  262. package/src/auth/oob/prove/0.2/payload.ts +523 -0
  263. package/src/auth/oob/respond/0.2/payload.ts +178 -0
  264. package/src/device/list/0.1/payload.ts +2 -0
  265. package/src/device/list/0.2/payload.ts +2 -0
  266. package/src/device/register/0.1/payload.ts +2 -0
  267. package/src/device/register/0.2/payload.ts +2 -0
  268. package/src/index.ts +52 -0
  269. package/src/keys/sign-document/0.1/payload.ts +437 -0
  270. package/src/persona/_shared/0.1/contact-annotations.ts +23 -0
  271. package/src/persona/contact/get/1.1/payload.ts +876 -0
  272. package/src/persona/contact/list/1.1/payload.ts +497 -0
  273. package/src/persona/contact/lists/delete/1.0/payload.ts +204 -0
  274. package/src/persona/contact/lists/list/1.0/payload.ts +332 -0
  275. package/src/persona/contact/lists/put/1.0/payload.ts +429 -0
  276. package/src/persona/contact/lists/show/1.0/payload.ts +305 -0
  277. package/src/persona/contact/put/1.1/payload.ts +958 -0
  278. package/src/rooms/keys/seal/0.1/payload.ts +12 -2
  279. package/src/rooms/keys/seal/0.2/payload.ts +12 -2
  280. package/src/rooms/owner/group/remove/0.3/payload.ts +415 -0
  281. package/src/rooms/owner/register/0.2/payload.ts +415 -0
  282. package/src/rooms/records/get/0.1/payload.ts +12 -2
  283. package/src/rooms/records/get/0.2/payload.ts +12 -2
  284. package/src/rooms/records/put/0.1/payload.ts +12 -2
  285. package/src/rooms/records/put/0.2/payload.ts +12 -2
  286. package/src/vtc/admin/events/_shared/0.3/topic.ts +31 -0
  287. package/src/vtc/admin/events/event/0.3/payload.ts +136 -0
  288. package/src/vtc/admin/events/subscribe/0.3/payload.ts +314 -0
  289. package/src/vtc/directory/_shared/0.1/admin-note.ts +17 -0
  290. package/src/vtc/directory/_shared/0.1/directory-card.ts +23 -0
  291. package/src/vtc/directory/_shared/0.1/field-definition.ts +17 -0
  292. package/src/vtc/directory/card/assert/0.1/payload.ts +503 -0
  293. package/src/vtc/directory/card/present/0.1/payload.ts +437 -0
  294. package/src/vtc/directory/card/show/0.1/payload.ts +732 -0
  295. package/src/vtc/directory/card/update/0.1/payload.ts +827 -0
  296. package/src/vtc/directory/entries/list/0.1/payload.ts +5676 -0
  297. package/src/vtc/directory/entries/show/0.1/payload.ts +541 -0
  298. package/src/vtc/directory/export/0.1/payload.ts +241 -0
  299. package/src/vtc/directory/fields/define/0.1/payload.ts +847 -0
  300. package/src/vtc/directory/fields/list/0.1/payload.ts +780 -0
  301. package/src/vtc/directory/fields/retire/0.1/payload.ts +723 -0
  302. package/src/vtc/directory/fields/update/0.1/payload.ts +767 -0
  303. package/src/vtc/directory/introduce/0.1/payload.ts +324 -0
  304. package/src/vtc/directory/introduction/0.1/payload.ts +278 -0
  305. package/src/vtc/directory/notes/append/0.1/payload.ts +319 -0
  306. package/src/vtc/directory/notes/export/0.1/payload.ts +337 -0
  307. package/src/vtc/directory/notes/list/0.1/payload.ts +337 -0
  308. package/src/vtc/groups/_shared/0.1/group.ts +23 -0
  309. package/src/vtc/groups/bindings/add/0.1/payload.ts +573 -0
  310. package/src/vtc/groups/bindings/list/0.1/payload.ts +568 -0
  311. package/src/vtc/groups/bindings/remove/0.1/payload.ts +223 -0
  312. package/src/vtc/groups/create/0.1/payload.ts +683 -0
  313. package/src/vtc/groups/delete/0.1/payload.ts +224 -0
  314. package/src/vtc/groups/join/0.1/payload.ts +807 -0
  315. package/src/vtc/groups/leave/0.1/payload.ts +219 -0
  316. package/src/vtc/groups/list/0.1/payload.ts +728 -0
  317. package/src/vtc/groups/members/add/0.1/payload.ts +648 -0
  318. package/src/vtc/groups/members/list/0.1/payload.ts +647 -0
  319. package/src/vtc/groups/members/remove/0.1/payload.ts +251 -0
  320. package/src/vtc/groups/requests/decide/0.1/payload.ts +786 -0
  321. package/src/vtc/groups/requests/list/0.1/payload.ts +670 -0
  322. package/src/vtc/groups/show/0.1/payload.ts +652 -0
  323. package/src/vtc/groups/update/0.1/payload.ts +682 -0
@@ -0,0 +1,847 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/vtc/directory/fields/define/0.1/payload.schema.json
4
+ */
5
+
6
+ import type { Audience, ClaimSelector, EnumOption, Ext, FieldConstraints, FieldDefinition, FieldDescription, FieldInput, FieldKey, FieldLabel, FieldSource, FieldState, FieldType } from "../../../../../_shared/components.js";
7
+
8
+
9
+ /**
10
+ * An administrator adds a field to the community's directory schema: its type, who writes it, its ceiling and its default visibility. The outer document members are owned by the framework — SPEC §6.3.
11
+ */
12
+ export interface VTCDirectoryFieldsDefinePayload {
13
+ field: FieldInput;
14
+ /**
15
+ * Why, recorded with the change and shown to anyone who must approve it.
16
+ */
17
+ reason?: string;
18
+ ext?: Ext;
19
+ }
20
+ /**
21
+ * The success response to a vtc/directory/fields/define/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/directory/fields/define/0.1#response.
22
+ */
23
+ export interface VTCDirectoryFieldsDefineResponsePayload {
24
+ field: FieldDefinition;
25
+ ext?: Ext;
26
+ }
27
+
28
+ /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
29
+ export type { Audience, ClaimSelector, EnumOption, Ext, FieldConstraints, FieldDefinition, FieldDescription, FieldInput, FieldKey, FieldLabel, FieldSource, FieldState, FieldType };
30
+
31
+ /** Trust Task type URI. */
32
+ export const TYPE_URI = "https://trusttasks.org/spec/vtc/directory/fields/define/0.1" as const;
33
+
34
+ /** Stable alias for this specification's request payload shape. */
35
+ export type Payload = VTCDirectoryFieldsDefinePayload;
36
+
37
+ /** Trust Task response type URI (request type URI + "#response"). */
38
+ export const RESPONSE_TYPE_URI = "https://trusttasks.org/spec/vtc/directory/fields/define/0.1#response" as const;
39
+
40
+ /** Stable alias for this specification's success-response payload shape. */
41
+ export type Response = VTCDirectoryFieldsDefineResponsePayload;
42
+
43
+ /**
44
+ * This specification's payload schema, as a value.
45
+ *
46
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
47
+ * rather than only as a `.json` file because TypeScript types are erased
48
+ * at runtime: without a schema a consumer has nothing to validate, and
49
+ * every REQUIRED payload member is optional in practice. Cross-file
50
+ * `$ref`s are already inlined, so it needs no resolver.
51
+ */
52
+ export const PAYLOAD_SCHEMA = {
53
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
54
+ "$id": "https://trusttasks.org/spec/vtc/directory/fields/define/0.1",
55
+ "title": "VTC Directory — Fields — Define — payload",
56
+ "description": "An administrator adds a field to the community's directory schema: its type, who writes it, its ceiling and its default visibility. The outer document members are owned by the framework — SPEC §6.3.",
57
+ "type": "object",
58
+ "additionalProperties": false,
59
+ "required": [
60
+ "field"
61
+ ],
62
+ "properties": {
63
+ "field": {
64
+ "$ref": "#/$defs/FieldInput"
65
+ },
66
+ "reason": {
67
+ "type": "string",
68
+ "minLength": 1,
69
+ "maxLength": 1024,
70
+ "description": "Why, recorded with the change and shown to anyone who must approve it."
71
+ },
72
+ "ext": {
73
+ "$ref": "#/$defs/Ext"
74
+ }
75
+ },
76
+ "$defs": {
77
+ "Response": {
78
+ "$anchor": "response",
79
+ "title": "VTC Directory — Fields — Define — response payload",
80
+ "description": "The success response to a vtc/directory/fields/define/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/directory/fields/define/0.1#response.",
81
+ "type": "object",
82
+ "additionalProperties": false,
83
+ "required": [
84
+ "field"
85
+ ],
86
+ "properties": {
87
+ "field": {
88
+ "$ref": "#/$defs/FieldDefinition"
89
+ },
90
+ "ext": {
91
+ "$ref": "#/$defs/Ext"
92
+ }
93
+ }
94
+ },
95
+ "Ext": {
96
+ "title": "Ext",
97
+ "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.",
98
+ "type": "object",
99
+ "minProperties": 1,
100
+ "additionalProperties": true,
101
+ "propertyNames": {
102
+ "pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
103
+ }
104
+ },
105
+ "FieldDefinition": {
106
+ "title": "FieldDefinition",
107
+ "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`.",
108
+ "type": "object",
109
+ "additionalProperties": false,
110
+ "required": [
111
+ "key",
112
+ "label",
113
+ "type",
114
+ "source",
115
+ "base",
116
+ "ceiling",
117
+ "defaultVisibility",
118
+ "required",
119
+ "searchable",
120
+ "facet",
121
+ "order",
122
+ "state"
123
+ ],
124
+ "properties": {
125
+ "key": {
126
+ "$ref": "#/$defs/FieldKey"
127
+ },
128
+ "label": {
129
+ "$ref": "#/$defs/FieldLabel"
130
+ },
131
+ "description": {
132
+ "$ref": "#/$defs/FieldDescription"
133
+ },
134
+ "type": {
135
+ "$ref": "#/$defs/FieldType"
136
+ },
137
+ "constraints": {
138
+ "$ref": "#/$defs/FieldConstraints"
139
+ },
140
+ "source": {
141
+ "$ref": "#/$defs/FieldSource"
142
+ },
143
+ "base": {
144
+ "type": "boolean",
145
+ "description": "`true` for a base field, present in every community; `false` for a field this community defined."
146
+ },
147
+ "jsContactPath": {
148
+ "type": "string",
149
+ "minLength": 1,
150
+ "maxLength": 128,
151
+ "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."
152
+ },
153
+ "required": {
154
+ "type": "boolean"
155
+ },
156
+ "ceiling": {
157
+ "$ref": "#/$defs/Audience"
158
+ },
159
+ "defaultVisibility": {
160
+ "$ref": "#/$defs/Audience"
161
+ },
162
+ "searchable": {
163
+ "type": "boolean"
164
+ },
165
+ "facet": {
166
+ "type": "boolean"
167
+ },
168
+ "order": {
169
+ "type": "integer",
170
+ "minimum": 0,
171
+ "maximum": 10000
172
+ },
173
+ "state": {
174
+ "$ref": "#/$defs/FieldState"
175
+ },
176
+ "retiredAt": {
177
+ "type": "string",
178
+ "format": "date-time",
179
+ "description": "When the field was retired. Present only on a retired field."
180
+ },
181
+ "purgeAfter": {
182
+ "type": "string",
183
+ "format": "date-time",
184
+ "description": "When the values of a retired field are purged. Present only on a retired field."
185
+ },
186
+ "updatedAt": {
187
+ "type": "string",
188
+ "format": "date-time"
189
+ },
190
+ "ext": {
191
+ "$ref": "#/$defs/Ext",
192
+ "description": "Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT widen a ceiling."
193
+ }
194
+ }
195
+ },
196
+ "FieldState": {
197
+ "title": "FieldState",
198
+ "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.",
199
+ "type": "string",
200
+ "enum": [
201
+ "active",
202
+ "disabled",
203
+ "retired"
204
+ ]
205
+ },
206
+ "FieldSource": {
207
+ "title": "FieldSource",
208
+ "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.",
209
+ "type": "string",
210
+ "enum": [
211
+ "member",
212
+ "admin",
213
+ "credential",
214
+ "derived"
215
+ ]
216
+ },
217
+ "FieldConstraints": {
218
+ "title": "FieldConstraints",
219
+ "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.",
220
+ "type": "object",
221
+ "additionalProperties": false,
222
+ "properties": {
223
+ "maxLength": {
224
+ "type": "integer",
225
+ "minimum": 1,
226
+ "maximum": 2000
227
+ },
228
+ "minLength": {
229
+ "type": "integer",
230
+ "minimum": 0,
231
+ "maximum": 2000
232
+ },
233
+ "pattern": {
234
+ "type": "string",
235
+ "minLength": 1,
236
+ "maxLength": 256,
237
+ "description": "ECMA-262 regular expression a text value MUST match."
238
+ },
239
+ "options": {
240
+ "type": "array",
241
+ "minItems": 1,
242
+ "maxItems": 128,
243
+ "items": {
244
+ "$ref": "#/$defs/EnumOption"
245
+ },
246
+ "description": "The permitted values of an `enum` or `multiEnum` field."
247
+ },
248
+ "maxItems": {
249
+ "type": "integer",
250
+ "minimum": 1,
251
+ "maximum": 32
252
+ },
253
+ "minDate": {
254
+ "type": "string",
255
+ "format": "date"
256
+ },
257
+ "maxDate": {
258
+ "type": "string",
259
+ "format": "date"
260
+ },
261
+ "claim": {
262
+ "$ref": "#/$defs/ClaimSelector"
263
+ }
264
+ }
265
+ },
266
+ "ClaimSelector": {
267
+ "title": "ClaimSelector",
268
+ "description": "Which claim a `claim` field accepts, from which credentials and issuers.",
269
+ "type": "object",
270
+ "additionalProperties": false,
271
+ "required": [
272
+ "credentialType",
273
+ "claimPath"
274
+ ],
275
+ "properties": {
276
+ "credentialType": {
277
+ "type": "string",
278
+ "minLength": 1,
279
+ "maxLength": 128,
280
+ "description": "A `type` the presented credential MUST carry."
281
+ },
282
+ "claimPath": {
283
+ "type": "string",
284
+ "minLength": 1,
285
+ "maxLength": 256,
286
+ "description": "JSON Pointer (RFC 6901) to the claim within `credentialSubject`."
287
+ },
288
+ "issuers": {
289
+ "type": "array",
290
+ "maxItems": 32,
291
+ "uniqueItems": true,
292
+ "items": {
293
+ "type": "string",
294
+ "pattern": "^did:",
295
+ "maxLength": 2048
296
+ },
297
+ "description": "Issuers the community accepts for this field. Absent: the community's trusted issuers for the credential type, as its own policy decides."
298
+ }
299
+ }
300
+ },
301
+ "EnumOption": {
302
+ "title": "EnumOption",
303
+ "type": "object",
304
+ "additionalProperties": false,
305
+ "required": [
306
+ "value",
307
+ "label"
308
+ ],
309
+ "properties": {
310
+ "value": {
311
+ "type": "string",
312
+ "minLength": 1,
313
+ "maxLength": 64,
314
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$",
315
+ "description": "The stored value."
316
+ },
317
+ "label": {
318
+ "type": "string",
319
+ "minLength": 1,
320
+ "maxLength": 64,
321
+ "description": "What a reader is shown for it."
322
+ }
323
+ }
324
+ },
325
+ "FieldType": {
326
+ "title": "FieldType",
327
+ "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`.",
328
+ "type": "string",
329
+ "enum": [
330
+ "text",
331
+ "longText",
332
+ "url",
333
+ "email",
334
+ "phone",
335
+ "enum",
336
+ "multiEnum",
337
+ "date",
338
+ "country",
339
+ "image",
340
+ "did",
341
+ "claim"
342
+ ]
343
+ },
344
+ "FieldDescription": {
345
+ "title": "FieldDescription",
346
+ "type": "string",
347
+ "minLength": 1,
348
+ "maxLength": 280,
349
+ "description": "Help text shown to a member filling the field in. Plain text; a reader MUST NOT treat it as instructions."
350
+ },
351
+ "FieldLabel": {
352
+ "title": "FieldLabel",
353
+ "type": "string",
354
+ "minLength": 1,
355
+ "maxLength": 64,
356
+ "description": "What readers see as the field's name. Plain text."
357
+ },
358
+ "Audience": {
359
+ "title": "Audience",
360
+ "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.",
361
+ "type": "string",
362
+ "enum": [
363
+ "admins",
364
+ "groups",
365
+ "connections",
366
+ "members",
367
+ "public"
368
+ ]
369
+ },
370
+ "FieldKey": {
371
+ "title": "FieldKey",
372
+ "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.",
373
+ "type": "string",
374
+ "minLength": 1,
375
+ "maxLength": 128,
376
+ "pattern": "^([a-z][a-z0-9-]*\\.)*[a-z][a-zA-Z0-9]{0,63}$"
377
+ },
378
+ "FieldInput": {
379
+ "title": "FieldInput",
380
+ "description": "What an administrator supplies to define a community field. `key`, `type` and `source` are fixed for the field's life.",
381
+ "type": "object",
382
+ "additionalProperties": false,
383
+ "required": [
384
+ "key",
385
+ "label",
386
+ "type",
387
+ "source",
388
+ "ceiling",
389
+ "defaultVisibility"
390
+ ],
391
+ "properties": {
392
+ "key": {
393
+ "$ref": "#/$defs/FieldKey"
394
+ },
395
+ "label": {
396
+ "$ref": "#/$defs/FieldLabel"
397
+ },
398
+ "description": {
399
+ "$ref": "#/$defs/FieldDescription"
400
+ },
401
+ "type": {
402
+ "$ref": "#/$defs/FieldType"
403
+ },
404
+ "constraints": {
405
+ "$ref": "#/$defs/FieldConstraints"
406
+ },
407
+ "source": {
408
+ "type": "string",
409
+ "enum": [
410
+ "member",
411
+ "admin",
412
+ "credential"
413
+ ],
414
+ "description": "As `FieldSource`, less `derived`, which only base fields carry."
415
+ },
416
+ "required": {
417
+ "type": "boolean",
418
+ "description": "Whether a card must hold a value for its entry to be listed. Never a condition of membership. Absent: false."
419
+ },
420
+ "ceiling": {
421
+ "$ref": "#/$defs/Audience"
422
+ },
423
+ "defaultVisibility": {
424
+ "$ref": "#/$defs/Audience",
425
+ "description": "The audience a card gives the field until its member chooses. MUST NOT be wider than `ceiling`."
426
+ },
427
+ "searchable": {
428
+ "type": "boolean",
429
+ "description": "Whether a member's search may match the field, within what the searcher may see. Absent: false."
430
+ },
431
+ "facet": {
432
+ "type": "boolean",
433
+ "description": "Whether the field may be filtered on and counted. Only `enum`, `multiEnum` and `country` fields may be facets. Absent: false."
434
+ },
435
+ "order": {
436
+ "type": "integer",
437
+ "minimum": 0,
438
+ "maximum": 10000,
439
+ "description": "Display order, ascending."
440
+ }
441
+ }
442
+ }
443
+ }
444
+ } as const;
445
+
446
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
447
+ export const RESPONSE_PAYLOAD_SCHEMA = {
448
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
449
+ "$ref": "#/$defs/Response",
450
+ "$defs": {
451
+ "Response": {
452
+ "$anchor": "response",
453
+ "title": "VTC Directory — Fields — Define — response payload",
454
+ "description": "The success response to a vtc/directory/fields/define/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/directory/fields/define/0.1#response.",
455
+ "type": "object",
456
+ "additionalProperties": false,
457
+ "required": [
458
+ "field"
459
+ ],
460
+ "properties": {
461
+ "field": {
462
+ "$ref": "#/$defs/FieldDefinition"
463
+ },
464
+ "ext": {
465
+ "$ref": "#/$defs/Ext"
466
+ }
467
+ }
468
+ },
469
+ "Ext": {
470
+ "title": "Ext",
471
+ "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.",
472
+ "type": "object",
473
+ "minProperties": 1,
474
+ "additionalProperties": true,
475
+ "propertyNames": {
476
+ "pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
477
+ }
478
+ },
479
+ "FieldDefinition": {
480
+ "title": "FieldDefinition",
481
+ "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`.",
482
+ "type": "object",
483
+ "additionalProperties": false,
484
+ "required": [
485
+ "key",
486
+ "label",
487
+ "type",
488
+ "source",
489
+ "base",
490
+ "ceiling",
491
+ "defaultVisibility",
492
+ "required",
493
+ "searchable",
494
+ "facet",
495
+ "order",
496
+ "state"
497
+ ],
498
+ "properties": {
499
+ "key": {
500
+ "$ref": "#/$defs/FieldKey"
501
+ },
502
+ "label": {
503
+ "$ref": "#/$defs/FieldLabel"
504
+ },
505
+ "description": {
506
+ "$ref": "#/$defs/FieldDescription"
507
+ },
508
+ "type": {
509
+ "$ref": "#/$defs/FieldType"
510
+ },
511
+ "constraints": {
512
+ "$ref": "#/$defs/FieldConstraints"
513
+ },
514
+ "source": {
515
+ "$ref": "#/$defs/FieldSource"
516
+ },
517
+ "base": {
518
+ "type": "boolean",
519
+ "description": "`true` for a base field, present in every community; `false` for a field this community defined."
520
+ },
521
+ "jsContactPath": {
522
+ "type": "string",
523
+ "minLength": 1,
524
+ "maxLength": 128,
525
+ "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."
526
+ },
527
+ "required": {
528
+ "type": "boolean"
529
+ },
530
+ "ceiling": {
531
+ "$ref": "#/$defs/Audience"
532
+ },
533
+ "defaultVisibility": {
534
+ "$ref": "#/$defs/Audience"
535
+ },
536
+ "searchable": {
537
+ "type": "boolean"
538
+ },
539
+ "facet": {
540
+ "type": "boolean"
541
+ },
542
+ "order": {
543
+ "type": "integer",
544
+ "minimum": 0,
545
+ "maximum": 10000
546
+ },
547
+ "state": {
548
+ "$ref": "#/$defs/FieldState"
549
+ },
550
+ "retiredAt": {
551
+ "type": "string",
552
+ "format": "date-time",
553
+ "description": "When the field was retired. Present only on a retired field."
554
+ },
555
+ "purgeAfter": {
556
+ "type": "string",
557
+ "format": "date-time",
558
+ "description": "When the values of a retired field are purged. Present only on a retired field."
559
+ },
560
+ "updatedAt": {
561
+ "type": "string",
562
+ "format": "date-time"
563
+ },
564
+ "ext": {
565
+ "$ref": "#/$defs/Ext",
566
+ "description": "Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT widen a ceiling."
567
+ }
568
+ }
569
+ },
570
+ "FieldState": {
571
+ "title": "FieldState",
572
+ "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.",
573
+ "type": "string",
574
+ "enum": [
575
+ "active",
576
+ "disabled",
577
+ "retired"
578
+ ]
579
+ },
580
+ "FieldSource": {
581
+ "title": "FieldSource",
582
+ "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.",
583
+ "type": "string",
584
+ "enum": [
585
+ "member",
586
+ "admin",
587
+ "credential",
588
+ "derived"
589
+ ]
590
+ },
591
+ "FieldConstraints": {
592
+ "title": "FieldConstraints",
593
+ "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.",
594
+ "type": "object",
595
+ "additionalProperties": false,
596
+ "properties": {
597
+ "maxLength": {
598
+ "type": "integer",
599
+ "minimum": 1,
600
+ "maximum": 2000
601
+ },
602
+ "minLength": {
603
+ "type": "integer",
604
+ "minimum": 0,
605
+ "maximum": 2000
606
+ },
607
+ "pattern": {
608
+ "type": "string",
609
+ "minLength": 1,
610
+ "maxLength": 256,
611
+ "description": "ECMA-262 regular expression a text value MUST match."
612
+ },
613
+ "options": {
614
+ "type": "array",
615
+ "minItems": 1,
616
+ "maxItems": 128,
617
+ "items": {
618
+ "$ref": "#/$defs/EnumOption"
619
+ },
620
+ "description": "The permitted values of an `enum` or `multiEnum` field."
621
+ },
622
+ "maxItems": {
623
+ "type": "integer",
624
+ "minimum": 1,
625
+ "maximum": 32
626
+ },
627
+ "minDate": {
628
+ "type": "string",
629
+ "format": "date"
630
+ },
631
+ "maxDate": {
632
+ "type": "string",
633
+ "format": "date"
634
+ },
635
+ "claim": {
636
+ "$ref": "#/$defs/ClaimSelector"
637
+ }
638
+ }
639
+ },
640
+ "ClaimSelector": {
641
+ "title": "ClaimSelector",
642
+ "description": "Which claim a `claim` field accepts, from which credentials and issuers.",
643
+ "type": "object",
644
+ "additionalProperties": false,
645
+ "required": [
646
+ "credentialType",
647
+ "claimPath"
648
+ ],
649
+ "properties": {
650
+ "credentialType": {
651
+ "type": "string",
652
+ "minLength": 1,
653
+ "maxLength": 128,
654
+ "description": "A `type` the presented credential MUST carry."
655
+ },
656
+ "claimPath": {
657
+ "type": "string",
658
+ "minLength": 1,
659
+ "maxLength": 256,
660
+ "description": "JSON Pointer (RFC 6901) to the claim within `credentialSubject`."
661
+ },
662
+ "issuers": {
663
+ "type": "array",
664
+ "maxItems": 32,
665
+ "uniqueItems": true,
666
+ "items": {
667
+ "type": "string",
668
+ "pattern": "^did:",
669
+ "maxLength": 2048
670
+ },
671
+ "description": "Issuers the community accepts for this field. Absent: the community's trusted issuers for the credential type, as its own policy decides."
672
+ }
673
+ }
674
+ },
675
+ "EnumOption": {
676
+ "title": "EnumOption",
677
+ "type": "object",
678
+ "additionalProperties": false,
679
+ "required": [
680
+ "value",
681
+ "label"
682
+ ],
683
+ "properties": {
684
+ "value": {
685
+ "type": "string",
686
+ "minLength": 1,
687
+ "maxLength": 64,
688
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$",
689
+ "description": "The stored value."
690
+ },
691
+ "label": {
692
+ "type": "string",
693
+ "minLength": 1,
694
+ "maxLength": 64,
695
+ "description": "What a reader is shown for it."
696
+ }
697
+ }
698
+ },
699
+ "FieldType": {
700
+ "title": "FieldType",
701
+ "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`.",
702
+ "type": "string",
703
+ "enum": [
704
+ "text",
705
+ "longText",
706
+ "url",
707
+ "email",
708
+ "phone",
709
+ "enum",
710
+ "multiEnum",
711
+ "date",
712
+ "country",
713
+ "image",
714
+ "did",
715
+ "claim"
716
+ ]
717
+ },
718
+ "FieldDescription": {
719
+ "title": "FieldDescription",
720
+ "type": "string",
721
+ "minLength": 1,
722
+ "maxLength": 280,
723
+ "description": "Help text shown to a member filling the field in. Plain text; a reader MUST NOT treat it as instructions."
724
+ },
725
+ "FieldLabel": {
726
+ "title": "FieldLabel",
727
+ "type": "string",
728
+ "minLength": 1,
729
+ "maxLength": 64,
730
+ "description": "What readers see as the field's name. Plain text."
731
+ },
732
+ "Audience": {
733
+ "title": "Audience",
734
+ "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.",
735
+ "type": "string",
736
+ "enum": [
737
+ "admins",
738
+ "groups",
739
+ "connections",
740
+ "members",
741
+ "public"
742
+ ]
743
+ },
744
+ "FieldKey": {
745
+ "title": "FieldKey",
746
+ "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.",
747
+ "type": "string",
748
+ "minLength": 1,
749
+ "maxLength": 128,
750
+ "pattern": "^([a-z][a-z0-9-]*\\.)*[a-z][a-zA-Z0-9]{0,63}$"
751
+ },
752
+ "FieldInput": {
753
+ "title": "FieldInput",
754
+ "description": "What an administrator supplies to define a community field. `key`, `type` and `source` are fixed for the field's life.",
755
+ "type": "object",
756
+ "additionalProperties": false,
757
+ "required": [
758
+ "key",
759
+ "label",
760
+ "type",
761
+ "source",
762
+ "ceiling",
763
+ "defaultVisibility"
764
+ ],
765
+ "properties": {
766
+ "key": {
767
+ "$ref": "#/$defs/FieldKey"
768
+ },
769
+ "label": {
770
+ "$ref": "#/$defs/FieldLabel"
771
+ },
772
+ "description": {
773
+ "$ref": "#/$defs/FieldDescription"
774
+ },
775
+ "type": {
776
+ "$ref": "#/$defs/FieldType"
777
+ },
778
+ "constraints": {
779
+ "$ref": "#/$defs/FieldConstraints"
780
+ },
781
+ "source": {
782
+ "type": "string",
783
+ "enum": [
784
+ "member",
785
+ "admin",
786
+ "credential"
787
+ ],
788
+ "description": "As `FieldSource`, less `derived`, which only base fields carry."
789
+ },
790
+ "required": {
791
+ "type": "boolean",
792
+ "description": "Whether a card must hold a value for its entry to be listed. Never a condition of membership. Absent: false."
793
+ },
794
+ "ceiling": {
795
+ "$ref": "#/$defs/Audience"
796
+ },
797
+ "defaultVisibility": {
798
+ "$ref": "#/$defs/Audience",
799
+ "description": "The audience a card gives the field until its member chooses. MUST NOT be wider than `ceiling`."
800
+ },
801
+ "searchable": {
802
+ "type": "boolean",
803
+ "description": "Whether a member's search may match the field, within what the searcher may see. Absent: false."
804
+ },
805
+ "facet": {
806
+ "type": "boolean",
807
+ "description": "Whether the field may be filtered on and counted. Only `enum`, `multiEnum` and `country` fields may be facets. Absent: false."
808
+ },
809
+ "order": {
810
+ "type": "integer",
811
+ "minimum": 0,
812
+ "maximum": 10000,
813
+ "description": "Display order, ascending."
814
+ }
815
+ }
816
+ }
817
+ }
818
+ } as const;
819
+
820
+ /**
821
+ * SPEC.md §7.2 policy for the request variant, from this specification's
822
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
823
+ * per-specification and cannot be derived from the document alone, and
824
+ * item 2 needs the schema this carries.
825
+ */
826
+ export const SPEC = {
827
+ typeUri: TYPE_URI,
828
+ isBearer: false,
829
+ isProofRequired: true,
830
+ isRecipientRequired: true,
831
+ isIssuedAtRequired: true,
832
+ payloadSchema: PAYLOAD_SCHEMA,
833
+ } as const;
834
+
835
+ /**
836
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
837
+ * tracks the *issuer* party's requirement because a response swaps the
838
+ * parties (§7.3 item 5).
839
+ */
840
+ export const RESPONSE_SPEC = {
841
+ typeUri: RESPONSE_TYPE_URI,
842
+ isBearer: false,
843
+ isProofRequired: true,
844
+ isRecipientRequired: true,
845
+ isIssuedAtRequired: true,
846
+ payloadSchema: RESPONSE_PAYLOAD_SCHEMA,
847
+ } as const;