@fedify/fedify 2.4.0-dev.2073 → 2.4.0-dev.2084
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-CVHpPAjK.mjs → builder-BGlpUocK.mjs} +2 -2
- package/dist/compat/transformers.test.mjs +1 -1
- package/dist/{compound-proof-B5Skp-vE.mjs → compound-proof-B6Aj2kGY.mjs} +1 -1
- package/dist/{deno-LYTbBhYV.mjs → deno-Dn-py9Zy.mjs} +1 -1
- package/dist/{docloader-C0SWQylk.mjs → docloader-BUq5bYJr.mjs} +2 -2
- package/dist/federation/builder.test.mjs +1 -1
- package/dist/federation/compound-fanout.test.mjs +3 -3
- package/dist/federation/handler-compound-proof.test.mjs +137 -10
- 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 +7 -7
- package/dist/federation/mod.cjs +1 -1
- package/dist/federation/mod.js +1 -1
- package/dist/federation/outgoing-proof.test.mjs +5 -5
- package/dist/federation/portable-gateway-keys.test.mjs +3 -3
- package/dist/federation/portable-inbox.test.mjs +401 -6
- package/dist/federation/portable.test.mjs +3 -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-B1aeTKKN.cjs → federation-BLGx8JUH.cjs} +126 -22
- package/dist/{http-vfTpzGEq.js → http-4PCCvhsU.js} +1 -1
- package/dist/{http-C7qHlv-b.mjs → http-B0VRNipE.mjs} +4 -4
- package/dist/{http-DGk8XI38.cjs → http-B5q1CHtL.cjs} +1 -1
- package/dist/{key-BYXnTGro.mjs → key-BJrp524f.mjs} +2 -2
- package/dist/{kv-cache-DCJuwdnB.js → kv-cache-1KUmAPH7.js} +1 -1
- package/dist/{kv-cache-DEH5jyND.mjs → kv-cache-C4C3LyYW.mjs} +1 -1
- package/dist/{kv-cache-DvqkKNIj.cjs → kv-cache-Dhhhrryv.cjs} +1 -1
- package/dist/{ld-DT3e2hOv.mjs → ld-BmFz5NLA.mjs} +3 -3
- package/dist/{metrics-DvlvYpq_.mjs → metrics-Beod6tzO.mjs} +1 -1
- package/dist/{middleware-BJcez_E3.mjs → middleware-B7CNsyqt.mjs} +1 -1
- package/dist/{middleware-CpyCNOW_.mjs → middleware-BKeQYPm0.mjs} +136 -32
- package/dist/{middleware-CCbyUF4c.js → middleware-D_9pNYe9.js} +126 -22
- package/dist/mod.cjs +5 -5
- package/dist/mod.js +5 -5
- package/dist/nodeinfo/handler.test.mjs +1 -1
- package/dist/{owner-DCIH7Iq0.cjs → owner-BQFZtFV4.cjs} +1 -1
- package/dist/{owner-CDsVeZI7.mjs → owner-CsKVgMzk.mjs} +3 -3
- package/dist/{owner-DfGz0cXm.js → owner-_pbbgLJK.js} +1 -1
- package/dist/{portable-key-DCyKGCQd.mjs → portable-key-B4R-CiIV.mjs} +2 -2
- package/dist/{proof-CxsVG6vM.mjs → proof-ozG4HfcQ.mjs} +4 -4
- package/dist/{send-BZJ7NsVV.mjs → send-ClPt8nYu.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 +3 -3
- package/dist/sig/mod.js +3 -3
- package/dist/sig/owner.test.mjs +1 -1
- package/dist/sig/portable-collection.test.mjs +2 -2
- package/dist/sig/portable-key.test.mjs +3 -3
- package/dist/sig/proof.test.mjs +3 -3
- package/dist/{sig-Cs9_ecdh.js → sig-DhdomAN0.js} +2 -2
- package/dist/{sig-C6TnADze.cjs → sig-k3C8sF7g.cjs} +2 -2
- package/dist/{temporal-CLzSfIOV.mjs → temporal-Ba0EAZAI.mjs} +1 -1
- package/dist/testing/kv.test.mjs +1 -1
- 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.js +1 -1
- package/package.json +7 -7
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
2
2
|
const require_rolldown_runtime = require("./rolldown-runtime-Dmm3t92W.cjs");
|
|
3
3
|
const require_transformers = require("./transformers-BalCrSsr.cjs");
|
|
4
|
-
const require_http = require("./http-
|
|
4
|
+
const require_http = require("./http-B5q1CHtL.cjs");
|
|
5
5
|
const require_types = require("./types-Be2zbyeG.cjs");
|
|
6
|
-
const require_owner = require("./owner-
|
|
7
|
-
const require_kv_cache = require("./kv-cache-
|
|
6
|
+
const require_owner = require("./owner-BQFZtFV4.cjs");
|
|
7
|
+
const require_kv_cache = require("./kv-cache-Dhhhrryv.cjs");
|
|
8
8
|
let _logtape_logtape = require("@logtape/logtape");
|
|
9
9
|
let _fedify_uri_template = require("@fedify/uri-template");
|
|
10
10
|
let _fedify_vocab = require("@fedify/vocab");
|
|
@@ -2638,13 +2638,13 @@ function recordCollectionMetrics(meterProvider, base, result, options = {}) {
|
|
|
2638
2638
|
* @param parameters The parameters for handling the collection.
|
|
2639
2639
|
* @returns A promise that resolves to an HTTP response.
|
|
2640
2640
|
*/
|
|
2641
|
-
async function handleCollection(request, { name: name$
|
|
2642
|
-
const spanName = name$
|
|
2641
|
+
async function handleCollection(request, { name: name$1, identifier, uriGetter, filter, filterPredicate, context, collectionCallbacks, tracerProvider, meterProvider, onUnauthorized, onNotFound }) {
|
|
2642
|
+
const spanName = name$1.trim().replace(/\s+/g, "_");
|
|
2643
2643
|
tracerProvider = tracerProvider ?? _opentelemetry_api.trace.getTracerProvider();
|
|
2644
2644
|
const tracer = tracerProvider.getTracer(require_http.name, require_http.version);
|
|
2645
2645
|
const cursor = new URL(request.url).searchParams.get("cursor");
|
|
2646
2646
|
const metricBase = {
|
|
2647
|
-
kind: getCollectionMetricKind(name$
|
|
2647
|
+
kind: getCollectionMetricKind(name$1),
|
|
2648
2648
|
page: cursor != null,
|
|
2649
2649
|
dispatcher: "built_in"
|
|
2650
2650
|
};
|
|
@@ -2685,7 +2685,7 @@ async function handleCollection(request, { name: name$2, identifier, uriGetter,
|
|
|
2685
2685
|
span.setStatus({ code: _opentelemetry_api.SpanStatusCode.ERROR });
|
|
2686
2686
|
return await onNotFound(request);
|
|
2687
2687
|
}
|
|
2688
|
-
const items = filterCollectionItems(page.items, name$
|
|
2688
|
+
const items = filterCollectionItems(page.items, name$1, filterPredicate);
|
|
2689
2689
|
itemCount = items.length;
|
|
2690
2690
|
span.setAttribute("fedify.collection.items", itemCount);
|
|
2691
2691
|
return items;
|
|
@@ -2725,7 +2725,7 @@ async function handleCollection(request, { name: name$2, identifier, uriGetter,
|
|
|
2725
2725
|
} else {
|
|
2726
2726
|
const uri = new URL(baseUri);
|
|
2727
2727
|
uri.searchParams.set("cursor", cursor);
|
|
2728
|
-
const pageOrResponse = await tracer.startActiveSpan(`activitypub.dispatch_collection_page ${name$
|
|
2728
|
+
const pageOrResponse = await tracer.startActiveSpan(`activitypub.dispatch_collection_page ${name$1}`, {
|
|
2729
2729
|
kind: _opentelemetry_api.SpanKind.SERVER,
|
|
2730
2730
|
attributes: {
|
|
2731
2731
|
"activitypub.collection.id": uri.href,
|
|
@@ -2741,7 +2741,7 @@ async function handleCollection(request, { name: name$2, identifier, uriGetter,
|
|
|
2741
2741
|
span.setStatus({ code: _opentelemetry_api.SpanStatusCode.ERROR });
|
|
2742
2742
|
return await onNotFound(request);
|
|
2743
2743
|
}
|
|
2744
|
-
const items = filterCollectionItems(page.items, name$
|
|
2744
|
+
const items = filterCollectionItems(page.items, name$1, filterPredicate);
|
|
2745
2745
|
itemCount = items.length;
|
|
2746
2746
|
span.setAttribute("fedify.collection.items", itemCount);
|
|
2747
2747
|
return {
|
|
@@ -3671,8 +3671,9 @@ async function handleInboxInternal(request, parameters, span) {
|
|
|
3671
3671
|
});
|
|
3672
3672
|
}
|
|
3673
3673
|
if (!skipSignatureVerification) {
|
|
3674
|
-
|
|
3675
|
-
|
|
3674
|
+
const compoundJson = Array.isArray(json) ? json : jsonWithoutSig;
|
|
3675
|
+
if (inspectCompoundPortableObjectApplicability(compoundJson, INBOX_COMPOUND_PROOF_LIMITS) !== "absent") {
|
|
3676
|
+
const compoundProof = await verifyCompoundPortableObjectProofs(compoundJson, INBOX_COMPOUND_PROOF_LIMITS, {
|
|
3676
3677
|
documentLoader: ctx.documentLoader,
|
|
3677
3678
|
keyCache,
|
|
3678
3679
|
meterProvider,
|
|
@@ -3888,8 +3889,8 @@ var CustomCollectionHandler = class {
|
|
|
3888
3889
|
* @param CollectionPage The CollectionPage constructor.
|
|
3889
3890
|
* @param filterPredicate Optional filter predicate for items.
|
|
3890
3891
|
*/
|
|
3891
|
-
constructor(name$
|
|
3892
|
-
this.name = name$
|
|
3892
|
+
constructor(name$2, values, context, callbacks, tracerProvider = _opentelemetry_api.trace.getTracerProvider(), meterProvider, Collection, CollectionPage, filterPredicate) {
|
|
3893
|
+
this.name = name$2;
|
|
3893
3894
|
this.values = values;
|
|
3894
3895
|
this.context = context;
|
|
3895
3896
|
this.callbacks = callbacks;
|
|
@@ -5058,6 +5059,7 @@ function resolvePortableInboxRecipient(actor, { authority, canonicalInboxId, loc
|
|
|
5058
5059
|
return {
|
|
5059
5060
|
status: "accepted",
|
|
5060
5061
|
recipient: {
|
|
5062
|
+
actorId: id,
|
|
5061
5063
|
inboxId,
|
|
5062
5064
|
canonicalInboxId,
|
|
5063
5065
|
gateways
|
|
@@ -5091,8 +5093,11 @@ function canonicalize(iri) {
|
|
|
5091
5093
|
* Forwarding is therefore best effort. Without {@link KvStore.cas}, nothing is
|
|
5092
5094
|
* forwarded.
|
|
5093
5095
|
*
|
|
5094
|
-
* Forwarded requests are
|
|
5095
|
-
*
|
|
5096
|
+
* Forwarded requests are signed with HTTP Signatures by the RSA key among
|
|
5097
|
+
* {@link ForwardPortableInboxActivityParameters.getKeys}, if any, so that
|
|
5098
|
+
* servers requiring HTTP Signatures accept them, and are sent unsigned
|
|
5099
|
+
* otherwise. Either way, the receiving gateways authenticate the activity by
|
|
5100
|
+
* its own proof.
|
|
5096
5101
|
* @param parameters The parameters.
|
|
5097
5102
|
* @returns The target inbox URLs that the activity was handed off to.
|
|
5098
5103
|
*/
|
|
@@ -5164,20 +5169,59 @@ function getForwardingTargets(recipient, excludedOrigins) {
|
|
|
5164
5169
|
}
|
|
5165
5170
|
return targets;
|
|
5166
5171
|
}
|
|
5167
|
-
|
|
5172
|
+
/**
|
|
5173
|
+
* Resolves the key that signs forwarded requests: the first RSASSA-PKCS1-v1_5
|
|
5174
|
+
* key, as {@link sendActivity} signs requests only with such a key. Since
|
|
5175
|
+
* the targets have already been claimed, the activity is forwarded unsigned
|
|
5176
|
+
* rather than not at all if the key cannot be resolved or used.
|
|
5177
|
+
*/
|
|
5178
|
+
async function resolveForwardingKey({ getKeys, activityId }) {
|
|
5179
|
+
if (getKeys == null) return null;
|
|
5180
|
+
const logger = (0, _logtape_logtape.getLogger)([
|
|
5181
|
+
"fedify",
|
|
5182
|
+
"federation",
|
|
5183
|
+
"inbox"
|
|
5184
|
+
]);
|
|
5185
|
+
let key;
|
|
5186
|
+
try {
|
|
5187
|
+
key = (await getKeys()).find((k) => k.privateKey.algorithm.name === "RSASSA-PKCS1-v1_5");
|
|
5188
|
+
} catch (error) {
|
|
5189
|
+
logger.error("Failed to get the gateway keys to sign forwarded requests with; forwarding activity {activityId} without HTTP Signatures:\n{error}", {
|
|
5190
|
+
activityId: activityId.href,
|
|
5191
|
+
error
|
|
5192
|
+
});
|
|
5193
|
+
return null;
|
|
5194
|
+
}
|
|
5195
|
+
if (key == null) return null;
|
|
5196
|
+
try {
|
|
5197
|
+
require_http.validateCryptoKey(key.privateKey, "private");
|
|
5198
|
+
} catch (error) {
|
|
5199
|
+
if (!(error instanceof TypeError)) throw error;
|
|
5200
|
+
logger.warn("The gateway key {keyId} cannot sign forwarded requests; forwarding activity {activityId} without HTTP Signatures:\n{error}", {
|
|
5201
|
+
keyId: key.keyId.href,
|
|
5202
|
+
activityId: activityId.href,
|
|
5203
|
+
error
|
|
5204
|
+
});
|
|
5205
|
+
return null;
|
|
5206
|
+
}
|
|
5207
|
+
return key;
|
|
5208
|
+
}
|
|
5209
|
+
async function forwardImmediately(parameters, inboxes) {
|
|
5210
|
+
const { activity, activityId, activityType, allowPrivateAddress, specDeterminer, options, meterProvider, tracerProvider } = parameters;
|
|
5168
5211
|
const logger = (0, _logtape_logtape.getLogger)([
|
|
5169
5212
|
"fedify",
|
|
5170
5213
|
"federation",
|
|
5171
5214
|
"inbox"
|
|
5172
5215
|
]);
|
|
5173
5216
|
const deadline = (options ?? resolvePortableInboxForwardingOptions()).deadline.total("millisecond");
|
|
5174
|
-
const
|
|
5217
|
+
const forwarding = resolveForwardingKey(parameters).then((key) => Promise.all(inboxes.map((inbox) => sendActivity({
|
|
5175
5218
|
activity,
|
|
5176
5219
|
activityId: activityId.href,
|
|
5177
5220
|
activityType,
|
|
5178
|
-
keys: [],
|
|
5221
|
+
keys: key == null ? [] : [key],
|
|
5179
5222
|
inbox,
|
|
5180
5223
|
allowPrivateAddress,
|
|
5224
|
+
specDeterminer,
|
|
5181
5225
|
meterProvider,
|
|
5182
5226
|
tracerProvider
|
|
5183
5227
|
}).catch((error) => {
|
|
@@ -5186,9 +5230,9 @@ async function forwardImmediately({ activity, activityId, activityType, allowPri
|
|
|
5186
5230
|
inbox: inbox.href,
|
|
5187
5231
|
error
|
|
5188
5232
|
});
|
|
5189
|
-
}));
|
|
5233
|
+
}))));
|
|
5190
5234
|
let timer;
|
|
5191
|
-
const timedOut = await Promise.race([
|
|
5235
|
+
const timedOut = await Promise.race([forwarding.then(() => false), new Promise((resolve) => {
|
|
5192
5236
|
timer = setTimeout(() => resolve(true), deadline);
|
|
5193
5237
|
})]);
|
|
5194
5238
|
clearTimeout(timer);
|
|
@@ -5197,12 +5241,27 @@ async function forwardImmediately({ activity, activityId, activityType, allowPri
|
|
|
5197
5241
|
deadline
|
|
5198
5242
|
});
|
|
5199
5243
|
}
|
|
5200
|
-
async function enqueueForwarding(
|
|
5244
|
+
async function enqueueForwarding(parameters, outboxQueue, inboxes) {
|
|
5245
|
+
const { activity, activityId, activityType, baseUrl, startQueue, meterProvider } = parameters;
|
|
5201
5246
|
const logger = (0, _logtape_logtape.getLogger)([
|
|
5202
5247
|
"fedify",
|
|
5203
5248
|
"federation",
|
|
5204
5249
|
"inbox"
|
|
5205
5250
|
]);
|
|
5251
|
+
const key = await resolveForwardingKey(parameters);
|
|
5252
|
+
const keys = [];
|
|
5253
|
+
if (key != null) try {
|
|
5254
|
+
keys.push({
|
|
5255
|
+
keyId: key.keyId.href,
|
|
5256
|
+
privateKey: await require_http.exportJwk(key.privateKey)
|
|
5257
|
+
});
|
|
5258
|
+
} catch (error) {
|
|
5259
|
+
logger.error("Failed to export the gateway key {keyId}; forwarding activity {activityId} without HTTP Signatures:\n{error}", {
|
|
5260
|
+
keyId: key.keyId.href,
|
|
5261
|
+
activityId: activityId.href,
|
|
5262
|
+
error
|
|
5263
|
+
});
|
|
5264
|
+
}
|
|
5206
5265
|
startQueue?.();
|
|
5207
5266
|
const started = (/* @__PURE__ */ new Date()).toISOString();
|
|
5208
5267
|
const traceContext = {};
|
|
@@ -5212,7 +5271,7 @@ async function enqueueForwarding({ activity, activityId, activityType, baseUrl,
|
|
|
5212
5271
|
type: "outbox",
|
|
5213
5272
|
id: crypto.randomUUID(),
|
|
5214
5273
|
baseUrl,
|
|
5215
|
-
keys
|
|
5274
|
+
keys,
|
|
5216
5275
|
activity,
|
|
5217
5276
|
activityId: activityId.href,
|
|
5218
5277
|
activityType,
|
|
@@ -7895,6 +7954,8 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
7895
7954
|
outboxQueue: this.outboxQueue,
|
|
7896
7955
|
startQueue: this.manuallyStartQueue ? void 0 : () => this._startQueueInternal(contextData),
|
|
7897
7956
|
allowPrivateAddress: this.allowPrivateAddress,
|
|
7957
|
+
getKeys: () => this.#getPortableGatewayKeyPairs(context, identifier, recipient),
|
|
7958
|
+
specDeterminer: new KvSpecDeterminer(this.kv, this.kvPrefixes.httpMessageSignaturesSpec, this.firstKnock, { specTtl: this.httpMessageSignaturesSpecTtl }),
|
|
7898
7959
|
options: this.portableInboxForwarding,
|
|
7899
7960
|
meterProvider: this.meterProvider,
|
|
7900
7961
|
tracerProvider: this.tracerProvider
|
|
@@ -7903,6 +7964,49 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
7903
7964
|
}
|
|
7904
7965
|
});
|
|
7905
7966
|
}
|
|
7967
|
+
/**
|
|
7968
|
+
* Gets this server's gateway key pairs for the portable actor that owns
|
|
7969
|
+
* a portable inbox, which sign the activities forwarded from the inbox.
|
|
7970
|
+
* @param context The context.
|
|
7971
|
+
* @param identifier The identifier of the portable actor.
|
|
7972
|
+
* @param recipient The portable inbox.
|
|
7973
|
+
* @returns The key pairs, or an empty array if the actor has no gateway
|
|
7974
|
+
* keys on this server.
|
|
7975
|
+
*/
|
|
7976
|
+
async #getPortableGatewayKeyPairs(context, identifier, recipient) {
|
|
7977
|
+
const logger = (0, _logtape_logtape.getLogger)([
|
|
7978
|
+
"fedify",
|
|
7979
|
+
"federation",
|
|
7980
|
+
"inbox"
|
|
7981
|
+
]);
|
|
7982
|
+
if (this.actorCallbacks?.keyPairsDispatcher == null || this.actorCallbacks.portableActorIdMapper == null) {
|
|
7983
|
+
logger.debug("Forwarding activities from the portable inbox {inbox} without HTTP Signatures, as gateway keys need both a key pairs dispatcher and a portable actor ID mapper.", { inbox: recipient.canonicalInboxId });
|
|
7984
|
+
return [];
|
|
7985
|
+
}
|
|
7986
|
+
const actorId = require_http.getCanonicalPortableId(recipient.actorId);
|
|
7987
|
+
if (actorId == null) return [];
|
|
7988
|
+
const keyPairs = await context.getActorKeyPairs(identifier);
|
|
7989
|
+
for (const { cryptographicKey } of keyPairs) {
|
|
7990
|
+
const owner = cryptographicKey.ownerId;
|
|
7991
|
+
const canonicalOwner = owner == null ? null : require_http.getCanonicalPortableId(owner);
|
|
7992
|
+
if (canonicalOwner === actorId) continue;
|
|
7993
|
+
if (canonicalOwner == null) logger.debug("Forwarding activities from the portable inbox {inbox} without HTTP Signatures, as the key pairs of the actor {identifier} are not the gateway keys of a portable actor.", {
|
|
7994
|
+
inbox: recipient.canonicalInboxId,
|
|
7995
|
+
identifier
|
|
7996
|
+
});
|
|
7997
|
+
else logger.warn("Forwarding activities from the portable inbox {inbox} without HTTP Signatures, as the key pairs of the actor {identifier} are the gateway keys of {owner}, not of the recipient {actorId}.", {
|
|
7998
|
+
inbox: recipient.canonicalInboxId,
|
|
7999
|
+
identifier,
|
|
8000
|
+
owner: canonicalOwner,
|
|
8001
|
+
actorId
|
|
8002
|
+
});
|
|
8003
|
+
return [];
|
|
8004
|
+
}
|
|
8005
|
+
return keyPairs.map(({ keyId, privateKey }) => ({
|
|
8006
|
+
keyId,
|
|
8007
|
+
privateKey
|
|
8008
|
+
}));
|
|
8009
|
+
}
|
|
7906
8010
|
async #fetchHashlinkMedia(request, media, { onNotFound, contextData, span, metricState }) {
|
|
7907
8011
|
metricState.endpoint = "hashlink_media";
|
|
7908
8012
|
metricState.routeTemplate = HASHLINK_MEDIA_ROUTE_TEMPLATE;
|
|
@@ -13,7 +13,7 @@ import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
|
|
|
13
13
|
import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL } from "@opentelemetry/semantic-conventions";
|
|
14
14
|
//#region deno.json
|
|
15
15
|
var name = "@fedify/fedify";
|
|
16
|
-
var version = "2.4.0-dev.
|
|
16
|
+
var version = "2.4.0-dev.2084+4b8bd325";
|
|
17
17
|
//#endregion
|
|
18
18
|
//#region src/sig/accept.ts
|
|
19
19
|
/**
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Temporal } from "temporal-polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as version, t as name } from "./deno-
|
|
5
|
-
import { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-
|
|
4
|
+
import { n as version, t as name } from "./deno-Dn-py9Zy.mjs";
|
|
5
|
+
import { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-Beod6tzO.mjs";
|
|
6
6
|
import { i as validateAcceptSignature, n as fulfillAcceptSignature, r as parseAcceptSignature } from "./accept-CPVqki78.mjs";
|
|
7
|
-
import { i as fetchKeyDetailed, s as validateCryptoKey } from "./key-
|
|
8
|
-
import { n as verifyPortableGatewayKeyDocument } from "./portable-key-
|
|
7
|
+
import { i as fetchKeyDetailed, s as validateCryptoKey } from "./key-BJrp524f.mjs";
|
|
8
|
+
import { n as verifyPortableGatewayKeyDocument } from "./portable-key-B4R-CiIV.mjs";
|
|
9
9
|
import { getLogger } from "@logtape/logtape";
|
|
10
10
|
import { CryptographicKey } from "@fedify/vocab";
|
|
11
11
|
import { SpanStatusCode, trace } from "@opentelemetry/api";
|
|
@@ -15,7 +15,7 @@ let byte_encodings_base64 = require("byte-encodings/base64");
|
|
|
15
15
|
let _opentelemetry_semantic_conventions = require("@opentelemetry/semantic-conventions");
|
|
16
16
|
//#region deno.json
|
|
17
17
|
var name = "@fedify/fedify";
|
|
18
|
-
var version = "2.4.0-dev.
|
|
18
|
+
var version = "2.4.0-dev.2084+4b8bd325";
|
|
19
19
|
//#endregion
|
|
20
20
|
//#region ../../node_modules/.pnpm/temporal-polyfill@1.0.1/node_modules/temporal-polyfill/chunks/root.js
|
|
21
21
|
const NativeTemporal = globalThis.Temporal;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "temporal-polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as version, t as name } from "./deno-
|
|
5
|
-
import { _ as recordKeyLookup, n as getDurationMs, t as classifyFetchError } from "./metrics-
|
|
4
|
+
import { n as version, t as name } from "./deno-Dn-py9Zy.mjs";
|
|
5
|
+
import { _ as recordKeyLookup, n as getDurationMs, t as classifyFetchError } from "./metrics-Beod6tzO.mjs";
|
|
6
6
|
import { getLogger } from "@logtape/logtape";
|
|
7
7
|
import { CryptographicKey, Multikey, Object as Object$1, isActor } from "@fedify/vocab";
|
|
8
8
|
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 { R as validateCryptoKey, nt as recordDocumentCache, t as doubleKnock } from "./http-
|
|
3
|
+
import { R as validateCryptoKey, nt as recordDocumentCache, t as doubleKnock } from "./http-4PCCvhsU.js";
|
|
4
4
|
import { getLogger } from "@logtape/logtape";
|
|
5
5
|
import { UrlError, createActivityPubRequest, getRemoteDocument, logRequest, preloadedContexts, validatePublicUrl } from "@fedify/vocab-runtime";
|
|
6
6
|
import { curry } from "es-toolkit";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Temporal } from "temporal-polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { p as recordDocumentCache } from "./metrics-
|
|
4
|
+
import { p as recordDocumentCache } from "./metrics-Beod6tzO.mjs";
|
|
5
5
|
import { getLogger } from "@logtape/logtape";
|
|
6
6
|
import { preloadedContexts } from "@fedify/vocab-runtime";
|
|
7
7
|
//#region src/utils/kv-cache.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
2
|
-
const require_http = require("./http-
|
|
2
|
+
const require_http = require("./http-B5q1CHtL.cjs");
|
|
3
3
|
let _logtape_logtape = require("@logtape/logtape");
|
|
4
4
|
let _fedify_vocab_runtime = require("@fedify/vocab-runtime");
|
|
5
5
|
let es_toolkit = require("es-toolkit");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "temporal-polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as version, t as name } from "./deno-
|
|
5
|
-
import { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-
|
|
6
|
-
import { r as fetchKey, s as validateCryptoKey } from "./key-
|
|
4
|
+
import { n as version, t as name } from "./deno-Dn-py9Zy.mjs";
|
|
5
|
+
import { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-Beod6tzO.mjs";
|
|
6
|
+
import { r as fetchKey, s as validateCryptoKey } from "./key-BJrp524f.mjs";
|
|
7
7
|
import { getLogger } from "@logtape/logtape";
|
|
8
8
|
import { Activity, CryptographicKey, Object as Object$1, getTypeId } from "@fedify/vocab";
|
|
9
9
|
import { SpanStatusCode, trace } from "@opentelemetry/api";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "temporal-polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as version, t as name } from "./deno-
|
|
4
|
+
import { n as version, t as name } from "./deno-Dn-py9Zy.mjs";
|
|
5
5
|
import { metrics } from "@opentelemetry/api";
|
|
6
6
|
import { FetchError } from "@fedify/vocab-runtime";
|
|
7
7
|
//#region src/federation/metrics.ts
|