@openvtc/trust-tasks 0.28.14 → 0.28.15
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 +43 -0
- package/dist/_extends.d.ts.map +1 -1
- package/dist/_extends.js +5 -0
- package/dist/_extends.js.map +1 -1
- package/dist/_shared/components.d.ts +344 -1
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/did-management/stats/set-resolution/0.1/payload.d.ts +398 -0
- package/dist/did-management/stats/set-resolution/0.1/payload.d.ts.map +1 -0
- package/dist/did-management/stats/set-resolution/0.1/payload.js +247 -0
- package/dist/did-management/stats/set-resolution/0.1/payload.js.map +1 -0
- package/dist/index.d.ts +75 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +75 -0
- package/dist/index.js.map +1 -1
- package/dist/rooms/_shared/0.1/room.d.ts +1 -1
- package/dist/rooms/_shared/0.1/room.d.ts.map +1 -1
- package/dist/rooms/_shared/0.2/room.d.ts +1 -1
- package/dist/rooms/_shared/0.2/room.d.ts.map +1 -1
- package/dist/rooms/_shared/0.3/member-profile.d.ts +11 -0
- package/dist/rooms/_shared/0.3/member-profile.d.ts.map +1 -0
- package/dist/rooms/_shared/0.3/member-profile.js +6 -0
- package/dist/rooms/_shared/0.3/member-profile.js.map +1 -0
- package/dist/rooms/changed/0.1/payload.d.ts +139 -0
- package/dist/rooms/changed/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/changed/0.1/payload.js +84 -0
- package/dist/rooms/changed/0.1/payload.js.map +1 -0
- package/dist/rooms/keys/act/0.1/payload.d.ts +4 -4
- package/dist/rooms/keys/act/0.1/payload.js +1 -1
- package/dist/rooms/keys/act/0.10/payload.d.ts +14 -2
- package/dist/rooms/keys/act/0.10/payload.d.ts.map +1 -1
- package/dist/rooms/keys/act/0.10/payload.js +1 -1
- package/dist/rooms/keys/act/0.10/payload.js.map +1 -1
- package/dist/rooms/keys/act/0.11/payload.d.ts +572 -0
- package/dist/rooms/keys/act/0.11/payload.d.ts.map +1 -0
- package/dist/rooms/keys/act/0.11/payload.js +319 -0
- package/dist/rooms/keys/act/0.11/payload.js.map +1 -0
- package/dist/rooms/keys/act/0.12/payload.d.ts +560 -0
- package/dist/rooms/keys/act/0.12/payload.d.ts.map +1 -0
- package/dist/rooms/keys/act/0.12/payload.js +319 -0
- package/dist/rooms/keys/act/0.12/payload.js.map +1 -0
- package/dist/rooms/keys/act/0.2/payload.d.ts +4 -4
- package/dist/rooms/keys/act/0.2/payload.js +1 -1
- package/dist/rooms/keys/act/0.3/payload.d.ts +4 -4
- package/dist/rooms/keys/act/0.3/payload.js +1 -1
- package/dist/rooms/keys/act/0.4/payload.d.ts +4 -4
- package/dist/rooms/keys/act/0.4/payload.js +1 -1
- package/dist/rooms/keys/act/0.5/payload.d.ts +4 -4
- package/dist/rooms/keys/act/0.5/payload.js +1 -1
- package/dist/rooms/keys/act/0.6/payload.d.ts +4 -4
- package/dist/rooms/keys/act/0.6/payload.js +1 -1
- package/dist/rooms/keys/act/0.7/payload.d.ts +4 -4
- package/dist/rooms/keys/act/0.7/payload.js +1 -1
- package/dist/rooms/keys/act/0.8/payload.d.ts +4 -4
- package/dist/rooms/keys/act/0.8/payload.js +1 -1
- package/dist/rooms/keys/act/0.9/payload.d.ts +4 -4
- package/dist/rooms/keys/act/0.9/payload.js +1 -1
- package/dist/rooms/keys/browse/0.1/payload.d.ts +4 -4
- package/dist/rooms/keys/browse/0.1/payload.js +1 -1
- package/dist/rooms/keys/browse/0.2/payload.d.ts +4 -4
- package/dist/rooms/keys/browse/0.2/payload.js +1 -1
- package/dist/rooms/keys/browse/0.3/payload.d.ts +14 -2
- package/dist/rooms/keys/browse/0.3/payload.d.ts.map +1 -1
- package/dist/rooms/keys/browse/0.3/payload.js +1 -1
- package/dist/rooms/keys/browse/0.3/payload.js.map +1 -1
- package/dist/rooms/keys/browse/0.4/payload.d.ts +1127 -0
- package/dist/rooms/keys/browse/0.4/payload.d.ts.map +1 -0
- package/dist/rooms/keys/browse/0.4/payload.js +658 -0
- package/dist/rooms/keys/browse/0.4/payload.js.map +1 -0
- package/dist/rooms/keys/changed/0.1/payload.d.ts +173 -0
- package/dist/rooms/keys/changed/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/keys/changed/0.1/payload.js +99 -0
- package/dist/rooms/keys/changed/0.1/payload.js.map +1 -0
- package/dist/rooms/keys/profile/read/0.1/payload.d.ts +56 -4
- package/dist/rooms/keys/profile/read/0.1/payload.d.ts.map +1 -1
- package/dist/rooms/keys/profile/read/0.1/payload.js +28 -2
- package/dist/rooms/keys/profile/read/0.1/payload.js.map +1 -1
- package/dist/rooms/keys/profile/write/0.1/payload.d.ts +56 -4
- package/dist/rooms/keys/profile/write/0.1/payload.d.ts.map +1 -1
- package/dist/rooms/keys/profile/write/0.1/payload.js +28 -2
- package/dist/rooms/keys/profile/write/0.1/payload.js.map +1 -1
- package/dist/rooms/keys/read/0.1/payload.d.ts +14 -2
- package/dist/rooms/keys/read/0.1/payload.d.ts.map +1 -1
- package/dist/rooms/keys/read/0.1/payload.js +1 -1
- package/dist/rooms/keys/read/0.1/payload.js.map +1 -1
- package/dist/rooms/keys/read/0.2/payload.d.ts +1287 -0
- package/dist/rooms/keys/read/0.2/payload.d.ts.map +1 -0
- package/dist/rooms/keys/read/0.2/payload.js +689 -0
- package/dist/rooms/keys/read/0.2/payload.js.map +1 -0
- package/dist/rooms/keys/seal/0.1/payload.d.ts +4 -4
- package/dist/rooms/keys/seal/0.1/payload.js +1 -1
- package/dist/rooms/keys/seal/0.2/payload.d.ts +13 -2
- package/dist/rooms/keys/seal/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/keys/seal/0.2/payload.js +1 -1
- package/dist/rooms/keys/seal/0.2/payload.js.map +1 -1
- package/dist/rooms/keys/seal/0.3/payload.d.ts +402 -0
- package/dist/rooms/keys/seal/0.3/payload.d.ts.map +1 -0
- package/dist/rooms/keys/seal/0.3/payload.js +229 -0
- package/dist/rooms/keys/seal/0.3/payload.js.map +1 -0
- package/dist/rooms/keys/watch/0.1/payload.d.ts +652 -0
- package/dist/rooms/keys/watch/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/keys/watch/0.1/payload.js +343 -0
- package/dist/rooms/keys/watch/0.1/payload.js.map +1 -0
- package/dist/rooms/records/get/0.1/payload.d.ts +4 -4
- package/dist/rooms/records/get/0.1/payload.js +1 -1
- package/dist/rooms/records/get/0.2/payload.d.ts +13 -2
- package/dist/rooms/records/get/0.2/payload.d.ts.map +1 -1
- package/dist/rooms/records/get/0.2/payload.js +1 -1
- package/dist/rooms/records/get/0.2/payload.js.map +1 -1
- package/dist/rooms/records/get/0.3/payload.d.ts +1064 -0
- package/dist/rooms/records/get/0.3/payload.d.ts.map +1 -0
- package/dist/rooms/records/get/0.3/payload.js +571 -0
- package/dist/rooms/records/get/0.3/payload.js.map +1 -0
- package/dist/rooms/records/list/0.1/payload.d.ts +4 -4
- package/dist/rooms/records/list/0.1/payload.js +1 -1
- package/dist/rooms/records/list/0.2/payload.d.ts +4 -4
- package/dist/rooms/records/list/0.2/payload.js +1 -1
- package/dist/rooms/records/list/0.3/payload.d.ts +4 -4
- package/dist/rooms/records/list/0.3/payload.js +1 -1
- package/dist/rooms/records/list/0.4/payload.d.ts +4 -4
- package/dist/rooms/records/list/0.4/payload.js +1 -1
- package/dist/rooms/records/list/0.5/payload.d.ts +13 -2
- package/dist/rooms/records/list/0.5/payload.d.ts.map +1 -1
- package/dist/rooms/records/list/0.5/payload.js +1 -1
- package/dist/rooms/records/list/0.5/payload.js.map +1 -1
- package/dist/rooms/records/list/0.6/payload.d.ts +1096 -0
- package/dist/rooms/records/list/0.6/payload.d.ts.map +1 -0
- package/dist/rooms/records/list/0.6/payload.js +596 -0
- package/dist/rooms/records/list/0.6/payload.js.map +1 -0
- package/dist/rooms/records/put/0.1/payload.d.ts +4 -4
- package/dist/rooms/records/put/0.1/payload.js +1 -1
- package/dist/rooms/records/put/0.2/payload.d.ts +4 -4
- package/dist/rooms/records/put/0.2/payload.js +1 -1
- package/dist/rooms/records/put/0.3/payload.d.ts +4 -4
- package/dist/rooms/records/put/0.3/payload.js +1 -1
- package/dist/rooms/records/put/0.4/payload.d.ts +146 -6
- package/dist/rooms/records/put/0.4/payload.d.ts.map +1 -1
- package/dist/rooms/records/put/0.4/payload.js +81 -3
- package/dist/rooms/records/put/0.4/payload.js.map +1 -1
- package/dist/rooms/records/put/0.5/payload.d.ts +1808 -0
- package/dist/rooms/records/put/0.5/payload.d.ts.map +1 -0
- package/dist/rooms/records/put/0.5/payload.js +984 -0
- package/dist/rooms/records/put/0.5/payload.js.map +1 -0
- package/dist/rooms/watch/0.1/payload.d.ts +497 -0
- package/dist/rooms/watch/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/watch/0.1/payload.js +268 -0
- package/dist/rooms/watch/0.1/payload.js.map +1 -0
- package/dist/vtc/_shared/0.7/network-membership.d.ts +16 -0
- package/dist/vtc/_shared/0.7/network-membership.d.ts.map +1 -0
- package/dist/vtc/_shared/0.7/network-membership.js +6 -0
- package/dist/vtc/_shared/0.7/network-membership.js.map +1 -0
- package/dist/vtc/boards/delete/0.1/payload.d.ts +416 -0
- package/dist/vtc/boards/delete/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/delete/0.1/payload.js +236 -0
- package/dist/vtc/boards/delete/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/update/0.1/payload.d.ts +147 -2
- package/dist/vtc/boards/update/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/boards/update/0.1/payload.js +72 -0
- package/dist/vtc/boards/update/0.1/payload.js.map +1 -1
- package/dist/vtc/elections/list/0.5/payload.d.ts +3 -3
- package/dist/vtc/elections/list/0.5/payload.js +1 -1
- package/dist/vtc/elections/list/0.5/payload.js.map +1 -1
- package/dist/vtc/elections/show/0.6/payload.d.ts +3 -3
- package/dist/vtc/elections/show/0.6/payload.js +1 -1
- package/dist/vtc/elections/show/0.6/payload.js.map +1 -1
- package/dist/vtc/elections/tombstones/show/0.1/payload.d.ts +593 -0
- package/dist/vtc/elections/tombstones/show/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/elections/tombstones/show/0.1/payload.js +335 -0
- package/dist/vtc/elections/tombstones/show/0.1/payload.js.map +1 -0
- package/dist/vtc/networks/deliver/0.1/payload.d.ts +354 -0
- package/dist/vtc/networks/deliver/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/networks/deliver/0.1/payload.js +213 -0
- package/dist/vtc/networks/deliver/0.1/payload.js.map +1 -0
- package/dist/vtc/networks/evidence/0.1/payload.d.ts +14 -2
- package/dist/vtc/networks/evidence/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/networks/evidence/0.1/payload.js +1 -1
- package/dist/vtc/networks/evidence/0.1/payload.js.map +1 -1
- package/dist/vtc/networks/evidence/0.2/payload.d.ts +412 -0
- package/dist/vtc/networks/evidence/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/networks/evidence/0.2/payload.js +233 -0
- package/dist/vtc/networks/evidence/0.2/payload.js.map +1 -0
- package/dist/vtc/networks/groups/register/0.1/payload.d.ts +14 -2
- package/dist/vtc/networks/groups/register/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/networks/groups/register/0.1/payload.js +1 -1
- package/dist/vtc/networks/groups/register/0.1/payload.js.map +1 -1
- package/dist/vtc/networks/groups/register/0.2/payload.d.ts +680 -0
- package/dist/vtc/networks/groups/register/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/networks/groups/register/0.2/payload.js +401 -0
- package/dist/vtc/networks/groups/register/0.2/payload.js.map +1 -0
- package/dist/vtc/networks/join/0.1/payload.d.ts +14 -2
- package/dist/vtc/networks/join/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/networks/join/0.1/payload.js +1 -1
- package/dist/vtc/networks/join/0.1/payload.js.map +1 -1
- package/dist/vtc/networks/join/0.2/payload.d.ts +760 -0
- package/dist/vtc/networks/join/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/networks/join/0.2/payload.js +445 -0
- package/dist/vtc/networks/join/0.2/payload.js.map +1 -0
- package/dist/vtc/networks/leave/0.1/payload.d.ts +14 -2
- package/dist/vtc/networks/leave/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/networks/leave/0.1/payload.js +1 -1
- package/dist/vtc/networks/leave/0.1/payload.js.map +1 -1
- package/dist/vtc/networks/leave/0.2/payload.d.ts +664 -0
- package/dist/vtc/networks/leave/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/networks/leave/0.2/payload.js +393 -0
- package/dist/vtc/networks/leave/0.2/payload.js.map +1 -0
- package/dist/vtc/networks/list/0.1/payload.d.ts +14 -2
- package/dist/vtc/networks/list/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/networks/list/0.1/payload.js +1 -1
- package/dist/vtc/networks/list/0.1/payload.js.map +1 -1
- package/dist/vtc/networks/list/0.2/payload.d.ts +713 -0
- package/dist/vtc/networks/list/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/networks/list/0.2/payload.js +417 -0
- package/dist/vtc/networks/list/0.2/payload.js.map +1 -0
- package/dist/vtc/networks/repudiate/0.1/payload.d.ts +14 -2
- package/dist/vtc/networks/repudiate/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/networks/repudiate/0.1/payload.js +1 -1
- package/dist/vtc/networks/repudiate/0.1/payload.js.map +1 -1
- package/dist/vtc/networks/repudiate/0.2/payload.d.ts +680 -0
- package/dist/vtc/networks/repudiate/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/networks/repudiate/0.2/payload.js +400 -0
- package/dist/vtc/networks/repudiate/0.2/payload.js.map +1 -0
- package/dist/vtc/networks/show/0.1/payload.d.ts +14 -2
- package/dist/vtc/networks/show/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/networks/show/0.1/payload.js +1 -1
- package/dist/vtc/networks/show/0.1/payload.js.map +1 -1
- package/dist/vtc/networks/show/0.2/payload.d.ts +650 -0
- package/dist/vtc/networks/show/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/networks/show/0.2/payload.js +388 -0
- package/dist/vtc/networks/show/0.2/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_extends.ts +5 -0
- package/src/_shared/components.ts +352 -1
- package/src/did-management/stats/set-resolution/0.1/payload.ts +312 -0
- package/src/index.ts +75 -0
- package/src/rooms/_shared/0.1/room.ts +1 -1
- package/src/rooms/_shared/0.2/room.ts +1 -1
- package/src/rooms/_shared/0.3/member-profile.ts +11 -0
- package/src/rooms/changed/0.1/payload.ts +115 -0
- package/src/rooms/keys/act/0.1/payload.ts +5 -5
- package/src/rooms/keys/act/0.10/payload.ts +15 -3
- package/src/rooms/keys/act/0.11/payload.ts +408 -0
- package/src/rooms/keys/act/0.12/payload.ts +396 -0
- package/src/rooms/keys/act/0.2/payload.ts +5 -5
- package/src/rooms/keys/act/0.3/payload.ts +5 -5
- package/src/rooms/keys/act/0.4/payload.ts +5 -5
- package/src/rooms/keys/act/0.5/payload.ts +5 -5
- package/src/rooms/keys/act/0.6/payload.ts +5 -5
- package/src/rooms/keys/act/0.7/payload.ts +5 -5
- package/src/rooms/keys/act/0.8/payload.ts +5 -5
- package/src/rooms/keys/act/0.9/payload.ts +5 -5
- package/src/rooms/keys/browse/0.1/payload.ts +5 -5
- package/src/rooms/keys/browse/0.2/payload.ts +5 -5
- package/src/rooms/keys/browse/0.3/payload.ts +15 -3
- package/src/rooms/keys/browse/0.4/payload.ts +730 -0
- package/src/rooms/keys/changed/0.1/payload.ts +138 -0
- package/src/rooms/keys/profile/read/0.1/payload.ts +28 -2
- package/src/rooms/keys/profile/write/0.1/payload.ts +28 -2
- package/src/rooms/keys/read/0.1/payload.ts +15 -3
- package/src/rooms/keys/read/0.2/payload.ts +855 -0
- package/src/rooms/keys/seal/0.1/payload.ts +5 -5
- package/src/rooms/keys/seal/0.2/payload.ts +14 -3
- package/src/rooms/keys/seal/0.3/payload.ts +282 -0
- package/src/rooms/keys/watch/0.1/payload.ts +452 -0
- package/src/rooms/records/get/0.1/payload.ts +5 -5
- package/src/rooms/records/get/0.2/payload.ts +14 -3
- package/src/rooms/records/get/0.3/payload.ts +684 -0
- package/src/rooms/records/list/0.1/payload.ts +5 -5
- package/src/rooms/records/list/0.2/payload.ts +5 -5
- package/src/rooms/records/list/0.3/payload.ts +5 -5
- package/src/rooms/records/list/0.4/payload.ts +5 -5
- package/src/rooms/records/list/0.5/payload.ts +14 -3
- package/src/rooms/records/list/0.6/payload.ts +673 -0
- package/src/rooms/records/put/0.1/payload.ts +5 -5
- package/src/rooms/records/put/0.2/payload.ts +5 -5
- package/src/rooms/records/put/0.3/payload.ts +5 -5
- package/src/rooms/records/put/0.4/payload.ts +95 -5
- package/src/rooms/records/put/0.5/payload.ts +1095 -0
- package/src/rooms/watch/0.1/payload.ts +340 -0
- package/src/vtc/_shared/0.7/network-membership.ts +17 -0
- package/src/vtc/boards/delete/0.1/payload.ts +293 -0
- package/src/vtc/boards/update/0.1/payload.ts +91 -2
- package/src/vtc/elections/list/0.5/payload.ts +2 -2
- package/src/vtc/elections/show/0.6/payload.ts +2 -2
- package/src/vtc/elections/tombstones/show/0.1/payload.ts +401 -0
- package/src/vtc/networks/deliver/0.1/payload.ts +254 -0
- package/src/vtc/networks/evidence/0.1/payload.ts +15 -3
- package/src/vtc/networks/evidence/0.2/payload.ts +290 -0
- package/src/vtc/networks/groups/register/0.1/payload.ts +15 -3
- package/src/vtc/networks/groups/register/0.2/payload.ts +446 -0
- package/src/vtc/networks/join/0.1/payload.ts +15 -3
- package/src/vtc/networks/join/0.2/payload.ts +492 -0
- package/src/vtc/networks/leave/0.1/payload.ts +15 -3
- package/src/vtc/networks/leave/0.2/payload.ts +434 -0
- package/src/vtc/networks/list/0.1/payload.ts +15 -3
- package/src/vtc/networks/list/0.2/payload.ts +463 -0
- package/src/vtc/networks/repudiate/0.1/payload.ts +15 -3
- package/src/vtc/networks/repudiate/0.2/payload.ts +445 -0
- package/src/vtc/networks/show/0.1/payload.ts +15 -3
- package/src/vtc/networks/show/0.2/payload.ts +425 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Source: specs/vtc/boards/update/0.1/payload.schema.json
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { Board, BoardAudience, BoardDescription, BoardId, BoardStatus, BoardTitle, BoardVisibility, ChoiceQuestion, ElectionTemplate, Ext, GroupId, IdeaFormat, Key_VotingV0_1 as Key, Question, QuestionOption, RankingQuestion, Revote, ScoreQuestion, SecrecyLevel, Slot_VtcBoardsV0_1 as Slot, TextQuestion, Topic_VtcBoardsV0_1 as Topic, Trustees, Window } from "../../../../_shared/components.js";
|
|
6
|
+
import type { Board, BoardAudience, BoardDescription, BoardId, BoardStatus, BoardTitle, BoardVisibility, ChoiceQuestion, ElectionTemplate, Ext, GroupId, IdeaFormat, IdeaId, Key_VotingV0_1 as Key, Question, QuestionOption, RankingQuestion, Revote, ScoreQuestion, SecrecyLevel, Slot_VtcBoardsV0_1 as Slot, TextQuestion, Topic_VtcBoardsV0_1 as Topic, Trustees, Window } from "../../../../_shared/components.js";
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -157,11 +157,28 @@ export interface VTCBoardsUpdatePayload {
|
|
|
157
157
|
*/
|
|
158
158
|
export interface VTCBoardsUpdateResponsePayload {
|
|
159
159
|
board: Board;
|
|
160
|
+
/**
|
|
161
|
+
* Present when this update closed the board: how its voting was ended (VTI-BRD-006). Counts the requests made; the ballot box answers them after this response.
|
|
162
|
+
*/
|
|
163
|
+
closing?: {
|
|
164
|
+
/**
|
|
165
|
+
* Elections open for voting that were closed early; each is counted as it stood, and the count is final.
|
|
166
|
+
*/
|
|
167
|
+
closedEarly: number;
|
|
168
|
+
/**
|
|
169
|
+
* Elections not yet open for voting, or not yet registered, that were cancelled; their ideas are not selected.
|
|
170
|
+
*/
|
|
171
|
+
cancelled: number;
|
|
172
|
+
/**
|
|
173
|
+
* Ideas whose election does not allow closing early and closes when its manifest says.
|
|
174
|
+
*/
|
|
175
|
+
runningToClose: IdeaId[];
|
|
176
|
+
};
|
|
160
177
|
ext?: Ext;
|
|
161
178
|
}
|
|
162
179
|
|
|
163
180
|
/** Shared definitions this specification references, re-exported under the names it used to declare them with. */
|
|
164
|
-
export type { Board, BoardAudience, BoardDescription, BoardId, BoardStatus, BoardTitle, BoardVisibility, ChoiceQuestion, ElectionTemplate, Ext, GroupId, IdeaFormat, Key, Question, QuestionOption, RankingQuestion, Revote, ScoreQuestion, SecrecyLevel, Slot, TextQuestion, Topic, Trustees, Window };
|
|
181
|
+
export type { Board, BoardAudience, BoardDescription, BoardId, BoardStatus, BoardTitle, BoardVisibility, ChoiceQuestion, ElectionTemplate, Ext, GroupId, IdeaFormat, IdeaId, Key, Question, QuestionOption, RankingQuestion, Revote, ScoreQuestion, SecrecyLevel, Slot, TextQuestion, Topic, Trustees, Window };
|
|
165
182
|
|
|
166
183
|
/** Trust Task type URI. */
|
|
167
184
|
export const TYPE_URI = "https://trusttasks.org/spec/vtc/boards/update/0.1" as const;
|
|
@@ -291,6 +308,36 @@ export const PAYLOAD_SCHEMA = {
|
|
|
291
308
|
"board": {
|
|
292
309
|
"$ref": "#/$defs/Board"
|
|
293
310
|
},
|
|
311
|
+
"closing": {
|
|
312
|
+
"type": "object",
|
|
313
|
+
"additionalProperties": false,
|
|
314
|
+
"required": [
|
|
315
|
+
"closedEarly",
|
|
316
|
+
"cancelled",
|
|
317
|
+
"runningToClose"
|
|
318
|
+
],
|
|
319
|
+
"description": "Present when this update closed the board: how its voting was ended (VTI-BRD-006). Counts the requests made; the ballot box answers them after this response.",
|
|
320
|
+
"properties": {
|
|
321
|
+
"closedEarly": {
|
|
322
|
+
"type": "integer",
|
|
323
|
+
"minimum": 0,
|
|
324
|
+
"description": "Elections open for voting that were closed early; each is counted as it stood, and the count is final."
|
|
325
|
+
},
|
|
326
|
+
"cancelled": {
|
|
327
|
+
"type": "integer",
|
|
328
|
+
"minimum": 0,
|
|
329
|
+
"description": "Elections not yet open for voting, or not yet registered, that were cancelled; their ideas are not selected."
|
|
330
|
+
},
|
|
331
|
+
"runningToClose": {
|
|
332
|
+
"type": "array",
|
|
333
|
+
"items": {
|
|
334
|
+
"$ref": "#/$defs/IdeaId"
|
|
335
|
+
},
|
|
336
|
+
"uniqueItems": true,
|
|
337
|
+
"description": "Ideas whose election does not allow closing early and closes when its manifest says."
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
},
|
|
294
341
|
"ext": {
|
|
295
342
|
"$ref": "#/$defs/Ext"
|
|
296
343
|
}
|
|
@@ -306,6 +353,12 @@ export const PAYLOAD_SCHEMA = {
|
|
|
306
353
|
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
307
354
|
}
|
|
308
355
|
},
|
|
356
|
+
"IdeaId": {
|
|
357
|
+
"title": "IdeaId",
|
|
358
|
+
"description": "Opaque identifier of an idea: `ida_` followed by 16 to 64 base64url characters. Random and unique within the community.",
|
|
359
|
+
"type": "string",
|
|
360
|
+
"pattern": "^ida_[A-Za-z0-9_-]{16,64}$"
|
|
361
|
+
},
|
|
309
362
|
"Board": {
|
|
310
363
|
"title": "Board",
|
|
311
364
|
"description": "A board as one caller may see it.",
|
|
@@ -904,6 +957,36 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
904
957
|
"board": {
|
|
905
958
|
"$ref": "#/$defs/Board"
|
|
906
959
|
},
|
|
960
|
+
"closing": {
|
|
961
|
+
"type": "object",
|
|
962
|
+
"additionalProperties": false,
|
|
963
|
+
"required": [
|
|
964
|
+
"closedEarly",
|
|
965
|
+
"cancelled",
|
|
966
|
+
"runningToClose"
|
|
967
|
+
],
|
|
968
|
+
"description": "Present when this update closed the board: how its voting was ended (VTI-BRD-006). Counts the requests made; the ballot box answers them after this response.",
|
|
969
|
+
"properties": {
|
|
970
|
+
"closedEarly": {
|
|
971
|
+
"type": "integer",
|
|
972
|
+
"minimum": 0,
|
|
973
|
+
"description": "Elections open for voting that were closed early; each is counted as it stood, and the count is final."
|
|
974
|
+
},
|
|
975
|
+
"cancelled": {
|
|
976
|
+
"type": "integer",
|
|
977
|
+
"minimum": 0,
|
|
978
|
+
"description": "Elections not yet open for voting, or not yet registered, that were cancelled; their ideas are not selected."
|
|
979
|
+
},
|
|
980
|
+
"runningToClose": {
|
|
981
|
+
"type": "array",
|
|
982
|
+
"items": {
|
|
983
|
+
"$ref": "#/$defs/IdeaId"
|
|
984
|
+
},
|
|
985
|
+
"uniqueItems": true,
|
|
986
|
+
"description": "Ideas whose election does not allow closing early and closes when its manifest says."
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
},
|
|
907
990
|
"ext": {
|
|
908
991
|
"$ref": "#/$defs/Ext"
|
|
909
992
|
}
|
|
@@ -919,6 +1002,12 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
919
1002
|
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
920
1003
|
}
|
|
921
1004
|
},
|
|
1005
|
+
"IdeaId": {
|
|
1006
|
+
"title": "IdeaId",
|
|
1007
|
+
"description": "Opaque identifier of an idea: `ida_` followed by 16 to 64 base64url characters. Random and unique within the community.",
|
|
1008
|
+
"type": "string",
|
|
1009
|
+
"pattern": "^ida_[A-Za-z0-9_-]{16,64}$"
|
|
1010
|
+
},
|
|
922
1011
|
"Board": {
|
|
923
1012
|
"title": "Board",
|
|
924
1013
|
"description": "A board as one caller may see it.",
|
|
@@ -20,7 +20,7 @@ export type RegistrarState =
|
|
|
20
20
|
| "registrationRefused";
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* A member or an administrator pages through the community's elections that the caller may see. A list never carries a presentation, and never shows an election whose credential roll names a member party to a caller who would need one to read it (vtc/elections/show). The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.
|
|
23
|
+
* A member or an administrator pages through the community's elections that the caller may see. A list never carries a presentation, and never shows an election whose credential roll names a member party to a caller who would need one to read it (vtc/elections/show), nor one whose credential roll names a group the community has deleted to any caller but an administrator (VTI-VOT-029). The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.
|
|
24
24
|
*/
|
|
25
25
|
export interface VTCElectionsListPayload {
|
|
26
26
|
state?: RegistrarState;
|
|
@@ -114,7 +114,7 @@ export const PAYLOAD_SCHEMA = {
|
|
|
114
114
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
115
115
|
"$id": "https://trusttasks.org/spec/vtc/elections/list/0.5",
|
|
116
116
|
"title": "VTC Elections — List — payload",
|
|
117
|
-
"description": "A member or an administrator pages through the community's elections that the caller may see. A list never carries a presentation, and never shows an election whose credential roll names a member party to a caller who would need one to read it (vtc/elections/show). The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.",
|
|
117
|
+
"description": "A member or an administrator pages through the community's elections that the caller may see. A list never carries a presentation, and never shows an election whose credential roll names a member party to a caller who would need one to read it (vtc/elections/show), nor one whose credential roll names a group the community has deleted to any caller but an administrator (VTI-VOT-029). The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.",
|
|
118
118
|
"type": "object",
|
|
119
119
|
"additionalProperties": false,
|
|
120
120
|
"properties": {
|
|
@@ -25,7 +25,7 @@ export type RegistrarState =
|
|
|
25
25
|
export interface VTCElectionsShowPayload {
|
|
26
26
|
electionId: ElectionId;
|
|
27
27
|
/**
|
|
28
|
-
* Only where the reader means to read an election whose `credential` roll (voting/_shared/0.4 `RollRule`) names a member party — a party other than the community and its groups — and the community's records do not otherwise admit them: the reader's presentation of its membership credential for the party `roll.memberOf` names, made by the credential's subject — who signs this document — and bound to this document (VTI-VOT-015, checked as VTI-VOT-025 requires). The community verifies it before, and without reference to, the election the request names, answering `indeterminate` whatever the election where a status list, a trust registry or the issuer's DID document cannot be obtained; it uses the outcome only for such an election, and discards the presentation once it has decided. Without one that passes, such an election is answered `electionUnknown`.
|
|
28
|
+
* Only where the reader means to read an election whose `credential` roll (voting/_shared/0.4 `RollRule`) names a member party — a party other than the community and its groups that is itself a member of the community, never a group the community has since deleted (VTI-VOT-029) — and the community's records do not otherwise admit them: the reader's presentation of its membership credential for the party `roll.memberOf` names, made by the credential's subject — who signs this document — and bound to this document (VTI-VOT-015, checked as VTI-VOT-025 requires). The community verifies it before, and without reference to, the election the request names, answering `indeterminate` whatever the election where a status list, a trust registry or the issuer's DID document cannot be obtained; it uses the outcome only for such an election, and discards the presentation once it has decided. Without one that passes, such an election is answered `electionUnknown`.
|
|
29
29
|
*/
|
|
30
30
|
presentation?: {} | string;
|
|
31
31
|
ext?: Ext;
|
|
@@ -146,7 +146,7 @@ export const PAYLOAD_SCHEMA = {
|
|
|
146
146
|
"$ref": "#/$defs/ElectionId"
|
|
147
147
|
},
|
|
148
148
|
"presentation": {
|
|
149
|
-
"description": "Only where the reader means to read an election whose `credential` roll (voting/_shared/0.4 `RollRule`) names a member party — a party other than the community and its groups — and the community's records do not otherwise admit them: the reader's presentation of its membership credential for the party `roll.memberOf` names, made by the credential's subject — who signs this document — and bound to this document (VTI-VOT-015, checked as VTI-VOT-025 requires). The community verifies it before, and without reference to, the election the request names, answering `indeterminate` whatever the election where a status list, a trust registry or the issuer's DID document cannot be obtained; it uses the outcome only for such an election, and discards the presentation once it has decided. Without one that passes, such an election is answered `electionUnknown`.",
|
|
149
|
+
"description": "Only where the reader means to read an election whose `credential` roll (voting/_shared/0.4 `RollRule`) names a member party — a party other than the community and its groups that is itself a member of the community, never a group the community has since deleted (VTI-VOT-029) — and the community's records do not otherwise admit them: the reader's presentation of its membership credential for the party `roll.memberOf` names, made by the credential's subject — who signs this document — and bound to this document (VTI-VOT-015, checked as VTI-VOT-025 requires). The community verifies it before, and without reference to, the election the request names, answering `indeterminate` whatever the election where a status list, a trust registry or the issuer's DID document cannot be obtained; it uses the outcome only for such an election, and discards the presentation once it has decided. Without one that passes, such an election is answered `electionUnknown`.",
|
|
150
150
|
"anyOf": [
|
|
151
151
|
{
|
|
152
152
|
"type": "object",
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/vtc/elections/tombstones/show/0.1/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { BoardHead, DigestMultibase, ElectionId, Ext } from "../../../../../_shared/components.js";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A member reads what the community keeps of an election on a deleted board — its tombstone — to check a receipt against the board heads the community kept. The outer document members are owned by the framework — SPEC §6.3.
|
|
11
|
+
*/
|
|
12
|
+
export interface VTCElectionsTombstonesShowPayload {
|
|
13
|
+
electionId: ElectionId;
|
|
14
|
+
ext?: Ext;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The success response to a vtc/elections/tombstones/show/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/elections/tombstones/show/0.1#response.
|
|
18
|
+
*/
|
|
19
|
+
export interface VTCElectionsTombstonesShowResponsePayload {
|
|
20
|
+
electionId: ElectionId;
|
|
21
|
+
/**
|
|
22
|
+
* The SHA-256 multihash of the RFC 8785 (JCS) canonicalization of the election's manifest, as registered. Every cast was bound to it.
|
|
23
|
+
*/
|
|
24
|
+
manifestDigest: DigestMultibase;
|
|
25
|
+
/**
|
|
26
|
+
* The DID of the ballot box the election was registered with, whose signature each checkpoint's document carries.
|
|
27
|
+
*/
|
|
28
|
+
ballotBox: string;
|
|
29
|
+
/**
|
|
30
|
+
* The board heads the community kept, oldest first; the last is the final head once voting closed.
|
|
31
|
+
*
|
|
32
|
+
* @maxItems 256
|
|
33
|
+
*/
|
|
34
|
+
checkpoints: Checkpoint[];
|
|
35
|
+
/**
|
|
36
|
+
* When the board the election was opened on was deleted.
|
|
37
|
+
*/
|
|
38
|
+
deletedAt: string;
|
|
39
|
+
/**
|
|
40
|
+
* When the community removes this tombstone. Absent: kept for ever.
|
|
41
|
+
*/
|
|
42
|
+
removeAt?: string;
|
|
43
|
+
ext?: Ext;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A board head the community read from the ballot box and kept, with the ballot box's signed document that carried it.
|
|
47
|
+
*/
|
|
48
|
+
export interface Checkpoint {
|
|
49
|
+
head: BoardHead;
|
|
50
|
+
/**
|
|
51
|
+
* The ballot box's signed voting/board/head `#response` document whose payload carries `head`, kept whole and exactly as received — proof included — so anyone can verify it against the ballot box's DID without trusting the community.
|
|
52
|
+
*/
|
|
53
|
+
document: {};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** Shared definitions this specification references, re-exported under the names it used to declare them with. */
|
|
57
|
+
export type { BoardHead, DigestMultibase, ElectionId, Ext };
|
|
58
|
+
|
|
59
|
+
/** Trust Task type URI. */
|
|
60
|
+
export const TYPE_URI = "https://trusttasks.org/spec/vtc/elections/tombstones/show/0.1" as const;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The earlier version of this specification that this one declares it
|
|
64
|
+
* extends (front matter `extends`, SPEC §5.2 "Declared extension"), or
|
|
65
|
+
* `null`. Only the direct declaration — follow the chain with
|
|
66
|
+
* `extendsChain` / `readForSpec`.
|
|
67
|
+
*/
|
|
68
|
+
export const EXTENDS: string | null = null;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Why this version is deprecated, or `null` while it is current. A
|
|
72
|
+
* superseded or retired version is still supported, and is withdrawn from
|
|
73
|
+
* this package in a later scheduled batch (SPEC "Superseded and Withdrawn
|
|
74
|
+
* Versions").
|
|
75
|
+
*/
|
|
76
|
+
export const DEPRECATION: string | null = null;
|
|
77
|
+
|
|
78
|
+
/** Stable alias for this specification's request payload shape. */
|
|
79
|
+
export type Payload = VTCElectionsTombstonesShowPayload;
|
|
80
|
+
|
|
81
|
+
/** Trust Task response type URI (request type URI + "#response"). */
|
|
82
|
+
export const RESPONSE_TYPE_URI = "https://trusttasks.org/spec/vtc/elections/tombstones/show/0.1#response" as const;
|
|
83
|
+
|
|
84
|
+
/** Stable alias for this specification's success-response payload shape. */
|
|
85
|
+
export type Response = VTCElectionsTombstonesShowResponsePayload;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* This specification's payload schema, as a value.
|
|
89
|
+
*
|
|
90
|
+
* SPEC.md §7.2 item 2 is performed against this. It is shipped as data
|
|
91
|
+
* rather than only as a `.json` file because TypeScript types are erased
|
|
92
|
+
* at runtime: without a schema a consumer has nothing to validate, and
|
|
93
|
+
* every REQUIRED payload member is optional in practice. Cross-file
|
|
94
|
+
* `$ref`s are already inlined, so it needs no resolver.
|
|
95
|
+
*/
|
|
96
|
+
export const PAYLOAD_SCHEMA = {
|
|
97
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
98
|
+
"$id": "https://trusttasks.org/spec/vtc/elections/tombstones/show/0.1",
|
|
99
|
+
"title": "VTC Elections — Tombstones — Show — payload",
|
|
100
|
+
"description": "A member reads what the community keeps of an election on a deleted board — its tombstone — to check a receipt against the board heads the community kept. The outer document members are owned by the framework — SPEC §6.3.",
|
|
101
|
+
"type": "object",
|
|
102
|
+
"additionalProperties": false,
|
|
103
|
+
"required": [
|
|
104
|
+
"electionId"
|
|
105
|
+
],
|
|
106
|
+
"properties": {
|
|
107
|
+
"electionId": {
|
|
108
|
+
"$ref": "#/$defs/ElectionId"
|
|
109
|
+
},
|
|
110
|
+
"ext": {
|
|
111
|
+
"$ref": "#/$defs/Ext"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"$defs": {
|
|
115
|
+
"Checkpoint": {
|
|
116
|
+
"title": "Checkpoint",
|
|
117
|
+
"description": "A board head the community read from the ballot box and kept, with the ballot box's signed document that carried it.",
|
|
118
|
+
"type": "object",
|
|
119
|
+
"additionalProperties": false,
|
|
120
|
+
"required": [
|
|
121
|
+
"head",
|
|
122
|
+
"document"
|
|
123
|
+
],
|
|
124
|
+
"properties": {
|
|
125
|
+
"head": {
|
|
126
|
+
"$ref": "#/$defs/BoardHead"
|
|
127
|
+
},
|
|
128
|
+
"document": {
|
|
129
|
+
"type": "object",
|
|
130
|
+
"description": "The ballot box's signed voting/board/head `#response` document whose payload carries `head`, kept whole and exactly as received — proof included — so anyone can verify it against the ballot box's DID without trusting the community."
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"Response": {
|
|
135
|
+
"$anchor": "response",
|
|
136
|
+
"title": "VTC Elections — Tombstones — Show — response payload",
|
|
137
|
+
"description": "The success response to a vtc/elections/tombstones/show/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/elections/tombstones/show/0.1#response.",
|
|
138
|
+
"type": "object",
|
|
139
|
+
"additionalProperties": false,
|
|
140
|
+
"required": [
|
|
141
|
+
"electionId",
|
|
142
|
+
"manifestDigest",
|
|
143
|
+
"ballotBox",
|
|
144
|
+
"checkpoints",
|
|
145
|
+
"deletedAt"
|
|
146
|
+
],
|
|
147
|
+
"properties": {
|
|
148
|
+
"electionId": {
|
|
149
|
+
"$ref": "#/$defs/ElectionId"
|
|
150
|
+
},
|
|
151
|
+
"manifestDigest": {
|
|
152
|
+
"$ref": "#/$defs/DigestMultibase",
|
|
153
|
+
"description": "The SHA-256 multihash of the RFC 8785 (JCS) canonicalization of the election's manifest, as registered. Every cast was bound to it."
|
|
154
|
+
},
|
|
155
|
+
"ballotBox": {
|
|
156
|
+
"type": "string",
|
|
157
|
+
"minLength": 1,
|
|
158
|
+
"maxLength": 2048,
|
|
159
|
+
"description": "The DID of the ballot box the election was registered with, whose signature each checkpoint's document carries."
|
|
160
|
+
},
|
|
161
|
+
"checkpoints": {
|
|
162
|
+
"type": "array",
|
|
163
|
+
"maxItems": 256,
|
|
164
|
+
"items": {
|
|
165
|
+
"$ref": "#/$defs/Checkpoint"
|
|
166
|
+
},
|
|
167
|
+
"description": "The board heads the community kept, oldest first; the last is the final head once voting closed."
|
|
168
|
+
},
|
|
169
|
+
"deletedAt": {
|
|
170
|
+
"type": "string",
|
|
171
|
+
"format": "date-time",
|
|
172
|
+
"description": "When the board the election was opened on was deleted."
|
|
173
|
+
},
|
|
174
|
+
"removeAt": {
|
|
175
|
+
"type": "string",
|
|
176
|
+
"format": "date-time",
|
|
177
|
+
"description": "When the community removes this tombstone. Absent: kept for ever."
|
|
178
|
+
},
|
|
179
|
+
"ext": {
|
|
180
|
+
"$ref": "#/$defs/Ext"
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"Ext": {
|
|
185
|
+
"title": "Ext",
|
|
186
|
+
"description": "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.",
|
|
187
|
+
"type": "object",
|
|
188
|
+
"minProperties": 1,
|
|
189
|
+
"additionalProperties": true,
|
|
190
|
+
"propertyNames": {
|
|
191
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"DigestMultibase": {
|
|
195
|
+
"title": "DigestMultibase",
|
|
196
|
+
"description": "A cryptographic digest as a multibase-encoded multihash — the encoding the W3C Verifiable Credentials Data Model 2.0 defines for `digestMultibase`, and the one `did:webvh` uses for its SCID and entry hashes.\n\nMultihash carries the hash algorithm in-band, so the value is self-describing and the wire format survives an algorithm change without a schema revision; multibase does the same for the base encoding, so a verifier never infers base58 from base64url by context. A bare hex string or a `sha-256:`-style prefix hard-codes one algorithm into the wire contract and is non-conforming here.\n\nThis definition constrains the *encoding only*. What the digest is computed over is stated by each referencing field, because it differs legitimately: a digest over a JSON document is taken over its RFC 8785 (JCS) canonicalization, while a digest over an opaque artifact is taken over its bytes. A field whose input is a JSON document and which does not name a canonicalization is not reproducible.\n\nRestricted 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`.",
|
|
197
|
+
"type": "string",
|
|
198
|
+
"minLength": 16,
|
|
199
|
+
"pattern": "^(z[1-9A-HJ-NP-Za-km-z]+|u[A-Za-z0-9_-]+)$",
|
|
200
|
+
"examples": [
|
|
201
|
+
"zQmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR"
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
"ElectionId": {
|
|
205
|
+
"title": "ElectionId",
|
|
206
|
+
"description": "An election's identifier, unique within its community. A closed alphabet: it appears in the ticket class label `voter/<electionId>` and is framed into every hash a cast is bound to.",
|
|
207
|
+
"type": "string",
|
|
208
|
+
"pattern": "^[A-Za-z0-9._-]{1,128}$"
|
|
209
|
+
},
|
|
210
|
+
"BoardHead": {
|
|
211
|
+
"title": "BoardHead",
|
|
212
|
+
"description": "A board's tree head (RFC 9162 §2.1). A head is signed by being carried in a document the ballot box signs; whoever keeps a head keeps that whole document.",
|
|
213
|
+
"type": "object",
|
|
214
|
+
"additionalProperties": false,
|
|
215
|
+
"required": [
|
|
216
|
+
"electionId",
|
|
217
|
+
"treeSize",
|
|
218
|
+
"rootHash",
|
|
219
|
+
"issuedAt"
|
|
220
|
+
],
|
|
221
|
+
"properties": {
|
|
222
|
+
"electionId": {
|
|
223
|
+
"$ref": "#/$defs/ElectionId"
|
|
224
|
+
},
|
|
225
|
+
"treeSize": {
|
|
226
|
+
"type": "integer",
|
|
227
|
+
"minimum": 0
|
|
228
|
+
},
|
|
229
|
+
"rootHash": {
|
|
230
|
+
"$ref": "#/$defs/DigestMultibase",
|
|
231
|
+
"description": "The RFC 9162 Merkle tree hash (SHA-256) of the first `treeSize` entries, as a multihash."
|
|
232
|
+
},
|
|
233
|
+
"issuedAt": {
|
|
234
|
+
"type": "string",
|
|
235
|
+
"format": "date-time"
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
} as const;
|
|
241
|
+
|
|
242
|
+
/** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
|
|
243
|
+
export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
244
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
245
|
+
"$ref": "#/$defs/Response",
|
|
246
|
+
"$defs": {
|
|
247
|
+
"Checkpoint": {
|
|
248
|
+
"title": "Checkpoint",
|
|
249
|
+
"description": "A board head the community read from the ballot box and kept, with the ballot box's signed document that carried it.",
|
|
250
|
+
"type": "object",
|
|
251
|
+
"additionalProperties": false,
|
|
252
|
+
"required": [
|
|
253
|
+
"head",
|
|
254
|
+
"document"
|
|
255
|
+
],
|
|
256
|
+
"properties": {
|
|
257
|
+
"head": {
|
|
258
|
+
"$ref": "#/$defs/BoardHead"
|
|
259
|
+
},
|
|
260
|
+
"document": {
|
|
261
|
+
"type": "object",
|
|
262
|
+
"description": "The ballot box's signed voting/board/head `#response` document whose payload carries `head`, kept whole and exactly as received — proof included — so anyone can verify it against the ballot box's DID without trusting the community."
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
"Response": {
|
|
267
|
+
"$anchor": "response",
|
|
268
|
+
"title": "VTC Elections — Tombstones — Show — response payload",
|
|
269
|
+
"description": "The success response to a vtc/elections/tombstones/show/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/elections/tombstones/show/0.1#response.",
|
|
270
|
+
"type": "object",
|
|
271
|
+
"additionalProperties": false,
|
|
272
|
+
"required": [
|
|
273
|
+
"electionId",
|
|
274
|
+
"manifestDigest",
|
|
275
|
+
"ballotBox",
|
|
276
|
+
"checkpoints",
|
|
277
|
+
"deletedAt"
|
|
278
|
+
],
|
|
279
|
+
"properties": {
|
|
280
|
+
"electionId": {
|
|
281
|
+
"$ref": "#/$defs/ElectionId"
|
|
282
|
+
},
|
|
283
|
+
"manifestDigest": {
|
|
284
|
+
"$ref": "#/$defs/DigestMultibase",
|
|
285
|
+
"description": "The SHA-256 multihash of the RFC 8785 (JCS) canonicalization of the election's manifest, as registered. Every cast was bound to it."
|
|
286
|
+
},
|
|
287
|
+
"ballotBox": {
|
|
288
|
+
"type": "string",
|
|
289
|
+
"minLength": 1,
|
|
290
|
+
"maxLength": 2048,
|
|
291
|
+
"description": "The DID of the ballot box the election was registered with, whose signature each checkpoint's document carries."
|
|
292
|
+
},
|
|
293
|
+
"checkpoints": {
|
|
294
|
+
"type": "array",
|
|
295
|
+
"maxItems": 256,
|
|
296
|
+
"items": {
|
|
297
|
+
"$ref": "#/$defs/Checkpoint"
|
|
298
|
+
},
|
|
299
|
+
"description": "The board heads the community kept, oldest first; the last is the final head once voting closed."
|
|
300
|
+
},
|
|
301
|
+
"deletedAt": {
|
|
302
|
+
"type": "string",
|
|
303
|
+
"format": "date-time",
|
|
304
|
+
"description": "When the board the election was opened on was deleted."
|
|
305
|
+
},
|
|
306
|
+
"removeAt": {
|
|
307
|
+
"type": "string",
|
|
308
|
+
"format": "date-time",
|
|
309
|
+
"description": "When the community removes this tombstone. Absent: kept for ever."
|
|
310
|
+
},
|
|
311
|
+
"ext": {
|
|
312
|
+
"$ref": "#/$defs/Ext"
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
"Ext": {
|
|
317
|
+
"title": "Ext",
|
|
318
|
+
"description": "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.",
|
|
319
|
+
"type": "object",
|
|
320
|
+
"minProperties": 1,
|
|
321
|
+
"additionalProperties": true,
|
|
322
|
+
"propertyNames": {
|
|
323
|
+
"pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
"DigestMultibase": {
|
|
327
|
+
"title": "DigestMultibase",
|
|
328
|
+
"description": "A cryptographic digest as a multibase-encoded multihash — the encoding the W3C Verifiable Credentials Data Model 2.0 defines for `digestMultibase`, and the one `did:webvh` uses for its SCID and entry hashes.\n\nMultihash carries the hash algorithm in-band, so the value is self-describing and the wire format survives an algorithm change without a schema revision; multibase does the same for the base encoding, so a verifier never infers base58 from base64url by context. A bare hex string or a `sha-256:`-style prefix hard-codes one algorithm into the wire contract and is non-conforming here.\n\nThis definition constrains the *encoding only*. What the digest is computed over is stated by each referencing field, because it differs legitimately: a digest over a JSON document is taken over its RFC 8785 (JCS) canonicalization, while a digest over an opaque artifact is taken over its bytes. A field whose input is a JSON document and which does not name a canonicalization is not reproducible.\n\nRestricted 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`.",
|
|
329
|
+
"type": "string",
|
|
330
|
+
"minLength": 16,
|
|
331
|
+
"pattern": "^(z[1-9A-HJ-NP-Za-km-z]+|u[A-Za-z0-9_-]+)$",
|
|
332
|
+
"examples": [
|
|
333
|
+
"zQmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR"
|
|
334
|
+
]
|
|
335
|
+
},
|
|
336
|
+
"ElectionId": {
|
|
337
|
+
"title": "ElectionId",
|
|
338
|
+
"description": "An election's identifier, unique within its community. A closed alphabet: it appears in the ticket class label `voter/<electionId>` and is framed into every hash a cast is bound to.",
|
|
339
|
+
"type": "string",
|
|
340
|
+
"pattern": "^[A-Za-z0-9._-]{1,128}$"
|
|
341
|
+
},
|
|
342
|
+
"BoardHead": {
|
|
343
|
+
"title": "BoardHead",
|
|
344
|
+
"description": "A board's tree head (RFC 9162 §2.1). A head is signed by being carried in a document the ballot box signs; whoever keeps a head keeps that whole document.",
|
|
345
|
+
"type": "object",
|
|
346
|
+
"additionalProperties": false,
|
|
347
|
+
"required": [
|
|
348
|
+
"electionId",
|
|
349
|
+
"treeSize",
|
|
350
|
+
"rootHash",
|
|
351
|
+
"issuedAt"
|
|
352
|
+
],
|
|
353
|
+
"properties": {
|
|
354
|
+
"electionId": {
|
|
355
|
+
"$ref": "#/$defs/ElectionId"
|
|
356
|
+
},
|
|
357
|
+
"treeSize": {
|
|
358
|
+
"type": "integer",
|
|
359
|
+
"minimum": 0
|
|
360
|
+
},
|
|
361
|
+
"rootHash": {
|
|
362
|
+
"$ref": "#/$defs/DigestMultibase",
|
|
363
|
+
"description": "The RFC 9162 Merkle tree hash (SHA-256) of the first `treeSize` entries, as a multihash."
|
|
364
|
+
},
|
|
365
|
+
"issuedAt": {
|
|
366
|
+
"type": "string",
|
|
367
|
+
"format": "date-time"
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
} as const;
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
376
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
377
|
+
* per-specification and cannot be derived from the document alone, and
|
|
378
|
+
* item 2 needs the schema this carries.
|
|
379
|
+
*/
|
|
380
|
+
export const SPEC = {
|
|
381
|
+
typeUri: TYPE_URI,
|
|
382
|
+
isBearer: false,
|
|
383
|
+
isProofRequired: false,
|
|
384
|
+
isRecipientRequired: true,
|
|
385
|
+
isIssuedAtRequired: false,
|
|
386
|
+
payloadSchema: PAYLOAD_SCHEMA,
|
|
387
|
+
} as const;
|
|
388
|
+
|
|
389
|
+
/**
|
|
390
|
+
* SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
|
|
391
|
+
* tracks the *issuer* party's requirement because a response swaps the
|
|
392
|
+
* parties (§7.3 item 5).
|
|
393
|
+
*/
|
|
394
|
+
export const RESPONSE_SPEC = {
|
|
395
|
+
typeUri: RESPONSE_TYPE_URI,
|
|
396
|
+
isBearer: false,
|
|
397
|
+
isProofRequired: false,
|
|
398
|
+
isRecipientRequired: true,
|
|
399
|
+
isIssuedAtRequired: false,
|
|
400
|
+
payloadSchema: RESPONSE_PAYLOAD_SCHEMA,
|
|
401
|
+
} as const;
|