@fedify/fedify 2.0.0-dev.335 → 2.0.0-dev.377
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/README.md +8 -0
- package/dist/{builder-RHW0dkbP.js → builder-gzWbPXA1.js} +3 -3
- package/dist/compat/transformers.test.js +11 -11
- package/dist/{deno-Dhe5E7NK.js → deno-C6PE0Mbz.js} +1 -4
- package/dist/{docloader-D6VuU143.js → docloader-D3K5sxGg.js} +2 -2
- package/dist/federation/builder.test.js +3 -3
- package/dist/federation/handler.test.js +11 -11
- package/dist/federation/idempotency.test.js +11 -11
- package/dist/federation/inbox.test.js +2 -2
- package/dist/federation/middleware.test.js +11 -11
- package/dist/federation/mod.cjs +4 -4
- package/dist/federation/mod.js +4 -4
- package/dist/federation/send.test.js +5 -5
- package/dist/federation/webfinger.test.js +11 -11
- package/dist/{http-ChlQCtql.cjs → http--LccV8fH.cjs} +1 -4
- package/dist/{http-DZrrJD77.js → http-CgEM3qCB.js} +1 -4
- package/dist/{http-CSqVEUdE.js → http-DLAyfXxs.js} +2 -2
- package/dist/{inbox-9F91oWJU.js → inbox-B5o0DKdw.js} +1 -1
- package/dist/{key-DFPkYar3.js → key-CY1j_I4p.js} +1 -1
- package/dist/{kv-cache-DwcKE9EQ.cjs → kv-cache-C-fZXbD0.cjs} +1 -1
- package/dist/{kv-cache-1TNWtgx7.js → kv-cache-CUAAgr40.js} +1 -1
- package/dist/{ld-kAhyoO55.js → ld-Cur4daC1.js} +2 -2
- package/dist/middleware-BmuJqg7S.cjs +12 -0
- package/dist/{middleware-CULfPNt-.cjs → middleware-BnPyW8eH.cjs} +113 -86
- package/dist/{middleware-DebYvXJs.js → middleware-Cn7ge0Yf.js} +11 -11
- package/dist/{middleware-zvH5O0zk.js → middleware-DMrI5DbU.js} +119 -92
- package/dist/{middleware-DQriD-Kq.js → middleware-ETb0GNSD.js} +113 -86
- package/dist/{middleware-BgurYNZ4.js → middleware-_k_Yi85X.js} +4 -4
- package/dist/mod.cjs +4 -4
- package/dist/mod.js +4 -4
- package/dist/nodeinfo/handler.test.js +11 -11
- package/dist/{owner-DcyH0sQg.js → owner-DEun_sgG.js} +1 -1
- package/dist/{proof-JtZEQaKw.js → proof-DC3LOHUm.js} +1 -1
- package/dist/{proof-D7C8ouBO.js → proof-DwHX-_TR.js} +2 -2
- package/dist/{proof-_Rz8hNBt.cjs → proof-M23tkRqK.cjs} +1 -1
- package/dist/{send-mAsnzegg.js → send-CwWPg8LE.js} +2 -2
- package/dist/sig/http.test.js +3 -3
- package/dist/sig/key.test.js +2 -2
- package/dist/sig/ld.test.js +3 -3
- package/dist/sig/mod.cjs +2 -2
- package/dist/sig/mod.js +2 -2
- package/dist/sig/owner.test.js +3 -3
- package/dist/sig/proof.test.js +3 -3
- package/dist/utils/docloader.test.js +4 -4
- package/dist/utils/mod.cjs +2 -2
- package/dist/utils/mod.js +2 -2
- package/package.json +9 -9
- package/dist/middleware-ChlsNVu2.cjs +0 -12
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
const require_chunk = require('./chunk-CGaQZ11T.cjs');
|
|
6
6
|
const require_transformers = require('./transformers-3g8GZwkZ.cjs');
|
|
7
|
-
const require_http = require('./http
|
|
8
|
-
const require_proof = require('./proof-
|
|
7
|
+
const require_http = require('./http--LccV8fH.cjs');
|
|
8
|
+
const require_proof = require('./proof-M23tkRqK.cjs');
|
|
9
9
|
const require_types = require('./types-Cd_hszr_.cjs');
|
|
10
|
-
const require_kv_cache = require('./kv-cache-
|
|
10
|
+
const require_kv_cache = require('./kv-cache-C-fZXbD0.cjs');
|
|
11
11
|
const __logtape_logtape = require_chunk.__toESM(require("@logtape/logtape"));
|
|
12
12
|
const __fedify_vocab = require_chunk.__toESM(require("@fedify/vocab"));
|
|
13
13
|
const __opentelemetry_api = require_chunk.__toESM(require("@opentelemetry/api"));
|
|
@@ -339,7 +339,7 @@ var FederationBuilderImpl = class {
|
|
|
339
339
|
this.collectionTypeIds = {};
|
|
340
340
|
}
|
|
341
341
|
async build(options) {
|
|
342
|
-
const { FederationImpl: FederationImpl$1 } = await Promise.resolve().then(() => require("./middleware-
|
|
342
|
+
const { FederationImpl: FederationImpl$1 } = await Promise.resolve().then(() => require("./middleware-BmuJqg7S.cjs"));
|
|
343
343
|
const f = new FederationImpl$1(options);
|
|
344
344
|
const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
|
|
345
345
|
f.router = this.router.clone();
|
|
@@ -2395,7 +2395,7 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
2395
2395
|
outboxRetryPolicy;
|
|
2396
2396
|
inboxRetryPolicy;
|
|
2397
2397
|
activityTransformers;
|
|
2398
|
-
|
|
2398
|
+
_tracerProvider;
|
|
2399
2399
|
firstKnock;
|
|
2400
2400
|
constructor(options) {
|
|
2401
2401
|
super();
|
|
@@ -2477,9 +2477,12 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
2477
2477
|
this.outboxRetryPolicy = options.outboxRetryPolicy ?? createExponentialBackoffPolicy();
|
|
2478
2478
|
this.inboxRetryPolicy = options.inboxRetryPolicy ?? createExponentialBackoffPolicy();
|
|
2479
2479
|
this.activityTransformers = options.activityTransformers ?? require_transformers.getDefaultActivityTransformers();
|
|
2480
|
-
this.
|
|
2480
|
+
this._tracerProvider = options.tracerProvider;
|
|
2481
2481
|
this.firstKnock = options.firstKnock;
|
|
2482
2482
|
}
|
|
2483
|
+
get tracerProvider() {
|
|
2484
|
+
return this._tracerProvider ?? __opentelemetry_api.trace.getTracerProvider();
|
|
2485
|
+
}
|
|
2483
2486
|
_initializeRouter() {
|
|
2484
2487
|
this.router.add("/.well-known/webfinger", "webfinger");
|
|
2485
2488
|
this.router.add("/.well-known/nodeinfo", "nodeInfoJrd");
|
|
@@ -2520,18 +2523,24 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
2520
2523
|
kind: __opentelemetry_api.SpanKind.CONSUMER,
|
|
2521
2524
|
attributes: { "activitypub.activity.type": message.activityType }
|
|
2522
2525
|
}, extractedContext, async (span) => {
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2526
|
+
const spanCtx = span.spanContext();
|
|
2527
|
+
return await (0, __logtape_logtape.withContext)({
|
|
2528
|
+
traceId: spanCtx.traceId,
|
|
2529
|
+
spanId: spanCtx.spanId
|
|
2530
|
+
}, async () => {
|
|
2531
|
+
if (message.activityId != null) span.setAttribute("activitypub.activity.id", message.activityId);
|
|
2532
|
+
try {
|
|
2533
|
+
await this.#listenFanoutMessage(contextData, message);
|
|
2534
|
+
} catch (e) {
|
|
2535
|
+
span.setStatus({
|
|
2536
|
+
code: __opentelemetry_api.SpanStatusCode.ERROR,
|
|
2537
|
+
message: String(e)
|
|
2538
|
+
});
|
|
2539
|
+
throw e;
|
|
2540
|
+
} finally {
|
|
2541
|
+
span.end();
|
|
2542
|
+
}
|
|
2543
|
+
});
|
|
2535
2544
|
});
|
|
2536
2545
|
else if (message.type === "outbox") await tracer.startActiveSpan("activitypub.outbox", {
|
|
2537
2546
|
kind: __opentelemetry_api.SpanKind.CONSUMER,
|
|
@@ -2540,34 +2549,46 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
2540
2549
|
"activitypub.activity.retries": message.attempt
|
|
2541
2550
|
}
|
|
2542
2551
|
}, extractedContext, async (span) => {
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2552
|
+
const spanCtx = span.spanContext();
|
|
2553
|
+
return await (0, __logtape_logtape.withContext)({
|
|
2554
|
+
traceId: spanCtx.traceId,
|
|
2555
|
+
spanId: spanCtx.spanId
|
|
2556
|
+
}, async () => {
|
|
2557
|
+
if (message.activityId != null) span.setAttribute("activitypub.activity.id", message.activityId);
|
|
2558
|
+
try {
|
|
2559
|
+
await this.#listenOutboxMessage(contextData, message, span);
|
|
2560
|
+
} catch (e) {
|
|
2561
|
+
span.setStatus({
|
|
2562
|
+
code: __opentelemetry_api.SpanStatusCode.ERROR,
|
|
2563
|
+
message: String(e)
|
|
2564
|
+
});
|
|
2565
|
+
throw e;
|
|
2566
|
+
} finally {
|
|
2567
|
+
span.end();
|
|
2568
|
+
}
|
|
2569
|
+
});
|
|
2555
2570
|
});
|
|
2556
2571
|
else if (message.type === "inbox") await tracer.startActiveSpan("activitypub.inbox", {
|
|
2557
2572
|
kind: __opentelemetry_api.SpanKind.CONSUMER,
|
|
2558
2573
|
attributes: { "activitypub.shared_inbox": message.identifier == null }
|
|
2559
2574
|
}, extractedContext, async (span) => {
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2565
|
-
|
|
2566
|
-
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
|
|
2575
|
+
const spanCtx = span.spanContext();
|
|
2576
|
+
return await (0, __logtape_logtape.withContext)({
|
|
2577
|
+
traceId: spanCtx.traceId,
|
|
2578
|
+
spanId: spanCtx.spanId
|
|
2579
|
+
}, async () => {
|
|
2580
|
+
try {
|
|
2581
|
+
await this.#listenInboxMessage(contextData, message, span);
|
|
2582
|
+
} catch (e) {
|
|
2583
|
+
span.setStatus({
|
|
2584
|
+
code: __opentelemetry_api.SpanStatusCode.ERROR,
|
|
2585
|
+
message: String(e)
|
|
2586
|
+
});
|
|
2587
|
+
throw e;
|
|
2588
|
+
} finally {
|
|
2589
|
+
span.end();
|
|
2590
|
+
}
|
|
2591
|
+
});
|
|
2571
2592
|
});
|
|
2572
2593
|
});
|
|
2573
2594
|
}
|
|
@@ -3040,54 +3061,60 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
3040
3061
|
[__opentelemetry_semantic_conventions.ATTR_URL_FULL]: request.url
|
|
3041
3062
|
}
|
|
3042
3063
|
}, async (span) => {
|
|
3043
|
-
const
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3064
|
+
const spanCtx = span.spanContext();
|
|
3065
|
+
return await (0, __logtape_logtape.withContext)({
|
|
3066
|
+
traceId: spanCtx.traceId,
|
|
3067
|
+
spanId: spanCtx.spanId
|
|
3068
|
+
}, async () => {
|
|
3069
|
+
const logger$1 = (0, __logtape_logtape.getLogger)([
|
|
3070
|
+
"fedify",
|
|
3071
|
+
"federation",
|
|
3072
|
+
"http"
|
|
3073
|
+
]);
|
|
3074
|
+
if (span.isRecording()) for (const [k, v] of request.headers) span.setAttribute((0, __opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_HEADER)(k), [v]);
|
|
3075
|
+
let response;
|
|
3076
|
+
try {
|
|
3077
|
+
response = await this.#fetch(request, {
|
|
3078
|
+
...options,
|
|
3079
|
+
span,
|
|
3080
|
+
tracer
|
|
3081
|
+
});
|
|
3082
|
+
if (acceptsJsonLd(request)) response.headers.set("Vary", "Accept");
|
|
3083
|
+
} catch (error) {
|
|
3084
|
+
span.setStatus({
|
|
3085
|
+
code: __opentelemetry_api.SpanStatusCode.ERROR,
|
|
3086
|
+
message: `${error}`
|
|
3087
|
+
});
|
|
3088
|
+
span.end();
|
|
3089
|
+
logger$1.error("An error occurred while serving request {method} {url}: {error}", {
|
|
3090
|
+
method: request.method,
|
|
3091
|
+
url: request.url,
|
|
3092
|
+
error
|
|
3093
|
+
});
|
|
3094
|
+
throw error;
|
|
3095
|
+
}
|
|
3096
|
+
if (span.isRecording()) {
|
|
3097
|
+
span.setAttribute(__opentelemetry_semantic_conventions.ATTR_HTTP_RESPONSE_STATUS_CODE, response.status);
|
|
3098
|
+
for (const [k, v] of response.headers) span.setAttribute((0, __opentelemetry_semantic_conventions.ATTR_HTTP_RESPONSE_HEADER)(k), [v]);
|
|
3099
|
+
span.setStatus({
|
|
3100
|
+
code: response.status >= 500 ? __opentelemetry_api.SpanStatusCode.ERROR : __opentelemetry_api.SpanStatusCode.UNSET,
|
|
3101
|
+
message: response.statusText
|
|
3102
|
+
});
|
|
3103
|
+
}
|
|
3062
3104
|
span.end();
|
|
3063
|
-
|
|
3105
|
+
const url = new URL(request.url);
|
|
3106
|
+
const logTpl = "{method} {path}: {status}";
|
|
3107
|
+
const values = {
|
|
3064
3108
|
method: request.method,
|
|
3109
|
+
path: `${url.pathname}${url.search}`,
|
|
3065
3110
|
url: request.url,
|
|
3066
|
-
|
|
3067
|
-
}
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
span.setStatus({
|
|
3074
|
-
code: response.status >= 500 ? __opentelemetry_api.SpanStatusCode.ERROR : __opentelemetry_api.SpanStatusCode.UNSET,
|
|
3075
|
-
message: response.statusText
|
|
3076
|
-
});
|
|
3077
|
-
}
|
|
3078
|
-
span.end();
|
|
3079
|
-
const url = new URL(request.url);
|
|
3080
|
-
const logTpl = "{method} {path}: {status}";
|
|
3081
|
-
const values = {
|
|
3082
|
-
method: request.method,
|
|
3083
|
-
path: `${url.pathname}${url.search}`,
|
|
3084
|
-
url: request.url,
|
|
3085
|
-
status: response.status
|
|
3086
|
-
};
|
|
3087
|
-
if (response.status >= 500) logger$1.error(logTpl, values);
|
|
3088
|
-
else if (response.status >= 400) logger$1.warn(logTpl, values);
|
|
3089
|
-
else logger$1.info(logTpl, values);
|
|
3090
|
-
return response;
|
|
3111
|
+
status: response.status
|
|
3112
|
+
};
|
|
3113
|
+
if (response.status >= 500) logger$1.error(logTpl, values);
|
|
3114
|
+
else if (response.status >= 400) logger$1.warn(logTpl, values);
|
|
3115
|
+
else logger$1.info(logTpl, values);
|
|
3116
|
+
return response;
|
|
3117
|
+
});
|
|
3091
3118
|
});
|
|
3092
3119
|
});
|
|
3093
3120
|
}
|
|
@@ -3,24 +3,24 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import "./deno-
|
|
7
|
-
import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-
|
|
6
|
+
import "./deno-C6PE0Mbz.js";
|
|
7
|
+
import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-DMrI5DbU.js";
|
|
8
8
|
import "./client-Dg7OfUDA.js";
|
|
9
9
|
import "./router-D9eI0s4b.js";
|
|
10
10
|
import "./types-CPz01LGH.js";
|
|
11
|
-
import "./key-
|
|
12
|
-
import "./http-
|
|
13
|
-
import "./ld-
|
|
14
|
-
import "./owner-
|
|
15
|
-
import "./proof-
|
|
16
|
-
import "./docloader-
|
|
11
|
+
import "./key-CY1j_I4p.js";
|
|
12
|
+
import "./http-DLAyfXxs.js";
|
|
13
|
+
import "./ld-Cur4daC1.js";
|
|
14
|
+
import "./owner-DEun_sgG.js";
|
|
15
|
+
import "./proof-DwHX-_TR.js";
|
|
16
|
+
import "./docloader-D3K5sxGg.js";
|
|
17
17
|
import "./kv-cache-B__dHl7g.js";
|
|
18
|
-
import "./inbox-
|
|
19
|
-
import "./builder-
|
|
18
|
+
import "./inbox-B5o0DKdw.js";
|
|
19
|
+
import "./builder-gzWbPXA1.js";
|
|
20
20
|
import "./collection-CcnIw1qY.js";
|
|
21
21
|
import "./keycache-DRxpZ5r9.js";
|
|
22
22
|
import "./negotiation-5NPJL6zp.js";
|
|
23
23
|
import "./retry-D4GJ670a.js";
|
|
24
|
-
import "./send-
|
|
24
|
+
import "./send-CwWPg8LE.js";
|
|
25
25
|
|
|
26
26
|
export { FederationImpl };
|
|
@@ -3,24 +3,24 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { deno_default } from "./deno-
|
|
6
|
+
import { deno_default } from "./deno-C6PE0Mbz.js";
|
|
7
7
|
import { getNodeInfo } from "./client-Dg7OfUDA.js";
|
|
8
8
|
import { RouterError } from "./router-D9eI0s4b.js";
|
|
9
9
|
import { nodeInfoToJson } from "./types-CPz01LGH.js";
|
|
10
|
-
import { exportJwk, importJwk, validateCryptoKey } from "./key-
|
|
11
|
-
import { verifyRequest } from "./http-
|
|
12
|
-
import { detachSignature, hasSignature, signJsonLd, verifyJsonLd } from "./ld-
|
|
13
|
-
import { doesActorOwnKey, getKeyOwner } from "./owner-
|
|
14
|
-
import { signObject, verifyObject } from "./proof-
|
|
15
|
-
import { getAuthenticatedDocumentLoader } from "./docloader-
|
|
10
|
+
import { exportJwk, importJwk, validateCryptoKey } from "./key-CY1j_I4p.js";
|
|
11
|
+
import { verifyRequest } from "./http-DLAyfXxs.js";
|
|
12
|
+
import { detachSignature, hasSignature, signJsonLd, verifyJsonLd } from "./ld-Cur4daC1.js";
|
|
13
|
+
import { doesActorOwnKey, getKeyOwner } from "./owner-DEun_sgG.js";
|
|
14
|
+
import { signObject, verifyObject } from "./proof-DwHX-_TR.js";
|
|
15
|
+
import { getAuthenticatedDocumentLoader } from "./docloader-D3K5sxGg.js";
|
|
16
16
|
import { kvCache } from "./kv-cache-B__dHl7g.js";
|
|
17
|
-
import { routeActivity } from "./inbox-
|
|
18
|
-
import { FederationBuilderImpl } from "./builder-
|
|
17
|
+
import { routeActivity } from "./inbox-B5o0DKdw.js";
|
|
18
|
+
import { FederationBuilderImpl } from "./builder-gzWbPXA1.js";
|
|
19
19
|
import { buildCollectionSynchronizationHeader } from "./collection-CcnIw1qY.js";
|
|
20
20
|
import { KvKeyCache } from "./keycache-DRxpZ5r9.js";
|
|
21
21
|
import { acceptsJsonLd } from "./negotiation-5NPJL6zp.js";
|
|
22
22
|
import { createExponentialBackoffPolicy } from "./retry-D4GJ670a.js";
|
|
23
|
-
import { SendActivityError, extractInboxes, sendActivity } from "./send-
|
|
23
|
+
import { SendActivityError, extractInboxes, sendActivity } from "./send-CwWPg8LE.js";
|
|
24
24
|
import { getLogger, withContext } from "@logtape/logtape";
|
|
25
25
|
import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId, lookupObject, traverseCollection } from "@fedify/vocab";
|
|
26
26
|
import { getDocumentLoader } from "@fedify/vocab-runtime";
|
|
@@ -1313,7 +1313,7 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
1313
1313
|
outboxRetryPolicy;
|
|
1314
1314
|
inboxRetryPolicy;
|
|
1315
1315
|
activityTransformers;
|
|
1316
|
-
|
|
1316
|
+
_tracerProvider;
|
|
1317
1317
|
firstKnock;
|
|
1318
1318
|
constructor(options) {
|
|
1319
1319
|
super();
|
|
@@ -1395,9 +1395,12 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
1395
1395
|
this.outboxRetryPolicy = options.outboxRetryPolicy ?? createExponentialBackoffPolicy();
|
|
1396
1396
|
this.inboxRetryPolicy = options.inboxRetryPolicy ?? createExponentialBackoffPolicy();
|
|
1397
1397
|
this.activityTransformers = options.activityTransformers ?? getDefaultActivityTransformers();
|
|
1398
|
-
this.
|
|
1398
|
+
this._tracerProvider = options.tracerProvider;
|
|
1399
1399
|
this.firstKnock = options.firstKnock;
|
|
1400
1400
|
}
|
|
1401
|
+
get tracerProvider() {
|
|
1402
|
+
return this._tracerProvider ?? trace.getTracerProvider();
|
|
1403
|
+
}
|
|
1401
1404
|
_initializeRouter() {
|
|
1402
1405
|
this.router.add("/.well-known/webfinger", "webfinger");
|
|
1403
1406
|
this.router.add("/.well-known/nodeinfo", "nodeInfoJrd");
|
|
@@ -1438,18 +1441,24 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
1438
1441
|
kind: SpanKind.CONSUMER,
|
|
1439
1442
|
attributes: { "activitypub.activity.type": message.activityType }
|
|
1440
1443
|
}, extractedContext, async (span) => {
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1444
|
+
const spanCtx = span.spanContext();
|
|
1445
|
+
return await withContext({
|
|
1446
|
+
traceId: spanCtx.traceId,
|
|
1447
|
+
spanId: spanCtx.spanId
|
|
1448
|
+
}, async () => {
|
|
1449
|
+
if (message.activityId != null) span.setAttribute("activitypub.activity.id", message.activityId);
|
|
1450
|
+
try {
|
|
1451
|
+
await this.#listenFanoutMessage(contextData, message);
|
|
1452
|
+
} catch (e) {
|
|
1453
|
+
span.setStatus({
|
|
1454
|
+
code: SpanStatusCode.ERROR,
|
|
1455
|
+
message: String(e)
|
|
1456
|
+
});
|
|
1457
|
+
throw e;
|
|
1458
|
+
} finally {
|
|
1459
|
+
span.end();
|
|
1460
|
+
}
|
|
1461
|
+
});
|
|
1453
1462
|
});
|
|
1454
1463
|
else if (message.type === "outbox") await tracer.startActiveSpan("activitypub.outbox", {
|
|
1455
1464
|
kind: SpanKind.CONSUMER,
|
|
@@ -1458,34 +1467,46 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
1458
1467
|
"activitypub.activity.retries": message.attempt
|
|
1459
1468
|
}
|
|
1460
1469
|
}, extractedContext, async (span) => {
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1470
|
+
const spanCtx = span.spanContext();
|
|
1471
|
+
return await withContext({
|
|
1472
|
+
traceId: spanCtx.traceId,
|
|
1473
|
+
spanId: spanCtx.spanId
|
|
1474
|
+
}, async () => {
|
|
1475
|
+
if (message.activityId != null) span.setAttribute("activitypub.activity.id", message.activityId);
|
|
1476
|
+
try {
|
|
1477
|
+
await this.#listenOutboxMessage(contextData, message, span);
|
|
1478
|
+
} catch (e) {
|
|
1479
|
+
span.setStatus({
|
|
1480
|
+
code: SpanStatusCode.ERROR,
|
|
1481
|
+
message: String(e)
|
|
1482
|
+
});
|
|
1483
|
+
throw e;
|
|
1484
|
+
} finally {
|
|
1485
|
+
span.end();
|
|
1486
|
+
}
|
|
1487
|
+
});
|
|
1473
1488
|
});
|
|
1474
1489
|
else if (message.type === "inbox") await tracer.startActiveSpan("activitypub.inbox", {
|
|
1475
1490
|
kind: SpanKind.CONSUMER,
|
|
1476
1491
|
attributes: { "activitypub.shared_inbox": message.identifier == null }
|
|
1477
1492
|
}, extractedContext, async (span) => {
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1493
|
+
const spanCtx = span.spanContext();
|
|
1494
|
+
return await withContext({
|
|
1495
|
+
traceId: spanCtx.traceId,
|
|
1496
|
+
spanId: spanCtx.spanId
|
|
1497
|
+
}, async () => {
|
|
1498
|
+
try {
|
|
1499
|
+
await this.#listenInboxMessage(contextData, message, span);
|
|
1500
|
+
} catch (e) {
|
|
1501
|
+
span.setStatus({
|
|
1502
|
+
code: SpanStatusCode.ERROR,
|
|
1503
|
+
message: String(e)
|
|
1504
|
+
});
|
|
1505
|
+
throw e;
|
|
1506
|
+
} finally {
|
|
1507
|
+
span.end();
|
|
1508
|
+
}
|
|
1509
|
+
});
|
|
1489
1510
|
});
|
|
1490
1511
|
});
|
|
1491
1512
|
}
|
|
@@ -1958,54 +1979,60 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
1958
1979
|
[ATTR_URL_FULL]: request.url
|
|
1959
1980
|
}
|
|
1960
1981
|
}, async (span) => {
|
|
1961
|
-
const
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1982
|
+
const spanCtx = span.spanContext();
|
|
1983
|
+
return await withContext({
|
|
1984
|
+
traceId: spanCtx.traceId,
|
|
1985
|
+
spanId: spanCtx.spanId
|
|
1986
|
+
}, async () => {
|
|
1987
|
+
const logger$2 = getLogger([
|
|
1988
|
+
"fedify",
|
|
1989
|
+
"federation",
|
|
1990
|
+
"http"
|
|
1991
|
+
]);
|
|
1992
|
+
if (span.isRecording()) for (const [k, v] of request.headers) span.setAttribute(ATTR_HTTP_REQUEST_HEADER(k), [v]);
|
|
1993
|
+
let response;
|
|
1994
|
+
try {
|
|
1995
|
+
response = await this.#fetch(request, {
|
|
1996
|
+
...options,
|
|
1997
|
+
span,
|
|
1998
|
+
tracer
|
|
1999
|
+
});
|
|
2000
|
+
if (acceptsJsonLd(request)) response.headers.set("Vary", "Accept");
|
|
2001
|
+
} catch (error) {
|
|
2002
|
+
span.setStatus({
|
|
2003
|
+
code: SpanStatusCode.ERROR,
|
|
2004
|
+
message: `${error}`
|
|
2005
|
+
});
|
|
2006
|
+
span.end();
|
|
2007
|
+
logger$2.error("An error occurred while serving request {method} {url}: {error}", {
|
|
2008
|
+
method: request.method,
|
|
2009
|
+
url: request.url,
|
|
2010
|
+
error
|
|
2011
|
+
});
|
|
2012
|
+
throw error;
|
|
2013
|
+
}
|
|
2014
|
+
if (span.isRecording()) {
|
|
2015
|
+
span.setAttribute(ATTR_HTTP_RESPONSE_STATUS_CODE, response.status);
|
|
2016
|
+
for (const [k, v] of response.headers) span.setAttribute(ATTR_HTTP_RESPONSE_HEADER(k), [v]);
|
|
2017
|
+
span.setStatus({
|
|
2018
|
+
code: response.status >= 500 ? SpanStatusCode.ERROR : SpanStatusCode.UNSET,
|
|
2019
|
+
message: response.statusText
|
|
2020
|
+
});
|
|
2021
|
+
}
|
|
1980
2022
|
span.end();
|
|
1981
|
-
|
|
2023
|
+
const url = new URL(request.url);
|
|
2024
|
+
const logTpl = "{method} {path}: {status}";
|
|
2025
|
+
const values = {
|
|
1982
2026
|
method: request.method,
|
|
2027
|
+
path: `${url.pathname}${url.search}`,
|
|
1983
2028
|
url: request.url,
|
|
1984
|
-
|
|
1985
|
-
}
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
span.setStatus({
|
|
1992
|
-
code: response.status >= 500 ? SpanStatusCode.ERROR : SpanStatusCode.UNSET,
|
|
1993
|
-
message: response.statusText
|
|
1994
|
-
});
|
|
1995
|
-
}
|
|
1996
|
-
span.end();
|
|
1997
|
-
const url = new URL(request.url);
|
|
1998
|
-
const logTpl = "{method} {path}: {status}";
|
|
1999
|
-
const values = {
|
|
2000
|
-
method: request.method,
|
|
2001
|
-
path: `${url.pathname}${url.search}`,
|
|
2002
|
-
url: request.url,
|
|
2003
|
-
status: response.status
|
|
2004
|
-
};
|
|
2005
|
-
if (response.status >= 500) logger$2.error(logTpl, values);
|
|
2006
|
-
else if (response.status >= 400) logger$2.warn(logTpl, values);
|
|
2007
|
-
else logger$2.info(logTpl, values);
|
|
2008
|
-
return response;
|
|
2029
|
+
status: response.status
|
|
2030
|
+
};
|
|
2031
|
+
if (response.status >= 500) logger$2.error(logTpl, values);
|
|
2032
|
+
else if (response.status >= 400) logger$2.warn(logTpl, values);
|
|
2033
|
+
else logger$2.info(logTpl, values);
|
|
2034
|
+
return response;
|
|
2035
|
+
});
|
|
2009
2036
|
});
|
|
2010
2037
|
});
|
|
2011
2038
|
}
|