@fedify/fedify 2.0.0-dev.1908 → 2.0.0-dev.196

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 (266) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +68 -35
  3. package/dist/{builder-GG0LDRaK.js → builder-R1Sfe-tb.js} +5 -3
  4. package/dist/{client-BsGzbnV-.d.ts → client-CUTUGgvJ.d.ts} +18 -18
  5. package/dist/{client-pY7-3icS.js → client-Dg7OfUDA.js} +28 -23
  6. package/dist/{client-94iWEfQa.d.cts → client-by-PEGAJ.d.cts} +18 -18
  7. package/dist/compat/mod.cjs +1 -1
  8. package/dist/compat/mod.d.cts +6 -10
  9. package/dist/compat/mod.d.ts +6 -10
  10. package/dist/compat/mod.js +1 -1
  11. package/dist/compat/transformers.test.js +22 -21
  12. package/dist/context-Bns6uTJq.js +109 -0
  13. package/dist/{context-V-XS2_6O.d.ts → context-C7vzWilY.d.ts} +63 -65
  14. package/dist/{context-PxGADCsD.d.cts → context-CrB9RFy5.d.cts} +63 -65
  15. package/dist/deno-i60L3ZJW.js +117 -0
  16. package/dist/{testing-bgnt5CjE.js → dist-B5f6a8Tt.js} +90 -110
  17. package/dist/{docloader-Buj0Y50A.js → docloader-BuOglEYx.js} +3 -3
  18. package/dist/{esm-vPU_GxaY.js → esm-DGl7uK1r.js} +32 -17
  19. package/dist/federation/builder.test.js +7 -5
  20. package/dist/federation/collection.test.js +2 -3
  21. package/dist/federation/handler.test.js +110 -22
  22. package/dist/federation/idempotency.test.js +23 -22
  23. package/dist/federation/inbox.test.js +4 -3
  24. package/dist/federation/keycache.test.js +4 -4
  25. package/dist/federation/kv.test.js +56 -3
  26. package/dist/federation/middleware.test.js +95 -93
  27. package/dist/federation/mod.cjs +8 -10
  28. package/dist/federation/mod.d.cts +7 -11
  29. package/dist/federation/mod.d.ts +7 -11
  30. package/dist/federation/mod.js +8 -11
  31. package/dist/federation/mq.test.js +5 -6
  32. package/dist/federation/negotiation.test.js +2 -3
  33. package/dist/federation/retry.test.js +2 -3
  34. package/dist/federation/router.test.js +2 -2
  35. package/dist/federation/send.test.js +51 -9
  36. package/dist/{webfinger/handler.test.js → federation/webfinger.test.js} +24 -22
  37. package/dist/{federation-CRpdnOMS.cjs → federation-B431K2gm.cjs} +22 -0
  38. package/dist/{federation-jcR8-ZxP.js → federation-BbZwNNWj.js} +28 -6
  39. package/dist/{http-ByZmUHwe.js → http-B5BgMxiO.js} +119 -9
  40. package/dist/{http-CTi-owaL.cjs → http-B_jtB30-.cjs} +132 -16
  41. package/dist/{http-M8k5mKc0.d.cts → http-ClB3pLcL.d.cts} +1 -1
  42. package/dist/{http-BbO0ejuk.d.ts → http-DLBDPal9.d.ts} +1 -1
  43. package/dist/{http-DO88HCOK.js → http-uzkhnm0W.js} +3 -2
  44. package/dist/{inbox-BwIgnk8R.js → inbox-CxrUTds4.js} +2 -1
  45. package/dist/{key-CrKmngwF.js → key-DBHCloAO.js} +3 -3
  46. package/dist/{keycache-CFv8xdnH.js → keycache-DRxpZ5r9.js} +1 -1
  47. package/dist/{keys-B2yaEG79.js → keys-ZbcByPg9.js} +1 -1
  48. package/dist/{kv-Bxr0Q87_.d.cts → kv-B4vFhIYL.d.cts} +30 -1
  49. package/dist/{kv-BKNZ-Tb-.d.ts → kv-CYySNrsn.d.ts} +30 -1
  50. package/dist/{kv-CRZrzyXm.js → kv-QzKcOQgP.js} +22 -0
  51. package/dist/{kv-cache-DN9pfMBe.js → kv-cache-BEeqyGER.js} +14 -1
  52. package/dist/{kv-cache-CykGg2IP.js → kv-cache-BqWqxam4.js} +2 -2
  53. package/dist/{kv-cache-BbklA4EG.cjs → kv-cache-DY6hQ8Rf.cjs} +2 -2
  54. package/dist/{ld-Ckl2k3lF.js → ld-CZgNIUGN.js} +4 -3
  55. package/dist/{middleware-X0RaVmfv.cjs → middleware-BaoVtoMl.cjs} +210 -194
  56. package/dist/{middleware-Dv90Gwc-.js → middleware-BqPcChYv.js} +164 -154
  57. package/dist/middleware-CnrWiFJI.cjs +12 -0
  58. package/dist/{middleware-CdPISvYD.js → middleware-CxwWsgSo.js} +162 -165
  59. package/dist/middleware-DoFisLae.js +26 -0
  60. package/dist/middleware-ZN9cd_L8.js +12 -0
  61. package/dist/{mod-DMpuiKXi.d.cts → mod-0p9zUdzg.d.cts} +6 -6
  62. package/dist/mod-0qnPv4EC.d.cts +62 -0
  63. package/dist/{mod-DgxG-byT.d.cts → mod-BrS8tiad.d.cts} +2 -2
  64. package/dist/mod-C3SOvTD1.d.ts +64 -0
  65. package/dist/{mod-BoRKfJPE.d.cts → mod-D6pS5_xJ.d.cts} +4 -4
  66. package/dist/{mod-D5Z2tISD.d.ts → mod-jOa7W503.d.ts} +2 -2
  67. package/dist/{mod-Cdo6SYlJ.d.ts → mod-waqu-BL_.d.ts} +4 -4
  68. package/dist/{mod-aAE2wOWV.d.ts → mod-xc20HhMD.d.ts} +6 -6
  69. package/dist/mod.cjs +11 -93
  70. package/dist/mod.d.cts +11 -15
  71. package/dist/mod.d.ts +11 -15
  72. package/dist/mod.js +11 -15
  73. package/dist/nodeinfo/client.test.js +3 -4
  74. package/dist/nodeinfo/handler.test.js +22 -21
  75. package/dist/nodeinfo/mod.cjs +2 -2
  76. package/dist/nodeinfo/mod.d.cts +2 -2
  77. package/dist/nodeinfo/mod.d.ts +2 -2
  78. package/dist/nodeinfo/mod.js +2 -2
  79. package/dist/nodeinfo/types.test.js +2 -3
  80. package/dist/otel/exporter.test.js +893 -0
  81. package/dist/otel/mod.cjs +256 -0
  82. package/dist/otel/mod.d.cts +230 -0
  83. package/dist/otel/mod.d.ts +232 -0
  84. package/dist/otel/mod.js +255 -0
  85. package/dist/{owner-C8UEs7je.js → owner-BDvRiO5T.js} +44 -8
  86. package/dist/{owner-kQRGVXG1.d.ts → owner-BgI8C-VY.d.ts} +1 -2
  87. package/dist/{owner-B4HbyP8s.d.cts → owner-C-zfmVAD.d.cts} +1 -2
  88. package/dist/{proof-CDW6KgLA.js → proof-DzFse-Bn.js} +46 -11
  89. package/dist/{proof-CWKgvgzL.js → proof-XEPY5YKg.js} +3 -2
  90. package/dist/{proof-yc6sVqKg.cjs → proof-vmNsq1AQ.cjs} +63 -28
  91. package/dist/router-D9eI0s4b.js +118 -0
  92. package/dist/{send-z5jueBCW.js → send-BdhhZ2MN.js} +9 -4
  93. package/dist/sig/http.test.js +6 -7
  94. package/dist/sig/key.test.js +5 -5
  95. package/dist/sig/ld.test.js +6 -6
  96. package/dist/sig/mod.cjs +3 -5
  97. package/dist/sig/mod.d.cts +3 -5
  98. package/dist/sig/mod.d.ts +3 -5
  99. package/dist/sig/mod.js +3 -5
  100. package/dist/sig/owner.test.js +29 -6
  101. package/dist/sig/proof.test.js +6 -6
  102. package/dist/testing/mod.d.ts +70 -6999
  103. package/dist/testing/mod.js +4 -3
  104. package/dist/{transformers-CoBS-oFG.cjs → transformers-BjBg6Lag.cjs} +2 -2
  105. package/dist/{transformers-BFT6d7J5.js → transformers-N_ip_y4P.js} +2 -2
  106. package/dist/{types-BtUjyi5y.js → types-8l28uC8o.js} +30 -25
  107. package/dist/{types-CWgzGaqk.cjs → types-B6z6CqIz.cjs} +30 -25
  108. package/dist/{types-C2XVl6gj.js → types-CPz01LGH.js} +3 -3
  109. package/dist/utils/docloader.test.js +7 -8
  110. package/dist/utils/kv-cache.test.js +5 -3
  111. package/dist/utils/mod.cjs +3 -5
  112. package/dist/utils/mod.d.cts +3 -4
  113. package/dist/utils/mod.d.ts +3 -4
  114. package/dist/utils/mod.js +3 -5
  115. package/package.json +25 -36
  116. package/dist/actor-C6x8UgbE.cjs +0 -42079
  117. package/dist/actor-C76CDThG.js +0 -41647
  118. package/dist/actor-DqFajh9s.d.ts +0 -130
  119. package/dist/actor-DrFLTQdj.js +0 -146
  120. package/dist/actor-f2NtjyCg.d.cts +0 -128
  121. package/dist/fixtures/activitypub.academy/users/brauca_darradiul.json +0 -83
  122. package/dist/fixtures/example.com/announce.json +0 -6
  123. package/dist/fixtures/example.com/collection.json +0 -19
  124. package/dist/fixtures/example.com/create.json +0 -6
  125. package/dist/fixtures/example.com/cross-origin-actor.json +0 -6
  126. package/dist/fixtures/example.com/hong-gildong.json +0 -11
  127. package/dist/fixtures/example.com/invite.json +0 -7
  128. package/dist/fixtures/example.com/key.json +0 -7
  129. package/dist/fixtures/example.com/key2.json +0 -6
  130. package/dist/fixtures/example.com/object.json +0 -6
  131. package/dist/fixtures/example.com/orderedcollectionpage.json +0 -24
  132. package/dist/fixtures/example.com/paged/a.json +0 -13
  133. package/dist/fixtures/example.com/paged/b.json +0 -16
  134. package/dist/fixtures/example.com/paged-collection.json +0 -6
  135. package/dist/fixtures/example.com/person.json +0 -22
  136. package/dist/fixtures/example.com/person2.json +0 -40
  137. package/dist/fixtures/example.com/test.json +0 -5
  138. package/dist/fixtures/example.com/users/handle.json +0 -16
  139. package/dist/fixtures/example.com/wrong-type.json +0 -3
  140. package/dist/fixtures/media.example.com/avatars/test-avatar.jpg.json +0 -6
  141. package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +0 -24
  142. package/dist/fixtures/remote.domain/users/bob.json +0 -20
  143. package/dist/fixtures/server.example/users/alice.json +0 -20
  144. package/dist/fixtures/w3id.org/identity/v1.json +0 -152
  145. package/dist/fixtures/w3id.org/security/data-integrity/v1.json +0 -74
  146. package/dist/fixtures/w3id.org/security/multikey/v1.json +0 -35
  147. package/dist/fixtures/w3id.org/security/v1.json +0 -50
  148. package/dist/fixtures/wizard.casa/users/hongminhee.json +0 -69
  149. package/dist/fixtures/www.w3.org/ns/activitystreams.json +0 -379
  150. package/dist/fixtures/www.w3.org/ns/did/v1.json +0 -58
  151. package/dist/lookup-D17ydBQd.cjs +0 -265
  152. package/dist/lookup-DrCNfWHm.js +0 -253
  153. package/dist/lookup-yP6Lo5JV.js +0 -42178
  154. package/dist/middleware-BSCsvvh-.js +0 -26
  155. package/dist/middleware-GFpHLL1X.cjs +0 -15
  156. package/dist/middleware-pl3iXZpj.js +0 -15
  157. package/dist/mod-BlVovdcy.d.ts +0 -309
  158. package/dist/mod-BxRCHTz-.d.cts +0 -307
  159. package/dist/mod-C58MZ7Wx.d.cts +0 -113
  160. package/dist/mod-CcDPcLJW.d.cts +0 -1
  161. package/dist/mod-Ds0mpFZU.d.ts +0 -115
  162. package/dist/mod-bjzj5QIb.d.ts +0 -2
  163. package/dist/src/vocab/accept.yaml +0 -15
  164. package/dist/src/vocab/activity.yaml +0 -98
  165. package/dist/src/vocab/add.yaml +0 -16
  166. package/dist/src/vocab/announce.yaml +0 -30
  167. package/dist/src/vocab/application.yaml +0 -324
  168. package/dist/src/vocab/arrive.yaml +0 -15
  169. package/dist/src/vocab/article.yaml +0 -46
  170. package/dist/src/vocab/audio.yaml +0 -11
  171. package/dist/src/vocab/block.yaml +0 -16
  172. package/dist/src/vocab/chatmessage.yaml +0 -50
  173. package/dist/src/vocab/collection.yaml +0 -154
  174. package/dist/src/vocab/collectionpage.yaml +0 -55
  175. package/dist/src/vocab/create.yaml +0 -28
  176. package/dist/src/vocab/dataintegrityproof.yaml +0 -56
  177. package/dist/src/vocab/delete.yaml +0 -27
  178. package/dist/src/vocab/didservice.yaml +0 -22
  179. package/dist/src/vocab/dislike.yaml +0 -14
  180. package/dist/src/vocab/document.yaml +0 -31
  181. package/dist/src/vocab/emoji.yaml +0 -12
  182. package/dist/src/vocab/emojireact.yaml +0 -17
  183. package/dist/src/vocab/endpoints.yaml +0 -85
  184. package/dist/src/vocab/event.yaml +0 -11
  185. package/dist/src/vocab/export.yaml +0 -9
  186. package/dist/src/vocab/flag.yaml +0 -15
  187. package/dist/src/vocab/follow.yaml +0 -19
  188. package/dist/src/vocab/group.yaml +0 -324
  189. package/dist/src/vocab/hashtag.yaml +0 -14
  190. package/dist/src/vocab/ignore.yaml +0 -14
  191. package/dist/src/vocab/image.yaml +0 -9
  192. package/dist/src/vocab/intransitiveactivity.yaml +0 -15
  193. package/dist/src/vocab/invite.yaml +0 -14
  194. package/dist/src/vocab/join.yaml +0 -14
  195. package/dist/src/vocab/key.yaml +0 -28
  196. package/dist/src/vocab/leave.yaml +0 -14
  197. package/dist/src/vocab/like.yaml +0 -16
  198. package/dist/src/vocab/link.yaml +0 -101
  199. package/dist/src/vocab/listen.yaml +0 -12
  200. package/dist/src/vocab/mention.yaml +0 -9
  201. package/dist/src/vocab/move.yaml +0 -15
  202. package/dist/src/vocab/multikey.yaml +0 -36
  203. package/dist/src/vocab/note.yaml +0 -48
  204. package/dist/src/vocab/object.yaml +0 -404
  205. package/dist/src/vocab/offer.yaml +0 -15
  206. package/dist/src/vocab/orderedcollection.yaml +0 -39
  207. package/dist/src/vocab/orderedcollectionpage.yaml +0 -50
  208. package/dist/src/vocab/organization.yaml +0 -324
  209. package/dist/src/vocab/page.yaml +0 -11
  210. package/dist/src/vocab/person.yaml +0 -324
  211. package/dist/src/vocab/place.yaml +0 -75
  212. package/dist/src/vocab/profile.yaml +0 -26
  213. package/dist/src/vocab/propertyvalue.yaml +0 -32
  214. package/dist/src/vocab/question.yaml +0 -103
  215. package/dist/src/vocab/read.yaml +0 -13
  216. package/dist/src/vocab/reject.yaml +0 -14
  217. package/dist/src/vocab/relationship.yaml +0 -52
  218. package/dist/src/vocab/remove.yaml +0 -14
  219. package/dist/src/vocab/service.yaml +0 -324
  220. package/dist/src/vocab/source.yaml +0 -26
  221. package/dist/src/vocab/tentativeaccept.yaml +0 -14
  222. package/dist/src/vocab/tentativereject.yaml +0 -14
  223. package/dist/src/vocab/tombstone.yaml +0 -24
  224. package/dist/src/vocab/travel.yaml +0 -16
  225. package/dist/src/vocab/undo.yaml +0 -26
  226. package/dist/src/vocab/update.yaml +0 -58
  227. package/dist/src/vocab/video.yaml +0 -11
  228. package/dist/src/vocab/view.yaml +0 -13
  229. package/dist/testing/docloader.test.js +0 -22
  230. package/dist/vocab/actor.test.js +0 -5963
  231. package/dist/vocab/lookup.test.d.ts +0 -3
  232. package/dist/vocab/lookup.test.js +0 -454
  233. package/dist/vocab/mod.cjs +0 -86
  234. package/dist/vocab/mod.d.cts +0 -4
  235. package/dist/vocab/mod.d.ts +0 -6
  236. package/dist/vocab/mod.js +0 -9
  237. package/dist/vocab/type.test.d.ts +0 -3
  238. package/dist/vocab/type.test.js +0 -24
  239. package/dist/vocab/vocab.test.d.ts +0 -3
  240. package/dist/vocab/vocab.test.js +0 -9397
  241. package/dist/vocab-B4wXNBv8.js +0 -255
  242. package/dist/vocab-BCWe1Ih5.d.ts +0 -14905
  243. package/dist/vocab-CeDBzu-f.d.cts +0 -14903
  244. package/dist/vocab-Hqae4yux.cjs +0 -291
  245. package/dist/webfinger/handler.test.d.ts +0 -3
  246. package/dist/webfinger/lookup.test.d.ts +0 -3
  247. package/dist/webfinger/lookup.test.js +0 -193
  248. package/dist/webfinger/mod.cjs +0 -8
  249. package/dist/webfinger/mod.d.cts +0 -2
  250. package/dist/webfinger/mod.d.ts +0 -4
  251. package/dist/webfinger/mod.js +0 -8
  252. package/dist/webfinger-C72Y8lrh.js +0 -4
  253. package/dist/webfinger-vAtLmxOF.cjs +0 -4
  254. /package/dist/{collection-BzWsN9pB.js → collection-CcnIw1qY.js} +0 -0
  255. /package/dist/{testing/docloader.test.d.ts → federation/webfinger.test.d.ts} +0 -0
  256. /package/dist/{mod-CVgZgliM.d.ts → mod-1E3W847c.d.ts} +0 -0
  257. /package/dist/{mod-B-hUPT2N.d.cts → mod-C81L6_lQ.d.cts} +0 -0
  258. /package/dist/{negotiation-C4nFufNk.js → negotiation-5NPJL6zp.js} +0 -0
  259. /package/dist/{nodeinfo-BnthBobC.js → nodeinfo-BlLsRSiT.js} +0 -0
  260. /package/dist/{nodeinfo-CdN0rEnZ.cjs → nodeinfo-DuMYTpbZ.cjs} +0 -0
  261. /package/dist/{vocab/actor.test.d.ts → otel/exporter.test.d.ts} +0 -0
  262. /package/dist/{retry-CfF8Gn4d.js → retry-D4GJ670a.js} +0 -0
  263. /package/dist/{sig-C34-oHBl.js → sig-CwuONEzF.js} +0 -0
  264. /package/dist/{sig-YYj5tCnr.cjs → sig-DeXX2xnj.cjs} +0 -0
  265. /package/dist/{utils-DyRU1gdZ.cjs → utils-Db0ZmjcD.cjs} +0 -0
  266. /package/dist/{utils-D-Va7aXC.js → utils-Wranxuoe.js} +0 -0
@@ -1,13 +1,11 @@
1
- import { GetNodeInfoOptions, JsonValue, NodeInfo } from "./client-94iWEfQa.cjs";
2
- import { Activity, Collection, CryptographicKey, Hashtag, Link, Multikey, Object as Object$1 } from "./vocab-CeDBzu-f.cjs";
3
- import { Actor, Recipient } from "./actor-f2NtjyCg.cjs";
4
- import { HttpMessageSignaturesSpec } from "./http-M8k5mKc0.cjs";
5
- import { GetKeyOwnerOptions } from "./owner-B4HbyP8s.cjs";
6
- import { LookupObjectOptions, TraverseCollectionOptions } from "./mod-BxRCHTz-.cjs";
7
- import { Link as Link$1, LookupWebFingerOptions, ResourceDescriptor } from "./mod-C58MZ7Wx.cjs";
8
- import { KvKey, KvStore } from "./kv-Bxr0Q87_.cjs";
1
+ import { GetNodeInfoOptions, JsonValue, NodeInfo } from "./client-by-PEGAJ.cjs";
2
+ import { HttpMessageSignaturesSpec } from "./http-ClB3pLcL.cjs";
3
+ import { GetKeyOwnerOptions } from "./owner-C-zfmVAD.cjs";
4
+ import { KvKey, KvStore } from "./kv-B4vFhIYL.cjs";
5
+ import { Activity, Actor, Collection, CryptographicKey, Hashtag, Link, LookupObjectOptions, Multikey, Object as Object$1, Recipient, TraverseCollectionOptions } from "@fedify/vocab";
9
6
  import { AuthenticatedDocumentLoaderFactory, DocumentLoader, DocumentLoaderFactory, GetUserAgentOptions } from "@fedify/vocab-runtime";
10
- import { Span, TracerProvider } from "@opentelemetry/api";
7
+ import { Link as Link$1, LookupWebFingerOptions, ResourceDescriptor } from "@fedify/webfinger";
8
+ import { Span, Tracer, TracerProvider } from "@opentelemetry/api";
11
9
 
12
10
  //#region src/compat/types.d.ts
13
11
  /**
@@ -21,9 +19,9 @@ type ActivityTransformer<TContextData> = (activity: Activity, context: Context<T
21
19
  * A page of items.
22
20
  */
23
21
  interface PageItems<TItem> {
24
- prevCursor?: string | null;
25
- nextCursor?: string | null;
26
- items: TItem[];
22
+ readonly prevCursor?: string | null;
23
+ readonly nextCursor?: string | null;
24
+ readonly items: readonly TItem[];
27
25
  }
28
26
  /**
29
27
  * Calculates the [partial follower collection digest][1].
@@ -53,11 +51,11 @@ interface SenderKeyPair {
53
51
  /**
54
52
  * The actor's private key to sign the request.
55
53
  */
56
- privateKey: CryptoKey;
54
+ readonly privateKey: CryptoKey;
57
55
  /**
58
56
  * The public key ID that corresponds to the private key.
59
57
  */
60
- keyId: URL;
58
+ readonly keyId: URL;
61
59
  }
62
60
  /**
63
61
  * Parameters for {@link sendActivity}.
@@ -360,7 +358,7 @@ interface MessageQueue {
360
358
  * @param messages The messages to enqueue.
361
359
  * @param options Additional options for enqueuing the messages.
362
360
  */
363
- enqueueMany?: (messages: any[], options?: MessageQueueEnqueueOptions) => Promise<void>;
361
+ enqueueMany?: (messages: readonly any[], options?: MessageQueueEnqueueOptions) => Promise<void>;
364
362
  /**
365
363
  * Listens for messages in the queue.
366
364
  * @param handler The handler for messages in the queue.
@@ -402,7 +400,7 @@ declare class InProcessMessageQueue implements MessageQueue {
402
400
  */
403
401
  constructor(options?: InProcessMessageQueueOptions);
404
402
  enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
405
- enqueueMany(messages: any[], options?: MessageQueueEnqueueOptions): Promise<void>;
403
+ enqueueMany(messages: readonly any[], options?: MessageQueueEnqueueOptions): Promise<void>;
406
404
  listen(handler: (message: any) => Promise<void> | void, options?: MessageQueueListenOptions): Promise<void>;
407
405
  }
408
406
  /**
@@ -440,7 +438,7 @@ declare class ParallelMessageQueue implements MessageQueue {
440
438
  */
441
439
  constructor(queue: MessageQueue, workers: number);
442
440
  enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
443
- enqueueMany(messages: any[], options?: MessageQueueEnqueueOptions): Promise<void>;
441
+ enqueueMany(messages: readonly any[], options?: MessageQueueEnqueueOptions): Promise<void>;
444
442
  listen(handler: (message: any) => Promise<void> | void, options?: MessageQueueListenOptions): Promise<void>;
445
443
  }
446
444
  //#endregion
@@ -571,8 +569,8 @@ declare function createFederationBuilder<TContextData>(): FederationBuilder<TCon
571
569
  //#endregion
572
570
  //#region src/federation/queue.d.ts
573
571
  interface SenderKeyJwkPair {
574
- keyId: string;
575
- privateKey: JsonWebKey;
572
+ readonly keyId: string;
573
+ readonly privateKey: JsonWebKey;
576
574
  }
577
575
  /**
578
576
  * A message that represents a task to be processed by the background worker.
@@ -585,44 +583,44 @@ interface SenderKeyJwkPair {
585
583
  */
586
584
  type Message = FanoutMessage | OutboxMessage | InboxMessage;
587
585
  interface FanoutMessage {
588
- type: "fanout";
589
- id: ReturnType<typeof crypto.randomUUID>;
590
- baseUrl: string;
591
- keys: SenderKeyJwkPair[];
592
- inboxes: Record<string, {
593
- actorIds: string[];
594
- sharedInbox: boolean;
595
- }>;
596
- activity: unknown;
597
- activityId?: string;
598
- activityType: string;
599
- collectionSync?: string;
600
- traceContext: Record<string, string>;
586
+ readonly type: "fanout";
587
+ readonly id: ReturnType<typeof crypto.randomUUID>;
588
+ readonly baseUrl: string;
589
+ readonly keys: readonly SenderKeyJwkPair[];
590
+ readonly inboxes: Readonly<Record<string, {
591
+ readonly actorIds: readonly string[];
592
+ readonly sharedInbox: boolean;
593
+ }>>;
594
+ readonly activity: unknown;
595
+ readonly activityId?: string;
596
+ readonly activityType: string;
597
+ readonly collectionSync?: string;
598
+ readonly traceContext: Readonly<Record<string, string>>;
601
599
  }
602
600
  interface OutboxMessage {
603
- type: "outbox";
604
- id: ReturnType<typeof crypto.randomUUID>;
605
- baseUrl: string;
606
- keys: SenderKeyJwkPair[];
607
- activity: unknown;
608
- activityId?: string;
609
- activityType: string;
610
- inbox: string;
611
- sharedInbox: boolean;
612
- started: string;
613
- attempt: number;
614
- headers: Record<string, string>;
615
- traceContext: Record<string, string>;
601
+ readonly type: "outbox";
602
+ readonly id: ReturnType<typeof crypto.randomUUID>;
603
+ readonly baseUrl: string;
604
+ readonly keys: readonly SenderKeyJwkPair[];
605
+ readonly activity: unknown;
606
+ readonly activityId?: string;
607
+ readonly activityType: string;
608
+ readonly inbox: string;
609
+ readonly sharedInbox: boolean;
610
+ readonly started: string;
611
+ readonly attempt: number;
612
+ readonly headers: Readonly<Record<string, string>>;
613
+ readonly traceContext: Readonly<Record<string, string>>;
616
614
  }
617
615
  interface InboxMessage {
618
- type: "inbox";
619
- id: ReturnType<typeof crypto.randomUUID>;
620
- baseUrl: string;
621
- activity: unknown;
622
- started: string;
623
- attempt: number;
624
- identifier: string | null;
625
- traceContext: Record<string, string>;
616
+ readonly type: "inbox";
617
+ readonly id: ReturnType<typeof crypto.randomUUID>;
618
+ readonly baseUrl: string;
619
+ readonly activity: unknown;
620
+ readonly started: string;
621
+ readonly attempt: number;
622
+ readonly identifier: string | null;
623
+ readonly traceContext: Readonly<Record<string, string>>;
626
624
  }
627
625
  //#endregion
628
626
  //#region src/federation/retry.d.ts
@@ -706,19 +704,19 @@ interface FederationQueueOptions {
706
704
  * The message queue for incoming activities. If not provided, incoming
707
705
  * activities will not be queued and will be processed immediately.
708
706
  */
709
- inbox?: MessageQueue;
707
+ readonly inbox?: MessageQueue;
710
708
  /**
711
709
  * The message queue for outgoing activities. If not provided, outgoing
712
710
  * activities will not be queued and will be sent immediately.
713
711
  */
714
- outbox?: MessageQueue;
712
+ readonly outbox?: MessageQueue;
715
713
  /**
716
714
  * The message queue for fanning out outgoing activities. If not provided,
717
715
  * outgoing activities will not be fanned out in the background, but will be
718
716
  * fanned out immediately, which causes slow response times on
719
717
  * {@link Context.sendActivity} calls.
720
718
  */
721
- fanout?: MessageQueue;
719
+ readonly fanout?: MessageQueue;
722
720
  }
723
721
  /**
724
722
  * Prefixes for namespacing keys in the Deno KV store.
@@ -729,18 +727,18 @@ interface FederationKvPrefixes {
729
727
  * processed or not.
730
728
  * @default `["_fedify", "activityIdempotence"]`
731
729
  */
732
- activityIdempotence: KvKey;
730
+ readonly activityIdempotence: KvKey;
733
731
  /**
734
732
  * The key prefix used for storing remote JSON-LD documents.
735
733
  * @default `["_fedify", "remoteDocument"]`
736
734
  */
737
- remoteDocument: KvKey;
735
+ readonly remoteDocument: KvKey;
738
736
  /**
739
737
  * The key prefix used for caching public keys.
740
738
  * @default `["_fedify", "publicKey"]`
741
739
  * @since 0.12.0
742
740
  */
743
- publicKey: KvKey;
741
+ readonly publicKey: KvKey;
744
742
  /**
745
743
  * The key prefix used for caching HTTP Message Signatures specs.
746
744
  * The cached spec is used to reduce the number of requests to make signed
@@ -748,7 +746,7 @@ interface FederationKvPrefixes {
748
746
  * @default `["_fedify", "httpMessageSignaturesSpec"]`
749
747
  * @since 1.6.0
750
748
  */
751
- httpMessageSignaturesSpec: KvKey;
749
+ readonly httpMessageSignaturesSpec: KvKey;
752
750
  }
753
751
  /**
754
752
  * Options for {@link CreateFederationOptions.origin} when it is not a string.
@@ -2162,7 +2160,7 @@ interface InboxContext<TContextData> extends Context<TContextData> {
2162
2160
  * inbox, it is `null`.
2163
2161
  * @since 1.2.0
2164
2162
  */
2165
- recipient: string | null;
2163
+ readonly recipient: string | null;
2166
2164
  /**
2167
2165
  * Creates a new context with the same properties as this one,
2168
2166
  * but with the given data.
@@ -2352,7 +2350,7 @@ interface SendActivityOptions {
2352
2350
  *
2353
2351
  * @since 0.9.0
2354
2352
  */
2355
- excludeBaseUris?: URL[];
2353
+ readonly excludeBaseUris?: readonly URL[];
2356
2354
  }
2357
2355
  /**
2358
2356
  * Options for {@link Context.sendActivity} method when sending to a collection.
@@ -2435,15 +2433,15 @@ interface ActorKeyPair extends CryptoKeyPair {
2435
2433
  /**
2436
2434
  * The URI of the public key, which is used for verifying HTTP Signatures.
2437
2435
  */
2438
- keyId: URL;
2436
+ readonly keyId: URL;
2439
2437
  /**
2440
2438
  * A {@link CryptographicKey} instance of the public key.
2441
2439
  */
2442
- cryptographicKey: CryptographicKey;
2440
+ readonly cryptographicKey: CryptographicKey;
2443
2441
  /**
2444
2442
  * A {@link Multikey} instance of the public key.
2445
2443
  */
2446
- multikey: Multikey;
2444
+ readonly multikey: Multikey;
2447
2445
  }
2448
2446
  //#endregion
2449
2447
  export { ActivityTransformer, ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetSignedKeyOptions, IdempotencyKeyCallback, IdempotencyStrategy, InProcessMessageQueue, InProcessMessageQueueOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, Message, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParallelMessageQueue, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, Rfc6570Expression, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
@@ -0,0 +1,117 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+ globalThis.addEventListener = () => {};
5
+
6
+ //#region deno.json
7
+ var name = "@fedify/fedify";
8
+ var version = "2.0.0-dev.196+c3cfc0a9";
9
+ var license = "MIT";
10
+ var exports = {
11
+ ".": "./src/mod.ts",
12
+ "./compat": "./src/compat/mod.ts",
13
+ "./federation": "./src/federation/mod.ts",
14
+ "./nodeinfo": "./src/nodeinfo/mod.ts",
15
+ "./otel": "./src/otel/mod.ts",
16
+ "./sig": "./src/sig/mod.ts",
17
+ "./utils": "./src/utils/mod.ts"
18
+ };
19
+ var imports = {
20
+ "@multiformats/base-x": "npm:@multiformats/base-x@^4.0.1",
21
+ "@opentelemetry/core": "npm:@opentelemetry/core@^2.0.0",
22
+ "@opentelemetry/sdk-trace-base": "npm:@opentelemetry/sdk-trace-base@^2.0.0",
23
+ "@opentelemetry/semantic-conventions": "npm:@opentelemetry/semantic-conventions@^1.27.0",
24
+ "@std/assert": "jsr:@std/assert@^0.226.0",
25
+ "@std/url": "jsr:@std/url@^0.225.1",
26
+ "asn1js": "npm:asn1js@^3.0.7",
27
+ "fast-check": "npm:fast-check@^3.22.0",
28
+ "fetch-mock": "npm:fetch-mock@^12.5.2",
29
+ "json-canon": "npm:json-canon@^1.0.1",
30
+ "jsonld": "npm:jsonld@^9.0.0",
31
+ "multicodec": "npm:multicodec@^3.2.1",
32
+ "pkijs": "npm:pkijs@^3.3.3",
33
+ "structured-field-values": "npm:structured-field-values@^2.0.4",
34
+ "uri-template-router": "npm:uri-template-router@^1.0.0",
35
+ "url-template": "npm:url-template@^3.1.1"
36
+ };
37
+ var exclude = [
38
+ ".test-report.xml",
39
+ "apidoc/",
40
+ "dist/",
41
+ "node_modules/",
42
+ "npm/",
43
+ "pnpm-lock.yaml",
44
+ "src/cfworkers/dist/",
45
+ "src/cfworkers/fixtures/",
46
+ "src/cfworkers/imports.ts",
47
+ "src/cfworkers/README.md",
48
+ "src/cfworkers/server.ts",
49
+ "src/cfworkers/server.js",
50
+ "src/cfworkers/server.js.map"
51
+ ];
52
+ var publish = { "exclude": ["**/*.test.ts", "src/testing/"] };
53
+ var tasks = {
54
+ "codegen": "deno task -f @fedify/vocab compile",
55
+ "cache": {
56
+ "command": "deno cache src/mod.ts",
57
+ "dependencies": ["codegen"]
58
+ },
59
+ "check": {
60
+ "command": "deno fmt --check && deno lint && deno check src/**/*.ts",
61
+ "dependencies": ["codegen"]
62
+ },
63
+ "test": {
64
+ "command": "deno test --check --doc --allow-read --allow-write --allow-env --unstable-kv --trace-leaks --parallel",
65
+ "dependencies": ["codegen"]
66
+ },
67
+ "coverage": "deno task test --clean --coverage && deno coverage --html coverage",
68
+ "bench": {
69
+ "command": "deno bench --allow-read --allow-write --allow-net --allow-env --allow-run --unstable-kv",
70
+ "dependencies": ["codegen"]
71
+ },
72
+ "apidoc": {
73
+ "command": "deno doc --html --name=Fedify --output=apidoc/ src/mod.ts",
74
+ "dependencies": ["codegen"]
75
+ },
76
+ "publish": {
77
+ "command": "deno publish",
78
+ "dependencies": ["codegen"]
79
+ },
80
+ "pnpm:install": "pnpm install --silent",
81
+ "pnpm:build": {
82
+ "command": "pnpm exec tsdown",
83
+ "dependencies": ["pnpm:build-vocab"]
84
+ },
85
+ "test:node": {
86
+ "command": "cd dist/ && node --test",
87
+ "dependencies": ["pnpm:build"]
88
+ },
89
+ "test:bun": {
90
+ "command": "cd dist/ && bun test --timeout 60000",
91
+ "dependencies": ["pnpm:build"]
92
+ },
93
+ "test:cfworkers": {
94
+ "command": "pnpm exec wrangler deploy --dry-run --outdir src/cfworkers && node --import=tsx src/cfworkers/client.ts",
95
+ "dependencies": ["pnpm:build"]
96
+ },
97
+ "test-all": { "dependencies": [
98
+ "check",
99
+ "test",
100
+ "test:node",
101
+ "test:bun",
102
+ "test:cfworkers"
103
+ ] }
104
+ };
105
+ var deno_default = {
106
+ name,
107
+ version,
108
+ license,
109
+ exports,
110
+ imports,
111
+ exclude,
112
+ publish,
113
+ tasks
114
+ };
115
+
116
+ //#endregion
117
+ export { deno_default };
@@ -3,16 +3,44 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { RouterError, __require, lookupObject, lookupWebFinger, traverseCollection } from "./lookup-yP6Lo5JV.js";
6
+ import { createRequire } from "node:module";
7
7
  import { configure, getConsoleSink, getLogger, reset } from "@logtape/logtape";
8
- import { trace } from "@opentelemetry/api";
8
+ import { BasicTracerProvider, SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
9
+ import { ExportResultCode } from "@opentelemetry/core";
9
10
 
10
- //#region src/testing/docloader.ts
11
- const logger = getLogger([
12
- "fedify",
13
- "testing",
14
- "docloader"
15
- ]);
11
+ //#region rolldown:runtime
12
+ var __create = Object.create;
13
+ var __defProp = Object.defineProperty;
14
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
15
+ var __getOwnPropNames = Object.getOwnPropertyNames;
16
+ var __getProtoOf = Object.getPrototypeOf;
17
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
18
+ var __commonJS = (cb, mod) => function() {
19
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
20
+ };
21
+ var __copyProps = (to, from, except, desc) => {
22
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
23
+ key = keys[i];
24
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
25
+ get: ((k) => from[k]).bind(null, key),
26
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
27
+ });
28
+ }
29
+ return to;
30
+ };
31
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
32
+ value: mod,
33
+ enumerable: true
34
+ }) : target, mod));
35
+ var __require$1 = /* @__PURE__ */ createRequire(import.meta.url);
36
+
37
+ //#endregion
38
+ //#region ../fixture/dist/mod.js
39
+ var __require = /* @__PURE__ */ ((x) => typeof __require$1 !== "undefined" ? __require$1 : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof __require$1 !== "undefined" ? __require$1 : a)[b] }) : x)(function(x) {
40
+ if (typeof __require$1 !== "undefined") return __require$1.apply(this, arguments);
41
+ throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function.");
42
+ });
43
+ const logger = getLogger(["fixture", "docloader"]);
16
44
  /**
17
45
  * A mock of the document loader. This does not make any actual HTTP requests
18
46
  * towards the remote server, but looks up the local fixture files instead.
@@ -48,13 +76,14 @@ async function mockDocumentLoader(resource, _options) {
48
76
  });
49
77
  throw new Error(error);
50
78
  }
51
- const path = `./fixtures/${url.host}${url.pathname}.json`;
79
+ const pkg = "Deno" in globalThis ? "." : "@fedify/fixture";
80
+ const fixturePath = `${pkg}/fixtures/${url.host}${url.pathname}.json`;
52
81
  let document;
53
82
  try {
54
- document = (await import(path, { with: { type: "json" } })).default;
83
+ document = (await import(fixturePath, { with: { type: "json" } })).default;
55
84
  } catch (error) {
56
85
  logger.error("Failed to read fixture file {path}: {error}", {
57
- path,
86
+ path: fixturePath,
58
87
  error
59
88
  });
60
89
  throw error;
@@ -65,106 +94,57 @@ async function mockDocumentLoader(resource, _options) {
65
94
  documentUrl: resource
66
95
  };
67
96
  }
68
-
69
- //#endregion
70
- //#region src/testing/context.ts
71
- function createContext(values) {
72
- const { federation, url = new URL("http://example.com/"), canonicalOrigin, data, documentLoader, contextLoader, tracerProvider, clone, getNodeInfoUri, getActorUri, getObjectUri, getCollectionUri, getOutboxUri, getInboxUri, getFollowingUri, getFollowersUri, getLikedUri, getFeaturedUri, getFeaturedTagsUri, parseUri, getActorKeyPairs, getDocumentLoader, lookupObject: lookupObject$1, traverseCollection: traverseCollection$1, lookupNodeInfo, lookupWebFinger: lookupWebFinger$1, sendActivity, routeActivity } = values;
73
- function throwRouteError() {
74
- throw new RouterError("Not implemented");
97
+ /**
98
+ * A test spy for OpenTelemetry spans that captures all spans and events.
99
+ */
100
+ var TestSpanExporter = class {
101
+ spans = [];
102
+ export(spans, resultCallback) {
103
+ this.spans.push(...spans);
104
+ resultCallback({ code: ExportResultCode.SUCCESS });
75
105
  }
76
- return {
77
- federation,
78
- data,
79
- origin: url.origin,
80
- canonicalOrigin: canonicalOrigin ?? url.origin,
81
- host: url.host,
82
- hostname: url.hostname,
83
- documentLoader: documentLoader ?? mockDocumentLoader,
84
- contextLoader: contextLoader ?? mockDocumentLoader,
85
- tracerProvider: tracerProvider ?? trace.getTracerProvider(),
86
- clone: clone ?? ((data$1) => createContext({
87
- ...values,
88
- data: data$1
89
- })),
90
- getNodeInfoUri: getNodeInfoUri ?? throwRouteError,
91
- getActorUri: getActorUri ?? throwRouteError,
92
- getObjectUri: getObjectUri ?? throwRouteError,
93
- getCollectionUri: getCollectionUri ?? throwRouteError,
94
- getOutboxUri: getOutboxUri ?? throwRouteError,
95
- getInboxUri: getInboxUri ?? throwRouteError,
96
- getFollowingUri: getFollowingUri ?? throwRouteError,
97
- getFollowersUri: getFollowersUri ?? throwRouteError,
98
- getLikedUri: getLikedUri ?? throwRouteError,
99
- getFeaturedUri: getFeaturedUri ?? throwRouteError,
100
- getFeaturedTagsUri: getFeaturedTagsUri ?? throwRouteError,
101
- parseUri: parseUri ?? ((_uri) => {
102
- throw new Error("Not implemented");
103
- }),
104
- getDocumentLoader: getDocumentLoader ?? ((_params) => {
105
- throw new Error("Not implemented");
106
- }),
107
- getActorKeyPairs: getActorKeyPairs ?? ((_handle) => Promise.resolve([])),
108
- lookupObject: lookupObject$1 ?? ((uri, options = {}) => {
109
- return lookupObject(uri, {
110
- documentLoader: options.documentLoader ?? documentLoader ?? mockDocumentLoader,
111
- contextLoader: options.contextLoader ?? contextLoader ?? mockDocumentLoader
112
- });
113
- }),
114
- traverseCollection: traverseCollection$1 ?? ((collection, options = {}) => {
115
- return traverseCollection(collection, {
116
- documentLoader: options.documentLoader ?? documentLoader ?? mockDocumentLoader,
117
- contextLoader: options.contextLoader ?? contextLoader ?? mockDocumentLoader
118
- });
119
- }),
120
- lookupNodeInfo: lookupNodeInfo ?? ((_params) => {
121
- throw new Error("Not implemented");
122
- }),
123
- lookupWebFinger: lookupWebFinger$1 ?? ((resource, options = {}) => {
124
- return lookupWebFinger(resource, options);
125
- }),
126
- sendActivity: sendActivity ?? ((_params) => {
127
- throw new Error("Not implemented");
128
- }),
129
- routeActivity: routeActivity ?? ((_params) => {
130
- throw new Error("Not implemented");
131
- })
132
- };
133
- }
134
- function createRequestContext(args) {
135
- return {
136
- ...createContext(args),
137
- clone: args.clone ?? ((data) => createRequestContext({
138
- ...args,
139
- data
140
- })),
141
- request: args.request ?? new Request(args.url),
142
- url: args.url,
143
- getActor: args.getActor ?? (() => Promise.resolve(null)),
144
- getObject: args.getObject ?? (() => Promise.resolve(null)),
145
- getSignedKey: args.getSignedKey ?? (() => Promise.resolve(null)),
146
- getSignedKeyOwner: args.getSignedKeyOwner ?? (() => Promise.resolve(null)),
147
- sendActivity: args.sendActivity ?? ((_params) => {
148
- throw new Error("Not implemented");
149
- })
150
- };
151
- }
152
- function createInboxContext(args) {
153
- return {
154
- ...createContext(args),
155
- clone: args.clone ?? ((data) => createInboxContext({
156
- ...args,
157
- data
158
- })),
159
- recipient: args.recipient ?? null,
160
- forwardActivity: args.forwardActivity ?? ((_params) => {
161
- throw new Error("Not implemented");
162
- })
163
- };
106
+ async forceFlush() {}
107
+ shutdown() {
108
+ this.spans = [];
109
+ return Promise.resolve();
110
+ }
111
+ /**
112
+ * Gets all spans with the given name.
113
+ */
114
+ getSpans(name) {
115
+ return this.spans.filter((span) => span.name === name);
116
+ }
117
+ /**
118
+ * Gets the first span with the given name.
119
+ */
120
+ getSpan(name) {
121
+ return this.spans.find((span) => span.name === name);
122
+ }
123
+ /**
124
+ * Gets all events from spans with the given name.
125
+ */
126
+ getEvents(spanName, eventName) {
127
+ const spans = this.getSpans(spanName);
128
+ const events = spans.flatMap((span) => span.events);
129
+ if (eventName) return events.filter((event) => event.name === eventName);
130
+ return events;
131
+ }
132
+ /**
133
+ * Clears all captured spans.
134
+ */
135
+ clear() {
136
+ this.spans = [];
137
+ }
138
+ };
139
+ /**
140
+ * Creates a test tracer provider with a test exporter.
141
+ * @returns A tuple of [tracerProvider, testExporter]
142
+ */
143
+ function createTestTracerProvider() {
144
+ const exporter = new TestSpanExporter();
145
+ const provider = new BasicTracerProvider({ spanProcessors: [new SimpleSpanProcessor(exporter)] });
146
+ return [provider, exporter];
164
147
  }
165
-
166
- //#endregion
167
- //#region src/testing/mod.ts
168
148
  const testDefinitions = [];
169
149
  function test(name, options, fn) {
170
150
  const def = typeof name === "string" ? typeof options === "function" ? {
@@ -298,4 +278,4 @@ function caller() {
298
278
  }
299
279
 
300
280
  //#endregion
301
- export { createInboxContext, createRequestContext, mockDocumentLoader, test, testDefinitions };
281
+ export { __commonJS, __toESM, createTestTracerProvider, mockDocumentLoader, test, testDefinitions };
@@ -3,11 +3,11 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { validateCryptoKey } from "./key-CrKmngwF.js";
7
- import { doubleKnock } from "./http-DO88HCOK.js";
6
+ import { validateCryptoKey } from "./key-DBHCloAO.js";
7
+ import { doubleKnock } from "./http-uzkhnm0W.js";
8
+ import { getLogger } from "@logtape/logtape";
8
9
  import { curry } from "es-toolkit";
9
10
  import { UrlError, createActivityPubRequest, getDocumentLoader, getRemoteDocument, logRequest, validatePublicUrl } from "@fedify/vocab-runtime";
10
- import { getLogger } from "@logtape/logtape";
11
11
 
12
12
  //#region src/utils/docloader.ts
13
13
  const logger = getLogger([