@fedify/fedify 2.2.0-dev.613 → 2.2.0-dev.622

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 (207) hide show
  1. package/dist/{accept-D7sAxyNa.js → accept-Dd__NiUL.mjs} +10 -8
  2. package/dist/{assert-MZs1qjMx.js → assert-ddO5KLpe.mjs} +5 -9
  3. package/dist/{assert_equals-DSbWqCm3.js → assert_equals-Ew3jOFa3.mjs} +55 -69
  4. package/dist/{assert_instance_of-DHz7EHNU.js → assert_instance_of-C4Ri6VuN.mjs} +5 -9
  5. package/dist/{assert_not_equals-f3m3epl3.js → assert_not_equals--wG9hV7u.mjs} +6 -13
  6. package/dist/{assert_rejects-0h7I2Esa.js → assert_rejects-B-qJtC9Z.mjs} +6 -11
  7. package/dist/{assert_throws-rjdMBf31.js → assert_throws-4NwKEy2q.mjs} +5 -10
  8. package/dist/{builder-OscY92PK.js → builder-DcSpny3g.mjs} +32 -41
  9. package/dist/{chunk-CGaQZ11T.cjs → chunk-DDcVe30Y.cjs} +23 -24
  10. package/dist/{chunk-DJNbSFdH.js → chunk-nlSIicah.js} +8 -8
  11. package/dist/{client-BxMZiQaD.d.ts → client-AtlibPOU.d.ts} +1 -1
  12. package/dist/{client-CoCIaTNO.js → client-DEpOVgY1.mjs} +9 -13
  13. package/dist/{client-C97KOq3x.d.cts → client-z-8dc-e1.d.cts} +1 -1
  14. package/dist/{collection-CSzG2j1P.js → collection-BD6-SZ6O.mjs} +7 -12
  15. package/dist/compat/mod.cjs +5 -8
  16. package/dist/compat/mod.d.cts +78 -6
  17. package/dist/compat/mod.d.ts +78 -6
  18. package/dist/compat/mod.js +4 -8
  19. package/dist/compat/transformers.test.mjs +62 -0
  20. package/dist/{context-DyJjQQ_H.d.ts → context-BOiMZBu5.d.ts} +9 -18
  21. package/dist/{context-BcqA-0BL.d.cts → context-BhZVy7RB.d.cts} +9 -18
  22. package/dist/{context-Aqenou7c.js → context-Juj6bdHC.mjs} +7 -11
  23. package/dist/deno-D682wzlW.mjs +8 -0
  24. package/dist/{docloader-JiZmL7BP.js → docloader-CCWf4tNV.mjs} +8 -14
  25. package/dist/{esm-nLm00z9V.js → esm-DVILvP5e.mjs} +50 -89
  26. package/dist/federation/builder.test.d.mts +2 -0
  27. package/dist/federation/{builder.test.js → builder.test.mjs} +21 -44
  28. package/dist/federation/collection.test.d.mts +2 -0
  29. package/dist/federation/collection.test.mjs +21 -0
  30. package/dist/federation/handler.test.d.mts +2 -0
  31. package/dist/federation/{handler.test.js → handler.test.mjs} +69 -131
  32. package/dist/federation/idempotency.test.d.mts +2 -0
  33. package/dist/federation/{idempotency.test.js → idempotency.test.mjs} +31 -63
  34. package/dist/federation/inbox.test.d.mts +2 -0
  35. package/dist/federation/{inbox.test.js → inbox.test.mjs} +8 -12
  36. package/dist/federation/keycache.test.d.mts +2 -0
  37. package/dist/federation/{keycache.test.js → keycache.test.mjs} +13 -19
  38. package/dist/federation/kv.test.d.mts +2 -0
  39. package/dist/federation/{kv.test.js → kv.test.mjs} +11 -22
  40. package/dist/federation/middleware.test.d.mts +2 -0
  41. package/dist/federation/{middleware.test.js → middleware.test.mjs} +173 -262
  42. package/dist/federation/mod.cjs +327 -16
  43. package/dist/federation/mod.d.cts +3 -6
  44. package/dist/federation/mod.d.ts +3 -6
  45. package/dist/federation/mod.js +322 -13
  46. package/dist/federation/mq.test.d.mts +2 -0
  47. package/dist/federation/{mq.test.js → mq.test.mjs} +21 -35
  48. package/dist/federation/negotiation.test.d.mts +2 -0
  49. package/dist/federation/{negotiation.test.js → negotiation.test.mjs} +9 -16
  50. package/dist/federation/retry.test.d.mts +2 -0
  51. package/dist/federation/{retry.test.js → retry.test.mjs} +8 -11
  52. package/dist/federation/router.test.d.mts +2 -0
  53. package/dist/federation/{router.test.js → router.test.mjs} +11 -16
  54. package/dist/federation/send.test.d.mts +2 -0
  55. package/dist/federation/{send.test.js → send.test.mjs} +22 -30
  56. package/dist/federation/webfinger.test.d.mts +2 -0
  57. package/dist/federation/{webfinger.test.js → webfinger.test.mjs} +22 -56
  58. package/dist/{http-BnsR906R.cjs → http-BQccxQlj.cjs} +177 -302
  59. package/dist/{http-CKaqhjvP.js → http-CNsnyqrO.mjs} +23 -43
  60. package/dist/{http-BudnHZE2.d.cts → http-CrGuipxe.d.cts} +1 -6
  61. package/dist/{http-IFqEftoZ.js → http-DhwEMhtv.js} +53 -184
  62. package/dist/{http-Dax_FIBo.d.ts → http-aQzN9Ayi.d.ts} +1 -6
  63. package/dist/{inbox-Bd91CVJP.js → inbox-DegXbbbS.mjs} +18 -26
  64. package/dist/{key-DFLFXKER.js → key-vL60OvqM.mjs} +29 -37
  65. package/dist/{keycache-CpGWAUbj.js → keycache-CCSwkQcY.mjs} +5 -10
  66. package/dist/{keys-BFve7QQv.js → keys-BAK-tUlf.mjs} +5 -9
  67. package/dist/{kv-BL4nlICN.d.cts → kv-CbLNp3zQ.d.cts} +1 -1
  68. package/dist/{kv-DXEUEP6z.d.ts → kv-GFYnFoOl.d.ts} +1 -1
  69. package/dist/{kv-cache-Bw2F2ABq.js → kv-cache-B01V7s3h.mjs} +4 -8
  70. package/dist/{kv-cache-Drlz6O_Y.js → kv-cache-CTj3iCix.js} +6 -13
  71. package/dist/{kv-cache-BLXcQvyb.cjs → kv-cache-DxdXJNbj.cjs} +27 -34
  72. package/dist/{kv-QzKcOQgP.js → kv-tL2TOE9X.mjs} +6 -10
  73. package/dist/{ld-CGGXZJK0.js → ld-C3CO00YY.mjs} +17 -31
  74. package/dist/{middleware-DcpBikad.js → middleware-BmsVSOeS.js} +335 -382
  75. package/dist/middleware-C7shNcsp.cjs +4 -0
  76. package/dist/{middleware-B51dB75z.cjs → middleware-Cx0Ny6_7.cjs} +532 -587
  77. package/dist/middleware-DqVGYk56.mjs +5 -0
  78. package/dist/{middleware-B53r4pdM.js → middleware-Du-vh7I_.mjs} +282 -317
  79. package/dist/{mod-em2Il1eD.d.cts → mod-Bp_CzKd4.d.cts} +2 -2
  80. package/dist/{mod-DCbh1JQ5.d.ts → mod-CLgIXe9w.d.ts} +3 -3
  81. package/dist/{mod-jfnweK2w.d.cts → mod-CMEbIaNh.d.cts} +3 -3
  82. package/dist/{mod-D6MdymW7.d.ts → mod-DKOAow7a.d.ts} +2 -2
  83. package/dist/{mod-Coe7KEgX.d.cts → mod-DoJBjjnO.d.cts} +2 -2
  84. package/dist/{mod-D6dOd--H.d.ts → mod-DvxszxXC.d.ts} +2 -2
  85. package/dist/mod.cjs +29 -74
  86. package/dist/mod.d.cts +11 -14
  87. package/dist/mod.d.ts +11 -15
  88. package/dist/mod.js +17 -71
  89. package/dist/{negotiation-BlAuS_nr.js → negotiation-DnsfFF8I.mjs} +7 -11
  90. package/dist/nodeinfo/client.test.d.mts +2 -0
  91. package/dist/nodeinfo/{client.test.js → client.test.mjs} +22 -40
  92. package/dist/nodeinfo/handler.test.d.mts +2 -0
  93. package/dist/nodeinfo/{handler.test.js → handler.test.mjs} +13 -43
  94. package/dist/nodeinfo/mod.cjs +5 -8
  95. package/dist/nodeinfo/mod.d.cts +2 -3
  96. package/dist/nodeinfo/mod.d.ts +2 -3
  97. package/dist/nodeinfo/mod.js +4 -8
  98. package/dist/nodeinfo/types.test.d.mts +2 -0
  99. package/dist/nodeinfo/{types.test.js → types.test.mjs} +9 -16
  100. package/dist/otel/exporter.test.d.mts +2 -0
  101. package/dist/otel/{exporter.test.js → exporter.test.mjs} +124 -178
  102. package/dist/otel/mod.cjs +15 -20
  103. package/dist/otel/mod.d.cts +2 -2
  104. package/dist/otel/mod.d.ts +2 -2
  105. package/dist/otel/mod.js +8 -14
  106. package/dist/{owner-gd0Q9FuU.d.ts → owner-74ARJ5TL.d.ts} +1 -1
  107. package/dist/{owner-1AbPBOOZ.d.cts → owner-CptqhsOy.d.cts} +1 -1
  108. package/dist/{owner-Cye0yQB_.js → owner-DF320w6K.mjs} +11 -16
  109. package/dist/{proof-DdGGXVWM.js → proof-BCWk5oas.js} +32 -58
  110. package/dist/{proof-DV5lC_Bw.js → proof-IyDwwmzL.mjs} +21 -33
  111. package/dist/{proof-CN5iR1tW.cjs → proof-WhNxSv_N.cjs} +133 -157
  112. package/dist/{retry-mqLf4b-R.js → retry-B_E3V_Dx.mjs} +4 -7
  113. package/dist/{router-D9eI0s4b.js → router-CrMLXoOr.mjs} +4 -8
  114. package/dist/runtime/mod.cjs +11 -13
  115. package/dist/runtime/mod.d.cts +6 -2
  116. package/dist/runtime/mod.d.ts +0 -1
  117. package/dist/runtime/mod.js +4 -7
  118. package/dist/{send-C2a_3YAF.js → send-CJQubr5t.mjs} +8 -13
  119. package/dist/sig/accept.test.d.mts +2 -0
  120. package/dist/sig/{accept.test.js → accept.test.mjs} +35 -70
  121. package/dist/sig/http.test.d.mts +2 -0
  122. package/dist/sig/{http.test.js → http.test.mjs} +166 -280
  123. package/dist/sig/key.test.d.mts +2 -0
  124. package/dist/sig/{key.test.js → key.test.mjs} +11 -18
  125. package/dist/sig/ld.test.d.mts +2 -0
  126. package/dist/sig/{ld.test.js → ld.test.mjs} +22 -35
  127. package/dist/sig/mod.cjs +6 -9
  128. package/dist/sig/mod.d.cts +3 -3
  129. package/dist/sig/mod.d.ts +3 -3
  130. package/dist/sig/mod.js +5 -9
  131. package/dist/sig/owner.test.d.mts +2 -0
  132. package/dist/sig/{owner.test.js → owner.test.mjs} +19 -34
  133. package/dist/sig/proof.test.d.mts +2 -0
  134. package/dist/sig/{proof.test.js → proof.test.mjs} +16 -27
  135. package/dist/{std__assert-X-_kMxKM.js → std__assert-Duiq_YC9.mjs} +12 -24
  136. package/dist/testing/{mod.d.ts → mod.d.mts} +26 -90
  137. package/dist/testing/mod.mjs +6 -0
  138. package/dist/{transformers-3g8GZwkZ.cjs → transformers-NeAONrAq.cjs} +20 -25
  139. package/dist/{transformers-C3FLHUd6.js → transformers-ve6e2xcg.js} +3 -7
  140. package/dist/{types-CPz01LGH.js → types-DCP0WLdt.mjs} +4 -7
  141. package/dist/{types-Cd_hszr_.cjs → types-KC4QAoxe.cjs} +29 -34
  142. package/dist/{types-C93Ob9cU.js → types-hvL8ElAs.js} +8 -13
  143. package/dist/utils/docloader.test.d.mts +2 -0
  144. package/dist/utils/{docloader.test.js → docloader.test.mjs} +14 -25
  145. package/dist/utils/kv-cache.test.d.mts +2 -0
  146. package/dist/utils/{kv-cache.test.js → kv-cache.test.mjs} +25 -40
  147. package/dist/utils/mod.cjs +5 -9
  148. package/dist/utils/mod.d.cts +1 -3
  149. package/dist/utils/mod.d.ts +1 -3
  150. package/dist/utils/mod.js +4 -9
  151. package/dist/vocab/cjs.test.d.mts +2 -0
  152. package/dist/vocab/cjs.test.mjs +14 -0
  153. package/dist/vocab/mod.cjs +10 -12
  154. package/dist/vocab/mod.js +3 -5
  155. package/package.json +8 -8
  156. package/dist/compat/transformers.test.d.ts +0 -3
  157. package/dist/compat/transformers.test.js +0 -88
  158. package/dist/compat-Bb4NuTUO.js +0 -4
  159. package/dist/compat-DmDDELst.cjs +0 -4
  160. package/dist/deno-CnMqla6T.js +0 -121
  161. package/dist/federation/builder.test.d.ts +0 -3
  162. package/dist/federation/collection.test.d.ts +0 -3
  163. package/dist/federation/collection.test.js +0 -32
  164. package/dist/federation/handler.test.d.ts +0 -3
  165. package/dist/federation/idempotency.test.d.ts +0 -3
  166. package/dist/federation/inbox.test.d.ts +0 -3
  167. package/dist/federation/keycache.test.d.ts +0 -3
  168. package/dist/federation/kv.test.d.ts +0 -3
  169. package/dist/federation/middleware.test.d.ts +0 -3
  170. package/dist/federation/mq.test.d.ts +0 -3
  171. package/dist/federation/negotiation.test.d.ts +0 -3
  172. package/dist/federation/retry.test.d.ts +0 -3
  173. package/dist/federation/router.test.d.ts +0 -3
  174. package/dist/federation/send.test.d.ts +0 -3
  175. package/dist/federation/webfinger.test.d.ts +0 -3
  176. package/dist/federation-Bp3HI26G.cjs +0 -350
  177. package/dist/federation-DaMfqRm4.js +0 -332
  178. package/dist/middleware-B0kNQMO0.js +0 -27
  179. package/dist/middleware-BYQL9cdV.js +0 -12
  180. package/dist/middleware-DfNqksSs.cjs +0 -12
  181. package/dist/mod-B7QkWzrL.d.cts +0 -80
  182. package/dist/mod-Bh8mqlYw.d.cts +0 -9
  183. package/dist/mod-D6HodEq7.d.ts +0 -7
  184. package/dist/mod-SMHOMNpZ.d.ts +0 -82
  185. package/dist/mod-gq_Xfdz8.d.cts +0 -1
  186. package/dist/nodeinfo/client.test.d.ts +0 -3
  187. package/dist/nodeinfo/handler.test.d.ts +0 -3
  188. package/dist/nodeinfo/types.test.d.ts +0 -3
  189. package/dist/nodeinfo-DoESQxq5.js +0 -4
  190. package/dist/nodeinfo-DuMYTpbZ.cjs +0 -4
  191. package/dist/otel/exporter.test.d.ts +0 -3
  192. package/dist/runtime-c2Njxsry.cjs +0 -17
  193. package/dist/runtime-poamPCMb.js +0 -13
  194. package/dist/sig/accept.test.d.ts +0 -3
  195. package/dist/sig/http.test.d.ts +0 -3
  196. package/dist/sig/key.test.d.ts +0 -3
  197. package/dist/sig/ld.test.d.ts +0 -3
  198. package/dist/sig/owner.test.d.ts +0 -3
  199. package/dist/sig/proof.test.d.ts +0 -3
  200. package/dist/sig-BNhspNOf.js +0 -4
  201. package/dist/sig-vX39WyWI.cjs +0 -4
  202. package/dist/testing/mod.js +0 -10
  203. package/dist/utils/docloader.test.d.ts +0 -3
  204. package/dist/utils/kv-cache.test.d.ts +0 -3
  205. package/dist/utils-BQ9KqEK9.cjs +0 -4
  206. package/dist/utils-Dn5OPdSW.js +0 -4
  207. /package/dist/{mod-AGjRfPjT.d.ts → compat/transformers.test.d.mts} +0 -0
@@ -1,21 +1,13 @@
1
-
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
- globalThis.addEventListener = () => {};
5
-
6
- import { assertEquals } from "../assert_equals-DSbWqCm3.js";
7
- import "../assert-MZs1qjMx.js";
8
- import "../assert_instance_of-DHz7EHNU.js";
9
- import { MemoryKvStore } from "../kv-QzKcOQgP.js";
10
- import "../std__assert-X-_kMxKM.js";
11
- import "../assert_rejects-0h7I2Esa.js";
12
- import "../assert_throws-rjdMBf31.js";
13
- import "../assert_not_equals-f3m3epl3.js";
1
+ import { Temporal } from "@js-temporal/polyfill";
2
+ import "urlpattern-polyfill";
3
+ globalThis.addEventListener = () => {};
4
+ import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
+ import "../std__assert-Duiq_YC9.mjs";
6
+ import { t as MemoryKvStore } from "../kv-tL2TOE9X.mjs";
14
7
  import { test } from "@fedify/fixture";
15
- import { getLogger } from "@logtape/logtape";
16
8
  import { SpanKind, SpanStatusCode, TraceFlags } from "@opentelemetry/api";
9
+ import { getLogger } from "@logtape/logtape";
17
10
  import { ExportResultCode } from "@opentelemetry/core";
18
-
19
11
  //#region src/otel/exporter.ts
20
12
  /**
21
13
  * A SpanExporter that persists ActivityPub activity traces to a
@@ -100,8 +92,7 @@ var FedifySpanExporter = class {
100
92
  const records = this.#extractRecords(span);
101
93
  for (const record of records) storeOperations.push(this.#storeRecord(record));
102
94
  }
103
- const results = await Promise.allSettled(storeOperations);
104
- const rejected = results.filter((r) => r.status === "rejected");
95
+ const rejected = (await Promise.allSettled(storeOperations)).filter((r) => r.status === "rejected");
105
96
  if (rejected.length > 0) throw new AggregateError(rejected.map((r) => r.reason), "Failed to store one or more trace activity records.");
106
97
  }
107
98
  #extractRecords(span) {
@@ -206,12 +197,11 @@ var FedifySpanExporter = class {
206
197
  }
207
198
  async #setWithCasRetry(key, transform, options) {
208
199
  if (this.#kv.cas != null) for (let attempt = 0; attempt < 3; attempt++) {
209
- const existing$1 = await this.#kv.get(key);
210
- const newValue$1 = transform(existing$1);
211
- if (await this.#kv.cas(key, existing$1, newValue$1, options)) return;
200
+ const existing = await this.#kv.get(key);
201
+ const newValue = transform(existing);
202
+ if (await this.#kv.cas(key, existing, newValue, options)) return;
212
203
  }
213
- const existing = await this.#kv.get(key);
214
- const newValue = transform(existing);
204
+ const newValue = transform(await this.#kv.get(key));
215
205
  await this.#kv.set(key, newValue, options);
216
206
  }
217
207
  async #updateTraceSummary(record, options) {
@@ -267,15 +257,13 @@ var FedifySpanExporter = class {
267
257
  */
268
258
  async shutdown() {}
269
259
  };
270
-
271
260
  //#endregion
272
261
  //#region src/otel/exporter.test.ts
273
262
  function createMockSpan(options) {
274
263
  const traceId = options.traceId ?? "0123456789abcdef0123456789abcdef";
275
- const spanId = options.spanId ?? "0123456789abcdef";
276
264
  const spanContext = {
277
265
  traceId,
278
- spanId,
266
+ spanId: options.spanId ?? "0123456789abcdef",
279
267
  traceFlags: TraceFlags.SAMPLED
280
268
  };
281
269
  const parentSpanContext = options.parentSpanId ? {
@@ -340,13 +328,10 @@ function createActivitySentEvent(options) {
340
328
  }
341
329
  test("FedifySpanExporter", async (t) => {
342
330
  await t.step("constructor accepts KvStore with list()", () => {
343
- const kv = new MemoryKvStore();
344
- const exporter = new FedifySpanExporter(kv);
345
- assertEquals(exporter instanceof FedifySpanExporter, true);
331
+ assertEquals(new FedifySpanExporter(new MemoryKvStore()) instanceof FedifySpanExporter, true);
346
332
  });
347
333
  await t.step("export() stores inbound activity from span event", async () => {
348
- const kv = new MemoryKvStore();
349
- const exporter = new FedifySpanExporter(kv);
334
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
350
335
  const traceId = "trace123";
351
336
  const spanId = "span456";
352
337
  const activity = {
@@ -387,8 +372,7 @@ test("FedifySpanExporter", async (t) => {
387
372
  assertEquals(activities[0].verified, true);
388
373
  });
389
374
  await t.step("export() stores outbound activity from span event", async () => {
390
- const kv = new MemoryKvStore();
391
- const exporter = new FedifySpanExporter(kv);
375
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
392
376
  const traceId = "trace789";
393
377
  const spanId = "span012";
394
378
  const inboxUrl = "https://example.com/users/alice/inbox";
@@ -399,13 +383,12 @@ test("FedifySpanExporter", async (t) => {
399
383
  actor: "https://myserver.com/users/bob",
400
384
  object: "https://example.com/users/alice"
401
385
  };
402
- const activityJson = JSON.stringify(activity);
403
386
  const span = createMockSpan({
404
387
  traceId,
405
388
  spanId,
406
389
  name: "activitypub.send_activity",
407
390
  events: [createActivitySentEvent({
408
- activityJson,
391
+ activityJson: JSON.stringify(activity),
409
392
  inboxUrl,
410
393
  activityId: activity.id
411
394
  })]
@@ -426,8 +409,7 @@ test("FedifySpanExporter", async (t) => {
426
409
  assertEquals(activities[0].inboxUrl, inboxUrl);
427
410
  });
428
411
  await t.step("export() ignores spans without activity events", async () => {
429
- const kv = new MemoryKvStore();
430
- const exporter = new FedifySpanExporter(kv);
412
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
431
413
  const span = createMockSpan({
432
414
  traceId: "trace999",
433
415
  spanId: "span999",
@@ -440,12 +422,10 @@ test("FedifySpanExporter", async (t) => {
440
422
  resolve();
441
423
  });
442
424
  });
443
- const activities = await exporter.getActivitiesByTraceId("trace999");
444
- assertEquals(activities.length, 0);
425
+ assertEquals((await exporter.getActivitiesByTraceId("trace999")).length, 0);
445
426
  });
446
427
  await t.step("export() stores multiple activities from same trace", async () => {
447
- const kv = new MemoryKvStore();
448
- const exporter = new FedifySpanExporter(kv);
428
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
449
429
  const inboundActivity = JSON.stringify({
450
430
  "@context": "https://www.w3.org/ns/activitystreams",
451
431
  type: "Create",
@@ -487,8 +467,7 @@ test("FedifySpanExporter", async (t) => {
487
467
  assertEquals(outbound?.parentSpanId, "span1");
488
468
  });
489
469
  await t.step("getRecentTraces() returns recent traces", async () => {
490
- const kv = new MemoryKvStore();
491
- const exporter = new FedifySpanExporter(kv);
470
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
492
471
  for (let i = 0; i < 5; i++) {
493
472
  const activityJson = JSON.stringify({
494
473
  "@context": "https://www.w3.org/ns/activitystreams",
@@ -505,12 +484,10 @@ test("FedifySpanExporter", async (t) => {
505
484
  exporter.export([span], () => resolve());
506
485
  });
507
486
  }
508
- const traces = await exporter.getRecentTraces({ limit: 3 });
509
- assertEquals(traces.length, 3);
487
+ assertEquals((await exporter.getRecentTraces({ limit: 3 })).length, 3);
510
488
  });
511
489
  await t.step("getRecentTraces() returns all traces when limit not specified", async () => {
512
- const kv = new MemoryKvStore();
513
- const exporter = new FedifySpanExporter(kv);
490
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
514
491
  for (let i = 0; i < 3; i++) {
515
492
  const activityJson = JSON.stringify({
516
493
  "@context": "https://www.w3.org/ns/activitystreams",
@@ -527,22 +504,17 @@ test("FedifySpanExporter", async (t) => {
527
504
  exporter.export([span], () => resolve());
528
505
  });
529
506
  }
530
- const traces = await exporter.getRecentTraces();
531
- assertEquals(traces.length >= 3, true);
507
+ assertEquals((await exporter.getRecentTraces()).length >= 3, true);
532
508
  });
533
509
  await t.step("forceFlush() returns resolved promise", async () => {
534
- const kv = new MemoryKvStore();
535
- const exporter = new FedifySpanExporter(kv);
536
- await exporter.forceFlush();
510
+ await new FedifySpanExporter(new MemoryKvStore()).forceFlush();
537
511
  });
538
512
  await t.step("shutdown() completes successfully", async () => {
539
- const kv = new MemoryKvStore();
540
- const exporter = new FedifySpanExporter(kv);
541
- await exporter.shutdown();
513
+ await new FedifySpanExporter(new MemoryKvStore()).shutdown();
542
514
  });
543
515
  await t.step("works with custom KvStore implementation", async () => {
544
516
  const storedData = {};
545
- const kv = {
517
+ const exporter = new FedifySpanExporter({
546
518
  get: (key) => {
547
519
  const k = JSON.stringify(key);
548
520
  return Promise.resolve(storedData[k]);
@@ -570,18 +542,16 @@ test("FedifySpanExporter", async (t) => {
570
542
  };
571
543
  }
572
544
  }
573
- };
574
- const exporter = new FedifySpanExporter(kv);
575
- const activityJson = JSON.stringify({
576
- "@context": "https://www.w3.org/ns/activitystreams",
577
- type: "Like",
578
- id: "https://example.com/activities/like"
579
545
  });
580
546
  const span = createMockSpan({
581
547
  traceId: "cas-trace",
582
548
  spanId: "cas-span",
583
549
  name: "activitypub.inbox",
584
- events: [createActivityReceivedEvent({ activityJson })]
550
+ events: [createActivityReceivedEvent({ activityJson: JSON.stringify({
551
+ "@context": "https://www.w3.org/ns/activitystreams",
552
+ type: "Like",
553
+ id: "https://example.com/activities/like"
554
+ }) })]
585
555
  });
586
556
  await new Promise((resolve) => {
587
557
  exporter.export([span], (result) => {
@@ -594,36 +564,31 @@ test("FedifySpanExporter", async (t) => {
594
564
  assertEquals(activities[0].activityType, "Like");
595
565
  });
596
566
  await t.step("TTL option is respected", async () => {
597
- const kv = new MemoryKvStore();
598
- const exporter = new FedifySpanExporter(kv, { ttl: Temporal.Duration.from({ hours: 1 }) });
599
- const activityJson = JSON.stringify({
600
- "@context": "https://www.w3.org/ns/activitystreams",
601
- type: "Create"
602
- });
567
+ const exporter = new FedifySpanExporter(new MemoryKvStore(), { ttl: Temporal.Duration.from({ hours: 1 }) });
603
568
  const span = createMockSpan({
604
569
  traceId: "ttl-trace",
605
570
  spanId: "ttl-span",
606
571
  name: "activitypub.inbox",
607
- events: [createActivityReceivedEvent({ activityJson })]
572
+ events: [createActivityReceivedEvent({ activityJson: JSON.stringify({
573
+ "@context": "https://www.w3.org/ns/activitystreams",
574
+ type: "Create"
575
+ }) })]
608
576
  });
609
577
  await new Promise((resolve) => {
610
578
  exporter.export([span], () => resolve());
611
579
  });
612
- const activities = await exporter.getActivitiesByTraceId("ttl-trace");
613
- assertEquals(activities.length, 1);
580
+ assertEquals((await exporter.getActivitiesByTraceId("ttl-trace")).length, 1);
614
581
  });
615
582
  await t.step("keyPrefix option customizes storage keys", async () => {
616
- const kv = new MemoryKvStore();
617
- const exporter = new FedifySpanExporter(kv, { keyPrefix: ["custom", "prefix"] });
618
- const activityJson = JSON.stringify({
619
- "@context": "https://www.w3.org/ns/activitystreams",
620
- type: "Announce"
621
- });
583
+ const exporter = new FedifySpanExporter(new MemoryKvStore(), { keyPrefix: ["custom", "prefix"] });
622
584
  const span = createMockSpan({
623
585
  traceId: "prefix-trace",
624
586
  spanId: "prefix-span",
625
587
  name: "activitypub.inbox",
626
- events: [createActivityReceivedEvent({ activityJson })]
588
+ events: [createActivityReceivedEvent({ activityJson: JSON.stringify({
589
+ "@context": "https://www.w3.org/ns/activitystreams",
590
+ type: "Announce"
591
+ }) })]
627
592
  });
628
593
  await new Promise((resolve) => {
629
594
  exporter.export([span], () => resolve());
@@ -637,39 +602,37 @@ test("FedifySpanExporter", async (t) => {
637
602
  const webServerExporter = new FedifySpanExporter(sharedKv);
638
603
  const workerExporter = new FedifySpanExporter(sharedKv);
639
604
  const dashboardExporter = new FedifySpanExporter(sharedKv);
640
- const inboundActivity = JSON.stringify({
641
- "@context": "https://www.w3.org/ns/activitystreams",
642
- type: "Follow",
643
- id: "https://remote.example/activities/follow-1",
644
- actor: "https://remote.example/users/alice",
645
- object: "https://local.example/users/bob"
646
- });
647
605
  const inboxSpan = createMockSpan({
648
606
  traceId: "distributed-trace-001",
649
607
  spanId: "inbox-span",
650
608
  name: "activitypub.inbox",
651
609
  events: [createActivityReceivedEvent({
652
- activityJson: inboundActivity,
610
+ activityJson: JSON.stringify({
611
+ "@context": "https://www.w3.org/ns/activitystreams",
612
+ type: "Follow",
613
+ id: "https://remote.example/activities/follow-1",
614
+ actor: "https://remote.example/users/alice",
615
+ object: "https://local.example/users/bob"
616
+ }),
653
617
  verified: true
654
618
  })]
655
619
  });
656
620
  await new Promise((resolve) => {
657
621
  webServerExporter.export([inboxSpan], () => resolve());
658
622
  });
659
- const outboundActivity = JSON.stringify({
660
- "@context": "https://www.w3.org/ns/activitystreams",
661
- type: "Accept",
662
- id: "https://local.example/activities/accept-1",
663
- actor: "https://local.example/users/bob",
664
- object: "https://remote.example/activities/follow-1"
665
- });
666
623
  const sendSpan = createMockSpan({
667
624
  traceId: "distributed-trace-001",
668
625
  spanId: "send-span",
669
626
  parentSpanId: "inbox-span",
670
627
  name: "activitypub.send_activity",
671
628
  events: [createActivitySentEvent({
672
- activityJson: outboundActivity,
629
+ activityJson: JSON.stringify({
630
+ "@context": "https://www.w3.org/ns/activitystreams",
631
+ type: "Accept",
632
+ id: "https://local.example/activities/accept-1",
633
+ actor: "https://local.example/users/bob",
634
+ object: "https://remote.example/activities/follow-1"
635
+ }),
673
636
  inboxUrl: "https://remote.example/users/alice/inbox",
674
637
  activityId: "https://local.example/activities/accept-1"
675
638
  })]
@@ -688,8 +651,7 @@ test("FedifySpanExporter", async (t) => {
688
651
  assertEquals(accept?.direction, "outbound");
689
652
  assertEquals(accept?.inboxUrl, "https://remote.example/users/alice/inbox");
690
653
  assertEquals(accept?.parentSpanId, "inbox-span");
691
- const recentTraces = await dashboardExporter.getRecentTraces();
692
- const ourTrace = recentTraces.find((t$1) => t$1.traceId === "distributed-trace-001");
654
+ const ourTrace = (await dashboardExporter.getRecentTraces()).find((t) => t.traceId === "distributed-trace-001");
693
655
  assertEquals(ourTrace != null, true);
694
656
  assertEquals(ourTrace?.activityCount, 2);
695
657
  assertEquals(ourTrace?.activityTypes.includes("Follow"), true);
@@ -723,34 +685,30 @@ test("FedifySpanExporter", async (t) => {
723
685
  });
724
686
  });
725
687
  await Promise.all(exportPromises);
726
- const dashboard = new FedifySpanExporter(sharedKv);
727
- const activities = await dashboard.getActivitiesByTraceId(traceId);
688
+ const activities = await new FedifySpanExporter(sharedKv).getActivitiesByTraceId(traceId);
728
689
  assertEquals(activities.length, 3);
729
- const inboxUrls = activities.map((a) => a.inboxUrl).sort();
730
- assertEquals(inboxUrls, [
690
+ assertEquals(activities.map((a) => a.inboxUrl).sort(), [
731
691
  "https://follower-0.example/inbox",
732
692
  "https://follower-1.example/inbox",
733
693
  "https://follower-2.example/inbox"
734
694
  ]);
735
695
  });
736
696
  await t.step("extracts actorId from activity with string actor", async () => {
737
- const kv = new MemoryKvStore();
738
- const exporter = new FedifySpanExporter(kv);
739
- const activityJson = JSON.stringify({
740
- "@context": "https://www.w3.org/ns/activitystreams",
741
- type: "Create",
742
- id: "https://example.com/activities/123",
743
- actor: "https://example.com/users/alice",
744
- object: {
745
- type: "Note",
746
- content: "Hello!"
747
- }
748
- });
697
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
749
698
  const span = createMockSpan({
750
699
  traceId: "actor-string-trace",
751
700
  spanId: "span1",
752
701
  name: "activitypub.inbox",
753
- events: [createActivityReceivedEvent({ activityJson })]
702
+ events: [createActivityReceivedEvent({ activityJson: JSON.stringify({
703
+ "@context": "https://www.w3.org/ns/activitystreams",
704
+ type: "Create",
705
+ id: "https://example.com/activities/123",
706
+ actor: "https://example.com/users/alice",
707
+ object: {
708
+ type: "Note",
709
+ content: "Hello!"
710
+ }
711
+ }) })]
754
712
  });
755
713
  await new Promise((resolve) => {
756
714
  exporter.export([span], () => resolve());
@@ -760,27 +718,25 @@ test("FedifySpanExporter", async (t) => {
760
718
  assertEquals(activities[0].actorId, "https://example.com/users/alice");
761
719
  });
762
720
  await t.step("extracts actorId from activity with object actor", async () => {
763
- const kv = new MemoryKvStore();
764
- const exporter = new FedifySpanExporter(kv);
765
- const activityJson = JSON.stringify({
766
- "@context": "https://www.w3.org/ns/activitystreams",
767
- type: "Create",
768
- id: "https://example.com/activities/456",
769
- actor: {
770
- type: "Person",
771
- id: "https://example.com/users/bob",
772
- name: "Bob"
773
- },
774
- object: {
775
- type: "Note",
776
- content: "Hello!"
777
- }
778
- });
721
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
779
722
  const span = createMockSpan({
780
723
  traceId: "actor-object-trace",
781
724
  spanId: "span1",
782
725
  name: "activitypub.inbox",
783
- events: [createActivityReceivedEvent({ activityJson })]
726
+ events: [createActivityReceivedEvent({ activityJson: JSON.stringify({
727
+ "@context": "https://www.w3.org/ns/activitystreams",
728
+ type: "Create",
729
+ id: "https://example.com/activities/456",
730
+ actor: {
731
+ type: "Person",
732
+ id: "https://example.com/users/bob",
733
+ name: "Bob"
734
+ },
735
+ object: {
736
+ type: "Note",
737
+ content: "Hello!"
738
+ }
739
+ }) })]
784
740
  });
785
741
  await new Promise((resolve) => {
786
742
  exporter.export([span], () => resolve());
@@ -790,21 +746,19 @@ test("FedifySpanExporter", async (t) => {
790
746
  assertEquals(activities[0].actorId, "https://example.com/users/bob");
791
747
  });
792
748
  await t.step("extracts actorId from outbound activity", async () => {
793
- const kv = new MemoryKvStore();
794
- const exporter = new FedifySpanExporter(kv);
795
- const activityJson = JSON.stringify({
796
- "@context": "https://www.w3.org/ns/activitystreams",
797
- type: "Follow",
798
- id: "https://myserver.com/activities/789",
799
- actor: "https://myserver.com/users/charlie",
800
- object: "https://example.com/users/alice"
801
- });
749
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
802
750
  const span = createMockSpan({
803
751
  traceId: "outbound-actor-trace",
804
752
  spanId: "span1",
805
753
  name: "activitypub.send_activity",
806
754
  events: [createActivitySentEvent({
807
- activityJson,
755
+ activityJson: JSON.stringify({
756
+ "@context": "https://www.w3.org/ns/activitystreams",
757
+ type: "Follow",
758
+ id: "https://myserver.com/activities/789",
759
+ actor: "https://myserver.com/users/charlie",
760
+ object: "https://example.com/users/alice"
761
+ }),
808
762
  inboxUrl: "https://example.com/users/alice/inbox"
809
763
  })]
810
764
  });
@@ -816,20 +770,18 @@ test("FedifySpanExporter", async (t) => {
816
770
  assertEquals(activities[0].actorId, "https://myserver.com/users/charlie");
817
771
  });
818
772
  await t.step("extracts signature verification details for inbound activity", async () => {
819
- const kv = new MemoryKvStore();
820
- const exporter = new FedifySpanExporter(kv);
821
- const activityJson = JSON.stringify({
822
- "@context": "https://www.w3.org/ns/activitystreams",
823
- type: "Create",
824
- id: "https://example.com/activities/sig-test",
825
- actor: "https://example.com/users/alice"
826
- });
773
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
827
774
  const span = createMockSpan({
828
775
  traceId: "sig-details-trace",
829
776
  spanId: "span1",
830
777
  name: "activitypub.inbox",
831
778
  events: [createActivityReceivedEvent({
832
- activityJson,
779
+ activityJson: JSON.stringify({
780
+ "@context": "https://www.w3.org/ns/activitystreams",
781
+ type: "Create",
782
+ id: "https://example.com/activities/sig-test",
783
+ actor: "https://example.com/users/alice"
784
+ }),
833
785
  verified: true,
834
786
  httpSigVerified: true,
835
787
  httpSigKeyId: "https://example.com/users/alice#main-key",
@@ -848,20 +800,18 @@ test("FedifySpanExporter", async (t) => {
848
800
  assertEquals(activities[0].signatureDetails?.ldSignaturesVerified, false);
849
801
  });
850
802
  await t.step("signature details with LD signatures verified", async () => {
851
- const kv = new MemoryKvStore();
852
- const exporter = new FedifySpanExporter(kv);
853
- const activityJson = JSON.stringify({
854
- "@context": "https://www.w3.org/ns/activitystreams",
855
- type: "Delete",
856
- id: "https://example.com/activities/ld-sig-test",
857
- actor: "https://example.com/users/alice"
858
- });
803
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
859
804
  const span = createMockSpan({
860
805
  traceId: "ld-sig-trace",
861
806
  spanId: "span1",
862
807
  name: "activitypub.inbox",
863
808
  events: [createActivityReceivedEvent({
864
- activityJson,
809
+ activityJson: JSON.stringify({
810
+ "@context": "https://www.w3.org/ns/activitystreams",
811
+ type: "Delete",
812
+ id: "https://example.com/activities/ld-sig-test",
813
+ actor: "https://example.com/users/alice"
814
+ }),
865
815
  verified: true,
866
816
  httpSigVerified: false,
867
817
  ldSigVerified: true
@@ -876,20 +826,18 @@ test("FedifySpanExporter", async (t) => {
876
826
  assertEquals(activities[0].signatureDetails?.ldSignaturesVerified, true);
877
827
  });
878
828
  await t.step("extracts HTTP signature failure details for inbound activity", async () => {
879
- const kv = new MemoryKvStore();
880
- const exporter = new FedifySpanExporter(kv);
881
- const activityJson = JSON.stringify({
882
- "@context": "https://www.w3.org/ns/activitystreams",
883
- type: "Delete",
884
- id: "https://example.com/activities/unverified",
885
- actor: "https://example.com/users/alice"
886
- });
829
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
887
830
  const span = createMockSpan({
888
831
  traceId: "sig-failure-trace",
889
832
  spanId: "span1",
890
833
  name: "activitypub.inbox",
891
834
  events: [createActivityReceivedEvent({
892
- activityJson,
835
+ activityJson: JSON.stringify({
836
+ "@context": "https://www.w3.org/ns/activitystreams",
837
+ type: "Delete",
838
+ id: "https://example.com/activities/unverified",
839
+ actor: "https://example.com/users/alice"
840
+ }),
893
841
  verified: false,
894
842
  httpSigVerified: false,
895
843
  httpSigKeyId: "https://example.com/users/alice#main-key",
@@ -908,19 +856,17 @@ test("FedifySpanExporter", async (t) => {
908
856
  assertEquals(activities[0].signatureDetails?.httpSignaturesKeyFetchError, void 0);
909
857
  });
910
858
  await t.step("handles activity without actor field", async () => {
911
- const kv = new MemoryKvStore();
912
- const exporter = new FedifySpanExporter(kv);
913
- const activityJson = JSON.stringify({
914
- "@context": "https://www.w3.org/ns/activitystreams",
915
- type: "Delete",
916
- id: "https://example.com/activities/no-actor",
917
- object: "https://example.com/posts/123"
918
- });
859
+ const exporter = new FedifySpanExporter(new MemoryKvStore());
919
860
  const span = createMockSpan({
920
861
  traceId: "no-actor-trace",
921
862
  spanId: "span1",
922
863
  name: "activitypub.inbox",
923
- events: [createActivityReceivedEvent({ activityJson })]
864
+ events: [createActivityReceivedEvent({ activityJson: JSON.stringify({
865
+ "@context": "https://www.w3.org/ns/activitystreams",
866
+ type: "Delete",
867
+ id: "https://example.com/activities/no-actor",
868
+ object: "https://example.com/posts/123"
869
+ }) })]
924
870
  });
925
871
  await new Promise((resolve) => {
926
872
  exporter.export([span], () => resolve());
@@ -930,5 +876,5 @@ test("FedifySpanExporter", async (t) => {
930
876
  assertEquals(activities[0].actorId, void 0);
931
877
  });
932
878
  });
933
-
934
- //#endregion
879
+ //#endregion
880
+ export {};
package/dist/otel/mod.cjs CHANGED
@@ -1,11 +1,9 @@
1
-
2
- const { Temporal } = require("@js-temporal/polyfill");
3
- const { URLPattern } = require("urlpattern-polyfill");
4
-
5
- const require_chunk = require('../chunk-CGaQZ11T.cjs');
6
- const __logtape_logtape = require_chunk.__toESM(require("@logtape/logtape"));
7
- const __opentelemetry_core = require_chunk.__toESM(require("@opentelemetry/core"));
8
-
1
+ const { Temporal } = require("@js-temporal/polyfill");
2
+ const { URLPattern } = require("urlpattern-polyfill");
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ require("../chunk-DDcVe30Y.cjs");
5
+ let _logtape_logtape = require("@logtape/logtape");
6
+ let _opentelemetry_core = require("@opentelemetry/core");
9
7
  //#region src/otel/exporter.ts
10
8
  /**
11
9
  * A SpanExporter that persists ActivityPub activity traces to a
@@ -75,13 +73,13 @@ var FedifySpanExporter = class {
75
73
  * @param resultCallback Callback to invoke with the export result.
76
74
  */
77
75
  export(spans, resultCallback) {
78
- this.#exportAsync(spans).then(() => resultCallback({ code: __opentelemetry_core.ExportResultCode.SUCCESS })).catch((error) => {
79
- (0, __logtape_logtape.getLogger)([
76
+ this.#exportAsync(spans).then(() => resultCallback({ code: _opentelemetry_core.ExportResultCode.SUCCESS })).catch((error) => {
77
+ (0, _logtape_logtape.getLogger)([
80
78
  "fedify",
81
79
  "otel",
82
80
  "exporter"
83
81
  ]).error("Failed to export spans to KvStore: {error}", { error });
84
- resultCallback({ code: __opentelemetry_core.ExportResultCode.FAILED });
82
+ resultCallback({ code: _opentelemetry_core.ExportResultCode.FAILED });
85
83
  });
86
84
  }
87
85
  async #exportAsync(spans) {
@@ -90,8 +88,7 @@ var FedifySpanExporter = class {
90
88
  const records = this.#extractRecords(span);
91
89
  for (const record of records) storeOperations.push(this.#storeRecord(record));
92
90
  }
93
- const results = await Promise.allSettled(storeOperations);
94
- const rejected = results.filter((r) => r.status === "rejected");
91
+ const rejected = (await Promise.allSettled(storeOperations)).filter((r) => r.status === "rejected");
95
92
  if (rejected.length > 0) throw new AggregateError(rejected.map((r) => r.reason), "Failed to store one or more trace activity records.");
96
93
  }
97
94
  #extractRecords(span) {
@@ -196,12 +193,11 @@ var FedifySpanExporter = class {
196
193
  }
197
194
  async #setWithCasRetry(key, transform, options) {
198
195
  if (this.#kv.cas != null) for (let attempt = 0; attempt < 3; attempt++) {
199
- const existing$1 = await this.#kv.get(key);
200
- const newValue$1 = transform(existing$1);
201
- if (await this.#kv.cas(key, existing$1, newValue$1, options)) return;
196
+ const existing = await this.#kv.get(key);
197
+ const newValue = transform(existing);
198
+ if (await this.#kv.cas(key, existing, newValue, options)) return;
202
199
  }
203
- const existing = await this.#kv.get(key);
204
- const newValue = transform(existing);
200
+ const newValue = transform(await this.#kv.get(key));
205
201
  await this.#kv.set(key, newValue, options);
206
202
  }
207
203
  async #updateTraceSummary(record, options) {
@@ -257,6 +253,5 @@ var FedifySpanExporter = class {
257
253
  */
258
254
  async shutdown() {}
259
255
  };
260
-
261
256
  //#endregion
262
- exports.FedifySpanExporter = FedifySpanExporter;
257
+ exports.FedifySpanExporter = FedifySpanExporter;
@@ -1,4 +1,4 @@
1
- import { KvKey, KvStore } from "../kv-BL4nlICN.cjs";
1
+ import { n as KvStore, t as KvKey } from "../kv-CbLNp3zQ.cjs";
2
2
  import { ReadableSpan, SpanExporter } from "@opentelemetry/sdk-trace-base";
3
3
  import { ExportResultCode } from "@opentelemetry/core";
4
4
 
@@ -239,4 +239,4 @@ declare class FedifySpanExporter implements SpanExporter {
239
239
  shutdown(): Promise<void>;
240
240
  }
241
241
  //#endregion
242
- export { ActivityDirection, FedifySpanExporter, FedifySpanExporterOptions, GetRecentTracesOptions, SignatureVerificationDetails, TraceActivityRecord, TraceSummary };
242
+ export { type ActivityDirection, FedifySpanExporter, type FedifySpanExporterOptions, type GetRecentTracesOptions, type SignatureVerificationDetails, type TraceActivityRecord, type TraceSummary };
@@ -1,6 +1,6 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { KvKey, KvStore } from "../kv-DXEUEP6z.js";
3
+ import { n as KvStore, t as KvKey } from "../kv-GFYnFoOl.js";
4
4
  import { ExportResultCode } from "@opentelemetry/core";
5
5
  import { ReadableSpan, SpanExporter } from "@opentelemetry/sdk-trace-base";
6
6
 
@@ -241,4 +241,4 @@ declare class FedifySpanExporter implements SpanExporter {
241
241
  shutdown(): Promise<void>;
242
242
  }
243
243
  //#endregion
244
- export { ActivityDirection, FedifySpanExporter, FedifySpanExporterOptions, GetRecentTracesOptions, SignatureVerificationDetails, TraceActivityRecord, TraceSummary };
244
+ export { type ActivityDirection, FedifySpanExporter, type FedifySpanExporterOptions, type GetRecentTracesOptions, type SignatureVerificationDetails, type TraceActivityRecord, type TraceSummary };