@openvtc/trust-tasks 0.20.0 → 0.20.2

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.
Files changed (37) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/dist/index.d.ts +6 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +6 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/persona/attribute/get/1.0/payload.d.ts +1221 -0
  7. package/dist/persona/attribute/get/1.0/payload.d.ts.map +1 -0
  8. package/dist/persona/attribute/get/1.0/payload.js +719 -0
  9. package/dist/persona/attribute/get/1.0/payload.js.map +1 -0
  10. package/dist/vetting/attestation/0.1/payload.d.ts +690 -0
  11. package/dist/vetting/attestation/0.1/payload.d.ts.map +1 -0
  12. package/dist/vetting/attestation/0.1/payload.js +374 -0
  13. package/dist/vetting/attestation/0.1/payload.js.map +1 -0
  14. package/dist/vtc/vetting/pcs-challenge/0.1/payload.d.ts +261 -0
  15. package/dist/vtc/vetting/pcs-challenge/0.1/payload.d.ts.map +1 -0
  16. package/dist/vtc/vetting/pcs-challenge/0.1/payload.js +145 -0
  17. package/dist/vtc/vetting/pcs-challenge/0.1/payload.js.map +1 -0
  18. package/dist/vtc/vetting/vetters/event-mode/0.1/payload.d.ts +546 -0
  19. package/dist/vtc/vetting/vetters/event-mode/0.1/payload.d.ts.map +1 -0
  20. package/dist/vtc/vetting/vetters/event-mode/0.1/payload.js +290 -0
  21. package/dist/vtc/vetting/vetters/event-mode/0.1/payload.js.map +1 -0
  22. package/dist/vtc/vetting/vetters/pcs-root/0.1/payload.d.ts +336 -0
  23. package/dist/vtc/vetting/vetters/pcs-root/0.1/payload.d.ts.map +1 -0
  24. package/dist/vtc/vetting/vetters/pcs-root/0.1/payload.js +178 -0
  25. package/dist/vtc/vetting/vetters/pcs-root/0.1/payload.js.map +1 -0
  26. package/dist/vtc/vetting/vetters/pcs-tokens/0.1/payload.d.ts +402 -0
  27. package/dist/vtc/vetting/vetters/pcs-tokens/0.1/payload.d.ts.map +1 -0
  28. package/dist/vtc/vetting/vetters/pcs-tokens/0.1/payload.js +205 -0
  29. package/dist/vtc/vetting/vetters/pcs-tokens/0.1/payload.js.map +1 -0
  30. package/package.json +1 -1
  31. package/src/index.ts +6 -0
  32. package/src/persona/attribute/get/1.0/payload.ts +785 -0
  33. package/src/vetting/attestation/0.1/payload.ts +493 -0
  34. package/src/vtc/vetting/pcs-challenge/0.1/payload.ts +187 -0
  35. package/src/vtc/vetting/vetters/event-mode/0.1/payload.ts +375 -0
  36. package/src/vtc/vetting/vetters/pcs-root/0.1/payload.ts +241 -0
  37. package/src/vtc/vetting/vetters/pcs-tokens/0.1/payload.ts +286 -0
@@ -0,0 +1,546 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/vtc/vetting/vetters/event-mode/0.1/payload.schema.json
4
+ */
5
+ import type { Ext } from "../../../../../_shared/components.js";
6
+ /**
7
+ * A vetter asks to vet at a named event, at one of the rates the community publishes. The community answers where the request stands; it does not answer whether it was granted, because a vetter cannot raise its own cap and the group it would join may not exist yet.
8
+ */
9
+ export interface VTCVettingEventModePayload {
10
+ /**
11
+ * The event, as the community names it. It is the whole anonymity set for anything spent under this event's tokens, so it names a gathering people attend — never one desk, one day or one vetter.
12
+ */
13
+ eventId: string;
14
+ /**
15
+ * One of the tiers the community publishes. A tier is picked from a menu rather than a number being named, so that no vetter's requested rate is itself a distinguishing detail.
16
+ */
17
+ tier: string;
18
+ window: EventWindow;
19
+ ext?: Ext;
20
+ }
21
+ /**
22
+ * The days the event runs. Dates, not timestamps: an hour would say when a vetter expects to be at a desk, and the tokens are day-scale anyway.
23
+ */
24
+ export interface EventWindow {
25
+ /**
26
+ * First day of the event, inclusive.
27
+ */
28
+ startDate: string;
29
+ /**
30
+ * Last day of the event, inclusive. It is not before `startDate`.
31
+ */
32
+ endDate: string;
33
+ }
34
+ /**
35
+ * Where the request stands. `pending` is the ordinary answer to a first request and is not a refusal — a refusal is a `trust-task-error`.
36
+ */
37
+ export interface VTCVettingEventModeResponsePayload {
38
+ /**
39
+ * The event the request names.
40
+ */
41
+ eventId: string;
42
+ /**
43
+ * `pending`: recorded, awaiting an approver and the group floor. `approved`: the event's label is live and this vetter may draw under it.
44
+ */
45
+ state: "pending" | "approved";
46
+ /**
47
+ * The tier recorded for this vetter at this event.
48
+ */
49
+ tier: string;
50
+ window: EventWindow;
51
+ /**
52
+ * How many vetters have asked for this event so far, including this one. A count, never a list: who else is at the event is the anonymity set, and naming its members would hand out the very thing the set exists to hide.
53
+ */
54
+ groupSize: number;
55
+ /**
56
+ * How many vetters this community requires before an event may be approved at all. A one-vetter event is an event key with one holder, which is a name.
57
+ */
58
+ groupFloor: number;
59
+ /**
60
+ * Present when `state` is `approved`: the token label to draw under, for `vtc/vetting/vetters/pcs-tokens`.
61
+ */
62
+ label?: string;
63
+ /**
64
+ * Present when `state` is `approved`: how many tokens a tick under this label yields. It is the tier's rate, and it is the community's cap, not the vetter's request.
65
+ */
66
+ dripPerTick?: number;
67
+ /**
68
+ * Present when `state` is `approved`: the last day this label will be accepted. It is after `window.endDate` by the community's grace period, so an applicant met on the final day still has time to submit.
69
+ */
70
+ closesAfter?: string;
71
+ ext?: Ext;
72
+ }
73
+ /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
74
+ export type { Ext };
75
+ /** Trust Task type URI. */
76
+ export declare const TYPE_URI: "https://trusttasks.org/spec/vtc/vetting/vetters/event-mode/0.1";
77
+ /** Stable alias for this specification's request payload shape. */
78
+ export type Payload = VTCVettingEventModePayload;
79
+ /** Trust Task response type URI (request type URI + "#response"). */
80
+ export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/vtc/vetting/vetters/event-mode/0.1#response";
81
+ /** Stable alias for this specification's success-response payload shape. */
82
+ export type Response = VTCVettingEventModeResponsePayload;
83
+ /**
84
+ * This specification's payload schema, as a value.
85
+ *
86
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
87
+ * rather than only as a `.json` file because TypeScript types are erased
88
+ * at runtime: without a schema a consumer has nothing to validate, and
89
+ * every REQUIRED payload member is optional in practice. Cross-file
90
+ * `$ref`s are already inlined, so it needs no resolver.
91
+ */
92
+ export declare const PAYLOAD_SCHEMA: {
93
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
94
+ readonly $id: "https://trusttasks.org/spec/vtc/vetting/vetters/event-mode/0.1";
95
+ readonly title: "VTC — Vetting Event Mode — payload";
96
+ readonly description: "A vetter asks to vet at a named event, at one of the rates the community publishes. The community answers where the request stands; it does not answer whether it was granted, because a vetter cannot raise its own cap and the group it would join may not exist yet.";
97
+ readonly type: "object";
98
+ readonly additionalProperties: false;
99
+ readonly required: readonly ["eventId", "tier", "window"];
100
+ readonly properties: {
101
+ readonly eventId: {
102
+ readonly type: "string";
103
+ readonly minLength: 1;
104
+ readonly maxLength: 64;
105
+ readonly pattern: "^[a-z0-9]([a-z0-9-]*[a-z0-9])?$";
106
+ readonly description: "The event, as the community names it. It is the whole anonymity set for anything spent under this event's tokens, so it names a gathering people attend — never one desk, one day or one vetter.";
107
+ };
108
+ readonly tier: {
109
+ readonly type: "string";
110
+ readonly minLength: 1;
111
+ readonly maxLength: 64;
112
+ readonly description: "One of the tiers the community publishes. A tier is picked from a menu rather than a number being named, so that no vetter's requested rate is itself a distinguishing detail.";
113
+ };
114
+ readonly window: {
115
+ readonly $ref: "#/$defs/Window";
116
+ };
117
+ readonly ext: {
118
+ readonly $ref: "#/$defs/Ext";
119
+ };
120
+ };
121
+ readonly $defs: {
122
+ readonly Window: {
123
+ readonly title: "Event window";
124
+ readonly type: "object";
125
+ readonly additionalProperties: false;
126
+ readonly required: readonly ["startDate", "endDate"];
127
+ readonly description: "The days the event runs. Dates, not timestamps: an hour would say when a vetter expects to be at a desk, and the tokens are day-scale anyway.";
128
+ readonly properties: {
129
+ readonly startDate: {
130
+ readonly type: "string";
131
+ readonly format: "date";
132
+ readonly description: "First day of the event, inclusive.";
133
+ };
134
+ readonly endDate: {
135
+ readonly type: "string";
136
+ readonly format: "date";
137
+ readonly description: "Last day of the event, inclusive. It is not before `startDate`.";
138
+ };
139
+ };
140
+ };
141
+ readonly Response: {
142
+ readonly $anchor: "response";
143
+ readonly title: "VTC Vetting Event Mode — response payload";
144
+ readonly type: "object";
145
+ readonly additionalProperties: false;
146
+ readonly required: readonly ["eventId", "state", "tier", "window", "groupSize", "groupFloor"];
147
+ readonly description: "Where the request stands. `pending` is the ordinary answer to a first request and is not a refusal — a refusal is a `trust-task-error`.";
148
+ readonly properties: {
149
+ readonly eventId: {
150
+ readonly type: "string";
151
+ readonly minLength: 1;
152
+ readonly maxLength: 64;
153
+ readonly description: "The event the request names.";
154
+ };
155
+ readonly state: {
156
+ readonly type: "string";
157
+ readonly enum: readonly ["pending", "approved"];
158
+ readonly description: "`pending`: recorded, awaiting an approver and the group floor. `approved`: the event's label is live and this vetter may draw under it.";
159
+ };
160
+ readonly tier: {
161
+ readonly type: "string";
162
+ readonly minLength: 1;
163
+ readonly maxLength: 64;
164
+ readonly description: "The tier recorded for this vetter at this event.";
165
+ };
166
+ readonly window: {
167
+ readonly $ref: "#/$defs/Window";
168
+ };
169
+ readonly groupSize: {
170
+ readonly type: "integer";
171
+ readonly minimum: 0;
172
+ readonly description: "How many vetters have asked for this event so far, including this one. A count, never a list: who else is at the event is the anonymity set, and naming its members would hand out the very thing the set exists to hide.";
173
+ };
174
+ readonly groupFloor: {
175
+ readonly type: "integer";
176
+ readonly minimum: 2;
177
+ readonly description: "How many vetters this community requires before an event may be approved at all. A one-vetter event is an event key with one holder, which is a name.";
178
+ };
179
+ readonly label: {
180
+ readonly type: "string";
181
+ readonly minLength: 1;
182
+ readonly maxLength: 128;
183
+ readonly description: "Present when `state` is `approved`: the token label to draw under, for `vtc/vetting/vetters/pcs-tokens`.";
184
+ };
185
+ readonly dripPerTick: {
186
+ readonly type: "integer";
187
+ readonly minimum: 1;
188
+ readonly description: "Present when `state` is `approved`: how many tokens a tick under this label yields. It is the tier's rate, and it is the community's cap, not the vetter's request.";
189
+ };
190
+ readonly closesAfter: {
191
+ readonly type: "string";
192
+ readonly format: "date";
193
+ readonly description: "Present when `state` is `approved`: the last day this label will be accepted. It is after `window.endDate` by the community's grace period, so an applicant met on the final day still has time to submit.";
194
+ };
195
+ readonly ext: {
196
+ readonly $ref: "#/$defs/Ext";
197
+ };
198
+ };
199
+ };
200
+ readonly Ext: {
201
+ readonly title: "Ext";
202
+ 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.";
203
+ readonly type: "object";
204
+ readonly minProperties: 1;
205
+ readonly additionalProperties: true;
206
+ readonly propertyNames: {
207
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
208
+ };
209
+ };
210
+ };
211
+ };
212
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
213
+ export declare const RESPONSE_PAYLOAD_SCHEMA: {
214
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
215
+ readonly $ref: "#/$defs/Response";
216
+ readonly $defs: {
217
+ readonly Window: {
218
+ readonly title: "Event window";
219
+ readonly type: "object";
220
+ readonly additionalProperties: false;
221
+ readonly required: readonly ["startDate", "endDate"];
222
+ readonly description: "The days the event runs. Dates, not timestamps: an hour would say when a vetter expects to be at a desk, and the tokens are day-scale anyway.";
223
+ readonly properties: {
224
+ readonly startDate: {
225
+ readonly type: "string";
226
+ readonly format: "date";
227
+ readonly description: "First day of the event, inclusive.";
228
+ };
229
+ readonly endDate: {
230
+ readonly type: "string";
231
+ readonly format: "date";
232
+ readonly description: "Last day of the event, inclusive. It is not before `startDate`.";
233
+ };
234
+ };
235
+ };
236
+ readonly Response: {
237
+ readonly $anchor: "response";
238
+ readonly title: "VTC Vetting Event Mode — response payload";
239
+ readonly type: "object";
240
+ readonly additionalProperties: false;
241
+ readonly required: readonly ["eventId", "state", "tier", "window", "groupSize", "groupFloor"];
242
+ readonly description: "Where the request stands. `pending` is the ordinary answer to a first request and is not a refusal — a refusal is a `trust-task-error`.";
243
+ readonly properties: {
244
+ readonly eventId: {
245
+ readonly type: "string";
246
+ readonly minLength: 1;
247
+ readonly maxLength: 64;
248
+ readonly description: "The event the request names.";
249
+ };
250
+ readonly state: {
251
+ readonly type: "string";
252
+ readonly enum: readonly ["pending", "approved"];
253
+ readonly description: "`pending`: recorded, awaiting an approver and the group floor. `approved`: the event's label is live and this vetter may draw under it.";
254
+ };
255
+ readonly tier: {
256
+ readonly type: "string";
257
+ readonly minLength: 1;
258
+ readonly maxLength: 64;
259
+ readonly description: "The tier recorded for this vetter at this event.";
260
+ };
261
+ readonly window: {
262
+ readonly $ref: "#/$defs/Window";
263
+ };
264
+ readonly groupSize: {
265
+ readonly type: "integer";
266
+ readonly minimum: 0;
267
+ readonly description: "How many vetters have asked for this event so far, including this one. A count, never a list: who else is at the event is the anonymity set, and naming its members would hand out the very thing the set exists to hide.";
268
+ };
269
+ readonly groupFloor: {
270
+ readonly type: "integer";
271
+ readonly minimum: 2;
272
+ readonly description: "How many vetters this community requires before an event may be approved at all. A one-vetter event is an event key with one holder, which is a name.";
273
+ };
274
+ readonly label: {
275
+ readonly type: "string";
276
+ readonly minLength: 1;
277
+ readonly maxLength: 128;
278
+ readonly description: "Present when `state` is `approved`: the token label to draw under, for `vtc/vetting/vetters/pcs-tokens`.";
279
+ };
280
+ readonly dripPerTick: {
281
+ readonly type: "integer";
282
+ readonly minimum: 1;
283
+ readonly description: "Present when `state` is `approved`: how many tokens a tick under this label yields. It is the tier's rate, and it is the community's cap, not the vetter's request.";
284
+ };
285
+ readonly closesAfter: {
286
+ readonly type: "string";
287
+ readonly format: "date";
288
+ readonly description: "Present when `state` is `approved`: the last day this label will be accepted. It is after `window.endDate` by the community's grace period, so an applicant met on the final day still has time to submit.";
289
+ };
290
+ readonly ext: {
291
+ readonly $ref: "#/$defs/Ext";
292
+ };
293
+ };
294
+ };
295
+ readonly Ext: {
296
+ readonly title: "Ext";
297
+ 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.";
298
+ readonly type: "object";
299
+ readonly minProperties: 1;
300
+ readonly additionalProperties: true;
301
+ readonly propertyNames: {
302
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
303
+ };
304
+ };
305
+ };
306
+ };
307
+ /**
308
+ * SPEC.md §7.2 policy for the request variant, from this specification's
309
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
310
+ * per-specification and cannot be derived from the document alone, and
311
+ * item 2 needs the schema this carries.
312
+ */
313
+ export declare const SPEC: {
314
+ readonly typeUri: "https://trusttasks.org/spec/vtc/vetting/vetters/event-mode/0.1";
315
+ readonly isBearer: false;
316
+ readonly isProofRequired: true;
317
+ readonly isRecipientRequired: true;
318
+ readonly isIssuedAtRequired: true;
319
+ readonly payloadSchema: {
320
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
321
+ readonly $id: "https://trusttasks.org/spec/vtc/vetting/vetters/event-mode/0.1";
322
+ readonly title: "VTC — Vetting Event Mode — payload";
323
+ readonly description: "A vetter asks to vet at a named event, at one of the rates the community publishes. The community answers where the request stands; it does not answer whether it was granted, because a vetter cannot raise its own cap and the group it would join may not exist yet.";
324
+ readonly type: "object";
325
+ readonly additionalProperties: false;
326
+ readonly required: readonly ["eventId", "tier", "window"];
327
+ readonly properties: {
328
+ readonly eventId: {
329
+ readonly type: "string";
330
+ readonly minLength: 1;
331
+ readonly maxLength: 64;
332
+ readonly pattern: "^[a-z0-9]([a-z0-9-]*[a-z0-9])?$";
333
+ readonly description: "The event, as the community names it. It is the whole anonymity set for anything spent under this event's tokens, so it names a gathering people attend — never one desk, one day or one vetter.";
334
+ };
335
+ readonly tier: {
336
+ readonly type: "string";
337
+ readonly minLength: 1;
338
+ readonly maxLength: 64;
339
+ readonly description: "One of the tiers the community publishes. A tier is picked from a menu rather than a number being named, so that no vetter's requested rate is itself a distinguishing detail.";
340
+ };
341
+ readonly window: {
342
+ readonly $ref: "#/$defs/Window";
343
+ };
344
+ readonly ext: {
345
+ readonly $ref: "#/$defs/Ext";
346
+ };
347
+ };
348
+ readonly $defs: {
349
+ readonly Window: {
350
+ readonly title: "Event window";
351
+ readonly type: "object";
352
+ readonly additionalProperties: false;
353
+ readonly required: readonly ["startDate", "endDate"];
354
+ readonly description: "The days the event runs. Dates, not timestamps: an hour would say when a vetter expects to be at a desk, and the tokens are day-scale anyway.";
355
+ readonly properties: {
356
+ readonly startDate: {
357
+ readonly type: "string";
358
+ readonly format: "date";
359
+ readonly description: "First day of the event, inclusive.";
360
+ };
361
+ readonly endDate: {
362
+ readonly type: "string";
363
+ readonly format: "date";
364
+ readonly description: "Last day of the event, inclusive. It is not before `startDate`.";
365
+ };
366
+ };
367
+ };
368
+ readonly Response: {
369
+ readonly $anchor: "response";
370
+ readonly title: "VTC Vetting Event Mode — response payload";
371
+ readonly type: "object";
372
+ readonly additionalProperties: false;
373
+ readonly required: readonly ["eventId", "state", "tier", "window", "groupSize", "groupFloor"];
374
+ readonly description: "Where the request stands. `pending` is the ordinary answer to a first request and is not a refusal — a refusal is a `trust-task-error`.";
375
+ readonly properties: {
376
+ readonly eventId: {
377
+ readonly type: "string";
378
+ readonly minLength: 1;
379
+ readonly maxLength: 64;
380
+ readonly description: "The event the request names.";
381
+ };
382
+ readonly state: {
383
+ readonly type: "string";
384
+ readonly enum: readonly ["pending", "approved"];
385
+ readonly description: "`pending`: recorded, awaiting an approver and the group floor. `approved`: the event's label is live and this vetter may draw under it.";
386
+ };
387
+ readonly tier: {
388
+ readonly type: "string";
389
+ readonly minLength: 1;
390
+ readonly maxLength: 64;
391
+ readonly description: "The tier recorded for this vetter at this event.";
392
+ };
393
+ readonly window: {
394
+ readonly $ref: "#/$defs/Window";
395
+ };
396
+ readonly groupSize: {
397
+ readonly type: "integer";
398
+ readonly minimum: 0;
399
+ readonly description: "How many vetters have asked for this event so far, including this one. A count, never a list: who else is at the event is the anonymity set, and naming its members would hand out the very thing the set exists to hide.";
400
+ };
401
+ readonly groupFloor: {
402
+ readonly type: "integer";
403
+ readonly minimum: 2;
404
+ readonly description: "How many vetters this community requires before an event may be approved at all. A one-vetter event is an event key with one holder, which is a name.";
405
+ };
406
+ readonly label: {
407
+ readonly type: "string";
408
+ readonly minLength: 1;
409
+ readonly maxLength: 128;
410
+ readonly description: "Present when `state` is `approved`: the token label to draw under, for `vtc/vetting/vetters/pcs-tokens`.";
411
+ };
412
+ readonly dripPerTick: {
413
+ readonly type: "integer";
414
+ readonly minimum: 1;
415
+ readonly description: "Present when `state` is `approved`: how many tokens a tick under this label yields. It is the tier's rate, and it is the community's cap, not the vetter's request.";
416
+ };
417
+ readonly closesAfter: {
418
+ readonly type: "string";
419
+ readonly format: "date";
420
+ readonly description: "Present when `state` is `approved`: the last day this label will be accepted. It is after `window.endDate` by the community's grace period, so an applicant met on the final day still has time to submit.";
421
+ };
422
+ readonly ext: {
423
+ readonly $ref: "#/$defs/Ext";
424
+ };
425
+ };
426
+ };
427
+ readonly Ext: {
428
+ readonly title: "Ext";
429
+ 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.";
430
+ readonly type: "object";
431
+ readonly minProperties: 1;
432
+ readonly additionalProperties: true;
433
+ readonly propertyNames: {
434
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
435
+ };
436
+ };
437
+ };
438
+ };
439
+ };
440
+ /**
441
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
442
+ * tracks the *issuer* party's requirement because a response swaps the
443
+ * parties (§7.3 item 5).
444
+ */
445
+ export declare const RESPONSE_SPEC: {
446
+ readonly typeUri: "https://trusttasks.org/spec/vtc/vetting/vetters/event-mode/0.1#response";
447
+ readonly isBearer: false;
448
+ readonly isProofRequired: true;
449
+ readonly isRecipientRequired: true;
450
+ readonly isIssuedAtRequired: true;
451
+ readonly payloadSchema: {
452
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
453
+ readonly $ref: "#/$defs/Response";
454
+ readonly $defs: {
455
+ readonly Window: {
456
+ readonly title: "Event window";
457
+ readonly type: "object";
458
+ readonly additionalProperties: false;
459
+ readonly required: readonly ["startDate", "endDate"];
460
+ readonly description: "The days the event runs. Dates, not timestamps: an hour would say when a vetter expects to be at a desk, and the tokens are day-scale anyway.";
461
+ readonly properties: {
462
+ readonly startDate: {
463
+ readonly type: "string";
464
+ readonly format: "date";
465
+ readonly description: "First day of the event, inclusive.";
466
+ };
467
+ readonly endDate: {
468
+ readonly type: "string";
469
+ readonly format: "date";
470
+ readonly description: "Last day of the event, inclusive. It is not before `startDate`.";
471
+ };
472
+ };
473
+ };
474
+ readonly Response: {
475
+ readonly $anchor: "response";
476
+ readonly title: "VTC Vetting Event Mode — response payload";
477
+ readonly type: "object";
478
+ readonly additionalProperties: false;
479
+ readonly required: readonly ["eventId", "state", "tier", "window", "groupSize", "groupFloor"];
480
+ readonly description: "Where the request stands. `pending` is the ordinary answer to a first request and is not a refusal — a refusal is a `trust-task-error`.";
481
+ readonly properties: {
482
+ readonly eventId: {
483
+ readonly type: "string";
484
+ readonly minLength: 1;
485
+ readonly maxLength: 64;
486
+ readonly description: "The event the request names.";
487
+ };
488
+ readonly state: {
489
+ readonly type: "string";
490
+ readonly enum: readonly ["pending", "approved"];
491
+ readonly description: "`pending`: recorded, awaiting an approver and the group floor. `approved`: the event's label is live and this vetter may draw under it.";
492
+ };
493
+ readonly tier: {
494
+ readonly type: "string";
495
+ readonly minLength: 1;
496
+ readonly maxLength: 64;
497
+ readonly description: "The tier recorded for this vetter at this event.";
498
+ };
499
+ readonly window: {
500
+ readonly $ref: "#/$defs/Window";
501
+ };
502
+ readonly groupSize: {
503
+ readonly type: "integer";
504
+ readonly minimum: 0;
505
+ readonly description: "How many vetters have asked for this event so far, including this one. A count, never a list: who else is at the event is the anonymity set, and naming its members would hand out the very thing the set exists to hide.";
506
+ };
507
+ readonly groupFloor: {
508
+ readonly type: "integer";
509
+ readonly minimum: 2;
510
+ readonly description: "How many vetters this community requires before an event may be approved at all. A one-vetter event is an event key with one holder, which is a name.";
511
+ };
512
+ readonly label: {
513
+ readonly type: "string";
514
+ readonly minLength: 1;
515
+ readonly maxLength: 128;
516
+ readonly description: "Present when `state` is `approved`: the token label to draw under, for `vtc/vetting/vetters/pcs-tokens`.";
517
+ };
518
+ readonly dripPerTick: {
519
+ readonly type: "integer";
520
+ readonly minimum: 1;
521
+ readonly description: "Present when `state` is `approved`: how many tokens a tick under this label yields. It is the tier's rate, and it is the community's cap, not the vetter's request.";
522
+ };
523
+ readonly closesAfter: {
524
+ readonly type: "string";
525
+ readonly format: "date";
526
+ readonly description: "Present when `state` is `approved`: the last day this label will be accepted. It is after `window.endDate` by the community's grace period, so an applicant met on the final day still has time to submit.";
527
+ };
528
+ readonly ext: {
529
+ readonly $ref: "#/$defs/Ext";
530
+ };
531
+ };
532
+ };
533
+ readonly Ext: {
534
+ readonly title: "Ext";
535
+ 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.";
536
+ readonly type: "object";
537
+ readonly minProperties: 1;
538
+ readonly additionalProperties: true;
539
+ readonly propertyNames: {
540
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
541
+ };
542
+ };
543
+ };
544
+ };
545
+ };
546
+ //# sourceMappingURL=payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../../src/vtc/vetting/vetters/event-mode/0.1/payload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sCAAsC,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AACD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AACD;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,SAAS,GAAG,UAAU,CAAC;IAC9B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED,kHAAkH;AAClH,YAAY,EAAE,GAAG,EAAE,CAAC;AAEpB,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,EAAG,gEAAyE,CAAC;AAElG,mEAAmE;AACnE,MAAM,MAAM,OAAO,GAAG,0BAA0B,CAAC;AAEjD,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,EAAG,yEAAkF,CAAC;AAEpH,4EAA4E;AAC5E,MAAM,MAAM,QAAQ,GAAG,kCAAkC,CAAC;AAE1D;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwIjB,CAAC;AAEX,mEAAmE;AACnE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0G1B,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOP,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOhB,CAAC"}