@openvtc/trust-tasks 0.28.17 → 0.28.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/dist/_shared/components.d.ts +254 -1
  3. package/dist/_shared/components.d.ts.map +1 -1
  4. package/dist/index.d.ts +87 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +87 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/vta/collection/_shared/0.1/collection.d.ts +2 -2
  9. package/dist/vta/collection/_shared/0.1/collection.d.ts.map +1 -1
  10. package/dist/vta/collection/list/0.1/payload.d.ts +4 -4
  11. package/dist/vta/collection/list/0.1/payload.js +2 -2
  12. package/dist/vta/collection/list/0.1/payload.js.map +1 -1
  13. package/dist/vta/collection/settings/set/0.1/payload.d.ts +469 -0
  14. package/dist/vta/collection/settings/set/0.1/payload.d.ts.map +1 -0
  15. package/dist/vta/collection/settings/set/0.1/payload.js +275 -0
  16. package/dist/vta/collection/settings/set/0.1/payload.js.map +1 -0
  17. package/dist/vta/collection/settings/show/0.1/payload.d.ts +437 -0
  18. package/dist/vta/collection/settings/show/0.1/payload.d.ts.map +1 -0
  19. package/dist/vta/collection/settings/show/0.1/payload.js +260 -0
  20. package/dist/vta/collection/settings/show/0.1/payload.js.map +1 -0
  21. package/dist/vtc/badges/_shared/0.1/badge.d.ts +22 -0
  22. package/dist/vtc/badges/_shared/0.1/badge.d.ts.map +1 -0
  23. package/dist/vtc/badges/_shared/0.1/badge.js +6 -0
  24. package/dist/vtc/badges/_shared/0.1/badge.js.map +1 -0
  25. package/dist/vtc/badges/awards/list/0.1/payload.d.ts +1228 -0
  26. package/dist/vtc/badges/awards/list/0.1/payload.d.ts.map +1 -0
  27. package/dist/vtc/badges/awards/list/0.1/payload.js +699 -0
  28. package/dist/vtc/badges/awards/list/0.1/payload.js.map +1 -0
  29. package/dist/vtc/badges/awards/offer/0.1/payload.d.ts +793 -0
  30. package/dist/vtc/badges/awards/offer/0.1/payload.d.ts.map +1 -0
  31. package/dist/vtc/badges/awards/offer/0.1/payload.js +461 -0
  32. package/dist/vtc/badges/awards/offer/0.1/payload.js.map +1 -0
  33. package/dist/vtc/badges/awards/revoke/0.1/payload.d.ts +605 -0
  34. package/dist/vtc/badges/awards/revoke/0.1/payload.d.ts.map +1 -0
  35. package/dist/vtc/badges/awards/revoke/0.1/payload.js +351 -0
  36. package/dist/vtc/badges/awards/revoke/0.1/payload.js.map +1 -0
  37. package/dist/vtc/badges/awards/withdraw/0.1/payload.d.ts +605 -0
  38. package/dist/vtc/badges/awards/withdraw/0.1/payload.d.ts.map +1 -0
  39. package/dist/vtc/badges/awards/withdraw/0.1/payload.js +351 -0
  40. package/dist/vtc/badges/awards/withdraw/0.1/payload.js.map +1 -0
  41. package/dist/vtc/badges/create/0.1/payload.d.ts +1829 -0
  42. package/dist/vtc/badges/create/0.1/payload.d.ts.map +1 -0
  43. package/dist/vtc/badges/create/0.1/payload.js +1051 -0
  44. package/dist/vtc/badges/create/0.1/payload.js.map +1 -0
  45. package/dist/vtc/badges/holders/list/0.1/payload.d.ts +984 -0
  46. package/dist/vtc/badges/holders/list/0.1/payload.d.ts.map +1 -0
  47. package/dist/vtc/badges/holders/list/0.1/payload.js +555 -0
  48. package/dist/vtc/badges/holders/list/0.1/payload.js.map +1 -0
  49. package/dist/vtc/badges/images/get/0.1/payload.d.ts +454 -0
  50. package/dist/vtc/badges/images/get/0.1/payload.d.ts.map +1 -0
  51. package/dist/vtc/badges/images/get/0.1/payload.js +266 -0
  52. package/dist/vtc/badges/images/get/0.1/payload.js.map +1 -0
  53. package/dist/vtc/badges/images/upload/0.1/payload.d.ts +455 -0
  54. package/dist/vtc/badges/images/upload/0.1/payload.d.ts.map +1 -0
  55. package/dist/vtc/badges/images/upload/0.1/payload.js +276 -0
  56. package/dist/vtc/badges/images/upload/0.1/payload.js.map +1 -0
  57. package/dist/vtc/badges/kudos/give/0.1/payload.d.ts +613 -0
  58. package/dist/vtc/badges/kudos/give/0.1/payload.d.ts.map +1 -0
  59. package/dist/vtc/badges/kudos/give/0.1/payload.js +353 -0
  60. package/dist/vtc/badges/kudos/give/0.1/payload.js.map +1 -0
  61. package/dist/vtc/badges/kudos/list/0.1/payload.d.ts +1766 -0
  62. package/dist/vtc/badges/kudos/list/0.1/payload.d.ts.map +1 -0
  63. package/dist/vtc/badges/kudos/list/0.1/payload.js +995 -0
  64. package/dist/vtc/badges/kudos/list/0.1/payload.js.map +1 -0
  65. package/dist/vtc/badges/list/0.1/payload.d.ts +1096 -0
  66. package/dist/vtc/badges/list/0.1/payload.d.ts.map +1 -0
  67. package/dist/vtc/badges/list/0.1/payload.js +617 -0
  68. package/dist/vtc/badges/list/0.1/payload.js.map +1 -0
  69. package/dist/vtc/badges/mine/accept/0.1/payload.d.ts +1376 -0
  70. package/dist/vtc/badges/mine/accept/0.1/payload.d.ts.map +1 -0
  71. package/dist/vtc/badges/mine/accept/0.1/payload.js +799 -0
  72. package/dist/vtc/badges/mine/accept/0.1/payload.js.map +1 -0
  73. package/dist/vtc/badges/mine/arrange/0.1/payload.d.ts +1217 -0
  74. package/dist/vtc/badges/mine/arrange/0.1/payload.d.ts.map +1 -0
  75. package/dist/vtc/badges/mine/arrange/0.1/payload.js +698 -0
  76. package/dist/vtc/badges/mine/arrange/0.1/payload.js.map +1 -0
  77. package/dist/vtc/badges/mine/decline/0.1/payload.d.ts +589 -0
  78. package/dist/vtc/badges/mine/decline/0.1/payload.d.ts.map +1 -0
  79. package/dist/vtc/badges/mine/decline/0.1/payload.js +344 -0
  80. package/dist/vtc/badges/mine/decline/0.1/payload.js.map +1 -0
  81. package/dist/vtc/badges/mine/hide/0.1/payload.d.ts +1093 -0
  82. package/dist/vtc/badges/mine/hide/0.1/payload.d.ts.map +1 -0
  83. package/dist/vtc/badges/mine/hide/0.1/payload.js +630 -0
  84. package/dist/vtc/badges/mine/hide/0.1/payload.js.map +1 -0
  85. package/dist/vtc/badges/mine/list/0.1/payload.d.ts +1897 -0
  86. package/dist/vtc/badges/mine/list/0.1/payload.d.ts.map +1 -0
  87. package/dist/vtc/badges/mine/list/0.1/payload.js +1087 -0
  88. package/dist/vtc/badges/mine/list/0.1/payload.js.map +1 -0
  89. package/dist/vtc/badges/mine/show/0.1/payload.d.ts +1093 -0
  90. package/dist/vtc/badges/mine/show/0.1/payload.d.ts.map +1 -0
  91. package/dist/vtc/badges/mine/show/0.1/payload.js +630 -0
  92. package/dist/vtc/badges/mine/show/0.1/payload.js.map +1 -0
  93. package/dist/vtc/badges/promote/0.1/payload.d.ts +1757 -0
  94. package/dist/vtc/badges/promote/0.1/payload.d.ts.map +1 -0
  95. package/dist/vtc/badges/promote/0.1/payload.js +1018 -0
  96. package/dist/vtc/badges/promote/0.1/payload.js.map +1 -0
  97. package/dist/vtc/badges/retire/0.1/payload.d.ts +904 -0
  98. package/dist/vtc/badges/retire/0.1/payload.d.ts.map +1 -0
  99. package/dist/vtc/badges/retire/0.1/payload.js +524 -0
  100. package/dist/vtc/badges/retire/0.1/payload.js.map +1 -0
  101. package/dist/vtc/badges/settings/show/0.1/payload.d.ts +731 -0
  102. package/dist/vtc/badges/settings/show/0.1/payload.d.ts.map +1 -0
  103. package/dist/vtc/badges/settings/show/0.1/payload.js +421 -0
  104. package/dist/vtc/badges/settings/show/0.1/payload.js.map +1 -0
  105. package/dist/vtc/badges/settings/update/0.1/payload.d.ts +775 -0
  106. package/dist/vtc/badges/settings/update/0.1/payload.d.ts.map +1 -0
  107. package/dist/vtc/badges/settings/update/0.1/payload.js +444 -0
  108. package/dist/vtc/badges/settings/update/0.1/payload.js.map +1 -0
  109. package/dist/vtc/badges/show/0.1/payload.d.ts +1056 -0
  110. package/dist/vtc/badges/show/0.1/payload.d.ts.map +1 -0
  111. package/dist/vtc/badges/show/0.1/payload.js +613 -0
  112. package/dist/vtc/badges/show/0.1/payload.js.map +1 -0
  113. package/dist/vtc/badges/update/0.1/payload.d.ts +1033 -0
  114. package/dist/vtc/badges/update/0.1/payload.d.ts.map +1 -0
  115. package/dist/vtc/badges/update/0.1/payload.js +588 -0
  116. package/dist/vtc/badges/update/0.1/payload.js.map +1 -0
  117. package/dist/vtc/badges/wall/show/0.1/payload.d.ts +1099 -0
  118. package/dist/vtc/badges/wall/show/0.1/payload.d.ts.map +1 -0
  119. package/dist/vtc/badges/wall/show/0.1/payload.js +634 -0
  120. package/dist/vtc/badges/wall/show/0.1/payload.js.map +1 -0
  121. package/dist/vtc/groups/create/0.1/payload.d.ts +42 -2
  122. package/dist/vtc/groups/create/0.1/payload.d.ts.map +1 -1
  123. package/dist/vtc/groups/create/0.1/payload.js +20 -0
  124. package/dist/vtc/groups/create/0.1/payload.js.map +1 -1
  125. package/dist/vtc/groups/list/0.1/payload.d.ts +42 -2
  126. package/dist/vtc/groups/list/0.1/payload.d.ts.map +1 -1
  127. package/dist/vtc/groups/list/0.1/payload.js +20 -0
  128. package/dist/vtc/groups/list/0.1/payload.js.map +1 -1
  129. package/dist/vtc/groups/list/0.2/payload.d.ts +42 -2
  130. package/dist/vtc/groups/list/0.2/payload.d.ts.map +1 -1
  131. package/dist/vtc/groups/list/0.2/payload.js +20 -0
  132. package/dist/vtc/groups/list/0.2/payload.js.map +1 -1
  133. package/dist/vtc/groups/show/0.1/payload.d.ts +42 -2
  134. package/dist/vtc/groups/show/0.1/payload.d.ts.map +1 -1
  135. package/dist/vtc/groups/show/0.1/payload.js +20 -0
  136. package/dist/vtc/groups/show/0.1/payload.js.map +1 -1
  137. package/dist/vtc/groups/update/0.1/payload.d.ts +42 -2
  138. package/dist/vtc/groups/update/0.1/payload.d.ts.map +1 -1
  139. package/dist/vtc/groups/update/0.1/payload.js +20 -0
  140. package/dist/vtc/groups/update/0.1/payload.js.map +1 -1
  141. package/dist/vtn/registry/check/0.1/payload.d.ts +528 -0
  142. package/dist/vtn/registry/check/0.1/payload.d.ts.map +1 -0
  143. package/dist/vtn/registry/check/0.1/payload.js +282 -0
  144. package/dist/vtn/registry/check/0.1/payload.js.map +1 -0
  145. package/dist/vtn/registry/status/0.1/payload.d.ts +736 -0
  146. package/dist/vtn/registry/status/0.1/payload.d.ts.map +1 -0
  147. package/dist/vtn/registry/status/0.1/payload.js +421 -0
  148. package/dist/vtn/registry/status/0.1/payload.js.map +1 -0
  149. package/package.json +1 -1
  150. package/src/_shared/components.ts +254 -1
  151. package/src/index.ts +87 -0
  152. package/src/vta/collection/_shared/0.1/collection.ts +2 -2
  153. package/src/vta/collection/list/0.1/payload.ts +2 -2
  154. package/src/vta/collection/settings/set/0.1/payload.ts +319 -0
  155. package/src/vta/collection/settings/show/0.1/payload.ts +296 -0
  156. package/src/vtc/badges/_shared/0.1/badge.ts +23 -0
  157. package/src/vtc/badges/awards/list/0.1/payload.ts +768 -0
  158. package/src/vtc/badges/awards/offer/0.1/payload.ts +530 -0
  159. package/src/vtc/badges/awards/revoke/0.1/payload.ts +395 -0
  160. package/src/vtc/badges/awards/withdraw/0.1/payload.ts +395 -0
  161. package/src/vtc/badges/create/0.1/payload.ts +1137 -0
  162. package/src/vtc/badges/holders/list/0.1/payload.ts +628 -0
  163. package/src/vtc/badges/images/get/0.1/payload.ts +311 -0
  164. package/src/vtc/badges/images/upload/0.1/payload.ts +324 -0
  165. package/src/vtc/badges/kudos/give/0.1/payload.ts +401 -0
  166. package/src/vtc/badges/kudos/list/0.1/payload.ts +1080 -0
  167. package/src/vtc/badges/list/0.1/payload.ts +695 -0
  168. package/src/vtc/badges/mine/accept/0.1/payload.ts +840 -0
  169. package/src/vtc/badges/mine/arrange/0.1/payload.ts +768 -0
  170. package/src/vtc/badges/mine/decline/0.1/payload.ts +384 -0
  171. package/src/vtc/badges/mine/hide/0.1/payload.ts +670 -0
  172. package/src/vtc/badges/mine/list/0.1/payload.ts +1153 -0
  173. package/src/vtc/badges/mine/show/0.1/payload.ts +670 -0
  174. package/src/vtc/badges/promote/0.1/payload.ts +1088 -0
  175. package/src/vtc/badges/retire/0.1/payload.ts +565 -0
  176. package/src/vtc/badges/settings/show/0.1/payload.ts +457 -0
  177. package/src/vtc/badges/settings/update/0.1/payload.ts +490 -0
  178. package/src/vtc/badges/show/0.1/payload.ts +675 -0
  179. package/src/vtc/badges/update/0.1/payload.ts +656 -0
  180. package/src/vtc/badges/wall/show/0.1/payload.ts +684 -0
  181. package/src/vtc/groups/create/0.1/payload.ts +22 -2
  182. package/src/vtc/groups/list/0.1/payload.ts +22 -2
  183. package/src/vtc/groups/list/0.2/payload.ts +22 -2
  184. package/src/vtc/groups/show/0.1/payload.ts +22 -2
  185. package/src/vtc/groups/update/0.1/payload.ts +22 -2
  186. package/src/vtn/registry/check/0.1/payload.ts +365 -0
  187. package/src/vtn/registry/status/0.1/payload.ts +502 -0
@@ -0,0 +1,775 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/vtc/badges/settings/update/0.1/payload.schema.json
4
+ */
5
+ import type { BadgeLimits, BadgeSettings, Ext, GroupId, KudosMakers } from "../../../../../_shared/components.js";
6
+ /**
7
+ * An administrator replaces the community's badge settings. The outer document members are owned by the framework — SPEC §6.3.
8
+ */
9
+ export interface VTCBadgesSettingsUpdatePayload {
10
+ /**
11
+ * The settings to put in force, whole: BadgeSettings without `updatedAt`, which the community sets. An absent optional member takes the shared schema's default.
12
+ */
13
+ settings: BadgeSettings & {
14
+ updatedAt?: never;
15
+ };
16
+ /**
17
+ * Why, recorded with the change.
18
+ */
19
+ reason: string;
20
+ ext?: Ext;
21
+ }
22
+ /**
23
+ * The success response to a vtc/badges/settings/update/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/badges/settings/update/0.1#response.
24
+ */
25
+ export interface VTCBadgesSettingsUpdateResponsePayload {
26
+ /**
27
+ * The settings now in force, with `updatedAt`.
28
+ */
29
+ settings: BadgeSettings;
30
+ ext?: Ext;
31
+ }
32
+ /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
33
+ export type { BadgeLimits, BadgeSettings, Ext, GroupId, KudosMakers };
34
+ /** Trust Task type URI. */
35
+ export declare const TYPE_URI: "https://trusttasks.org/spec/vtc/badges/settings/update/0.1";
36
+ /**
37
+ * The earlier version of this specification that this one declares it
38
+ * extends (front matter `extends`, SPEC §5.2 "Declared extension"), or
39
+ * `null`. Only the direct declaration — follow the chain with
40
+ * `extendsChain` / `readForSpec`.
41
+ */
42
+ export declare const EXTENDS: string | null;
43
+ /**
44
+ * Why this version is deprecated, or `null` while it is current. A
45
+ * superseded or retired version is still supported, and is withdrawn from
46
+ * this package in a later scheduled batch (SPEC "Superseded and Withdrawn
47
+ * Versions").
48
+ */
49
+ export declare const DEPRECATION: string | null;
50
+ /** Stable alias for this specification's request payload shape. */
51
+ export type Payload = VTCBadgesSettingsUpdatePayload;
52
+ /** Trust Task response type URI (request type URI + "#response"). */
53
+ export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/vtc/badges/settings/update/0.1#response";
54
+ /** Stable alias for this specification's success-response payload shape. */
55
+ export type Response = VTCBadgesSettingsUpdateResponsePayload;
56
+ /**
57
+ * This specification's payload schema, as a value.
58
+ *
59
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
60
+ * rather than only as a `.json` file because TypeScript types are erased
61
+ * at runtime: without a schema a consumer has nothing to validate, and
62
+ * every REQUIRED payload member is optional in practice. Cross-file
63
+ * `$ref`s are already inlined, so it needs no resolver.
64
+ */
65
+ export declare const PAYLOAD_SCHEMA: {
66
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
67
+ readonly $id: "https://trusttasks.org/spec/vtc/badges/settings/update/0.1";
68
+ readonly title: "VTC Badges — Settings — Update — payload";
69
+ readonly description: "An administrator replaces the community's badge settings. The outer document members are owned by the framework — SPEC §6.3.";
70
+ readonly type: "object";
71
+ readonly additionalProperties: false;
72
+ readonly required: readonly ["settings", "reason"];
73
+ readonly properties: {
74
+ readonly settings: {
75
+ readonly allOf: readonly [{
76
+ readonly $ref: "#/$defs/BadgeSettings";
77
+ }, {
78
+ readonly properties: {
79
+ readonly updatedAt: false;
80
+ };
81
+ }];
82
+ readonly description: "The settings to put in force, whole: BadgeSettings without `updatedAt`, which the community sets. An absent optional member takes the shared schema's default.";
83
+ };
84
+ readonly reason: {
85
+ readonly type: "string";
86
+ readonly minLength: 1;
87
+ readonly maxLength: 1024;
88
+ readonly description: "Why, recorded with the change.";
89
+ };
90
+ readonly ext: {
91
+ readonly $ref: "#/$defs/Ext";
92
+ };
93
+ };
94
+ readonly $defs: {
95
+ readonly Response: {
96
+ readonly $anchor: "response";
97
+ readonly title: "VTC Badges — Settings — Update — response payload";
98
+ readonly description: "The success response to a vtc/badges/settings/update/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/badges/settings/update/0.1#response.";
99
+ readonly type: "object";
100
+ readonly additionalProperties: false;
101
+ readonly required: readonly ["settings"];
102
+ readonly properties: {
103
+ readonly settings: {
104
+ readonly $ref: "#/$defs/BadgeSettings";
105
+ readonly description: "The settings now in force, with `updatedAt`.";
106
+ };
107
+ readonly ext: {
108
+ readonly $ref: "#/$defs/Ext";
109
+ };
110
+ };
111
+ };
112
+ readonly Ext: {
113
+ readonly title: "Ext";
114
+ 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.";
115
+ readonly type: "object";
116
+ readonly minProperties: 1;
117
+ readonly additionalProperties: true;
118
+ readonly propertyNames: {
119
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
120
+ };
121
+ };
122
+ readonly BadgeSettings: {
123
+ readonly title: "BadgeSettings";
124
+ readonly description: "The community's badge settings (VTI-BDG-004). `enabled` false hides every badge surface and keeps every record; nothing is given or issued while it is false.";
125
+ readonly type: "object";
126
+ readonly additionalProperties: false;
127
+ readonly required: readonly ["enabled", "kudosMakers", "showKudosTotals", "automaticBadges", "membersMayRequest"];
128
+ readonly properties: {
129
+ readonly enabled: {
130
+ readonly type: "boolean";
131
+ };
132
+ readonly kudosMakers: {
133
+ readonly $ref: "#/$defs/KudosMakers";
134
+ };
135
+ readonly limits: {
136
+ readonly $ref: "#/$defs/BadgeLimits";
137
+ };
138
+ readonly showKudosTotals: {
139
+ readonly type: "boolean";
140
+ readonly description: "Whether a member's kudos total is shown on their card (VTI-BDG-043).";
141
+ };
142
+ readonly automaticBadges: {
143
+ readonly type: "boolean";
144
+ readonly description: "Whether dynamic badge groups are computed (VTI-BDG-013). False: a community badge may not be created on a dynamic group, and existing ones are not recomputed.";
145
+ };
146
+ readonly membersMayRequest: {
147
+ readonly type: "boolean";
148
+ readonly description: "Whether any community badge may be marked `requestable`. False: every badge group is closed.";
149
+ };
150
+ readonly credentialValidDays: {
151
+ readonly type: "integer";
152
+ readonly minimum: 30;
153
+ readonly maximum: 3650;
154
+ readonly description: "Validity of a badge credential its holders may show outside (VTI-BDG-062). Default 730.";
155
+ };
156
+ readonly updatedAt: {
157
+ readonly type: "string";
158
+ readonly format: "date-time";
159
+ };
160
+ readonly ext: {
161
+ readonly $ref: "#/$defs/Ext";
162
+ };
163
+ };
164
+ };
165
+ readonly BadgeLimits: {
166
+ readonly title: "BadgeLimits";
167
+ readonly description: "The community's bounds (VTI-BDG-032, VTI-BDG-040). Each has a default a community that states none applies.";
168
+ readonly type: "object";
169
+ readonly additionalProperties: false;
170
+ readonly properties: {
171
+ readonly kudosPerGiverPerDay: {
172
+ readonly type: "integer";
173
+ readonly minimum: 1;
174
+ readonly maximum: 1000;
175
+ readonly description: "Kudos one member may give in a day. Default 10.";
176
+ };
177
+ readonly sameGiverSameMember: {
178
+ readonly type: "string";
179
+ readonly enum: readonly ["day", "week", "unbounded"];
180
+ readonly description: "How often the same member may give a kudos badge to the same member: at most once a day, once a week, or without bound. Default `day`.";
181
+ };
182
+ readonly minTenureDays: {
183
+ readonly type: "integer";
184
+ readonly minimum: 0;
185
+ readonly maximum: 3650;
186
+ readonly description: "Days of membership before a member may give kudos or make a kudos badge. Default 7.";
187
+ };
188
+ readonly kudosBadgesPerMakerPerMonth: {
189
+ readonly type: "integer";
190
+ readonly minimum: 0;
191
+ readonly maximum: 1000;
192
+ readonly description: "Kudos badges one member may make in a calendar month. Default 5.";
193
+ };
194
+ readonly maxPinned: {
195
+ readonly type: "integer";
196
+ readonly minimum: 0;
197
+ readonly maximum: 8;
198
+ readonly description: "Badges a member may pin beside their name. Default 2.";
199
+ };
200
+ readonly offerExpiresAfterDays: {
201
+ readonly type: "integer";
202
+ readonly minimum: 1;
203
+ readonly maximum: 365;
204
+ readonly description: "Days an unanswered offer stands before it expires. Absent: offers do not expire.";
205
+ };
206
+ };
207
+ };
208
+ readonly KudosMakers: {
209
+ readonly title: "KudosMakers";
210
+ readonly description: "Who may make a kudos badge (VTI-BDG-004). `nobody`: no kudos badges. `roles`: holders of any of `roles`, or members of any of `groups`. `members`: every active member.";
211
+ readonly type: "object";
212
+ readonly additionalProperties: false;
213
+ readonly required: readonly ["policy"];
214
+ readonly properties: {
215
+ readonly policy: {
216
+ readonly type: "string";
217
+ readonly enum: readonly ["nobody", "roles", "members"];
218
+ };
219
+ readonly roles: {
220
+ readonly type: "array";
221
+ readonly maxItems: 32;
222
+ readonly uniqueItems: true;
223
+ readonly items: {
224
+ readonly type: "string";
225
+ readonly minLength: 1;
226
+ readonly maxLength: 64;
227
+ };
228
+ readonly description: "Community role names. Read exactly when `policy` is `roles`.";
229
+ };
230
+ readonly groups: {
231
+ readonly type: "array";
232
+ readonly maxItems: 32;
233
+ readonly uniqueItems: true;
234
+ readonly items: {
235
+ readonly $ref: "#/$defs/GroupId";
236
+ };
237
+ readonly description: "Read exactly when `policy` is `roles`.";
238
+ };
239
+ };
240
+ };
241
+ readonly GroupId: {
242
+ readonly title: "GroupId";
243
+ readonly description: "Opaque identifier of a community group: `grp_` followed by 16 to 64 base64url characters. Random and community-scoped; not the group's DID.";
244
+ readonly type: "string";
245
+ readonly pattern: "^grp_[A-Za-z0-9_-]{16,64}$";
246
+ };
247
+ };
248
+ };
249
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
250
+ export declare const RESPONSE_PAYLOAD_SCHEMA: {
251
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
252
+ readonly $ref: "#/$defs/Response";
253
+ readonly $defs: {
254
+ readonly Response: {
255
+ readonly $anchor: "response";
256
+ readonly title: "VTC Badges — Settings — Update — response payload";
257
+ readonly description: "The success response to a vtc/badges/settings/update/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/badges/settings/update/0.1#response.";
258
+ readonly type: "object";
259
+ readonly additionalProperties: false;
260
+ readonly required: readonly ["settings"];
261
+ readonly properties: {
262
+ readonly settings: {
263
+ readonly $ref: "#/$defs/BadgeSettings";
264
+ readonly description: "The settings now in force, with `updatedAt`.";
265
+ };
266
+ readonly ext: {
267
+ readonly $ref: "#/$defs/Ext";
268
+ };
269
+ };
270
+ };
271
+ readonly Ext: {
272
+ readonly title: "Ext";
273
+ 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.";
274
+ readonly type: "object";
275
+ readonly minProperties: 1;
276
+ readonly additionalProperties: true;
277
+ readonly propertyNames: {
278
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
279
+ };
280
+ };
281
+ readonly BadgeSettings: {
282
+ readonly title: "BadgeSettings";
283
+ readonly description: "The community's badge settings (VTI-BDG-004). `enabled` false hides every badge surface and keeps every record; nothing is given or issued while it is false.";
284
+ readonly type: "object";
285
+ readonly additionalProperties: false;
286
+ readonly required: readonly ["enabled", "kudosMakers", "showKudosTotals", "automaticBadges", "membersMayRequest"];
287
+ readonly properties: {
288
+ readonly enabled: {
289
+ readonly type: "boolean";
290
+ };
291
+ readonly kudosMakers: {
292
+ readonly $ref: "#/$defs/KudosMakers";
293
+ };
294
+ readonly limits: {
295
+ readonly $ref: "#/$defs/BadgeLimits";
296
+ };
297
+ readonly showKudosTotals: {
298
+ readonly type: "boolean";
299
+ readonly description: "Whether a member's kudos total is shown on their card (VTI-BDG-043).";
300
+ };
301
+ readonly automaticBadges: {
302
+ readonly type: "boolean";
303
+ readonly description: "Whether dynamic badge groups are computed (VTI-BDG-013). False: a community badge may not be created on a dynamic group, and existing ones are not recomputed.";
304
+ };
305
+ readonly membersMayRequest: {
306
+ readonly type: "boolean";
307
+ readonly description: "Whether any community badge may be marked `requestable`. False: every badge group is closed.";
308
+ };
309
+ readonly credentialValidDays: {
310
+ readonly type: "integer";
311
+ readonly minimum: 30;
312
+ readonly maximum: 3650;
313
+ readonly description: "Validity of a badge credential its holders may show outside (VTI-BDG-062). Default 730.";
314
+ };
315
+ readonly updatedAt: {
316
+ readonly type: "string";
317
+ readonly format: "date-time";
318
+ };
319
+ readonly ext: {
320
+ readonly $ref: "#/$defs/Ext";
321
+ };
322
+ };
323
+ };
324
+ readonly BadgeLimits: {
325
+ readonly title: "BadgeLimits";
326
+ readonly description: "The community's bounds (VTI-BDG-032, VTI-BDG-040). Each has a default a community that states none applies.";
327
+ readonly type: "object";
328
+ readonly additionalProperties: false;
329
+ readonly properties: {
330
+ readonly kudosPerGiverPerDay: {
331
+ readonly type: "integer";
332
+ readonly minimum: 1;
333
+ readonly maximum: 1000;
334
+ readonly description: "Kudos one member may give in a day. Default 10.";
335
+ };
336
+ readonly sameGiverSameMember: {
337
+ readonly type: "string";
338
+ readonly enum: readonly ["day", "week", "unbounded"];
339
+ readonly description: "How often the same member may give a kudos badge to the same member: at most once a day, once a week, or without bound. Default `day`.";
340
+ };
341
+ readonly minTenureDays: {
342
+ readonly type: "integer";
343
+ readonly minimum: 0;
344
+ readonly maximum: 3650;
345
+ readonly description: "Days of membership before a member may give kudos or make a kudos badge. Default 7.";
346
+ };
347
+ readonly kudosBadgesPerMakerPerMonth: {
348
+ readonly type: "integer";
349
+ readonly minimum: 0;
350
+ readonly maximum: 1000;
351
+ readonly description: "Kudos badges one member may make in a calendar month. Default 5.";
352
+ };
353
+ readonly maxPinned: {
354
+ readonly type: "integer";
355
+ readonly minimum: 0;
356
+ readonly maximum: 8;
357
+ readonly description: "Badges a member may pin beside their name. Default 2.";
358
+ };
359
+ readonly offerExpiresAfterDays: {
360
+ readonly type: "integer";
361
+ readonly minimum: 1;
362
+ readonly maximum: 365;
363
+ readonly description: "Days an unanswered offer stands before it expires. Absent: offers do not expire.";
364
+ };
365
+ };
366
+ };
367
+ readonly KudosMakers: {
368
+ readonly title: "KudosMakers";
369
+ readonly description: "Who may make a kudos badge (VTI-BDG-004). `nobody`: no kudos badges. `roles`: holders of any of `roles`, or members of any of `groups`. `members`: every active member.";
370
+ readonly type: "object";
371
+ readonly additionalProperties: false;
372
+ readonly required: readonly ["policy"];
373
+ readonly properties: {
374
+ readonly policy: {
375
+ readonly type: "string";
376
+ readonly enum: readonly ["nobody", "roles", "members"];
377
+ };
378
+ readonly roles: {
379
+ readonly type: "array";
380
+ readonly maxItems: 32;
381
+ readonly uniqueItems: true;
382
+ readonly items: {
383
+ readonly type: "string";
384
+ readonly minLength: 1;
385
+ readonly maxLength: 64;
386
+ };
387
+ readonly description: "Community role names. Read exactly when `policy` is `roles`.";
388
+ };
389
+ readonly groups: {
390
+ readonly type: "array";
391
+ readonly maxItems: 32;
392
+ readonly uniqueItems: true;
393
+ readonly items: {
394
+ readonly $ref: "#/$defs/GroupId";
395
+ };
396
+ readonly description: "Read exactly when `policy` is `roles`.";
397
+ };
398
+ };
399
+ };
400
+ readonly GroupId: {
401
+ readonly title: "GroupId";
402
+ readonly description: "Opaque identifier of a community group: `grp_` followed by 16 to 64 base64url characters. Random and community-scoped; not the group's DID.";
403
+ readonly type: "string";
404
+ readonly pattern: "^grp_[A-Za-z0-9_-]{16,64}$";
405
+ };
406
+ };
407
+ };
408
+ /**
409
+ * SPEC.md §7.2 policy for the request variant, from this specification's
410
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
411
+ * per-specification and cannot be derived from the document alone, and
412
+ * item 2 needs the schema this carries.
413
+ */
414
+ export declare const SPEC: {
415
+ readonly typeUri: "https://trusttasks.org/spec/vtc/badges/settings/update/0.1";
416
+ readonly isBearer: false;
417
+ readonly isProofRequired: true;
418
+ readonly isRecipientRequired: true;
419
+ readonly isIssuedAtRequired: true;
420
+ readonly payloadSchema: {
421
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
422
+ readonly $id: "https://trusttasks.org/spec/vtc/badges/settings/update/0.1";
423
+ readonly title: "VTC Badges — Settings — Update — payload";
424
+ readonly description: "An administrator replaces the community's badge settings. The outer document members are owned by the framework — SPEC §6.3.";
425
+ readonly type: "object";
426
+ readonly additionalProperties: false;
427
+ readonly required: readonly ["settings", "reason"];
428
+ readonly properties: {
429
+ readonly settings: {
430
+ readonly allOf: readonly [{
431
+ readonly $ref: "#/$defs/BadgeSettings";
432
+ }, {
433
+ readonly properties: {
434
+ readonly updatedAt: false;
435
+ };
436
+ }];
437
+ readonly description: "The settings to put in force, whole: BadgeSettings without `updatedAt`, which the community sets. An absent optional member takes the shared schema's default.";
438
+ };
439
+ readonly reason: {
440
+ readonly type: "string";
441
+ readonly minLength: 1;
442
+ readonly maxLength: 1024;
443
+ readonly description: "Why, recorded with the change.";
444
+ };
445
+ readonly ext: {
446
+ readonly $ref: "#/$defs/Ext";
447
+ };
448
+ };
449
+ readonly $defs: {
450
+ readonly Response: {
451
+ readonly $anchor: "response";
452
+ readonly title: "VTC Badges — Settings — Update — response payload";
453
+ readonly description: "The success response to a vtc/badges/settings/update/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/badges/settings/update/0.1#response.";
454
+ readonly type: "object";
455
+ readonly additionalProperties: false;
456
+ readonly required: readonly ["settings"];
457
+ readonly properties: {
458
+ readonly settings: {
459
+ readonly $ref: "#/$defs/BadgeSettings";
460
+ readonly description: "The settings now in force, with `updatedAt`.";
461
+ };
462
+ readonly ext: {
463
+ readonly $ref: "#/$defs/Ext";
464
+ };
465
+ };
466
+ };
467
+ readonly Ext: {
468
+ readonly title: "Ext";
469
+ 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.";
470
+ readonly type: "object";
471
+ readonly minProperties: 1;
472
+ readonly additionalProperties: true;
473
+ readonly propertyNames: {
474
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
475
+ };
476
+ };
477
+ readonly BadgeSettings: {
478
+ readonly title: "BadgeSettings";
479
+ readonly description: "The community's badge settings (VTI-BDG-004). `enabled` false hides every badge surface and keeps every record; nothing is given or issued while it is false.";
480
+ readonly type: "object";
481
+ readonly additionalProperties: false;
482
+ readonly required: readonly ["enabled", "kudosMakers", "showKudosTotals", "automaticBadges", "membersMayRequest"];
483
+ readonly properties: {
484
+ readonly enabled: {
485
+ readonly type: "boolean";
486
+ };
487
+ readonly kudosMakers: {
488
+ readonly $ref: "#/$defs/KudosMakers";
489
+ };
490
+ readonly limits: {
491
+ readonly $ref: "#/$defs/BadgeLimits";
492
+ };
493
+ readonly showKudosTotals: {
494
+ readonly type: "boolean";
495
+ readonly description: "Whether a member's kudos total is shown on their card (VTI-BDG-043).";
496
+ };
497
+ readonly automaticBadges: {
498
+ readonly type: "boolean";
499
+ readonly description: "Whether dynamic badge groups are computed (VTI-BDG-013). False: a community badge may not be created on a dynamic group, and existing ones are not recomputed.";
500
+ };
501
+ readonly membersMayRequest: {
502
+ readonly type: "boolean";
503
+ readonly description: "Whether any community badge may be marked `requestable`. False: every badge group is closed.";
504
+ };
505
+ readonly credentialValidDays: {
506
+ readonly type: "integer";
507
+ readonly minimum: 30;
508
+ readonly maximum: 3650;
509
+ readonly description: "Validity of a badge credential its holders may show outside (VTI-BDG-062). Default 730.";
510
+ };
511
+ readonly updatedAt: {
512
+ readonly type: "string";
513
+ readonly format: "date-time";
514
+ };
515
+ readonly ext: {
516
+ readonly $ref: "#/$defs/Ext";
517
+ };
518
+ };
519
+ };
520
+ readonly BadgeLimits: {
521
+ readonly title: "BadgeLimits";
522
+ readonly description: "The community's bounds (VTI-BDG-032, VTI-BDG-040). Each has a default a community that states none applies.";
523
+ readonly type: "object";
524
+ readonly additionalProperties: false;
525
+ readonly properties: {
526
+ readonly kudosPerGiverPerDay: {
527
+ readonly type: "integer";
528
+ readonly minimum: 1;
529
+ readonly maximum: 1000;
530
+ readonly description: "Kudos one member may give in a day. Default 10.";
531
+ };
532
+ readonly sameGiverSameMember: {
533
+ readonly type: "string";
534
+ readonly enum: readonly ["day", "week", "unbounded"];
535
+ readonly description: "How often the same member may give a kudos badge to the same member: at most once a day, once a week, or without bound. Default `day`.";
536
+ };
537
+ readonly minTenureDays: {
538
+ readonly type: "integer";
539
+ readonly minimum: 0;
540
+ readonly maximum: 3650;
541
+ readonly description: "Days of membership before a member may give kudos or make a kudos badge. Default 7.";
542
+ };
543
+ readonly kudosBadgesPerMakerPerMonth: {
544
+ readonly type: "integer";
545
+ readonly minimum: 0;
546
+ readonly maximum: 1000;
547
+ readonly description: "Kudos badges one member may make in a calendar month. Default 5.";
548
+ };
549
+ readonly maxPinned: {
550
+ readonly type: "integer";
551
+ readonly minimum: 0;
552
+ readonly maximum: 8;
553
+ readonly description: "Badges a member may pin beside their name. Default 2.";
554
+ };
555
+ readonly offerExpiresAfterDays: {
556
+ readonly type: "integer";
557
+ readonly minimum: 1;
558
+ readonly maximum: 365;
559
+ readonly description: "Days an unanswered offer stands before it expires. Absent: offers do not expire.";
560
+ };
561
+ };
562
+ };
563
+ readonly KudosMakers: {
564
+ readonly title: "KudosMakers";
565
+ readonly description: "Who may make a kudos badge (VTI-BDG-004). `nobody`: no kudos badges. `roles`: holders of any of `roles`, or members of any of `groups`. `members`: every active member.";
566
+ readonly type: "object";
567
+ readonly additionalProperties: false;
568
+ readonly required: readonly ["policy"];
569
+ readonly properties: {
570
+ readonly policy: {
571
+ readonly type: "string";
572
+ readonly enum: readonly ["nobody", "roles", "members"];
573
+ };
574
+ readonly roles: {
575
+ readonly type: "array";
576
+ readonly maxItems: 32;
577
+ readonly uniqueItems: true;
578
+ readonly items: {
579
+ readonly type: "string";
580
+ readonly minLength: 1;
581
+ readonly maxLength: 64;
582
+ };
583
+ readonly description: "Community role names. Read exactly when `policy` is `roles`.";
584
+ };
585
+ readonly groups: {
586
+ readonly type: "array";
587
+ readonly maxItems: 32;
588
+ readonly uniqueItems: true;
589
+ readonly items: {
590
+ readonly $ref: "#/$defs/GroupId";
591
+ };
592
+ readonly description: "Read exactly when `policy` is `roles`.";
593
+ };
594
+ };
595
+ };
596
+ readonly GroupId: {
597
+ readonly title: "GroupId";
598
+ readonly description: "Opaque identifier of a community group: `grp_` followed by 16 to 64 base64url characters. Random and community-scoped; not the group's DID.";
599
+ readonly type: "string";
600
+ readonly pattern: "^grp_[A-Za-z0-9_-]{16,64}$";
601
+ };
602
+ };
603
+ };
604
+ };
605
+ /**
606
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
607
+ * tracks the *issuer* party's requirement because a response swaps the
608
+ * parties (§7.3 item 5).
609
+ */
610
+ export declare const RESPONSE_SPEC: {
611
+ readonly typeUri: "https://trusttasks.org/spec/vtc/badges/settings/update/0.1#response";
612
+ readonly isBearer: false;
613
+ readonly isProofRequired: true;
614
+ readonly isRecipientRequired: true;
615
+ readonly isIssuedAtRequired: true;
616
+ readonly payloadSchema: {
617
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
618
+ readonly $ref: "#/$defs/Response";
619
+ readonly $defs: {
620
+ readonly Response: {
621
+ readonly $anchor: "response";
622
+ readonly title: "VTC Badges — Settings — Update — response payload";
623
+ readonly description: "The success response to a vtc/badges/settings/update/0.1 request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/vtc/badges/settings/update/0.1#response.";
624
+ readonly type: "object";
625
+ readonly additionalProperties: false;
626
+ readonly required: readonly ["settings"];
627
+ readonly properties: {
628
+ readonly settings: {
629
+ readonly $ref: "#/$defs/BadgeSettings";
630
+ readonly description: "The settings now in force, with `updatedAt`.";
631
+ };
632
+ readonly ext: {
633
+ readonly $ref: "#/$defs/Ext";
634
+ };
635
+ };
636
+ };
637
+ readonly Ext: {
638
+ readonly title: "Ext";
639
+ 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.";
640
+ readonly type: "object";
641
+ readonly minProperties: 1;
642
+ readonly additionalProperties: true;
643
+ readonly propertyNames: {
644
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
645
+ };
646
+ };
647
+ readonly BadgeSettings: {
648
+ readonly title: "BadgeSettings";
649
+ readonly description: "The community's badge settings (VTI-BDG-004). `enabled` false hides every badge surface and keeps every record; nothing is given or issued while it is false.";
650
+ readonly type: "object";
651
+ readonly additionalProperties: false;
652
+ readonly required: readonly ["enabled", "kudosMakers", "showKudosTotals", "automaticBadges", "membersMayRequest"];
653
+ readonly properties: {
654
+ readonly enabled: {
655
+ readonly type: "boolean";
656
+ };
657
+ readonly kudosMakers: {
658
+ readonly $ref: "#/$defs/KudosMakers";
659
+ };
660
+ readonly limits: {
661
+ readonly $ref: "#/$defs/BadgeLimits";
662
+ };
663
+ readonly showKudosTotals: {
664
+ readonly type: "boolean";
665
+ readonly description: "Whether a member's kudos total is shown on their card (VTI-BDG-043).";
666
+ };
667
+ readonly automaticBadges: {
668
+ readonly type: "boolean";
669
+ readonly description: "Whether dynamic badge groups are computed (VTI-BDG-013). False: a community badge may not be created on a dynamic group, and existing ones are not recomputed.";
670
+ };
671
+ readonly membersMayRequest: {
672
+ readonly type: "boolean";
673
+ readonly description: "Whether any community badge may be marked `requestable`. False: every badge group is closed.";
674
+ };
675
+ readonly credentialValidDays: {
676
+ readonly type: "integer";
677
+ readonly minimum: 30;
678
+ readonly maximum: 3650;
679
+ readonly description: "Validity of a badge credential its holders may show outside (VTI-BDG-062). Default 730.";
680
+ };
681
+ readonly updatedAt: {
682
+ readonly type: "string";
683
+ readonly format: "date-time";
684
+ };
685
+ readonly ext: {
686
+ readonly $ref: "#/$defs/Ext";
687
+ };
688
+ };
689
+ };
690
+ readonly BadgeLimits: {
691
+ readonly title: "BadgeLimits";
692
+ readonly description: "The community's bounds (VTI-BDG-032, VTI-BDG-040). Each has a default a community that states none applies.";
693
+ readonly type: "object";
694
+ readonly additionalProperties: false;
695
+ readonly properties: {
696
+ readonly kudosPerGiverPerDay: {
697
+ readonly type: "integer";
698
+ readonly minimum: 1;
699
+ readonly maximum: 1000;
700
+ readonly description: "Kudos one member may give in a day. Default 10.";
701
+ };
702
+ readonly sameGiverSameMember: {
703
+ readonly type: "string";
704
+ readonly enum: readonly ["day", "week", "unbounded"];
705
+ readonly description: "How often the same member may give a kudos badge to the same member: at most once a day, once a week, or without bound. Default `day`.";
706
+ };
707
+ readonly minTenureDays: {
708
+ readonly type: "integer";
709
+ readonly minimum: 0;
710
+ readonly maximum: 3650;
711
+ readonly description: "Days of membership before a member may give kudos or make a kudos badge. Default 7.";
712
+ };
713
+ readonly kudosBadgesPerMakerPerMonth: {
714
+ readonly type: "integer";
715
+ readonly minimum: 0;
716
+ readonly maximum: 1000;
717
+ readonly description: "Kudos badges one member may make in a calendar month. Default 5.";
718
+ };
719
+ readonly maxPinned: {
720
+ readonly type: "integer";
721
+ readonly minimum: 0;
722
+ readonly maximum: 8;
723
+ readonly description: "Badges a member may pin beside their name. Default 2.";
724
+ };
725
+ readonly offerExpiresAfterDays: {
726
+ readonly type: "integer";
727
+ readonly minimum: 1;
728
+ readonly maximum: 365;
729
+ readonly description: "Days an unanswered offer stands before it expires. Absent: offers do not expire.";
730
+ };
731
+ };
732
+ };
733
+ readonly KudosMakers: {
734
+ readonly title: "KudosMakers";
735
+ readonly description: "Who may make a kudos badge (VTI-BDG-004). `nobody`: no kudos badges. `roles`: holders of any of `roles`, or members of any of `groups`. `members`: every active member.";
736
+ readonly type: "object";
737
+ readonly additionalProperties: false;
738
+ readonly required: readonly ["policy"];
739
+ readonly properties: {
740
+ readonly policy: {
741
+ readonly type: "string";
742
+ readonly enum: readonly ["nobody", "roles", "members"];
743
+ };
744
+ readonly roles: {
745
+ readonly type: "array";
746
+ readonly maxItems: 32;
747
+ readonly uniqueItems: true;
748
+ readonly items: {
749
+ readonly type: "string";
750
+ readonly minLength: 1;
751
+ readonly maxLength: 64;
752
+ };
753
+ readonly description: "Community role names. Read exactly when `policy` is `roles`.";
754
+ };
755
+ readonly groups: {
756
+ readonly type: "array";
757
+ readonly maxItems: 32;
758
+ readonly uniqueItems: true;
759
+ readonly items: {
760
+ readonly $ref: "#/$defs/GroupId";
761
+ };
762
+ readonly description: "Read exactly when `policy` is `roles`.";
763
+ };
764
+ };
765
+ };
766
+ readonly GroupId: {
767
+ readonly title: "GroupId";
768
+ readonly description: "Opaque identifier of a community group: `grp_` followed by 16 to 64 base64url characters. Random and community-scoped; not the group's DID.";
769
+ readonly type: "string";
770
+ readonly pattern: "^grp_[A-Za-z0-9_-]{16,64}$";
771
+ };
772
+ };
773
+ };
774
+ };
775
+ //# sourceMappingURL=payload.d.ts.map