@openvtc/trust-tasks 0.26.17 → 0.26.19
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.
- package/CHANGELOG.md +222 -0
- package/dist/_shared/components.d.ts +867 -3
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/auth/oob/_shared/0.1/oob.d.ts +1 -1
- package/dist/auth/oob/_shared/0.1/oob.d.ts.map +1 -1
- package/dist/auth/oob/grant/0.2/payload.d.ts +262 -0
- package/dist/auth/oob/grant/0.2/payload.d.ts.map +1 -0
- package/dist/auth/oob/grant/0.2/payload.js +140 -0
- package/dist/auth/oob/grant/0.2/payload.js.map +1 -0
- package/dist/auth/oob/prove/0.2/payload.d.ts +836 -0
- package/dist/auth/oob/prove/0.2/payload.d.ts.map +1 -0
- package/dist/auth/oob/prove/0.2/payload.js +468 -0
- package/dist/auth/oob/prove/0.2/payload.js.map +1 -0
- package/dist/auth/oob/respond/0.2/payload.d.ts +235 -0
- package/dist/auth/oob/respond/0.2/payload.d.ts.map +1 -0
- package/dist/auth/oob/respond/0.2/payload.js +140 -0
- package/dist/auth/oob/respond/0.2/payload.js.map +1 -0
- package/dist/device/list/0.1/payload.d.ts +4 -4
- package/dist/device/list/0.1/payload.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.js +2 -0
- package/dist/device/list/0.1/payload.js.map +1 -1
- package/dist/device/list/0.2/payload.d.ts +4 -4
- package/dist/device/list/0.2/payload.d.ts.map +1 -1
- package/dist/device/list/0.2/payload.js +2 -0
- package/dist/device/list/0.2/payload.js.map +1 -1
- package/dist/device/register/0.1/payload.d.ts +4 -4
- package/dist/device/register/0.1/payload.d.ts.map +1 -1
- package/dist/device/register/0.1/payload.js +2 -0
- package/dist/device/register/0.1/payload.js.map +1 -1
- package/dist/device/register/0.2/payload.d.ts +4 -4
- package/dist/device/register/0.2/payload.d.ts.map +1 -1
- package/dist/device/register/0.2/payload.js +2 -0
- package/dist/device/register/0.2/payload.js.map +1 -1
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -1
- package/dist/keys/sign-document/0.1/payload.d.ts +627 -0
- package/dist/keys/sign-document/0.1/payload.d.ts.map +1 -0
- package/dist/keys/sign-document/0.1/payload.js +341 -0
- package/dist/keys/sign-document/0.1/payload.js.map +1 -0
- package/dist/persona/_shared/0.1/contact-annotations.d.ts +22 -0
- package/dist/persona/_shared/0.1/contact-annotations.d.ts.map +1 -0
- package/dist/persona/_shared/0.1/contact-annotations.js +6 -0
- package/dist/persona/_shared/0.1/contact-annotations.js.map +1 -0
- package/dist/persona/contact/get/1.1/payload.d.ts +1403 -0
- package/dist/persona/contact/get/1.1/payload.d.ts.map +1 -0
- package/dist/persona/contact/get/1.1/payload.js +804 -0
- package/dist/persona/contact/get/1.1/payload.js.map +1 -0
- package/dist/persona/contact/list/1.1/payload.d.ts +803 -0
- package/dist/persona/contact/list/1.1/payload.d.ts.map +1 -0
- package/dist/persona/contact/list/1.1/payload.js +417 -0
- package/dist/persona/contact/list/1.1/payload.js.map +1 -0
- package/dist/persona/contact/lists/delete/1.0/payload.d.ts +289 -0
- package/dist/persona/contact/lists/delete/1.0/payload.d.ts.map +1 -0
- package/dist/persona/contact/lists/delete/1.0/payload.js +166 -0
- package/dist/persona/contact/lists/delete/1.0/payload.js.map +1 -0
- package/dist/persona/contact/lists/list/1.0/payload.d.ts +527 -0
- package/dist/persona/contact/lists/list/1.0/payload.d.ts.map +1 -0
- package/dist/persona/contact/lists/list/1.0/payload.js +294 -0
- package/dist/persona/contact/lists/list/1.0/payload.js.map +1 -0
- package/dist/persona/contact/lists/put/1.0/payload.d.ts +629 -0
- package/dist/persona/contact/lists/put/1.0/payload.d.ts.map +1 -0
- package/dist/persona/contact/lists/put/1.0/payload.js +366 -0
- package/dist/persona/contact/lists/put/1.0/payload.js.map +1 -0
- package/dist/persona/contact/lists/show/1.0/payload.d.ts +476 -0
- package/dist/persona/contact/lists/show/1.0/payload.d.ts.map +1 -0
- package/dist/persona/contact/lists/show/1.0/payload.js +272 -0
- package/dist/persona/contact/lists/show/1.0/payload.js.map +1 -0
- package/dist/persona/contact/put/1.1/payload.d.ts +1444 -0
- package/dist/persona/contact/put/1.1/payload.d.ts.map +1 -0
- package/dist/persona/contact/put/1.1/payload.js +850 -0
- package/dist/persona/contact/put/1.1/payload.js.map +1 -0
- package/dist/rooms/keys/seal/0.1/payload.d.ts +24 -4
- package/dist/rooms/keys/seal/0.1/payload.d.ts.map +1 -1
- package/dist/rooms/keys/seal/0.1/payload.js +12 -2
- package/dist/rooms/keys/seal/0.1/payload.js.map +1 -1
- package/dist/rooms/keys/seal/0.2/payload.d.ts +24 -4
- package/dist/rooms/keys/seal/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/keys/seal/0.2/payload.js +12 -2
- package/dist/rooms/keys/seal/0.2/payload.js.map +1 -1
- package/dist/rooms/owner/group/add/0.3/payload.d.ts +417 -0
- package/dist/rooms/owner/group/add/0.3/payload.d.ts.map +1 -0
- package/dist/rooms/owner/group/add/0.3/payload.js +218 -0
- package/dist/rooms/owner/group/add/0.3/payload.js.map +1 -0
- package/dist/rooms/owner/group/remove/0.3/payload.d.ts +600 -0
- package/dist/rooms/owner/group/remove/0.3/payload.d.ts.map +1 -0
- package/dist/rooms/owner/group/remove/0.3/payload.js +310 -0
- package/dist/rooms/owner/group/remove/0.3/payload.js.map +1 -0
- package/dist/rooms/owner/group/renew/0.2/payload.d.ts +299 -0
- package/dist/rooms/owner/group/renew/0.2/payload.d.ts.map +1 -0
- package/dist/rooms/owner/group/renew/0.2/payload.js +163 -0
- package/dist/rooms/owner/group/renew/0.2/payload.js.map +1 -0
- package/dist/rooms/owner/register/0.2/payload.d.ts +591 -0
- package/dist/rooms/owner/register/0.2/payload.d.ts.map +1 -0
- package/dist/rooms/owner/register/0.2/payload.js +335 -0
- package/dist/rooms/owner/register/0.2/payload.js.map +1 -0
- package/dist/rooms/records/get/0.1/payload.d.ts +24 -4
- package/dist/rooms/records/get/0.1/payload.d.ts.map +1 -1
- package/dist/rooms/records/get/0.1/payload.js +12 -2
- package/dist/rooms/records/get/0.1/payload.js.map +1 -1
- package/dist/rooms/records/get/0.2/payload.d.ts +24 -4
- package/dist/rooms/records/get/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/records/get/0.2/payload.js +12 -2
- package/dist/rooms/records/get/0.2/payload.js.map +1 -1
- package/dist/rooms/records/put/0.1/payload.d.ts +24 -4
- package/dist/rooms/records/put/0.1/payload.d.ts.map +1 -1
- package/dist/rooms/records/put/0.1/payload.js +12 -2
- package/dist/rooms/records/put/0.1/payload.js.map +1 -1
- package/dist/rooms/records/put/0.2/payload.d.ts +24 -4
- package/dist/rooms/records/put/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/records/put/0.2/payload.js +12 -2
- package/dist/rooms/records/put/0.2/payload.js.map +1 -1
- package/dist/vtc/admin/events/_shared/0.3/topic.d.ts +30 -0
- package/dist/vtc/admin/events/_shared/0.3/topic.d.ts.map +1 -0
- package/dist/vtc/admin/events/_shared/0.3/topic.js +6 -0
- package/dist/vtc/admin/events/_shared/0.3/topic.js.map +1 -0
- package/dist/vtc/admin/events/event/0.3/payload.d.ts +172 -0
- package/dist/vtc/admin/events/event/0.3/payload.d.ts.map +1 -0
- package/dist/vtc/admin/events/event/0.3/payload.js +102 -0
- package/dist/vtc/admin/events/event/0.3/payload.js.map +1 -0
- package/dist/vtc/admin/events/subscribe/0.3/payload.d.ts +409 -0
- package/dist/vtc/admin/events/subscribe/0.3/payload.d.ts.map +1 -0
- package/dist/vtc/admin/events/subscribe/0.3/payload.js +236 -0
- package/dist/vtc/admin/events/subscribe/0.3/payload.js.map +1 -0
- package/dist/vtc/directory/_shared/0.1/admin-note.d.ts +16 -0
- package/dist/vtc/directory/_shared/0.1/admin-note.d.ts.map +1 -0
- package/dist/vtc/directory/_shared/0.1/admin-note.js +6 -0
- package/dist/vtc/directory/_shared/0.1/admin-note.js.map +1 -0
- package/dist/vtc/directory/_shared/0.1/directory-card.d.ts +22 -0
- package/dist/vtc/directory/_shared/0.1/directory-card.d.ts.map +1 -0
- package/dist/vtc/directory/_shared/0.1/directory-card.js +6 -0
- package/dist/vtc/directory/_shared/0.1/directory-card.js.map +1 -0
- package/dist/vtc/directory/_shared/0.1/disclosure-statement.d.ts +18 -0
- package/dist/vtc/directory/_shared/0.1/disclosure-statement.d.ts.map +1 -0
- package/dist/vtc/directory/_shared/0.1/disclosure-statement.js +6 -0
- package/dist/vtc/directory/_shared/0.1/disclosure-statement.js.map +1 -0
- package/dist/vtc/directory/_shared/0.1/field-definition.d.ts +16 -0
- package/dist/vtc/directory/_shared/0.1/field-definition.d.ts.map +1 -0
- package/dist/vtc/directory/_shared/0.1/field-definition.js +6 -0
- package/dist/vtc/directory/_shared/0.1/field-definition.js.map +1 -0
- package/dist/vtc/directory/card/assert/0.1/payload.d.ts +780 -0
- package/dist/vtc/directory/card/assert/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/assert/0.1/payload.js +454 -0
- package/dist/vtc/directory/card/assert/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/card/present/0.1/payload.d.ts +603 -0
- package/dist/vtc/directory/card/present/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/present/0.1/payload.js +297 -0
- package/dist/vtc/directory/card/present/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/card/public/0.1/payload.d.ts +348 -0
- package/dist/vtc/directory/card/public/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/public/0.1/payload.js +197 -0
- package/dist/vtc/directory/card/public/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/card/publish/0.1/payload.d.ts +384 -0
- package/dist/vtc/directory/card/publish/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/publish/0.1/payload.js +222 -0
- package/dist/vtc/directory/card/publish/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/card/show/0.1/payload.d.ts +1276 -0
- package/dist/vtc/directory/card/show/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/show/0.1/payload.js +775 -0
- package/dist/vtc/directory/card/show/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/card/update/0.1/payload.d.ts +1423 -0
- package/dist/vtc/directory/card/update/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/card/update/0.1/payload.js +845 -0
- package/dist/vtc/directory/card/update/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/disclosure/0.1/payload.d.ts +951 -0
- package/dist/vtc/directory/disclosure/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/disclosure/0.1/payload.js +613 -0
- package/dist/vtc/directory/disclosure/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/entries/list/0.1/payload.d.ts +5525 -0
- package/dist/vtc/directory/entries/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/entries/list/0.1/payload.js +656 -0
- package/dist/vtc/directory/entries/list/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/entries/show/0.1/payload.d.ts +861 -0
- package/dist/vtc/directory/entries/show/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/entries/show/0.1/payload.js +502 -0
- package/dist/vtc/directory/entries/show/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/export/0.1/payload.d.ts +346 -0
- package/dist/vtc/directory/export/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/export/0.1/payload.js +192 -0
- package/dist/vtc/directory/export/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/fields/define/0.1/payload.d.ts +1355 -0
- package/dist/vtc/directory/fields/define/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/fields/define/0.1/payload.js +811 -0
- package/dist/vtc/directory/fields/define/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/fields/list/0.1/payload.d.ts +1236 -0
- package/dist/vtc/directory/fields/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/fields/list/0.1/payload.js +739 -0
- package/dist/vtc/directory/fields/list/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/fields/retire/0.1/payload.d.ts +1146 -0
- package/dist/vtc/directory/fields/retire/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/fields/retire/0.1/payload.js +684 -0
- package/dist/vtc/directory/fields/retire/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/fields/update/0.1/payload.d.ts +1223 -0
- package/dist/vtc/directory/fields/update/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/fields/update/0.1/payload.js +715 -0
- package/dist/vtc/directory/fields/update/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/images/get/0.1/payload.d.ts +484 -0
- package/dist/vtc/directory/images/get/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/images/get/0.1/payload.js +273 -0
- package/dist/vtc/directory/images/get/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/images/upload/0.1/payload.d.ts +441 -0
- package/dist/vtc/directory/images/upload/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/images/upload/0.1/payload.js +262 -0
- package/dist/vtc/directory/images/upload/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/introduce/0.1/payload.d.ts +417 -0
- package/dist/vtc/directory/introduce/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/introduce/0.1/payload.js +183 -0
- package/dist/vtc/directory/introduce/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/introduction/0.1/payload.d.ts +423 -0
- package/dist/vtc/directory/introduction/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/introduction/0.1/payload.js +241 -0
- package/dist/vtc/directory/introduction/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/notes/append/0.1/payload.d.ts +494 -0
- package/dist/vtc/directory/notes/append/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/notes/append/0.1/payload.js +281 -0
- package/dist/vtc/directory/notes/append/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/notes/export/0.1/payload.d.ts +530 -0
- package/dist/vtc/directory/notes/export/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/notes/export/0.1/payload.js +294 -0
- package/dist/vtc/directory/notes/export/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/notes/list/0.1/payload.d.ts +528 -0
- package/dist/vtc/directory/notes/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/directory/notes/list/0.1/payload.js +294 -0
- package/dist/vtc/directory/notes/list/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/_shared/0.1/group.d.ts +22 -0
- package/dist/vtc/groups/_shared/0.1/group.d.ts.map +1 -0
- package/dist/vtc/groups/_shared/0.1/group.js +6 -0
- package/dist/vtc/groups/_shared/0.1/group.js.map +1 -0
- package/dist/vtc/groups/bindings/add/0.1/payload.d.ts +914 -0
- package/dist/vtc/groups/bindings/add/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/bindings/add/0.1/payload.js +536 -0
- package/dist/vtc/groups/bindings/add/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/bindings/list/0.1/payload.d.ts +910 -0
- package/dist/vtc/groups/bindings/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/bindings/list/0.1/payload.js +533 -0
- package/dist/vtc/groups/bindings/list/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/bindings/remove/0.1/payload.d.ts +310 -0
- package/dist/vtc/groups/bindings/remove/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/bindings/remove/0.1/payload.js +182 -0
- package/dist/vtc/groups/bindings/remove/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/create/0.1/payload.d.ts +1075 -0
- package/dist/vtc/groups/create/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/create/0.1/payload.js +631 -0
- package/dist/vtc/groups/create/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/delete/0.1/payload.d.ts +317 -0
- package/dist/vtc/groups/delete/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/delete/0.1/payload.js +182 -0
- package/dist/vtc/groups/delete/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/join/0.1/payload.d.ts +1262 -0
- package/dist/vtc/groups/join/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/join/0.1/payload.js +758 -0
- package/dist/vtc/groups/join/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/leave/0.1/payload.d.ts +291 -0
- package/dist/vtc/groups/leave/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/leave/0.1/payload.js +179 -0
- package/dist/vtc/groups/leave/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/list/0.1/payload.d.ts +1127 -0
- package/dist/vtc/groups/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/list/0.1/payload.js +674 -0
- package/dist/vtc/groups/list/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/members/add/0.1/payload.d.ts +1014 -0
- package/dist/vtc/groups/members/add/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/members/add/0.1/payload.js +607 -0
- package/dist/vtc/groups/members/add/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/members/list/0.1/payload.d.ts +1018 -0
- package/dist/vtc/groups/members/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/members/list/0.1/payload.js +606 -0
- package/dist/vtc/groups/members/list/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/members/remove/0.1/payload.d.ts +351 -0
- package/dist/vtc/groups/members/remove/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/members/remove/0.1/payload.js +205 -0
- package/dist/vtc/groups/members/remove/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/requests/decide/0.1/payload.d.ts +1236 -0
- package/dist/vtc/groups/requests/decide/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/requests/decide/0.1/payload.js +741 -0
- package/dist/vtc/groups/requests/decide/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/requests/list/0.1/payload.d.ts +1063 -0
- package/dist/vtc/groups/requests/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/requests/list/0.1/payload.js +622 -0
- package/dist/vtc/groups/requests/list/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/show/0.1/payload.d.ts +1012 -0
- package/dist/vtc/groups/show/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/show/0.1/payload.js +619 -0
- package/dist/vtc/groups/show/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/update/0.1/payload.d.ts +1078 -0
- package/dist/vtc/groups/update/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/update/0.1/payload.js +633 -0
- package/dist/vtc/groups/update/0.1/payload.js.map +1 -0
- package/dist/vtc/join-requests/manifest/0.4/payload.d.ts +2303 -0
- package/dist/vtc/join-requests/manifest/0.4/payload.d.ts.map +1 -0
- package/dist/vtc/join-requests/manifest/0.4/payload.js +1293 -0
- package/dist/vtc/join-requests/manifest/0.4/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_shared/components.ts +912 -1
- package/src/auth/oob/_shared/0.1/oob.ts +1 -1
- package/src/auth/oob/grant/0.2/payload.ts +186 -0
- package/src/auth/oob/prove/0.2/payload.ts +523 -0
- package/src/auth/oob/respond/0.2/payload.ts +178 -0
- package/src/device/list/0.1/payload.ts +2 -0
- package/src/device/list/0.2/payload.ts +2 -0
- package/src/device/register/0.1/payload.ts +2 -0
- package/src/device/register/0.2/payload.ts +2 -0
- package/src/index.ts +61 -0
- package/src/keys/sign-document/0.1/payload.ts +437 -0
- package/src/persona/_shared/0.1/contact-annotations.ts +23 -0
- package/src/persona/contact/get/1.1/payload.ts +876 -0
- package/src/persona/contact/list/1.1/payload.ts +497 -0
- package/src/persona/contact/lists/delete/1.0/payload.ts +204 -0
- package/src/persona/contact/lists/list/1.0/payload.ts +332 -0
- package/src/persona/contact/lists/put/1.0/payload.ts +429 -0
- package/src/persona/contact/lists/show/1.0/payload.ts +305 -0
- package/src/persona/contact/put/1.1/payload.ts +958 -0
- package/src/rooms/keys/seal/0.1/payload.ts +12 -2
- package/src/rooms/keys/seal/0.2/payload.ts +12 -2
- package/src/rooms/owner/group/add/0.3/payload.ts +288 -0
- package/src/rooms/owner/group/remove/0.3/payload.ts +415 -0
- package/src/rooms/owner/group/renew/0.2/payload.ts +213 -0
- package/src/rooms/owner/register/0.2/payload.ts +415 -0
- package/src/rooms/records/get/0.1/payload.ts +12 -2
- package/src/rooms/records/get/0.2/payload.ts +12 -2
- package/src/rooms/records/put/0.1/payload.ts +12 -2
- package/src/rooms/records/put/0.2/payload.ts +12 -2
- package/src/vtc/admin/events/_shared/0.3/topic.ts +31 -0
- package/src/vtc/admin/events/event/0.3/payload.ts +136 -0
- package/src/vtc/admin/events/subscribe/0.3/payload.ts +314 -0
- package/src/vtc/directory/_shared/0.1/admin-note.ts +17 -0
- package/src/vtc/directory/_shared/0.1/directory-card.ts +23 -0
- package/src/vtc/directory/_shared/0.1/disclosure-statement.ts +19 -0
- package/src/vtc/directory/_shared/0.1/field-definition.ts +17 -0
- package/src/vtc/directory/card/assert/0.1/payload.ts +503 -0
- package/src/vtc/directory/card/present/0.1/payload.ts +437 -0
- package/src/vtc/directory/card/public/0.1/payload.ts +238 -0
- package/src/vtc/directory/card/publish/0.1/payload.ts +261 -0
- package/src/vtc/directory/card/show/0.1/payload.ts +812 -0
- package/src/vtc/directory/card/update/0.1/payload.ts +907 -0
- package/src/vtc/directory/disclosure/0.1/payload.ts +645 -0
- package/src/vtc/directory/entries/list/0.1/payload.ts +5676 -0
- package/src/vtc/directory/entries/show/0.1/payload.ts +541 -0
- package/src/vtc/directory/export/0.1/payload.ts +241 -0
- package/src/vtc/directory/fields/define/0.1/payload.ts +847 -0
- package/src/vtc/directory/fields/list/0.1/payload.ts +780 -0
- package/src/vtc/directory/fields/retire/0.1/payload.ts +723 -0
- package/src/vtc/directory/fields/update/0.1/payload.ts +767 -0
- package/src/vtc/directory/images/get/0.1/payload.ts +320 -0
- package/src/vtc/directory/images/upload/0.1/payload.ts +308 -0
- package/src/vtc/directory/introduce/0.1/payload.ts +324 -0
- package/src/vtc/directory/introduction/0.1/payload.ts +278 -0
- package/src/vtc/directory/notes/append/0.1/payload.ts +319 -0
- package/src/vtc/directory/notes/export/0.1/payload.ts +337 -0
- package/src/vtc/directory/notes/list/0.1/payload.ts +337 -0
- package/src/vtc/groups/_shared/0.1/group.ts +23 -0
- package/src/vtc/groups/bindings/add/0.1/payload.ts +573 -0
- package/src/vtc/groups/bindings/list/0.1/payload.ts +568 -0
- package/src/vtc/groups/bindings/remove/0.1/payload.ts +223 -0
- package/src/vtc/groups/create/0.1/payload.ts +683 -0
- package/src/vtc/groups/delete/0.1/payload.ts +224 -0
- package/src/vtc/groups/join/0.1/payload.ts +807 -0
- package/src/vtc/groups/leave/0.1/payload.ts +219 -0
- package/src/vtc/groups/list/0.1/payload.ts +728 -0
- package/src/vtc/groups/members/add/0.1/payload.ts +648 -0
- package/src/vtc/groups/members/list/0.1/payload.ts +647 -0
- package/src/vtc/groups/members/remove/0.1/payload.ts +251 -0
- package/src/vtc/groups/requests/decide/0.1/payload.ts +786 -0
- package/src/vtc/groups/requests/list/0.1/payload.ts +670 -0
- package/src/vtc/groups/show/0.1/payload.ts +652 -0
- package/src/vtc/groups/update/0.1/payload.ts +682 -0
- package/src/vtc/join-requests/manifest/0.4/payload.ts +1490 -0
|
@@ -374,6 +374,12 @@ export type ApproverLabel = string;
|
|
|
374
374
|
* The metadata of one attestation: what a Vetting Statement would have said, minus its issuer, as vetting/attestation/0.1 defines it.
|
|
375
375
|
*/
|
|
376
376
|
export type AttestationMeta = StatementMeta;
|
|
377
|
+
/**
|
|
378
|
+
* 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.
|
|
379
|
+
*
|
|
380
|
+
* `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.
|
|
381
|
+
*/
|
|
382
|
+
export type Audience = "admins" | "groups" | "connections" | "members" | "public";
|
|
377
383
|
/**
|
|
378
384
|
* The kind of privileged change recorded in the audit log.
|
|
379
385
|
*/
|
|
@@ -407,6 +413,8 @@ export type AuthModel =
|
|
|
407
413
|
export type AuthorityScope = AuthorityScopeAll | AuthorityScopeNone | AuthorityScopeContexts;
|
|
408
414
|
export type AwsArn = string;
|
|
409
415
|
export type AwsRegion = string;
|
|
416
|
+
export type BindingId = string;
|
|
417
|
+
export type BindingSpec = RoomBindingSpec | GrantsBindingSpec | RoleBindingSpec;
|
|
410
418
|
/**
|
|
411
419
|
* The name of one blob: the digest of its BlobManifest, taken over the manifest's RFC 8785 (JCS) canonicalization. sha2-256 is RECOMMENDED and MUST be implemented. Content addressing over ciphertext, never plaintext, so a BlobRef says nothing about what the file contains, and two uploads of one file have different BlobRefs (a fresh `fileId` gives a different key, and so different ciphertext). Rooms cannot be correlated by the files they share. Compared as decoded multihash bytes, never as encoded strings. A BlobRef is defined over the manifest's JSON, as this schema states it and RFC 8785 canonicalizes it, never over any binding's generated type: two bindings that model the manifest as distinct types still compute the same BlobRef from the same JSON.
|
|
412
420
|
*/
|
|
@@ -453,6 +461,7 @@ export type Capability_DeviceV0_1 =
|
|
|
453
461
|
| "sign-sshsig"
|
|
454
462
|
| "sign-jws"
|
|
455
463
|
| "sign-csr"
|
|
464
|
+
| "sign-document"
|
|
456
465
|
| "external-accounts-manage"
|
|
457
466
|
| "external-auth-use"
|
|
458
467
|
| "pcs-vetter"
|
|
@@ -480,6 +489,7 @@ export type Capability_DeviceV0_2 =
|
|
|
480
489
|
| "signSshsig"
|
|
481
490
|
| "signJws"
|
|
482
491
|
| "signCsr"
|
|
492
|
+
| "signDocument"
|
|
483
493
|
| "externalAccountsManage"
|
|
484
494
|
| "externalAuthUse"
|
|
485
495
|
| "pcsVetter"
|
|
@@ -633,6 +643,10 @@ export type Did_GitNsV0_3 = string;
|
|
|
633
643
|
* Restricted to the two multibase headers W3C Controlled Identifiers 1.0 §2.4 normatively requires — `z` (base58btc) and `u` (base64url-no-pad). CID permits others but states that "interoperability is not guaranteed between implementations using such values", and a registry whose purpose is interoperability should not mint digests a conforming verifier may be unable to read. The alphabets are enforced rather than assumed: base58btc excludes 0, O, I and l, and an earlier permissive pattern let three published examples carry digests that were not valid base58 at all. base58btc is RECOMMENDED, for consistency with `did:key` and `did:webvh`.
|
|
634
644
|
*/
|
|
635
645
|
export type DigestMultibase = string;
|
|
646
|
+
/**
|
|
647
|
+
* A community directory entry's identifier, exactly as that community's directory returned it. Opaque and community-scoped: the agent stores and compares it as a string, never parses it, and never treats the same value under two communities as the same entry.
|
|
648
|
+
*/
|
|
649
|
+
export type DirectoryEntryId = string;
|
|
636
650
|
/**
|
|
637
651
|
* The kinds of drift, named so that a task can select a drift item by kind. The same values, with the same meanings, as `DriftItem`'s `type`, which keeps its own inline list so that `DriftItem` stays textually identical to 0.1; the two lists change together. `roleAdded` — someone holds a forge role the projection does not give them. `roleRemoved` — a projected role is missing. `roleChanged` — a projected role is present at another level. `requiredCheckMissing` — the verify-trust check is no longer required. `protectionWeakened` — branch protection or a ruleset is weaker than the projection in another way (force-push allowed, bypass actors added). `bootstrapMissing` — a bootstrap file or variable is gone.
|
|
638
652
|
*/
|
|
@@ -663,6 +677,10 @@ export type ElevatedRight = "git.ns.admin" | "git.repo.create" | "git.repo.own";
|
|
|
663
677
|
* The anchor the binding rested on, recorded so an incident review can see how each factor came to exist. `install`: claimed with the community's install token (vtc/install/claim/finish/0.3). `invite`: redeemed from an administrator's invite (auth/step-up/approver/redeem/finish/0.1). `selfService`: added by the subject behind a factor they already held (auth/step-up/approver/enroll/0.1). `offline`: redeemed from an invite minted by the operator with host access while the service was stopped — an `invite`-shaped redemption whose issuer was the host rather than an administrator.
|
|
664
678
|
*/
|
|
665
679
|
export type EnrolledVia = "install" | "invite" | "selfService" | "offline";
|
|
680
|
+
/**
|
|
681
|
+
* Opaque identifier of one directory entry: `dir_` followed by 16 to 64 base64url characters. Random, scoped to one community, and stable for the life of the membership — it survives a rotation of the member's DID, which is why groups, notes and cards are keyed by it. It MUST NOT be derived from, and MUST NOT reveal, any DID of the member, and the same person's entries in two communities MUST NOT share one. Compared by exact string equality.
|
|
682
|
+
*/
|
|
683
|
+
export type EntryId = string;
|
|
666
684
|
/**
|
|
667
685
|
* Lowercase hex SHA-256 of the whole bundle's bytes. Kept in the hex form the 1.0 descriptor published rather than moved to DigestMultibase, because it is an unchanged member of an existing descriptor and re-encoding it would break every stream producer for no gain in what it checks. For a chunked transfer it is the check over the reassembled bundle, applied after every chunk has verified individually, so that a correct set of chunks assembled in the wrong order is still caught.
|
|
668
686
|
*/
|
|
@@ -724,6 +742,46 @@ export type FaceReach =
|
|
|
724
742
|
* **Superseded by `WorldColour`** — the same set, under the name the rest of the family now uses. Retained because `persona/facet/*` is retired in favour of `persona/world/*`, and a retired specification's schema is frozen, so the definition it references has to stay. New work references `WorldColour`. A colour **name**, resolved by each consumer against its own palette — never a hex value or any other literal. Two reasons, and both are about the consumer rather than the holder. A literal cannot be legible in a terminal, in a light theme and in a dark one at once, so a stored `#8B0000` is a colour that is wrong somewhere and the holder has no way to know where. And a consumer that reserves colours to mean something — an error, a warning, an irreversible act — must be able to keep a holder's decorative choice out of that channel; it cannot do that with an arbitrary value, and it can do it trivially with a closed set it maps itself. The eight members are chosen to be distinguishable from one another and deliberately carry no status connotation: none is named for success, warning or danger.
|
|
725
743
|
*/
|
|
726
744
|
export type FacetColour = "slate" | "indigo" | "teal" | "moss" | "sand" | "clay" | "rose" | "plum";
|
|
745
|
+
/**
|
|
746
|
+
* Help text shown to a member filling the field in. Plain text; a reader MUST NOT treat it as instructions.
|
|
747
|
+
*/
|
|
748
|
+
export type FieldDescription = string;
|
|
749
|
+
/**
|
|
750
|
+
* 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.
|
|
751
|
+
*/
|
|
752
|
+
export type FieldKey = string;
|
|
753
|
+
/**
|
|
754
|
+
* What readers see as the field's name. Plain text.
|
|
755
|
+
*/
|
|
756
|
+
export type FieldLabel = string;
|
|
757
|
+
/**
|
|
758
|
+
* 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.
|
|
759
|
+
*/
|
|
760
|
+
export type FieldSource = "member" | "admin" | "credential" | "derived";
|
|
761
|
+
/**
|
|
762
|
+
* `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.
|
|
763
|
+
*/
|
|
764
|
+
export type FieldState = "active" | "disabled" | "retired";
|
|
765
|
+
/**
|
|
766
|
+
* 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`.
|
|
767
|
+
*/
|
|
768
|
+
export type FieldType =
|
|
769
|
+
| "text"
|
|
770
|
+
| "longText"
|
|
771
|
+
| "url"
|
|
772
|
+
| "email"
|
|
773
|
+
| "phone"
|
|
774
|
+
| "enum"
|
|
775
|
+
| "multiEnum"
|
|
776
|
+
| "date"
|
|
777
|
+
| "country"
|
|
778
|
+
| "image"
|
|
779
|
+
| "did"
|
|
780
|
+
| "claim";
|
|
781
|
+
/**
|
|
782
|
+
* The value of one field. Which shape a field takes is fixed by its definition's `type`: text-like types (`text`, `longText`, `url`, `email`, `phone`, `enum`, `date` as YYYY-MM-DD, `country` as ISO 3166-1 alpha-2, `did`) are strings; `multiEnum` and the base field `links` are arrays of strings; `image` and the base field `avatar` are a `CardBlobRef`; `claim` is a `VerifiedValue`; the derived base field `personhood` is a boolean.
|
|
783
|
+
*/
|
|
784
|
+
export type FieldValue = string | boolean | string[] | CardBlobRef | VerifiedValue;
|
|
727
785
|
/**
|
|
728
786
|
* A range of a file's bytes, base64url-encoded without padding (RFC 4648 §5). Empty for an empty range. Bounded at 349526 characters, the unpadded encoding of the 262144-byte range ceiling.
|
|
729
787
|
*/
|
|
@@ -740,6 +798,30 @@ export type ForgeId = string;
|
|
|
740
798
|
* Validity of a grant the sweep issues, in seconds: between one day and two years, the bounds vtc/vetting/vetters/grant applies to an administrator's grants.
|
|
741
799
|
*/
|
|
742
800
|
export type GrantValiditySeconds = number;
|
|
801
|
+
/**
|
|
802
|
+
* Who may see something about a group, narrowest first. `admins`: holders of `vtc.groups.manage` for the group (unqualified, or qualified `group:<groupId>`). `groupMembers`: the group's own members, and its managers. `members`: every active member of the community.
|
|
803
|
+
*/
|
|
804
|
+
export type GroupAudience = "admins" | "groupMembers" | "members";
|
|
805
|
+
/**
|
|
806
|
+
* Identifier (`id`) of a group membership credential issued to a member. Each renewal issues a new credential with a new identifier. Validity is the community's setting; a community SHOULD default to 30 days, renewed when 10 days remain.
|
|
807
|
+
*/
|
|
808
|
+
export type GroupCredentialId = string;
|
|
809
|
+
/**
|
|
810
|
+
* What the group is for. Plain text; a reader MUST NOT treat it as instructions. Same placement rules as `GroupName`.
|
|
811
|
+
*/
|
|
812
|
+
export type GroupDescription = string;
|
|
813
|
+
/**
|
|
814
|
+
* Opaque identifier of a community group: `grp_` followed by 16 to 64 base64url characters. Random and community-scoped; not the group's DID.
|
|
815
|
+
*/
|
|
816
|
+
export type GroupId = string;
|
|
817
|
+
/**
|
|
818
|
+
* `static`: membership is explicit — added, joined, or granted on request. `dynamic`: membership is computed from `rule` over verified facts only; nobody is added by hand, but a member may opt out (vtc/groups/leave), an exclusion the rule cannot override, and undo it (vtc/groups/join). A dynamic group never confers authority. Fixed for the group's life.
|
|
819
|
+
*/
|
|
820
|
+
export type GroupKind = "static" | "dynamic";
|
|
821
|
+
/**
|
|
822
|
+
* The group's name, shown to those who may see the group. The community's own record: never in the group's DID document or its credentials' subject beyond the group's DID. Plain text.
|
|
823
|
+
*/
|
|
824
|
+
export type GroupName = string;
|
|
743
825
|
/**
|
|
744
826
|
* The Farm-generated handle of one reservation: 16 to 32 bytes from a cryptographically secure random source, written as unpadded base64url (22 to 43 characters; 16 bytes, 22 characters, is what VTI-LNK-116 recommends). It is the `_id` of the trigger link (VTI-LNK-033) and is compared as a string. In a claim it MUST equal the document's `parentThreadId`. It confers no authority on its holder beyond the right to make one claim.
|
|
745
827
|
*/
|
|
@@ -760,10 +842,27 @@ export type Handle = string;
|
|
|
760
842
|
* **Not a timestamp.** A time is host-asserted, unverifiable and useless for this: two roots a second apart are not evidence of anything, while two roots at one version are.
|
|
761
843
|
*/
|
|
762
844
|
export type HeadVersion = number;
|
|
845
|
+
/**
|
|
846
|
+
* The media types a directory image may have — those a `CardBlobRef` admits.
|
|
847
|
+
*/
|
|
848
|
+
export type ImageMediaType = "image/png" | "image/jpeg" | "image/webp" | "image/avif";
|
|
849
|
+
/**
|
|
850
|
+
* Who may ask the community to introduce them to this member. `anyone`: any active member who can find the entry. `groups`: only members who share a community group with them. `connections`: only members holding an attributed, in-force verified relationship with them. `off`: nobody. A refused introduction is never reported to its sender.
|
|
851
|
+
*/
|
|
852
|
+
export type Introductions = "anyone" | "groups" | "connections" | "off";
|
|
763
853
|
/**
|
|
764
854
|
* `issued` is outstanding and revocable; `consumed` and `expired` are terminal.
|
|
765
855
|
*/
|
|
766
856
|
export type InviteStatus = "issued" | "consumed" | "expired";
|
|
857
|
+
/**
|
|
858
|
+
* How a member enters a static group by themselves. `closed`: only a manager adds them. `request`: a member asks and a manager decides. `open`: a member joins at once, subject to the community's `groups` policy. A group carrying authority is always `closed`.
|
|
859
|
+
*/
|
|
860
|
+
export type JoinPolicy = "closed" | "request" | "open";
|
|
861
|
+
export type JoinRequestId = string;
|
|
862
|
+
/**
|
|
863
|
+
* An optional note from the member to the group's managers. Plain text.
|
|
864
|
+
*/
|
|
865
|
+
export type JoinRequestMessage = string;
|
|
767
866
|
/**
|
|
768
867
|
* Application-chosen identifier for a record within a namespace. Opaque to the maintainer: it MUST NOT be parsed, normalized, or case-folded, and prefix matching in `list` is a byte-prefix comparison over the UTF-8 encoding. Applications SHOULD use `/`-delimited hierarchical keys (`community/acme`, `contact/z6Mk…`) so that `prefix` can address a record family, but the delimiter is a convention between an application and itself — the maintainer attaches no meaning to it.
|
|
769
868
|
*/
|
|
@@ -812,6 +911,33 @@ export type LifecycleReason = string;
|
|
|
812
911
|
* Where an effective limit came from. `policy`: the community's rooms policy at the room's creation. `override`: an administrator's vtc/rooms/limits/set. `default`: the community's configured defaults, where neither applies. The host-wide ceiling bounds all three.
|
|
813
912
|
*/
|
|
814
913
|
export type LimitSource = "policy" | "override" | "default";
|
|
914
|
+
/**
|
|
915
|
+
* A colour the holder picked for a list, as a six-digit lowercase sRGB hex value (`#1f8a70`). A rendering hint: a consumer MAY map it to the nearest colour of its own palette that keeps contrast in light and dark themes, and MUST NOT rely on colour alone to tell lists apart.
|
|
916
|
+
*/
|
|
917
|
+
export type ListColour = string;
|
|
918
|
+
/**
|
|
919
|
+
* Identifier of one of the holder's contact lists: a ULID in Crockford base32, uppercase, assigned by the agent when the list is created. Meaningful only inside the context that holds the list; it is never sent to anyone but the holder's own clients.
|
|
920
|
+
*/
|
|
921
|
+
export type ListId = string;
|
|
922
|
+
/**
|
|
923
|
+
* The lists a contact is on, as a set: order carries no meaning. A contact on no list has no `lists` member, never an empty array, so there is one way to say "none".
|
|
924
|
+
*
|
|
925
|
+
* @minItems 1
|
|
926
|
+
* @maxItems 64
|
|
927
|
+
*/
|
|
928
|
+
export type ListIds = [ListId, ...ListId[]];
|
|
929
|
+
/**
|
|
930
|
+
* The holder's name for one of their lists ("Mentors", "Met at the spring meetup"), on one line: no control characters. Unique within a context, compared exactly.
|
|
931
|
+
*/
|
|
932
|
+
export type ListName = string;
|
|
933
|
+
/**
|
|
934
|
+
* Where the holder wants a list among their lists: ascending, ties broken by `name`. A sort key, not a position, so moving one list does not renumber the others; gaps are expected.
|
|
935
|
+
*/
|
|
936
|
+
export type ListOrder = number;
|
|
937
|
+
/**
|
|
938
|
+
* Whether members can find the entry. `listed`: it appears when members browse. `findable`: it does not appear when browsing, but a search that matches it under `search` returns it. `hidden`: no member finds it by browsing or searching; administrators still see it, and members who share a group that shows its members see it in that group's member list.
|
|
939
|
+
*/
|
|
940
|
+
export type Listing = "listed" | "findable" | "hidden";
|
|
815
941
|
/**
|
|
816
942
|
* The two-digit number the service chooses at claim, shows only to the starter (through redeem), and the approver types from the starter's screen. A string so that a leading zero survives.
|
|
817
943
|
*/
|
|
@@ -831,6 +957,10 @@ export type MemberActions = [MemberAction] | [MemberAction, MemberAction] | [Mem
|
|
|
831
957
|
* Where an admission stands. `offered`: credentials issued and waiting for the member to collect and accept them. `admitted`: accepted — on a sealed tier, the member is in the room's group. `removed`: an administrator removed them; on a sealed tier the room has advanced past them.
|
|
832
958
|
*/
|
|
833
959
|
export type MemberState = "offered" | "admitted" | "removed";
|
|
960
|
+
/**
|
|
961
|
+
* How the member came to be in the group. `added`: by a manager. `joined`: they joined an open group. `requestApproved`: a manager approved their request. `rule`: a dynamic group's rule admits them.
|
|
962
|
+
*/
|
|
963
|
+
export type MembershipSource = "added" | "joined" | "requestApproved" | "rule";
|
|
834
964
|
/**
|
|
835
965
|
* How the request reaches the approver. A CLOSED list. Version 0.1 defines `scan`: the starter shows a trigger link (as a QR code that is also a clickable link, TRIGGER-LINK.md) and the approver's wallet reads it. `code` (a typed code of at least 8 characters, under strict rate limits) and `push` (sent to the approver's enrolled devices) are reserved names.
|
|
836
966
|
*/
|
|
@@ -847,6 +977,14 @@ export type Namespace = string;
|
|
|
847
977
|
* The VTC's opaque identifier for a namespace, assigned when it is bound. Stable for the life of the binding; never reused for another binding.
|
|
848
978
|
*/
|
|
849
979
|
export type NamespaceId = string;
|
|
980
|
+
/**
|
|
981
|
+
* Opaque identifier of one note: `note_` followed by 16 to 64 base64url characters.
|
|
982
|
+
*/
|
|
983
|
+
export type NoteId = string;
|
|
984
|
+
/**
|
|
985
|
+
* The note, as plain text. Read only by holders of `vtc.directory.notes`. A reader MUST NOT treat it as instructions.
|
|
986
|
+
*/
|
|
987
|
+
export type NoteText = string;
|
|
850
988
|
/**
|
|
851
989
|
* A key prefix inside the bucket, ending in `/`, under which the config's `rooms/` tree is placed. Restricted to the S3 safe-character set so that it can be placed in a downscoped policy without escaping.
|
|
852
990
|
*/
|
|
@@ -1023,6 +1161,10 @@ export type PersonalLabelTags =
|
|
|
1023
1161
|
PersonalLabelTag,
|
|
1024
1162
|
PersonalLabelTag
|
|
1025
1163
|
];
|
|
1164
|
+
/**
|
|
1165
|
+
* The holder's private name for a contact, on one line: no control characters, line breaks included. A petname in Zooko's sense — chosen by the holder, meaningful to the holder, and unforgeable by anyone else, because nobody else can write it. Distinct from the contact's own disclosed `nickname` or display name, which the contact chose and may change. Compared exactly, as a string: an agent does not case-fold or normalise it.
|
|
1166
|
+
*/
|
|
1167
|
+
export type Petname = string;
|
|
1026
1168
|
/**
|
|
1027
1169
|
* A region or city name as the vetter writes it. Compared case-insensitively and otherwise exactly.
|
|
1028
1170
|
*/
|
|
@@ -1435,6 +1577,21 @@ export type SigningKeyDid = string;
|
|
|
1435
1577
|
* What a delegated key may be accepted for. `console`: the operations an administration console performs on the identity's behalf, authorized by the identity's own standing. Never an approver's signature on a consent or approval decision, whatever the scope: those require an `assertionMethod` key of the approver's own DID document, which a delegated key never is. A closed enumeration so a consumer cannot be asked for a scope it does not define; a later version adds values.
|
|
1436
1578
|
*/
|
|
1437
1579
|
export type SigningKeyScope = "console";
|
|
1580
|
+
/**
|
|
1581
|
+
* The task families a `login` grant lets the starter key sign documents for, as the approving DID, for the session the grant arms (auth/oob/grant/0.2). Offered by the service in step 2, copied unchanged into the grant, and bounded further by the exclusions auth/oob/grant/0.2 states. Absent means the starter key signs nothing beyond the family's own tasks.
|
|
1582
|
+
*
|
|
1583
|
+
* @minItems 1
|
|
1584
|
+
* @maxItems 8
|
|
1585
|
+
*/
|
|
1586
|
+
export type SigningScope =
|
|
1587
|
+
| [TaskFamily]
|
|
1588
|
+
| [TaskFamily, TaskFamily]
|
|
1589
|
+
| [TaskFamily, TaskFamily, TaskFamily]
|
|
1590
|
+
| [TaskFamily, TaskFamily, TaskFamily, TaskFamily]
|
|
1591
|
+
| [TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily]
|
|
1592
|
+
| [TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily]
|
|
1593
|
+
| [TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily]
|
|
1594
|
+
| [TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily, TaskFamily];
|
|
1438
1595
|
/**
|
|
1439
1596
|
* A single binding target for a vault entry. Tagged union over the discriminator `kind`. A VaultEntry's `targets` array MAY mix any number of these.
|
|
1440
1597
|
*/
|
|
@@ -1502,6 +1659,10 @@ export type SyncEvent_SyncV0_2 =
|
|
|
1502
1659
|
| VaultDeletedEvent_SyncV0_2
|
|
1503
1660
|
| AclChangedEvent_SyncV0_2
|
|
1504
1661
|
| PolicyChangedEvent_SyncV0_2;
|
|
1662
|
+
/**
|
|
1663
|
+
* A family of Trust Tasks, named by a slug prefix of whole segments (SPEC §6.1 grammar): `vtc/directory` names every task whose slug is `vtc/directory` or begins `vtc/directory/`, at any version. A prefix matches on segment boundaries only, so `vtc/dir` names nothing under `vtc/directory`.
|
|
1664
|
+
*/
|
|
1665
|
+
export type TaskFamily = string;
|
|
1505
1666
|
/**
|
|
1506
1667
|
* The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).
|
|
1507
1668
|
*/
|
|
@@ -1527,6 +1688,19 @@ export type Topic_VtcAdminEventsV0_2 =
|
|
|
1527
1688
|
| "singleAdminMode"
|
|
1528
1689
|
| "config"
|
|
1529
1690
|
| "rooms";
|
|
1691
|
+
/**
|
|
1692
|
+
* One kind of change a console can be told about. A closed set: a topic not listed here is a new MINOR version of this component, not an `ext` member, because each topic is bound to the read that authorizes it.
|
|
1693
|
+
*/
|
|
1694
|
+
export type Topic_VtcAdminEventsV0_3 =
|
|
1695
|
+
| "actions"
|
|
1696
|
+
| "acknowledgements"
|
|
1697
|
+
| "joinRequests"
|
|
1698
|
+
| "members"
|
|
1699
|
+
| "singleAdminMode"
|
|
1700
|
+
| "config"
|
|
1701
|
+
| "rooms"
|
|
1702
|
+
| "directory"
|
|
1703
|
+
| "groups";
|
|
1530
1704
|
/**
|
|
1531
1705
|
* How the traffic reached or left the mediator. `peerMediator` is mediator-to-mediator forwarding.
|
|
1532
1706
|
*/
|
|
@@ -3942,6 +4116,31 @@ export interface AdminAccount {
|
|
|
3942
4116
|
*/
|
|
3943
4117
|
accountType: AccountType;
|
|
3944
4118
|
}
|
|
4119
|
+
export interface AdminNote {
|
|
4120
|
+
noteId: NoteId;
|
|
4121
|
+
entryId: EntryId;
|
|
4122
|
+
/**
|
|
4123
|
+
* DID of the administrator who wrote the note.
|
|
4124
|
+
*/
|
|
4125
|
+
author: string;
|
|
4126
|
+
createdAt: string;
|
|
4127
|
+
/**
|
|
4128
|
+
* The note. Absent from a note that has since been redacted, except in vtc/directory/notes/export, which returns every note as written.
|
|
4129
|
+
*/
|
|
4130
|
+
text?: NoteText;
|
|
4131
|
+
/**
|
|
4132
|
+
* Optional date by which the note asks for a follow-up.
|
|
4133
|
+
*/
|
|
4134
|
+
followUp?: string;
|
|
4135
|
+
/**
|
|
4136
|
+
* Present on a redaction: the earlier note this one withdraws.
|
|
4137
|
+
*/
|
|
4138
|
+
redacts?: NoteId;
|
|
4139
|
+
/**
|
|
4140
|
+
* Present on a note that a later note redacted.
|
|
4141
|
+
*/
|
|
4142
|
+
redactedBy?: NoteId;
|
|
4143
|
+
}
|
|
3945
4144
|
/**
|
|
3946
4145
|
* One right as the administrator's rights console shows it: a recorded `RightRecord` restated with the membership facts an administrator needs (`subjectMember`, `granterDeparted`), or a role-derived grant that carries no record. `git-ns/right/list` and `git-ns/right/issued-by-departed` are its only producers.
|
|
3947
4146
|
*/
|
|
@@ -4734,6 +4933,37 @@ export interface CapabilityScopeListed {
|
|
|
4734
4933
|
export interface CapabilityScopeNone {
|
|
4735
4934
|
scope: "none";
|
|
4736
4935
|
}
|
|
4936
|
+
/**
|
|
4937
|
+
* A content-addressed image held in the community's blob store — an avatar or an `image` field. At most 256 KiB, images only, re-encoded by the community on upload (vtc/directory/images/upload: metadata stripped, dimensions capped) so its digest does not link the member across communities. A viewer reads the bytes with vtc/directory/images/get, which answers only where the same projection shows the value. `url` and `urlExpiresAt` MAY appear in a projection: a short-lived URL the community checks against the same projection, so a member-only image is never a public URL. A community that does not offer one leaves both out.
|
|
4938
|
+
*/
|
|
4939
|
+
export interface CardBlobRef {
|
|
4940
|
+
/**
|
|
4941
|
+
* Lowercase hex SHA-256 of the stored, re-encoded bytes.
|
|
4942
|
+
*/
|
|
4943
|
+
sha256: string;
|
|
4944
|
+
/**
|
|
4945
|
+
* Media type of the stored bytes.
|
|
4946
|
+
*/
|
|
4947
|
+
mediaType: "image/png" | "image/jpeg" | "image/webp" | "image/avif";
|
|
4948
|
+
/**
|
|
4949
|
+
* Size in bytes of the stored bytes.
|
|
4950
|
+
*/
|
|
4951
|
+
size?: number;
|
|
4952
|
+
/**
|
|
4953
|
+
* Projection only: a URL the viewer can fetch the image from until `urlExpiresAt`.
|
|
4954
|
+
*/
|
|
4955
|
+
url?: string;
|
|
4956
|
+
/**
|
|
4957
|
+
* Projection only: when `url` stops working.
|
|
4958
|
+
*/
|
|
4959
|
+
urlExpiresAt?: string;
|
|
4960
|
+
}
|
|
4961
|
+
/**
|
|
4962
|
+
* A card's stored values, keyed by field. Holds `member`-, `admin`- and `credential`-sourced fields only; derived fields (`role`, `joinedAt`, `did`, `personhood`) are read from the community's own records when a projection is made, never stored here. At most 64 values, and at most 16 KiB serialized excluding the blobs a `CardBlobRef` names.
|
|
4963
|
+
*/
|
|
4964
|
+
export interface CardValues {
|
|
4965
|
+
[k: string]: FieldValue | undefined;
|
|
4966
|
+
}
|
|
4737
4967
|
/**
|
|
4738
4968
|
* A whole Trust Task document — `id`, `type`, `payload` and every other member, `proof` included — carried between the VTA and the witness by the client: one the VTA built and signed for the client to send, or one the witness returned for the client to hand back. Typed as an open object so every member survives a round trip: carried exactly as built or received, never re-serialised, because its proof is over itself. Its envelope is checked by the VTA against the session record (CONVENTIONS.md §3), not by this schema.
|
|
4739
4969
|
*/
|
|
@@ -4768,6 +4998,25 @@ export interface ChunkedDescriptor {
|
|
|
4768
4998
|
expectedSizeBytes: ExpectedSizeBytes;
|
|
4769
4999
|
expiresAt: ExpiresAt;
|
|
4770
5000
|
}
|
|
5001
|
+
/**
|
|
5002
|
+
* Which claim a `claim` field accepts, from which credentials and issuers.
|
|
5003
|
+
*/
|
|
5004
|
+
export interface ClaimSelector {
|
|
5005
|
+
/**
|
|
5006
|
+
* A `type` the presented credential MUST carry.
|
|
5007
|
+
*/
|
|
5008
|
+
credentialType: string;
|
|
5009
|
+
/**
|
|
5010
|
+
* JSON Pointer (RFC 6901) to the claim within `credentialSubject`.
|
|
5011
|
+
*/
|
|
5012
|
+
claimPath: string;
|
|
5013
|
+
/**
|
|
5014
|
+
* Issuers the community accepts for this field. Absent: the community's trusted issuers for the credential type, as its own policy decides.
|
|
5015
|
+
*
|
|
5016
|
+
* @maxItems 32
|
|
5017
|
+
*/
|
|
5018
|
+
issuers?: string[];
|
|
5019
|
+
}
|
|
4771
5020
|
/**
|
|
4772
5021
|
* OPTIONAL. How the community asks to be shown to a prospective applicant: a name, an accent colour and a logo. Presentation only, self-asserted and unverified — `communityDid` identifies the community, never `branding`. Not part of any criterion, so not covered by a `requirementsDigest`. Every member is optional.
|
|
4773
5022
|
*/
|
|
@@ -5103,6 +5352,24 @@ export interface ContactDocument {
|
|
|
5103
5352
|
provenance?: Provenance;
|
|
5104
5353
|
}[];
|
|
5105
5354
|
}
|
|
5355
|
+
/**
|
|
5356
|
+
* One of the holder's lists, as their agent keeps it. A list is context-scoped, like the contacts it holds: it may hold contacts known by any persona in its context, and contacts from any number of communities, but never a contact of another context.
|
|
5357
|
+
*/
|
|
5358
|
+
export interface ContactList {
|
|
5359
|
+
listId: ListId;
|
|
5360
|
+
name: ListName;
|
|
5361
|
+
colour?: ListColour;
|
|
5362
|
+
order: ListOrder;
|
|
5363
|
+
/**
|
|
5364
|
+
* How many of the context's contacts are on the list now.
|
|
5365
|
+
*/
|
|
5366
|
+
contactCount: number;
|
|
5367
|
+
createdAt: string;
|
|
5368
|
+
/**
|
|
5369
|
+
* When the list's name, colour or order last changed. Adding a contact to the list or removing one does not move it.
|
|
5370
|
+
*/
|
|
5371
|
+
updatedAt: string;
|
|
5372
|
+
}
|
|
5106
5373
|
/**
|
|
5107
5374
|
* One received version of a contact's document. Revisions exist because an address book that silently replaces a payment address is a phishing surface, and one that says what changed and when is a defence.
|
|
5108
5375
|
*/
|
|
@@ -5848,6 +6115,138 @@ export interface DidcommAuthcryptEnvelope_VaultV0_2 {
|
|
|
5848
6115
|
*/
|
|
5849
6116
|
jwe: string;
|
|
5850
6117
|
}
|
|
6118
|
+
/**
|
|
6119
|
+
* A member's own directory record: their values, a visibility for each field, their discoverability and who may ask to be introduced. Returned whole only to its subject. Every other reader receives a `DirectoryEntry`.
|
|
6120
|
+
*/
|
|
6121
|
+
export interface DirectoryCard {
|
|
6122
|
+
entryId: EntryId;
|
|
6123
|
+
values: CardValues;
|
|
6124
|
+
visibility: FieldVisibility;
|
|
6125
|
+
discoverability: Discoverability;
|
|
6126
|
+
introductions: Introductions;
|
|
6127
|
+
/**
|
|
6128
|
+
* The community groups whose members count as the `groups` audience for this card. Absent: every community group the subject belongs to. A group the subject has left stops counting at once.
|
|
6129
|
+
*
|
|
6130
|
+
* @maxItems 64
|
|
6131
|
+
*/
|
|
6132
|
+
groupAudience?: string[];
|
|
6133
|
+
externalCard?: ExternalCard;
|
|
6134
|
+
/**
|
|
6135
|
+
* Incremented on every accepted change to the card, by its subject or by an administrator's assertion.
|
|
6136
|
+
*/
|
|
6137
|
+
revision: number;
|
|
6138
|
+
/**
|
|
6139
|
+
* When the card last changed.
|
|
6140
|
+
*/
|
|
6141
|
+
updatedAt: string;
|
|
6142
|
+
/**
|
|
6143
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT carry directory data that bypasses the projection.
|
|
6144
|
+
*/
|
|
6145
|
+
ext?: Ext;
|
|
6146
|
+
}
|
|
6147
|
+
/**
|
|
6148
|
+
* The statement itself. Every member is generated from the community's configuration when the statement is read. `statementDigest` names this exact statement, so an applicant can record which one it was shown.
|
|
6149
|
+
*/
|
|
6150
|
+
export interface DirectoryDisclosure {
|
|
6151
|
+
/**
|
|
6152
|
+
* Every active field, base and community-defined, in display order. A base field the community has disabled is absent, which is how a reader learns it is not collected.
|
|
6153
|
+
*
|
|
6154
|
+
* @maxItems 128
|
|
6155
|
+
*/
|
|
6156
|
+
fields: DisclosedField[];
|
|
6157
|
+
newCard: NewCardDefaults;
|
|
6158
|
+
/**
|
|
6159
|
+
* The widest audience a member's membership identifier — the DID they joined with — can reach through the directory: the ceiling of the base field `did`, or `admins` where that field is disabled. `members` or `public` means a member may choose to show it that widely; a new card never shows it beyond `admins` (VTI-DIR-042). Administrators always see it.
|
|
6160
|
+
*/
|
|
6161
|
+
membershipIdentifiers: Audience;
|
|
6162
|
+
/**
|
|
6163
|
+
* Whether administrators keep notes about members. Notes are never on a card and never reach another member; a member may ask for the notes about them.
|
|
6164
|
+
*/
|
|
6165
|
+
adminNotes: boolean;
|
|
6166
|
+
groups?: GroupDisclosure;
|
|
6167
|
+
/**
|
|
6168
|
+
* Whether a member may publish a card beyond the community: their `public` values, signed by them, offered through the community's trust registry. Always the member's own choice, and off on a new card. False where the community cannot publish external cards.
|
|
6169
|
+
*/
|
|
6170
|
+
externalCards: boolean;
|
|
6171
|
+
/**
|
|
6172
|
+
* Digest over the RFC 8785 (JCS) canonicalization of this statement with the `statementDigest` member removed, as a multibase-encoded multihash (SHA-256 and base58btc RECOMMENDED). Changes exactly when what the statement says changes.
|
|
6173
|
+
*/
|
|
6174
|
+
statementDigest: DigestMultibase;
|
|
6175
|
+
ext?: Ext;
|
|
6176
|
+
}
|
|
6177
|
+
/**
|
|
6178
|
+
* One entry as a particular viewer sees it.
|
|
6179
|
+
*/
|
|
6180
|
+
export interface DirectoryEntry {
|
|
6181
|
+
entryId: EntryId;
|
|
6182
|
+
fields: EntryFields;
|
|
6183
|
+
/**
|
|
6184
|
+
* Present, and `true`, only when the viewer is one of the two parties to an attributed, in-force verified relationship with this entry's member that the community can see. Absent otherwise — never `false`, which would disclose that the community looked and found none. Relationships known only to the viewer's own agent are badged by that agent, not here.
|
|
6185
|
+
*/
|
|
6186
|
+
connected?: boolean;
|
|
6187
|
+
/**
|
|
6188
|
+
* The community groups the viewer and this member both belong to, among those whose membership the viewer may see. Absent when there are none.
|
|
6189
|
+
*
|
|
6190
|
+
* @maxItems 64
|
|
6191
|
+
*/
|
|
6192
|
+
sharedGroups?: string[];
|
|
6193
|
+
}
|
|
6194
|
+
/**
|
|
6195
|
+
* Links a contact to the entry in a community's member directory it corresponds to, so the holder's own client can join that community's directory with the holder's address book — showing a star or a petname beside an entry — without either side telling the other. The community never learns the link exists; the contact never learns it either. A contact has at most one.
|
|
6196
|
+
*/
|
|
6197
|
+
export interface DirectoryRef {
|
|
6198
|
+
/**
|
|
6199
|
+
* The DID of the community whose directory holds the entry.
|
|
6200
|
+
*/
|
|
6201
|
+
vtcDid: string;
|
|
6202
|
+
/**
|
|
6203
|
+
* The entry, as that community's directory identifies it.
|
|
6204
|
+
*/
|
|
6205
|
+
entryId: DirectoryEntryId;
|
|
6206
|
+
}
|
|
6207
|
+
/**
|
|
6208
|
+
* One active field of the community's directory, as an applicant needs to see it: what it is, who writes its value, the widest audience it may ever reach and the audience a new card gives it. Disabled and retired fields are not listed: no projection shows them.
|
|
6209
|
+
*/
|
|
6210
|
+
export interface DisclosedField {
|
|
6211
|
+
key: FieldKey;
|
|
6212
|
+
label: FieldLabel;
|
|
6213
|
+
description?: FieldDescription;
|
|
6214
|
+
type: FieldType;
|
|
6215
|
+
/**
|
|
6216
|
+
* Who writes the value. `admin` and `credential` matter most to an applicant: an `admin` field holds what the community asserts about the member, which the member reads and cannot change.
|
|
6217
|
+
*/
|
|
6218
|
+
source: FieldSource;
|
|
6219
|
+
/**
|
|
6220
|
+
* The widest audience the field may ever reach, whatever the member chooses.
|
|
6221
|
+
*/
|
|
6222
|
+
ceiling: Audience;
|
|
6223
|
+
/**
|
|
6224
|
+
* The audience a new card gives the field until its member chooses. Never wider than `ceiling`.
|
|
6225
|
+
*/
|
|
6226
|
+
defaultVisibility: Audience;
|
|
6227
|
+
/**
|
|
6228
|
+
* Whether a member's search may match the field, within what the searcher may see.
|
|
6229
|
+
*/
|
|
6230
|
+
searchable: boolean;
|
|
6231
|
+
/**
|
|
6232
|
+
* Whether members may filter on the field and see counts by its values. Absent: false.
|
|
6233
|
+
*/
|
|
6234
|
+
facet?: boolean;
|
|
6235
|
+
}
|
|
6236
|
+
/**
|
|
6237
|
+
* The member's three discoverability decisions, made separately.
|
|
6238
|
+
*/
|
|
6239
|
+
export interface Discoverability {
|
|
6240
|
+
listing: Listing;
|
|
6241
|
+
/**
|
|
6242
|
+
* What a member's search may match. `byName`: `displayName` or `nickname`. `exactNickname`: only an exact `nickname`. `off`: nothing. A DID is never a search key for a non-administrator, whatever this says.
|
|
6243
|
+
*/
|
|
6244
|
+
search: "byName" | "exactNickname" | "off";
|
|
6245
|
+
/**
|
|
6246
|
+
* Whether the member publishes a public card — the fields whose visibility is `public`, signed by the member — through the community's trust registry. A second consent, separate from registry-publication consent (`publishConsent`), which it requires. A community that cannot yet publish external cards refuses `true` with `notAvailable`.
|
|
6247
|
+
*/
|
|
6248
|
+
external: boolean;
|
|
6249
|
+
}
|
|
5851
6250
|
export interface DomainEntry {
|
|
5852
6251
|
/**
|
|
5853
6252
|
* Hosting domain name (e.g. `did.example.com`). Compared case-insensitively; producers SHOULD emit lowercase canonical form.
|
|
@@ -5925,6 +6324,149 @@ export interface DriftItem {
|
|
|
5925
6324
|
*/
|
|
5926
6325
|
expected?: string;
|
|
5927
6326
|
}
|
|
6327
|
+
/**
|
|
6328
|
+
* A dynamic group's membership rule: a member belongs when every condition holds and they have not opted out. The community evaluates it under its `groups` policy and recomputes membership whenever a fact it reads changes, always excluding opted-out entries.
|
|
6329
|
+
*/
|
|
6330
|
+
export interface DynamicRule {
|
|
6331
|
+
/**
|
|
6332
|
+
* @minItems 1
|
|
6333
|
+
* @maxItems 16
|
|
6334
|
+
*/
|
|
6335
|
+
all:
|
|
6336
|
+
| [RuleCondition]
|
|
6337
|
+
| [RuleCondition, RuleCondition]
|
|
6338
|
+
| [RuleCondition, RuleCondition, RuleCondition]
|
|
6339
|
+
| [RuleCondition, RuleCondition, RuleCondition, RuleCondition]
|
|
6340
|
+
| [RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition]
|
|
6341
|
+
| [RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition]
|
|
6342
|
+
| [RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition, RuleCondition]
|
|
6343
|
+
| [
|
|
6344
|
+
RuleCondition,
|
|
6345
|
+
RuleCondition,
|
|
6346
|
+
RuleCondition,
|
|
6347
|
+
RuleCondition,
|
|
6348
|
+
RuleCondition,
|
|
6349
|
+
RuleCondition,
|
|
6350
|
+
RuleCondition,
|
|
6351
|
+
RuleCondition
|
|
6352
|
+
]
|
|
6353
|
+
| [
|
|
6354
|
+
RuleCondition,
|
|
6355
|
+
RuleCondition,
|
|
6356
|
+
RuleCondition,
|
|
6357
|
+
RuleCondition,
|
|
6358
|
+
RuleCondition,
|
|
6359
|
+
RuleCondition,
|
|
6360
|
+
RuleCondition,
|
|
6361
|
+
RuleCondition,
|
|
6362
|
+
RuleCondition
|
|
6363
|
+
]
|
|
6364
|
+
| [
|
|
6365
|
+
RuleCondition,
|
|
6366
|
+
RuleCondition,
|
|
6367
|
+
RuleCondition,
|
|
6368
|
+
RuleCondition,
|
|
6369
|
+
RuleCondition,
|
|
6370
|
+
RuleCondition,
|
|
6371
|
+
RuleCondition,
|
|
6372
|
+
RuleCondition,
|
|
6373
|
+
RuleCondition,
|
|
6374
|
+
RuleCondition
|
|
6375
|
+
]
|
|
6376
|
+
| [
|
|
6377
|
+
RuleCondition,
|
|
6378
|
+
RuleCondition,
|
|
6379
|
+
RuleCondition,
|
|
6380
|
+
RuleCondition,
|
|
6381
|
+
RuleCondition,
|
|
6382
|
+
RuleCondition,
|
|
6383
|
+
RuleCondition,
|
|
6384
|
+
RuleCondition,
|
|
6385
|
+
RuleCondition,
|
|
6386
|
+
RuleCondition,
|
|
6387
|
+
RuleCondition
|
|
6388
|
+
]
|
|
6389
|
+
| [
|
|
6390
|
+
RuleCondition,
|
|
6391
|
+
RuleCondition,
|
|
6392
|
+
RuleCondition,
|
|
6393
|
+
RuleCondition,
|
|
6394
|
+
RuleCondition,
|
|
6395
|
+
RuleCondition,
|
|
6396
|
+
RuleCondition,
|
|
6397
|
+
RuleCondition,
|
|
6398
|
+
RuleCondition,
|
|
6399
|
+
RuleCondition,
|
|
6400
|
+
RuleCondition,
|
|
6401
|
+
RuleCondition
|
|
6402
|
+
]
|
|
6403
|
+
| [
|
|
6404
|
+
RuleCondition,
|
|
6405
|
+
RuleCondition,
|
|
6406
|
+
RuleCondition,
|
|
6407
|
+
RuleCondition,
|
|
6408
|
+
RuleCondition,
|
|
6409
|
+
RuleCondition,
|
|
6410
|
+
RuleCondition,
|
|
6411
|
+
RuleCondition,
|
|
6412
|
+
RuleCondition,
|
|
6413
|
+
RuleCondition,
|
|
6414
|
+
RuleCondition,
|
|
6415
|
+
RuleCondition,
|
|
6416
|
+
RuleCondition
|
|
6417
|
+
]
|
|
6418
|
+
| [
|
|
6419
|
+
RuleCondition,
|
|
6420
|
+
RuleCondition,
|
|
6421
|
+
RuleCondition,
|
|
6422
|
+
RuleCondition,
|
|
6423
|
+
RuleCondition,
|
|
6424
|
+
RuleCondition,
|
|
6425
|
+
RuleCondition,
|
|
6426
|
+
RuleCondition,
|
|
6427
|
+
RuleCondition,
|
|
6428
|
+
RuleCondition,
|
|
6429
|
+
RuleCondition,
|
|
6430
|
+
RuleCondition,
|
|
6431
|
+
RuleCondition,
|
|
6432
|
+
RuleCondition
|
|
6433
|
+
]
|
|
6434
|
+
| [
|
|
6435
|
+
RuleCondition,
|
|
6436
|
+
RuleCondition,
|
|
6437
|
+
RuleCondition,
|
|
6438
|
+
RuleCondition,
|
|
6439
|
+
RuleCondition,
|
|
6440
|
+
RuleCondition,
|
|
6441
|
+
RuleCondition,
|
|
6442
|
+
RuleCondition,
|
|
6443
|
+
RuleCondition,
|
|
6444
|
+
RuleCondition,
|
|
6445
|
+
RuleCondition,
|
|
6446
|
+
RuleCondition,
|
|
6447
|
+
RuleCondition,
|
|
6448
|
+
RuleCondition,
|
|
6449
|
+
RuleCondition
|
|
6450
|
+
]
|
|
6451
|
+
| [
|
|
6452
|
+
RuleCondition,
|
|
6453
|
+
RuleCondition,
|
|
6454
|
+
RuleCondition,
|
|
6455
|
+
RuleCondition,
|
|
6456
|
+
RuleCondition,
|
|
6457
|
+
RuleCondition,
|
|
6458
|
+
RuleCondition,
|
|
6459
|
+
RuleCondition,
|
|
6460
|
+
RuleCondition,
|
|
6461
|
+
RuleCondition,
|
|
6462
|
+
RuleCondition,
|
|
6463
|
+
RuleCondition,
|
|
6464
|
+
RuleCondition,
|
|
6465
|
+
RuleCondition,
|
|
6466
|
+
RuleCondition,
|
|
6467
|
+
RuleCondition
|
|
6468
|
+
];
|
|
6469
|
+
}
|
|
5928
6470
|
/**
|
|
5929
6471
|
* One consequence of executing the pending task, authored by the executor that is about to run it. An effect is produced by dry-running the real handler against the executor's own prior state — never by the requester, and never by re-implementing the handler's semantics elsewhere. A consent surface renders ONLY effects it received under the executor's signature.
|
|
5930
6472
|
*/
|
|
@@ -6028,6 +6570,22 @@ export interface EndorsementType {
|
|
|
6028
6570
|
*/
|
|
6029
6571
|
createdByDid?: string;
|
|
6030
6572
|
}
|
|
6573
|
+
/**
|
|
6574
|
+
* The fields of one entry that a particular viewer may see, keyed by field: the intersection of the member's visibility, the community's ceiling and policy, plus any derived fields that intersection admits. A withheld field is ABSENT, never null.
|
|
6575
|
+
*/
|
|
6576
|
+
export interface EntryFields {
|
|
6577
|
+
[k: string]: FieldValue | undefined;
|
|
6578
|
+
}
|
|
6579
|
+
export interface EnumOption {
|
|
6580
|
+
/**
|
|
6581
|
+
* The stored value.
|
|
6582
|
+
*/
|
|
6583
|
+
value: string;
|
|
6584
|
+
/**
|
|
6585
|
+
* What a reader is shown for it.
|
|
6586
|
+
*/
|
|
6587
|
+
label: string;
|
|
6588
|
+
}
|
|
6031
6589
|
/**
|
|
6032
6590
|
* What a room writes into its own witnessed log, so that a host serving a stale, forked or partial view of it becomes **evident rather than merely possible**.
|
|
6033
6591
|
*
|
|
@@ -6146,6 +6704,20 @@ export interface ExternalAccount {
|
|
|
6146
6704
|
createdAt: string;
|
|
6147
6705
|
updatedAt: string;
|
|
6148
6706
|
}
|
|
6707
|
+
/**
|
|
6708
|
+
* Where the member's external card stands. Present on a card exactly when `discoverability.external` is true. `published`: the community is serving the card the member signed, and its trust registry points to it. `awaitingSignature`: the member's `public` values have changed since they signed, so the community has withdrawn the card it was serving and serves none until the member signs the current values (vtc/directory/card/publish). The community never serves a card the member did not sign, and never one that differs from their current `public` values.
|
|
6709
|
+
*/
|
|
6710
|
+
export interface ExternalCard {
|
|
6711
|
+
state: "published" | "awaitingSignature";
|
|
6712
|
+
/**
|
|
6713
|
+
* Present while `published`: digest of the card served, as vtc/directory/card/publish defines it.
|
|
6714
|
+
*/
|
|
6715
|
+
cardDigest?: DigestMultibase;
|
|
6716
|
+
/**
|
|
6717
|
+
* Present while `published`: when the card now served was published.
|
|
6718
|
+
*/
|
|
6719
|
+
publishedAt?: string;
|
|
6720
|
+
}
|
|
6149
6721
|
/**
|
|
6150
6722
|
* One displayed value, with where it comes from and how to render it.
|
|
6151
6723
|
*/
|
|
@@ -6165,6 +6737,108 @@ export interface Field {
|
|
|
6165
6737
|
[k: string]: unknown | undefined;
|
|
6166
6738
|
};
|
|
6167
6739
|
}
|
|
6740
|
+
/**
|
|
6741
|
+
* 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.
|
|
6742
|
+
*/
|
|
6743
|
+
export interface FieldConstraints {
|
|
6744
|
+
maxLength?: number;
|
|
6745
|
+
minLength?: number;
|
|
6746
|
+
/**
|
|
6747
|
+
* ECMA-262 regular expression a text value MUST match.
|
|
6748
|
+
*/
|
|
6749
|
+
pattern?: string;
|
|
6750
|
+
/**
|
|
6751
|
+
* The permitted values of an `enum` or `multiEnum` field.
|
|
6752
|
+
*
|
|
6753
|
+
* @minItems 1
|
|
6754
|
+
* @maxItems 128
|
|
6755
|
+
*/
|
|
6756
|
+
options?: [EnumOption, ...EnumOption[]];
|
|
6757
|
+
maxItems?: number;
|
|
6758
|
+
minDate?: string;
|
|
6759
|
+
maxDate?: string;
|
|
6760
|
+
claim?: ClaimSelector;
|
|
6761
|
+
}
|
|
6762
|
+
/**
|
|
6763
|
+
* 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`.
|
|
6764
|
+
*/
|
|
6765
|
+
export interface FieldDefinition {
|
|
6766
|
+
key: FieldKey;
|
|
6767
|
+
label: FieldLabel;
|
|
6768
|
+
description?: FieldDescription;
|
|
6769
|
+
type: FieldType;
|
|
6770
|
+
constraints?: FieldConstraints;
|
|
6771
|
+
source: FieldSource;
|
|
6772
|
+
/**
|
|
6773
|
+
* `true` for a base field, present in every community; `false` for a field this community defined.
|
|
6774
|
+
*/
|
|
6775
|
+
base: boolean;
|
|
6776
|
+
/**
|
|
6777
|
+
* 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.
|
|
6778
|
+
*/
|
|
6779
|
+
jsContactPath?: string;
|
|
6780
|
+
required: boolean;
|
|
6781
|
+
ceiling: Audience;
|
|
6782
|
+
defaultVisibility: Audience;
|
|
6783
|
+
searchable: boolean;
|
|
6784
|
+
facet: boolean;
|
|
6785
|
+
order: number;
|
|
6786
|
+
state: FieldState;
|
|
6787
|
+
/**
|
|
6788
|
+
* When the field was retired. Present only on a retired field.
|
|
6789
|
+
*/
|
|
6790
|
+
retiredAt?: string;
|
|
6791
|
+
/**
|
|
6792
|
+
* When the values of a retired field are purged. Present only on a retired field.
|
|
6793
|
+
*/
|
|
6794
|
+
purgeAfter?: string;
|
|
6795
|
+
updatedAt?: string;
|
|
6796
|
+
/**
|
|
6797
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT widen a ceiling.
|
|
6798
|
+
*/
|
|
6799
|
+
ext?: Ext;
|
|
6800
|
+
}
|
|
6801
|
+
/**
|
|
6802
|
+
* What an administrator supplies to define a community field. `key`, `type` and `source` are fixed for the field's life.
|
|
6803
|
+
*/
|
|
6804
|
+
export interface FieldInput {
|
|
6805
|
+
key: FieldKey;
|
|
6806
|
+
label: FieldLabel;
|
|
6807
|
+
description?: FieldDescription;
|
|
6808
|
+
type: FieldType;
|
|
6809
|
+
constraints?: FieldConstraints;
|
|
6810
|
+
/**
|
|
6811
|
+
* As `FieldSource`, less `derived`, which only base fields carry.
|
|
6812
|
+
*/
|
|
6813
|
+
source: "member" | "admin" | "credential";
|
|
6814
|
+
/**
|
|
6815
|
+
* Whether a card must hold a value for its entry to be listed. Never a condition of membership. Absent: false.
|
|
6816
|
+
*/
|
|
6817
|
+
required?: boolean;
|
|
6818
|
+
ceiling: Audience;
|
|
6819
|
+
/**
|
|
6820
|
+
* The audience a card gives the field until its member chooses. MUST NOT be wider than `ceiling`.
|
|
6821
|
+
*/
|
|
6822
|
+
defaultVisibility: Audience;
|
|
6823
|
+
/**
|
|
6824
|
+
* Whether a member's search may match the field, within what the searcher may see. Absent: false.
|
|
6825
|
+
*/
|
|
6826
|
+
searchable?: boolean;
|
|
6827
|
+
/**
|
|
6828
|
+
* Whether the field may be filtered on and counted. Only `enum`, `multiEnum` and `country` fields may be facets. Absent: false.
|
|
6829
|
+
*/
|
|
6830
|
+
facet?: boolean;
|
|
6831
|
+
/**
|
|
6832
|
+
* Display order, ascending.
|
|
6833
|
+
*/
|
|
6834
|
+
order?: number;
|
|
6835
|
+
}
|
|
6836
|
+
/**
|
|
6837
|
+
* The audience the member chose for each field. A field with no entry here takes its definition's `defaultVisibility`. The community MUST NOT widen a member's choice: widening a field's ceiling or default changes no visibility already recorded.
|
|
6838
|
+
*/
|
|
6839
|
+
export interface FieldVisibility {
|
|
6840
|
+
[k: string]: Audience | undefined;
|
|
6841
|
+
}
|
|
6168
6842
|
/**
|
|
6169
6843
|
* The `file` member of a sealed record body: everything that describes a file, sealed with the record, signed by the record's author, and never seen by the host. Defined here so that clients interoperate; no host task carries it, because the host receives only ciphertext.
|
|
6170
6844
|
*
|
|
@@ -6260,6 +6934,131 @@ export interface GitNamespace {
|
|
|
6260
6934
|
*/
|
|
6261
6935
|
state: "pending" | "bound";
|
|
6262
6936
|
}
|
|
6937
|
+
/**
|
|
6938
|
+
* A grant set the group confers: each capability is written onto every member's access-control entry as a resource grant whose source is the group, bounded by the member's role ceiling and by the binder's own holdings.
|
|
6939
|
+
*/
|
|
6940
|
+
export interface GrantsBindingSpec {
|
|
6941
|
+
kind: "grants";
|
|
6942
|
+
/**
|
|
6943
|
+
* @minItems 1
|
|
6944
|
+
* @maxItems 32
|
|
6945
|
+
*/
|
|
6946
|
+
grants: [CapabilityRef, ...CapabilityRef[]];
|
|
6947
|
+
}
|
|
6948
|
+
/**
|
|
6949
|
+
* A community group, as a caller who may see it sees it. Members a caller may not see are absent: `memberCount` only to those who may see the group's members, `managers` and `credentialAuthorityValidUntil` only to its managers.
|
|
6950
|
+
*/
|
|
6951
|
+
export interface Group {
|
|
6952
|
+
groupId: GroupId;
|
|
6953
|
+
/**
|
|
6954
|
+
* The group's own DID, minted by the community's VTA for this group alone. It issues the group's membership credentials. Its DID document carries no name or description.
|
|
6955
|
+
*/
|
|
6956
|
+
groupDid: string;
|
|
6957
|
+
name: GroupName;
|
|
6958
|
+
description?: GroupDescription;
|
|
6959
|
+
kind: GroupKind;
|
|
6960
|
+
/**
|
|
6961
|
+
* Present exactly when `kind` is `dynamic`.
|
|
6962
|
+
*/
|
|
6963
|
+
rule?: DynamicRule;
|
|
6964
|
+
/**
|
|
6965
|
+
* Present exactly when `kind` is `static`.
|
|
6966
|
+
*/
|
|
6967
|
+
joinPolicy?: JoinPolicy;
|
|
6968
|
+
/**
|
|
6969
|
+
* Who may see that the group exists, and its name and description.
|
|
6970
|
+
*/
|
|
6971
|
+
visibility: GroupAudience;
|
|
6972
|
+
/**
|
|
6973
|
+
* Who may see the group's member list. Separate from `visibility`: a group everyone sees may show its members only to administrators. Never wider than `visibility`.
|
|
6974
|
+
*/
|
|
6975
|
+
showMembers: GroupAudience;
|
|
6976
|
+
/**
|
|
6977
|
+
* Whether the group's DID issues its members a membership credential. Default true.
|
|
6978
|
+
*/
|
|
6979
|
+
issuesCredentials: boolean;
|
|
6980
|
+
/**
|
|
6981
|
+
* `true` while the group has a `grants` or `role` binding. Such a group is `static` and `closed` for as long as it does.
|
|
6982
|
+
*/
|
|
6983
|
+
carriesAuthority: boolean;
|
|
6984
|
+
/**
|
|
6985
|
+
* Active members. Only to callers who may see the member list.
|
|
6986
|
+
*/
|
|
6987
|
+
memberCount?: number;
|
|
6988
|
+
/**
|
|
6989
|
+
* Entries holding `vtc.groups.manage` qualified to this group, read from the access-control list. Informational: managers are appointed by an access-control grant, never by this record.
|
|
6990
|
+
*
|
|
6991
|
+
* @maxItems 256
|
|
6992
|
+
*/
|
|
6993
|
+
managers?: EntryId[];
|
|
6994
|
+
/**
|
|
6995
|
+
* When the community's authorization credential to the group expires. The community renews it well before.
|
|
6996
|
+
*/
|
|
6997
|
+
credentialAuthorityValidUntil?: string;
|
|
6998
|
+
createdAt: string;
|
|
6999
|
+
/**
|
|
7000
|
+
* The creating administrator's directory entry, where they have one.
|
|
7001
|
+
*/
|
|
7002
|
+
createdBy?: EntryId;
|
|
7003
|
+
updatedAt?: string;
|
|
7004
|
+
/**
|
|
7005
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1. An extension member MUST NOT carry authority.
|
|
7006
|
+
*/
|
|
7007
|
+
ext?: Ext;
|
|
7008
|
+
}
|
|
7009
|
+
export interface GroupBinding {
|
|
7010
|
+
bindingId: BindingId;
|
|
7011
|
+
binding: BindingSpec;
|
|
7012
|
+
/**
|
|
7013
|
+
* `pending`: waiting for the consent the community requires. `active`: in force; the community's reconciler keeps members' admissions and grants in line with it. `removing`: being withdrawn; the reconciler is removing what only this binding provided.
|
|
7014
|
+
*/
|
|
7015
|
+
state: "pending" | "active" | "removing";
|
|
7016
|
+
createdAt: string;
|
|
7017
|
+
createdBy?: string;
|
|
7018
|
+
}
|
|
7019
|
+
/**
|
|
7020
|
+
* Present when the community has groups. A member of a group holds a credential, issued by the group's own identifier, that evidences their membership, and can present it outside the community — which is why an applicant is told.
|
|
7021
|
+
*/
|
|
7022
|
+
export interface GroupDisclosure {
|
|
7023
|
+
/**
|
|
7024
|
+
* How long each group membership credential is valid for, as an ISO 8601 duration in weeks, days, hours, minutes and seconds (`P30D`). It is renewed while the member stays in the group, and a credential already issued stays valid until it expires even after its holder leaves.
|
|
7025
|
+
*/
|
|
7026
|
+
credentialValidity: string;
|
|
7027
|
+
}
|
|
7028
|
+
export interface GroupJoinRequest {
|
|
7029
|
+
requestId: JoinRequestId;
|
|
7030
|
+
groupId: GroupId;
|
|
7031
|
+
entryId: EntryId;
|
|
7032
|
+
message?: JoinRequestMessage;
|
|
7033
|
+
createdAt: string;
|
|
7034
|
+
state: "pending" | "approved" | "declined" | "withdrawn";
|
|
7035
|
+
decidedAt?: string;
|
|
7036
|
+
/**
|
|
7037
|
+
* The manager who decided. Shown to managers only.
|
|
7038
|
+
*/
|
|
7039
|
+
decidedBy?: string;
|
|
7040
|
+
}
|
|
7041
|
+
export interface GroupMember {
|
|
7042
|
+
entryId: EntryId;
|
|
7043
|
+
source: MembershipSource;
|
|
7044
|
+
since: string;
|
|
7045
|
+
/**
|
|
7046
|
+
* `active`: a member. `pending`: an addition to a group carrying authority that is waiting for the consent the community requires for a grant.
|
|
7047
|
+
*/
|
|
7048
|
+
state: "active" | "pending";
|
|
7049
|
+
/**
|
|
7050
|
+
* The member's directory fields that the caller may see, projected exactly as vtc/directory/entries/show would project them. Absent when the caller may see none.
|
|
7051
|
+
*/
|
|
7052
|
+
fields?: EntryFields;
|
|
7053
|
+
/**
|
|
7054
|
+
* The member's current group membership credential, or null when the group issues none.
|
|
7055
|
+
*/
|
|
7056
|
+
credentialId?: GroupCredentialId | null;
|
|
7057
|
+
/**
|
|
7058
|
+
* When the member's current group credential expires. Shown to the member themselves and to managers only.
|
|
7059
|
+
*/
|
|
7060
|
+
credentialValidUntil?: string;
|
|
7061
|
+
}
|
|
6263
7062
|
/**
|
|
6264
7063
|
* The applicant's proof that distinct eligible vetters of the community vetted it, as a join submission carries it under `extensions.hiddenVetting`. Built by vta/pcs/prove, verified by the community.
|
|
6265
7064
|
*/
|
|
@@ -6520,6 +7319,12 @@ export interface IssuedCredentialBase {
|
|
|
6520
7319
|
*/
|
|
6521
7320
|
expiresAt: string;
|
|
6522
7321
|
}
|
|
7322
|
+
/**
|
|
7323
|
+
* One entry exported as a JSContact `Card` (RFC 9553). Member names inside are JSContact's own and are carried verbatim. `uid` is `urn:vtc-directory:<EntryId>`. Base fields map as their definitions' `jsContactPath` says (`displayName` → `name.full`, `nickname` → `nicknames`, `avatar` → `media` of kind `photo`, `pronouns` → `speakToAs.pronouns`, `bio` → `notes`, `links` → `links`); community fields and derived fields are exported as vendor-specific properties named by their field key. Additional members are permitted because JSContact defines them. Carried as an open object so that no JSContact member is lost in transit: a consumer MUST check that `@type` is `Card`, `version` is `1.0` and `uid` is `urn:vtc-directory:<EntryId>`, which this schema does not constrain.
|
|
7324
|
+
*/
|
|
7325
|
+
export interface JSContactCard {
|
|
7326
|
+
[k: string]: unknown | undefined;
|
|
7327
|
+
}
|
|
6523
7328
|
/**
|
|
6524
7329
|
* Whether this community answers vtc/join-requests/manifest to a caller it cannot identify.
|
|
6525
7330
|
*/
|
|
@@ -6737,6 +7542,12 @@ export interface LimitTarget {
|
|
|
6737
7542
|
*/
|
|
6738
7543
|
member?: string;
|
|
6739
7544
|
}
|
|
7545
|
+
/**
|
|
7546
|
+
* The community's listing settings. `defaultListing`: the listing a new card starts with (default `listed`). There is no floor: every member may always choose `hidden`, and a community cannot hold an entry above its member's choice. Raising `defaultListing` affects new cards only.
|
|
7547
|
+
*/
|
|
7548
|
+
export interface ListingDefaults {
|
|
7549
|
+
defaultListing: Listing;
|
|
7550
|
+
}
|
|
6740
7551
|
export interface LocalSettings {
|
|
6741
7552
|
kind: "local";
|
|
6742
7553
|
/**
|
|
@@ -7152,6 +7963,23 @@ export interface MonitorFilter {
|
|
|
7152
7963
|
*/
|
|
7153
7964
|
failuresOnly?: boolean;
|
|
7154
7965
|
}
|
|
7966
|
+
/**
|
|
7967
|
+
* The discoverability a card has when the community creates it, before its member chooses. A new card is never published beyond the community (VTI-DIR-042), so there is no member for that here: `externalCards` says whether the member may turn it on.
|
|
7968
|
+
*/
|
|
7969
|
+
export interface NewCardDefaults {
|
|
7970
|
+
/**
|
|
7971
|
+
* The listing a new card starts with: the community's `defaultListing` (vtc/directory/fields/list). Every member may always choose `hidden`.
|
|
7972
|
+
*/
|
|
7973
|
+
listing: Listing;
|
|
7974
|
+
/**
|
|
7975
|
+
* What a member's search may match, as the card's `discoverability.search`.
|
|
7976
|
+
*/
|
|
7977
|
+
search: "byName" | "exactNickname" | "off";
|
|
7978
|
+
/**
|
|
7979
|
+
* From whom a new card accepts introductions. Absent where the community does not deliver introductions.
|
|
7980
|
+
*/
|
|
7981
|
+
introductions?: Introductions;
|
|
7982
|
+
}
|
|
7155
7983
|
/**
|
|
7156
7984
|
* A community's offer of admission to a room it owns, as the member it is addressed to sees it.
|
|
7157
7985
|
*/
|
|
@@ -7663,6 +8491,14 @@ export interface PublicKeyCredentialRequestOptions {
|
|
|
7663
8491
|
allowCredentials?: PublicKeyCredentialDescriptor[];
|
|
7664
8492
|
userVerification?: "discouraged" | "preferred" | "required";
|
|
7665
8493
|
}
|
|
8494
|
+
/**
|
|
8495
|
+
* A member's external card: a JSContact `Card` (RFC 9553) holding exactly their values whose visibility is `public`, mapped as `JSContactCard` maps them, with the member's W3C Data Integrity `proof`. The community serves it as received and never signs, composes or edits it (VTI-REG-004 item 4).
|
|
8496
|
+
*
|
|
8497
|
+
* Carried as an open object, and deliberately so: the proof covers every member of the card, and a typed binding that kept only the members named here would drop the rest and break the signature. So this schema constrains none of its members, and a consumer MUST check them itself: `@type`, `version`, `uid` and `proof` are present; `@type` is `Card`; `version` is `1.0`; `uid` is `urn:vtc-directory:<EntryId>`; `proof` is a `DataIntegrityProof` with `cryptosuite` `eddsa-jcs-2022` or `ecdsa-jcs-2019`, `proofPurpose` `assertionMethod`, and a `verificationMethod` of the member's membership DID authorized for `assertionMethod`; and the proof verifies over the card without it, before any member is relied on.
|
|
8498
|
+
*/
|
|
8499
|
+
export interface PublishedCard {
|
|
8500
|
+
[k: string]: unknown | undefined;
|
|
8501
|
+
}
|
|
7666
8502
|
/**
|
|
7667
8503
|
* The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.
|
|
7668
8504
|
*/
|
|
@@ -8250,6 +9086,13 @@ export interface RightRecord_GitNsV0_4 {
|
|
|
8250
9086
|
*/
|
|
8251
9087
|
breakGlass?: BreakGlass;
|
|
8252
9088
|
}
|
|
9089
|
+
/**
|
|
9090
|
+
* A grant set by reference: the capability ceiling of a defined role, conferred as resource grants exactly as a `grants` binding confers its list. It never assigns the role itself — an entry's administrative role and its community role stay direct assignments.
|
|
9091
|
+
*/
|
|
9092
|
+
export interface RoleBindingSpec {
|
|
9093
|
+
kind: "role";
|
|
9094
|
+
role: RoleName;
|
|
9095
|
+
}
|
|
8253
9096
|
/**
|
|
8254
9097
|
* One administrative role of a VTC: a name, the CEILING of capabilities an entry holding the role may hold, and the approve ceiling of capabilities it may approve.
|
|
8255
9098
|
*
|
|
@@ -8430,6 +9273,21 @@ export interface RollbackResult {
|
|
|
8430
9273
|
serverless?: boolean;
|
|
8431
9274
|
ext?: Ext;
|
|
8432
9275
|
}
|
|
9276
|
+
/**
|
|
9277
|
+
* Links a room the community owns to the group: joining the group offers the member admission to the room with `actions`, valid for `validFor`; leaving removes them unless another source still covers them.
|
|
9278
|
+
*/
|
|
9279
|
+
export interface RoomBindingSpec {
|
|
9280
|
+
kind: "room";
|
|
9281
|
+
/**
|
|
9282
|
+
* The community-owned room's DID.
|
|
9283
|
+
*/
|
|
9284
|
+
roomId: string;
|
|
9285
|
+
actions: MemberActions;
|
|
9286
|
+
/**
|
|
9287
|
+
* How long each admission's authority runs, as an ISO 8601 duration in whole days (`P365D`). The community renews it while the member stays in the group.
|
|
9288
|
+
*/
|
|
9289
|
+
validFor: string;
|
|
9290
|
+
}
|
|
8433
9291
|
/**
|
|
8434
9292
|
* How much a host is willing to store for one room, at the room and per member. A hosting decision, set by the host and never by anything in the room's credentials. An upload must fit every scope at once: the object against the smallest `maxFileBytes` that applies, and the member and the room with the file added.
|
|
8435
9293
|
*/
|
|
@@ -8603,6 +9461,26 @@ export interface RotationRecord {
|
|
|
8603
9461
|
*/
|
|
8604
9462
|
cacheHorizonAt?: string;
|
|
8605
9463
|
}
|
|
9464
|
+
/**
|
|
9465
|
+
* One test over a verified fact about a member. `fact: role` tests the member's community role; `fact: field` tests an `admin`- or `credential`-sourced directory field named by `field`; `fact: personhood` tests whether a personhood assertion is on file; `fact: joinedAt` tests when they joined. A rule never reads a self-asserted (`member`-sourced) field: a member must not be able to join a group by editing their card.
|
|
9466
|
+
*/
|
|
9467
|
+
export interface RuleCondition {
|
|
9468
|
+
fact: "role" | "field" | "personhood" | "joinedAt";
|
|
9469
|
+
/**
|
|
9470
|
+
* Present exactly when `fact` is `field`.
|
|
9471
|
+
*/
|
|
9472
|
+
field?: FieldKey;
|
|
9473
|
+
/**
|
|
9474
|
+
* `equals` compares with `value`; `oneOf` with any of `values`; `exists` needs neither; `before` and `after` compare a date fact with `value`.
|
|
9475
|
+
*/
|
|
9476
|
+
op: "equals" | "oneOf" | "exists" | "before" | "after";
|
|
9477
|
+
value?: string | boolean;
|
|
9478
|
+
/**
|
|
9479
|
+
* @minItems 1
|
|
9480
|
+
* @maxItems 64
|
|
9481
|
+
*/
|
|
9482
|
+
values?: [string, ...string[]];
|
|
9483
|
+
}
|
|
8606
9484
|
export interface S3Settings {
|
|
8607
9485
|
kind: "s3";
|
|
8608
9486
|
/**
|
|
@@ -8694,7 +9572,7 @@ export interface Context_VtaV0_1 {
|
|
|
8694
9572
|
*/
|
|
8695
9573
|
export interface SealedRecord {
|
|
8696
9574
|
/**
|
|
8697
|
-
* The sealed record, base64url. Bound by AEAD associated data to `roomId`, `key`,
|
|
9575
|
+
* The sealed record, base64url. Bound by AEAD associated data to `roomId`, `key`, the version it was sealed at, and `epoch`, so a host that relocates it to another key, version, epoch or room produces a mismatch and the open fails. The record cannot be moved undetected even though the host holds every byte of it. The version it was sealed at is `version` below where present, and the record's own `version` otherwise.
|
|
8698
9576
|
*/
|
|
8699
9577
|
ciphertext: string;
|
|
8700
9578
|
/**
|
|
@@ -8705,6 +9583,14 @@ export interface SealedRecord {
|
|
|
8705
9583
|
* The key epoch this record was sealed under. Cleartext because the host must serve the right ciphertext, and bound into the associated data so that relabelling it fails authentication rather than causing a reader to try the wrong key.
|
|
8706
9584
|
*/
|
|
8707
9585
|
epoch: number;
|
|
9586
|
+
/**
|
|
9587
|
+
* The version this ciphertext was sealed at, where that is no longer the record's own `version`. A record's version moves when it is curated (`rooms/records/curate`, which MUST assign a new one so that every `sinceVersion` watermark sees the change), but a curation other than a retraction keeps the body — and the body is bound, by the AEAD and by its author's signature (`SealedRecordBody`), to the version it was written at. Without this member a curated record would be opened at a version it was never sealed for, and would not open for anyone.
|
|
9588
|
+
*
|
|
9589
|
+
* A host MUST record the version a body was sealed at when it stores it, MUST NOT change it while that body is kept — a curation alters a record's standing, never its sealed content — and MUST include it whenever it differs from the record's `version`. It is absent where the two are equal, which is every record that has not been curated since it was written, so the members a record carries are unchanged until a curation needs this one. It is part of `sealed`, and so of the record the data commitment covers (`CommittedRecord`): a host cannot change it without changing the root.
|
|
9590
|
+
*
|
|
9591
|
+
* A reader opens and verifies the body at this version, and MUST refuse a record whose `sealed.version` is greater than its own `version` — a body cannot have been sealed for a version the room had not reached. A host that pairs a newer version with an older body of the same key is rolling the record back; that is a change to the committed record like any other, visible to the comparisons `CommittedRecord` exists for.
|
|
9592
|
+
*/
|
|
9593
|
+
version?: number;
|
|
8708
9594
|
}
|
|
8709
9595
|
/**
|
|
8710
9596
|
* Who the service says it is.
|
|
@@ -9912,6 +10798,31 @@ export interface VerdictWith {
|
|
|
9912
10798
|
*/
|
|
9913
10799
|
presentationDefinition?: {};
|
|
9914
10800
|
}
|
|
10801
|
+
/**
|
|
10802
|
+
* The value of a `credential`-sourced field: a claim the member disclosed from a credential they presented, with the issuer that attests it. A verified value always names its issuer, and a self-asserted value is never shaped as one. The community keeps only the disclosed claim and these facts about it — never the presentation.
|
|
10803
|
+
*/
|
|
10804
|
+
export interface VerifiedValue {
|
|
10805
|
+
/**
|
|
10806
|
+
* The disclosed claim value.
|
|
10807
|
+
*/
|
|
10808
|
+
value: string | boolean | number;
|
|
10809
|
+
/**
|
|
10810
|
+
* DID of the credential's issuer, shown as the field's verification badge.
|
|
10811
|
+
*/
|
|
10812
|
+
issuer: string;
|
|
10813
|
+
/**
|
|
10814
|
+
* The most specific `type` of the credential the claim came from.
|
|
10815
|
+
*/
|
|
10816
|
+
credentialType?: string;
|
|
10817
|
+
/**
|
|
10818
|
+
* When the community verified the presentation.
|
|
10819
|
+
*/
|
|
10820
|
+
verifiedAt: string;
|
|
10821
|
+
/**
|
|
10822
|
+
* When the credential expires, where it does. The community withdraws the value once it passes.
|
|
10823
|
+
*/
|
|
10824
|
+
validUntil?: string;
|
|
10825
|
+
}
|
|
9915
10826
|
/**
|
|
9916
10827
|
* An event the vetter will attend and vet at. `endDate` is on or after `startDate` and no more than 31 days after it; JSON Schema cannot compare two members, so the community checks both and refuses a violation with `malformedRequest`.
|
|
9917
10828
|
*/
|