@openvtc/trust-tasks 0.19.3 → 0.19.4
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 +161 -0
- package/dist/_shared/components.d.ts +298 -0
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/vetting/_shared/0.1/identity-vetting.d.ts +11 -0
- package/dist/vetting/_shared/0.1/identity-vetting.d.ts.map +1 -0
- package/dist/vetting/_shared/0.1/identity-vetting.js +6 -0
- package/dist/vetting/_shared/0.1/identity-vetting.js.map +1 -0
- package/dist/vetting/_shared/0.1/vetting-card.d.ts +16 -0
- package/dist/vetting/_shared/0.1/vetting-card.d.ts.map +1 -0
- package/dist/vetting/_shared/0.1/vetting-card.js +6 -0
- package/dist/vetting/_shared/0.1/vetting-card.js.map +1 -0
- package/dist/vetting/_shared/0.1/vetting.d.ts +16 -0
- package/dist/vetting/_shared/0.1/vetting.d.ts.map +1 -0
- package/dist/vetting/_shared/0.1/vetting.js +6 -0
- package/dist/vetting/_shared/0.1/vetting.js.map +1 -0
- package/dist/vetting/decline/0.1/payload.d.ts +138 -0
- package/dist/vetting/decline/0.1/payload.d.ts.map +1 -0
- package/dist/vetting/decline/0.1/payload.js +81 -0
- package/dist/vetting/decline/0.1/payload.js.map +1 -0
- package/dist/vetting/request/0.1/payload.d.ts +1188 -0
- package/dist/vetting/request/0.1/payload.d.ts.map +1 -0
- package/dist/vetting/request/0.1/payload.js +596 -0
- package/dist/vetting/request/0.1/payload.js.map +1 -0
- package/dist/vetting/session/0.1/payload.d.ts +978 -0
- package/dist/vetting/session/0.1/payload.d.ts.map +1 -0
- package/dist/vetting/session/0.1/payload.js +570 -0
- package/dist/vetting/session/0.1/payload.js.map +1 -0
- package/dist/vtc/_shared/0.1/vetter-profile.d.ts +16 -0
- package/dist/vtc/_shared/0.1/vetter-profile.d.ts.map +1 -0
- package/dist/vtc/_shared/0.1/vetter-profile.js +6 -0
- package/dist/vtc/_shared/0.1/vetter-profile.js.map +1 -0
- package/dist/vtc/join-requests/manifest/0.2/payload.d.ts +1294 -0
- package/dist/vtc/join-requests/manifest/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/join-requests/manifest/0.2/payload.js +667 -0
- package/dist/vtc/join-requests/manifest/0.2/payload.js.map +1 -0
- package/dist/vtc/vetting/revoke-statement/0.1/payload.d.ts +299 -0
- package/dist/vtc/vetting/revoke-statement/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/vetting/revoke-statement/0.1/payload.js +172 -0
- package/dist/vtc/vetting/revoke-statement/0.1/payload.js.map +1 -0
- package/dist/vtc/vetting/vetters/grant/0.1/payload.d.ts +337 -0
- package/dist/vtc/vetting/vetters/grant/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/vetting/vetters/grant/0.1/payload.js +183 -0
- package/dist/vtc/vetting/vetters/grant/0.1/payload.js.map +1 -0
- package/dist/vtc/vetting/vetters/list/0.1/payload.d.ts +1257 -0
- package/dist/vtc/vetting/vetters/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/vetting/vetters/list/0.1/payload.js +597 -0
- package/dist/vtc/vetting/vetters/list/0.1/payload.js.map +1 -0
- package/dist/vtc/vetting/vetters/profile/0.1/payload.d.ts +970 -0
- package/dist/vtc/vetting/vetters/profile/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/vetting/vetters/profile/0.1/payload.js +463 -0
- package/dist/vtc/vetting/vetters/profile/0.1/payload.js.map +1 -0
- package/dist/vtc/vetting/vetters/resend/0.1/payload.d.ts +240 -0
- package/dist/vtc/vetting/vetters/resend/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/vetting/vetters/resend/0.1/payload.js +137 -0
- package/dist/vtc/vetting/vetters/resend/0.1/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_shared/components.ts +318 -0
- package/src/index.ts +13 -0
- package/src/vetting/_shared/0.1/identity-vetting.ts +11 -0
- package/src/vetting/_shared/0.1/vetting-card.ts +17 -0
- package/src/vetting/_shared/0.1/vetting.ts +17 -0
- package/src/vetting/decline/0.1/payload.ts +111 -0
- package/src/vetting/request/0.1/payload.ts +799 -0
- package/src/vetting/session/0.1/payload.ts +629 -0
- package/src/vtc/_shared/0.1/vetter-profile.ts +17 -0
- package/src/vtc/join-requests/manifest/0.2/payload.ts +815 -0
- package/src/vtc/vetting/revoke-statement/0.1/payload.ts +218 -0
- package/src/vtc/vetting/vetters/grant/0.1/payload.ts +237 -0
- package/src/vtc/vetting/vetters/list/0.1/payload.ts +816 -0
- package/src/vtc/vetting/vetters/profile/0.1/payload.ts +647 -0
- package/src/vtc/vetting/vetters/resend/0.1/payload.ts +174 -0
|
@@ -0,0 +1,970 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/vtc/vetting/vetters/profile/0.1/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
import type { CalendarDate, CountryCode, Ext, LanguageTag, PlaceName, VetterAcceptsDocumentation, VetterAvailability, VetterContactHint, VetterDisplayName, VetterEvent, VetterLocation, VetterMethods, VettingDocumentation, VettingMethod } from "../../../../../_shared/components.js";
|
|
6
|
+
/**
|
|
7
|
+
* A vetter publishes, replaces or unlists their vetter profile with their community: the languages, coarse location, methods, documentation and events an applicant looking for a vetter can filter on. The payload is the whole profile and replaces whatever the community held. `listed: false` keeps the profile but removes it from vtc/vetting/vetters/list.
|
|
8
|
+
*/
|
|
9
|
+
export interface VTCVettingVettersProfilePayload {
|
|
10
|
+
/**
|
|
11
|
+
* Whether the profile appears in vtc/vetting/vetters/list. `false` keeps it stored and hidden.
|
|
12
|
+
*/
|
|
13
|
+
listed: boolean;
|
|
14
|
+
displayName?: VetterDisplayName;
|
|
15
|
+
/**
|
|
16
|
+
* BCP 47 tags of the languages the vetter can hold a session in, most preferred first. May be empty.
|
|
17
|
+
*
|
|
18
|
+
* @maxItems 16
|
|
19
|
+
*/
|
|
20
|
+
languages: [] | [LanguageTag] | [LanguageTag, LanguageTag] | [LanguageTag, LanguageTag, LanguageTag] | [LanguageTag, LanguageTag, LanguageTag, LanguageTag] | [LanguageTag, LanguageTag, LanguageTag, LanguageTag, LanguageTag] | [LanguageTag, LanguageTag, LanguageTag, LanguageTag, LanguageTag, LanguageTag] | [LanguageTag, LanguageTag, LanguageTag, LanguageTag, LanguageTag, LanguageTag, LanguageTag] | [LanguageTag, LanguageTag, LanguageTag, LanguageTag, LanguageTag, LanguageTag, LanguageTag, LanguageTag] | [
|
|
21
|
+
LanguageTag,
|
|
22
|
+
LanguageTag,
|
|
23
|
+
LanguageTag,
|
|
24
|
+
LanguageTag,
|
|
25
|
+
LanguageTag,
|
|
26
|
+
LanguageTag,
|
|
27
|
+
LanguageTag,
|
|
28
|
+
LanguageTag,
|
|
29
|
+
LanguageTag
|
|
30
|
+
] | [
|
|
31
|
+
LanguageTag,
|
|
32
|
+
LanguageTag,
|
|
33
|
+
LanguageTag,
|
|
34
|
+
LanguageTag,
|
|
35
|
+
LanguageTag,
|
|
36
|
+
LanguageTag,
|
|
37
|
+
LanguageTag,
|
|
38
|
+
LanguageTag,
|
|
39
|
+
LanguageTag,
|
|
40
|
+
LanguageTag
|
|
41
|
+
] | [
|
|
42
|
+
LanguageTag,
|
|
43
|
+
LanguageTag,
|
|
44
|
+
LanguageTag,
|
|
45
|
+
LanguageTag,
|
|
46
|
+
LanguageTag,
|
|
47
|
+
LanguageTag,
|
|
48
|
+
LanguageTag,
|
|
49
|
+
LanguageTag,
|
|
50
|
+
LanguageTag,
|
|
51
|
+
LanguageTag,
|
|
52
|
+
LanguageTag
|
|
53
|
+
] | [
|
|
54
|
+
LanguageTag,
|
|
55
|
+
LanguageTag,
|
|
56
|
+
LanguageTag,
|
|
57
|
+
LanguageTag,
|
|
58
|
+
LanguageTag,
|
|
59
|
+
LanguageTag,
|
|
60
|
+
LanguageTag,
|
|
61
|
+
LanguageTag,
|
|
62
|
+
LanguageTag,
|
|
63
|
+
LanguageTag,
|
|
64
|
+
LanguageTag,
|
|
65
|
+
LanguageTag
|
|
66
|
+
] | [
|
|
67
|
+
LanguageTag,
|
|
68
|
+
LanguageTag,
|
|
69
|
+
LanguageTag,
|
|
70
|
+
LanguageTag,
|
|
71
|
+
LanguageTag,
|
|
72
|
+
LanguageTag,
|
|
73
|
+
LanguageTag,
|
|
74
|
+
LanguageTag,
|
|
75
|
+
LanguageTag,
|
|
76
|
+
LanguageTag,
|
|
77
|
+
LanguageTag,
|
|
78
|
+
LanguageTag,
|
|
79
|
+
LanguageTag
|
|
80
|
+
] | [
|
|
81
|
+
LanguageTag,
|
|
82
|
+
LanguageTag,
|
|
83
|
+
LanguageTag,
|
|
84
|
+
LanguageTag,
|
|
85
|
+
LanguageTag,
|
|
86
|
+
LanguageTag,
|
|
87
|
+
LanguageTag,
|
|
88
|
+
LanguageTag,
|
|
89
|
+
LanguageTag,
|
|
90
|
+
LanguageTag,
|
|
91
|
+
LanguageTag,
|
|
92
|
+
LanguageTag,
|
|
93
|
+
LanguageTag,
|
|
94
|
+
LanguageTag
|
|
95
|
+
] | [
|
|
96
|
+
LanguageTag,
|
|
97
|
+
LanguageTag,
|
|
98
|
+
LanguageTag,
|
|
99
|
+
LanguageTag,
|
|
100
|
+
LanguageTag,
|
|
101
|
+
LanguageTag,
|
|
102
|
+
LanguageTag,
|
|
103
|
+
LanguageTag,
|
|
104
|
+
LanguageTag,
|
|
105
|
+
LanguageTag,
|
|
106
|
+
LanguageTag,
|
|
107
|
+
LanguageTag,
|
|
108
|
+
LanguageTag,
|
|
109
|
+
LanguageTag,
|
|
110
|
+
LanguageTag
|
|
111
|
+
] | [
|
|
112
|
+
LanguageTag,
|
|
113
|
+
LanguageTag,
|
|
114
|
+
LanguageTag,
|
|
115
|
+
LanguageTag,
|
|
116
|
+
LanguageTag,
|
|
117
|
+
LanguageTag,
|
|
118
|
+
LanguageTag,
|
|
119
|
+
LanguageTag,
|
|
120
|
+
LanguageTag,
|
|
121
|
+
LanguageTag,
|
|
122
|
+
LanguageTag,
|
|
123
|
+
LanguageTag,
|
|
124
|
+
LanguageTag,
|
|
125
|
+
LanguageTag,
|
|
126
|
+
LanguageTag,
|
|
127
|
+
LanguageTag
|
|
128
|
+
];
|
|
129
|
+
location?: VetterLocation;
|
|
130
|
+
methods: VetterMethods;
|
|
131
|
+
acceptsDocumentation: VetterAcceptsDocumentation;
|
|
132
|
+
availability?: VetterAvailability;
|
|
133
|
+
contactHint?: VetterContactHint;
|
|
134
|
+
/**
|
|
135
|
+
* Events the vetter will attend and vet at. May be empty. Events that have ended stay stored but are not listed.
|
|
136
|
+
*
|
|
137
|
+
* @maxItems 32
|
|
138
|
+
*/
|
|
139
|
+
events: VetterEvent[];
|
|
140
|
+
ext?: Ext;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* The community stored the profile.
|
|
144
|
+
*/
|
|
145
|
+
export interface VTCVettingVettersProfileResponsePayload {
|
|
146
|
+
/**
|
|
147
|
+
* The stored profile's `listed` value.
|
|
148
|
+
*/
|
|
149
|
+
listed: boolean;
|
|
150
|
+
/**
|
|
151
|
+
* When the community stored this profile. vtc/vetting/vetters/list returns the same value.
|
|
152
|
+
*/
|
|
153
|
+
updatedAt: string;
|
|
154
|
+
}
|
|
155
|
+
/** Shared definitions this specification references, re-exported under the names it used to declare them with. */
|
|
156
|
+
export type { CalendarDate, CountryCode, Ext, LanguageTag, PlaceName, VetterAcceptsDocumentation, VetterAvailability, VetterContactHint, VetterDisplayName, VetterEvent, VetterLocation, VetterMethods, VettingDocumentation, VettingMethod };
|
|
157
|
+
/** Trust Task type URI. */
|
|
158
|
+
export declare const TYPE_URI: "https://trusttasks.org/spec/vtc/vetting/vetters/profile/0.1";
|
|
159
|
+
/** Stable alias for this specification's request payload shape. */
|
|
160
|
+
export type Payload = VTCVettingVettersProfilePayload;
|
|
161
|
+
/** Trust Task response type URI (request type URI + "#response"). */
|
|
162
|
+
export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/vtc/vetting/vetters/profile/0.1#response";
|
|
163
|
+
/** Stable alias for this specification's success-response payload shape. */
|
|
164
|
+
export type Response = VTCVettingVettersProfileResponsePayload;
|
|
165
|
+
/**
|
|
166
|
+
* This specification's payload schema, as a value.
|
|
167
|
+
*
|
|
168
|
+
* SPEC.md §7.2 item 2 is performed against this. It is shipped as data
|
|
169
|
+
* rather than only as a `.json` file because TypeScript types are erased
|
|
170
|
+
* at runtime: without a schema a consumer has nothing to validate, and
|
|
171
|
+
* every REQUIRED payload member is optional in practice. Cross-file
|
|
172
|
+
* `$ref`s are already inlined, so it needs no resolver.
|
|
173
|
+
*/
|
|
174
|
+
export declare const PAYLOAD_SCHEMA: {
|
|
175
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
176
|
+
readonly $id: "https://trusttasks.org/spec/vtc/vetting/vetters/profile/0.1";
|
|
177
|
+
readonly title: "VTC Vetting — Vetters Profile — payload";
|
|
178
|
+
readonly description: "A vetter publishes, replaces or unlists their vetter profile with their community: the languages, coarse location, methods, documentation and events an applicant looking for a vetter can filter on. The payload is the whole profile and replaces whatever the community held. `listed: false` keeps the profile but removes it from vtc/vetting/vetters/list.";
|
|
179
|
+
readonly type: "object";
|
|
180
|
+
readonly additionalProperties: false;
|
|
181
|
+
readonly required: readonly ["listed", "languages", "methods", "acceptsDocumentation", "events"];
|
|
182
|
+
readonly properties: {
|
|
183
|
+
readonly listed: {
|
|
184
|
+
readonly type: "boolean";
|
|
185
|
+
readonly description: "Whether the profile appears in vtc/vetting/vetters/list. `false` keeps it stored and hidden.";
|
|
186
|
+
};
|
|
187
|
+
readonly displayName: {
|
|
188
|
+
readonly $ref: "#/$defs/VetterDisplayName";
|
|
189
|
+
};
|
|
190
|
+
readonly languages: {
|
|
191
|
+
readonly type: "array";
|
|
192
|
+
readonly maxItems: 16;
|
|
193
|
+
readonly uniqueItems: true;
|
|
194
|
+
readonly items: {
|
|
195
|
+
readonly $ref: "#/$defs/LanguageTag";
|
|
196
|
+
};
|
|
197
|
+
readonly description: "BCP 47 tags of the languages the vetter can hold a session in, most preferred first. May be empty.";
|
|
198
|
+
};
|
|
199
|
+
readonly location: {
|
|
200
|
+
readonly $ref: "#/$defs/VetterLocation";
|
|
201
|
+
};
|
|
202
|
+
readonly methods: {
|
|
203
|
+
readonly $ref: "#/$defs/VetterMethods";
|
|
204
|
+
};
|
|
205
|
+
readonly acceptsDocumentation: {
|
|
206
|
+
readonly $ref: "#/$defs/VetterAcceptsDocumentation";
|
|
207
|
+
};
|
|
208
|
+
readonly availability: {
|
|
209
|
+
readonly $ref: "#/$defs/VetterAvailability";
|
|
210
|
+
};
|
|
211
|
+
readonly contactHint: {
|
|
212
|
+
readonly $ref: "#/$defs/VetterContactHint";
|
|
213
|
+
};
|
|
214
|
+
readonly events: {
|
|
215
|
+
readonly type: "array";
|
|
216
|
+
readonly maxItems: 32;
|
|
217
|
+
readonly items: {
|
|
218
|
+
readonly $ref: "#/$defs/VetterEvent";
|
|
219
|
+
};
|
|
220
|
+
readonly description: "Events the vetter will attend and vet at. May be empty. Events that have ended stay stored but are not listed.";
|
|
221
|
+
};
|
|
222
|
+
readonly ext: {
|
|
223
|
+
readonly $ref: "#/$defs/Ext";
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
readonly $defs: {
|
|
227
|
+
readonly Response: {
|
|
228
|
+
readonly $anchor: "response";
|
|
229
|
+
readonly title: "VTC Vetting — Vetters Profile — response payload";
|
|
230
|
+
readonly description: "The community stored the profile.";
|
|
231
|
+
readonly type: "object";
|
|
232
|
+
readonly additionalProperties: false;
|
|
233
|
+
readonly required: readonly ["listed", "updatedAt"];
|
|
234
|
+
readonly properties: {
|
|
235
|
+
readonly listed: {
|
|
236
|
+
readonly type: "boolean";
|
|
237
|
+
readonly description: "The stored profile's `listed` value.";
|
|
238
|
+
};
|
|
239
|
+
readonly updatedAt: {
|
|
240
|
+
readonly type: "string";
|
|
241
|
+
readonly format: "date-time";
|
|
242
|
+
readonly description: "When the community stored this profile. vtc/vetting/vetters/list returns the same value.";
|
|
243
|
+
};
|
|
244
|
+
};
|
|
245
|
+
};
|
|
246
|
+
readonly Ext: {
|
|
247
|
+
readonly title: "Ext";
|
|
248
|
+
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.";
|
|
249
|
+
readonly type: "object";
|
|
250
|
+
readonly minProperties: 1;
|
|
251
|
+
readonly additionalProperties: true;
|
|
252
|
+
readonly propertyNames: {
|
|
253
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
254
|
+
};
|
|
255
|
+
};
|
|
256
|
+
readonly VetterEvent: {
|
|
257
|
+
readonly title: "VetterEvent";
|
|
258
|
+
readonly type: "object";
|
|
259
|
+
readonly additionalProperties: false;
|
|
260
|
+
readonly required: readonly ["name", "startDate", "endDate"];
|
|
261
|
+
readonly properties: {
|
|
262
|
+
readonly name: {
|
|
263
|
+
readonly type: "string";
|
|
264
|
+
readonly minLength: 1;
|
|
265
|
+
readonly maxLength: 200;
|
|
266
|
+
readonly description: "The event's name, e.g. `Linux Plumbers Conference 2026`.";
|
|
267
|
+
};
|
|
268
|
+
readonly startDate: {
|
|
269
|
+
readonly $ref: "#/$defs/CalendarDate";
|
|
270
|
+
};
|
|
271
|
+
readonly endDate: {
|
|
272
|
+
readonly $ref: "#/$defs/CalendarDate";
|
|
273
|
+
};
|
|
274
|
+
readonly location: {
|
|
275
|
+
readonly $ref: "#/$defs/VetterLocation";
|
|
276
|
+
};
|
|
277
|
+
readonly url: {
|
|
278
|
+
readonly type: "string";
|
|
279
|
+
readonly format: "uri";
|
|
280
|
+
readonly pattern: "^https://";
|
|
281
|
+
readonly maxLength: 2048;
|
|
282
|
+
readonly description: "OPTIONAL. The event's own https page.";
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
readonly description: "An event the vetter will attend and vet at. `endDate` is on or after `startDate` and no more than 31 days after it; JSON Schema cannot compare two members, so the community checks both and refuses a violation with `malformedRequest`.";
|
|
286
|
+
};
|
|
287
|
+
readonly VetterLocation: {
|
|
288
|
+
readonly title: "VetterLocation";
|
|
289
|
+
readonly type: "object";
|
|
290
|
+
readonly additionalProperties: false;
|
|
291
|
+
readonly required: readonly ["country"];
|
|
292
|
+
readonly properties: {
|
|
293
|
+
readonly country: {
|
|
294
|
+
readonly $ref: "#/$defs/CountryCode";
|
|
295
|
+
};
|
|
296
|
+
readonly region: {
|
|
297
|
+
readonly $ref: "#/$defs/PlaceName";
|
|
298
|
+
};
|
|
299
|
+
readonly city: {
|
|
300
|
+
readonly $ref: "#/$defs/PlaceName";
|
|
301
|
+
};
|
|
302
|
+
};
|
|
303
|
+
readonly description: "Where a vetter can meet people, as coarse as the vetter chooses: a country, optionally a region, optionally a city. Never a street address.";
|
|
304
|
+
};
|
|
305
|
+
readonly PlaceName: {
|
|
306
|
+
readonly title: "PlaceName";
|
|
307
|
+
readonly type: "string";
|
|
308
|
+
readonly minLength: 1;
|
|
309
|
+
readonly maxLength: 128;
|
|
310
|
+
readonly description: "A region or city name as the vetter writes it. Compared case-insensitively and otherwise exactly.";
|
|
311
|
+
};
|
|
312
|
+
readonly CountryCode: {
|
|
313
|
+
readonly title: "CountryCode";
|
|
314
|
+
readonly type: "string";
|
|
315
|
+
readonly pattern: "^[A-Z]{2}$";
|
|
316
|
+
readonly description: "An ISO 3166-1 alpha-2 country code, upper case, e.g. `DE`.";
|
|
317
|
+
};
|
|
318
|
+
readonly CalendarDate: {
|
|
319
|
+
readonly title: "CalendarDate";
|
|
320
|
+
readonly type: "string";
|
|
321
|
+
readonly format: "date";
|
|
322
|
+
readonly pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$";
|
|
323
|
+
readonly description: "A calendar date, `YYYY-MM-DD` (RFC 3339 full-date), with no time or zone. Compared as a UTC date.";
|
|
324
|
+
};
|
|
325
|
+
readonly VetterContactHint: {
|
|
326
|
+
readonly title: "VetterContactHint";
|
|
327
|
+
readonly type: "string";
|
|
328
|
+
readonly minLength: 1;
|
|
329
|
+
readonly maxLength: 300;
|
|
330
|
+
readonly description: "Vetter-authored free text on how to obtain a ticket from them, e.g. `Find me at the OpenVTC booth`. A hint, not an address a request can be sent to: vetting/request still needs a ticket or an introduction the vetter accepts.";
|
|
331
|
+
};
|
|
332
|
+
readonly VetterAvailability: {
|
|
333
|
+
readonly title: "VetterAvailability";
|
|
334
|
+
readonly type: "string";
|
|
335
|
+
readonly minLength: 1;
|
|
336
|
+
readonly maxLength: 500;
|
|
337
|
+
readonly description: "Vetter-authored free text on when they are available to vet. Attributed to the vetter.";
|
|
338
|
+
};
|
|
339
|
+
readonly VetterAcceptsDocumentation: {
|
|
340
|
+
readonly title: "VetterAcceptsDocumentation";
|
|
341
|
+
readonly type: "array";
|
|
342
|
+
readonly maxItems: 16;
|
|
343
|
+
readonly uniqueItems: true;
|
|
344
|
+
readonly items: {
|
|
345
|
+
readonly $ref: "#/$defs/VettingDocumentation";
|
|
346
|
+
};
|
|
347
|
+
readonly description: "What documentation the vetter relies on, in the same tokens as vetting/request's `acceptsDocumentation` — `passport`, `nationalId`, `driverLicence`, `none`, or another lowerCamelCase class. The vetter's own choice; empty says nothing either way.";
|
|
348
|
+
};
|
|
349
|
+
readonly VettingDocumentation: {
|
|
350
|
+
readonly title: "VettingDocumentation";
|
|
351
|
+
readonly type: "string";
|
|
352
|
+
readonly minLength: 1;
|
|
353
|
+
readonly maxLength: 64;
|
|
354
|
+
readonly pattern: "^[a-z][a-zA-Z0-9]*$";
|
|
355
|
+
readonly description: "A class of documentation, named in lowerCamelCase. Open rather than enumerated, because what documentation a vetter accepts is each vetter's own choice. Well-known values: `passport`, `nationalId`, `driverLicence`, and `none` — the vetter will attest without a document, which is the `priorAcquaintance` case. Only the class ever travels — never a document number, an image, an issuing authority or an expiry date. `none` states a policy (what a vetter accepts); a record of what was relied on expresses 'no document' as an empty list instead.";
|
|
356
|
+
};
|
|
357
|
+
readonly VetterMethods: {
|
|
358
|
+
readonly title: "VetterMethods";
|
|
359
|
+
readonly type: "array";
|
|
360
|
+
readonly minItems: 1;
|
|
361
|
+
readonly maxItems: 3;
|
|
362
|
+
readonly uniqueItems: true;
|
|
363
|
+
readonly items: {
|
|
364
|
+
readonly $ref: "#/$defs/VettingMethod";
|
|
365
|
+
};
|
|
366
|
+
readonly description: "The methods the vetter offers, from `inPerson`, `video`, `priorAcquaintance`.";
|
|
367
|
+
};
|
|
368
|
+
readonly VettingMethod: {
|
|
369
|
+
readonly title: "VettingMethod";
|
|
370
|
+
readonly type: "string";
|
|
371
|
+
readonly enum: readonly ["inPerson", "video", "priorAcquaintance"];
|
|
372
|
+
readonly description: "How the vetter established that the person they checked is the person controlling the applicant's DID. `inPerson` — both people were physically together. `video` — a live, two-way video call. `priorAcquaintance` — the vetter has known or worked with this person over a period, and attests from that knowledge rather than from a document. A method is a description of what happened, not an assurance level: which methods count, and how many of each, is community policy.";
|
|
373
|
+
};
|
|
374
|
+
readonly LanguageTag: {
|
|
375
|
+
readonly title: "LanguageTag";
|
|
376
|
+
readonly type: "string";
|
|
377
|
+
readonly minLength: 2;
|
|
378
|
+
readonly maxLength: 35;
|
|
379
|
+
readonly pattern: "^[A-Za-z]{2,3}(-[A-Za-z0-9]{1,8})*$";
|
|
380
|
+
readonly description: "A BCP 47 language tag, e.g. `en`, `de-AT`. Compared case-insensitively.";
|
|
381
|
+
};
|
|
382
|
+
readonly VetterDisplayName: {
|
|
383
|
+
readonly title: "VetterDisplayName";
|
|
384
|
+
readonly type: "string";
|
|
385
|
+
readonly minLength: 1;
|
|
386
|
+
readonly maxLength: 128;
|
|
387
|
+
readonly description: "The name the vetter chooses to be listed under. Self-asserted and unverified: it is not the name on any document, and a client MUST attribute it to the vetter.";
|
|
388
|
+
};
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
/** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
|
|
392
|
+
export declare const RESPONSE_PAYLOAD_SCHEMA: {
|
|
393
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
394
|
+
readonly $ref: "#/$defs/Response";
|
|
395
|
+
readonly $defs: {
|
|
396
|
+
readonly Response: {
|
|
397
|
+
readonly $anchor: "response";
|
|
398
|
+
readonly title: "VTC Vetting — Vetters Profile — response payload";
|
|
399
|
+
readonly description: "The community stored the profile.";
|
|
400
|
+
readonly type: "object";
|
|
401
|
+
readonly additionalProperties: false;
|
|
402
|
+
readonly required: readonly ["listed", "updatedAt"];
|
|
403
|
+
readonly properties: {
|
|
404
|
+
readonly listed: {
|
|
405
|
+
readonly type: "boolean";
|
|
406
|
+
readonly description: "The stored profile's `listed` value.";
|
|
407
|
+
};
|
|
408
|
+
readonly updatedAt: {
|
|
409
|
+
readonly type: "string";
|
|
410
|
+
readonly format: "date-time";
|
|
411
|
+
readonly description: "When the community stored this profile. vtc/vetting/vetters/list returns the same value.";
|
|
412
|
+
};
|
|
413
|
+
};
|
|
414
|
+
};
|
|
415
|
+
readonly Ext: {
|
|
416
|
+
readonly title: "Ext";
|
|
417
|
+
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.";
|
|
418
|
+
readonly type: "object";
|
|
419
|
+
readonly minProperties: 1;
|
|
420
|
+
readonly additionalProperties: true;
|
|
421
|
+
readonly propertyNames: {
|
|
422
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
423
|
+
};
|
|
424
|
+
};
|
|
425
|
+
readonly VetterEvent: {
|
|
426
|
+
readonly title: "VetterEvent";
|
|
427
|
+
readonly type: "object";
|
|
428
|
+
readonly additionalProperties: false;
|
|
429
|
+
readonly required: readonly ["name", "startDate", "endDate"];
|
|
430
|
+
readonly properties: {
|
|
431
|
+
readonly name: {
|
|
432
|
+
readonly type: "string";
|
|
433
|
+
readonly minLength: 1;
|
|
434
|
+
readonly maxLength: 200;
|
|
435
|
+
readonly description: "The event's name, e.g. `Linux Plumbers Conference 2026`.";
|
|
436
|
+
};
|
|
437
|
+
readonly startDate: {
|
|
438
|
+
readonly $ref: "#/$defs/CalendarDate";
|
|
439
|
+
};
|
|
440
|
+
readonly endDate: {
|
|
441
|
+
readonly $ref: "#/$defs/CalendarDate";
|
|
442
|
+
};
|
|
443
|
+
readonly location: {
|
|
444
|
+
readonly $ref: "#/$defs/VetterLocation";
|
|
445
|
+
};
|
|
446
|
+
readonly url: {
|
|
447
|
+
readonly type: "string";
|
|
448
|
+
readonly format: "uri";
|
|
449
|
+
readonly pattern: "^https://";
|
|
450
|
+
readonly maxLength: 2048;
|
|
451
|
+
readonly description: "OPTIONAL. The event's own https page.";
|
|
452
|
+
};
|
|
453
|
+
};
|
|
454
|
+
readonly description: "An event the vetter will attend and vet at. `endDate` is on or after `startDate` and no more than 31 days after it; JSON Schema cannot compare two members, so the community checks both and refuses a violation with `malformedRequest`.";
|
|
455
|
+
};
|
|
456
|
+
readonly VetterLocation: {
|
|
457
|
+
readonly title: "VetterLocation";
|
|
458
|
+
readonly type: "object";
|
|
459
|
+
readonly additionalProperties: false;
|
|
460
|
+
readonly required: readonly ["country"];
|
|
461
|
+
readonly properties: {
|
|
462
|
+
readonly country: {
|
|
463
|
+
readonly $ref: "#/$defs/CountryCode";
|
|
464
|
+
};
|
|
465
|
+
readonly region: {
|
|
466
|
+
readonly $ref: "#/$defs/PlaceName";
|
|
467
|
+
};
|
|
468
|
+
readonly city: {
|
|
469
|
+
readonly $ref: "#/$defs/PlaceName";
|
|
470
|
+
};
|
|
471
|
+
};
|
|
472
|
+
readonly description: "Where a vetter can meet people, as coarse as the vetter chooses: a country, optionally a region, optionally a city. Never a street address.";
|
|
473
|
+
};
|
|
474
|
+
readonly PlaceName: {
|
|
475
|
+
readonly title: "PlaceName";
|
|
476
|
+
readonly type: "string";
|
|
477
|
+
readonly minLength: 1;
|
|
478
|
+
readonly maxLength: 128;
|
|
479
|
+
readonly description: "A region or city name as the vetter writes it. Compared case-insensitively and otherwise exactly.";
|
|
480
|
+
};
|
|
481
|
+
readonly CountryCode: {
|
|
482
|
+
readonly title: "CountryCode";
|
|
483
|
+
readonly type: "string";
|
|
484
|
+
readonly pattern: "^[A-Z]{2}$";
|
|
485
|
+
readonly description: "An ISO 3166-1 alpha-2 country code, upper case, e.g. `DE`.";
|
|
486
|
+
};
|
|
487
|
+
readonly CalendarDate: {
|
|
488
|
+
readonly title: "CalendarDate";
|
|
489
|
+
readonly type: "string";
|
|
490
|
+
readonly format: "date";
|
|
491
|
+
readonly pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$";
|
|
492
|
+
readonly description: "A calendar date, `YYYY-MM-DD` (RFC 3339 full-date), with no time or zone. Compared as a UTC date.";
|
|
493
|
+
};
|
|
494
|
+
readonly VetterContactHint: {
|
|
495
|
+
readonly title: "VetterContactHint";
|
|
496
|
+
readonly type: "string";
|
|
497
|
+
readonly minLength: 1;
|
|
498
|
+
readonly maxLength: 300;
|
|
499
|
+
readonly description: "Vetter-authored free text on how to obtain a ticket from them, e.g. `Find me at the OpenVTC booth`. A hint, not an address a request can be sent to: vetting/request still needs a ticket or an introduction the vetter accepts.";
|
|
500
|
+
};
|
|
501
|
+
readonly VetterAvailability: {
|
|
502
|
+
readonly title: "VetterAvailability";
|
|
503
|
+
readonly type: "string";
|
|
504
|
+
readonly minLength: 1;
|
|
505
|
+
readonly maxLength: 500;
|
|
506
|
+
readonly description: "Vetter-authored free text on when they are available to vet. Attributed to the vetter.";
|
|
507
|
+
};
|
|
508
|
+
readonly VetterAcceptsDocumentation: {
|
|
509
|
+
readonly title: "VetterAcceptsDocumentation";
|
|
510
|
+
readonly type: "array";
|
|
511
|
+
readonly maxItems: 16;
|
|
512
|
+
readonly uniqueItems: true;
|
|
513
|
+
readonly items: {
|
|
514
|
+
readonly $ref: "#/$defs/VettingDocumentation";
|
|
515
|
+
};
|
|
516
|
+
readonly description: "What documentation the vetter relies on, in the same tokens as vetting/request's `acceptsDocumentation` — `passport`, `nationalId`, `driverLicence`, `none`, or another lowerCamelCase class. The vetter's own choice; empty says nothing either way.";
|
|
517
|
+
};
|
|
518
|
+
readonly VettingDocumentation: {
|
|
519
|
+
readonly title: "VettingDocumentation";
|
|
520
|
+
readonly type: "string";
|
|
521
|
+
readonly minLength: 1;
|
|
522
|
+
readonly maxLength: 64;
|
|
523
|
+
readonly pattern: "^[a-z][a-zA-Z0-9]*$";
|
|
524
|
+
readonly description: "A class of documentation, named in lowerCamelCase. Open rather than enumerated, because what documentation a vetter accepts is each vetter's own choice. Well-known values: `passport`, `nationalId`, `driverLicence`, and `none` — the vetter will attest without a document, which is the `priorAcquaintance` case. Only the class ever travels — never a document number, an image, an issuing authority or an expiry date. `none` states a policy (what a vetter accepts); a record of what was relied on expresses 'no document' as an empty list instead.";
|
|
525
|
+
};
|
|
526
|
+
readonly VetterMethods: {
|
|
527
|
+
readonly title: "VetterMethods";
|
|
528
|
+
readonly type: "array";
|
|
529
|
+
readonly minItems: 1;
|
|
530
|
+
readonly maxItems: 3;
|
|
531
|
+
readonly uniqueItems: true;
|
|
532
|
+
readonly items: {
|
|
533
|
+
readonly $ref: "#/$defs/VettingMethod";
|
|
534
|
+
};
|
|
535
|
+
readonly description: "The methods the vetter offers, from `inPerson`, `video`, `priorAcquaintance`.";
|
|
536
|
+
};
|
|
537
|
+
readonly VettingMethod: {
|
|
538
|
+
readonly title: "VettingMethod";
|
|
539
|
+
readonly type: "string";
|
|
540
|
+
readonly enum: readonly ["inPerson", "video", "priorAcquaintance"];
|
|
541
|
+
readonly description: "How the vetter established that the person they checked is the person controlling the applicant's DID. `inPerson` — both people were physically together. `video` — a live, two-way video call. `priorAcquaintance` — the vetter has known or worked with this person over a period, and attests from that knowledge rather than from a document. A method is a description of what happened, not an assurance level: which methods count, and how many of each, is community policy.";
|
|
542
|
+
};
|
|
543
|
+
readonly LanguageTag: {
|
|
544
|
+
readonly title: "LanguageTag";
|
|
545
|
+
readonly type: "string";
|
|
546
|
+
readonly minLength: 2;
|
|
547
|
+
readonly maxLength: 35;
|
|
548
|
+
readonly pattern: "^[A-Za-z]{2,3}(-[A-Za-z0-9]{1,8})*$";
|
|
549
|
+
readonly description: "A BCP 47 language tag, e.g. `en`, `de-AT`. Compared case-insensitively.";
|
|
550
|
+
};
|
|
551
|
+
readonly VetterDisplayName: {
|
|
552
|
+
readonly title: "VetterDisplayName";
|
|
553
|
+
readonly type: "string";
|
|
554
|
+
readonly minLength: 1;
|
|
555
|
+
readonly maxLength: 128;
|
|
556
|
+
readonly description: "The name the vetter chooses to be listed under. Self-asserted and unverified: it is not the name on any document, and a client MUST attribute it to the vetter.";
|
|
557
|
+
};
|
|
558
|
+
};
|
|
559
|
+
};
|
|
560
|
+
/**
|
|
561
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
562
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
563
|
+
* per-specification and cannot be derived from the document alone, and
|
|
564
|
+
* item 2 needs the schema this carries.
|
|
565
|
+
*/
|
|
566
|
+
export declare const SPEC: {
|
|
567
|
+
readonly typeUri: "https://trusttasks.org/spec/vtc/vetting/vetters/profile/0.1";
|
|
568
|
+
readonly isBearer: false;
|
|
569
|
+
readonly isProofRequired: false;
|
|
570
|
+
readonly isRecipientRequired: true;
|
|
571
|
+
readonly isIssuedAtRequired: true;
|
|
572
|
+
readonly payloadSchema: {
|
|
573
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
574
|
+
readonly $id: "https://trusttasks.org/spec/vtc/vetting/vetters/profile/0.1";
|
|
575
|
+
readonly title: "VTC Vetting — Vetters Profile — payload";
|
|
576
|
+
readonly description: "A vetter publishes, replaces or unlists their vetter profile with their community: the languages, coarse location, methods, documentation and events an applicant looking for a vetter can filter on. The payload is the whole profile and replaces whatever the community held. `listed: false` keeps the profile but removes it from vtc/vetting/vetters/list.";
|
|
577
|
+
readonly type: "object";
|
|
578
|
+
readonly additionalProperties: false;
|
|
579
|
+
readonly required: readonly ["listed", "languages", "methods", "acceptsDocumentation", "events"];
|
|
580
|
+
readonly properties: {
|
|
581
|
+
readonly listed: {
|
|
582
|
+
readonly type: "boolean";
|
|
583
|
+
readonly description: "Whether the profile appears in vtc/vetting/vetters/list. `false` keeps it stored and hidden.";
|
|
584
|
+
};
|
|
585
|
+
readonly displayName: {
|
|
586
|
+
readonly $ref: "#/$defs/VetterDisplayName";
|
|
587
|
+
};
|
|
588
|
+
readonly languages: {
|
|
589
|
+
readonly type: "array";
|
|
590
|
+
readonly maxItems: 16;
|
|
591
|
+
readonly uniqueItems: true;
|
|
592
|
+
readonly items: {
|
|
593
|
+
readonly $ref: "#/$defs/LanguageTag";
|
|
594
|
+
};
|
|
595
|
+
readonly description: "BCP 47 tags of the languages the vetter can hold a session in, most preferred first. May be empty.";
|
|
596
|
+
};
|
|
597
|
+
readonly location: {
|
|
598
|
+
readonly $ref: "#/$defs/VetterLocation";
|
|
599
|
+
};
|
|
600
|
+
readonly methods: {
|
|
601
|
+
readonly $ref: "#/$defs/VetterMethods";
|
|
602
|
+
};
|
|
603
|
+
readonly acceptsDocumentation: {
|
|
604
|
+
readonly $ref: "#/$defs/VetterAcceptsDocumentation";
|
|
605
|
+
};
|
|
606
|
+
readonly availability: {
|
|
607
|
+
readonly $ref: "#/$defs/VetterAvailability";
|
|
608
|
+
};
|
|
609
|
+
readonly contactHint: {
|
|
610
|
+
readonly $ref: "#/$defs/VetterContactHint";
|
|
611
|
+
};
|
|
612
|
+
readonly events: {
|
|
613
|
+
readonly type: "array";
|
|
614
|
+
readonly maxItems: 32;
|
|
615
|
+
readonly items: {
|
|
616
|
+
readonly $ref: "#/$defs/VetterEvent";
|
|
617
|
+
};
|
|
618
|
+
readonly description: "Events the vetter will attend and vet at. May be empty. Events that have ended stay stored but are not listed.";
|
|
619
|
+
};
|
|
620
|
+
readonly ext: {
|
|
621
|
+
readonly $ref: "#/$defs/Ext";
|
|
622
|
+
};
|
|
623
|
+
};
|
|
624
|
+
readonly $defs: {
|
|
625
|
+
readonly Response: {
|
|
626
|
+
readonly $anchor: "response";
|
|
627
|
+
readonly title: "VTC Vetting — Vetters Profile — response payload";
|
|
628
|
+
readonly description: "The community stored the profile.";
|
|
629
|
+
readonly type: "object";
|
|
630
|
+
readonly additionalProperties: false;
|
|
631
|
+
readonly required: readonly ["listed", "updatedAt"];
|
|
632
|
+
readonly properties: {
|
|
633
|
+
readonly listed: {
|
|
634
|
+
readonly type: "boolean";
|
|
635
|
+
readonly description: "The stored profile's `listed` value.";
|
|
636
|
+
};
|
|
637
|
+
readonly updatedAt: {
|
|
638
|
+
readonly type: "string";
|
|
639
|
+
readonly format: "date-time";
|
|
640
|
+
readonly description: "When the community stored this profile. vtc/vetting/vetters/list returns the same value.";
|
|
641
|
+
};
|
|
642
|
+
};
|
|
643
|
+
};
|
|
644
|
+
readonly Ext: {
|
|
645
|
+
readonly title: "Ext";
|
|
646
|
+
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.";
|
|
647
|
+
readonly type: "object";
|
|
648
|
+
readonly minProperties: 1;
|
|
649
|
+
readonly additionalProperties: true;
|
|
650
|
+
readonly propertyNames: {
|
|
651
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
652
|
+
};
|
|
653
|
+
};
|
|
654
|
+
readonly VetterEvent: {
|
|
655
|
+
readonly title: "VetterEvent";
|
|
656
|
+
readonly type: "object";
|
|
657
|
+
readonly additionalProperties: false;
|
|
658
|
+
readonly required: readonly ["name", "startDate", "endDate"];
|
|
659
|
+
readonly properties: {
|
|
660
|
+
readonly name: {
|
|
661
|
+
readonly type: "string";
|
|
662
|
+
readonly minLength: 1;
|
|
663
|
+
readonly maxLength: 200;
|
|
664
|
+
readonly description: "The event's name, e.g. `Linux Plumbers Conference 2026`.";
|
|
665
|
+
};
|
|
666
|
+
readonly startDate: {
|
|
667
|
+
readonly $ref: "#/$defs/CalendarDate";
|
|
668
|
+
};
|
|
669
|
+
readonly endDate: {
|
|
670
|
+
readonly $ref: "#/$defs/CalendarDate";
|
|
671
|
+
};
|
|
672
|
+
readonly location: {
|
|
673
|
+
readonly $ref: "#/$defs/VetterLocation";
|
|
674
|
+
};
|
|
675
|
+
readonly url: {
|
|
676
|
+
readonly type: "string";
|
|
677
|
+
readonly format: "uri";
|
|
678
|
+
readonly pattern: "^https://";
|
|
679
|
+
readonly maxLength: 2048;
|
|
680
|
+
readonly description: "OPTIONAL. The event's own https page.";
|
|
681
|
+
};
|
|
682
|
+
};
|
|
683
|
+
readonly description: "An event the vetter will attend and vet at. `endDate` is on or after `startDate` and no more than 31 days after it; JSON Schema cannot compare two members, so the community checks both and refuses a violation with `malformedRequest`.";
|
|
684
|
+
};
|
|
685
|
+
readonly VetterLocation: {
|
|
686
|
+
readonly title: "VetterLocation";
|
|
687
|
+
readonly type: "object";
|
|
688
|
+
readonly additionalProperties: false;
|
|
689
|
+
readonly required: readonly ["country"];
|
|
690
|
+
readonly properties: {
|
|
691
|
+
readonly country: {
|
|
692
|
+
readonly $ref: "#/$defs/CountryCode";
|
|
693
|
+
};
|
|
694
|
+
readonly region: {
|
|
695
|
+
readonly $ref: "#/$defs/PlaceName";
|
|
696
|
+
};
|
|
697
|
+
readonly city: {
|
|
698
|
+
readonly $ref: "#/$defs/PlaceName";
|
|
699
|
+
};
|
|
700
|
+
};
|
|
701
|
+
readonly description: "Where a vetter can meet people, as coarse as the vetter chooses: a country, optionally a region, optionally a city. Never a street address.";
|
|
702
|
+
};
|
|
703
|
+
readonly PlaceName: {
|
|
704
|
+
readonly title: "PlaceName";
|
|
705
|
+
readonly type: "string";
|
|
706
|
+
readonly minLength: 1;
|
|
707
|
+
readonly maxLength: 128;
|
|
708
|
+
readonly description: "A region or city name as the vetter writes it. Compared case-insensitively and otherwise exactly.";
|
|
709
|
+
};
|
|
710
|
+
readonly CountryCode: {
|
|
711
|
+
readonly title: "CountryCode";
|
|
712
|
+
readonly type: "string";
|
|
713
|
+
readonly pattern: "^[A-Z]{2}$";
|
|
714
|
+
readonly description: "An ISO 3166-1 alpha-2 country code, upper case, e.g. `DE`.";
|
|
715
|
+
};
|
|
716
|
+
readonly CalendarDate: {
|
|
717
|
+
readonly title: "CalendarDate";
|
|
718
|
+
readonly type: "string";
|
|
719
|
+
readonly format: "date";
|
|
720
|
+
readonly pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$";
|
|
721
|
+
readonly description: "A calendar date, `YYYY-MM-DD` (RFC 3339 full-date), with no time or zone. Compared as a UTC date.";
|
|
722
|
+
};
|
|
723
|
+
readonly VetterContactHint: {
|
|
724
|
+
readonly title: "VetterContactHint";
|
|
725
|
+
readonly type: "string";
|
|
726
|
+
readonly minLength: 1;
|
|
727
|
+
readonly maxLength: 300;
|
|
728
|
+
readonly description: "Vetter-authored free text on how to obtain a ticket from them, e.g. `Find me at the OpenVTC booth`. A hint, not an address a request can be sent to: vetting/request still needs a ticket or an introduction the vetter accepts.";
|
|
729
|
+
};
|
|
730
|
+
readonly VetterAvailability: {
|
|
731
|
+
readonly title: "VetterAvailability";
|
|
732
|
+
readonly type: "string";
|
|
733
|
+
readonly minLength: 1;
|
|
734
|
+
readonly maxLength: 500;
|
|
735
|
+
readonly description: "Vetter-authored free text on when they are available to vet. Attributed to the vetter.";
|
|
736
|
+
};
|
|
737
|
+
readonly VetterAcceptsDocumentation: {
|
|
738
|
+
readonly title: "VetterAcceptsDocumentation";
|
|
739
|
+
readonly type: "array";
|
|
740
|
+
readonly maxItems: 16;
|
|
741
|
+
readonly uniqueItems: true;
|
|
742
|
+
readonly items: {
|
|
743
|
+
readonly $ref: "#/$defs/VettingDocumentation";
|
|
744
|
+
};
|
|
745
|
+
readonly description: "What documentation the vetter relies on, in the same tokens as vetting/request's `acceptsDocumentation` — `passport`, `nationalId`, `driverLicence`, `none`, or another lowerCamelCase class. The vetter's own choice; empty says nothing either way.";
|
|
746
|
+
};
|
|
747
|
+
readonly VettingDocumentation: {
|
|
748
|
+
readonly title: "VettingDocumentation";
|
|
749
|
+
readonly type: "string";
|
|
750
|
+
readonly minLength: 1;
|
|
751
|
+
readonly maxLength: 64;
|
|
752
|
+
readonly pattern: "^[a-z][a-zA-Z0-9]*$";
|
|
753
|
+
readonly description: "A class of documentation, named in lowerCamelCase. Open rather than enumerated, because what documentation a vetter accepts is each vetter's own choice. Well-known values: `passport`, `nationalId`, `driverLicence`, and `none` — the vetter will attest without a document, which is the `priorAcquaintance` case. Only the class ever travels — never a document number, an image, an issuing authority or an expiry date. `none` states a policy (what a vetter accepts); a record of what was relied on expresses 'no document' as an empty list instead.";
|
|
754
|
+
};
|
|
755
|
+
readonly VetterMethods: {
|
|
756
|
+
readonly title: "VetterMethods";
|
|
757
|
+
readonly type: "array";
|
|
758
|
+
readonly minItems: 1;
|
|
759
|
+
readonly maxItems: 3;
|
|
760
|
+
readonly uniqueItems: true;
|
|
761
|
+
readonly items: {
|
|
762
|
+
readonly $ref: "#/$defs/VettingMethod";
|
|
763
|
+
};
|
|
764
|
+
readonly description: "The methods the vetter offers, from `inPerson`, `video`, `priorAcquaintance`.";
|
|
765
|
+
};
|
|
766
|
+
readonly VettingMethod: {
|
|
767
|
+
readonly title: "VettingMethod";
|
|
768
|
+
readonly type: "string";
|
|
769
|
+
readonly enum: readonly ["inPerson", "video", "priorAcquaintance"];
|
|
770
|
+
readonly description: "How the vetter established that the person they checked is the person controlling the applicant's DID. `inPerson` — both people were physically together. `video` — a live, two-way video call. `priorAcquaintance` — the vetter has known or worked with this person over a period, and attests from that knowledge rather than from a document. A method is a description of what happened, not an assurance level: which methods count, and how many of each, is community policy.";
|
|
771
|
+
};
|
|
772
|
+
readonly LanguageTag: {
|
|
773
|
+
readonly title: "LanguageTag";
|
|
774
|
+
readonly type: "string";
|
|
775
|
+
readonly minLength: 2;
|
|
776
|
+
readonly maxLength: 35;
|
|
777
|
+
readonly pattern: "^[A-Za-z]{2,3}(-[A-Za-z0-9]{1,8})*$";
|
|
778
|
+
readonly description: "A BCP 47 language tag, e.g. `en`, `de-AT`. Compared case-insensitively.";
|
|
779
|
+
};
|
|
780
|
+
readonly VetterDisplayName: {
|
|
781
|
+
readonly title: "VetterDisplayName";
|
|
782
|
+
readonly type: "string";
|
|
783
|
+
readonly minLength: 1;
|
|
784
|
+
readonly maxLength: 128;
|
|
785
|
+
readonly description: "The name the vetter chooses to be listed under. Self-asserted and unverified: it is not the name on any document, and a client MUST attribute it to the vetter.";
|
|
786
|
+
};
|
|
787
|
+
};
|
|
788
|
+
};
|
|
789
|
+
};
|
|
790
|
+
/**
|
|
791
|
+
* SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
|
|
792
|
+
* tracks the *issuer* party's requirement because a response swaps the
|
|
793
|
+
* parties (§7.3 item 5).
|
|
794
|
+
*/
|
|
795
|
+
export declare const RESPONSE_SPEC: {
|
|
796
|
+
readonly typeUri: "https://trusttasks.org/spec/vtc/vetting/vetters/profile/0.1#response";
|
|
797
|
+
readonly isBearer: false;
|
|
798
|
+
readonly isProofRequired: false;
|
|
799
|
+
readonly isRecipientRequired: true;
|
|
800
|
+
readonly isIssuedAtRequired: true;
|
|
801
|
+
readonly payloadSchema: {
|
|
802
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
803
|
+
readonly $ref: "#/$defs/Response";
|
|
804
|
+
readonly $defs: {
|
|
805
|
+
readonly Response: {
|
|
806
|
+
readonly $anchor: "response";
|
|
807
|
+
readonly title: "VTC Vetting — Vetters Profile — response payload";
|
|
808
|
+
readonly description: "The community stored the profile.";
|
|
809
|
+
readonly type: "object";
|
|
810
|
+
readonly additionalProperties: false;
|
|
811
|
+
readonly required: readonly ["listed", "updatedAt"];
|
|
812
|
+
readonly properties: {
|
|
813
|
+
readonly listed: {
|
|
814
|
+
readonly type: "boolean";
|
|
815
|
+
readonly description: "The stored profile's `listed` value.";
|
|
816
|
+
};
|
|
817
|
+
readonly updatedAt: {
|
|
818
|
+
readonly type: "string";
|
|
819
|
+
readonly format: "date-time";
|
|
820
|
+
readonly description: "When the community stored this profile. vtc/vetting/vetters/list returns the same value.";
|
|
821
|
+
};
|
|
822
|
+
};
|
|
823
|
+
};
|
|
824
|
+
readonly Ext: {
|
|
825
|
+
readonly title: "Ext";
|
|
826
|
+
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.";
|
|
827
|
+
readonly type: "object";
|
|
828
|
+
readonly minProperties: 1;
|
|
829
|
+
readonly additionalProperties: true;
|
|
830
|
+
readonly propertyNames: {
|
|
831
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
832
|
+
};
|
|
833
|
+
};
|
|
834
|
+
readonly VetterEvent: {
|
|
835
|
+
readonly title: "VetterEvent";
|
|
836
|
+
readonly type: "object";
|
|
837
|
+
readonly additionalProperties: false;
|
|
838
|
+
readonly required: readonly ["name", "startDate", "endDate"];
|
|
839
|
+
readonly properties: {
|
|
840
|
+
readonly name: {
|
|
841
|
+
readonly type: "string";
|
|
842
|
+
readonly minLength: 1;
|
|
843
|
+
readonly maxLength: 200;
|
|
844
|
+
readonly description: "The event's name, e.g. `Linux Plumbers Conference 2026`.";
|
|
845
|
+
};
|
|
846
|
+
readonly startDate: {
|
|
847
|
+
readonly $ref: "#/$defs/CalendarDate";
|
|
848
|
+
};
|
|
849
|
+
readonly endDate: {
|
|
850
|
+
readonly $ref: "#/$defs/CalendarDate";
|
|
851
|
+
};
|
|
852
|
+
readonly location: {
|
|
853
|
+
readonly $ref: "#/$defs/VetterLocation";
|
|
854
|
+
};
|
|
855
|
+
readonly url: {
|
|
856
|
+
readonly type: "string";
|
|
857
|
+
readonly format: "uri";
|
|
858
|
+
readonly pattern: "^https://";
|
|
859
|
+
readonly maxLength: 2048;
|
|
860
|
+
readonly description: "OPTIONAL. The event's own https page.";
|
|
861
|
+
};
|
|
862
|
+
};
|
|
863
|
+
readonly description: "An event the vetter will attend and vet at. `endDate` is on or after `startDate` and no more than 31 days after it; JSON Schema cannot compare two members, so the community checks both and refuses a violation with `malformedRequest`.";
|
|
864
|
+
};
|
|
865
|
+
readonly VetterLocation: {
|
|
866
|
+
readonly title: "VetterLocation";
|
|
867
|
+
readonly type: "object";
|
|
868
|
+
readonly additionalProperties: false;
|
|
869
|
+
readonly required: readonly ["country"];
|
|
870
|
+
readonly properties: {
|
|
871
|
+
readonly country: {
|
|
872
|
+
readonly $ref: "#/$defs/CountryCode";
|
|
873
|
+
};
|
|
874
|
+
readonly region: {
|
|
875
|
+
readonly $ref: "#/$defs/PlaceName";
|
|
876
|
+
};
|
|
877
|
+
readonly city: {
|
|
878
|
+
readonly $ref: "#/$defs/PlaceName";
|
|
879
|
+
};
|
|
880
|
+
};
|
|
881
|
+
readonly description: "Where a vetter can meet people, as coarse as the vetter chooses: a country, optionally a region, optionally a city. Never a street address.";
|
|
882
|
+
};
|
|
883
|
+
readonly PlaceName: {
|
|
884
|
+
readonly title: "PlaceName";
|
|
885
|
+
readonly type: "string";
|
|
886
|
+
readonly minLength: 1;
|
|
887
|
+
readonly maxLength: 128;
|
|
888
|
+
readonly description: "A region or city name as the vetter writes it. Compared case-insensitively and otherwise exactly.";
|
|
889
|
+
};
|
|
890
|
+
readonly CountryCode: {
|
|
891
|
+
readonly title: "CountryCode";
|
|
892
|
+
readonly type: "string";
|
|
893
|
+
readonly pattern: "^[A-Z]{2}$";
|
|
894
|
+
readonly description: "An ISO 3166-1 alpha-2 country code, upper case, e.g. `DE`.";
|
|
895
|
+
};
|
|
896
|
+
readonly CalendarDate: {
|
|
897
|
+
readonly title: "CalendarDate";
|
|
898
|
+
readonly type: "string";
|
|
899
|
+
readonly format: "date";
|
|
900
|
+
readonly pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$";
|
|
901
|
+
readonly description: "A calendar date, `YYYY-MM-DD` (RFC 3339 full-date), with no time or zone. Compared as a UTC date.";
|
|
902
|
+
};
|
|
903
|
+
readonly VetterContactHint: {
|
|
904
|
+
readonly title: "VetterContactHint";
|
|
905
|
+
readonly type: "string";
|
|
906
|
+
readonly minLength: 1;
|
|
907
|
+
readonly maxLength: 300;
|
|
908
|
+
readonly description: "Vetter-authored free text on how to obtain a ticket from them, e.g. `Find me at the OpenVTC booth`. A hint, not an address a request can be sent to: vetting/request still needs a ticket or an introduction the vetter accepts.";
|
|
909
|
+
};
|
|
910
|
+
readonly VetterAvailability: {
|
|
911
|
+
readonly title: "VetterAvailability";
|
|
912
|
+
readonly type: "string";
|
|
913
|
+
readonly minLength: 1;
|
|
914
|
+
readonly maxLength: 500;
|
|
915
|
+
readonly description: "Vetter-authored free text on when they are available to vet. Attributed to the vetter.";
|
|
916
|
+
};
|
|
917
|
+
readonly VetterAcceptsDocumentation: {
|
|
918
|
+
readonly title: "VetterAcceptsDocumentation";
|
|
919
|
+
readonly type: "array";
|
|
920
|
+
readonly maxItems: 16;
|
|
921
|
+
readonly uniqueItems: true;
|
|
922
|
+
readonly items: {
|
|
923
|
+
readonly $ref: "#/$defs/VettingDocumentation";
|
|
924
|
+
};
|
|
925
|
+
readonly description: "What documentation the vetter relies on, in the same tokens as vetting/request's `acceptsDocumentation` — `passport`, `nationalId`, `driverLicence`, `none`, or another lowerCamelCase class. The vetter's own choice; empty says nothing either way.";
|
|
926
|
+
};
|
|
927
|
+
readonly VettingDocumentation: {
|
|
928
|
+
readonly title: "VettingDocumentation";
|
|
929
|
+
readonly type: "string";
|
|
930
|
+
readonly minLength: 1;
|
|
931
|
+
readonly maxLength: 64;
|
|
932
|
+
readonly pattern: "^[a-z][a-zA-Z0-9]*$";
|
|
933
|
+
readonly description: "A class of documentation, named in lowerCamelCase. Open rather than enumerated, because what documentation a vetter accepts is each vetter's own choice. Well-known values: `passport`, `nationalId`, `driverLicence`, and `none` — the vetter will attest without a document, which is the `priorAcquaintance` case. Only the class ever travels — never a document number, an image, an issuing authority or an expiry date. `none` states a policy (what a vetter accepts); a record of what was relied on expresses 'no document' as an empty list instead.";
|
|
934
|
+
};
|
|
935
|
+
readonly VetterMethods: {
|
|
936
|
+
readonly title: "VetterMethods";
|
|
937
|
+
readonly type: "array";
|
|
938
|
+
readonly minItems: 1;
|
|
939
|
+
readonly maxItems: 3;
|
|
940
|
+
readonly uniqueItems: true;
|
|
941
|
+
readonly items: {
|
|
942
|
+
readonly $ref: "#/$defs/VettingMethod";
|
|
943
|
+
};
|
|
944
|
+
readonly description: "The methods the vetter offers, from `inPerson`, `video`, `priorAcquaintance`.";
|
|
945
|
+
};
|
|
946
|
+
readonly VettingMethod: {
|
|
947
|
+
readonly title: "VettingMethod";
|
|
948
|
+
readonly type: "string";
|
|
949
|
+
readonly enum: readonly ["inPerson", "video", "priorAcquaintance"];
|
|
950
|
+
readonly description: "How the vetter established that the person they checked is the person controlling the applicant's DID. `inPerson` — both people were physically together. `video` — a live, two-way video call. `priorAcquaintance` — the vetter has known or worked with this person over a period, and attests from that knowledge rather than from a document. A method is a description of what happened, not an assurance level: which methods count, and how many of each, is community policy.";
|
|
951
|
+
};
|
|
952
|
+
readonly LanguageTag: {
|
|
953
|
+
readonly title: "LanguageTag";
|
|
954
|
+
readonly type: "string";
|
|
955
|
+
readonly minLength: 2;
|
|
956
|
+
readonly maxLength: 35;
|
|
957
|
+
readonly pattern: "^[A-Za-z]{2,3}(-[A-Za-z0-9]{1,8})*$";
|
|
958
|
+
readonly description: "A BCP 47 language tag, e.g. `en`, `de-AT`. Compared case-insensitively.";
|
|
959
|
+
};
|
|
960
|
+
readonly VetterDisplayName: {
|
|
961
|
+
readonly title: "VetterDisplayName";
|
|
962
|
+
readonly type: "string";
|
|
963
|
+
readonly minLength: 1;
|
|
964
|
+
readonly maxLength: 128;
|
|
965
|
+
readonly description: "The name the vetter chooses to be listed under. Self-asserted and unverified: it is not the name on any document, and a client MUST attribute it to the vetter.";
|
|
966
|
+
};
|
|
967
|
+
};
|
|
968
|
+
};
|
|
969
|
+
};
|
|
970
|
+
//# sourceMappingURL=payload.d.ts.map
|