@openvtc/trust-tasks 0.28.20 → 0.28.22
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 +49 -0
- package/dist/_shared/components.d.ts +48 -4
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/auth/step-up/requests/show/0.1/payload.d.ts +458 -0
- package/dist/auth/step-up/requests/show/0.1/payload.d.ts.map +1 -0
- package/dist/auth/step-up/requests/show/0.1/payload.js +261 -0
- package/dist/auth/step-up/requests/show/0.1/payload.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/vtc/badges/_shared/0.1/badge.d.ts +1 -1
- package/dist/vtc/badges/_shared/0.1/badge.d.ts.map +1 -1
- package/dist/vtc/badges/claims/create/0.1/payload.d.ts +595 -0
- package/dist/vtc/badges/claims/create/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/badges/claims/create/0.1/payload.js +345 -0
- package/dist/vtc/badges/claims/create/0.1/payload.js.map +1 -0
- package/dist/vtc/badges/claims/list/0.1/payload.d.ts +586 -0
- package/dist/vtc/badges/claims/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/badges/claims/list/0.1/payload.js +335 -0
- package/dist/vtc/badges/claims/list/0.1/payload.js.map +1 -0
- package/dist/vtc/badges/claims/redeem/0.1/payload.d.ts +720 -0
- package/dist/vtc/badges/claims/redeem/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/badges/claims/redeem/0.1/payload.js +417 -0
- package/dist/vtc/badges/claims/redeem/0.1/payload.js.map +1 -0
- package/dist/vtc/badges/claims/withdraw/0.1/payload.d.ts +512 -0
- package/dist/vtc/badges/claims/withdraw/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/badges/claims/withdraw/0.1/payload.js +305 -0
- package/dist/vtc/badges/claims/withdraw/0.1/payload.js.map +1 -0
- package/dist/vtc/badges/create/0.1/payload.d.ts +40 -16
- package/dist/vtc/badges/create/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/badges/create/0.1/payload.js +28 -8
- package/dist/vtc/badges/create/0.1/payload.js.map +1 -1
- package/dist/vtc/badges/promote/0.1/payload.d.ts +40 -16
- package/dist/vtc/badges/promote/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/badges/promote/0.1/payload.js +28 -8
- package/dist/vtc/badges/promote/0.1/payload.js.map +1 -1
- package/dist/vtc/badges/show/0.1/payload.d.ts +472 -26
- package/dist/vtc/badges/show/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/badges/show/0.1/payload.js +264 -12
- package/dist/vtc/badges/show/0.1/payload.js.map +1 -1
- package/dist/vtc/groups/create/0.1/payload.d.ts +40 -16
- package/dist/vtc/groups/create/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/groups/create/0.1/payload.js +28 -8
- package/dist/vtc/groups/create/0.1/payload.js.map +1 -1
- package/dist/vtc/groups/list/0.1/payload.d.ts +40 -16
- package/dist/vtc/groups/list/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/groups/list/0.1/payload.js +28 -8
- package/dist/vtc/groups/list/0.1/payload.js.map +1 -1
- package/dist/vtc/groups/list/0.2/payload.d.ts +40 -16
- package/dist/vtc/groups/list/0.2/payload.d.ts.map +1 -1
- package/dist/vtc/groups/list/0.2/payload.js +28 -8
- package/dist/vtc/groups/list/0.2/payload.js.map +1 -1
- package/dist/vtc/groups/show/0.1/payload.d.ts +40 -16
- package/dist/vtc/groups/show/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/groups/show/0.1/payload.js +28 -8
- package/dist/vtc/groups/show/0.1/payload.js.map +1 -1
- package/dist/vtc/groups/update/0.1/payload.d.ts +40 -16
- package/dist/vtc/groups/update/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/groups/update/0.1/payload.js +28 -8
- package/dist/vtc/groups/update/0.1/payload.js.map +1 -1
- package/package.json +1 -1
- package/src/_shared/components.ts +48 -4
- package/src/auth/step-up/requests/show/0.1/payload.ts +317 -0
- package/src/index.ts +15 -0
- package/src/vtc/badges/_shared/0.1/badge.ts +1 -1
- package/src/vtc/badges/claims/create/0.1/payload.ts +395 -0
- package/src/vtc/badges/claims/list/0.1/payload.ts +386 -0
- package/src/vtc/badges/claims/redeem/0.1/payload.ts +454 -0
- package/src/vtc/badges/claims/withdraw/0.1/payload.ts +342 -0
- package/src/vtc/badges/create/0.1/payload.ts +28 -8
- package/src/vtc/badges/promote/0.1/payload.ts +28 -8
- package/src/vtc/badges/show/0.1/payload.ts +272 -14
- package/src/vtc/groups/create/0.1/payload.ts +28 -8
- package/src/vtc/groups/list/0.1/payload.ts +28 -8
- package/src/vtc/groups/list/0.2/payload.ts +28 -8
- package/src/vtc/groups/show/0.1/payload.ts +28 -8
- package/src/vtc/groups/update/0.1/payload.ts +28 -8
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,55 @@ The package versions over **its own API** — what a consumer compiles against
|
|
|
11
11
|
not over `SPEC.md`. Below 1.0 a breaking change bumps the leading non-zero
|
|
12
12
|
component.
|
|
13
13
|
|
|
14
|
+
## 0.28.22 — 2026-11-08
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- **vtc/badges**: Claim codes and the badge rule counts (VTI-BDG-015, VTI-BDG-025 – 027) (#1059)
|
|
20
|
+
|
|
21
|
+
* feat(vtc/badges): claim codes and the badge rule counts (VTI-BDG-015, VTI-BDG-025 – 027)
|
|
22
|
+
|
|
23
|
+
## 0.28.21 — 2026-11-08
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- **vtc/badges**: Show answers the caller's own awards (myAwards), so a holder can share one (#1057)
|
|
29
|
+
|
|
30
|
+
* feat(vtc/badges): show answers the caller's own awards (myAwards), so a holder can share one
|
|
31
|
+
|
|
32
|
+
vtc/badges/awards/share and unshare (#1054) name an award, but no read answered a holder their own accepted award identifiers for a community badge: mine/list carries badges, show only myCount. vtc/badges/show/0.1#response gains the optional myAwards - the caller's own accepted awards of the badge, newest first, each with its shared - and conformance item 4 says so. Additive, on a draft.
|
|
33
|
+
|
|
34
|
+
- **auth/step-up**: Requests/show — the subject's wallet fetches a step-up refused to a delegated producer (auth/step-up/requests/show/0.1) (#1056)
|
|
35
|
+
|
|
36
|
+
A relying party that refuses an operation until its subject steps up carries
|
|
37
|
+
the request inline in the refusal (approve-request/0.5, Inline delivery). That
|
|
38
|
+
only works when the producer of the operation can gather the evidence itself.
|
|
39
|
+
A process acting with a key the subject delegated to it — an assistant, an
|
|
40
|
+
automation — can redeem a recorded step-up but never make one. It cannot
|
|
41
|
+
forward the inline request to the subject's wallet either, because the inline
|
|
42
|
+
request carries no proof.
|
|
43
|
+
|
|
44
|
+
This adds a hand-off by reference. Beside the inline request, the relying
|
|
45
|
+
party MAY carry `details.stepUpHandoff` (`$defs.Handoff`): a single-use handle
|
|
46
|
+
of at least 128 bits, its expiry and this task's Type URI. The person's
|
|
47
|
+
approver agent sends the handle and receives two things:
|
|
48
|
+
|
|
49
|
+
- the relying party's own signed approve-request/0.5, addressed to the
|
|
50
|
+
subject, with the same challenge and binding as the inline request;
|
|
51
|
+
- the operation the step-up is bound to, exactly as received.
|
|
52
|
+
|
|
53
|
+
The agent verifies the proof and shows the operation itself. It recomputes the
|
|
54
|
+
binding where it knows the construction. It then answers with approve-response
|
|
55
|
+
0.7, signed by the subject's own DID, directly to the relying party. The
|
|
56
|
+
producer resends the identical operation, and the recorded step-up is redeemed.
|
|
57
|
+
|
|
58
|
+
A handle is answered at most once, atomically. Unknown, spent, expired and
|
|
59
|
+
settled handles all return `notFound`. Reading a handle is never part of an
|
|
60
|
+
approval, so a party that sees the handle can spend the read but cannot
|
|
61
|
+
approve.
|
|
62
|
+
|
|
14
63
|
## 0.28.20 — 2026-11-07
|
|
15
64
|
|
|
16
65
|
|
|
@@ -514,6 +514,14 @@ export type ChunkIndex = number;
|
|
|
514
514
|
* Size in bytes of every chunk except the last, which carries the remainder and is between 1 and this value inclusive. The ceiling of 262144 (256 KiB) is normative and is derived in `vta/backup/initiate-export/1.1` under Chunked transfer: it is the largest power of two whose `get-chunk` or `put-chunk` document still fits a 1 MiB mediator message after base64url encoding of `data`, DIDComm authcrypt encoding, and two nested forward wrappers. The floor of 16384 keeps a 1 GiB bundle within `ChunkCount`'s ceiling at sizes a constrained transport can still choose.
|
|
515
515
|
*/
|
|
516
516
|
export type ChunkSize = number;
|
|
517
|
+
/**
|
|
518
|
+
* Opaque identifier of a claim code's record: `bcl_` followed by 16 to 64 base64url characters. Random; never the code itself, which the community keeps only as a digest (VTI-BDG-025).
|
|
519
|
+
*/
|
|
520
|
+
export type ClaimId = string;
|
|
521
|
+
/**
|
|
522
|
+
* A claim code itself: at least 128 random bits the community generated, base64url (22 to 64 characters). A bearer secret: shown to its issuer once, redeemed by a member, never stored or answered again (VTI-BDG-025).
|
|
523
|
+
*/
|
|
524
|
+
export type ClaimSecret = string;
|
|
517
525
|
/**
|
|
518
526
|
* The vocabulary token naming what a value IS — `name.legal`, `phone.mobile`, `address.postal`, `person.birthDate`. Dotted, most-general segment first, so that a consumer with no knowledge of the specific token can still group by its prefix.
|
|
519
527
|
*
|
|
@@ -6478,6 +6486,38 @@ export interface Claim {
|
|
|
6478
6486
|
*/
|
|
6479
6487
|
renewable: boolean;
|
|
6480
6488
|
}
|
|
6489
|
+
/**
|
|
6490
|
+
* A claim code's record, as the badge's owners and administrators see it: never the code (VTI-BDG-027).
|
|
6491
|
+
*/
|
|
6492
|
+
export interface ClaimCode {
|
|
6493
|
+
claimId: ClaimId;
|
|
6494
|
+
badgeId: BadgeId;
|
|
6495
|
+
/**
|
|
6496
|
+
* What the code is for — the event, say — shown to the badge's owners. Never shown to whoever redeems it.
|
|
6497
|
+
*/
|
|
6498
|
+
label: string;
|
|
6499
|
+
/**
|
|
6500
|
+
* After this the code admits no one.
|
|
6501
|
+
*/
|
|
6502
|
+
validUntil: string;
|
|
6503
|
+
/**
|
|
6504
|
+
* How many claims the code admits.
|
|
6505
|
+
*/
|
|
6506
|
+
limit: number;
|
|
6507
|
+
/**
|
|
6508
|
+
* How many members have redeemed it.
|
|
6509
|
+
*/
|
|
6510
|
+
claims: number;
|
|
6511
|
+
/**
|
|
6512
|
+
* `withdrawn` once its issuer withdrew it or the badge was retired. A code past `validUntil` or out of claims stays `active` and admits no one.
|
|
6513
|
+
*/
|
|
6514
|
+
state: "active" | "withdrawn";
|
|
6515
|
+
createdAt: string;
|
|
6516
|
+
/**
|
|
6517
|
+
* The issuer's entry, where they have one; the giver of every award the code admits.
|
|
6518
|
+
*/
|
|
6519
|
+
createdBy?: EntryId;
|
|
6520
|
+
}
|
|
6481
6521
|
/**
|
|
6482
6522
|
* Which claim a `claim` field accepts, from which credentials and issuers.
|
|
6483
6523
|
*/
|
|
@@ -13968,24 +14008,28 @@ export interface RotationRecord {
|
|
|
13968
14008
|
cacheHorizonAt?: string;
|
|
13969
14009
|
}
|
|
13970
14010
|
/**
|
|
13971
|
-
* 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.
|
|
14011
|
+
* 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. `kudosReceived`, `ideasSelected` and `electionTickets` are counts the community keeps of its own records (kudos the member accepted, ideas of theirs a board selected, elections it issued them a ticket in), compared with `atLeast`; only a badge's group reads them (VTI-BDG-015), and any other group refuses them with `ruleInvalid`.
|
|
13972
14012
|
*/
|
|
13973
14013
|
export interface RuleCondition {
|
|
13974
|
-
fact: "role" | "field" | "personhood" | "joinedAt";
|
|
14014
|
+
fact: "role" | "field" | "personhood" | "joinedAt" | "kudosReceived" | "ideasSelected" | "electionTickets";
|
|
13975
14015
|
/**
|
|
13976
14016
|
* Present exactly when `fact` is `field`.
|
|
13977
14017
|
*/
|
|
13978
14018
|
field?: FieldKey;
|
|
13979
14019
|
/**
|
|
13980
|
-
* `equals` compares with `value`; `oneOf` with any of `values`; `exists` needs neither; `before` and `after` compare a date fact with `value`.
|
|
14020
|
+
* `equals` compares with `value`; `oneOf` with any of `values`; `exists` needs neither; `before` and `after` compare a date fact with `value`; `atLeast` compares a count fact with `count`.
|
|
13981
14021
|
*/
|
|
13982
|
-
op: "equals" | "oneOf" | "exists" | "before" | "after";
|
|
14022
|
+
op: "equals" | "oneOf" | "exists" | "before" | "after" | "atLeast";
|
|
13983
14023
|
value?: string | boolean;
|
|
13984
14024
|
/**
|
|
13985
14025
|
* @minItems 1
|
|
13986
14026
|
* @maxItems 64
|
|
13987
14027
|
*/
|
|
13988
14028
|
values?: [string, ...string[]];
|
|
14029
|
+
/**
|
|
14030
|
+
* With `atLeast`: the least a count fact (`kudosReceived`, `ideasSelected`, `electionTickets`) must be. Present exactly when `op` is `atLeast`.
|
|
14031
|
+
*/
|
|
14032
|
+
count?: number;
|
|
13989
14033
|
}
|
|
13990
14034
|
export interface S3Settings {
|
|
13991
14035
|
kind: "s3";
|