@openvtc/trust-tasks 0.21.13 → 0.21.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/dist/_shared/components.d.ts +91 -0
  3. package/dist/_shared/components.d.ts.map +1 -1
  4. package/dist/auth/_shared/0.3/session.d.ts +16 -0
  5. package/dist/auth/_shared/0.3/session.d.ts.map +1 -0
  6. package/dist/auth/_shared/0.3/session.js +6 -0
  7. package/dist/auth/_shared/0.3/session.js.map +1 -0
  8. package/dist/auth/authenticate/0.3/payload.d.ts +852 -0
  9. package/dist/auth/authenticate/0.3/payload.d.ts.map +1 -0
  10. package/dist/auth/authenticate/0.3/payload.js +442 -0
  11. package/dist/auth/authenticate/0.3/payload.js.map +1 -0
  12. package/dist/auth/refresh/0.2/payload.d.ts +729 -0
  13. package/dist/auth/refresh/0.2/payload.d.ts.map +1 -0
  14. package/dist/auth/refresh/0.2/payload.js +392 -0
  15. package/dist/auth/refresh/0.2/payload.js.map +1 -0
  16. package/dist/git-ns/_shared/0.5/git-ns.d.ts +16 -0
  17. package/dist/git-ns/_shared/0.5/git-ns.d.ts.map +1 -0
  18. package/dist/git-ns/_shared/0.5/git-ns.js +6 -0
  19. package/dist/git-ns/_shared/0.5/git-ns.js.map +1 -0
  20. package/dist/git-ns/account/list/0.1/payload.d.ts +598 -0
  21. package/dist/git-ns/account/list/0.1/payload.d.ts.map +1 -0
  22. package/dist/git-ns/account/list/0.1/payload.js +317 -0
  23. package/dist/git-ns/account/list/0.1/payload.js.map +1 -0
  24. package/dist/git-ns/activity/list/0.1/payload.d.ts +642 -0
  25. package/dist/git-ns/activity/list/0.1/payload.d.ts.map +1 -0
  26. package/dist/git-ns/activity/list/0.1/payload.js +343 -0
  27. package/dist/git-ns/activity/list/0.1/payload.js.map +1 -0
  28. package/dist/git-ns/bridge/job/list/0.1/payload.d.ts +697 -0
  29. package/dist/git-ns/bridge/job/list/0.1/payload.d.ts.map +1 -0
  30. package/dist/git-ns/bridge/job/list/0.1/payload.js +386 -0
  31. package/dist/git-ns/bridge/job/list/0.1/payload.js.map +1 -0
  32. package/dist/git-ns/projection/show/0.1/payload.d.ts +705 -0
  33. package/dist/git-ns/projection/show/0.1/payload.d.ts.map +1 -0
  34. package/dist/git-ns/projection/show/0.1/payload.js +377 -0
  35. package/dist/git-ns/projection/show/0.1/payload.js.map +1 -0
  36. package/dist/git-ns/right/issued-by-departed/0.1/payload.d.ts +862 -0
  37. package/dist/git-ns/right/issued-by-departed/0.1/payload.d.ts.map +1 -0
  38. package/dist/git-ns/right/issued-by-departed/0.1/payload.js +487 -0
  39. package/dist/git-ns/right/issued-by-departed/0.1/payload.js.map +1 -0
  40. package/dist/git-ns/right/list/0.1/payload.d.ts +773 -0
  41. package/dist/git-ns/right/list/0.1/payload.d.ts.map +1 -0
  42. package/dist/git-ns/right/list/0.1/payload.js +439 -0
  43. package/dist/git-ns/right/list/0.1/payload.js.map +1 -0
  44. package/dist/index.d.ts +12 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +12 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/vtc/relationships/revoke/0.2/payload.d.ts +287 -0
  49. package/dist/vtc/relationships/revoke/0.2/payload.d.ts.map +1 -0
  50. package/dist/vtc/relationships/revoke/0.2/payload.js +159 -0
  51. package/dist/vtc/relationships/revoke/0.2/payload.js.map +1 -0
  52. package/dist/vtc/vetting/vetters/resend/0.2/payload.d.ts +254 -0
  53. package/dist/vtc/vetting/vetters/resend/0.2/payload.d.ts.map +1 -0
  54. package/dist/vtc/vetting/vetters/resend/0.2/payload.js +142 -0
  55. package/dist/vtc/vetting/vetters/resend/0.2/payload.js.map +1 -0
  56. package/package.json +1 -1
  57. package/src/_shared/components.ts +91 -0
  58. package/src/auth/_shared/0.3/session.ts +17 -0
  59. package/src/auth/authenticate/0.3/payload.ts +527 -0
  60. package/src/auth/refresh/0.2/payload.ts +444 -0
  61. package/src/git-ns/_shared/0.5/git-ns.ts +17 -0
  62. package/src/git-ns/account/list/0.1/payload.ts +392 -0
  63. package/src/git-ns/activity/list/0.1/payload.ts +430 -0
  64. package/src/git-ns/bridge/job/list/0.1/payload.ts +490 -0
  65. package/src/git-ns/projection/show/0.1/payload.ts +479 -0
  66. package/src/git-ns/right/issued-by-departed/0.1/payload.ts +550 -0
  67. package/src/git-ns/right/list/0.1/payload.ts +493 -0
  68. package/src/index.ts +12 -0
  69. package/src/vtc/relationships/revoke/0.2/payload.ts +209 -0
  70. package/src/vtc/vetting/vetters/resend/0.2/payload.ts +183 -0
@@ -0,0 +1,705 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/git-ns/projection/show/0.1/payload.schema.json
4
+ */
5
+ import type { Did_GitNsV0_3 as Did, Ext, Resource, Right } from "../../../../_shared/components.js";
6
+ /**
7
+ * A community administrator reads what the VTC has published (and what it still owes) to the Trust Registry for its git namespaces. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.
8
+ */
9
+ export interface GitNamespacesShowTrustRegistryProjectionPayload {
10
+ /**
11
+ * Only published records on this resource or inside it. Absent: every resource.
12
+ */
13
+ resource?: Resource;
14
+ /**
15
+ * Opaque continuation token from a previous response's `nextCursor`. A consumer supplying a `cursor` MUST NOT also change `resource` from the request that produced it — start a fresh query instead.
16
+ */
17
+ cursor?: string;
18
+ /**
19
+ * Maximum published records to return in this page. A VTC clamps to 1..=500 (default 100).
20
+ */
21
+ limit?: number;
22
+ ext?: Ext;
23
+ }
24
+ /**
25
+ * What is published, and how far it is from what the VTC's records currently call for.
26
+ */
27
+ export interface GitNamespacesShowTrustRegistryProjectionResponsePayload {
28
+ /**
29
+ * Whether this VTC can publish at all — a Trust Registry and its own publishing DID are configured. `false`: `published` is only what was last published before publishing was unconfigured, and `pendingChanges` still counts against the VTC's current records.
30
+ */
31
+ registryConfigured: boolean;
32
+ /**
33
+ * Records matching `resource`, as the VTC's own mirror of what it last published, ordered by `resource` then `action` then `entity`.
34
+ */
35
+ published: PublishedRow[];
36
+ /**
37
+ * Continuation token for the next page of `published`, or `null` when this is the last.
38
+ */
39
+ nextCursor?: string | null;
40
+ /**
41
+ * How many records the next reconciliation pass will add, remove or replace to bring the registry into line with the VTC's current rights — across the whole VTC, regardless of `resource` or paging. Zero means the registry already matches.
42
+ */
43
+ pendingChanges: number;
44
+ ext?: Ext;
45
+ }
46
+ /**
47
+ * One record the VTC has published to the Trust Registry.
48
+ */
49
+ export interface PublishedRow {
50
+ /**
51
+ * The DID the record is about — the right's subject.
52
+ */
53
+ entity: Did;
54
+ /**
55
+ * The TRQP action the record is published under.
56
+ */
57
+ action: Right;
58
+ resource: Resource;
59
+ context: Context;
60
+ /**
61
+ * When the VTC last wrote this record to the registry.
62
+ */
63
+ publishedAt: string;
64
+ }
65
+ /**
66
+ * The record's context as published: what the TRQP record has no member of its own for. Not itself governed by this specification — it is the projector's internal shape, carried through unchanged, and a consumer MUST treat unrecognised members as opaque rather than failing on them.
67
+ */
68
+ export interface Context {
69
+ /**
70
+ * The Trust Task type URI the record was published under — this specification's framework constant for a recorded or implied right, or the fixed `git-trust/grant/0.1` URI for a role-derived one.
71
+ */
72
+ framework: string;
73
+ /**
74
+ * Present, and always `roleDerived`, exactly for a v0.1 `[hooks.git-trust] grant_on_role` tuple. Absent for a tuple sourced from a recorded or implied right.
75
+ */
76
+ origin?: "roleDerived";
77
+ /**
78
+ * When the underlying right took effect. Absent for a role-derived tuple, which has no grant time of its own.
79
+ */
80
+ activeFrom?: string;
81
+ /**
82
+ * When the underlying right expires. Absent: no expiry, or the longest of two merged sources' expiries once neither is absent.
83
+ */
84
+ activeTo?: string;
85
+ /**
86
+ * Present when this tuple publishes a right implied by another recorded right (a repository's `git.commit.sign` implied by its `git.repo.own`, or a namespace's implied rights). Names the right that implies it.
87
+ */
88
+ impliedBy?: Right;
89
+ }
90
+ /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
91
+ export type { Did, Ext, Resource, Right };
92
+ /** Trust Task type URI. */
93
+ export declare const TYPE_URI: "https://trusttasks.org/spec/git-ns/projection/show/0.1";
94
+ /** Stable alias for this specification's request payload shape. */
95
+ export type Payload = GitNamespacesShowTrustRegistryProjectionPayload;
96
+ /** Trust Task response type URI (request type URI + "#response"). */
97
+ export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/git-ns/projection/show/0.1#response";
98
+ /** Stable alias for this specification's success-response payload shape. */
99
+ export type Response = GitNamespacesShowTrustRegistryProjectionResponsePayload;
100
+ /**
101
+ * This specification's payload schema, as a value.
102
+ *
103
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
104
+ * rather than only as a `.json` file because TypeScript types are erased
105
+ * at runtime: without a schema a consumer has nothing to validate, and
106
+ * every REQUIRED payload member is optional in practice. Cross-file
107
+ * `$ref`s are already inlined, so it needs no resolver.
108
+ */
109
+ export declare const PAYLOAD_SCHEMA: {
110
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
111
+ readonly $id: "https://trusttasks.org/spec/git-ns/projection/show/0.1";
112
+ readonly title: "Git Namespaces — Show Trust Registry Projection — payload";
113
+ readonly description: "A community administrator reads what the VTC has published (and what it still owes) to the Trust Registry for its git namespaces. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.";
114
+ readonly type: "object";
115
+ readonly additionalProperties: false;
116
+ readonly properties: {
117
+ readonly resource: {
118
+ readonly $ref: "#/$defs/Resource";
119
+ readonly description: "Only published records on this resource or inside it. Absent: every resource.";
120
+ };
121
+ readonly cursor: {
122
+ readonly type: "string";
123
+ readonly description: "Opaque continuation token from a previous response's `nextCursor`. A consumer supplying a `cursor` MUST NOT also change `resource` from the request that produced it — start a fresh query instead.";
124
+ };
125
+ readonly limit: {
126
+ readonly type: "integer";
127
+ readonly minimum: 1;
128
+ readonly maximum: 500;
129
+ readonly description: "Maximum published records to return in this page. A VTC clamps to 1..=500 (default 100).";
130
+ };
131
+ readonly ext: {
132
+ readonly $ref: "#/$defs/Ext";
133
+ };
134
+ };
135
+ readonly $defs: {
136
+ readonly Context: {
137
+ readonly title: "Context";
138
+ readonly description: "The record's context as published: what the TRQP record has no member of its own for. Not itself governed by this specification — it is the projector's internal shape, carried through unchanged, and a consumer MUST treat unrecognised members as opaque rather than failing on them.";
139
+ readonly type: "object";
140
+ readonly additionalProperties: false;
141
+ readonly required: readonly ["framework"];
142
+ readonly properties: {
143
+ readonly framework: {
144
+ readonly type: "string";
145
+ readonly minLength: 1;
146
+ readonly maxLength: 2048;
147
+ readonly description: "The Trust Task type URI the record was published under — this specification's framework constant for a recorded or implied right, or the fixed `git-trust/grant/0.1` URI for a role-derived one.";
148
+ };
149
+ readonly origin: {
150
+ readonly type: "string";
151
+ readonly enum: readonly ["roleDerived"];
152
+ readonly description: "Present, and always `roleDerived`, exactly for a v0.1 `[hooks.git-trust] grant_on_role` tuple. Absent for a tuple sourced from a recorded or implied right.";
153
+ };
154
+ readonly activeFrom: {
155
+ readonly type: "string";
156
+ readonly format: "date-time";
157
+ readonly description: "When the underlying right took effect. Absent for a role-derived tuple, which has no grant time of its own.";
158
+ };
159
+ readonly activeTo: {
160
+ readonly type: "string";
161
+ readonly format: "date-time";
162
+ readonly description: "When the underlying right expires. Absent: no expiry, or the longest of two merged sources' expiries once neither is absent.";
163
+ };
164
+ readonly impliedBy: {
165
+ readonly $ref: "#/$defs/Right";
166
+ readonly description: "Present when this tuple publishes a right implied by another recorded right (a repository's `git.commit.sign` implied by its `git.repo.own`, or a namespace's implied rights). Names the right that implies it.";
167
+ };
168
+ };
169
+ };
170
+ readonly PublishedRow: {
171
+ readonly title: "PublishedRow";
172
+ readonly description: "One record the VTC has published to the Trust Registry.";
173
+ readonly type: "object";
174
+ readonly additionalProperties: false;
175
+ readonly required: readonly ["entity", "action", "resource", "context", "publishedAt"];
176
+ readonly properties: {
177
+ readonly entity: {
178
+ readonly $ref: "#/$defs/Did";
179
+ readonly description: "The DID the record is about — the right's subject.";
180
+ };
181
+ readonly action: {
182
+ readonly $ref: "#/$defs/Right";
183
+ readonly description: "The TRQP action the record is published under.";
184
+ };
185
+ readonly resource: {
186
+ readonly $ref: "#/$defs/Resource";
187
+ };
188
+ readonly context: {
189
+ readonly $ref: "#/$defs/Context";
190
+ };
191
+ readonly publishedAt: {
192
+ readonly type: "string";
193
+ readonly format: "date-time";
194
+ readonly description: "When the VTC last wrote this record to the registry.";
195
+ };
196
+ };
197
+ };
198
+ readonly Response: {
199
+ readonly $anchor: "response";
200
+ readonly title: "Git Namespaces — Show Trust Registry Projection — response payload";
201
+ readonly description: "What is published, and how far it is from what the VTC's records currently call for.";
202
+ readonly type: "object";
203
+ readonly additionalProperties: false;
204
+ readonly required: readonly ["registryConfigured", "published", "pendingChanges"];
205
+ readonly properties: {
206
+ readonly registryConfigured: {
207
+ readonly type: "boolean";
208
+ readonly description: "Whether this VTC can publish at all — a Trust Registry and its own publishing DID are configured. `false`: `published` is only what was last published before publishing was unconfigured, and `pendingChanges` still counts against the VTC's current records.";
209
+ };
210
+ readonly published: {
211
+ readonly type: "array";
212
+ readonly items: {
213
+ readonly $ref: "#/$defs/PublishedRow";
214
+ };
215
+ readonly description: "Records matching `resource`, as the VTC's own mirror of what it last published, ordered by `resource` then `action` then `entity`.";
216
+ };
217
+ readonly nextCursor: {
218
+ readonly type: readonly ["string", "null"];
219
+ readonly description: "Continuation token for the next page of `published`, or `null` when this is the last.";
220
+ };
221
+ readonly pendingChanges: {
222
+ readonly type: "integer";
223
+ readonly minimum: 0;
224
+ readonly description: "How many records the next reconciliation pass will add, remove or replace to bring the registry into line with the VTC's current rights — across the whole VTC, regardless of `resource` or paging. Zero means the registry already matches.";
225
+ };
226
+ readonly ext: {
227
+ readonly $ref: "#/$defs/Ext";
228
+ };
229
+ };
230
+ };
231
+ readonly Ext: {
232
+ readonly title: "Ext";
233
+ 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.";
234
+ readonly type: "object";
235
+ readonly minProperties: 1;
236
+ readonly additionalProperties: true;
237
+ readonly propertyNames: {
238
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
239
+ };
240
+ };
241
+ readonly Resource: {
242
+ readonly title: "Resource";
243
+ readonly description: "A forge-qualified resource: `<forge-host>/<owner>` for a namespace, or `<forge-host>/<owner>/<repo>` for one repository, all lowercase — `github.com/acme`, `github.com/acme/widgets`, `codeberg.org/acme`. The forge is never implied: `acme/widgets` alone is not a resource. Containment is by whole segment: `github.com/acme` contains `github.com/acme/widgets` and does not contain `github.com/acme-labs/x` or `codeberg.org/acme/widgets`.";
244
+ readonly type: "string";
245
+ readonly maxLength: 455;
246
+ readonly pattern: "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+(?:/[a-z0-9_-][a-z0-9._-]{0,99}){1,2}$";
247
+ };
248
+ readonly Right: {
249
+ readonly title: "Right";
250
+ readonly description: "One of the five git rights. Each string is also the TRQP `action` the VTC publishes the right under in its Trust Registry, so it is carried verbatim. `git.ns.admin` and `git.repo.create` apply to a namespace resource; `git.repo.own` and `git.repo.maintain` to a repository resource; `git.commit.sign` to either.";
251
+ readonly type: "string";
252
+ readonly enum: readonly ["git.ns.admin", "git.repo.create", "git.repo.own", "git.repo.maintain", "git.commit.sign"];
253
+ };
254
+ readonly Did: {
255
+ readonly title: "Did";
256
+ readonly description: "A bare DID in the W3C DID Core syntax (§3.1): `did:`, a method name of lowercase letters and digits, `:`, and a method-specific id of colon-separated segments drawn from `A-Z a-z 0-9 . - _` and percent-encoded octets, the last segment non-empty. A DID URL is not a DID: no path, query or fragment (`/`, `?`, `#`), so a verification-method id such as `did:key:z6Mk…#z6Mk…` is refused. Compared by exact string equality — no case folding or percent-decoding. A consumer MUST still treat the value as data: the pattern keeps shell metacharacters, whitespace and quotes out of the wire form, but it does not make a DID safe to splice into a command or markup.";
257
+ readonly type: "string";
258
+ readonly maxLength: 2048;
259
+ readonly pattern: "^did:[a-z0-9]+:(?:(?:[A-Za-z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[A-Za-z0-9._-]|%[0-9A-Fa-f]{2})+$";
260
+ };
261
+ };
262
+ };
263
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
264
+ export declare const RESPONSE_PAYLOAD_SCHEMA: {
265
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
266
+ readonly $ref: "#/$defs/Response";
267
+ readonly $defs: {
268
+ readonly Context: {
269
+ readonly title: "Context";
270
+ readonly description: "The record's context as published: what the TRQP record has no member of its own for. Not itself governed by this specification — it is the projector's internal shape, carried through unchanged, and a consumer MUST treat unrecognised members as opaque rather than failing on them.";
271
+ readonly type: "object";
272
+ readonly additionalProperties: false;
273
+ readonly required: readonly ["framework"];
274
+ readonly properties: {
275
+ readonly framework: {
276
+ readonly type: "string";
277
+ readonly minLength: 1;
278
+ readonly maxLength: 2048;
279
+ readonly description: "The Trust Task type URI the record was published under — this specification's framework constant for a recorded or implied right, or the fixed `git-trust/grant/0.1` URI for a role-derived one.";
280
+ };
281
+ readonly origin: {
282
+ readonly type: "string";
283
+ readonly enum: readonly ["roleDerived"];
284
+ readonly description: "Present, and always `roleDerived`, exactly for a v0.1 `[hooks.git-trust] grant_on_role` tuple. Absent for a tuple sourced from a recorded or implied right.";
285
+ };
286
+ readonly activeFrom: {
287
+ readonly type: "string";
288
+ readonly format: "date-time";
289
+ readonly description: "When the underlying right took effect. Absent for a role-derived tuple, which has no grant time of its own.";
290
+ };
291
+ readonly activeTo: {
292
+ readonly type: "string";
293
+ readonly format: "date-time";
294
+ readonly description: "When the underlying right expires. Absent: no expiry, or the longest of two merged sources' expiries once neither is absent.";
295
+ };
296
+ readonly impliedBy: {
297
+ readonly $ref: "#/$defs/Right";
298
+ readonly description: "Present when this tuple publishes a right implied by another recorded right (a repository's `git.commit.sign` implied by its `git.repo.own`, or a namespace's implied rights). Names the right that implies it.";
299
+ };
300
+ };
301
+ };
302
+ readonly PublishedRow: {
303
+ readonly title: "PublishedRow";
304
+ readonly description: "One record the VTC has published to the Trust Registry.";
305
+ readonly type: "object";
306
+ readonly additionalProperties: false;
307
+ readonly required: readonly ["entity", "action", "resource", "context", "publishedAt"];
308
+ readonly properties: {
309
+ readonly entity: {
310
+ readonly $ref: "#/$defs/Did";
311
+ readonly description: "The DID the record is about — the right's subject.";
312
+ };
313
+ readonly action: {
314
+ readonly $ref: "#/$defs/Right";
315
+ readonly description: "The TRQP action the record is published under.";
316
+ };
317
+ readonly resource: {
318
+ readonly $ref: "#/$defs/Resource";
319
+ };
320
+ readonly context: {
321
+ readonly $ref: "#/$defs/Context";
322
+ };
323
+ readonly publishedAt: {
324
+ readonly type: "string";
325
+ readonly format: "date-time";
326
+ readonly description: "When the VTC last wrote this record to the registry.";
327
+ };
328
+ };
329
+ };
330
+ readonly Response: {
331
+ readonly $anchor: "response";
332
+ readonly title: "Git Namespaces — Show Trust Registry Projection — response payload";
333
+ readonly description: "What is published, and how far it is from what the VTC's records currently call for.";
334
+ readonly type: "object";
335
+ readonly additionalProperties: false;
336
+ readonly required: readonly ["registryConfigured", "published", "pendingChanges"];
337
+ readonly properties: {
338
+ readonly registryConfigured: {
339
+ readonly type: "boolean";
340
+ readonly description: "Whether this VTC can publish at all — a Trust Registry and its own publishing DID are configured. `false`: `published` is only what was last published before publishing was unconfigured, and `pendingChanges` still counts against the VTC's current records.";
341
+ };
342
+ readonly published: {
343
+ readonly type: "array";
344
+ readonly items: {
345
+ readonly $ref: "#/$defs/PublishedRow";
346
+ };
347
+ readonly description: "Records matching `resource`, as the VTC's own mirror of what it last published, ordered by `resource` then `action` then `entity`.";
348
+ };
349
+ readonly nextCursor: {
350
+ readonly type: readonly ["string", "null"];
351
+ readonly description: "Continuation token for the next page of `published`, or `null` when this is the last.";
352
+ };
353
+ readonly pendingChanges: {
354
+ readonly type: "integer";
355
+ readonly minimum: 0;
356
+ readonly description: "How many records the next reconciliation pass will add, remove or replace to bring the registry into line with the VTC's current rights — across the whole VTC, regardless of `resource` or paging. Zero means the registry already matches.";
357
+ };
358
+ readonly ext: {
359
+ readonly $ref: "#/$defs/Ext";
360
+ };
361
+ };
362
+ };
363
+ readonly Ext: {
364
+ readonly title: "Ext";
365
+ 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.";
366
+ readonly type: "object";
367
+ readonly minProperties: 1;
368
+ readonly additionalProperties: true;
369
+ readonly propertyNames: {
370
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
371
+ };
372
+ };
373
+ readonly Resource: {
374
+ readonly title: "Resource";
375
+ readonly description: "A forge-qualified resource: `<forge-host>/<owner>` for a namespace, or `<forge-host>/<owner>/<repo>` for one repository, all lowercase — `github.com/acme`, `github.com/acme/widgets`, `codeberg.org/acme`. The forge is never implied: `acme/widgets` alone is not a resource. Containment is by whole segment: `github.com/acme` contains `github.com/acme/widgets` and does not contain `github.com/acme-labs/x` or `codeberg.org/acme/widgets`.";
376
+ readonly type: "string";
377
+ readonly maxLength: 455;
378
+ readonly pattern: "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+(?:/[a-z0-9_-][a-z0-9._-]{0,99}){1,2}$";
379
+ };
380
+ readonly Right: {
381
+ readonly title: "Right";
382
+ readonly description: "One of the five git rights. Each string is also the TRQP `action` the VTC publishes the right under in its Trust Registry, so it is carried verbatim. `git.ns.admin` and `git.repo.create` apply to a namespace resource; `git.repo.own` and `git.repo.maintain` to a repository resource; `git.commit.sign` to either.";
383
+ readonly type: "string";
384
+ readonly enum: readonly ["git.ns.admin", "git.repo.create", "git.repo.own", "git.repo.maintain", "git.commit.sign"];
385
+ };
386
+ readonly Did: {
387
+ readonly title: "Did";
388
+ readonly description: "A bare DID in the W3C DID Core syntax (§3.1): `did:`, a method name of lowercase letters and digits, `:`, and a method-specific id of colon-separated segments drawn from `A-Z a-z 0-9 . - _` and percent-encoded octets, the last segment non-empty. A DID URL is not a DID: no path, query or fragment (`/`, `?`, `#`), so a verification-method id such as `did:key:z6Mk…#z6Mk…` is refused. Compared by exact string equality — no case folding or percent-decoding. A consumer MUST still treat the value as data: the pattern keeps shell metacharacters, whitespace and quotes out of the wire form, but it does not make a DID safe to splice into a command or markup.";
389
+ readonly type: "string";
390
+ readonly maxLength: 2048;
391
+ readonly pattern: "^did:[a-z0-9]+:(?:(?:[A-Za-z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[A-Za-z0-9._-]|%[0-9A-Fa-f]{2})+$";
392
+ };
393
+ };
394
+ };
395
+ /**
396
+ * SPEC.md §7.2 policy for the request variant, from this specification's
397
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
398
+ * per-specification and cannot be derived from the document alone, and
399
+ * item 2 needs the schema this carries.
400
+ */
401
+ export declare const SPEC: {
402
+ readonly typeUri: "https://trusttasks.org/spec/git-ns/projection/show/0.1";
403
+ readonly isBearer: false;
404
+ readonly isProofRequired: true;
405
+ readonly isRecipientRequired: true;
406
+ readonly isIssuedAtRequired: false;
407
+ readonly payloadSchema: {
408
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
409
+ readonly $id: "https://trusttasks.org/spec/git-ns/projection/show/0.1";
410
+ readonly title: "Git Namespaces — Show Trust Registry Projection — payload";
411
+ readonly description: "A community administrator reads what the VTC has published (and what it still owes) to the Trust Registry for its git namespaces. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.";
412
+ readonly type: "object";
413
+ readonly additionalProperties: false;
414
+ readonly properties: {
415
+ readonly resource: {
416
+ readonly $ref: "#/$defs/Resource";
417
+ readonly description: "Only published records on this resource or inside it. Absent: every resource.";
418
+ };
419
+ readonly cursor: {
420
+ readonly type: "string";
421
+ readonly description: "Opaque continuation token from a previous response's `nextCursor`. A consumer supplying a `cursor` MUST NOT also change `resource` from the request that produced it — start a fresh query instead.";
422
+ };
423
+ readonly limit: {
424
+ readonly type: "integer";
425
+ readonly minimum: 1;
426
+ readonly maximum: 500;
427
+ readonly description: "Maximum published records to return in this page. A VTC clamps to 1..=500 (default 100).";
428
+ };
429
+ readonly ext: {
430
+ readonly $ref: "#/$defs/Ext";
431
+ };
432
+ };
433
+ readonly $defs: {
434
+ readonly Context: {
435
+ readonly title: "Context";
436
+ readonly description: "The record's context as published: what the TRQP record has no member of its own for. Not itself governed by this specification — it is the projector's internal shape, carried through unchanged, and a consumer MUST treat unrecognised members as opaque rather than failing on them.";
437
+ readonly type: "object";
438
+ readonly additionalProperties: false;
439
+ readonly required: readonly ["framework"];
440
+ readonly properties: {
441
+ readonly framework: {
442
+ readonly type: "string";
443
+ readonly minLength: 1;
444
+ readonly maxLength: 2048;
445
+ readonly description: "The Trust Task type URI the record was published under — this specification's framework constant for a recorded or implied right, or the fixed `git-trust/grant/0.1` URI for a role-derived one.";
446
+ };
447
+ readonly origin: {
448
+ readonly type: "string";
449
+ readonly enum: readonly ["roleDerived"];
450
+ readonly description: "Present, and always `roleDerived`, exactly for a v0.1 `[hooks.git-trust] grant_on_role` tuple. Absent for a tuple sourced from a recorded or implied right.";
451
+ };
452
+ readonly activeFrom: {
453
+ readonly type: "string";
454
+ readonly format: "date-time";
455
+ readonly description: "When the underlying right took effect. Absent for a role-derived tuple, which has no grant time of its own.";
456
+ };
457
+ readonly activeTo: {
458
+ readonly type: "string";
459
+ readonly format: "date-time";
460
+ readonly description: "When the underlying right expires. Absent: no expiry, or the longest of two merged sources' expiries once neither is absent.";
461
+ };
462
+ readonly impliedBy: {
463
+ readonly $ref: "#/$defs/Right";
464
+ readonly description: "Present when this tuple publishes a right implied by another recorded right (a repository's `git.commit.sign` implied by its `git.repo.own`, or a namespace's implied rights). Names the right that implies it.";
465
+ };
466
+ };
467
+ };
468
+ readonly PublishedRow: {
469
+ readonly title: "PublishedRow";
470
+ readonly description: "One record the VTC has published to the Trust Registry.";
471
+ readonly type: "object";
472
+ readonly additionalProperties: false;
473
+ readonly required: readonly ["entity", "action", "resource", "context", "publishedAt"];
474
+ readonly properties: {
475
+ readonly entity: {
476
+ readonly $ref: "#/$defs/Did";
477
+ readonly description: "The DID the record is about — the right's subject.";
478
+ };
479
+ readonly action: {
480
+ readonly $ref: "#/$defs/Right";
481
+ readonly description: "The TRQP action the record is published under.";
482
+ };
483
+ readonly resource: {
484
+ readonly $ref: "#/$defs/Resource";
485
+ };
486
+ readonly context: {
487
+ readonly $ref: "#/$defs/Context";
488
+ };
489
+ readonly publishedAt: {
490
+ readonly type: "string";
491
+ readonly format: "date-time";
492
+ readonly description: "When the VTC last wrote this record to the registry.";
493
+ };
494
+ };
495
+ };
496
+ readonly Response: {
497
+ readonly $anchor: "response";
498
+ readonly title: "Git Namespaces — Show Trust Registry Projection — response payload";
499
+ readonly description: "What is published, and how far it is from what the VTC's records currently call for.";
500
+ readonly type: "object";
501
+ readonly additionalProperties: false;
502
+ readonly required: readonly ["registryConfigured", "published", "pendingChanges"];
503
+ readonly properties: {
504
+ readonly registryConfigured: {
505
+ readonly type: "boolean";
506
+ readonly description: "Whether this VTC can publish at all — a Trust Registry and its own publishing DID are configured. `false`: `published` is only what was last published before publishing was unconfigured, and `pendingChanges` still counts against the VTC's current records.";
507
+ };
508
+ readonly published: {
509
+ readonly type: "array";
510
+ readonly items: {
511
+ readonly $ref: "#/$defs/PublishedRow";
512
+ };
513
+ readonly description: "Records matching `resource`, as the VTC's own mirror of what it last published, ordered by `resource` then `action` then `entity`.";
514
+ };
515
+ readonly nextCursor: {
516
+ readonly type: readonly ["string", "null"];
517
+ readonly description: "Continuation token for the next page of `published`, or `null` when this is the last.";
518
+ };
519
+ readonly pendingChanges: {
520
+ readonly type: "integer";
521
+ readonly minimum: 0;
522
+ readonly description: "How many records the next reconciliation pass will add, remove or replace to bring the registry into line with the VTC's current rights — across the whole VTC, regardless of `resource` or paging. Zero means the registry already matches.";
523
+ };
524
+ readonly ext: {
525
+ readonly $ref: "#/$defs/Ext";
526
+ };
527
+ };
528
+ };
529
+ readonly Ext: {
530
+ readonly title: "Ext";
531
+ 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.";
532
+ readonly type: "object";
533
+ readonly minProperties: 1;
534
+ readonly additionalProperties: true;
535
+ readonly propertyNames: {
536
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
537
+ };
538
+ };
539
+ readonly Resource: {
540
+ readonly title: "Resource";
541
+ readonly description: "A forge-qualified resource: `<forge-host>/<owner>` for a namespace, or `<forge-host>/<owner>/<repo>` for one repository, all lowercase — `github.com/acme`, `github.com/acme/widgets`, `codeberg.org/acme`. The forge is never implied: `acme/widgets` alone is not a resource. Containment is by whole segment: `github.com/acme` contains `github.com/acme/widgets` and does not contain `github.com/acme-labs/x` or `codeberg.org/acme/widgets`.";
542
+ readonly type: "string";
543
+ readonly maxLength: 455;
544
+ readonly pattern: "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+(?:/[a-z0-9_-][a-z0-9._-]{0,99}){1,2}$";
545
+ };
546
+ readonly Right: {
547
+ readonly title: "Right";
548
+ readonly description: "One of the five git rights. Each string is also the TRQP `action` the VTC publishes the right under in its Trust Registry, so it is carried verbatim. `git.ns.admin` and `git.repo.create` apply to a namespace resource; `git.repo.own` and `git.repo.maintain` to a repository resource; `git.commit.sign` to either.";
549
+ readonly type: "string";
550
+ readonly enum: readonly ["git.ns.admin", "git.repo.create", "git.repo.own", "git.repo.maintain", "git.commit.sign"];
551
+ };
552
+ readonly Did: {
553
+ readonly title: "Did";
554
+ readonly description: "A bare DID in the W3C DID Core syntax (§3.1): `did:`, a method name of lowercase letters and digits, `:`, and a method-specific id of colon-separated segments drawn from `A-Z a-z 0-9 . - _` and percent-encoded octets, the last segment non-empty. A DID URL is not a DID: no path, query or fragment (`/`, `?`, `#`), so a verification-method id such as `did:key:z6Mk…#z6Mk…` is refused. Compared by exact string equality — no case folding or percent-decoding. A consumer MUST still treat the value as data: the pattern keeps shell metacharacters, whitespace and quotes out of the wire form, but it does not make a DID safe to splice into a command or markup.";
555
+ readonly type: "string";
556
+ readonly maxLength: 2048;
557
+ readonly pattern: "^did:[a-z0-9]+:(?:(?:[A-Za-z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[A-Za-z0-9._-]|%[0-9A-Fa-f]{2})+$";
558
+ };
559
+ };
560
+ };
561
+ };
562
+ /**
563
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
564
+ * tracks the *issuer* party's requirement because a response swaps the
565
+ * parties (§7.3 item 5).
566
+ */
567
+ export declare const RESPONSE_SPEC: {
568
+ readonly typeUri: "https://trusttasks.org/spec/git-ns/projection/show/0.1#response";
569
+ readonly isBearer: false;
570
+ readonly isProofRequired: true;
571
+ readonly isRecipientRequired: true;
572
+ readonly isIssuedAtRequired: false;
573
+ readonly payloadSchema: {
574
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
575
+ readonly $ref: "#/$defs/Response";
576
+ readonly $defs: {
577
+ readonly Context: {
578
+ readonly title: "Context";
579
+ readonly description: "The record's context as published: what the TRQP record has no member of its own for. Not itself governed by this specification — it is the projector's internal shape, carried through unchanged, and a consumer MUST treat unrecognised members as opaque rather than failing on them.";
580
+ readonly type: "object";
581
+ readonly additionalProperties: false;
582
+ readonly required: readonly ["framework"];
583
+ readonly properties: {
584
+ readonly framework: {
585
+ readonly type: "string";
586
+ readonly minLength: 1;
587
+ readonly maxLength: 2048;
588
+ readonly description: "The Trust Task type URI the record was published under — this specification's framework constant for a recorded or implied right, or the fixed `git-trust/grant/0.1` URI for a role-derived one.";
589
+ };
590
+ readonly origin: {
591
+ readonly type: "string";
592
+ readonly enum: readonly ["roleDerived"];
593
+ readonly description: "Present, and always `roleDerived`, exactly for a v0.1 `[hooks.git-trust] grant_on_role` tuple. Absent for a tuple sourced from a recorded or implied right.";
594
+ };
595
+ readonly activeFrom: {
596
+ readonly type: "string";
597
+ readonly format: "date-time";
598
+ readonly description: "When the underlying right took effect. Absent for a role-derived tuple, which has no grant time of its own.";
599
+ };
600
+ readonly activeTo: {
601
+ readonly type: "string";
602
+ readonly format: "date-time";
603
+ readonly description: "When the underlying right expires. Absent: no expiry, or the longest of two merged sources' expiries once neither is absent.";
604
+ };
605
+ readonly impliedBy: {
606
+ readonly $ref: "#/$defs/Right";
607
+ readonly description: "Present when this tuple publishes a right implied by another recorded right (a repository's `git.commit.sign` implied by its `git.repo.own`, or a namespace's implied rights). Names the right that implies it.";
608
+ };
609
+ };
610
+ };
611
+ readonly PublishedRow: {
612
+ readonly title: "PublishedRow";
613
+ readonly description: "One record the VTC has published to the Trust Registry.";
614
+ readonly type: "object";
615
+ readonly additionalProperties: false;
616
+ readonly required: readonly ["entity", "action", "resource", "context", "publishedAt"];
617
+ readonly properties: {
618
+ readonly entity: {
619
+ readonly $ref: "#/$defs/Did";
620
+ readonly description: "The DID the record is about — the right's subject.";
621
+ };
622
+ readonly action: {
623
+ readonly $ref: "#/$defs/Right";
624
+ readonly description: "The TRQP action the record is published under.";
625
+ };
626
+ readonly resource: {
627
+ readonly $ref: "#/$defs/Resource";
628
+ };
629
+ readonly context: {
630
+ readonly $ref: "#/$defs/Context";
631
+ };
632
+ readonly publishedAt: {
633
+ readonly type: "string";
634
+ readonly format: "date-time";
635
+ readonly description: "When the VTC last wrote this record to the registry.";
636
+ };
637
+ };
638
+ };
639
+ readonly Response: {
640
+ readonly $anchor: "response";
641
+ readonly title: "Git Namespaces — Show Trust Registry Projection — response payload";
642
+ readonly description: "What is published, and how far it is from what the VTC's records currently call for.";
643
+ readonly type: "object";
644
+ readonly additionalProperties: false;
645
+ readonly required: readonly ["registryConfigured", "published", "pendingChanges"];
646
+ readonly properties: {
647
+ readonly registryConfigured: {
648
+ readonly type: "boolean";
649
+ readonly description: "Whether this VTC can publish at all — a Trust Registry and its own publishing DID are configured. `false`: `published` is only what was last published before publishing was unconfigured, and `pendingChanges` still counts against the VTC's current records.";
650
+ };
651
+ readonly published: {
652
+ readonly type: "array";
653
+ readonly items: {
654
+ readonly $ref: "#/$defs/PublishedRow";
655
+ };
656
+ readonly description: "Records matching `resource`, as the VTC's own mirror of what it last published, ordered by `resource` then `action` then `entity`.";
657
+ };
658
+ readonly nextCursor: {
659
+ readonly type: readonly ["string", "null"];
660
+ readonly description: "Continuation token for the next page of `published`, or `null` when this is the last.";
661
+ };
662
+ readonly pendingChanges: {
663
+ readonly type: "integer";
664
+ readonly minimum: 0;
665
+ readonly description: "How many records the next reconciliation pass will add, remove or replace to bring the registry into line with the VTC's current rights — across the whole VTC, regardless of `resource` or paging. Zero means the registry already matches.";
666
+ };
667
+ readonly ext: {
668
+ readonly $ref: "#/$defs/Ext";
669
+ };
670
+ };
671
+ };
672
+ readonly Ext: {
673
+ readonly title: "Ext";
674
+ 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.";
675
+ readonly type: "object";
676
+ readonly minProperties: 1;
677
+ readonly additionalProperties: true;
678
+ readonly propertyNames: {
679
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
680
+ };
681
+ };
682
+ readonly Resource: {
683
+ readonly title: "Resource";
684
+ readonly description: "A forge-qualified resource: `<forge-host>/<owner>` for a namespace, or `<forge-host>/<owner>/<repo>` for one repository, all lowercase — `github.com/acme`, `github.com/acme/widgets`, `codeberg.org/acme`. The forge is never implied: `acme/widgets` alone is not a resource. Containment is by whole segment: `github.com/acme` contains `github.com/acme/widgets` and does not contain `github.com/acme-labs/x` or `codeberg.org/acme/widgets`.";
685
+ readonly type: "string";
686
+ readonly maxLength: 455;
687
+ readonly pattern: "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+(?:/[a-z0-9_-][a-z0-9._-]{0,99}){1,2}$";
688
+ };
689
+ readonly Right: {
690
+ readonly title: "Right";
691
+ readonly description: "One of the five git rights. Each string is also the TRQP `action` the VTC publishes the right under in its Trust Registry, so it is carried verbatim. `git.ns.admin` and `git.repo.create` apply to a namespace resource; `git.repo.own` and `git.repo.maintain` to a repository resource; `git.commit.sign` to either.";
692
+ readonly type: "string";
693
+ readonly enum: readonly ["git.ns.admin", "git.repo.create", "git.repo.own", "git.repo.maintain", "git.commit.sign"];
694
+ };
695
+ readonly Did: {
696
+ readonly title: "Did";
697
+ readonly description: "A bare DID in the W3C DID Core syntax (§3.1): `did:`, a method name of lowercase letters and digits, `:`, and a method-specific id of colon-separated segments drawn from `A-Z a-z 0-9 . - _` and percent-encoded octets, the last segment non-empty. A DID URL is not a DID: no path, query or fragment (`/`, `?`, `#`), so a verification-method id such as `did:key:z6Mk…#z6Mk…` is refused. Compared by exact string equality — no case folding or percent-decoding. A consumer MUST still treat the value as data: the pattern keeps shell metacharacters, whitespace and quotes out of the wire form, but it does not make a DID safe to splice into a command or markup.";
698
+ readonly type: "string";
699
+ readonly maxLength: 2048;
700
+ readonly pattern: "^did:[a-z0-9]+:(?:(?:[A-Za-z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[A-Za-z0-9._-]|%[0-9A-Fa-f]{2})+$";
701
+ };
702
+ };
703
+ };
704
+ };
705
+ //# sourceMappingURL=payload.d.ts.map