@fedify/fedify 2.4.0-dev.2212 → 2.4.0-dev.2228
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/{builder-CKAVFvcH.mjs → builder-Wx64uCV2.mjs} +10 -2
- package/dist/compat/mod.d.cts +1 -1
- package/dist/compat/mod.d.ts +1 -1
- package/dist/compat/transformers.test.mjs +1 -1
- package/dist/{compound-proof-BP5SOdXv.mjs → compound-proof-B647GUyL.mjs} +2 -2
- package/dist/{context-Bl_Y7T_3.d.cts → context-B6X-t8gI.d.cts} +1 -1
- package/dist/{context-DMd11IAu.d.ts → context-CtI307_A.d.ts} +1 -1
- package/dist/{deno-BKp9fYB3.mjs → deno-9flirCWb.mjs} +1 -1
- package/dist/{docloader-BjJreYQU.mjs → docloader-pjAbs1lc.mjs} +2 -2
- package/dist/federation/builder.test.mjs +37 -1
- package/dist/federation/compound-fanout.test.mjs +3 -3
- package/dist/federation/handler-compound-proof.test.mjs +3 -3
- package/dist/federation/handler.test.mjs +5 -5
- package/dist/federation/hashlink-media.test.mjs +2 -2
- package/dist/federation/idempotency.test.mjs +2 -2
- package/dist/federation/metrics.test.mjs +1 -1
- package/dist/federation/middleware.test.mjs +123 -7
- package/dist/federation/mod.cjs +1 -1
- package/dist/federation/mod.d.cts +3 -3
- package/dist/federation/mod.d.ts +3 -3
- package/dist/federation/mod.js +1 -1
- package/dist/federation/outgoing-proof.test.mjs +248 -6
- package/dist/federation/portable-actor.test.mjs +3 -3
- package/dist/federation/portable-chain.test.mjs +3 -3
- package/dist/federation/portable-collection.test.mjs +4 -4
- package/dist/federation/portable-delivery.test.mjs +2 -2
- package/dist/federation/portable-gateway-keys.test.mjs +4 -4
- package/dist/federation/portable-inbox.test.mjs +4 -4
- package/dist/federation/portable-parse-uri.test.mjs +1 -1
- package/dist/federation/portable-route-activity.test.mjs +2 -2
- package/dist/federation/portable.test.mjs +80 -3
- package/dist/federation/send.test.mjs +3 -3
- package/dist/federation/tasks/enqueue.test.mjs +1 -1
- package/dist/federation/tasks/tasks.test.mjs +2 -2
- package/dist/federation/temporal.test.mjs +1 -1
- package/dist/federation/webfinger.test.mjs +1 -1
- package/dist/{federation-B-0EXZPH.cjs → federation-DiycMKQx.cjs} +262 -36
- package/dist/{http-Di8yiDMY.js → http-CHqz_Jp6.js} +1 -1
- package/dist/{http-ByBlnY3D.cjs → http-DC5DyShJ.cjs} +1 -1
- package/dist/{http--IGUT1mg.mjs → http-DysQjjJe.mjs} +4 -4
- package/dist/{key-ChfV9C3v.mjs → key-TtgqklZ1.mjs} +2 -2
- package/dist/{kv-BhNbN8Ed.d.cts → kv-B2mzK5tl.d.cts} +3 -2
- package/dist/{kv-BhNbN8Ed.d.ts → kv-B2mzK5tl.d.ts} +3 -2
- package/dist/{kv-cache-DFIUR-E5.mjs → kv-cache-B7g5Tvl0.mjs} +1 -1
- package/dist/{kv-cache-DpwDPt9V.js → kv-cache-CgYK8siN.js} +1 -1
- package/dist/{kv-cache-BDwUzxBJ.cjs → kv-cache-CsNDrjVT.cjs} +1 -1
- package/dist/{ld-DBBVabBC.mjs → ld-CHYUee-s.mjs} +3 -3
- package/dist/{metrics-DPQKFkiJ.mjs → metrics-X1lpKWRK.mjs} +1 -1
- package/dist/{middleware-VXGLiHtY.js → middleware-D2scpP9Q.js} +262 -36
- package/dist/{middleware-BW7-tHAG.mjs → middleware-DoAk0Q3s.mjs} +251 -33
- package/dist/{middleware-G9zpxUsD.mjs → middleware-ndPtgYYI.mjs} +1 -1
- package/dist/{mod-C5Mwx5ty.d.ts → mod-B8MI1mpi.d.ts} +1 -1
- package/dist/{mod-BVNGHgVr.d.ts → mod-BhTaDR5H.d.ts} +1 -1
- package/dist/{mod-Cyy1Wahy.d.cts → mod-C7_2j7VT.d.cts} +1 -1
- package/dist/{mod-Dp3Ij7sw.d.cts → mod-DFL6IxYQ.d.cts} +1 -1
- package/dist/mod.cjs +4 -4
- package/dist/mod.d.cts +4 -4
- package/dist/mod.d.ts +4 -4
- package/dist/mod.js +4 -4
- package/dist/nodeinfo/handler.test.mjs +1 -1
- package/dist/otel/mod.d.cts +1 -1
- package/dist/otel/mod.d.ts +1 -1
- package/dist/{owner-BW5VsXG3.mjs → owner-BP_ouAvi.mjs} +3 -3
- package/dist/{portable-collection-FTPa5D91.js → portable-collection-4SnmDcTc.js} +1 -1
- package/dist/{portable-collection-CXcAlwei.cjs → portable-collection-Cz9K1Tas.cjs} +1 -1
- package/dist/{portable-collection-Ct99JsBe.mjs → portable-collection-SqxusPj7.mjs} +2 -2
- package/dist/{portable-key-U3lW06QJ.mjs → portable-key-DYr6MZUl.mjs} +1 -1
- package/dist/{proof-MFz2960e.mjs → proof-B-iLzyva.mjs} +4 -4
- package/dist/{send-Duj8xys1.mjs → send-D0nNms3Q.mjs} +3 -3
- package/dist/sig/compound-proof-discovery.test.mjs +1 -1
- package/dist/sig/compound-proof-producer.test.mjs +1 -1
- package/dist/sig/compound-proof-verification.test.mjs +2 -2
- package/dist/sig/compound-proof.test.mjs +2 -2
- package/dist/sig/http.test.mjs +2 -2
- package/dist/sig/key.test.mjs +1 -1
- package/dist/sig/ld.test.mjs +2 -2
- package/dist/sig/mod.cjs +2 -2
- package/dist/sig/mod.js +2 -2
- package/dist/sig/owner.test.mjs +1 -1
- package/dist/sig/portable-collection.test.mjs +1 -1
- package/dist/sig/portable-key.test.mjs +6 -6
- package/dist/sig/proof.test.mjs +5 -3
- package/dist/{temporal-CVcPKB1N.mjs → temporal-39Ixir8d.mjs} +1 -1
- package/dist/testing/kv.test.mjs +1 -1
- package/dist/testing/mod.d.mts +3 -2
- package/dist/utils/docloader.test.mjs +2 -2
- package/dist/utils/kv-cache.test.mjs +1 -1
- package/dist/utils/mod.cjs +1 -1
- package/dist/utils/mod.d.cts +1 -1
- package/dist/utils/mod.d.ts +1 -1
- package/dist/utils/mod.js +1 -1
- package/package.json +6 -6
|
@@ -3,28 +3,28 @@ import "urlpattern-polyfill";
|
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
4
|
import { d as isPortableUri, f as isSameObjectId, i as getPortableDid, l as isPortableId, n as getCanonicalPortableId, o as hasPortableActor, r as getGatewayKeyBase, s as isCompatibleKeyId, t as getAuthenticationOrigin, u as isPortableKeyId } from "./portable-key-id-Ca30-hOa.mjs";
|
|
5
5
|
import { n as isPubliclyAddressedNode, t as isInAudience } from "./audience-CHQ-FlLD.mjs";
|
|
6
|
-
import { n as version, t as name } from "./deno-
|
|
7
|
-
import { a as instrumentDocumentLoader, b as recordWebFingerHandle, c as recordCircuitBreakerStateChange, d as recordCollectionRequest, f as recordCollectionTotalItems, g as recordInboxActivity, h as recordFanoutRecipients, i as getRemoteHost, l as recordCollectionDispatchDuration, n as getDurationMs, o as isAbortError, r as getFederationMetrics, u as recordCollectionPageItems, v as recordOutboxActivity, x as registerQueueDepthGauge, y as recordOutboxEnqueue } from "./metrics-
|
|
6
|
+
import { n as version, t as name } from "./deno-9flirCWb.mjs";
|
|
7
|
+
import { a as instrumentDocumentLoader, b as recordWebFingerHandle, c as recordCircuitBreakerStateChange, d as recordCollectionRequest, f as recordCollectionTotalItems, g as recordInboxActivity, h as recordFanoutRecipients, i as getRemoteHost, l as recordCollectionDispatchDuration, n as getDurationMs, o as isAbortError, r as getFederationMetrics, u as recordCollectionPageItems, v as recordOutboxActivity, x as registerQueueDepthGauge, y as recordOutboxEnqueue } from "./metrics-X1lpKWRK.mjs";
|
|
8
8
|
import { t as formatAcceptSignature } from "./accept-CPVqki78.mjs";
|
|
9
|
-
import { c as validateCryptoKey, n as exportJwk, s as importJwk } from "./key-
|
|
9
|
+
import { c as validateCryptoKey, n as exportJwk, s as importJwk } from "./key-TtgqklZ1.mjs";
|
|
10
10
|
import { r as normalizeOutgoingActivityJsonLd } from "./outgoing-jsonld-4IJqPYos.mjs";
|
|
11
|
-
import { _ as wrapContextLoaderForJsonLd, a as compactJsonLd, c as getNormalizationContextLoader, d as isClearlyMalformedContextReference, f as isInvalidUrlTypeError, l as hasSignature, m as verifyCompactJsonLd, p as signJsonLd, r as assertSafeJsonLd, s as detachSignature, t as InvalidContextReferenceError, u as hasSignatureLike } from "./ld-
|
|
12
|
-
import { a as signObject, c as verifyPortableObjectProof, i as hasProofLike, s as verifyObject, t as InvalidPortableObjectIdError, u as verifyPortableObjectProofWithRoot } from "./proof-
|
|
13
|
-
import { a as listRequestSignatures, c as selectRequestSignature, d as validateMaxSignatures, f as verifyRequest, p as verifyRequestDetailed, s as parseRfc9421SignatureInput } from "./http
|
|
14
|
-
import { t as getAuthenticatedDocumentLoader } from "./docloader-
|
|
15
|
-
import { n as kvCache } from "./kv-cache-
|
|
11
|
+
import { _ as wrapContextLoaderForJsonLd, a as compactJsonLd, c as getNormalizationContextLoader, d as isClearlyMalformedContextReference, f as isInvalidUrlTypeError, l as hasSignature, m as verifyCompactJsonLd, p as signJsonLd, r as assertSafeJsonLd, s as detachSignature, t as InvalidContextReferenceError, u as hasSignatureLike } from "./ld-CHYUee-s.mjs";
|
|
12
|
+
import { a as signObject, c as verifyPortableObjectProof, i as hasProofLike, s as verifyObject, t as InvalidPortableObjectIdError, u as verifyPortableObjectProofWithRoot } from "./proof-B-iLzyva.mjs";
|
|
13
|
+
import { a as listRequestSignatures, c as selectRequestSignature, d as validateMaxSignatures, f as verifyRequest, p as verifyRequestDetailed, s as parseRfc9421SignatureInput } from "./http-DysQjjJe.mjs";
|
|
14
|
+
import { t as getAuthenticatedDocumentLoader } from "./docloader-pjAbs1lc.mjs";
|
|
15
|
+
import { n as kvCache } from "./kv-cache-B7g5Tvl0.mjs";
|
|
16
16
|
import { d as readBoundedText, l as BodyTooLargeError, t as getNodeInfo, u as MAX_BODY_SIZE } from "./client-CEnNz8O7.mjs";
|
|
17
17
|
import { t as nodeInfoToJson } from "./types-DE_LV1JB.mjs";
|
|
18
|
-
import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-
|
|
19
|
-
import { t as verifyPortableObject } from "./portable-collection-
|
|
20
|
-
import { a as getOrderingDestination, i as sendActivityThroughGateways, n as extractInboxes, r as sendActivity, t as SendActivityError } from "./send-
|
|
21
|
-
import { n as FederationBuilderImpl, t as ACTOR_ALIAS_PREFIX } from "./builder-
|
|
18
|
+
import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-BP_ouAvi.mjs";
|
|
19
|
+
import { t as verifyPortableObject } from "./portable-collection-SqxusPj7.mjs";
|
|
20
|
+
import { a as getOrderingDestination, i as sendActivityThroughGateways, n as extractInboxes, r as sendActivity, t as SendActivityError } from "./send-D0nNms3Q.mjs";
|
|
21
|
+
import { n as FederationBuilderImpl, t as ACTOR_ALIAS_PREFIX } from "./builder-Wx64uCV2.mjs";
|
|
22
22
|
import { t as CircuitBreaker } from "./circuit-breaker-XJ53md4S.mjs";
|
|
23
23
|
import { t as buildCollectionSynchronizationHeader } from "./collection-CnnP1UAv.mjs";
|
|
24
|
-
import { a as verifyCompoundPortableObjectProofs, i as inspectCompoundPortableObjectApplicability, r as findUnsupportedCompoundProofShape, s as verifyServedPortableObjects, t as containsCompoundPortableObject } from "./compound-proof-
|
|
24
|
+
import { a as verifyCompoundPortableObjectProofs, i as inspectCompoundPortableObjectApplicability, r as findUnsupportedCompoundProofShape, s as verifyServedPortableObjects, t as containsCompoundPortableObject } from "./compound-proof-B647GUyL.mjs";
|
|
25
25
|
import { t as KvKeyCache } from "./keycache-Da8A8mZa.mjs";
|
|
26
26
|
import { t as acceptsJsonLd } from "./negotiation-CCocWT_N.mjs";
|
|
27
|
-
import { t as hasMalformedKnownTemporalLiteral } from "./temporal-
|
|
27
|
+
import { t as hasMalformedKnownTemporalLiteral } from "./temporal-39Ixir8d.mjs";
|
|
28
28
|
import { t as createExponentialBackoffPolicy } from "./retry-zX5xw5e0.mjs";
|
|
29
29
|
import { t as TaskCodec } from "./codec-C6rTrpIp.mjs";
|
|
30
30
|
import { getLogger, withContext } from "@logtape/logtape";
|
|
@@ -359,6 +359,180 @@ function serializeDataPointType(dataPointType) {
|
|
|
359
359
|
}
|
|
360
360
|
}
|
|
361
361
|
//#endregion
|
|
362
|
+
//#region src/federation/compatible-id-warning.ts
|
|
363
|
+
/** Returns a verified first gateway, without dereferencing the actor. */
|
|
364
|
+
async function getLocalFirstGateway(context, ownerId, did) {
|
|
365
|
+
try {
|
|
366
|
+
const parsed = context.parseUri(ownerId, { portable: true });
|
|
367
|
+
if (parsed?.type !== "actor" || parsed.authority !== did) return null;
|
|
368
|
+
return firstGateway(await context.getActor(parsed.identifier), did);
|
|
369
|
+
} catch (error) {
|
|
370
|
+
getLogger([
|
|
371
|
+
"fedify",
|
|
372
|
+
"federation",
|
|
373
|
+
"object"
|
|
374
|
+
]).debug("Could not check the first gateway of {ownerId}: {error}", {
|
|
375
|
+
ownerId: ownerId.href,
|
|
376
|
+
error
|
|
377
|
+
});
|
|
378
|
+
return null;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
function firstGateway(actor, did) {
|
|
382
|
+
if (actor?.id == null || getPortableDid(actor.id) !== did) return null;
|
|
383
|
+
const gateway = actor.gateway;
|
|
384
|
+
return gateway != null && isGatewayUrl(gateway) ? gateway : null;
|
|
385
|
+
}
|
|
386
|
+
/** Looks for an actor already embedded in the document being published. */
|
|
387
|
+
function getEmbeddedFirstGateway(json, ownerId, did) {
|
|
388
|
+
const owner = getCanonicalPortableId(ownerId);
|
|
389
|
+
if (owner == null) return null;
|
|
390
|
+
return visitJsonMaps(json, (map) => {
|
|
391
|
+
const id = parseMapId(map, isJsonMap(json) ? json : null);
|
|
392
|
+
if (id == null || getCanonicalPortableId(id) !== owner) return;
|
|
393
|
+
const gateways = map.gateways ?? map["https://w3id.org/fep/ef61/gateways"];
|
|
394
|
+
const first = Array.isArray(gateways) ? gateways[0] : isJsonMap(gateways) && Array.isArray(gateways["@list"]) ? gateways["@list"][0] : null;
|
|
395
|
+
const address = typeof first === "string" ? first : isJsonMap(first) ? first.id ?? first["@id"] : null;
|
|
396
|
+
if (typeof address !== "string") return;
|
|
397
|
+
try {
|
|
398
|
+
const gateway = new URL(address);
|
|
399
|
+
if (getPortableDid(id) === did && isGatewayUrl(gateway)) return gateway;
|
|
400
|
+
} catch (error) {
|
|
401
|
+
if (!(error instanceof TypeError)) throw error;
|
|
402
|
+
}
|
|
403
|
+
}) ?? null;
|
|
404
|
+
}
|
|
405
|
+
function isJsonMap(value) {
|
|
406
|
+
return value != null && typeof value === "object" && !Array.isArray(value);
|
|
407
|
+
}
|
|
408
|
+
/** Warns only when the publisher's actual first gateway is known. */
|
|
409
|
+
function warnCompatibleId(id, did, gateway, kind) {
|
|
410
|
+
if (!isCompatibleEf61Iri(id) || getPortableDid(id) !== did || id.origin === gateway.origin) return;
|
|
411
|
+
getLogger([
|
|
412
|
+
"fedify",
|
|
413
|
+
"federation",
|
|
414
|
+
kind === "activity" ? "outbox" : "object"
|
|
415
|
+
]).warn("The {kind} {id} has an FEP-ef61 compatible identifier on another gateway than its owner's first gateway, {gateway}. FEP-ef61 requires publishers to use the first gateway in the actor's gateways.", {
|
|
416
|
+
kind,
|
|
417
|
+
id: id.href,
|
|
418
|
+
gateway: gateway.origin
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
/** Reads the root ID without dereferencing or expanding the document. */
|
|
422
|
+
function getCompactRootId(json) {
|
|
423
|
+
return isJsonMap(json) ? parseMapId(json, json) : null;
|
|
424
|
+
}
|
|
425
|
+
/** Checks an activity and its embedded objects against each one's owner. */
|
|
426
|
+
async function warnCompatibleIdsInJson(json, context) {
|
|
427
|
+
const root = isJsonMap(json) ? json : null;
|
|
428
|
+
const rootOwners = root == null ? [] : ownerIds(root, "actor", root);
|
|
429
|
+
const gateways = /* @__PURE__ */ new Map();
|
|
430
|
+
const maps = [];
|
|
431
|
+
visitJsonMaps(json, (map, path) => {
|
|
432
|
+
maps.push({
|
|
433
|
+
map,
|
|
434
|
+
path
|
|
435
|
+
});
|
|
436
|
+
});
|
|
437
|
+
for (const { map, path } of maps) {
|
|
438
|
+
const id = parseMapId(map, root);
|
|
439
|
+
if (id == null || !isCompatibleEf61Iri(id)) continue;
|
|
440
|
+
const type = map.type ?? map["@type"];
|
|
441
|
+
if ((Array.isArray(type) ? type : [type]).some((t) => typeof t === "string" && /(?:^|[#/:])(CryptographicKey|Multikey|JsonWebKey|Key)$/.test(t))) continue;
|
|
442
|
+
const did = getPortableDid(id);
|
|
443
|
+
if (did == null) continue;
|
|
444
|
+
const owners = path === "" ? rootOwners : [
|
|
445
|
+
...ownerIds(map, "actor", root),
|
|
446
|
+
...ownerIds(map, "attributedTo", root),
|
|
447
|
+
...rootOwners
|
|
448
|
+
];
|
|
449
|
+
for (const ownerId of owners) {
|
|
450
|
+
if (getPortableDid(ownerId) !== did) continue;
|
|
451
|
+
const key = getCanonicalPortableId(ownerId);
|
|
452
|
+
if (key == null) continue;
|
|
453
|
+
let gateway = gateways.get(key);
|
|
454
|
+
if (gateway === void 0) {
|
|
455
|
+
gateway = getEmbeddedFirstGateway(json, ownerId, did) ?? (context == null ? null : await getLocalFirstGateway(context, ownerId, did));
|
|
456
|
+
gateways.set(key, gateway);
|
|
457
|
+
}
|
|
458
|
+
if (gateway != null) {
|
|
459
|
+
warnCompatibleId(id, did, gateway, path === "" ? "activity" : "object");
|
|
460
|
+
break;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
function ownerIds(map, term, root) {
|
|
466
|
+
const iri = `https://www.w3.org/ns/activitystreams#${term}`;
|
|
467
|
+
const values = [map[term], map[iri]];
|
|
468
|
+
for (const context of [map["@context"], root?.["@context"]]) for (const [alias, definition] of localContextEntries(context)) {
|
|
469
|
+
const mapped = typeof definition === "string" ? definition : isJsonMap(definition) ? definition["@id"] : null;
|
|
470
|
+
if (mapped === iri || mapped === `as:${term}`) values.push(map[alias]);
|
|
471
|
+
}
|
|
472
|
+
return values.flatMap((value) => parseOwnerIds(value, root));
|
|
473
|
+
}
|
|
474
|
+
function localContextEntries(context) {
|
|
475
|
+
if (Array.isArray(context)) return context.flatMap(localContextEntries);
|
|
476
|
+
return isJsonMap(context) ? Object.entries(context) : [];
|
|
477
|
+
}
|
|
478
|
+
function parseOwnerIds(value, root) {
|
|
479
|
+
if (Array.isArray(value)) return value.flatMap((item) => parseOwnerIds(item, root));
|
|
480
|
+
if (isJsonMap(value)) {
|
|
481
|
+
const id = parseMapId(value, root);
|
|
482
|
+
return id == null ? [] : [id];
|
|
483
|
+
}
|
|
484
|
+
if (typeof value !== "string") return [];
|
|
485
|
+
try {
|
|
486
|
+
return [parseIri(value)];
|
|
487
|
+
} catch (error) {
|
|
488
|
+
if (error instanceof TypeError) return [];
|
|
489
|
+
throw error;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
function parseMapId(map, root) {
|
|
493
|
+
let raw = map["@id"] ?? map.id;
|
|
494
|
+
for (const context of [map["@context"], root?.["@context"]]) for (const [alias, definition] of localContextEntries(context)) if ((typeof definition === "string" ? definition : isJsonMap(definition) ? definition["@id"] : null) === "@id" && typeof map[alias] === "string") {
|
|
495
|
+
raw = map[alias];
|
|
496
|
+
break;
|
|
497
|
+
}
|
|
498
|
+
if (typeof raw !== "string") return null;
|
|
499
|
+
try {
|
|
500
|
+
return parseIri(raw);
|
|
501
|
+
} catch (error) {
|
|
502
|
+
if (error instanceof TypeError) return null;
|
|
503
|
+
throw error;
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
function visitJsonMaps(json, visit) {
|
|
507
|
+
const seen = /* @__PURE__ */ new Set();
|
|
508
|
+
const pending = [{
|
|
509
|
+
value: json,
|
|
510
|
+
path: ""
|
|
511
|
+
}];
|
|
512
|
+
while (pending.length > 0) {
|
|
513
|
+
const { value, path } = pending.pop();
|
|
514
|
+
if (value == null || typeof value !== "object" || seen.has(value)) continue;
|
|
515
|
+
seen.add(value);
|
|
516
|
+
if (Array.isArray(value)) {
|
|
517
|
+
for (let i = value.length - 1; i >= 0; i--) pending.push({
|
|
518
|
+
value: value[i],
|
|
519
|
+
path: `${path}/${i}`
|
|
520
|
+
});
|
|
521
|
+
continue;
|
|
522
|
+
}
|
|
523
|
+
const map = value;
|
|
524
|
+
const result = visit(map, path);
|
|
525
|
+
if (result !== void 0) return result;
|
|
526
|
+
for (const key of Object.keys(map).reverse()) {
|
|
527
|
+
if (key === "proof" || key === "@context") continue;
|
|
528
|
+
pending.push({
|
|
529
|
+
value: map[key],
|
|
530
|
+
path: `${path}/${key}`
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
//#endregion
|
|
362
536
|
//#region src/federation/inbox.ts
|
|
363
537
|
async function routeActivity({ context: ctx, json, originalJson, normalizedActivity, ldSignatureVerified, activity, recipient, inboxListeners, inboxContextFactory, listenerInboxContextFactory, inboxErrorHandler, kv, kvPrefixes, queue, span, meterProvider, tracerProvider, idempotencyStrategy }) {
|
|
364
538
|
const logger = getLogger([
|
|
@@ -1202,6 +1376,7 @@ async function handleObject(request, { values, context, objectDispatcher, author
|
|
|
1202
1376
|
Vary: "Accept"
|
|
1203
1377
|
}
|
|
1204
1378
|
});
|
|
1379
|
+
await warnServedCompatibleObject(context, object, getCompactRootId(jsonLd));
|
|
1205
1380
|
return new Response(JSON.stringify(jsonLd), { headers: {
|
|
1206
1381
|
"Content-Type": "application/activity+json",
|
|
1207
1382
|
Vary: "Accept"
|
|
@@ -1305,6 +1480,7 @@ async function handlePortableObject(request, { values, context, objectDispatcher
|
|
|
1305
1480
|
return portableObjectInternalServerError(request);
|
|
1306
1481
|
}
|
|
1307
1482
|
}
|
|
1483
|
+
if (!tombstone) await warnServedCompatibleObject(context, object, servedId);
|
|
1308
1484
|
const headers = new Headers({
|
|
1309
1485
|
"Content-Type": PORTABLE_OBJECT_CONTENT_TYPE,
|
|
1310
1486
|
Vary: "Accept"
|
|
@@ -1315,6 +1491,32 @@ async function handlePortableObject(request, { values, context, objectDispatcher
|
|
|
1315
1491
|
headers
|
|
1316
1492
|
});
|
|
1317
1493
|
}
|
|
1494
|
+
async function warnServedCompatibleObject(context, object, serializedId) {
|
|
1495
|
+
try {
|
|
1496
|
+
if (isActor(object)) return;
|
|
1497
|
+
const id = typeof serializedId === "string" ? parseIri(serializedId) : serializedId ?? object.id;
|
|
1498
|
+
if (id == null || !isCompatibleEf61Iri(id)) return;
|
|
1499
|
+
const did = getPortableDid(id);
|
|
1500
|
+
if (did == null) return;
|
|
1501
|
+
const ownerIds = object instanceof Activity ? object.actorIds : object.attributionIds;
|
|
1502
|
+
for (const ownerId of ownerIds) {
|
|
1503
|
+
if (getPortableDid(ownerId) !== did) continue;
|
|
1504
|
+
const gateway = await getLocalFirstGateway(context, ownerId, did);
|
|
1505
|
+
if (gateway == null) continue;
|
|
1506
|
+
warnCompatibleId(id, did, gateway, object instanceof Activity ? "activity" : "object");
|
|
1507
|
+
break;
|
|
1508
|
+
}
|
|
1509
|
+
} catch (error) {
|
|
1510
|
+
getLogger([
|
|
1511
|
+
"fedify",
|
|
1512
|
+
"federation",
|
|
1513
|
+
"object"
|
|
1514
|
+
]).debug("Could not check the first gateway of {objectId}: {error}", {
|
|
1515
|
+
objectId: object.id?.href,
|
|
1516
|
+
error
|
|
1517
|
+
});
|
|
1518
|
+
}
|
|
1519
|
+
}
|
|
1318
1520
|
function isRequestedPortableObject(object, canonicalId) {
|
|
1319
1521
|
return object.id != null && getCanonicalPortableId(object.id) === canonicalId;
|
|
1320
1522
|
}
|
|
@@ -1418,13 +1620,13 @@ function recordCollectionMetrics(meterProvider, base, result, options = {}) {
|
|
|
1418
1620
|
* @param parameters The parameters for handling the collection.
|
|
1419
1621
|
* @returns A promise that resolves to an HTTP response.
|
|
1420
1622
|
*/
|
|
1421
|
-
async function handleCollection(request, { name: name$
|
|
1422
|
-
const spanName = name$
|
|
1623
|
+
async function handleCollection(request, { name: name$1, identifier, uriGetter, filter, filterPredicate, context, collectionCallbacks, portable, tracerProvider, meterProvider, onUnauthorized, onNotFound }) {
|
|
1624
|
+
const spanName = name$1.trim().replace(/\s+/g, "_");
|
|
1423
1625
|
tracerProvider = tracerProvider ?? trace.getTracerProvider();
|
|
1424
1626
|
const tracer = tracerProvider.getTracer(name, version);
|
|
1425
1627
|
const cursor = new URL(request.url).searchParams.get("cursor");
|
|
1426
1628
|
const metricBase = {
|
|
1427
|
-
kind: getCollectionMetricKind(name$
|
|
1629
|
+
kind: getCollectionMetricKind(name$1),
|
|
1428
1630
|
page: cursor != null,
|
|
1429
1631
|
dispatcher: "built_in"
|
|
1430
1632
|
};
|
|
@@ -1470,7 +1672,7 @@ async function handleCollection(request, { name: name$2, identifier, uriGetter,
|
|
|
1470
1672
|
span.setStatus({ code: SpanStatusCode.ERROR });
|
|
1471
1673
|
return await onNotFound(request);
|
|
1472
1674
|
}
|
|
1473
|
-
const items = filterCollectionItems(page.items, name$
|
|
1675
|
+
const items = filterCollectionItems(page.items, name$1, filterPredicate);
|
|
1474
1676
|
itemCount = items.length;
|
|
1475
1677
|
span.setAttribute("fedify.collection.items", itemCount);
|
|
1476
1678
|
return items;
|
|
@@ -1512,7 +1714,7 @@ async function handleCollection(request, { name: name$2, identifier, uriGetter,
|
|
|
1512
1714
|
} else {
|
|
1513
1715
|
const uri = new URL(portable == null ? baseUri : pageBase);
|
|
1514
1716
|
uri.searchParams.set("cursor", cursor);
|
|
1515
|
-
const pageOrResponse = await tracer.startActiveSpan(`activitypub.dispatch_collection_page ${name$
|
|
1717
|
+
const pageOrResponse = await tracer.startActiveSpan(`activitypub.dispatch_collection_page ${name$1}`, {
|
|
1516
1718
|
kind: SpanKind.SERVER,
|
|
1517
1719
|
attributes: {
|
|
1518
1720
|
"activitypub.collection.id": uri.href,
|
|
@@ -1528,7 +1730,7 @@ async function handleCollection(request, { name: name$2, identifier, uriGetter,
|
|
|
1528
1730
|
span.setStatus({ code: SpanStatusCode.ERROR });
|
|
1529
1731
|
return await onNotFound(request);
|
|
1530
1732
|
}
|
|
1531
|
-
const items = filterCollectionItems(page.items, name$
|
|
1733
|
+
const items = filterCollectionItems(page.items, name$1, filterPredicate);
|
|
1532
1734
|
itemCount = items.length;
|
|
1533
1735
|
span.setAttribute("fedify.collection.items", itemCount);
|
|
1534
1736
|
return {
|
|
@@ -2719,8 +2921,8 @@ var CustomCollectionHandler = class {
|
|
|
2719
2921
|
* @param CollectionPage The CollectionPage constructor.
|
|
2720
2922
|
* @param filterPredicate Optional filter predicate for items.
|
|
2721
2923
|
*/
|
|
2722
|
-
constructor(name$
|
|
2723
|
-
this.name = name$
|
|
2924
|
+
constructor(name$2, values, context, callbacks, tracerProvider = trace.getTracerProvider(), meterProvider, Collection, CollectionPage, filterPredicate, portable) {
|
|
2925
|
+
this.name = name$2;
|
|
2724
2926
|
this.values = values;
|
|
2725
2927
|
this.context = context;
|
|
2726
2928
|
this.callbacks = callbacks;
|
|
@@ -6057,10 +6259,10 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
6057
6259
|
onNotFound
|
|
6058
6260
|
});
|
|
6059
6261
|
case "collection": {
|
|
6060
|
-
const name = route.name
|
|
6262
|
+
const name = this.getCollectionName(route.name);
|
|
6061
6263
|
const callbacks = this.collectionCallbacks[name];
|
|
6062
6264
|
return await handleCustomCollection(request, {
|
|
6063
|
-
name,
|
|
6265
|
+
name: String(name),
|
|
6064
6266
|
context,
|
|
6065
6267
|
values: route.values,
|
|
6066
6268
|
collectionCallbacks: callbacks,
|
|
@@ -6071,10 +6273,10 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
6071
6273
|
});
|
|
6072
6274
|
}
|
|
6073
6275
|
case "orderedCollection": {
|
|
6074
|
-
const name = route.name
|
|
6276
|
+
const name = this.getCollectionName(route.name);
|
|
6075
6277
|
const callbacks = this.collectionCallbacks[name];
|
|
6076
6278
|
return await handleOrderedCollection(request, {
|
|
6077
|
-
name,
|
|
6279
|
+
name: String(name),
|
|
6078
6280
|
context,
|
|
6079
6281
|
values: route.values,
|
|
6080
6282
|
collectionCallbacks: callbacks,
|
|
@@ -6840,8 +7042,10 @@ var ContextImpl = class ContextImpl {
|
|
|
6840
7042
|
const collectionRegex = new RegExp(`^(${["collection", "orderedCollection"].join("|")}):(.*)$`);
|
|
6841
7043
|
const match = route.name.match(collectionRegex);
|
|
6842
7044
|
if (match !== null) {
|
|
6843
|
-
const [, type
|
|
7045
|
+
const [, type] = match;
|
|
7046
|
+
const name = this.federation.getCollectionName(route.name);
|
|
6844
7047
|
const cls = this.federation.collectionTypeIds[name];
|
|
7048
|
+
if (cls == null) return null;
|
|
6845
7049
|
return {
|
|
6846
7050
|
type,
|
|
6847
7051
|
name,
|
|
@@ -7142,17 +7346,26 @@ var ContextImpl = class ContextImpl {
|
|
|
7142
7346
|
activityId: activity.id?.href,
|
|
7143
7347
|
activity
|
|
7144
7348
|
});
|
|
7349
|
+
const activityJsonLd = await activity.toJsonLd({
|
|
7350
|
+
format: "compact",
|
|
7351
|
+
contextLoader: this.contextLoader
|
|
7352
|
+
});
|
|
7353
|
+
try {
|
|
7354
|
+
await warnCompatibleIdsInJson(activityJsonLd, this instanceof RequestContextImpl && !this.isInActorDispatcher() ? this : void 0);
|
|
7355
|
+
} catch (error) {
|
|
7356
|
+
logger.debug("Could not check the first gateway of activity {activityId}: {error}", {
|
|
7357
|
+
activityId: activity.id?.href,
|
|
7358
|
+
error
|
|
7359
|
+
});
|
|
7360
|
+
}
|
|
7145
7361
|
if (this.federation.fanoutQueue == null || options.immediate || options.fanout === "skip" || (options.fanout ?? "auto") === "auto" && globalThis.Object.keys(inboxes).length < FANOUT_THRESHOLD) {
|
|
7146
7362
|
await this.federation.sendActivity(keys, inboxes, activity, {
|
|
7147
7363
|
...opts,
|
|
7364
|
+
activityJsonLd,
|
|
7148
7365
|
normalizeExistingProofs: proofCreated || options.normalizeExistingProofs
|
|
7149
7366
|
});
|
|
7150
7367
|
return true;
|
|
7151
7368
|
}
|
|
7152
|
-
const activityJsonLd = await activity.toJsonLd({
|
|
7153
|
-
format: "compact",
|
|
7154
|
-
contextLoader: this.contextLoader
|
|
7155
|
-
});
|
|
7156
7369
|
assertSupportedCompoundProofShape(activityJsonLd, activity.id?.href);
|
|
7157
7370
|
const keyJwkPairs = await Promise.all(keys.map(async ({ keyId, privateKey }) => ({
|
|
7158
7371
|
keyId: keyId.href,
|
|
@@ -7244,7 +7457,7 @@ var ContextImpl = class ContextImpl {
|
|
|
7244
7457
|
"inbox"
|
|
7245
7458
|
]);
|
|
7246
7459
|
const contextLoader = options.contextLoader ?? this.contextLoader;
|
|
7247
|
-
|
|
7460
|
+
let json = await activity.toJsonLd({ contextLoader });
|
|
7248
7461
|
const keyCache = new KvKeyCache(this.federation.kv, this.federation.kvPrefixes.publicKey, {
|
|
7249
7462
|
documentLoader: this.documentLoader,
|
|
7250
7463
|
contextLoader: this.contextLoader,
|
|
@@ -7306,6 +7519,7 @@ var ContextImpl = class ContextImpl {
|
|
|
7306
7519
|
}
|
|
7307
7520
|
logger.debug("Successfully fetched the remote activity object {activityId}; ignore the original activity and use the fetched one, which is trustworthy.");
|
|
7308
7521
|
activity = fetched;
|
|
7522
|
+
json = await fetched.toJsonLd({ contextLoader });
|
|
7309
7523
|
} else logger.debug("Object Integrity Proofs are verified.", {
|
|
7310
7524
|
recipient,
|
|
7311
7525
|
activity: json
|
|
@@ -7334,6 +7548,10 @@ var RequestContextImpl = class RequestContextImpl extends ContextImpl {
|
|
|
7334
7548
|
#invokedFromActorDispatcher;
|
|
7335
7549
|
#invokedFromObjectDispatcher;
|
|
7336
7550
|
request;
|
|
7551
|
+
/** Whether a diagnostic actor lookup would re-enter the actor dispatcher. */
|
|
7552
|
+
isInActorDispatcher() {
|
|
7553
|
+
return this.#invokedFromActorDispatcher != null;
|
|
7554
|
+
}
|
|
7337
7555
|
url = void 0;
|
|
7338
7556
|
portableRequest;
|
|
7339
7557
|
constructor(options) {
|
|
@@ -7784,4 +8002,4 @@ function getRequestId(request) {
|
|
|
7784
8002
|
return `req_${Date.now().toString(36)}${Math.random().toString(36).slice(2, 8)}`;
|
|
7785
8003
|
}
|
|
7786
8004
|
//#endregion
|
|
7787
|
-
export {
|
|
8005
|
+
export { getEmbeddedFirstGateway as C, handleNodeInfoJrd as D, handleNodeInfo as E, actorDehydrator as O, getCompactRootId as S, handleBenchmarkTrigger as T, coversDelivery as _, OutboxContextImpl as a, PORTABLE_OBJECT_CONTENT_TYPE as b, assertPortableActorActivity as c, handleCustomCollection as d, handleInbox as f, respondWithObjectIfAcceptable as g, respondWithObject as h, KvSpecDeterminer as i, autoIdAssigner as k, handleActor as l, handleOutbox as m, FederationImpl as n, createFederation as o, handleObject as p, InboxContextImpl as r, handleWebFinger as s, ContextImpl as t, handleCollection as u, forwardPortableInboxActivity as v, warnCompatibleIdsInJson as w, parseHashlinkGatewayRequest as x, resolvePortableInboxForwardingOptions as y };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference lib="esnext.temporal" />
|
|
2
2
|
import { n as HttpMessageSignaturesSpecDeterminer } from "./http-DGx0KOws.js";
|
|
3
|
-
import { n as KvStore, t as KvKey } from "./kv-
|
|
3
|
+
import { n as KvStore, t as KvKey } from "./kv-B2mzK5tl.js";
|
|
4
4
|
import { t as DocumentFetchKind } from "./metrics-DoRtI0qU.js";
|
|
5
5
|
import { MeterProvider, TracerProvider } from "@opentelemetry/api";
|
|
6
6
|
import { DocumentLoader, DocumentLoaderFactoryOptions } from "@fedify/vocab-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference lib="esnext.temporal" />
|
|
2
|
-
import { Jt as WebFingerLinksDispatcher, St as ActorHandleMapper, bt as ActorAliasMapper, p as RequestContext, xt as ActorDispatcher } from "./context-
|
|
2
|
+
import { Jt as WebFingerLinksDispatcher, St as ActorHandleMapper, bt as ActorAliasMapper, p as RequestContext, xt as ActorDispatcher } from "./context-CtI307_A.js";
|
|
3
3
|
import { RouterError, RouterOptions, RouterRouteResult } from "@fedify/uri-template";
|
|
4
4
|
import { MeterProvider, Span, Tracer } from "@opentelemetry/api";
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference lib="esnext.temporal" />
|
|
2
|
-
import { Jt as WebFingerLinksDispatcher, St as ActorHandleMapper, bt as ActorAliasMapper, p as RequestContext, xt as ActorDispatcher } from "./context-
|
|
2
|
+
import { Jt as WebFingerLinksDispatcher, St as ActorHandleMapper, bt as ActorAliasMapper, p as RequestContext, xt as ActorDispatcher } from "./context-B6X-t8gI.cjs";
|
|
3
3
|
import { MeterProvider, Span, Tracer } from "@opentelemetry/api";
|
|
4
4
|
import { RouterError, RouterOptions, RouterRouteResult } from "@fedify/uri-template";
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference lib="esnext.temporal" />
|
|
2
2
|
import { n as HttpMessageSignaturesSpecDeterminer } from "./http-BrwKINQn.cjs";
|
|
3
|
-
import { n as KvStore, t as KvKey } from "./kv-
|
|
3
|
+
import { n as KvStore, t as KvKey } from "./kv-B2mzK5tl.cjs";
|
|
4
4
|
import { t as DocumentFetchKind } from "./metrics-DVKYY6K1.cjs";
|
|
5
5
|
import { DocumentLoader, DocumentLoaderFactoryOptions } from "@fedify/vocab-runtime";
|
|
6
6
|
import { MeterProvider, TracerProvider } from "@opentelemetry/api";
|
package/dist/mod.cjs
CHANGED
|
@@ -3,11 +3,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
require("./rolldown-runtime-Dmm3t92W.cjs");
|
|
4
4
|
const require_transformers = require("./transformers-BalCrSsr.cjs");
|
|
5
5
|
require("./compat/mod.cjs");
|
|
6
|
-
const require_http = require("./http-
|
|
7
|
-
const require_federation = require("./federation-
|
|
6
|
+
const require_http = require("./http-DC5DyShJ.cjs");
|
|
7
|
+
const require_federation = require("./federation-DiycMKQx.cjs");
|
|
8
8
|
const require_types = require("./types-poIao40f.cjs");
|
|
9
|
-
const require_portable_collection = require("./portable-collection-
|
|
10
|
-
const require_kv_cache = require("./kv-cache-
|
|
9
|
+
const require_portable_collection = require("./portable-collection-Cz9K1Tas.cjs");
|
|
10
|
+
const require_kv_cache = require("./kv-cache-CsNDrjVT.cjs");
|
|
11
11
|
require("./nodeinfo/mod.cjs");
|
|
12
12
|
require("./runtime/mod.cjs");
|
|
13
13
|
require("./sig/mod.cjs");
|
package/dist/mod.d.cts
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { a as InboundService, c as OutboundService, d as Software, f as Usage, i as parseNodeInfo, l as Protocol, n as ParseNodeInfoOptions, o as JsonValue, p as nodeInfoToJson, r as getNodeInfo, s as NodeInfo, t as GetNodeInfoOptions, u as Services } from "./client-D-XP_Ccb.cjs";
|
|
3
3
|
import { C as exportJwk, D as importJwk, E as generateCryptoKeyPair, S as KeyCache, T as fetchKeyDetailed, _ as validateAcceptSignature, a as VerifyRequestDetailedResult, b as FetchKeyOptions, c as signRequest, d as AcceptSignatureMember, f as AcceptSignatureParameters, g as parseAcceptSignature, h as fulfillAcceptSignature, i as SignRequestOptions, l as verifyRequest, m as formatAcceptSignature, n as HttpMessageSignaturesSpecDeterminer, o as VerifyRequestFailureReason, p as FulfillAcceptSignatureResult, r as Rfc9421SignRequestOptions, s as VerifyRequestOptions, t as HttpMessageSignaturesSpec, u as verifyRequestDetailed, v as FetchKeyDetailedResult, w as fetchKey, x as FetchKeyResult, y as FetchKeyErrorResult } from "./http-BrwKINQn.cjs";
|
|
4
4
|
import { i as getKeyOwner, n as GetKeyOwnerOptions, r as doesActorOwnKey, t as DoesActorOwnKeyOptions } from "./owner-BF0L9cMt.cjs";
|
|
5
|
-
import { $ as respondWithObject, $t as digest, A as InboxChallengePolicy, At as CustomCollectionDispatcher, B as createFederation, Bt as OutboxListener, C as FederationBenchmarkOptions, Ct as ActorKeyPairsDispatcher, D as FederationStartQueueOptions, Dt as CollectionDispatcher, E as FederationOptions, Et as CollectionCursor, F as PortableInboxForwardingOptions, Ft as MediaUploaderCallback, G as TaskEnqueueOptions, Gt as SharedInboxKeyDispatcher, H as createFederationBuilder, Ht as OutboxPermanentFailureHandler, I as Rfc6570Expression, It as NodeInfoDispatcher, J as CreateExponentialBackoffPolicyOptions, Jt as WebFingerLinksDispatcher, K as TaskHandler, Kt as UnverifiedActivityHandler, L as FederationKvPrefixes, Lt as ObjectAuthorizePredicate, M as MediaUploaderSetters, Mt as HashlinkMediaRequest, N as ObjectCallbackSetters, Nt as InboxErrorHandler, O as IdempotencyKeyCallback, Ot as CustomCollectionCounter, P as OutboxListenerSetters, Pt as InboxListener, Q as RespondWithObjectOptions, Qt as buildCollectionSynchronizationHeader, R as FederationOrigin, Rt as ObjectDispatcher, S as Federation, St as ActorHandleMapper, T as FederationFetchOptions, Tt as CollectionCounter, U as TaskDefinition, Ut as PortableActorIdMapper, V as Message, Vt as OutboxListenerErrorHandler, W as TaskDefinitionOptions, Wt as PortableCollectionOwnerMapper, X as RetryPolicy, Xt as SenderKeyPair, Y as RetryContext, Yt as SendActivityError, Z as createExponentialBackoffPolicy, Zt as PageItems, _ as ActorCallbackSetters, _t as NormalizedCircuitBreakerOptions, a as GetObjectOptions, at as MessageQueueEnqueueOptions, b as CustomCollectionCallbackSetters, bt as ActorAliasMapper, c as IsSignedByAudienceOptions, ct as CircuitBreaker, d as ParseUriResult, dt as CircuitBreakerCreateOptions, en as ActivityTransformer, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreakerFailurePolicy, g as SendActivityOptionsForCollection, gt as CircuitBreakerStateChange, h as SendActivityOptions, ht as CircuitBreakerState, i as GetActorOptions, it as MessageQueueDepth, j as InboxListenerSetters, jt as HashlinkMediaDispatcher, k as IdempotencyStrategy, kt as CustomCollectionCursor, l as OutboxContext, lt as CircuitBreakerActivityDrop, m as RouteActivityOptions, mt as CircuitBreakerOptions, n as Context, nt as InProcessMessageQueueOptions, o as GetSignedKeyOptions, ot as MessageQueueListenOptions, p as RequestContext, pt as CircuitBreakerKvState, q as TaskRegistry, qt as UnverifiedActivityReason, r as ForwardActivityOptions, rt as MessageQueue, s as InboxContext, st as ParallelMessageQueue, t as ActorKeyPair, tt as InProcessMessageQueue, u as ParseUriOptions, ut as CircuitBreakerBeforeSendDecision, v as CollectionCallbackSetters, vt as normalizeCircuitBreakerOptions, w as FederationBuilder, wt as AuthorizePredicate, x as Federatable, xt as ActorDispatcher, y as ConstructorWithTypeId, yt as parseCircuitBreakerKvState, z as FederationQueueOptions, zt as OutboxErrorHandler } from "./context-
|
|
6
|
-
import { a as MemoryKvStore, i as KvStoreSetOptions, n as KvStore, r as KvStoreListEntry, t as KvKey } from "./kv-
|
|
5
|
+
import { $ as respondWithObject, $t as digest, A as InboxChallengePolicy, At as CustomCollectionDispatcher, B as createFederation, Bt as OutboxListener, C as FederationBenchmarkOptions, Ct as ActorKeyPairsDispatcher, D as FederationStartQueueOptions, Dt as CollectionDispatcher, E as FederationOptions, Et as CollectionCursor, F as PortableInboxForwardingOptions, Ft as MediaUploaderCallback, G as TaskEnqueueOptions, Gt as SharedInboxKeyDispatcher, H as createFederationBuilder, Ht as OutboxPermanentFailureHandler, I as Rfc6570Expression, It as NodeInfoDispatcher, J as CreateExponentialBackoffPolicyOptions, Jt as WebFingerLinksDispatcher, K as TaskHandler, Kt as UnverifiedActivityHandler, L as FederationKvPrefixes, Lt as ObjectAuthorizePredicate, M as MediaUploaderSetters, Mt as HashlinkMediaRequest, N as ObjectCallbackSetters, Nt as InboxErrorHandler, O as IdempotencyKeyCallback, Ot as CustomCollectionCounter, P as OutboxListenerSetters, Pt as InboxListener, Q as RespondWithObjectOptions, Qt as buildCollectionSynchronizationHeader, R as FederationOrigin, Rt as ObjectDispatcher, S as Federation, St as ActorHandleMapper, T as FederationFetchOptions, Tt as CollectionCounter, U as TaskDefinition, Ut as PortableActorIdMapper, V as Message, Vt as OutboxListenerErrorHandler, W as TaskDefinitionOptions, Wt as PortableCollectionOwnerMapper, X as RetryPolicy, Xt as SenderKeyPair, Y as RetryContext, Yt as SendActivityError, Z as createExponentialBackoffPolicy, Zt as PageItems, _ as ActorCallbackSetters, _t as NormalizedCircuitBreakerOptions, a as GetObjectOptions, at as MessageQueueEnqueueOptions, b as CustomCollectionCallbackSetters, bt as ActorAliasMapper, c as IsSignedByAudienceOptions, ct as CircuitBreaker, d as ParseUriResult, dt as CircuitBreakerCreateOptions, en as ActivityTransformer, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreakerFailurePolicy, g as SendActivityOptionsForCollection, gt as CircuitBreakerStateChange, h as SendActivityOptions, ht as CircuitBreakerState, i as GetActorOptions, it as MessageQueueDepth, j as InboxListenerSetters, jt as HashlinkMediaDispatcher, k as IdempotencyStrategy, kt as CustomCollectionCursor, l as OutboxContext, lt as CircuitBreakerActivityDrop, m as RouteActivityOptions, mt as CircuitBreakerOptions, n as Context, nt as InProcessMessageQueueOptions, o as GetSignedKeyOptions, ot as MessageQueueListenOptions, p as RequestContext, pt as CircuitBreakerKvState, q as TaskRegistry, qt as UnverifiedActivityReason, r as ForwardActivityOptions, rt as MessageQueue, s as InboxContext, st as ParallelMessageQueue, t as ActorKeyPair, tt as InProcessMessageQueue, u as ParseUriOptions, ut as CircuitBreakerBeforeSendDecision, v as CollectionCallbackSetters, vt as normalizeCircuitBreakerOptions, w as FederationBuilder, wt as AuthorizePredicate, x as Federatable, xt as ActorDispatcher, y as ConstructorWithTypeId, yt as parseCircuitBreakerKvState, z as FederationQueueOptions, zt as OutboxErrorHandler } from "./context-B6X-t8gI.cjs";
|
|
6
|
+
import { a as MemoryKvStore, i as KvStoreSetOptions, n as KvStore, r as KvStoreListEntry, t as KvKey } from "./kv-B2mzK5tl.cjs";
|
|
7
7
|
import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "./compat/mod.cjs";
|
|
8
|
-
import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "./mod-
|
|
8
|
+
import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "./mod-C7_2j7VT.cjs";
|
|
9
9
|
import { C as createSignature, D as verifyJsonLd, E as signJsonLd, O as verifySignature, S as attachSignature, T as hasSignatureLike, _ as verifyProof, a as CreateProofOptions, b as VerifyJsonLdOptions, c as VerifyPortableObjectProofFailureReason, d as VerifyProofOptions, f as createProof, g as verifyPortableObjectProof, h as verifyObject, i as verifyPortableObject, l as VerifyPortableObjectProofOptions, m as signObject, n as VerifyPortableObjectOptions, o as SignObjectOptions, p as hasProofLike, r as VerifyPortableObjectResult, s as VerifyObjectOptions, t as VerifyPortableObjectFailureReason, u as VerifyPortableObjectProofResult, v as CreateSignatureOptions, w as detachSignature, x as VerifySignatureOptions, y as SignJsonLdOptions } from "./mod-DoTWIc7F.cjs";
|
|
10
|
-
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./mod-
|
|
10
|
+
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./mod-DFL6IxYQ.cjs";
|
|
11
11
|
export * from "@fedify/vocab-runtime";
|
|
12
12
|
|
|
13
13
|
//#region src/mod.d.ts
|
package/dist/mod.d.ts
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { a as InboundService, c as OutboundService, d as Software, f as Usage, i as parseNodeInfo, l as Protocol, n as ParseNodeInfoOptions, o as JsonValue, p as nodeInfoToJson, r as getNodeInfo, s as NodeInfo, t as GetNodeInfoOptions, u as Services } from "./client-D-XP_Ccb.js";
|
|
3
3
|
import { C as exportJwk, D as importJwk, E as generateCryptoKeyPair, S as KeyCache, T as fetchKeyDetailed, _ as validateAcceptSignature, a as VerifyRequestDetailedResult, b as FetchKeyOptions, c as signRequest, d as AcceptSignatureMember, f as AcceptSignatureParameters, g as parseAcceptSignature, h as fulfillAcceptSignature, i as SignRequestOptions, l as verifyRequest, m as formatAcceptSignature, n as HttpMessageSignaturesSpecDeterminer, o as VerifyRequestFailureReason, p as FulfillAcceptSignatureResult, r as Rfc9421SignRequestOptions, s as VerifyRequestOptions, t as HttpMessageSignaturesSpec, u as verifyRequestDetailed, v as FetchKeyDetailedResult, w as fetchKey, x as FetchKeyResult, y as FetchKeyErrorResult } from "./http-DGx0KOws.js";
|
|
4
4
|
import { i as getKeyOwner, n as GetKeyOwnerOptions, r as doesActorOwnKey, t as DoesActorOwnKeyOptions } from "./owner-BSzr5-I8.js";
|
|
5
|
-
import { $ as respondWithObject, $t as digest, A as InboxChallengePolicy, At as CustomCollectionDispatcher, B as createFederation, Bt as OutboxListener, C as FederationBenchmarkOptions, Ct as ActorKeyPairsDispatcher, D as FederationStartQueueOptions, Dt as CollectionDispatcher, E as FederationOptions, Et as CollectionCursor, F as PortableInboxForwardingOptions, Ft as MediaUploaderCallback, G as TaskEnqueueOptions, Gt as SharedInboxKeyDispatcher, H as createFederationBuilder, Ht as OutboxPermanentFailureHandler, I as Rfc6570Expression, It as NodeInfoDispatcher, J as CreateExponentialBackoffPolicyOptions, Jt as WebFingerLinksDispatcher, K as TaskHandler, Kt as UnverifiedActivityHandler, L as FederationKvPrefixes, Lt as ObjectAuthorizePredicate, M as MediaUploaderSetters, Mt as HashlinkMediaRequest, N as ObjectCallbackSetters, Nt as InboxErrorHandler, O as IdempotencyKeyCallback, Ot as CustomCollectionCounter, P as OutboxListenerSetters, Pt as InboxListener, Q as RespondWithObjectOptions, Qt as buildCollectionSynchronizationHeader, R as FederationOrigin, Rt as ObjectDispatcher, S as Federation, St as ActorHandleMapper, T as FederationFetchOptions, Tt as CollectionCounter, U as TaskDefinition, Ut as PortableActorIdMapper, V as Message, Vt as OutboxListenerErrorHandler, W as TaskDefinitionOptions, Wt as PortableCollectionOwnerMapper, X as RetryPolicy, Xt as SenderKeyPair, Y as RetryContext, Yt as SendActivityError, Z as createExponentialBackoffPolicy, Zt as PageItems, _ as ActorCallbackSetters, _t as NormalizedCircuitBreakerOptions, a as GetObjectOptions, at as MessageQueueEnqueueOptions, b as CustomCollectionCallbackSetters, bt as ActorAliasMapper, c as IsSignedByAudienceOptions, ct as CircuitBreaker, d as ParseUriResult, dt as CircuitBreakerCreateOptions, en as ActivityTransformer, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreakerFailurePolicy, g as SendActivityOptionsForCollection, gt as CircuitBreakerStateChange, h as SendActivityOptions, ht as CircuitBreakerState, i as GetActorOptions, it as MessageQueueDepth, j as InboxListenerSetters, jt as HashlinkMediaDispatcher, k as IdempotencyStrategy, kt as CustomCollectionCursor, l as OutboxContext, lt as CircuitBreakerActivityDrop, m as RouteActivityOptions, mt as CircuitBreakerOptions, n as Context, nt as InProcessMessageQueueOptions, o as GetSignedKeyOptions, ot as MessageQueueListenOptions, p as RequestContext, pt as CircuitBreakerKvState, q as TaskRegistry, qt as UnverifiedActivityReason, r as ForwardActivityOptions, rt as MessageQueue, s as InboxContext, st as ParallelMessageQueue, t as ActorKeyPair, tt as InProcessMessageQueue, u as ParseUriOptions, ut as CircuitBreakerBeforeSendDecision, v as CollectionCallbackSetters, vt as normalizeCircuitBreakerOptions, w as FederationBuilder, wt as AuthorizePredicate, x as Federatable, xt as ActorDispatcher, y as ConstructorWithTypeId, yt as parseCircuitBreakerKvState, z as FederationQueueOptions, zt as OutboxErrorHandler } from "./context-
|
|
6
|
-
import { a as MemoryKvStore, i as KvStoreSetOptions, n as KvStore, r as KvStoreListEntry, t as KvKey } from "./kv-
|
|
5
|
+
import { $ as respondWithObject, $t as digest, A as InboxChallengePolicy, At as CustomCollectionDispatcher, B as createFederation, Bt as OutboxListener, C as FederationBenchmarkOptions, Ct as ActorKeyPairsDispatcher, D as FederationStartQueueOptions, Dt as CollectionDispatcher, E as FederationOptions, Et as CollectionCursor, F as PortableInboxForwardingOptions, Ft as MediaUploaderCallback, G as TaskEnqueueOptions, Gt as SharedInboxKeyDispatcher, H as createFederationBuilder, Ht as OutboxPermanentFailureHandler, I as Rfc6570Expression, It as NodeInfoDispatcher, J as CreateExponentialBackoffPolicyOptions, Jt as WebFingerLinksDispatcher, K as TaskHandler, Kt as UnverifiedActivityHandler, L as FederationKvPrefixes, Lt as ObjectAuthorizePredicate, M as MediaUploaderSetters, Mt as HashlinkMediaRequest, N as ObjectCallbackSetters, Nt as InboxErrorHandler, O as IdempotencyKeyCallback, Ot as CustomCollectionCounter, P as OutboxListenerSetters, Pt as InboxListener, Q as RespondWithObjectOptions, Qt as buildCollectionSynchronizationHeader, R as FederationOrigin, Rt as ObjectDispatcher, S as Federation, St as ActorHandleMapper, T as FederationFetchOptions, Tt as CollectionCounter, U as TaskDefinition, Ut as PortableActorIdMapper, V as Message, Vt as OutboxListenerErrorHandler, W as TaskDefinitionOptions, Wt as PortableCollectionOwnerMapper, X as RetryPolicy, Xt as SenderKeyPair, Y as RetryContext, Yt as SendActivityError, Z as createExponentialBackoffPolicy, Zt as PageItems, _ as ActorCallbackSetters, _t as NormalizedCircuitBreakerOptions, a as GetObjectOptions, at as MessageQueueEnqueueOptions, b as CustomCollectionCallbackSetters, bt as ActorAliasMapper, c as IsSignedByAudienceOptions, ct as CircuitBreaker, d as ParseUriResult, dt as CircuitBreakerCreateOptions, en as ActivityTransformer, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreakerFailurePolicy, g as SendActivityOptionsForCollection, gt as CircuitBreakerStateChange, h as SendActivityOptions, ht as CircuitBreakerState, i as GetActorOptions, it as MessageQueueDepth, j as InboxListenerSetters, jt as HashlinkMediaDispatcher, k as IdempotencyStrategy, kt as CustomCollectionCursor, l as OutboxContext, lt as CircuitBreakerActivityDrop, m as RouteActivityOptions, mt as CircuitBreakerOptions, n as Context, nt as InProcessMessageQueueOptions, o as GetSignedKeyOptions, ot as MessageQueueListenOptions, p as RequestContext, pt as CircuitBreakerKvState, q as TaskRegistry, qt as UnverifiedActivityReason, r as ForwardActivityOptions, rt as MessageQueue, s as InboxContext, st as ParallelMessageQueue, t as ActorKeyPair, tt as InProcessMessageQueue, u as ParseUriOptions, ut as CircuitBreakerBeforeSendDecision, v as CollectionCallbackSetters, vt as normalizeCircuitBreakerOptions, w as FederationBuilder, wt as AuthorizePredicate, x as Federatable, xt as ActorDispatcher, y as ConstructorWithTypeId, yt as parseCircuitBreakerKvState, z as FederationQueueOptions, zt as OutboxErrorHandler } from "./context-CtI307_A.js";
|
|
6
|
+
import { a as MemoryKvStore, i as KvStoreSetOptions, n as KvStore, r as KvStoreListEntry, t as KvKey } from "./kv-B2mzK5tl.js";
|
|
7
7
|
import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "./compat/mod.js";
|
|
8
|
-
import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "./mod-
|
|
8
|
+
import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "./mod-BhTaDR5H.js";
|
|
9
9
|
import { C as createSignature, D as verifyJsonLd, E as signJsonLd, O as verifySignature, S as attachSignature, T as hasSignatureLike, _ as verifyProof, a as CreateProofOptions, b as VerifyJsonLdOptions, c as VerifyPortableObjectProofFailureReason, d as VerifyProofOptions, f as createProof, g as verifyPortableObjectProof, h as verifyObject, i as verifyPortableObject, l as VerifyPortableObjectProofOptions, m as signObject, n as VerifyPortableObjectOptions, o as SignObjectOptions, p as hasProofLike, r as VerifyPortableObjectResult, s as VerifyObjectOptions, t as VerifyPortableObjectFailureReason, u as VerifyPortableObjectProofResult, v as CreateSignatureOptions, w as detachSignature, x as VerifySignatureOptions, y as SignJsonLdOptions } from "./mod-Cy9VNHVw.js";
|
|
10
|
-
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./mod-
|
|
10
|
+
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./mod-B8MI1mpi.js";
|
|
11
11
|
export * from "@fedify/vocab-runtime";
|
|
12
12
|
|
|
13
13
|
//#region src/mod.d.ts
|
package/dist/mod.js
CHANGED
|
@@ -3,11 +3,11 @@ import { URLPattern } from "urlpattern-polyfill";
|
|
|
3
3
|
import "./rolldown-runtime-BC-Eo5Mj.js";
|
|
4
4
|
import { n as autoIdAssigner, r as getDefaultActivityTransformers, t as actorDehydrator } from "./transformers-DAtXl_Kc.js";
|
|
5
5
|
import "./compat/mod.js";
|
|
6
|
-
import { D as createSignature, H as fetchKeyDetailed, I as verifyJsonLd, L as verifySignature, O as detachSignature, P as signJsonLd, T as attachSignature, U as generateCryptoKeyPair, V as fetchKey, W as importJwk, _ as verifyObject, _t as validateAcceptSignature, a as signRequest, c as verifyRequestDetailed, gt as parseAcceptSignature, h as signObject, ht as fulfillAcceptSignature, j as hasSignatureLike, m as hasProofLike, mt as formatAcceptSignature, p as createProof, s as verifyRequest, v as verifyPortableObjectProof, x as verifyProof, z as exportJwk } from "./http-
|
|
7
|
-
import { a as respondWithObjectIfAcceptable, c as digest, d as parseCircuitBreakerKvState, f as createFederationBuilder, i as respondWithObject, l as CircuitBreaker, n as handleWebFinger, o as SendActivityError, r as createExponentialBackoffPolicy, s as buildCollectionSynchronizationHeader, t as createFederation, u as normalizeCircuitBreakerOptions } from "./middleware-
|
|
6
|
+
import { D as createSignature, H as fetchKeyDetailed, I as verifyJsonLd, L as verifySignature, O as detachSignature, P as signJsonLd, T as attachSignature, U as generateCryptoKeyPair, V as fetchKey, W as importJwk, _ as verifyObject, _t as validateAcceptSignature, a as signRequest, c as verifyRequestDetailed, gt as parseAcceptSignature, h as signObject, ht as fulfillAcceptSignature, j as hasSignatureLike, m as hasProofLike, mt as formatAcceptSignature, p as createProof, s as verifyRequest, v as verifyPortableObjectProof, x as verifyProof, z as exportJwk } from "./http-CHqz_Jp6.js";
|
|
7
|
+
import { a as respondWithObjectIfAcceptable, c as digest, d as parseCircuitBreakerKvState, f as createFederationBuilder, i as respondWithObject, l as CircuitBreaker, n as handleWebFinger, o as SendActivityError, r as createExponentialBackoffPolicy, s as buildCollectionSynchronizationHeader, t as createFederation, u as normalizeCircuitBreakerOptions } from "./middleware-D2scpP9Q.js";
|
|
8
8
|
import { n as getNodeInfo, r as parseNodeInfo, t as nodeInfoToJson } from "./types-_S2_MeLF.js";
|
|
9
|
-
import { n as doesActorOwnKey, r as getKeyOwner, t as verifyPortableObject } from "./portable-collection-
|
|
10
|
-
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-
|
|
9
|
+
import { n as doesActorOwnKey, r as getKeyOwner, t as verifyPortableObject } from "./portable-collection-4SnmDcTc.js";
|
|
10
|
+
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-CgYK8siN.js";
|
|
11
11
|
import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue, Router, RouterError } from "./federation/mod.js";
|
|
12
12
|
import "./nodeinfo/mod.js";
|
|
13
13
|
import "./runtime/mod.js";
|
|
@@ -5,7 +5,7 @@ import { r as createRequestContext } from "../context-8Tu9kea0.mjs";
|
|
|
5
5
|
import { t as MemoryKvStore } from "../kv-DCHkaJ9-.mjs";
|
|
6
6
|
import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
|
|
7
7
|
import "../std__assert-DvMDRPes.mjs";
|
|
8
|
-
import {
|
|
8
|
+
import { D as handleNodeInfoJrd, E as handleNodeInfo, o as createFederation } from "../middleware-DoAk0Q3s.mjs";
|
|
9
9
|
import { test } from "@fedify/fixture";
|
|
10
10
|
//#region src/nodeinfo/handler.test.ts
|
|
11
11
|
test("handleNodeInfo()", async () => {
|
package/dist/otel/mod.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference lib="esnext.temporal" />
|
|
2
|
-
import { n as KvStore, t as KvKey } from "../kv-
|
|
2
|
+
import { n as KvStore, t as KvKey } from "../kv-B2mzK5tl.cjs";
|
|
3
3
|
import { ReadableSpan, SpanExporter } from "@opentelemetry/sdk-trace-base";
|
|
4
4
|
import { ExportResultCode } from "@opentelemetry/core";
|
|
5
5
|
|
package/dist/otel/mod.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference lib="esnext.temporal" />
|
|
2
|
-
import { n as KvStore, t as KvKey } from "../kv-
|
|
2
|
+
import { n as KvStore, t as KvKey } from "../kv-B2mzK5tl.js";
|
|
3
3
|
import { ExportResultCode } from "@opentelemetry/core";
|
|
4
4
|
import { ReadableSpan, SpanExporter } from "@opentelemetry/sdk-trace-base";
|
|
5
5
|
|
|
@@ -2,10 +2,10 @@ import "temporal-polyfill";
|
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
4
|
import { d as isPortableUri, l as isPortableId, n as getCanonicalPortableId, p as isSamePublicKey$1, s as isCompatibleKeyId } from "./portable-key-id-Ca30-hOa.mjs";
|
|
5
|
-
import { n as version, t as name } from "./deno-
|
|
5
|
+
import { n as version, t as name } from "./deno-9flirCWb.mjs";
|
|
6
6
|
import { i as parseKeyOwnerEvidence, r as getVerifiedKeyOwnerEvidence } from "./key-owner-evidence-APB6NpSk.mjs";
|
|
7
|
-
import { l as verifyKeyOwnership, n as exportJwk, r as fetchActorDocument } from "./key-
|
|
8
|
-
import { n as resolvePortableActorKey, t as fetchPortableGatewayKey } from "./portable-key-
|
|
7
|
+
import { l as verifyKeyOwnership, n as exportJwk, r as fetchActorDocument } from "./key-TtgqklZ1.mjs";
|
|
8
|
+
import { n as resolvePortableActorKey, t as fetchPortableGatewayKey } from "./portable-key-DYr6MZUl.mjs";
|
|
9
9
|
import { getLogger } from "@logtape/logtape";
|
|
10
10
|
import { CryptographicKey, Object as Object$1, isActor } from "@fedify/vocab";
|
|
11
11
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Temporal } from "temporal-polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
|
-
import { At as name, B as fetchActorDocument, Dt as isPortableUri, J as getVerifiedKeyOwnerEvidence, K as verifyKeyOwnership, Tt as isPortableId, Y as parseKeyOwnerEvidence, b as verifyPortableObjectProofWithRoot, jt as version, kt as isSamePublicKey$1, l as fetchPortableGatewayKey, u as resolvePortableActorKey, v as verifyPortableObjectProof, wt as isCompatibleKeyId, yt as getCanonicalPortableId, z as exportJwk } from "./http-
|
|
3
|
+
import { At as name, B as fetchActorDocument, Dt as isPortableUri, J as getVerifiedKeyOwnerEvidence, K as verifyKeyOwnership, Tt as isPortableId, Y as parseKeyOwnerEvidence, b as verifyPortableObjectProofWithRoot, jt as version, kt as isSamePublicKey$1, l as fetchPortableGatewayKey, u as resolvePortableActorKey, v as verifyPortableObjectProof, wt as isCompatibleKeyId, yt as getCanonicalPortableId, z as exportJwk } from "./http-CHqz_Jp6.js";
|
|
4
4
|
import { getLogger } from "@logtape/logtape";
|
|
5
5
|
import { CollectionPage, CryptographicKey, Object as Object$1, isActor } from "@fedify/vocab";
|
|
6
6
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|