@openvtc/trust-tasks 0.16.8 → 0.16.10

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 (206) hide show
  1. package/CHANGELOG.md +285 -0
  2. package/dist/_shared/components.d.ts +206 -7
  3. package/dist/_shared/components.d.ts.map +1 -1
  4. package/dist/device/list/0.1/payload.d.ts +4 -4
  5. package/dist/device/list/0.1/payload.d.ts.map +1 -1
  6. package/dist/device/list/0.1/payload.js +6 -2
  7. package/dist/device/list/0.1/payload.js.map +1 -1
  8. package/dist/device/list/0.2/payload.d.ts +4 -4
  9. package/dist/device/list/0.2/payload.d.ts.map +1 -1
  10. package/dist/device/list/0.2/payload.js +6 -2
  11. package/dist/device/list/0.2/payload.js.map +1 -1
  12. package/dist/device/register/0.1/payload.d.ts +4 -4
  13. package/dist/device/register/0.1/payload.d.ts.map +1 -1
  14. package/dist/device/register/0.1/payload.js +6 -2
  15. package/dist/device/register/0.1/payload.js.map +1 -1
  16. package/dist/device/register/0.2/payload.d.ts +4 -4
  17. package/dist/device/register/0.2/payload.d.ts.map +1 -1
  18. package/dist/device/register/0.2/payload.js +6 -2
  19. package/dist/device/register/0.2/payload.js.map +1 -1
  20. package/dist/index.d.ts +31 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +31 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/persona/_shared/0.1/persona-record.d.ts +22 -0
  25. package/dist/persona/_shared/0.1/persona-record.d.ts.map +1 -0
  26. package/dist/persona/_shared/0.1/persona-record.js +6 -0
  27. package/dist/persona/_shared/0.1/persona-record.js.map +1 -0
  28. package/dist/persona/attribute/delete/1.0/payload.d.ts +351 -0
  29. package/dist/persona/attribute/delete/1.0/payload.d.ts.map +1 -0
  30. package/dist/persona/attribute/delete/1.0/payload.js +188 -0
  31. package/dist/persona/attribute/delete/1.0/payload.js.map +1 -0
  32. package/dist/persona/attribute/list/1.0/payload.d.ts +895 -0
  33. package/dist/persona/attribute/list/1.0/payload.d.ts.map +1 -0
  34. package/dist/persona/attribute/list/1.0/payload.js +532 -0
  35. package/dist/persona/attribute/list/1.0/payload.js.map +1 -0
  36. package/dist/persona/attribute/put/1.0/payload.d.ts +829 -0
  37. package/dist/persona/attribute/put/1.0/payload.d.ts.map +1 -0
  38. package/dist/persona/attribute/put/1.0/payload.js +487 -0
  39. package/dist/persona/attribute/put/1.0/payload.js.map +1 -0
  40. package/dist/persona/binding/get/1.0/payload.d.ts +382 -0
  41. package/dist/persona/binding/get/1.0/payload.d.ts.map +1 -0
  42. package/dist/persona/binding/get/1.0/payload.js +206 -0
  43. package/dist/persona/binding/get/1.0/payload.js.map +1 -0
  44. package/dist/persona/binding/list/1.0/payload.d.ts +387 -0
  45. package/dist/persona/binding/list/1.0/payload.d.ts.map +1 -0
  46. package/dist/persona/binding/list/1.0/payload.js +210 -0
  47. package/dist/persona/binding/list/1.0/payload.js.map +1 -0
  48. package/dist/persona/binding/set/1.0/payload.d.ts +545 -0
  49. package/dist/persona/binding/set/1.0/payload.d.ts.map +1 -0
  50. package/dist/persona/binding/set/1.0/payload.js +302 -0
  51. package/dist/persona/binding/set/1.0/payload.js.map +1 -0
  52. package/dist/persona/contact/delete/1.0/payload.d.ts +313 -0
  53. package/dist/persona/contact/delete/1.0/payload.d.ts.map +1 -0
  54. package/dist/persona/contact/delete/1.0/payload.js +174 -0
  55. package/dist/persona/contact/delete/1.0/payload.js.map +1 -0
  56. package/dist/persona/contact/get/1.0/payload.d.ts +1027 -0
  57. package/dist/persona/contact/get/1.0/payload.d.ts.map +1 -0
  58. package/dist/persona/contact/get/1.0/payload.js +606 -0
  59. package/dist/persona/contact/get/1.0/payload.js.map +1 -0
  60. package/dist/persona/contact/list/1.0/payload.d.ts +490 -0
  61. package/dist/persona/contact/list/1.0/payload.d.ts.map +1 -0
  62. package/dist/persona/contact/list/1.0/payload.js +262 -0
  63. package/dist/persona/contact/list/1.0/payload.js.map +1 -0
  64. package/dist/persona/contact/put/1.0/payload.d.ts +885 -0
  65. package/dist/persona/contact/put/1.0/payload.d.ts.map +1 -0
  66. package/dist/persona/contact/put/1.0/payload.js +518 -0
  67. package/dist/persona/contact/put/1.0/payload.js.map +1 -0
  68. package/dist/persona/correlation/analyze/1.0/payload.d.ts +648 -0
  69. package/dist/persona/correlation/analyze/1.0/payload.d.ts.map +1 -0
  70. package/dist/persona/correlation/analyze/1.0/payload.js +338 -0
  71. package/dist/persona/correlation/analyze/1.0/payload.js.map +1 -0
  72. package/dist/persona/disclosure/history/1.0/payload.d.ts +639 -0
  73. package/dist/persona/disclosure/history/1.0/payload.d.ts.map +1 -0
  74. package/dist/persona/disclosure/history/1.0/payload.js +339 -0
  75. package/dist/persona/disclosure/history/1.0/payload.js.map +1 -0
  76. package/dist/persona/disclosure/present/1.0/payload.d.ts +400 -0
  77. package/dist/persona/disclosure/present/1.0/payload.d.ts.map +1 -0
  78. package/dist/persona/disclosure/present/1.0/payload.js +211 -0
  79. package/dist/persona/disclosure/present/1.0/payload.js.map +1 -0
  80. package/dist/persona/disclosure/preview/1.0/payload.d.ts +858 -0
  81. package/dist/persona/disclosure/preview/1.0/payload.d.ts.map +1 -0
  82. package/dist/persona/disclosure/preview/1.0/payload.js +480 -0
  83. package/dist/persona/disclosure/preview/1.0/payload.js.map +1 -0
  84. package/dist/persona/local/binding/set/1.0/payload.d.ts +394 -0
  85. package/dist/persona/local/binding/set/1.0/payload.d.ts.map +1 -0
  86. package/dist/persona/local/binding/set/1.0/payload.js +226 -0
  87. package/dist/persona/local/binding/set/1.0/payload.js.map +1 -0
  88. package/dist/persona/local/profile/delete/1.0/payload.d.ts +311 -0
  89. package/dist/persona/local/profile/delete/1.0/payload.d.ts.map +1 -0
  90. package/dist/persona/local/profile/delete/1.0/payload.js +173 -0
  91. package/dist/persona/local/profile/delete/1.0/payload.js.map +1 -0
  92. package/dist/persona/local/profile/get/1.0/payload.d.ts +368 -0
  93. package/dist/persona/local/profile/get/1.0/payload.d.ts.map +1 -0
  94. package/dist/persona/local/profile/get/1.0/payload.js +210 -0
  95. package/dist/persona/local/profile/get/1.0/payload.js.map +1 -0
  96. package/dist/persona/local/profile/list/1.0/payload.d.ts +387 -0
  97. package/dist/persona/local/profile/list/1.0/payload.d.ts.map +1 -0
  98. package/dist/persona/local/profile/list/1.0/payload.js +214 -0
  99. package/dist/persona/local/profile/list/1.0/payload.js.map +1 -0
  100. package/dist/persona/local/profile/put/1.0/payload.d.ts +545 -0
  101. package/dist/persona/local/profile/put/1.0/payload.d.ts.map +1 -0
  102. package/dist/persona/local/profile/put/1.0/payload.js +315 -0
  103. package/dist/persona/local/profile/put/1.0/payload.js.map +1 -0
  104. package/dist/persona/profile/delete/1.0/payload.d.ts +350 -0
  105. package/dist/persona/profile/delete/1.0/payload.d.ts.map +1 -0
  106. package/dist/persona/profile/delete/1.0/payload.js +189 -0
  107. package/dist/persona/profile/delete/1.0/payload.js.map +1 -0
  108. package/dist/persona/profile/get/1.0/payload.d.ts +1307 -0
  109. package/dist/persona/profile/get/1.0/payload.d.ts.map +1 -0
  110. package/dist/persona/profile/get/1.0/payload.js +804 -0
  111. package/dist/persona/profile/get/1.0/payload.js.map +1 -0
  112. package/dist/persona/profile/list/1.0/payload.d.ts +1120 -0
  113. package/dist/persona/profile/list/1.0/payload.d.ts.map +1 -0
  114. package/dist/persona/profile/list/1.0/payload.js +680 -0
  115. package/dist/persona/profile/list/1.0/payload.js.map +1 -0
  116. package/dist/persona/profile/put/1.0/payload.d.ts +1115 -0
  117. package/dist/persona/profile/put/1.0/payload.d.ts.map +1 -0
  118. package/dist/persona/profile/put/1.0/payload.js +675 -0
  119. package/dist/persona/profile/put/1.0/payload.js.map +1 -0
  120. package/dist/persona/renderers/list/1.0/payload.d.ts +362 -0
  121. package/dist/persona/renderers/list/1.0/payload.d.ts.map +1 -0
  122. package/dist/persona/renderers/list/1.0/payload.js +197 -0
  123. package/dist/persona/renderers/list/1.0/payload.js.map +1 -0
  124. package/dist/rooms/keys/commit/0.1/payload.d.ts +266 -0
  125. package/dist/rooms/keys/commit/0.1/payload.d.ts.map +1 -0
  126. package/dist/rooms/keys/commit/0.1/payload.js +146 -0
  127. package/dist/rooms/keys/commit/0.1/payload.js.map +1 -0
  128. package/dist/rooms/keys/key-package/0.1/payload.d.ts +272 -0
  129. package/dist/rooms/keys/key-package/0.1/payload.d.ts.map +1 -0
  130. package/dist/rooms/keys/key-package/0.1/payload.js +147 -0
  131. package/dist/rooms/keys/key-package/0.1/payload.js.map +1 -0
  132. package/dist/rooms/keys/welcome/0.1/payload.d.ts +276 -0
  133. package/dist/rooms/keys/welcome/0.1/payload.d.ts.map +1 -0
  134. package/dist/rooms/keys/welcome/0.1/payload.js +148 -0
  135. package/dist/rooms/keys/welcome/0.1/payload.js.map +1 -0
  136. package/dist/rooms/owner/claim/0.1/payload.d.ts +391 -0
  137. package/dist/rooms/owner/claim/0.1/payload.d.ts.map +1 -0
  138. package/dist/rooms/owner/claim/0.1/payload.js +214 -0
  139. package/dist/rooms/owner/claim/0.1/payload.js.map +1 -0
  140. package/dist/rooms/owner/transfer/0.1/payload.d.ts +391 -0
  141. package/dist/rooms/owner/transfer/0.1/payload.d.ts.map +1 -0
  142. package/dist/rooms/owner/transfer/0.1/payload.js +214 -0
  143. package/dist/rooms/owner/transfer/0.1/payload.js.map +1 -0
  144. package/dist/rooms/records/curate/0.1/payload.d.ts +500 -0
  145. package/dist/rooms/records/curate/0.1/payload.d.ts.map +1 -0
  146. package/dist/rooms/records/curate/0.1/payload.js +277 -0
  147. package/dist/rooms/records/curate/0.1/payload.js.map +1 -0
  148. package/dist/vta/_shared/0.1/app-state-record.d.ts +1 -1
  149. package/dist/vta/_shared/0.1/app-state-record.d.ts.map +1 -1
  150. package/dist/vta/app-state/delete/1.0/payload.d.ts +1 -1
  151. package/dist/vta/app-state/delete/1.0/payload.d.ts.map +1 -1
  152. package/dist/vta/app-state/get/1.0/payload.d.ts +1 -1
  153. package/dist/vta/app-state/get/1.0/payload.d.ts.map +1 -1
  154. package/dist/vta/app-state/get-many/1.0/payload.d.ts +1 -1
  155. package/dist/vta/app-state/get-many/1.0/payload.d.ts.map +1 -1
  156. package/dist/vta/app-state/list/1.0/payload.d.ts +1 -1
  157. package/dist/vta/app-state/list/1.0/payload.d.ts.map +1 -1
  158. package/dist/vta/app-state/put/1.0/payload.d.ts +1 -1
  159. package/dist/vta/app-state/put/1.0/payload.d.ts.map +1 -1
  160. package/dist/vta/app-state/put-many/1.0/payload.d.ts +1 -1
  161. package/dist/vta/app-state/put-many/1.0/payload.d.ts.map +1 -1
  162. package/package.json +1 -1
  163. package/src/_shared/components.ts +217 -7
  164. package/src/device/list/0.1/payload.ts +6 -2
  165. package/src/device/list/0.2/payload.ts +6 -2
  166. package/src/device/register/0.1/payload.ts +6 -2
  167. package/src/device/register/0.2/payload.ts +6 -2
  168. package/src/index.ts +31 -0
  169. package/src/persona/_shared/0.1/persona-record.ts +23 -0
  170. package/src/persona/attribute/delete/1.0/payload.ts +238 -0
  171. package/src/persona/attribute/list/1.0/payload.ts +590 -0
  172. package/src/persona/attribute/put/1.0/payload.ts +559 -0
  173. package/src/persona/binding/get/1.0/payload.ts +257 -0
  174. package/src/persona/binding/list/1.0/payload.ts +260 -0
  175. package/src/persona/binding/set/1.0/payload.ts +370 -0
  176. package/src/persona/contact/delete/1.0/payload.ts +216 -0
  177. package/src/persona/contact/get/1.0/payload.ts +662 -0
  178. package/src/persona/contact/list/1.0/payload.ts +323 -0
  179. package/src/persona/contact/put/1.0/payload.ts +580 -0
  180. package/src/persona/correlation/analyze/1.0/payload.ts +466 -0
  181. package/src/persona/disclosure/history/1.0/payload.ts +415 -0
  182. package/src/persona/disclosure/present/1.0/payload.ts +274 -0
  183. package/src/persona/disclosure/preview/1.0/payload.ts +597 -0
  184. package/src/persona/local/binding/set/1.0/payload.ts +267 -0
  185. package/src/persona/local/profile/delete/1.0/payload.ts +215 -0
  186. package/src/persona/local/profile/get/1.0/payload.ts +251 -0
  187. package/src/persona/local/profile/list/1.0/payload.ts +260 -0
  188. package/src/persona/local/profile/put/1.0/payload.ts +373 -0
  189. package/src/persona/profile/delete/1.0/payload.ts +236 -0
  190. package/src/persona/profile/get/1.0/payload.ts +846 -0
  191. package/src/persona/profile/list/1.0/payload.ts +723 -0
  192. package/src/persona/profile/put/1.0/payload.ts +741 -0
  193. package/src/persona/renderers/list/1.0/payload.ts +248 -0
  194. package/src/rooms/keys/commit/0.1/payload.ts +195 -0
  195. package/src/rooms/keys/key-package/0.1/payload.ts +196 -0
  196. package/src/rooms/keys/welcome/0.1/payload.ts +201 -0
  197. package/src/rooms/owner/claim/0.1/payload.ts +268 -0
  198. package/src/rooms/owner/transfer/0.1/payload.ts +268 -0
  199. package/src/rooms/records/curate/0.1/payload.ts +357 -0
  200. package/src/vta/_shared/0.1/app-state-record.ts +1 -1
  201. package/src/vta/app-state/delete/1.0/payload.ts +1 -1
  202. package/src/vta/app-state/get/1.0/payload.ts +1 -1
  203. package/src/vta/app-state/get-many/1.0/payload.ts +1 -1
  204. package/src/vta/app-state/list/1.0/payload.ts +1 -1
  205. package/src/vta/app-state/put/1.0/payload.ts +1 -1
  206. package/src/vta/app-state/put-many/1.0/payload.ts +1 -1
@@ -0,0 +1,639 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/persona/disclosure/history/1.0/payload.schema.json
4
+ */
5
+ import type { ClaimType, Ext, ProofRung, Ulid } from "../../../../_shared/components.js";
6
+ /**
7
+ * What the holder has shared, with whom, when, and — because the pool sits above the context boundary — which contexts a given attribute has reached.
8
+ */
9
+ export interface PersonaDisclosureHistoryPayload {
10
+ /**
11
+ * Narrow to one context. Omit to query across all of them, which only the holder can do and which is the whole reason this task is holder-authorized.
12
+ */
13
+ contextId?: string;
14
+ /**
15
+ * Narrow to one verifier — 'what does this site have of mine'.
16
+ */
17
+ verifierDid?: string;
18
+ /**
19
+ * Narrow to one claim type — 'where has my home address gone'. Answering this is the obligation the agent-scoped pool takes on: having put the holder's facts above the context boundary, it owes them an account of which contexts each fact has reached.
20
+ */
21
+ attributeType?: ClaimType;
22
+ since?: string;
23
+ cursor?: string;
24
+ limit?: number;
25
+ ext?: Ext;
26
+ }
27
+ /**
28
+ * Success response to persona/disclosure/history. Type https://trusttasks.org/spec/persona/disclosure/history/1.0#response. Records name claim TYPES and never values: the history says what kind of thing went where, and re-storing the values would double the exposure it exists to describe.
29
+ */
30
+ export interface PersonaDisclosureHistoryResponsePayload {
31
+ /**
32
+ * @maxItems 500
33
+ */
34
+ disclosures: {
35
+ disclosureId: Ulid;
36
+ contextId: string;
37
+ verifierDid: string;
38
+ personaDid: string;
39
+ /**
40
+ * The pairwise identifier the disclosure was made under, so a holder can tell two disclosures to the same verifier apart.
41
+ */
42
+ subject?: string;
43
+ /**
44
+ * @maxItems 128
45
+ */
46
+ claimTypes: ClaimType[];
47
+ /**
48
+ * Positionally aligned with claimTypes. A holder reviewing history needs to know not only what went but how strongly it was hidden — the same claim type at two rungs is two very different disclosures.
49
+ *
50
+ * @maxItems 128
51
+ */
52
+ rungs?: ProofRung[];
53
+ purpose?: string;
54
+ renderer?: string;
55
+ /**
56
+ * Present when the disclosure minted a durable credential — the one kind of disclosure that is still live and still revocable, which is why the history names it.
57
+ */
58
+ durableCredentialId?: string;
59
+ disclosedAt: string;
60
+ }[];
61
+ nextCursor?: string;
62
+ ext?: Ext;
63
+ }
64
+ /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
65
+ export type { ClaimType, Ext, ProofRung, Ulid };
66
+ /** Trust Task type URI. */
67
+ export declare const TYPE_URI: "https://trusttasks.org/spec/persona/disclosure/history/1.0";
68
+ /** Stable alias for this specification's request payload shape. */
69
+ export type Payload = PersonaDisclosureHistoryPayload;
70
+ /** Trust Task response type URI (request type URI + "#response"). */
71
+ export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/persona/disclosure/history/1.0#response";
72
+ /** Stable alias for this specification's success-response payload shape. */
73
+ export type Response = PersonaDisclosureHistoryResponsePayload;
74
+ /**
75
+ * This specification's payload schema, as a value.
76
+ *
77
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
78
+ * rather than only as a `.json` file because TypeScript types are erased
79
+ * at runtime: without a schema a consumer has nothing to validate, and
80
+ * every REQUIRED payload member is optional in practice. Cross-file
81
+ * `$ref`s are already inlined, so it needs no resolver.
82
+ */
83
+ export declare const PAYLOAD_SCHEMA: {
84
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
85
+ readonly $id: "https://trusttasks.org/spec/persona/disclosure/history/1.0";
86
+ readonly title: "Persona Disclosure History — payload";
87
+ readonly description: "What the holder has shared, with whom, when, and — because the pool sits above the context boundary — which contexts a given attribute has reached.";
88
+ readonly type: "object";
89
+ readonly additionalProperties: false;
90
+ readonly properties: {
91
+ readonly contextId: {
92
+ readonly type: "string";
93
+ readonly minLength: 1;
94
+ readonly description: "Narrow to one context. Omit to query across all of them, which only the holder can do and which is the whole reason this task is holder-authorized.";
95
+ };
96
+ readonly verifierDid: {
97
+ readonly type: "string";
98
+ readonly maxLength: 2048;
99
+ readonly description: "Narrow to one verifier — 'what does this site have of mine'.";
100
+ };
101
+ readonly attributeType: {
102
+ readonly $ref: "#/$defs/ClaimType";
103
+ readonly description: "Narrow to one claim type — 'where has my home address gone'. Answering this is the obligation the agent-scoped pool takes on: having put the holder's facts above the context boundary, it owes them an account of which contexts each fact has reached.";
104
+ };
105
+ readonly since: {
106
+ readonly type: "string";
107
+ readonly format: "date-time";
108
+ };
109
+ readonly cursor: {
110
+ readonly type: "string";
111
+ readonly maxLength: 4096;
112
+ };
113
+ readonly limit: {
114
+ readonly type: "integer";
115
+ readonly minimum: 1;
116
+ readonly maximum: 500;
117
+ readonly default: 100;
118
+ };
119
+ readonly ext: {
120
+ readonly $ref: "#/$defs/Ext";
121
+ };
122
+ };
123
+ readonly $defs: {
124
+ readonly Response: {
125
+ readonly $anchor: "response";
126
+ readonly title: "Persona Disclosure History — response payload";
127
+ readonly description: "Success response to persona/disclosure/history. Type https://trusttasks.org/spec/persona/disclosure/history/1.0#response. Records name claim TYPES and never values: the history says what kind of thing went where, and re-storing the values would double the exposure it exists to describe.";
128
+ readonly type: "object";
129
+ readonly additionalProperties: false;
130
+ readonly required: readonly ["disclosures"];
131
+ readonly properties: {
132
+ readonly disclosures: {
133
+ readonly type: "array";
134
+ readonly maxItems: 500;
135
+ readonly items: {
136
+ readonly type: "object";
137
+ readonly additionalProperties: false;
138
+ readonly required: readonly ["disclosureId", "contextId", "verifierDid", "personaDid", "claimTypes", "disclosedAt"];
139
+ readonly properties: {
140
+ readonly disclosureId: {
141
+ readonly $ref: "#/$defs/Ulid";
142
+ };
143
+ readonly contextId: {
144
+ readonly type: "string";
145
+ readonly minLength: 1;
146
+ };
147
+ readonly verifierDid: {
148
+ readonly type: "string";
149
+ readonly minLength: 1;
150
+ };
151
+ readonly personaDid: {
152
+ readonly type: "string";
153
+ readonly minLength: 1;
154
+ };
155
+ readonly subject: {
156
+ readonly type: "string";
157
+ readonly description: "The pairwise identifier the disclosure was made under, so a holder can tell two disclosures to the same verifier apart.";
158
+ };
159
+ readonly claimTypes: {
160
+ readonly type: "array";
161
+ readonly maxItems: 128;
162
+ readonly items: {
163
+ readonly $ref: "#/$defs/ClaimType";
164
+ };
165
+ };
166
+ readonly rungs: {
167
+ readonly type: "array";
168
+ readonly maxItems: 128;
169
+ readonly items: {
170
+ readonly $ref: "#/$defs/ProofRung";
171
+ };
172
+ readonly description: "Positionally aligned with claimTypes. A holder reviewing history needs to know not only what went but how strongly it was hidden — the same claim type at two rungs is two very different disclosures.";
173
+ };
174
+ readonly purpose: {
175
+ readonly type: "string";
176
+ readonly maxLength: 512;
177
+ };
178
+ readonly renderer: {
179
+ readonly type: "string";
180
+ readonly maxLength: 64;
181
+ };
182
+ readonly durableCredentialId: {
183
+ readonly type: "string";
184
+ readonly description: "Present when the disclosure minted a durable credential — the one kind of disclosure that is still live and still revocable, which is why the history names it.";
185
+ };
186
+ readonly disclosedAt: {
187
+ readonly type: "string";
188
+ readonly format: "date-time";
189
+ };
190
+ };
191
+ };
192
+ };
193
+ readonly nextCursor: {
194
+ readonly type: "string";
195
+ readonly maxLength: 4096;
196
+ };
197
+ readonly ext: {
198
+ readonly $ref: "#/$defs/Ext";
199
+ };
200
+ };
201
+ };
202
+ readonly Ext: {
203
+ readonly title: "Ext";
204
+ 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.";
205
+ readonly type: "object";
206
+ readonly minProperties: 1;
207
+ readonly additionalProperties: true;
208
+ readonly propertyNames: {
209
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
210
+ };
211
+ };
212
+ readonly ProofRung: {
213
+ readonly title: "ProofRung";
214
+ readonly description: "How strongly a credential-backed claim is hidden when presented, ordered most private first. `predicate` proves a statement over a claim without disclosing the claim. `derived` discloses exactly the claims needed via an unlinkable derived proof, so two presentations cannot be joined. `selectiveDisclosure` discloses exactly the claims needed but carries the issuer's signature unchanged, so two presentations ARE linkable. `whole` discloses the entire credential.\n\nThe distinction between the first two and the last two is of kind, not degree: only `predicate` and `derived` avoid handing two verifiers a join key. A maintainer MUST default to the highest rung the credential's format supports, and MUST NOT silently fall to a lower one — a request that cannot be satisfied at the rung a producer asked for is refused, because a silent privacy downgrade discloses material the holder believed was hidden.";
215
+ readonly type: "string";
216
+ readonly enum: readonly ["predicate", "derived", "selectiveDisclosure", "whole"];
217
+ };
218
+ readonly ClaimType: {
219
+ readonly title: "ClaimType";
220
+ readonly description: "The vocabulary token naming what a value IS — `name.legal`, `phone.mobile`, `address.postal`, `person.birthDate`. Dotted, most-general segment first, so that a consumer with no knowledge of the specific token can still group by its prefix.\n\nThe token is the maintainer's own; no external vocabulary is primary. External vocabularies (vCard/jCard, OIDC standard claims, schema.org) are mappings applied at PRESENTATION by a renderer, not at rest, so that a query written in any of them can be matched without the store having to live inside any one of them.\n\nThe `x:` prefix is an open extension namespace and is not decoration. The closest prior art — Windows CardSpace's self-issued card — supported exactly fifteen predefined claim types with no extensibility, and that is the specific way it failed the requirement a holder actually has. An `x:` attribute stores, composes, binds and discloses exactly like a known one; it renders generically and matches only an explicit query.";
221
+ readonly type: "string";
222
+ readonly minLength: 1;
223
+ readonly maxLength: 128;
224
+ readonly pattern: "^(x:)?[a-z][a-zA-Z0-9]*(\\.[a-z][a-zA-Z0-9]*)*$";
225
+ };
226
+ readonly Ulid: {
227
+ readonly title: "Ulid";
228
+ readonly description: "A ULID in Crockford base32, uppercase. Used for `attributeId` and `profileId`. Chosen over a UUID because the leading 48 bits are a timestamp, so a key-ordered scan of the store is also creation-ordered and a `list` needs no secondary sort. Server-assigned on create; a producer MAY supply one to make a create idempotent, and a maintainer MUST reject a supplied value that already exists rather than silently overwriting.";
229
+ readonly type: "string";
230
+ readonly pattern: "^[0-9A-HJKMNP-TV-Z]{26}$";
231
+ };
232
+ };
233
+ };
234
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
235
+ export declare const RESPONSE_PAYLOAD_SCHEMA: {
236
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
237
+ readonly $ref: "#/$defs/Response";
238
+ readonly $defs: {
239
+ readonly Response: {
240
+ readonly $anchor: "response";
241
+ readonly title: "Persona Disclosure History — response payload";
242
+ readonly description: "Success response to persona/disclosure/history. Type https://trusttasks.org/spec/persona/disclosure/history/1.0#response. Records name claim TYPES and never values: the history says what kind of thing went where, and re-storing the values would double the exposure it exists to describe.";
243
+ readonly type: "object";
244
+ readonly additionalProperties: false;
245
+ readonly required: readonly ["disclosures"];
246
+ readonly properties: {
247
+ readonly disclosures: {
248
+ readonly type: "array";
249
+ readonly maxItems: 500;
250
+ readonly items: {
251
+ readonly type: "object";
252
+ readonly additionalProperties: false;
253
+ readonly required: readonly ["disclosureId", "contextId", "verifierDid", "personaDid", "claimTypes", "disclosedAt"];
254
+ readonly properties: {
255
+ readonly disclosureId: {
256
+ readonly $ref: "#/$defs/Ulid";
257
+ };
258
+ readonly contextId: {
259
+ readonly type: "string";
260
+ readonly minLength: 1;
261
+ };
262
+ readonly verifierDid: {
263
+ readonly type: "string";
264
+ readonly minLength: 1;
265
+ };
266
+ readonly personaDid: {
267
+ readonly type: "string";
268
+ readonly minLength: 1;
269
+ };
270
+ readonly subject: {
271
+ readonly type: "string";
272
+ readonly description: "The pairwise identifier the disclosure was made under, so a holder can tell two disclosures to the same verifier apart.";
273
+ };
274
+ readonly claimTypes: {
275
+ readonly type: "array";
276
+ readonly maxItems: 128;
277
+ readonly items: {
278
+ readonly $ref: "#/$defs/ClaimType";
279
+ };
280
+ };
281
+ readonly rungs: {
282
+ readonly type: "array";
283
+ readonly maxItems: 128;
284
+ readonly items: {
285
+ readonly $ref: "#/$defs/ProofRung";
286
+ };
287
+ readonly description: "Positionally aligned with claimTypes. A holder reviewing history needs to know not only what went but how strongly it was hidden — the same claim type at two rungs is two very different disclosures.";
288
+ };
289
+ readonly purpose: {
290
+ readonly type: "string";
291
+ readonly maxLength: 512;
292
+ };
293
+ readonly renderer: {
294
+ readonly type: "string";
295
+ readonly maxLength: 64;
296
+ };
297
+ readonly durableCredentialId: {
298
+ readonly type: "string";
299
+ readonly description: "Present when the disclosure minted a durable credential — the one kind of disclosure that is still live and still revocable, which is why the history names it.";
300
+ };
301
+ readonly disclosedAt: {
302
+ readonly type: "string";
303
+ readonly format: "date-time";
304
+ };
305
+ };
306
+ };
307
+ };
308
+ readonly nextCursor: {
309
+ readonly type: "string";
310
+ readonly maxLength: 4096;
311
+ };
312
+ readonly ext: {
313
+ readonly $ref: "#/$defs/Ext";
314
+ };
315
+ };
316
+ };
317
+ readonly Ext: {
318
+ readonly title: "Ext";
319
+ 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.";
320
+ readonly type: "object";
321
+ readonly minProperties: 1;
322
+ readonly additionalProperties: true;
323
+ readonly propertyNames: {
324
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
325
+ };
326
+ };
327
+ readonly ProofRung: {
328
+ readonly title: "ProofRung";
329
+ readonly description: "How strongly a credential-backed claim is hidden when presented, ordered most private first. `predicate` proves a statement over a claim without disclosing the claim. `derived` discloses exactly the claims needed via an unlinkable derived proof, so two presentations cannot be joined. `selectiveDisclosure` discloses exactly the claims needed but carries the issuer's signature unchanged, so two presentations ARE linkable. `whole` discloses the entire credential.\n\nThe distinction between the first two and the last two is of kind, not degree: only `predicate` and `derived` avoid handing two verifiers a join key. A maintainer MUST default to the highest rung the credential's format supports, and MUST NOT silently fall to a lower one — a request that cannot be satisfied at the rung a producer asked for is refused, because a silent privacy downgrade discloses material the holder believed was hidden.";
330
+ readonly type: "string";
331
+ readonly enum: readonly ["predicate", "derived", "selectiveDisclosure", "whole"];
332
+ };
333
+ readonly ClaimType: {
334
+ readonly title: "ClaimType";
335
+ readonly description: "The vocabulary token naming what a value IS — `name.legal`, `phone.mobile`, `address.postal`, `person.birthDate`. Dotted, most-general segment first, so that a consumer with no knowledge of the specific token can still group by its prefix.\n\nThe token is the maintainer's own; no external vocabulary is primary. External vocabularies (vCard/jCard, OIDC standard claims, schema.org) are mappings applied at PRESENTATION by a renderer, not at rest, so that a query written in any of them can be matched without the store having to live inside any one of them.\n\nThe `x:` prefix is an open extension namespace and is not decoration. The closest prior art — Windows CardSpace's self-issued card — supported exactly fifteen predefined claim types with no extensibility, and that is the specific way it failed the requirement a holder actually has. An `x:` attribute stores, composes, binds and discloses exactly like a known one; it renders generically and matches only an explicit query.";
336
+ readonly type: "string";
337
+ readonly minLength: 1;
338
+ readonly maxLength: 128;
339
+ readonly pattern: "^(x:)?[a-z][a-zA-Z0-9]*(\\.[a-z][a-zA-Z0-9]*)*$";
340
+ };
341
+ readonly Ulid: {
342
+ readonly title: "Ulid";
343
+ readonly description: "A ULID in Crockford base32, uppercase. Used for `attributeId` and `profileId`. Chosen over a UUID because the leading 48 bits are a timestamp, so a key-ordered scan of the store is also creation-ordered and a `list` needs no secondary sort. Server-assigned on create; a producer MAY supply one to make a create idempotent, and a maintainer MUST reject a supplied value that already exists rather than silently overwriting.";
344
+ readonly type: "string";
345
+ readonly pattern: "^[0-9A-HJKMNP-TV-Z]{26}$";
346
+ };
347
+ };
348
+ };
349
+ /**
350
+ * SPEC.md §7.2 policy for the request variant, from this specification's
351
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
352
+ * per-specification and cannot be derived from the document alone, and
353
+ * item 2 needs the schema this carries.
354
+ */
355
+ export declare const SPEC: {
356
+ readonly typeUri: "https://trusttasks.org/spec/persona/disclosure/history/1.0";
357
+ readonly isBearer: false;
358
+ readonly isProofRequired: true;
359
+ readonly isRecipientRequired: true;
360
+ readonly isIssuedAtRequired: false;
361
+ readonly payloadSchema: {
362
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
363
+ readonly $id: "https://trusttasks.org/spec/persona/disclosure/history/1.0";
364
+ readonly title: "Persona Disclosure History — payload";
365
+ readonly description: "What the holder has shared, with whom, when, and — because the pool sits above the context boundary — which contexts a given attribute has reached.";
366
+ readonly type: "object";
367
+ readonly additionalProperties: false;
368
+ readonly properties: {
369
+ readonly contextId: {
370
+ readonly type: "string";
371
+ readonly minLength: 1;
372
+ readonly description: "Narrow to one context. Omit to query across all of them, which only the holder can do and which is the whole reason this task is holder-authorized.";
373
+ };
374
+ readonly verifierDid: {
375
+ readonly type: "string";
376
+ readonly maxLength: 2048;
377
+ readonly description: "Narrow to one verifier — 'what does this site have of mine'.";
378
+ };
379
+ readonly attributeType: {
380
+ readonly $ref: "#/$defs/ClaimType";
381
+ readonly description: "Narrow to one claim type — 'where has my home address gone'. Answering this is the obligation the agent-scoped pool takes on: having put the holder's facts above the context boundary, it owes them an account of which contexts each fact has reached.";
382
+ };
383
+ readonly since: {
384
+ readonly type: "string";
385
+ readonly format: "date-time";
386
+ };
387
+ readonly cursor: {
388
+ readonly type: "string";
389
+ readonly maxLength: 4096;
390
+ };
391
+ readonly limit: {
392
+ readonly type: "integer";
393
+ readonly minimum: 1;
394
+ readonly maximum: 500;
395
+ readonly default: 100;
396
+ };
397
+ readonly ext: {
398
+ readonly $ref: "#/$defs/Ext";
399
+ };
400
+ };
401
+ readonly $defs: {
402
+ readonly Response: {
403
+ readonly $anchor: "response";
404
+ readonly title: "Persona Disclosure History — response payload";
405
+ readonly description: "Success response to persona/disclosure/history. Type https://trusttasks.org/spec/persona/disclosure/history/1.0#response. Records name claim TYPES and never values: the history says what kind of thing went where, and re-storing the values would double the exposure it exists to describe.";
406
+ readonly type: "object";
407
+ readonly additionalProperties: false;
408
+ readonly required: readonly ["disclosures"];
409
+ readonly properties: {
410
+ readonly disclosures: {
411
+ readonly type: "array";
412
+ readonly maxItems: 500;
413
+ readonly items: {
414
+ readonly type: "object";
415
+ readonly additionalProperties: false;
416
+ readonly required: readonly ["disclosureId", "contextId", "verifierDid", "personaDid", "claimTypes", "disclosedAt"];
417
+ readonly properties: {
418
+ readonly disclosureId: {
419
+ readonly $ref: "#/$defs/Ulid";
420
+ };
421
+ readonly contextId: {
422
+ readonly type: "string";
423
+ readonly minLength: 1;
424
+ };
425
+ readonly verifierDid: {
426
+ readonly type: "string";
427
+ readonly minLength: 1;
428
+ };
429
+ readonly personaDid: {
430
+ readonly type: "string";
431
+ readonly minLength: 1;
432
+ };
433
+ readonly subject: {
434
+ readonly type: "string";
435
+ readonly description: "The pairwise identifier the disclosure was made under, so a holder can tell two disclosures to the same verifier apart.";
436
+ };
437
+ readonly claimTypes: {
438
+ readonly type: "array";
439
+ readonly maxItems: 128;
440
+ readonly items: {
441
+ readonly $ref: "#/$defs/ClaimType";
442
+ };
443
+ };
444
+ readonly rungs: {
445
+ readonly type: "array";
446
+ readonly maxItems: 128;
447
+ readonly items: {
448
+ readonly $ref: "#/$defs/ProofRung";
449
+ };
450
+ readonly description: "Positionally aligned with claimTypes. A holder reviewing history needs to know not only what went but how strongly it was hidden — the same claim type at two rungs is two very different disclosures.";
451
+ };
452
+ readonly purpose: {
453
+ readonly type: "string";
454
+ readonly maxLength: 512;
455
+ };
456
+ readonly renderer: {
457
+ readonly type: "string";
458
+ readonly maxLength: 64;
459
+ };
460
+ readonly durableCredentialId: {
461
+ readonly type: "string";
462
+ readonly description: "Present when the disclosure minted a durable credential — the one kind of disclosure that is still live and still revocable, which is why the history names it.";
463
+ };
464
+ readonly disclosedAt: {
465
+ readonly type: "string";
466
+ readonly format: "date-time";
467
+ };
468
+ };
469
+ };
470
+ };
471
+ readonly nextCursor: {
472
+ readonly type: "string";
473
+ readonly maxLength: 4096;
474
+ };
475
+ readonly ext: {
476
+ readonly $ref: "#/$defs/Ext";
477
+ };
478
+ };
479
+ };
480
+ readonly Ext: {
481
+ readonly title: "Ext";
482
+ 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.";
483
+ readonly type: "object";
484
+ readonly minProperties: 1;
485
+ readonly additionalProperties: true;
486
+ readonly propertyNames: {
487
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
488
+ };
489
+ };
490
+ readonly ProofRung: {
491
+ readonly title: "ProofRung";
492
+ readonly description: "How strongly a credential-backed claim is hidden when presented, ordered most private first. `predicate` proves a statement over a claim without disclosing the claim. `derived` discloses exactly the claims needed via an unlinkable derived proof, so two presentations cannot be joined. `selectiveDisclosure` discloses exactly the claims needed but carries the issuer's signature unchanged, so two presentations ARE linkable. `whole` discloses the entire credential.\n\nThe distinction between the first two and the last two is of kind, not degree: only `predicate` and `derived` avoid handing two verifiers a join key. A maintainer MUST default to the highest rung the credential's format supports, and MUST NOT silently fall to a lower one — a request that cannot be satisfied at the rung a producer asked for is refused, because a silent privacy downgrade discloses material the holder believed was hidden.";
493
+ readonly type: "string";
494
+ readonly enum: readonly ["predicate", "derived", "selectiveDisclosure", "whole"];
495
+ };
496
+ readonly ClaimType: {
497
+ readonly title: "ClaimType";
498
+ readonly description: "The vocabulary token naming what a value IS — `name.legal`, `phone.mobile`, `address.postal`, `person.birthDate`. Dotted, most-general segment first, so that a consumer with no knowledge of the specific token can still group by its prefix.\n\nThe token is the maintainer's own; no external vocabulary is primary. External vocabularies (vCard/jCard, OIDC standard claims, schema.org) are mappings applied at PRESENTATION by a renderer, not at rest, so that a query written in any of them can be matched without the store having to live inside any one of them.\n\nThe `x:` prefix is an open extension namespace and is not decoration. The closest prior art — Windows CardSpace's self-issued card — supported exactly fifteen predefined claim types with no extensibility, and that is the specific way it failed the requirement a holder actually has. An `x:` attribute stores, composes, binds and discloses exactly like a known one; it renders generically and matches only an explicit query.";
499
+ readonly type: "string";
500
+ readonly minLength: 1;
501
+ readonly maxLength: 128;
502
+ readonly pattern: "^(x:)?[a-z][a-zA-Z0-9]*(\\.[a-z][a-zA-Z0-9]*)*$";
503
+ };
504
+ readonly Ulid: {
505
+ readonly title: "Ulid";
506
+ readonly description: "A ULID in Crockford base32, uppercase. Used for `attributeId` and `profileId`. Chosen over a UUID because the leading 48 bits are a timestamp, so a key-ordered scan of the store is also creation-ordered and a `list` needs no secondary sort. Server-assigned on create; a producer MAY supply one to make a create idempotent, and a maintainer MUST reject a supplied value that already exists rather than silently overwriting.";
507
+ readonly type: "string";
508
+ readonly pattern: "^[0-9A-HJKMNP-TV-Z]{26}$";
509
+ };
510
+ };
511
+ };
512
+ };
513
+ /**
514
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
515
+ * tracks the *issuer* party's requirement because a response swaps the
516
+ * parties (§7.3 item 5).
517
+ */
518
+ export declare const RESPONSE_SPEC: {
519
+ readonly typeUri: "https://trusttasks.org/spec/persona/disclosure/history/1.0#response";
520
+ readonly isBearer: false;
521
+ readonly isProofRequired: true;
522
+ readonly isRecipientRequired: true;
523
+ readonly isIssuedAtRequired: false;
524
+ readonly payloadSchema: {
525
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
526
+ readonly $ref: "#/$defs/Response";
527
+ readonly $defs: {
528
+ readonly Response: {
529
+ readonly $anchor: "response";
530
+ readonly title: "Persona Disclosure History — response payload";
531
+ readonly description: "Success response to persona/disclosure/history. Type https://trusttasks.org/spec/persona/disclosure/history/1.0#response. Records name claim TYPES and never values: the history says what kind of thing went where, and re-storing the values would double the exposure it exists to describe.";
532
+ readonly type: "object";
533
+ readonly additionalProperties: false;
534
+ readonly required: readonly ["disclosures"];
535
+ readonly properties: {
536
+ readonly disclosures: {
537
+ readonly type: "array";
538
+ readonly maxItems: 500;
539
+ readonly items: {
540
+ readonly type: "object";
541
+ readonly additionalProperties: false;
542
+ readonly required: readonly ["disclosureId", "contextId", "verifierDid", "personaDid", "claimTypes", "disclosedAt"];
543
+ readonly properties: {
544
+ readonly disclosureId: {
545
+ readonly $ref: "#/$defs/Ulid";
546
+ };
547
+ readonly contextId: {
548
+ readonly type: "string";
549
+ readonly minLength: 1;
550
+ };
551
+ readonly verifierDid: {
552
+ readonly type: "string";
553
+ readonly minLength: 1;
554
+ };
555
+ readonly personaDid: {
556
+ readonly type: "string";
557
+ readonly minLength: 1;
558
+ };
559
+ readonly subject: {
560
+ readonly type: "string";
561
+ readonly description: "The pairwise identifier the disclosure was made under, so a holder can tell two disclosures to the same verifier apart.";
562
+ };
563
+ readonly claimTypes: {
564
+ readonly type: "array";
565
+ readonly maxItems: 128;
566
+ readonly items: {
567
+ readonly $ref: "#/$defs/ClaimType";
568
+ };
569
+ };
570
+ readonly rungs: {
571
+ readonly type: "array";
572
+ readonly maxItems: 128;
573
+ readonly items: {
574
+ readonly $ref: "#/$defs/ProofRung";
575
+ };
576
+ readonly description: "Positionally aligned with claimTypes. A holder reviewing history needs to know not only what went but how strongly it was hidden — the same claim type at two rungs is two very different disclosures.";
577
+ };
578
+ readonly purpose: {
579
+ readonly type: "string";
580
+ readonly maxLength: 512;
581
+ };
582
+ readonly renderer: {
583
+ readonly type: "string";
584
+ readonly maxLength: 64;
585
+ };
586
+ readonly durableCredentialId: {
587
+ readonly type: "string";
588
+ readonly description: "Present when the disclosure minted a durable credential — the one kind of disclosure that is still live and still revocable, which is why the history names it.";
589
+ };
590
+ readonly disclosedAt: {
591
+ readonly type: "string";
592
+ readonly format: "date-time";
593
+ };
594
+ };
595
+ };
596
+ };
597
+ readonly nextCursor: {
598
+ readonly type: "string";
599
+ readonly maxLength: 4096;
600
+ };
601
+ readonly ext: {
602
+ readonly $ref: "#/$defs/Ext";
603
+ };
604
+ };
605
+ };
606
+ readonly Ext: {
607
+ readonly title: "Ext";
608
+ 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.";
609
+ readonly type: "object";
610
+ readonly minProperties: 1;
611
+ readonly additionalProperties: true;
612
+ readonly propertyNames: {
613
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
614
+ };
615
+ };
616
+ readonly ProofRung: {
617
+ readonly title: "ProofRung";
618
+ readonly description: "How strongly a credential-backed claim is hidden when presented, ordered most private first. `predicate` proves a statement over a claim without disclosing the claim. `derived` discloses exactly the claims needed via an unlinkable derived proof, so two presentations cannot be joined. `selectiveDisclosure` discloses exactly the claims needed but carries the issuer's signature unchanged, so two presentations ARE linkable. `whole` discloses the entire credential.\n\nThe distinction between the first two and the last two is of kind, not degree: only `predicate` and `derived` avoid handing two verifiers a join key. A maintainer MUST default to the highest rung the credential's format supports, and MUST NOT silently fall to a lower one — a request that cannot be satisfied at the rung a producer asked for is refused, because a silent privacy downgrade discloses material the holder believed was hidden.";
619
+ readonly type: "string";
620
+ readonly enum: readonly ["predicate", "derived", "selectiveDisclosure", "whole"];
621
+ };
622
+ readonly ClaimType: {
623
+ readonly title: "ClaimType";
624
+ readonly description: "The vocabulary token naming what a value IS — `name.legal`, `phone.mobile`, `address.postal`, `person.birthDate`. Dotted, most-general segment first, so that a consumer with no knowledge of the specific token can still group by its prefix.\n\nThe token is the maintainer's own; no external vocabulary is primary. External vocabularies (vCard/jCard, OIDC standard claims, schema.org) are mappings applied at PRESENTATION by a renderer, not at rest, so that a query written in any of them can be matched without the store having to live inside any one of them.\n\nThe `x:` prefix is an open extension namespace and is not decoration. The closest prior art — Windows CardSpace's self-issued card — supported exactly fifteen predefined claim types with no extensibility, and that is the specific way it failed the requirement a holder actually has. An `x:` attribute stores, composes, binds and discloses exactly like a known one; it renders generically and matches only an explicit query.";
625
+ readonly type: "string";
626
+ readonly minLength: 1;
627
+ readonly maxLength: 128;
628
+ readonly pattern: "^(x:)?[a-z][a-zA-Z0-9]*(\\.[a-z][a-zA-Z0-9]*)*$";
629
+ };
630
+ readonly Ulid: {
631
+ readonly title: "Ulid";
632
+ readonly description: "A ULID in Crockford base32, uppercase. Used for `attributeId` and `profileId`. Chosen over a UUID because the leading 48 bits are a timestamp, so a key-ordered scan of the store is also creation-ordered and a `list` needs no secondary sort. Server-assigned on create; a producer MAY supply one to make a create idempotent, and a maintainer MUST reject a supplied value that already exists rather than silently overwriting.";
633
+ readonly type: "string";
634
+ readonly pattern: "^[0-9A-HJKMNP-TV-Z]{26}$";
635
+ };
636
+ };
637
+ };
638
+ };
639
+ //# sourceMappingURL=payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../src/persona/disclosure/history/1.0/payload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAGzF;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AACD;;GAEG;AACH,MAAM,WAAW,uCAAuC;IACtD;;OAEG;IACH,WAAW,EAAE;QACX,YAAY,EAAE,IAAI,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB;;WAEG;QACH,UAAU,EAAE,SAAS,EAAE,CAAC;QACxB;;;;WAIG;QACH,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED,kHAAkH;AAClH,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEhD,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,EAAG,4DAAqE,CAAC;AAE9F,mEAAmE;AACnE,MAAM,MAAM,OAAO,GAAG,+BAA+B,CAAC;AAEtD,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,EAAG,qEAA8E,CAAC;AAEhH,4EAA4E;AAC5E,MAAM,MAAM,QAAQ,GAAG,uCAAuC,CAAC;AAE/D;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoKjB,CAAC;AAEX,mEAAmE;AACnE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+H1B,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOP,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOhB,CAAC"}