@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.
Files changed (48) hide show
  1. package/README.md +8 -0
  2. package/dist/{builder-RHW0dkbP.js → builder-gzWbPXA1.js} +3 -3
  3. package/dist/compat/transformers.test.js +11 -11
  4. package/dist/{deno-Dhe5E7NK.js → deno-C6PE0Mbz.js} +1 -4
  5. package/dist/{docloader-D6VuU143.js → docloader-D3K5sxGg.js} +2 -2
  6. package/dist/federation/builder.test.js +3 -3
  7. package/dist/federation/handler.test.js +11 -11
  8. package/dist/federation/idempotency.test.js +11 -11
  9. package/dist/federation/inbox.test.js +2 -2
  10. package/dist/federation/middleware.test.js +11 -11
  11. package/dist/federation/mod.cjs +4 -4
  12. package/dist/federation/mod.js +4 -4
  13. package/dist/federation/send.test.js +5 -5
  14. package/dist/federation/webfinger.test.js +11 -11
  15. package/dist/{http-ChlQCtql.cjs → http--LccV8fH.cjs} +1 -4
  16. package/dist/{http-DZrrJD77.js → http-CgEM3qCB.js} +1 -4
  17. package/dist/{http-CSqVEUdE.js → http-DLAyfXxs.js} +2 -2
  18. package/dist/{inbox-9F91oWJU.js → inbox-B5o0DKdw.js} +1 -1
  19. package/dist/{key-DFPkYar3.js → key-CY1j_I4p.js} +1 -1
  20. package/dist/{kv-cache-DwcKE9EQ.cjs → kv-cache-C-fZXbD0.cjs} +1 -1
  21. package/dist/{kv-cache-1TNWtgx7.js → kv-cache-CUAAgr40.js} +1 -1
  22. package/dist/{ld-kAhyoO55.js → ld-Cur4daC1.js} +2 -2
  23. package/dist/middleware-BmuJqg7S.cjs +12 -0
  24. package/dist/{middleware-CULfPNt-.cjs → middleware-BnPyW8eH.cjs} +113 -86
  25. package/dist/{middleware-DebYvXJs.js → middleware-Cn7ge0Yf.js} +11 -11
  26. package/dist/{middleware-zvH5O0zk.js → middleware-DMrI5DbU.js} +119 -92
  27. package/dist/{middleware-DQriD-Kq.js → middleware-ETb0GNSD.js} +113 -86
  28. package/dist/{middleware-BgurYNZ4.js → middleware-_k_Yi85X.js} +4 -4
  29. package/dist/mod.cjs +4 -4
  30. package/dist/mod.js +4 -4
  31. package/dist/nodeinfo/handler.test.js +11 -11
  32. package/dist/{owner-DcyH0sQg.js → owner-DEun_sgG.js} +1 -1
  33. package/dist/{proof-JtZEQaKw.js → proof-DC3LOHUm.js} +1 -1
  34. package/dist/{proof-D7C8ouBO.js → proof-DwHX-_TR.js} +2 -2
  35. package/dist/{proof-_Rz8hNBt.cjs → proof-M23tkRqK.cjs} +1 -1
  36. package/dist/{send-mAsnzegg.js → send-CwWPg8LE.js} +2 -2
  37. package/dist/sig/http.test.js +3 -3
  38. package/dist/sig/key.test.js +2 -2
  39. package/dist/sig/ld.test.js +3 -3
  40. package/dist/sig/mod.cjs +2 -2
  41. package/dist/sig/mod.js +2 -2
  42. package/dist/sig/owner.test.js +3 -3
  43. package/dist/sig/proof.test.js +3 -3
  44. package/dist/utils/docloader.test.js +4 -4
  45. package/dist/utils/mod.cjs +2 -2
  46. package/dist/utils/mod.js +2 -2
  47. package/package.json +9 -9
  48. 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-ChlQCtql.cjs');
8
- const require_proof = require('./proof-_Rz8hNBt.cjs');
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-DwcKE9EQ.cjs');
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-ChlsNVu2.cjs"));
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
- tracerProvider;
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.tracerProvider = options.tracerProvider ?? __opentelemetry_api.trace.getTracerProvider();
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
- if (message.activityId != null) span.setAttribute("activitypub.activity.id", message.activityId);
2524
- try {
2525
- await this.#listenFanoutMessage(contextData, message);
2526
- } catch (e) {
2527
- span.setStatus({
2528
- code: __opentelemetry_api.SpanStatusCode.ERROR,
2529
- message: String(e)
2530
- });
2531
- throw e;
2532
- } finally {
2533
- span.end();
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
- if (message.activityId != null) span.setAttribute("activitypub.activity.id", message.activityId);
2544
- try {
2545
- await this.#listenOutboxMessage(contextData, message, span);
2546
- } catch (e) {
2547
- span.setStatus({
2548
- code: __opentelemetry_api.SpanStatusCode.ERROR,
2549
- message: String(e)
2550
- });
2551
- throw e;
2552
- } finally {
2553
- span.end();
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
- try {
2561
- await this.#listenInboxMessage(contextData, message, span);
2562
- } catch (e) {
2563
- span.setStatus({
2564
- code: __opentelemetry_api.SpanStatusCode.ERROR,
2565
- message: String(e)
2566
- });
2567
- throw e;
2568
- } finally {
2569
- span.end();
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 logger$1 = (0, __logtape_logtape.getLogger)([
3044
- "fedify",
3045
- "federation",
3046
- "http"
3047
- ]);
3048
- if (span.isRecording()) for (const [k, v] of request.headers) span.setAttribute((0, __opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_HEADER)(k), [v]);
3049
- let response;
3050
- try {
3051
- response = await this.#fetch(request, {
3052
- ...options,
3053
- span,
3054
- tracer
3055
- });
3056
- if (acceptsJsonLd(request)) response.headers.set("Vary", "Accept");
3057
- } catch (error) {
3058
- span.setStatus({
3059
- code: __opentelemetry_api.SpanStatusCode.ERROR,
3060
- message: `${error}`
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
- logger$1.error("An error occurred while serving request {method} {url}: {error}", {
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
- error
3067
- });
3068
- throw error;
3069
- }
3070
- if (span.isRecording()) {
3071
- span.setAttribute(__opentelemetry_semantic_conventions.ATTR_HTTP_RESPONSE_STATUS_CODE, response.status);
3072
- for (const [k, v] of response.headers) span.setAttribute((0, __opentelemetry_semantic_conventions.ATTR_HTTP_RESPONSE_HEADER)(k), [v]);
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-Dhe5E7NK.js";
7
- import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-zvH5O0zk.js";
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-DFPkYar3.js";
12
- import "./http-CSqVEUdE.js";
13
- import "./ld-kAhyoO55.js";
14
- import "./owner-DcyH0sQg.js";
15
- import "./proof-D7C8ouBO.js";
16
- import "./docloader-D6VuU143.js";
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-9F91oWJU.js";
19
- import "./builder-RHW0dkbP.js";
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-mAsnzegg.js";
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-Dhe5E7NK.js";
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-DFPkYar3.js";
11
- import { verifyRequest } from "./http-CSqVEUdE.js";
12
- import { detachSignature, hasSignature, signJsonLd, verifyJsonLd } from "./ld-kAhyoO55.js";
13
- import { doesActorOwnKey, getKeyOwner } from "./owner-DcyH0sQg.js";
14
- import { signObject, verifyObject } from "./proof-D7C8ouBO.js";
15
- import { getAuthenticatedDocumentLoader } from "./docloader-D6VuU143.js";
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-9F91oWJU.js";
18
- import { FederationBuilderImpl } from "./builder-RHW0dkbP.js";
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-mAsnzegg.js";
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
- tracerProvider;
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.tracerProvider = options.tracerProvider ?? trace.getTracerProvider();
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
- if (message.activityId != null) span.setAttribute("activitypub.activity.id", message.activityId);
1442
- try {
1443
- await this.#listenFanoutMessage(contextData, message);
1444
- } catch (e) {
1445
- span.setStatus({
1446
- code: SpanStatusCode.ERROR,
1447
- message: String(e)
1448
- });
1449
- throw e;
1450
- } finally {
1451
- span.end();
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
- if (message.activityId != null) span.setAttribute("activitypub.activity.id", message.activityId);
1462
- try {
1463
- await this.#listenOutboxMessage(contextData, message, span);
1464
- } catch (e) {
1465
- span.setStatus({
1466
- code: SpanStatusCode.ERROR,
1467
- message: String(e)
1468
- });
1469
- throw e;
1470
- } finally {
1471
- span.end();
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
- try {
1479
- await this.#listenInboxMessage(contextData, message, span);
1480
- } catch (e) {
1481
- span.setStatus({
1482
- code: SpanStatusCode.ERROR,
1483
- message: String(e)
1484
- });
1485
- throw e;
1486
- } finally {
1487
- span.end();
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 logger$2 = getLogger([
1962
- "fedify",
1963
- "federation",
1964
- "http"
1965
- ]);
1966
- if (span.isRecording()) for (const [k, v] of request.headers) span.setAttribute(ATTR_HTTP_REQUEST_HEADER(k), [v]);
1967
- let response;
1968
- try {
1969
- response = await this.#fetch(request, {
1970
- ...options,
1971
- span,
1972
- tracer
1973
- });
1974
- if (acceptsJsonLd(request)) response.headers.set("Vary", "Accept");
1975
- } catch (error) {
1976
- span.setStatus({
1977
- code: SpanStatusCode.ERROR,
1978
- message: `${error}`
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
- logger$2.error("An error occurred while serving request {method} {url}: {error}", {
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
- error
1985
- });
1986
- throw error;
1987
- }
1988
- if (span.isRecording()) {
1989
- span.setAttribute(ATTR_HTTP_RESPONSE_STATUS_CODE, response.status);
1990
- for (const [k, v] of response.headers) span.setAttribute(ATTR_HTTP_RESPONSE_HEADER(k), [v]);
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
  }