@antseed/node 0.2.92 → 0.2.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/buyer-request-handler.d.ts +9 -0
- package/dist/buyer-request-handler.d.ts.map +1 -1
- package/dist/buyer-request-handler.js +48 -7
- package/dist/buyer-request-handler.js.map +1 -1
- package/dist/discovery/announcer.d.ts +4 -1
- package/dist/discovery/announcer.d.ts.map +1 -1
- package/dist/discovery/announcer.js +53 -0
- package/dist/discovery/announcer.js.map +1 -1
- package/dist/discovery/domain-verification.d.ts +33 -0
- package/dist/discovery/domain-verification.d.ts.map +1 -0
- package/dist/discovery/domain-verification.js +114 -0
- package/dist/discovery/domain-verification.js.map +1 -0
- package/dist/discovery/github-verification.d.ts +30 -0
- package/dist/discovery/github-verification.d.ts.map +1 -0
- package/dist/discovery/github-verification.js +75 -0
- package/dist/discovery/github-verification.js.map +1 -0
- package/dist/discovery/index.d.ts +4 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +4 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/metadata-codec.d.ts +9 -0
- package/dist/discovery/metadata-codec.d.ts.map +1 -1
- package/dist/discovery/metadata-codec.js +175 -0
- package/dist/discovery/metadata-codec.js.map +1 -1
- package/dist/discovery/metadata-validator.d.ts +8 -1
- package/dist/discovery/metadata-validator.d.ts.map +1 -1
- package/dist/discovery/metadata-validator.js +219 -4
- package/dist/discovery/metadata-validator.js.map +1 -1
- package/dist/discovery/peer-metadata.d.ts +35 -1
- package/dist/discovery/peer-metadata.d.ts.map +1 -1
- package/dist/discovery/peer-metadata.js +1 -1
- package/dist/discovery/peer-metadata.js.map +1 -1
- package/dist/discovery/verification-links.d.ts +16 -0
- package/dist/discovery/verification-links.d.ts.map +1 -0
- package/dist/discovery/verification-links.js +71 -0
- package/dist/discovery/verification-links.js.map +1 -0
- package/dist/discovery/verification-utils.d.ts +11 -0
- package/dist/discovery/verification-utils.d.ts.map +1 -0
- package/dist/discovery/verification-utils.js +77 -0
- package/dist/discovery/verification-utils.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +29 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +200 -2
- package/dist/node.js.map +1 -1
- package/dist/p2p/connection-manager.d.ts +3 -0
- package/dist/p2p/connection-manager.d.ts.map +1 -1
- package/dist/p2p/connection-manager.js +30 -4
- package/dist/p2p/connection-manager.js.map +1 -1
- package/dist/p2p/message-protocol.d.ts.map +1 -1
- package/dist/p2p/message-protocol.js +2 -10
- package/dist/p2p/message-protocol.js.map +1 -1
- package/dist/p2p/payment-codec.d.ts.map +1 -1
- package/dist/p2p/payment-codec.js +22 -33
- package/dist/p2p/payment-codec.js.map +1 -1
- package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
- package/dist/payments/buyer-payment-negotiator.js +3 -8
- package/dist/payments/buyer-payment-negotiator.js.map +1 -1
- package/dist/reputation/on-chain-reputation.d.ts +35 -3
- package/dist/reputation/on-chain-reputation.d.ts.map +1 -1
- package/dist/reputation/on-chain-reputation.js +87 -7
- package/dist/reputation/on-chain-reputation.js.map +1 -1
- package/dist/seller-request-handler.d.ts +5 -2
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +64 -21
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/storage/migrations/verification/001_create_tables.d.ts +3 -0
- package/dist/storage/migrations/verification/001_create_tables.d.ts.map +1 -0
- package/dist/storage/migrations/verification/001_create_tables.js +31 -0
- package/dist/storage/migrations/verification/001_create_tables.js.map +1 -0
- package/dist/storage/migrations/verification/index.d.ts +3 -0
- package/dist/storage/migrations/verification/index.d.ts.map +1 -0
- package/dist/storage/migrations/verification/index.js +3 -0
- package/dist/storage/migrations/verification/index.js.map +1 -0
- package/dist/types/peer.d.ts +17 -1
- package/dist/types/peer.d.ts.map +1 -1
- package/dist/types/peer.js.map +1 -1
- package/dist/types/protocol.d.ts +21 -0
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/protocol.js +3 -0
- package/dist/types/protocol.js.map +1 -1
- package/dist/utils/json-codec.d.ts +10 -0
- package/dist/utils/json-codec.d.ts.map +1 -0
- package/dist/utils/json-codec.js +52 -0
- package/dist/utils/json-codec.js.map +1 -0
- package/dist/verification/codec.d.ts +4 -0
- package/dist/verification/codec.d.ts.map +1 -0
- package/dist/verification/codec.js +38 -0
- package/dist/verification/codec.js.map +1 -0
- package/dist/verification/index.d.ts +6 -0
- package/dist/verification/index.d.ts.map +1 -0
- package/dist/verification/index.js +6 -0
- package/dist/verification/index.js.map +1 -0
- package/dist/verification/response-auth.d.ts +31 -0
- package/dist/verification/response-auth.d.ts.map +1 -0
- package/dist/verification/response-auth.js +111 -0
- package/dist/verification/response-auth.js.map +1 -0
- package/dist/verification/samples.d.ts +29 -0
- package/dist/verification/samples.d.ts.map +1 -0
- package/dist/verification/samples.js +96 -0
- package/dist/verification/samples.js.map +1 -0
- package/dist/verification/storage.d.ts +20 -0
- package/dist/verification/storage.d.ts.map +1 -0
- package/dist/verification/storage.js +108 -0
- package/dist/verification/storage.js.map +1 -0
- package/dist/verification/verification-mux.d.ts +20 -0
- package/dist/verification/verification-mux.d.ts.map +1 -0
- package/dist/verification/verification-mux.js +100 -0
- package/dist/verification/verification-mux.js.map +1 -0
- package/package.json +5 -1
|
@@ -1,20 +1,55 @@
|
|
|
1
1
|
import { METADATA_VERSION, WELL_KNOWN_SERVICE_API_PROTOCOLS } from "./peer-metadata.js";
|
|
2
2
|
import { encodeMetadata } from "./metadata-codec.js";
|
|
3
3
|
import { MAX_PUBLIC_ADDRESS_LENGTH, parsePublicAddress } from "./public-address.js";
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
|
|
7
|
-
export const MAX_METADATA_SIZE = 1024;
|
|
4
|
+
// v9 adds signed verification claims and v10 adds peer capabilities. Keep
|
|
5
|
+
// enough room for several normal claims while bounding DHT-served metadata.
|
|
6
|
+
export const MAX_METADATA_SIZE = 1400;
|
|
8
7
|
export const MAX_PROVIDERS = 10;
|
|
9
8
|
export const MAX_SERVICES_PER_PROVIDER = 20;
|
|
10
9
|
export const MAX_SERVICE_NAME_LENGTH = 64;
|
|
11
10
|
export const MAX_REGION_LENGTH = 32;
|
|
12
11
|
export const MAX_DISPLAY_NAME_LENGTH = 64;
|
|
12
|
+
export const MAX_DOMAIN_VERIFICATION_CLAIMS = 5;
|
|
13
|
+
export const MAX_DOMAIN_LENGTH = 253;
|
|
14
|
+
export const MAX_GITHUB_VERIFICATION_CLAIMS = 5;
|
|
15
|
+
export const MAX_GITHUB_USERNAME_LENGTH = 39;
|
|
16
|
+
export const MAX_GITHUB_REPOSITORY_LENGTH = 100;
|
|
13
17
|
export const MAX_SERVICE_CATEGORIES_PER_SERVICE = 8;
|
|
14
18
|
export const MAX_SERVICE_CATEGORY_LENGTH = 32;
|
|
15
19
|
export const MAX_SERVICE_API_PROTOCOLS_PER_SERVICE = 4;
|
|
20
|
+
export const MAX_PEER_CAPABILITIES = 16;
|
|
21
|
+
export const MAX_PEER_CAPABILITY_LENGTH = 64;
|
|
16
22
|
const SERVICE_CATEGORY_PATTERN = /^[a-z0-9][a-z0-9-]*$/;
|
|
23
|
+
const DOMAIN_LABEL_PATTERN = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
24
|
+
const DOMAIN_VERIFICATION_METHODS = new Set(["dns-txt", "https-well-known"]);
|
|
25
|
+
const GITHUB_USERNAME_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
|
|
26
|
+
const GITHUB_REPOSITORY_PATTERN = /^[a-z0-9._-]+$/;
|
|
27
|
+
const VERIFICATION_NAMESPACES = new Set(["domains", "github"]);
|
|
28
|
+
const PEER_CAPABILITY_PATTERN = /^[a-z0-9][a-z0-9.-]*$/;
|
|
17
29
|
const SERVICE_API_PROTOCOL_SET = new Set(WELL_KNOWN_SERVICE_API_PROTOCOLS);
|
|
30
|
+
function isValidDomainName(value) {
|
|
31
|
+
if (value.length === 0 || value.length > MAX_DOMAIN_LENGTH)
|
|
32
|
+
return false;
|
|
33
|
+
if (value.includes("..") || value.endsWith("."))
|
|
34
|
+
return false;
|
|
35
|
+
const labels = value.split(".");
|
|
36
|
+
if (labels.length < 2)
|
|
37
|
+
return false;
|
|
38
|
+
return labels.every((label) => DOMAIN_LABEL_PATTERN.test(label));
|
|
39
|
+
}
|
|
40
|
+
function isValidGithubUsername(value) {
|
|
41
|
+
return value.length > 0
|
|
42
|
+
&& value.length <= MAX_GITHUB_USERNAME_LENGTH
|
|
43
|
+
&& !value.includes("--")
|
|
44
|
+
&& GITHUB_USERNAME_PATTERN.test(value);
|
|
45
|
+
}
|
|
46
|
+
function isValidGithubRepository(value) {
|
|
47
|
+
return value.length > 0
|
|
48
|
+
&& value.length <= MAX_GITHUB_REPOSITORY_LENGTH
|
|
49
|
+
&& value !== "."
|
|
50
|
+
&& value !== ".."
|
|
51
|
+
&& GITHUB_REPOSITORY_PATTERN.test(value);
|
|
52
|
+
}
|
|
18
53
|
export function validateMetadata(metadata) {
|
|
19
54
|
const errors = [];
|
|
20
55
|
// version
|
|
@@ -84,6 +119,186 @@ export function validateMetadata(metadata) {
|
|
|
84
119
|
errors.push({ field: "sellerContract", message: "Must be 40 lowercase hex chars" });
|
|
85
120
|
}
|
|
86
121
|
}
|
|
122
|
+
if (metadata.verifications !== undefined) {
|
|
123
|
+
if (!metadata.verifications || typeof metadata.verifications !== "object" || Array.isArray(metadata.verifications)) {
|
|
124
|
+
errors.push({ field: "verifications", message: "Must be an object when provided" });
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
const domainClaims = metadata.verifications.domains;
|
|
128
|
+
if (domainClaims !== undefined) {
|
|
129
|
+
if (!Array.isArray(domainClaims)) {
|
|
130
|
+
errors.push({ field: "verifications.domains", message: "Must be an array when provided" });
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
if (domainClaims.length === 0) {
|
|
134
|
+
errors.push({ field: "verifications.domains", message: "Must not be empty when provided" });
|
|
135
|
+
}
|
|
136
|
+
if (domainClaims.length > MAX_DOMAIN_VERIFICATION_CLAIMS) {
|
|
137
|
+
errors.push({
|
|
138
|
+
field: "verifications.domains",
|
|
139
|
+
message: `Domain verification claim count ${domainClaims.length} exceeds max ${MAX_DOMAIN_VERIFICATION_CLAIMS}`,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
const domains = new Set();
|
|
143
|
+
for (let i = 0; i < domainClaims.length; i += 1) {
|
|
144
|
+
const claim = domainClaims[i];
|
|
145
|
+
if (!claim || typeof claim !== "object" || Array.isArray(claim)) {
|
|
146
|
+
errors.push({ field: `verifications.domains[${i}]`, message: "Domain verification claim must be an object" });
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
const domain = typeof claim.domain === "string" ? claim.domain.trim().toLowerCase() : "";
|
|
150
|
+
if (!isValidDomainName(domain)) {
|
|
151
|
+
errors.push({
|
|
152
|
+
field: `verifications.domains[${i}].domain`,
|
|
153
|
+
message: "Domain must be a lower-case hostname with at least two labels",
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
else if (domains.has(domain)) {
|
|
157
|
+
errors.push({
|
|
158
|
+
field: `verifications.domains[${i}].domain`,
|
|
159
|
+
message: "Domain verification claims must be unique",
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
domains.add(domain);
|
|
163
|
+
if (claim.methods !== undefined) {
|
|
164
|
+
if (!Array.isArray(claim.methods) || claim.methods.length === 0) {
|
|
165
|
+
errors.push({
|
|
166
|
+
field: `verifications.domains[${i}].methods`,
|
|
167
|
+
message: "Methods must be a non-empty string array when provided",
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
const methods = new Set();
|
|
172
|
+
for (let j = 0; j < claim.methods.length; j += 1) {
|
|
173
|
+
const method = claim.methods[j];
|
|
174
|
+
if (typeof method !== "string" || !DOMAIN_VERIFICATION_METHODS.has(method)) {
|
|
175
|
+
errors.push({
|
|
176
|
+
field: `verifications.domains[${i}].methods[${j}]`,
|
|
177
|
+
message: "Unsupported domain verification method",
|
|
178
|
+
});
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
if (methods.has(method)) {
|
|
182
|
+
errors.push({
|
|
183
|
+
field: `verifications.domains[${i}].methods[${j}]`,
|
|
184
|
+
message: "Domain verification methods must be unique per claim",
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
methods.add(method);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const githubClaims = metadata.verifications.github;
|
|
195
|
+
if (githubClaims !== undefined) {
|
|
196
|
+
if (!Array.isArray(githubClaims)) {
|
|
197
|
+
errors.push({ field: "verifications.github", message: "Must be an array when provided" });
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
if (githubClaims.length === 0) {
|
|
201
|
+
errors.push({ field: "verifications.github", message: "Must not be empty when provided" });
|
|
202
|
+
}
|
|
203
|
+
if (githubClaims.length > MAX_GITHUB_VERIFICATION_CLAIMS) {
|
|
204
|
+
errors.push({
|
|
205
|
+
field: "verifications.github",
|
|
206
|
+
message: `GitHub verification claim count ${githubClaims.length} exceeds max ${MAX_GITHUB_VERIFICATION_CLAIMS}`,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
const seen = new Set();
|
|
210
|
+
for (let i = 0; i < githubClaims.length; i += 1) {
|
|
211
|
+
const claim = githubClaims[i];
|
|
212
|
+
if (!claim || typeof claim !== "object" || Array.isArray(claim)) {
|
|
213
|
+
errors.push({ field: `verifications.github[${i}]`, message: "GitHub verification claim must be an object" });
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
const username = typeof claim.username === "string" ? claim.username.trim().toLowerCase() : "";
|
|
217
|
+
if (!isValidGithubUsername(username)) {
|
|
218
|
+
errors.push({
|
|
219
|
+
field: `verifications.github[${i}].username`,
|
|
220
|
+
message: "Username must be a valid lower-case GitHub username",
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
if (claim.repository !== undefined) {
|
|
224
|
+
const repository = typeof claim.repository === "string" ? claim.repository.trim().toLowerCase() : "";
|
|
225
|
+
if (!isValidGithubRepository(repository)) {
|
|
226
|
+
errors.push({
|
|
227
|
+
field: `verifications.github[${i}].repository`,
|
|
228
|
+
message: "Repository must be a valid lower-case GitHub repository name",
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
const key = `${username}/${typeof claim.repository === "string" ? claim.repository.trim().toLowerCase() : ""}`;
|
|
233
|
+
if (seen.has(key)) {
|
|
234
|
+
errors.push({
|
|
235
|
+
field: `verifications.github[${i}]`,
|
|
236
|
+
message: "GitHub verification claims must be unique",
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
seen.add(key);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
const unknownKeys = Object.keys(metadata.verifications).filter((key) => !VERIFICATION_NAMESPACES.has(key));
|
|
244
|
+
for (const key of unknownKeys) {
|
|
245
|
+
errors.push({
|
|
246
|
+
field: `verifications.${key}`,
|
|
247
|
+
message: "Unsupported verification namespace",
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
if (domainClaims === undefined && githubClaims === undefined && unknownKeys.length === 0) {
|
|
251
|
+
errors.push({
|
|
252
|
+
field: "verifications",
|
|
253
|
+
message: "Must include at least one verification namespace when provided",
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
if (metadata.capabilities !== undefined) {
|
|
259
|
+
if (!Array.isArray(metadata.capabilities)) {
|
|
260
|
+
errors.push({ field: "capabilities", message: "Capabilities must be a string array" });
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
if (metadata.capabilities.length > MAX_PEER_CAPABILITIES) {
|
|
264
|
+
errors.push({
|
|
265
|
+
field: "capabilities",
|
|
266
|
+
message: `Capability count ${metadata.capabilities.length} exceeds max ${MAX_PEER_CAPABILITIES}`,
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
const deduped = new Set();
|
|
270
|
+
for (let i = 0; i < metadata.capabilities.length; i++) {
|
|
271
|
+
const capability = metadata.capabilities[i];
|
|
272
|
+
if (typeof capability !== "string" || capability.trim().length === 0) {
|
|
273
|
+
errors.push({
|
|
274
|
+
field: `capabilities[${i}]`,
|
|
275
|
+
message: "Capability must be a non-empty string",
|
|
276
|
+
});
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
const normalized = capability.trim().toLowerCase();
|
|
280
|
+
if (normalized.length > MAX_PEER_CAPABILITY_LENGTH) {
|
|
281
|
+
errors.push({
|
|
282
|
+
field: `capabilities[${i}]`,
|
|
283
|
+
message: `Capability length ${normalized.length} exceeds max ${MAX_PEER_CAPABILITY_LENGTH}`,
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
if (!PEER_CAPABILITY_PATTERN.test(normalized)) {
|
|
287
|
+
errors.push({
|
|
288
|
+
field: `capabilities[${i}]`,
|
|
289
|
+
message: "Capability must use lowercase letters, digits, hyphen, or dot",
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
if (deduped.has(normalized)) {
|
|
293
|
+
errors.push({
|
|
294
|
+
field: `capabilities[${i}]`,
|
|
295
|
+
message: "Capability values must be unique",
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
deduped.add(normalized);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
87
302
|
// timestamp
|
|
88
303
|
if (metadata.timestamp <= 0 || !Number.isFinite(metadata.timestamp)) {
|
|
89
304
|
errors.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-validator.js","sourceRoot":"","sources":["../../src/discovery/metadata-validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metadata-validator.js","sourceRoot":"","sources":["../../src/discovery/metadata-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEpF,0EAA0E;AAC1E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAChD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAC9C,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAC7C,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AACxD,MAAM,oBAAoB,GAAG,wCAAwC,CAAC;AACtE,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAA2B,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;AACvG,MAAM,uBAAuB,GAAG,mCAAmC,CAAC;AACpE,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AACnD,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/D,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AACxD,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAS,gCAAgC,CAAC,CAAC;AAEnF,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,iBAAiB;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;WAClB,KAAK,CAAC,MAAM,IAAI,0BAA0B;WAC1C,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;WACrB,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;WAClB,KAAK,CAAC,MAAM,IAAI,4BAA4B;WAC5C,KAAK,KAAK,GAAG;WACb,KAAK,KAAK,IAAI;WACd,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAOD,MAAM,UAAU,gBAAgB,CAAC,QAAsB;IACrD,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,UAAU;IACV,IAAI,QAAQ,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,oBAAoB,gBAAgB,SAAS,QAAQ,CAAC,OAAO,EAAE;SACzE,CAAC,CAAC;IACL,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,oDAAoD;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,SAAS;IACT,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,iBAAiB,QAAQ,CAAC,MAAM,CAAC,MAAM,gBAAgB,iBAAiB,EAAE;SACpF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,8CAA8C;aACxD,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,uBAAuB,QAAQ,CAAC,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;aACrG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,gDAAgD;aAC1D,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,yBAAyB,KAAK,CAAC,MAAM,gBAAgB,yBAAyB,EAAE;aAC1F,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,kEAAkE;aAC5E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACnH,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;YACpD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;gBAC7F,CAAC;qBAAM,CAAC;oBACN,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;oBAC9F,CAAC;oBACD,IAAI,YAAY,CAAC,MAAM,GAAG,8BAA8B,EAAE,CAAC;wBACzD,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,uBAAuB;4BAC9B,OAAO,EAAE,mCAAmC,YAAY,CAAC,MAAM,gBAAgB,8BAA8B,EAAE;yBAChH,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;oBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BAChE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;4BAC9G,SAAS;wBACX,CAAC;wBACD,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzF,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;4BAC/B,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,yBAAyB,CAAC,UAAU;gCAC3C,OAAO,EAAE,+DAA+D;6BACzE,CAAC,CAAC;wBACL,CAAC;6BAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4BAC/B,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,yBAAyB,CAAC,UAAU;gCAC3C,OAAO,EAAE,2CAA2C;6BACrD,CAAC,CAAC;wBACL,CAAC;wBACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAEpB,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;4BAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCAChE,MAAM,CAAC,IAAI,CAAC;oCACV,KAAK,EAAE,yBAAyB,CAAC,WAAW;oCAC5C,OAAO,EAAE,wDAAwD;iCAClE,CAAC,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACN,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;gCAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oCACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oCAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAkC,CAAC,EAAE,CAAC;wCACvG,MAAM,CAAC,IAAI,CAAC;4CACV,KAAK,EAAE,yBAAyB,CAAC,aAAa,CAAC,GAAG;4CAClD,OAAO,EAAE,wCAAwC;yCAClD,CAAC,CAAC;wCACH,SAAS;oCACX,CAAC;oCACD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wCACxB,MAAM,CAAC,IAAI,CAAC;4CACV,KAAK,EAAE,yBAAyB,CAAC,aAAa,CAAC,GAAG;4CAClD,OAAO,EAAE,sDAAsD;yCAChE,CAAC,CAAC;oCACL,CAAC;oCACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gCACtB,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;YACnD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;gBAC5F,CAAC;qBAAM,CAAC;oBACN,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;oBAC7F,CAAC;oBACD,IAAI,YAAY,CAAC,MAAM,GAAG,8BAA8B,EAAE,CAAC;wBACzD,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,sBAAsB;4BAC7B,OAAO,EAAE,mCAAmC,YAAY,CAAC,MAAM,gBAAgB,8BAA8B,EAAE;yBAChH,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;oBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BAChE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;4BAC7G,SAAS;wBACX,CAAC;wBACD,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/F,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACrC,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,wBAAwB,CAAC,YAAY;gCAC5C,OAAO,EAAE,qDAAqD;6BAC/D,CAAC,CAAC;wBACL,CAAC;wBACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;4BACnC,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACrG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;gCACzC,MAAM,CAAC,IAAI,CAAC;oCACV,KAAK,EAAE,wBAAwB,CAAC,cAAc;oCAC9C,OAAO,EAAE,8DAA8D;iCACxE,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;wBACD,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;wBAC/G,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BAClB,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,wBAAwB,CAAC,GAAG;gCACnC,OAAO,EAAE,2CAA2C;6BACrD,CAAC,CAAC;wBACL,CAAC;wBACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3G,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,iBAAiB,GAAG,EAAE;oBAC7B,OAAO,EAAE,oCAAoC;iBAC9C,CAAC,CAAC;YACL,CAAC;YACD,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzF,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,gEAAgE;iBAC1E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,cAAc;oBACrB,OAAO,EAAE,oBAAoB,QAAQ,CAAC,YAAY,CAAC,MAAM,gBAAgB,qBAAqB,EAAE;iBACjG,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrE,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,gBAAgB,CAAC,GAAG;wBAC3B,OAAO,EAAE,uCAAuC;qBACjD,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACnD,IAAI,UAAU,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,gBAAgB,CAAC,GAAG;wBAC3B,OAAO,EAAE,qBAAqB,UAAU,CAAC,MAAM,gBAAgB,0BAA0B,EAAE;qBAC5F,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9C,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,gBAAgB,CAAC,GAAG;wBAC3B,OAAO,EAAE,+DAA+D;qBACzE,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,gBAAgB,CAAC,GAAG;wBAC3B,OAAO,EAAE,kCAAkC;qBAC5C,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY;IACZ,IAAI,QAAQ,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,4CAA4C;SACtD,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,iCAAiC;SAC3C,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,kBAAkB,QAAQ,CAAC,SAAS,CAAC,MAAM,gBAAgB,aAAa,EAAE;SACpF,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC;QACjC,MAAM,mBAAmB,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QAEpD,iBAAiB;QACjB,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,YAAY;gBACjC,OAAO,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,gBAAgB,yBAAyB,EAAE;aACvF,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG;oBACvC,OAAO,EAAE,uBAAuB,OAAO,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;iBACxF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;YACtG,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,qCAAqC;gBAC1D,OAAO,EAAE,0DAA0D;aACpE,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;YACxG,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,sCAAsC;gBAC3D,OAAO,EAAE,2DAA2D;aACrE,CAAC,CAAC;QACL,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,oBAAoB,WAAW,EAAE;wBACtD,OAAO,EAAE,uBAAuB,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;qBAC5F,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,cAAc,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;oBACpH,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,oBAAoB,WAAW,qBAAqB;wBACzE,OAAO,EAAE,0DAA0D;qBACpE,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,IAAI,cAAc,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;oBACtH,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,oBAAoB,WAAW,sBAAsB;wBAC1E,OAAO,EAAE,2DAA2D;qBACrE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC5E,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,EAAE;wBACzD,OAAO,EAAE,uBAAuB,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;qBAC5F,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,EAAE;wBACzD,OAAO,EAAE,4EAA4E;qBACtF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,EAAE;wBACzD,OAAO,EAAE,qDAAqD;qBAC/D,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,IAAI,UAAU,CAAC,MAAM,GAAG,kCAAkC,EAAE,CAAC;oBAC3D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,EAAE;wBACzD,OAAO,EAAE,0BAA0B,UAAU,CAAC,MAAM,gBAAgB,kCAAkC,EAAE;qBACzG,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACjE,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,IAAI,CAAC,GAAG;4BAC/D,OAAO,EAAE,6CAA6C;yBACvD,CAAC,CAAC;wBACH,SAAS;oBACX,CAAC;oBACD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACjD,IAAI,UAAU,CAAC,MAAM,GAAG,2BAA2B,EAAE,CAAC;wBACpD,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,IAAI,CAAC,GAAG;4BAC/D,OAAO,EAAE,2BAA2B,UAAU,CAAC,MAAM,gBAAgB,2BAA2B,EAAE;yBACnG,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC/C,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,IAAI,CAAC,GAAG;4BAC/D,OAAO,EAAE,gEAAgE;yBAC1E,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC5B,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,IAAI,CAAC,GAAG;4BAC/D,OAAO,EAAE,oDAAoD;yBAC9D,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,EAAE;wBAC3D,OAAO,EAAE,uBAAuB,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;qBAC5F,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,EAAE;wBAC3D,OAAO,EAAE,+EAA+E;qBACzF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,EAAE;wBAC3D,OAAO,EAAE,wDAAwD;qBAClE,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,IAAI,SAAS,CAAC,MAAM,GAAG,qCAAqC,EAAE,CAAC;oBAC7D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,EAAE;wBAC3D,OAAO,EAAE,8BAA8B,SAAS,CAAC,MAAM,gBAAgB,qCAAqC,EAAE;qBAC/G,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC9B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACjE,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,IAAI,CAAC,GAAG;4BACjE,OAAO,EAAE,iDAAiD;yBAC3D,CAAC,CAAC;wBACH,SAAS;oBACX,CAAC;oBACD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACjD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC9C,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,IAAI,CAAC,GAAG;4BACjE,OAAO,EAAE,qCAAqC,UAAU,GAAG;yBAC5D,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC5B,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,IAAI,CAAC,GAAG;4BACjE,OAAO,EAAE,wDAAwD;yBAClE,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,cAAc;QACd,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,kBAAkB;gBACvC,OAAO,EAAE,oCAAoC;aAC9C,CAAC,CAAC;QACL,CAAC;QAED,cAAc;QACd,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,eAAe;gBACpC,OAAO,EAAE,mCAAmC;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,eAAe;gBACpC,OAAO,EAAE,8CAA8C;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,mEAAmE;SAC7E,CAAC,CAAC;IACL,CAAC;IAED,wEAAwE;IACxE,2EAA2E;IAC3E,iEAAiE;IACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,OAAO,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,gBAAgB,OAAO,CAAC,MAAM,gBAAgB,iBAAiB,EAAE;iBAC3E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,6CAA6C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aACzG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { PeerId } from "../types/peer.js";
|
|
|
2
2
|
import type { PeerOffering } from "../types/capability.js";
|
|
3
3
|
import type { ServiceApiProtocol } from "../types/service-api.js";
|
|
4
4
|
import { WELL_KNOWN_SERVICE_API_PROTOCOLS } from "../types/service-api.js";
|
|
5
|
-
export declare const METADATA_VERSION =
|
|
5
|
+
export declare const METADATA_VERSION = 10;
|
|
6
6
|
export declare const WELL_KNOWN_SERVICE_CATEGORIES: readonly ["privacy", "legal", "uncensored", "coding", "finance", "tee"];
|
|
7
7
|
export { WELL_KNOWN_SERVICE_API_PROTOCOLS };
|
|
8
8
|
export type { ServiceApiProtocol };
|
|
@@ -21,6 +21,36 @@ export interface ProviderAnnouncement {
|
|
|
21
21
|
maxConcurrency: number;
|
|
22
22
|
currentLoad: number;
|
|
23
23
|
}
|
|
24
|
+
export type DomainVerificationMethod = "dns-txt" | "https-well-known";
|
|
25
|
+
export interface DomainVerificationClaim {
|
|
26
|
+
/** ASCII hostname only, lower-case, with no scheme, path, or port. */
|
|
27
|
+
domain: string;
|
|
28
|
+
/** Accepted proof transports. When omitted, clients may try every known method. */
|
|
29
|
+
methods?: DomainVerificationMethod[];
|
|
30
|
+
}
|
|
31
|
+
export interface GithubVerificationClaim {
|
|
32
|
+
/** GitHub username, lower-case. */
|
|
33
|
+
username: string;
|
|
34
|
+
/**
|
|
35
|
+
* Public repository holding the proof file, lower-case. Defaults to the
|
|
36
|
+
* profile repository `<username>/<username>` when omitted.
|
|
37
|
+
*/
|
|
38
|
+
repository?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface PeerVerifications {
|
|
41
|
+
/**
|
|
42
|
+
* Domain ownership claims. Clients verify by checking a matching DNS TXT
|
|
43
|
+
* record at `_antseed.<domain>` or a well-known proof at
|
|
44
|
+
* `https://<domain>/.well-known/antseed.json`.
|
|
45
|
+
*/
|
|
46
|
+
domains?: DomainVerificationClaim[];
|
|
47
|
+
/**
|
|
48
|
+
* GitHub account ownership claims. Clients verify by fetching
|
|
49
|
+
* `https://raw.githubusercontent.com/<username>/<repository>/HEAD/antseed.json`
|
|
50
|
+
* — the username in the URL path binds the proof to the account.
|
|
51
|
+
*/
|
|
52
|
+
github?: GithubVerificationClaim[];
|
|
53
|
+
}
|
|
24
54
|
export interface PeerMetadata {
|
|
25
55
|
peerId: PeerId;
|
|
26
56
|
version: number;
|
|
@@ -33,6 +63,8 @@ export interface PeerMetadata {
|
|
|
33
63
|
stakeAmountUSDC?: number;
|
|
34
64
|
onChainChannelCount?: number;
|
|
35
65
|
onChainGhostCount?: number;
|
|
66
|
+
/** Protocol capabilities supported by this peer. */
|
|
67
|
+
capabilities?: string[];
|
|
36
68
|
/**
|
|
37
69
|
* On-chain seller contract that fronts this peer (e.g. a DiemStakingProxy).
|
|
38
70
|
* Buyers resolve `seller = sellerContract` for channel flows and verify the
|
|
@@ -40,6 +72,8 @@ export interface PeerMetadata {
|
|
|
40
72
|
* Stored as 40 lowercase hex chars (no `0x` prefix) matching `peerId` format.
|
|
41
73
|
*/
|
|
42
74
|
sellerContract?: string;
|
|
75
|
+
/** Optional external ownership claims announced by this peer. */
|
|
76
|
+
verifications?: PeerVerifications;
|
|
43
77
|
/**
|
|
44
78
|
* Buyer-local observation time for this metadata fetch. Not signed and not
|
|
45
79
|
* encoded in metadata; used only for diagnostics/freshness decisions.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-metadata.d.ts","sourceRoot":"","sources":["../../src/discovery/peer-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAE3E,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"peer-metadata.d.ts","sourceRoot":"","sources":["../../src/discovery/peer-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAE3E,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,6BAA6B,yEAOhC,CAAC;AACX,OAAO,EAAE,gCAAgC,EAAE,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC,MAAM,WAAW,yBAAyB;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,yBAAyB,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAEtE,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,uBAAuB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-metadata.js","sourceRoot":"","sources":["../../src/discovery/peer-metadata.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAE3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"peer-metadata.js","sourceRoot":"","sources":["../../src/discovery/peer-metadata.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAE3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,SAAS;IACT,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,KAAK;CACG,CAAC;AACX,OAAO,EAAE,gCAAgC,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type PeerVerificationLink = {
|
|
2
|
+
kind: "domain" | "github";
|
|
3
|
+
label: string;
|
|
4
|
+
href: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function isGithubName(value: string): boolean;
|
|
7
|
+
export declare function isGithubRepository(value: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Convert buyer-computed verification results into display-safe links.
|
|
10
|
+
* Only successful verification results are surfaced; malformed cached data is
|
|
11
|
+
* ignored so UI/CLI rendering cannot crash on old or hand-edited state files.
|
|
12
|
+
*/
|
|
13
|
+
export declare function collectPeerVerificationLinks(peer: {
|
|
14
|
+
verificationResults?: unknown;
|
|
15
|
+
}): PeerVerificationLink[];
|
|
16
|
+
//# sourceMappingURL=verification-links.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-links.d.ts","sourceRoot":"","sources":["../../src/discovery/verification-links.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAgBF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzD;AASD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,oBAAoB,EAAE,CAmC5G"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
function buildHttpsUrl(hostname) {
|
|
2
|
+
const normalized = hostname.trim().toLowerCase();
|
|
3
|
+
if (!/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/i.test(normalized) || normalized.includes("..")) {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
try {
|
|
7
|
+
const url = new URL(`https://${normalized}`);
|
|
8
|
+
if (url.hostname !== normalized)
|
|
9
|
+
return null;
|
|
10
|
+
return `https://${normalized}`;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function isGithubName(value) {
|
|
17
|
+
return /^[a-z0-9](?:[a-z0-9-]{0,37}[a-z0-9])?$/i.test(value);
|
|
18
|
+
}
|
|
19
|
+
export function isGithubRepository(value) {
|
|
20
|
+
return /^[a-z0-9._-]{1,100}$/i.test(value) && value !== "." && value !== "..";
|
|
21
|
+
}
|
|
22
|
+
function asRecord(value) {
|
|
23
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Convert buyer-computed verification results into display-safe links.
|
|
30
|
+
* Only successful verification results are surfaced; malformed cached data is
|
|
31
|
+
* ignored so UI/CLI rendering cannot crash on old or hand-edited state files.
|
|
32
|
+
*/
|
|
33
|
+
export function collectPeerVerificationLinks(peer) {
|
|
34
|
+
const results = asRecord(peer.verificationResults);
|
|
35
|
+
if (!results)
|
|
36
|
+
return [];
|
|
37
|
+
const out = [];
|
|
38
|
+
const seen = new Set();
|
|
39
|
+
const add = (link) => {
|
|
40
|
+
const key = `${link.kind}\u0000${link.href}`;
|
|
41
|
+
if (seen.has(key))
|
|
42
|
+
return;
|
|
43
|
+
seen.add(key);
|
|
44
|
+
out.push(link);
|
|
45
|
+
};
|
|
46
|
+
const domains = Array.isArray(results.domains) ? results.domains : [];
|
|
47
|
+
for (const raw of domains) {
|
|
48
|
+
const rec = asRecord(raw);
|
|
49
|
+
if (rec?.verified !== true || typeof rec.domain !== "string")
|
|
50
|
+
continue;
|
|
51
|
+
const href = buildHttpsUrl(rec.domain);
|
|
52
|
+
if (!href)
|
|
53
|
+
continue;
|
|
54
|
+
add({ kind: "domain", label: rec.domain.trim().toLowerCase(), href });
|
|
55
|
+
}
|
|
56
|
+
const github = Array.isArray(results.github) ? results.github : [];
|
|
57
|
+
for (const raw of github) {
|
|
58
|
+
const rec = asRecord(raw);
|
|
59
|
+
if (rec?.verified !== true || typeof rec.username !== "string")
|
|
60
|
+
continue;
|
|
61
|
+
const username = rec.username.trim().toLowerCase();
|
|
62
|
+
if (!isGithubName(username))
|
|
63
|
+
continue;
|
|
64
|
+
const repository = typeof rec.repository === "string" ? rec.repository.trim() : "";
|
|
65
|
+
const hasRepository = repository.length > 0 && isGithubRepository(repository);
|
|
66
|
+
const path = hasRepository ? `${username}/${repository}` : username;
|
|
67
|
+
add({ kind: "github", label: `@${path}`, href: `https://github.com/${path}` });
|
|
68
|
+
}
|
|
69
|
+
return out;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=verification-links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-links.js","sourceRoot":"","sources":["../../src/discovery/verification-links.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const DEFAULT_VERIFICATION_TIMEOUT_MS = 3000;
|
|
2
|
+
export declare const MAX_VERIFICATION_PROOF_BYTES = 4096;
|
|
3
|
+
export declare function normalizePeerId(peerId: string): string;
|
|
4
|
+
export declare function formatError(err: unknown): string;
|
|
5
|
+
export declare function withTimeout<T>(promise: Promise<T>, timeoutMs: number, message: string): Promise<T>;
|
|
6
|
+
export declare function withTimeoutSignal(signal: AbortSignal | undefined, timeoutMs: number): {
|
|
7
|
+
signal: AbortSignal;
|
|
8
|
+
cleanup: () => void;
|
|
9
|
+
};
|
|
10
|
+
export declare function readBodyWithLimit(response: Response, maxBytes: number): Promise<string>;
|
|
11
|
+
//# sourceMappingURL=verification-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-utils.d.ts","sourceRoot":"","sources":["../../src/discovery/verification-utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AAGrD,eAAO,MAAM,4BAA4B,OAAQ,CAAC;AAElD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEhD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAQlG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG;IACrF,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAsBA;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgC7F"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Shared internals for external-claim verifiers (domain-verification.ts,
|
|
2
|
+
// github-verification.ts). Not exported from the package index.
|
|
3
|
+
export const DEFAULT_VERIFICATION_TIMEOUT_MS = 3_000;
|
|
4
|
+
// Proofs are tiny JSON documents; cap reads so a hostile host can't stream
|
|
5
|
+
// an unbounded body into the verifying client.
|
|
6
|
+
export const MAX_VERIFICATION_PROOF_BYTES = 4_096;
|
|
7
|
+
export function normalizePeerId(peerId) {
|
|
8
|
+
return peerId.trim().toLowerCase().replace(/^0x/, "");
|
|
9
|
+
}
|
|
10
|
+
export function formatError(err) {
|
|
11
|
+
return err instanceof Error ? err.message : String(err);
|
|
12
|
+
}
|
|
13
|
+
export function withTimeout(promise, timeoutMs, message) {
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
const timer = setTimeout(() => reject(new Error(message)), timeoutMs);
|
|
16
|
+
promise.then((value) => { clearTimeout(timer); resolve(value); }, (err) => { clearTimeout(timer); reject(err); });
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export function withTimeoutSignal(signal, timeoutMs) {
|
|
20
|
+
const controller = new AbortController();
|
|
21
|
+
const timer = setTimeout(() => controller.abort(new Error("verification request timed out")), timeoutMs);
|
|
22
|
+
if (!signal) {
|
|
23
|
+
return {
|
|
24
|
+
signal: controller.signal,
|
|
25
|
+
cleanup: () => clearTimeout(timer),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const onAbort = () => controller.abort(signal.reason);
|
|
29
|
+
if (signal.aborted) {
|
|
30
|
+
onAbort();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
signal: controller.signal,
|
|
37
|
+
cleanup: () => {
|
|
38
|
+
clearTimeout(timer);
|
|
39
|
+
signal.removeEventListener("abort", onAbort);
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export async function readBodyWithLimit(response, maxBytes) {
|
|
44
|
+
const contentLength = Number(response.headers.get("content-length") ?? "");
|
|
45
|
+
if (Number.isFinite(contentLength) && contentLength > maxBytes) {
|
|
46
|
+
throw new Error(`Proof body exceeds ${maxBytes} bytes`);
|
|
47
|
+
}
|
|
48
|
+
if (!response.body) {
|
|
49
|
+
const text = await response.text();
|
|
50
|
+
if (new TextEncoder().encode(text).byteLength > maxBytes) {
|
|
51
|
+
throw new Error(`Proof body exceeds ${maxBytes} bytes`);
|
|
52
|
+
}
|
|
53
|
+
return text;
|
|
54
|
+
}
|
|
55
|
+
const reader = response.body.getReader();
|
|
56
|
+
const chunks = [];
|
|
57
|
+
let total = 0;
|
|
58
|
+
for (;;) {
|
|
59
|
+
const { done, value } = await reader.read();
|
|
60
|
+
if (done)
|
|
61
|
+
break;
|
|
62
|
+
total += value.byteLength;
|
|
63
|
+
if (total > maxBytes) {
|
|
64
|
+
await reader.cancel().catch(() => { });
|
|
65
|
+
throw new Error(`Proof body exceeds ${maxBytes} bytes`);
|
|
66
|
+
}
|
|
67
|
+
chunks.push(value);
|
|
68
|
+
}
|
|
69
|
+
const merged = new Uint8Array(total);
|
|
70
|
+
let offset = 0;
|
|
71
|
+
for (const chunk of chunks) {
|
|
72
|
+
merged.set(chunk, offset);
|
|
73
|
+
offset += chunk.byteLength;
|
|
74
|
+
}
|
|
75
|
+
return new TextDecoder().decode(merged);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=verification-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-utils.js","sourceRoot":"","sources":["../../src/discovery/verification-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,10 @@ export * from './types/index.js';
|
|
|
5
5
|
export { loadOrCreateIdentity, identityFromPrivateKeyHex, type Identity, type IdentityStore, FileIdentityStore, hexToBytes, bytesToHex, } from './p2p/identity.js';
|
|
6
6
|
export { DHTNode, DEFAULT_DHT_CONFIG } from './discovery/dht-node.js';
|
|
7
7
|
export { OFFICIAL_BOOTSTRAP_NODES, mergeBootstrapNodes, toBootstrapConfig } from './discovery/bootstrap.js';
|
|
8
|
-
export { WELL_KNOWN_SERVICE_CATEGORIES, WELL_KNOWN_SERVICE_API_PROTOCOLS, type ServiceApiProtocol, type PeerMetadata, type ProviderAnnouncement, } from './discovery/peer-metadata.js';
|
|
8
|
+
export { WELL_KNOWN_SERVICE_CATEGORIES, WELL_KNOWN_SERVICE_API_PROTOCOLS, type DomainVerificationClaim, type DomainVerificationMethod, type GithubVerificationClaim, type ServiceApiProtocol, type PeerMetadata, type PeerVerifications, type ProviderAnnouncement, } from './discovery/peer-metadata.js';
|
|
9
|
+
export { DOMAIN_VERIFICATION_TXT_PREFIX, DOMAIN_VERIFICATION_TXT_NAME_PREFIX, DOMAIN_VERIFICATION_WELL_KNOWN_PATH, DOMAIN_VERIFICATION_WELL_KNOWN_TYPE, buildDomainVerificationTxtValue, buildDomainVerificationWellKnownProof, verifyDomainVerificationClaim, verifyPeerMetadataDomains, type DomainVerificationAttemptResult, type DomainVerificationOptions, type DomainVerificationResult, } from './discovery/domain-verification.js';
|
|
10
|
+
export { GITHUB_VERIFICATION_PROOF_FILE, GITHUB_VERIFICATION_PROOF_TYPE, buildGithubVerificationProof, buildGithubVerificationProofUrl, verifyGithubVerificationClaim, verifyPeerMetadataGithub, type GithubVerificationOptions, type GithubVerificationResult, } from './discovery/github-verification.js';
|
|
11
|
+
export { collectPeerVerificationLinks, isGithubName, isGithubRepository, type PeerVerificationLink, } from './discovery/verification-links.js';
|
|
9
12
|
export { MetadataServer, type MetadataServerConfig } from './discovery/metadata-server.js';
|
|
10
13
|
export { parsePublicAddress, MAX_PUBLIC_ADDRESS_LENGTH, type ParsedPublicAddress } from './discovery/public-address.js';
|
|
11
14
|
export { MeteringStorage } from './metering/storage.js';
|
|
@@ -31,6 +34,7 @@ export { getChainConfig, resolveChainConfig, DEFAULT_CHAIN_ID, CHAIN_CONFIGS } f
|
|
|
31
34
|
export type { ChainConfig } from './payments/chain-config.js';
|
|
32
35
|
export { formatUsdc, parseUsdc } from './payments/usdc-utils.js';
|
|
33
36
|
export { ProxyMux } from './proxy/proxy-mux.js';
|
|
37
|
+
export { VerificationMux, VerificationSampler, VerificationStorage, createResponseAuthPayload, verifyResponseAuth, hashRequest, hashResponse, type ResponseAuthSampleInput, type StoredResponseAuth, type StoredVerificationSample, type VerificationSampleConfig, } from './verification/index.js';
|
|
34
38
|
export { resolveProvider } from './proxy/provider-detection.js';
|
|
35
39
|
export { detectRequestServiceApiProtocol, createOpenAIChatToAnthropicStreamingAdapter, createOpenAIChatToResponsesStreamingAdapter, inferProviderDefaultServiceApiProtocols, selectTargetProtocolForRequest, transformAnthropicMessagesRequestToOpenAIChat, transformOpenAIChatResponseToAnthropicMessage, transformOpenAIResponsesRequestToOpenAIChat, transformOpenAIChatResponseToOpenAIResponses, type TargetProtocolSelection, type AnthropicToOpenAIRequestTransformResult, type ResponsesToOpenAIRequestTransformResult, type StreamingResponseAdapter, } from './proxy/service-api-adapter.js';
|
|
36
40
|
export { DefaultRouter, type DefaultRouterConfig } from './routing/default-router.js';
|