@openvtc/trust-tasks 0.19.17 → 0.19.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 +4 -0
- package/dist/_runtime/consume.d.ts +1 -1
- package/dist/_runtime/consume.js +2 -2
- package/dist/_shared/components.d.ts +46 -0
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/persona/_shared/0.1/persona-record.d.ts +1 -1
- package/dist/persona/_shared/0.1/persona-record.d.ts.map +1 -1
- package/dist/persona/attribute/list/1.0/payload.d.ts +124 -4
- package/dist/persona/attribute/list/1.0/payload.d.ts.map +1 -1
- package/dist/persona/attribute/list/1.0/payload.js +72 -2
- package/dist/persona/attribute/list/1.0/payload.js.map +1 -1
- package/dist/persona/attribute/promote/1.0/payload.d.ts +506 -0
- package/dist/persona/attribute/promote/1.0/payload.d.ts.map +1 -0
- package/dist/persona/attribute/promote/1.0/payload.js +263 -0
- package/dist/persona/attribute/promote/1.0/payload.js.map +1 -0
- package/dist/persona/attribute/put/1.0/payload.d.ts +110 -4
- package/dist/persona/attribute/put/1.0/payload.d.ts.map +1 -1
- package/dist/persona/attribute/put/1.0/payload.js +62 -2
- package/dist/persona/attribute/put/1.0/payload.js.map +1 -1
- package/dist/persona/binding/get/1.0/payload.d.ts +24 -0
- package/dist/persona/binding/get/1.0/payload.d.ts.map +1 -1
- package/dist/persona/binding/get/1.0/payload.js +10 -0
- package/dist/persona/binding/get/1.0/payload.js.map +1 -1
- package/dist/persona/binding/list/1.0/payload.d.ts +24 -0
- package/dist/persona/binding/list/1.0/payload.d.ts.map +1 -1
- package/dist/persona/binding/list/1.0/payload.js +10 -0
- package/dist/persona/binding/list/1.0/payload.js.map +1 -1
- package/dist/persona/binding/set/1.0/payload.d.ts +38 -0
- package/dist/persona/binding/set/1.0/payload.d.ts.map +1 -1
- package/dist/persona/binding/set/1.0/payload.js +15 -0
- package/dist/persona/binding/set/1.0/payload.js.map +1 -1
- package/dist/persona/contact/get/1.0/payload.d.ts +84 -4
- package/dist/persona/contact/get/1.0/payload.d.ts.map +1 -1
- package/dist/persona/contact/get/1.0/payload.js +52 -2
- package/dist/persona/contact/get/1.0/payload.js.map +1 -1
- package/dist/persona/contact/put/1.0/payload.d.ts +84 -4
- package/dist/persona/contact/put/1.0/payload.d.ts.map +1 -1
- package/dist/persona/contact/put/1.0/payload.js +52 -2
- package/dist/persona/contact/put/1.0/payload.js.map +1 -1
- package/dist/persona/disclosure/preview/1.0/payload.d.ts +5 -5
- package/dist/persona/disclosure/preview/1.0/payload.d.ts.map +1 -1
- package/dist/persona/disclosure/preview/1.0/payload.js +4 -2
- package/dist/persona/disclosure/preview/1.0/payload.js.map +1 -1
- package/dist/persona/local/binding/set/1.0/payload.d.ts +14 -0
- package/dist/persona/local/binding/set/1.0/payload.d.ts.map +1 -1
- package/dist/persona/local/binding/set/1.0/payload.js +5 -0
- package/dist/persona/local/binding/set/1.0/payload.js.map +1 -1
- package/dist/persona/profile/compose/1.0/payload.d.ts +965 -0
- package/dist/persona/profile/compose/1.0/payload.d.ts.map +1 -0
- package/dist/persona/profile/compose/1.0/payload.js +531 -0
- package/dist/persona/profile/compose/1.0/payload.js.map +1 -0
- package/dist/persona/profile/delete/1.0/payload.d.ts +71 -0
- package/dist/persona/profile/delete/1.0/payload.d.ts.map +1 -1
- package/dist/persona/profile/delete/1.0/payload.js +38 -0
- package/dist/persona/profile/delete/1.0/payload.js.map +1 -1
- package/dist/persona/profile/get/1.0/payload.d.ts +345 -6
- package/dist/persona/profile/get/1.0/payload.d.ts.map +1 -1
- package/dist/persona/profile/get/1.0/payload.js +206 -2
- package/dist/persona/profile/get/1.0/payload.js.map +1 -1
- package/dist/persona/profile/list/1.0/payload.d.ts +288 -6
- package/dist/persona/profile/list/1.0/payload.d.ts.map +1 -1
- package/dist/persona/profile/list/1.0/payload.js +173 -2
- package/dist/persona/profile/list/1.0/payload.js.map +1 -1
- package/dist/persona/profile/put/1.0/payload.d.ts +230 -6
- package/dist/persona/profile/put/1.0/payload.d.ts.map +1 -1
- package/dist/persona/profile/put/1.0/payload.js +138 -2
- package/dist/persona/profile/put/1.0/payload.js.map +1 -1
- package/dist/persona/profile/reinstate/1.0/payload.d.ts +325 -0
- package/dist/persona/profile/reinstate/1.0/payload.d.ts.map +1 -0
- package/dist/persona/profile/reinstate/1.0/payload.js +181 -0
- package/dist/persona/profile/reinstate/1.0/payload.js.map +1 -0
- package/dist/persona/profile/retire/1.0/payload.d.ts +436 -0
- package/dist/persona/profile/retire/1.0/payload.d.ts.map +1 -0
- package/dist/persona/profile/retire/1.0/payload.js +238 -0
- package/dist/persona/profile/retire/1.0/payload.js.map +1 -0
- package/dist/persona/profile/timeline/1.0/payload.d.ts +588 -0
- package/dist/persona/profile/timeline/1.0/payload.d.ts.map +1 -0
- package/dist/persona/profile/timeline/1.0/payload.js +322 -0
- package/dist/persona/profile/timeline/1.0/payload.js.map +1 -0
- package/dist/persona/profile/usage/1.0/payload.d.ts +533 -0
- package/dist/persona/profile/usage/1.0/payload.d.ts.map +1 -0
- package/dist/persona/profile/usage/1.0/payload.js +302 -0
- package/dist/persona/profile/usage/1.0/payload.js.map +1 -0
- package/dist/trust-task-control/0.1/payload.d.ts +19 -19
- package/dist/trust-task-control/0.1/payload.js +7 -7
- package/dist/trust-task-discovery/0.1/payload.d.ts +3 -3
- package/dist/trust-task-discovery/0.1/payload.js +1 -1
- package/dist/trust-task-discovery/0.2/payload.d.ts +368 -0
- package/dist/trust-task-discovery/0.2/payload.d.ts.map +1 -0
- package/dist/trust-task-discovery/0.2/payload.js +186 -0
- package/dist/trust-task-discovery/0.2/payload.js.map +1 -0
- package/dist/vtc/invitations/deliver/0.1/payload.d.ts +318 -0
- package/dist/vtc/invitations/deliver/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/invitations/deliver/0.1/payload.js +183 -0
- package/dist/vtc/invitations/deliver/0.1/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_runtime/consume.ts +2 -2
- package/src/_shared/components.ts +49 -0
- package/src/index.ts +8 -0
- package/src/persona/_shared/0.1/persona-record.ts +1 -1
- package/src/persona/attribute/list/1.0/payload.ts +72 -2
- package/src/persona/attribute/promote/1.0/payload.ts +344 -0
- package/src/persona/attribute/put/1.0/payload.ts +68 -2
- package/src/persona/binding/get/1.0/payload.ts +14 -0
- package/src/persona/binding/list/1.0/payload.ts +14 -0
- package/src/persona/binding/set/1.0/payload.ts +23 -0
- package/src/persona/contact/get/1.0/payload.ts +52 -2
- package/src/persona/contact/put/1.0/payload.ts +52 -2
- package/src/persona/disclosure/preview/1.0/payload.ts +5 -3
- package/src/persona/local/binding/set/1.0/payload.ts +9 -0
- package/src/persona/profile/compose/1.0/payload.ts +650 -0
- package/src/persona/profile/delete/1.0/payload.ts +45 -0
- package/src/persona/profile/get/1.0/payload.ts +215 -4
- package/src/persona/profile/list/1.0/payload.ts +179 -4
- package/src/persona/profile/put/1.0/payload.ts +144 -4
- package/src/persona/profile/reinstate/1.0/payload.ts +219 -0
- package/src/persona/profile/retire/1.0/payload.ts +289 -0
- package/src/persona/profile/timeline/1.0/payload.ts +402 -0
- package/src/persona/profile/usage/1.0/payload.ts +354 -0
- package/src/trust-task-control/0.1/payload.ts +12 -12
- package/src/trust-task-discovery/0.1/payload.ts +2 -2
- package/src/trust-task-discovery/0.2/payload.ts +286 -0
- package/src/vtc/invitations/deliver/0.1/payload.ts +234 -0
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/persona/attribute/promote/1.0/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
import type { Ext, Ulid, Version_PersonaV0_1 as Version } from "../../../../_shared/components.js";
|
|
6
|
+
/**
|
|
7
|
+
* Make values a context-local face carries reusable: each named entry's value becomes a pool attribute, and the face — which can no longer live inside one context once it references the pool — moves above contexts, keeping its id and staying worn wherever it was. One-way.
|
|
8
|
+
*/
|
|
9
|
+
export interface PersonaAttributePromotePayload {
|
|
10
|
+
/**
|
|
11
|
+
* The context the local face lives in.
|
|
12
|
+
*/
|
|
13
|
+
contextId: string;
|
|
14
|
+
/**
|
|
15
|
+
* The context-local face.
|
|
16
|
+
*/
|
|
17
|
+
profileId: Ulid;
|
|
18
|
+
/**
|
|
19
|
+
* Zero-based positions, in the face's `entries`, of the values to promote. Positions are meaningful only against the version the producer read, which is why `expectedVersion` is required.
|
|
20
|
+
*
|
|
21
|
+
* @minItems 1
|
|
22
|
+
* @maxItems 64
|
|
23
|
+
*/
|
|
24
|
+
entries: [number, ...number[]];
|
|
25
|
+
/**
|
|
26
|
+
* The local face's version as the producer read it. Required: a position into a face edited since would promote a different value than the holder chose.
|
|
27
|
+
*/
|
|
28
|
+
expectedVersion: Version;
|
|
29
|
+
ext?: Ext;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Success response to persona/attribute/promote. Type https://trusttasks.org/spec/persona/attribute/promote/1.0#response.
|
|
33
|
+
*/
|
|
34
|
+
export interface PersonaAttributePromoteResponsePayload {
|
|
35
|
+
/**
|
|
36
|
+
* Unchanged: the face keeps its id. It is now read through persona/profile/get.
|
|
37
|
+
*/
|
|
38
|
+
profileId: Ulid;
|
|
39
|
+
/**
|
|
40
|
+
* The face's version in the pool.
|
|
41
|
+
*/
|
|
42
|
+
version: Version;
|
|
43
|
+
/**
|
|
44
|
+
* For each promoted position, in request order, the pool attribute the entry now references and whether this promote created it. `created: false` means the holder already kept exactly this value, and the face now shares it with whatever else presents it.
|
|
45
|
+
*
|
|
46
|
+
* @minItems 1
|
|
47
|
+
* @maxItems 64
|
|
48
|
+
*/
|
|
49
|
+
promoted: [
|
|
50
|
+
{
|
|
51
|
+
entry: number;
|
|
52
|
+
attributeId: Ulid;
|
|
53
|
+
created: boolean;
|
|
54
|
+
},
|
|
55
|
+
...{
|
|
56
|
+
entry: number;
|
|
57
|
+
attributeId: Ulid;
|
|
58
|
+
created: boolean;
|
|
59
|
+
}[]
|
|
60
|
+
];
|
|
61
|
+
/**
|
|
62
|
+
* Personas in `contextId` that wore the local face and now wear it from the pool. What they present is unchanged. Absent when none did.
|
|
63
|
+
*
|
|
64
|
+
* @maxItems 256
|
|
65
|
+
*/
|
|
66
|
+
reboundPersonaDids?: string[];
|
|
67
|
+
ext?: Ext;
|
|
68
|
+
}
|
|
69
|
+
/** Shared definitions this specification references, re-exported under the names it used to declare them with. */
|
|
70
|
+
export type { Ext, Ulid, Version };
|
|
71
|
+
/** Trust Task type URI. */
|
|
72
|
+
export declare const TYPE_URI: "https://trusttasks.org/spec/persona/attribute/promote/1.0";
|
|
73
|
+
/** Stable alias for this specification's request payload shape. */
|
|
74
|
+
export type Payload = PersonaAttributePromotePayload;
|
|
75
|
+
/** Trust Task response type URI (request type URI + "#response"). */
|
|
76
|
+
export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/persona/attribute/promote/1.0#response";
|
|
77
|
+
/** Stable alias for this specification's success-response payload shape. */
|
|
78
|
+
export type Response = PersonaAttributePromoteResponsePayload;
|
|
79
|
+
/**
|
|
80
|
+
* This specification's payload schema, as a value.
|
|
81
|
+
*
|
|
82
|
+
* SPEC.md §7.2 item 2 is performed against this. It is shipped as data
|
|
83
|
+
* rather than only as a `.json` file because TypeScript types are erased
|
|
84
|
+
* at runtime: without a schema a consumer has nothing to validate, and
|
|
85
|
+
* every REQUIRED payload member is optional in practice. Cross-file
|
|
86
|
+
* `$ref`s are already inlined, so it needs no resolver.
|
|
87
|
+
*/
|
|
88
|
+
export declare const PAYLOAD_SCHEMA: {
|
|
89
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
90
|
+
readonly $id: "https://trusttasks.org/spec/persona/attribute/promote/1.0";
|
|
91
|
+
readonly title: "Persona Attribute Promote — payload";
|
|
92
|
+
readonly description: "Make values a context-local face carries reusable: each named entry's value becomes a pool attribute, and the face — which can no longer live inside one context once it references the pool — moves above contexts, keeping its id and staying worn wherever it was. One-way.";
|
|
93
|
+
readonly type: "object";
|
|
94
|
+
readonly additionalProperties: false;
|
|
95
|
+
readonly required: readonly ["contextId", "profileId", "entries", "expectedVersion"];
|
|
96
|
+
readonly properties: {
|
|
97
|
+
readonly contextId: {
|
|
98
|
+
readonly type: "string";
|
|
99
|
+
readonly minLength: 1;
|
|
100
|
+
readonly description: "The context the local face lives in.";
|
|
101
|
+
};
|
|
102
|
+
readonly profileId: {
|
|
103
|
+
readonly $ref: "#/$defs/Ulid";
|
|
104
|
+
readonly description: "The context-local face.";
|
|
105
|
+
};
|
|
106
|
+
readonly entries: {
|
|
107
|
+
readonly type: "array";
|
|
108
|
+
readonly minItems: 1;
|
|
109
|
+
readonly maxItems: 64;
|
|
110
|
+
readonly uniqueItems: true;
|
|
111
|
+
readonly items: {
|
|
112
|
+
readonly type: "integer";
|
|
113
|
+
readonly minimum: 0;
|
|
114
|
+
};
|
|
115
|
+
readonly description: "Zero-based positions, in the face's `entries`, of the values to promote. Positions are meaningful only against the version the producer read, which is why `expectedVersion` is required.";
|
|
116
|
+
};
|
|
117
|
+
readonly expectedVersion: {
|
|
118
|
+
readonly $ref: "#/$defs/Version";
|
|
119
|
+
readonly description: "The local face's version as the producer read it. Required: a position into a face edited since would promote a different value than the holder chose.";
|
|
120
|
+
};
|
|
121
|
+
readonly ext: {
|
|
122
|
+
readonly $ref: "#/$defs/Ext";
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
readonly $defs: {
|
|
126
|
+
readonly Response: {
|
|
127
|
+
readonly $anchor: "response";
|
|
128
|
+
readonly title: "Persona Attribute Promote — response payload";
|
|
129
|
+
readonly description: "Success response to persona/attribute/promote. Type https://trusttasks.org/spec/persona/attribute/promote/1.0#response.";
|
|
130
|
+
readonly type: "object";
|
|
131
|
+
readonly additionalProperties: false;
|
|
132
|
+
readonly required: readonly ["profileId", "version", "promoted"];
|
|
133
|
+
readonly properties: {
|
|
134
|
+
readonly profileId: {
|
|
135
|
+
readonly $ref: "#/$defs/Ulid";
|
|
136
|
+
readonly description: "Unchanged: the face keeps its id. It is now read through persona/profile/get.";
|
|
137
|
+
};
|
|
138
|
+
readonly version: {
|
|
139
|
+
readonly $ref: "#/$defs/Version";
|
|
140
|
+
readonly description: "The face's version in the pool.";
|
|
141
|
+
};
|
|
142
|
+
readonly promoted: {
|
|
143
|
+
readonly type: "array";
|
|
144
|
+
readonly minItems: 1;
|
|
145
|
+
readonly maxItems: 64;
|
|
146
|
+
readonly description: "For each promoted position, in request order, the pool attribute the entry now references and whether this promote created it. `created: false` means the holder already kept exactly this value, and the face now shares it with whatever else presents it.";
|
|
147
|
+
readonly items: {
|
|
148
|
+
readonly type: "object";
|
|
149
|
+
readonly additionalProperties: false;
|
|
150
|
+
readonly required: readonly ["entry", "attributeId", "created"];
|
|
151
|
+
readonly properties: {
|
|
152
|
+
readonly entry: {
|
|
153
|
+
readonly type: "integer";
|
|
154
|
+
readonly minimum: 0;
|
|
155
|
+
};
|
|
156
|
+
readonly attributeId: {
|
|
157
|
+
readonly $ref: "#/$defs/Ulid";
|
|
158
|
+
};
|
|
159
|
+
readonly created: {
|
|
160
|
+
readonly type: "boolean";
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
readonly reboundPersonaDids: {
|
|
166
|
+
readonly type: "array";
|
|
167
|
+
readonly maxItems: 256;
|
|
168
|
+
readonly items: {
|
|
169
|
+
readonly type: "string";
|
|
170
|
+
readonly minLength: 1;
|
|
171
|
+
};
|
|
172
|
+
readonly description: "Personas in `contextId` that wore the local face and now wear it from the pool. What they present is unchanged. Absent when none did.";
|
|
173
|
+
};
|
|
174
|
+
readonly ext: {
|
|
175
|
+
readonly $ref: "#/$defs/Ext";
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
readonly Ext: {
|
|
180
|
+
readonly title: "Ext";
|
|
181
|
+
readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
|
|
182
|
+
readonly type: "object";
|
|
183
|
+
readonly minProperties: 1;
|
|
184
|
+
readonly additionalProperties: true;
|
|
185
|
+
readonly propertyNames: {
|
|
186
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
readonly Ulid: {
|
|
190
|
+
readonly title: "Ulid";
|
|
191
|
+
readonly description: "A ULID in Crockford base32, uppercase. Used for `attributeId` and `profileId`. Chosen over a UUID because the leading 48 bits are a timestamp, so a key-ordered scan of the store is also creation-ordered and a `list` needs no secondary sort. Server-assigned on create; a producer MAY supply one to make a create idempotent, and a maintainer MUST reject a supplied value that already exists rather than silently overwriting.";
|
|
192
|
+
readonly type: "string";
|
|
193
|
+
readonly pattern: "^[0-9A-HJKMNP-TV-Z]{26}$";
|
|
194
|
+
};
|
|
195
|
+
readonly Version: {
|
|
196
|
+
readonly title: "Version";
|
|
197
|
+
readonly description: "A value of the store's monotonic write counter. Server-assigned; a producer never chooses one.";
|
|
198
|
+
readonly type: "integer";
|
|
199
|
+
readonly minimum: 1;
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
/** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
|
|
204
|
+
export declare const RESPONSE_PAYLOAD_SCHEMA: {
|
|
205
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
206
|
+
readonly $ref: "#/$defs/Response";
|
|
207
|
+
readonly $defs: {
|
|
208
|
+
readonly Response: {
|
|
209
|
+
readonly $anchor: "response";
|
|
210
|
+
readonly title: "Persona Attribute Promote — response payload";
|
|
211
|
+
readonly description: "Success response to persona/attribute/promote. Type https://trusttasks.org/spec/persona/attribute/promote/1.0#response.";
|
|
212
|
+
readonly type: "object";
|
|
213
|
+
readonly additionalProperties: false;
|
|
214
|
+
readonly required: readonly ["profileId", "version", "promoted"];
|
|
215
|
+
readonly properties: {
|
|
216
|
+
readonly profileId: {
|
|
217
|
+
readonly $ref: "#/$defs/Ulid";
|
|
218
|
+
readonly description: "Unchanged: the face keeps its id. It is now read through persona/profile/get.";
|
|
219
|
+
};
|
|
220
|
+
readonly version: {
|
|
221
|
+
readonly $ref: "#/$defs/Version";
|
|
222
|
+
readonly description: "The face's version in the pool.";
|
|
223
|
+
};
|
|
224
|
+
readonly promoted: {
|
|
225
|
+
readonly type: "array";
|
|
226
|
+
readonly minItems: 1;
|
|
227
|
+
readonly maxItems: 64;
|
|
228
|
+
readonly description: "For each promoted position, in request order, the pool attribute the entry now references and whether this promote created it. `created: false` means the holder already kept exactly this value, and the face now shares it with whatever else presents it.";
|
|
229
|
+
readonly items: {
|
|
230
|
+
readonly type: "object";
|
|
231
|
+
readonly additionalProperties: false;
|
|
232
|
+
readonly required: readonly ["entry", "attributeId", "created"];
|
|
233
|
+
readonly properties: {
|
|
234
|
+
readonly entry: {
|
|
235
|
+
readonly type: "integer";
|
|
236
|
+
readonly minimum: 0;
|
|
237
|
+
};
|
|
238
|
+
readonly attributeId: {
|
|
239
|
+
readonly $ref: "#/$defs/Ulid";
|
|
240
|
+
};
|
|
241
|
+
readonly created: {
|
|
242
|
+
readonly type: "boolean";
|
|
243
|
+
};
|
|
244
|
+
};
|
|
245
|
+
};
|
|
246
|
+
};
|
|
247
|
+
readonly reboundPersonaDids: {
|
|
248
|
+
readonly type: "array";
|
|
249
|
+
readonly maxItems: 256;
|
|
250
|
+
readonly items: {
|
|
251
|
+
readonly type: "string";
|
|
252
|
+
readonly minLength: 1;
|
|
253
|
+
};
|
|
254
|
+
readonly description: "Personas in `contextId` that wore the local face and now wear it from the pool. What they present is unchanged. Absent when none did.";
|
|
255
|
+
};
|
|
256
|
+
readonly ext: {
|
|
257
|
+
readonly $ref: "#/$defs/Ext";
|
|
258
|
+
};
|
|
259
|
+
};
|
|
260
|
+
};
|
|
261
|
+
readonly Ext: {
|
|
262
|
+
readonly title: "Ext";
|
|
263
|
+
readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
|
|
264
|
+
readonly type: "object";
|
|
265
|
+
readonly minProperties: 1;
|
|
266
|
+
readonly additionalProperties: true;
|
|
267
|
+
readonly propertyNames: {
|
|
268
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
269
|
+
};
|
|
270
|
+
};
|
|
271
|
+
readonly Ulid: {
|
|
272
|
+
readonly title: "Ulid";
|
|
273
|
+
readonly description: "A ULID in Crockford base32, uppercase. Used for `attributeId` and `profileId`. Chosen over a UUID because the leading 48 bits are a timestamp, so a key-ordered scan of the store is also creation-ordered and a `list` needs no secondary sort. Server-assigned on create; a producer MAY supply one to make a create idempotent, and a maintainer MUST reject a supplied value that already exists rather than silently overwriting.";
|
|
274
|
+
readonly type: "string";
|
|
275
|
+
readonly pattern: "^[0-9A-HJKMNP-TV-Z]{26}$";
|
|
276
|
+
};
|
|
277
|
+
readonly Version: {
|
|
278
|
+
readonly title: "Version";
|
|
279
|
+
readonly description: "A value of the store's monotonic write counter. Server-assigned; a producer never chooses one.";
|
|
280
|
+
readonly type: "integer";
|
|
281
|
+
readonly minimum: 1;
|
|
282
|
+
};
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
/**
|
|
286
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
287
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
288
|
+
* per-specification and cannot be derived from the document alone, and
|
|
289
|
+
* item 2 needs the schema this carries.
|
|
290
|
+
*/
|
|
291
|
+
export declare const SPEC: {
|
|
292
|
+
readonly typeUri: "https://trusttasks.org/spec/persona/attribute/promote/1.0";
|
|
293
|
+
readonly isBearer: false;
|
|
294
|
+
readonly isProofRequired: true;
|
|
295
|
+
readonly isRecipientRequired: true;
|
|
296
|
+
readonly isIssuedAtRequired: true;
|
|
297
|
+
readonly payloadSchema: {
|
|
298
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
299
|
+
readonly $id: "https://trusttasks.org/spec/persona/attribute/promote/1.0";
|
|
300
|
+
readonly title: "Persona Attribute Promote — payload";
|
|
301
|
+
readonly description: "Make values a context-local face carries reusable: each named entry's value becomes a pool attribute, and the face — which can no longer live inside one context once it references the pool — moves above contexts, keeping its id and staying worn wherever it was. One-way.";
|
|
302
|
+
readonly type: "object";
|
|
303
|
+
readonly additionalProperties: false;
|
|
304
|
+
readonly required: readonly ["contextId", "profileId", "entries", "expectedVersion"];
|
|
305
|
+
readonly properties: {
|
|
306
|
+
readonly contextId: {
|
|
307
|
+
readonly type: "string";
|
|
308
|
+
readonly minLength: 1;
|
|
309
|
+
readonly description: "The context the local face lives in.";
|
|
310
|
+
};
|
|
311
|
+
readonly profileId: {
|
|
312
|
+
readonly $ref: "#/$defs/Ulid";
|
|
313
|
+
readonly description: "The context-local face.";
|
|
314
|
+
};
|
|
315
|
+
readonly entries: {
|
|
316
|
+
readonly type: "array";
|
|
317
|
+
readonly minItems: 1;
|
|
318
|
+
readonly maxItems: 64;
|
|
319
|
+
readonly uniqueItems: true;
|
|
320
|
+
readonly items: {
|
|
321
|
+
readonly type: "integer";
|
|
322
|
+
readonly minimum: 0;
|
|
323
|
+
};
|
|
324
|
+
readonly description: "Zero-based positions, in the face's `entries`, of the values to promote. Positions are meaningful only against the version the producer read, which is why `expectedVersion` is required.";
|
|
325
|
+
};
|
|
326
|
+
readonly expectedVersion: {
|
|
327
|
+
readonly $ref: "#/$defs/Version";
|
|
328
|
+
readonly description: "The local face's version as the producer read it. Required: a position into a face edited since would promote a different value than the holder chose.";
|
|
329
|
+
};
|
|
330
|
+
readonly ext: {
|
|
331
|
+
readonly $ref: "#/$defs/Ext";
|
|
332
|
+
};
|
|
333
|
+
};
|
|
334
|
+
readonly $defs: {
|
|
335
|
+
readonly Response: {
|
|
336
|
+
readonly $anchor: "response";
|
|
337
|
+
readonly title: "Persona Attribute Promote — response payload";
|
|
338
|
+
readonly description: "Success response to persona/attribute/promote. Type https://trusttasks.org/spec/persona/attribute/promote/1.0#response.";
|
|
339
|
+
readonly type: "object";
|
|
340
|
+
readonly additionalProperties: false;
|
|
341
|
+
readonly required: readonly ["profileId", "version", "promoted"];
|
|
342
|
+
readonly properties: {
|
|
343
|
+
readonly profileId: {
|
|
344
|
+
readonly $ref: "#/$defs/Ulid";
|
|
345
|
+
readonly description: "Unchanged: the face keeps its id. It is now read through persona/profile/get.";
|
|
346
|
+
};
|
|
347
|
+
readonly version: {
|
|
348
|
+
readonly $ref: "#/$defs/Version";
|
|
349
|
+
readonly description: "The face's version in the pool.";
|
|
350
|
+
};
|
|
351
|
+
readonly promoted: {
|
|
352
|
+
readonly type: "array";
|
|
353
|
+
readonly minItems: 1;
|
|
354
|
+
readonly maxItems: 64;
|
|
355
|
+
readonly description: "For each promoted position, in request order, the pool attribute the entry now references and whether this promote created it. `created: false` means the holder already kept exactly this value, and the face now shares it with whatever else presents it.";
|
|
356
|
+
readonly items: {
|
|
357
|
+
readonly type: "object";
|
|
358
|
+
readonly additionalProperties: false;
|
|
359
|
+
readonly required: readonly ["entry", "attributeId", "created"];
|
|
360
|
+
readonly properties: {
|
|
361
|
+
readonly entry: {
|
|
362
|
+
readonly type: "integer";
|
|
363
|
+
readonly minimum: 0;
|
|
364
|
+
};
|
|
365
|
+
readonly attributeId: {
|
|
366
|
+
readonly $ref: "#/$defs/Ulid";
|
|
367
|
+
};
|
|
368
|
+
readonly created: {
|
|
369
|
+
readonly type: "boolean";
|
|
370
|
+
};
|
|
371
|
+
};
|
|
372
|
+
};
|
|
373
|
+
};
|
|
374
|
+
readonly reboundPersonaDids: {
|
|
375
|
+
readonly type: "array";
|
|
376
|
+
readonly maxItems: 256;
|
|
377
|
+
readonly items: {
|
|
378
|
+
readonly type: "string";
|
|
379
|
+
readonly minLength: 1;
|
|
380
|
+
};
|
|
381
|
+
readonly description: "Personas in `contextId` that wore the local face and now wear it from the pool. What they present is unchanged. Absent when none did.";
|
|
382
|
+
};
|
|
383
|
+
readonly ext: {
|
|
384
|
+
readonly $ref: "#/$defs/Ext";
|
|
385
|
+
};
|
|
386
|
+
};
|
|
387
|
+
};
|
|
388
|
+
readonly Ext: {
|
|
389
|
+
readonly title: "Ext";
|
|
390
|
+
readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
|
|
391
|
+
readonly type: "object";
|
|
392
|
+
readonly minProperties: 1;
|
|
393
|
+
readonly additionalProperties: true;
|
|
394
|
+
readonly propertyNames: {
|
|
395
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
396
|
+
};
|
|
397
|
+
};
|
|
398
|
+
readonly Ulid: {
|
|
399
|
+
readonly title: "Ulid";
|
|
400
|
+
readonly description: "A ULID in Crockford base32, uppercase. Used for `attributeId` and `profileId`. Chosen over a UUID because the leading 48 bits are a timestamp, so a key-ordered scan of the store is also creation-ordered and a `list` needs no secondary sort. Server-assigned on create; a producer MAY supply one to make a create idempotent, and a maintainer MUST reject a supplied value that already exists rather than silently overwriting.";
|
|
401
|
+
readonly type: "string";
|
|
402
|
+
readonly pattern: "^[0-9A-HJKMNP-TV-Z]{26}$";
|
|
403
|
+
};
|
|
404
|
+
readonly Version: {
|
|
405
|
+
readonly title: "Version";
|
|
406
|
+
readonly description: "A value of the store's monotonic write counter. Server-assigned; a producer never chooses one.";
|
|
407
|
+
readonly type: "integer";
|
|
408
|
+
readonly minimum: 1;
|
|
409
|
+
};
|
|
410
|
+
};
|
|
411
|
+
};
|
|
412
|
+
};
|
|
413
|
+
/**
|
|
414
|
+
* SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
|
|
415
|
+
* tracks the *issuer* party's requirement because a response swaps the
|
|
416
|
+
* parties (§7.3 item 5).
|
|
417
|
+
*/
|
|
418
|
+
export declare const RESPONSE_SPEC: {
|
|
419
|
+
readonly typeUri: "https://trusttasks.org/spec/persona/attribute/promote/1.0#response";
|
|
420
|
+
readonly isBearer: false;
|
|
421
|
+
readonly isProofRequired: true;
|
|
422
|
+
readonly isRecipientRequired: true;
|
|
423
|
+
readonly isIssuedAtRequired: true;
|
|
424
|
+
readonly payloadSchema: {
|
|
425
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
426
|
+
readonly $ref: "#/$defs/Response";
|
|
427
|
+
readonly $defs: {
|
|
428
|
+
readonly Response: {
|
|
429
|
+
readonly $anchor: "response";
|
|
430
|
+
readonly title: "Persona Attribute Promote — response payload";
|
|
431
|
+
readonly description: "Success response to persona/attribute/promote. Type https://trusttasks.org/spec/persona/attribute/promote/1.0#response.";
|
|
432
|
+
readonly type: "object";
|
|
433
|
+
readonly additionalProperties: false;
|
|
434
|
+
readonly required: readonly ["profileId", "version", "promoted"];
|
|
435
|
+
readonly properties: {
|
|
436
|
+
readonly profileId: {
|
|
437
|
+
readonly $ref: "#/$defs/Ulid";
|
|
438
|
+
readonly description: "Unchanged: the face keeps its id. It is now read through persona/profile/get.";
|
|
439
|
+
};
|
|
440
|
+
readonly version: {
|
|
441
|
+
readonly $ref: "#/$defs/Version";
|
|
442
|
+
readonly description: "The face's version in the pool.";
|
|
443
|
+
};
|
|
444
|
+
readonly promoted: {
|
|
445
|
+
readonly type: "array";
|
|
446
|
+
readonly minItems: 1;
|
|
447
|
+
readonly maxItems: 64;
|
|
448
|
+
readonly description: "For each promoted position, in request order, the pool attribute the entry now references and whether this promote created it. `created: false` means the holder already kept exactly this value, and the face now shares it with whatever else presents it.";
|
|
449
|
+
readonly items: {
|
|
450
|
+
readonly type: "object";
|
|
451
|
+
readonly additionalProperties: false;
|
|
452
|
+
readonly required: readonly ["entry", "attributeId", "created"];
|
|
453
|
+
readonly properties: {
|
|
454
|
+
readonly entry: {
|
|
455
|
+
readonly type: "integer";
|
|
456
|
+
readonly minimum: 0;
|
|
457
|
+
};
|
|
458
|
+
readonly attributeId: {
|
|
459
|
+
readonly $ref: "#/$defs/Ulid";
|
|
460
|
+
};
|
|
461
|
+
readonly created: {
|
|
462
|
+
readonly type: "boolean";
|
|
463
|
+
};
|
|
464
|
+
};
|
|
465
|
+
};
|
|
466
|
+
};
|
|
467
|
+
readonly reboundPersonaDids: {
|
|
468
|
+
readonly type: "array";
|
|
469
|
+
readonly maxItems: 256;
|
|
470
|
+
readonly items: {
|
|
471
|
+
readonly type: "string";
|
|
472
|
+
readonly minLength: 1;
|
|
473
|
+
};
|
|
474
|
+
readonly description: "Personas in `contextId` that wore the local face and now wear it from the pool. What they present is unchanged. Absent when none did.";
|
|
475
|
+
};
|
|
476
|
+
readonly ext: {
|
|
477
|
+
readonly $ref: "#/$defs/Ext";
|
|
478
|
+
};
|
|
479
|
+
};
|
|
480
|
+
};
|
|
481
|
+
readonly Ext: {
|
|
482
|
+
readonly title: "Ext";
|
|
483
|
+
readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
|
|
484
|
+
readonly type: "object";
|
|
485
|
+
readonly minProperties: 1;
|
|
486
|
+
readonly additionalProperties: true;
|
|
487
|
+
readonly propertyNames: {
|
|
488
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
489
|
+
};
|
|
490
|
+
};
|
|
491
|
+
readonly Ulid: {
|
|
492
|
+
readonly title: "Ulid";
|
|
493
|
+
readonly description: "A ULID in Crockford base32, uppercase. Used for `attributeId` and `profileId`. Chosen over a UUID because the leading 48 bits are a timestamp, so a key-ordered scan of the store is also creation-ordered and a `list` needs no secondary sort. Server-assigned on create; a producer MAY supply one to make a create idempotent, and a maintainer MUST reject a supplied value that already exists rather than silently overwriting.";
|
|
494
|
+
readonly type: "string";
|
|
495
|
+
readonly pattern: "^[0-9A-HJKMNP-TV-Z]{26}$";
|
|
496
|
+
};
|
|
497
|
+
readonly Version: {
|
|
498
|
+
readonly title: "Version";
|
|
499
|
+
readonly description: "A value of the store's monotonic write counter. Server-assigned; a producer never chooses one.";
|
|
500
|
+
readonly type: "integer";
|
|
501
|
+
readonly minimum: 1;
|
|
502
|
+
};
|
|
503
|
+
};
|
|
504
|
+
};
|
|
505
|
+
};
|
|
506
|
+
//# sourceMappingURL=payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../src/persona/attribute/promote/1.0/payload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,IAAI,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAGnG;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAChB;;;;;OAKG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC/B;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AACD;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,IAAI,CAAC;YAClB,OAAO,EAAE,OAAO,CAAC;SAClB;QACD,GAAG;YACD,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,IAAI,CAAC;YAClB,OAAO,EAAE,OAAO,CAAC;SAClB,EAAE;KACJ,CAAC;IACF;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED,kHAAkH;AAClH,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAEnC,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,EAAG,2DAAoE,CAAC;AAE7F,mEAAmE;AACnE,MAAM,MAAM,OAAO,GAAG,8BAA8B,CAAC;AAErD,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,EAAG,oEAA6E,CAAC;AAE/G,4EAA4E;AAC5E,MAAM,MAAM,QAAQ,GAAG,sCAAsC,CAAC;AAE9D;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HjB,CAAC;AAEX,mEAAmE;AACnE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwF1B,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOP,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOhB,CAAC"}
|