@fedify/fedify 2.0.0-dev.1690 → 2.0.0-dev.170

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 (317) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +70 -34
  3. package/dist/{assert_rejects-DiIiJbZn.js → assert_rejects-Ce45JcFg.js} +1 -1
  4. package/dist/{assert_is_error-BPGph1Jx.js → assert_throws-BNXdRGWP.js} +31 -1
  5. package/dist/{builder-CYOcDUkj.js → builder-_MVsWtsS.js} +9 -8
  6. package/dist/{client-bgSdkFa2.d.ts → client-CUTUGgvJ.d.ts} +19 -19
  7. package/dist/{client-CnOdwLLN.js → client-Dg7OfUDA.js} +28 -23
  8. package/dist/{client-CegPX0Rn.d.cts → client-by-PEGAJ.d.cts} +19 -19
  9. package/dist/compat/mod.cjs +1 -1
  10. package/dist/compat/mod.d.cts +6 -12
  11. package/dist/compat/mod.d.ts +6 -12
  12. package/dist/compat/mod.js +1 -1
  13. package/dist/compat/transformers.test.js +19 -18
  14. package/dist/context-Bns6uTJq.js +109 -0
  15. package/dist/{context-ByZprN0S.d.ts → context-C7vzWilY.d.ts} +314 -182
  16. package/dist/{context-C5BsZkDr.d.cts → context-CrB9RFy5.d.cts} +314 -182
  17. package/dist/deno-DhWON59o.js +117 -0
  18. package/dist/{testing-BWNCAbL-.js → dist-B5f6a8Tt.js} +90 -111
  19. package/dist/{authdocloader-Brax1A32.js → docloader-Cni79dmb.js} +17 -8
  20. package/dist/{esm-DnIzfEj0.js → esm-DGl7uK1r.js} +32 -17
  21. package/dist/federation/builder.test.js +11 -11
  22. package/dist/federation/collection.test.js +5 -8
  23. package/dist/federation/handler.test.js +111 -24
  24. package/dist/federation/idempotency.test.js +24 -24
  25. package/dist/federation/inbox.test.js +5 -6
  26. package/dist/federation/keycache.test.js +4 -5
  27. package/dist/federation/kv.test.js +60 -9
  28. package/dist/federation/middleware.test.js +102 -101
  29. package/dist/federation/mod.cjs +8 -12
  30. package/dist/federation/mod.d.cts +7 -13
  31. package/dist/federation/mod.d.ts +7 -13
  32. package/dist/federation/mod.js +8 -13
  33. package/dist/federation/mq.test.js +9 -10
  34. package/dist/federation/negotiation.test.js +5 -8
  35. package/dist/federation/retry.test.js +2 -4
  36. package/dist/federation/router.test.js +6 -8
  37. package/dist/federation/send.test.js +55 -15
  38. package/dist/{webfinger/handler.test.js → federation/webfinger.test.js} +25 -24
  39. package/dist/{federation-H2_En3j5.cjs → federation-B431K2gm.cjs} +22 -0
  40. package/dist/{federation-D1U8YY9t.js → federation-BbZwNNWj.js} +28 -6
  41. package/dist/{http-C7vbQwbz.cjs → http-7RQPvAkX.cjs} +410 -14
  42. package/dist/{http-BxbM8sEy.js → http-CZXlv4xU.js} +371 -11
  43. package/dist/{http-D-e6AFwR.d.cts → http-ClB3pLcL.d.cts} +2 -2
  44. package/dist/{http-BNOYnVsU.js → http-CwsBL5_A.js} +3 -2
  45. package/dist/{http-D6Uj2x2y.d.ts → http-DLBDPal9.d.ts} +2 -2
  46. package/dist/{inbox-BRru9pX3.js → inbox-CukSCwad.js} +2 -1
  47. package/dist/{key-1KXru8Ug.js → key-DKkHKzvg.js} +3 -2
  48. package/dist/{keycache-CN61iGVj.js → keycache-DRxpZ5r9.js} +1 -1
  49. package/dist/{keys-BPdFKgiy.js → keys-ZbcByPg9.js} +2 -1
  50. package/dist/{kv-63Cil1MD.d.cts → kv-B4vFhIYL.d.cts} +30 -1
  51. package/dist/{kv-C7sopW2E.d.ts → kv-CYySNrsn.d.ts} +30 -1
  52. package/dist/{kv-CRZrzyXm.js → kv-QzKcOQgP.js} +22 -0
  53. package/dist/kv-cache-BEeqyGER.js +107 -0
  54. package/dist/kv-cache-BVA7CrnS.cjs +134 -0
  55. package/dist/kv-cache-HDuc4ZaJ.js +122 -0
  56. package/dist/{ld-Dv8DNNAT.js → ld-CM6OO5ar.js} +4 -2
  57. package/dist/middleware--i9t8nKh.js +26 -0
  58. package/dist/middleware-C567nJlD.cjs +12 -0
  59. package/dist/middleware-D9oWuacw.js +12 -0
  60. package/dist/{middleware-DY9B2lL8.js → middleware-DXRcwk_y.js} +185 -192
  61. package/dist/{middleware-BmoOlgc1.cjs → middleware-TufpQUzj.cjs} +251 -241
  62. package/dist/{middleware-Bz_A2jeJ.js → middleware-eDeNdyRA.js} +195 -191
  63. package/dist/mod-0p9zUdzg.d.cts +107 -0
  64. package/dist/mod-0qnPv4EC.d.cts +62 -0
  65. package/dist/{mod-Djzcw2ry.d.cts → mod-BrS8tiad.d.cts} +3 -3
  66. package/dist/mod-C3SOvTD1.d.ts +64 -0
  67. package/dist/{mod-8DMWKtQE.d.cts → mod-D6pS5_xJ.d.cts} +4 -4
  68. package/dist/{mod-BhUKmBJD.d.ts → mod-jOa7W503.d.ts} +3 -3
  69. package/dist/{mod-D6hQoxC5.d.ts → mod-waqu-BL_.d.ts} +4 -4
  70. package/dist/mod-xc20HhMD.d.ts +109 -0
  71. package/dist/mod.cjs +17 -112
  72. package/dist/mod.d.cts +11 -17
  73. package/dist/mod.d.ts +11 -17
  74. package/dist/mod.js +11 -17
  75. package/dist/nodeinfo/client.test.js +7 -10
  76. package/dist/nodeinfo/handler.test.js +23 -23
  77. package/dist/nodeinfo/mod.cjs +2 -3
  78. package/dist/nodeinfo/mod.d.cts +2 -4
  79. package/dist/nodeinfo/mod.d.ts +2 -4
  80. package/dist/nodeinfo/mod.js +2 -3
  81. package/dist/nodeinfo/types.test.js +6 -9
  82. package/dist/otel/exporter.test.js +893 -0
  83. package/dist/otel/mod.cjs +256 -0
  84. package/dist/otel/mod.d.cts +230 -0
  85. package/dist/otel/mod.d.ts +232 -0
  86. package/dist/otel/mod.js +255 -0
  87. package/dist/{owner-e3FYDhsk.js → owner-BOEfZQv2.js} +45 -8
  88. package/dist/{owner-hd9lvQcP.d.ts → owner-BgI8C-VY.d.ts} +2 -3
  89. package/dist/{owner-BN_tO3cY.d.cts → owner-C-zfmVAD.d.cts} +2 -3
  90. package/dist/{proof-B-eqv0Ug.cjs → proof-CaDQpGJD.cjs} +69 -33
  91. package/dist/{proof-DfgvA3al.js → proof-iYIDiv8I.js} +47 -11
  92. package/dist/{proof-6gFMwMNJ.js → proof-iw6KtIyj.js} +3 -2
  93. package/dist/router-D9eI0s4b.js +118 -0
  94. package/dist/{send-Tl9NOnmO.js → send-Bn8o0mjW.js} +9 -4
  95. package/dist/sig/http.test.js +11 -13
  96. package/dist/sig/key.test.js +9 -11
  97. package/dist/sig/ld.test.js +8 -10
  98. package/dist/sig/mod.cjs +7 -11
  99. package/dist/sig/mod.d.cts +3 -7
  100. package/dist/sig/mod.d.ts +3 -7
  101. package/dist/sig/mod.js +3 -7
  102. package/dist/sig/owner.test.js +33 -12
  103. package/dist/sig/proof.test.js +13 -14
  104. package/dist/testing/mod.d.ts +183 -7194
  105. package/dist/testing/mod.js +4 -4
  106. package/dist/{transformers-CoBS-oFG.cjs → transformers-BjBg6Lag.cjs} +2 -2
  107. package/dist/{transformers-BFT6d7J5.js → transformers-N_ip_y4P.js} +2 -2
  108. package/dist/{types-DqxyTxOf.js → types-8l28uC8o.js} +31 -26
  109. package/dist/{types-zqdWZh4O.cjs → types-B6z6CqIz.cjs} +33 -28
  110. package/dist/{types-BSuWJsOm.js → types-CPz01LGH.js} +3 -3
  111. package/dist/{runtime/authdocloader.test.js → utils/docloader.test.js} +13 -15
  112. package/dist/utils/kv-cache.test.js +211 -0
  113. package/dist/utils/mod.cjs +10 -0
  114. package/dist/utils/mod.d.cts +4 -0
  115. package/dist/utils/mod.d.ts +6 -0
  116. package/dist/utils/mod.js +9 -0
  117. package/package.json +34 -75
  118. package/dist/actor-Be0ThtXy.cjs +0 -42609
  119. package/dist/actor-ChbPLm6n.js +0 -42135
  120. package/dist/actor-D6K058Tb.d.cts +0 -128
  121. package/dist/actor-DuCeRiNh.js +0 -146
  122. package/dist/actor-T6RyhRgk.d.ts +0 -130
  123. package/dist/assert_throws-BOO88avQ.js +0 -39
  124. package/dist/authdocloader-CrxhFL8e.js +0 -52
  125. package/dist/authdocloader-OSn_teLV.cjs +0 -58
  126. package/dist/denokv-Bv33Xxea.js +0 -57
  127. package/dist/docloader-CCqXeagZ.cjs +0 -4861
  128. package/dist/docloader-CxWcuWqQ.d.ts +0 -221
  129. package/dist/docloader-D-MrRyHl.d.cts +0 -219
  130. package/dist/docloader-XK3y2jn5.js +0 -4795
  131. package/dist/fixtures/activitypub.academy/users/brauca_darradiul.json +0 -83
  132. package/dist/fixtures/example.com/announce.json +0 -6
  133. package/dist/fixtures/example.com/collection.json +0 -19
  134. package/dist/fixtures/example.com/create.json +0 -6
  135. package/dist/fixtures/example.com/cross-origin-actor.json +0 -6
  136. package/dist/fixtures/example.com/hong-gildong.json +0 -11
  137. package/dist/fixtures/example.com/invite.json +0 -7
  138. package/dist/fixtures/example.com/key.json +0 -7
  139. package/dist/fixtures/example.com/key2.json +0 -6
  140. package/dist/fixtures/example.com/object.json +0 -6
  141. package/dist/fixtures/example.com/orderedcollectionpage.json +0 -24
  142. package/dist/fixtures/example.com/paged/a.json +0 -13
  143. package/dist/fixtures/example.com/paged/b.json +0 -16
  144. package/dist/fixtures/example.com/paged-collection.json +0 -6
  145. package/dist/fixtures/example.com/person.json +0 -22
  146. package/dist/fixtures/example.com/person2.json +0 -40
  147. package/dist/fixtures/example.com/test.json +0 -5
  148. package/dist/fixtures/example.com/users/handle.json +0 -16
  149. package/dist/fixtures/example.com/wrong-type.json +0 -3
  150. package/dist/fixtures/media.example.com/avatars/test-avatar.jpg.json +0 -6
  151. package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +0 -24
  152. package/dist/fixtures/remote.domain/users/bob.json +0 -20
  153. package/dist/fixtures/server.example/users/alice.json +0 -20
  154. package/dist/fixtures/w3id.org/identity/v1.json +0 -152
  155. package/dist/fixtures/w3id.org/security/data-integrity/v1.json +0 -74
  156. package/dist/fixtures/w3id.org/security/multikey/v1.json +0 -35
  157. package/dist/fixtures/w3id.org/security/v1.json +0 -50
  158. package/dist/fixtures/wizard.casa/users/hongminhee.json +0 -69
  159. package/dist/fixtures/www.w3.org/ns/activitystreams.json +0 -379
  160. package/dist/fixtures/www.w3.org/ns/did/v1.json +0 -58
  161. package/dist/key-B3uag-rz.js +0 -10
  162. package/dist/key-BiBmb1Yy.cjs +0 -10
  163. package/dist/key-DK_nfU4I.js +0 -10
  164. package/dist/key-Z6ceKnZC.cjs +0 -290
  165. package/dist/key-jyNTxCvK.js +0 -260
  166. package/dist/lookup-BPviO8ij.js +0 -131
  167. package/dist/lookup-hnMAAU5r.cjs +0 -137
  168. package/dist/lookup-pV0JOsuV.js +0 -331
  169. package/dist/middleware-CI0-zw4U.js +0 -26
  170. package/dist/middleware-QNK-W-jE.cjs +0 -17
  171. package/dist/middleware-_vjt6FWU.js +0 -17
  172. package/dist/mod-CerN_Sza.d.ts +0 -104
  173. package/dist/mod-Cj1tHXBR.d.cts +0 -102
  174. package/dist/mod-CxkWO3Mg.d.cts +0 -307
  175. package/dist/mod-DBzN0aCM.d.ts +0 -115
  176. package/dist/mod-DlU8ISoa.d.ts +0 -309
  177. package/dist/mod-FZd39qVq.d.cts +0 -1
  178. package/dist/mod-g0xFzAP9.d.ts +0 -2
  179. package/dist/mod-jQ4OODsl.d.cts +0 -113
  180. package/dist/mq-B7R1Q-M5.d.cts +0 -140
  181. package/dist/mq-CRGm1e_F.d.ts +0 -143
  182. package/dist/runtime/docloader.test.js +0 -522
  183. package/dist/runtime/key.test.js +0 -103
  184. package/dist/runtime/langstr.test.d.ts +0 -3
  185. package/dist/runtime/langstr.test.js +0 -39
  186. package/dist/runtime/link.test.d.ts +0 -3
  187. package/dist/runtime/link.test.js +0 -61
  188. package/dist/runtime/mod.cjs +0 -25
  189. package/dist/runtime/mod.d.cts +0 -6
  190. package/dist/runtime/mod.d.ts +0 -8
  191. package/dist/runtime/mod.js +0 -13
  192. package/dist/runtime/multibase/multibase.test.d.ts +0 -3
  193. package/dist/runtime/multibase/multibase.test.js +0 -358
  194. package/dist/runtime/url.test.d.ts +0 -3
  195. package/dist/runtime/url.test.js +0 -45
  196. package/dist/src/vocab/accept.yaml +0 -15
  197. package/dist/src/vocab/activity.yaml +0 -98
  198. package/dist/src/vocab/add.yaml +0 -16
  199. package/dist/src/vocab/announce.yaml +0 -30
  200. package/dist/src/vocab/application.yaml +0 -324
  201. package/dist/src/vocab/arrive.yaml +0 -15
  202. package/dist/src/vocab/article.yaml +0 -46
  203. package/dist/src/vocab/audio.yaml +0 -11
  204. package/dist/src/vocab/block.yaml +0 -16
  205. package/dist/src/vocab/chatmessage.yaml +0 -50
  206. package/dist/src/vocab/collection.yaml +0 -154
  207. package/dist/src/vocab/collectionpage.yaml +0 -55
  208. package/dist/src/vocab/create.yaml +0 -28
  209. package/dist/src/vocab/dataintegrityproof.yaml +0 -56
  210. package/dist/src/vocab/delete.yaml +0 -27
  211. package/dist/src/vocab/didservice.yaml +0 -22
  212. package/dist/src/vocab/dislike.yaml +0 -14
  213. package/dist/src/vocab/document.yaml +0 -31
  214. package/dist/src/vocab/emoji.yaml +0 -12
  215. package/dist/src/vocab/emojireact.yaml +0 -17
  216. package/dist/src/vocab/endpoints.yaml +0 -85
  217. package/dist/src/vocab/event.yaml +0 -11
  218. package/dist/src/vocab/export.yaml +0 -9
  219. package/dist/src/vocab/flag.yaml +0 -15
  220. package/dist/src/vocab/follow.yaml +0 -19
  221. package/dist/src/vocab/group.yaml +0 -324
  222. package/dist/src/vocab/hashtag.yaml +0 -14
  223. package/dist/src/vocab/ignore.yaml +0 -14
  224. package/dist/src/vocab/image.yaml +0 -9
  225. package/dist/src/vocab/intransitiveactivity.yaml +0 -15
  226. package/dist/src/vocab/invite.yaml +0 -14
  227. package/dist/src/vocab/join.yaml +0 -14
  228. package/dist/src/vocab/key.yaml +0 -28
  229. package/dist/src/vocab/leave.yaml +0 -14
  230. package/dist/src/vocab/like.yaml +0 -16
  231. package/dist/src/vocab/link.yaml +0 -101
  232. package/dist/src/vocab/listen.yaml +0 -12
  233. package/dist/src/vocab/mention.yaml +0 -9
  234. package/dist/src/vocab/move.yaml +0 -15
  235. package/dist/src/vocab/multikey.yaml +0 -36
  236. package/dist/src/vocab/note.yaml +0 -48
  237. package/dist/src/vocab/object.yaml +0 -404
  238. package/dist/src/vocab/offer.yaml +0 -15
  239. package/dist/src/vocab/orderedcollection.yaml +0 -39
  240. package/dist/src/vocab/orderedcollectionpage.yaml +0 -50
  241. package/dist/src/vocab/organization.yaml +0 -324
  242. package/dist/src/vocab/page.yaml +0 -11
  243. package/dist/src/vocab/person.yaml +0 -324
  244. package/dist/src/vocab/place.yaml +0 -75
  245. package/dist/src/vocab/profile.yaml +0 -26
  246. package/dist/src/vocab/propertyvalue.yaml +0 -32
  247. package/dist/src/vocab/question.yaml +0 -103
  248. package/dist/src/vocab/read.yaml +0 -13
  249. package/dist/src/vocab/reject.yaml +0 -14
  250. package/dist/src/vocab/relationship.yaml +0 -52
  251. package/dist/src/vocab/remove.yaml +0 -14
  252. package/dist/src/vocab/service.yaml +0 -324
  253. package/dist/src/vocab/source.yaml +0 -26
  254. package/dist/src/vocab/tentativeaccept.yaml +0 -14
  255. package/dist/src/vocab/tentativereject.yaml +0 -14
  256. package/dist/src/vocab/tombstone.yaml +0 -24
  257. package/dist/src/vocab/travel.yaml +0 -16
  258. package/dist/src/vocab/undo.yaml +0 -26
  259. package/dist/src/vocab/update.yaml +0 -58
  260. package/dist/src/vocab/video.yaml +0 -11
  261. package/dist/src/vocab/view.yaml +0 -13
  262. package/dist/testing/docloader.test.js +0 -24
  263. package/dist/type-C69ZBu7f.js +0 -47010
  264. package/dist/vocab/actor.test.d.ts +0 -3
  265. package/dist/vocab/actor.test.js +0 -5965
  266. package/dist/vocab/lookup.test.d.ts +0 -3
  267. package/dist/vocab/lookup.test.js +0 -456
  268. package/dist/vocab/mod.cjs +0 -87
  269. package/dist/vocab/mod.d.cts +0 -6
  270. package/dist/vocab/mod.d.ts +0 -8
  271. package/dist/vocab/mod.js +0 -10
  272. package/dist/vocab/schema.yaml +0 -247
  273. package/dist/vocab/type.test.d.ts +0 -3
  274. package/dist/vocab/type.test.js +0 -25
  275. package/dist/vocab/vocab.test.d.ts +0 -3
  276. package/dist/vocab/vocab.test.js +0 -3787
  277. package/dist/vocab-B39-pFl9.cjs +0 -291
  278. package/dist/vocab-BI0Ak5lL.d.ts +0 -14924
  279. package/dist/vocab-BWoeZsME.js +0 -255
  280. package/dist/vocab-Dw1-yVGg.d.cts +0 -14922
  281. package/dist/webfinger/handler.test.d.ts +0 -3
  282. package/dist/webfinger/lookup.test.d.ts +0 -3
  283. package/dist/webfinger/lookup.test.js +0 -195
  284. package/dist/webfinger/mod.cjs +0 -9
  285. package/dist/webfinger/mod.d.cts +0 -4
  286. package/dist/webfinger/mod.d.ts +0 -6
  287. package/dist/webfinger/mod.js +0 -9
  288. package/dist/webfinger-BjOEdFPs.cjs +0 -4
  289. package/dist/webfinger-De_bU0iE.js +0 -4
  290. package/dist/x/cfworkers.cjs +0 -100
  291. package/dist/x/cfworkers.d.cts +0 -59
  292. package/dist/x/cfworkers.d.ts +0 -61
  293. package/dist/x/cfworkers.js +0 -98
  294. package/dist/x/cfworkers.test.d.ts +0 -3
  295. package/dist/x/cfworkers.test.js +0 -179
  296. package/dist/x/hono.cjs +0 -61
  297. package/dist/x/hono.d.cts +0 -54
  298. package/dist/x/hono.d.ts +0 -56
  299. package/dist/x/hono.js +0 -60
  300. package/dist/x/sveltekit.cjs +0 -69
  301. package/dist/x/sveltekit.d.cts +0 -46
  302. package/dist/x/sveltekit.d.ts +0 -48
  303. package/dist/x/sveltekit.js +0 -68
  304. /package/dist/{assert_not_equals-f3m3epl3.js → assert_not_equals-C80BG-_5.js} +0 -0
  305. /package/dist/{runtime/authdocloader.test.d.ts → federation/webfinger.test.d.ts} +0 -0
  306. /package/dist/{mod-1pDWKvUL.d.ts → mod-1E3W847c.d.ts} +0 -0
  307. /package/dist/{mod-C2tOeRkN.d.cts → mod-C81L6_lQ.d.cts} +0 -0
  308. /package/dist/{nodeinfo-DfycQ8Wf.js → nodeinfo-BlLsRSiT.js} +0 -0
  309. /package/dist/{nodeinfo-Co9lJrWl.cjs → nodeinfo-DuMYTpbZ.cjs} +0 -0
  310. /package/dist/{runtime/docloader.test.d.ts → otel/exporter.test.d.ts} +0 -0
  311. /package/dist/{runtime-DPYEDf-o.js → sig-CwuONEzF.js} +0 -0
  312. /package/dist/{runtime-C58AJWSv.cjs → sig-DeXX2xnj.cjs} +0 -0
  313. /package/dist/{std__assert-X-_kMxKM.js → std__assert-DWivtrGR.js} +0 -0
  314. /package/dist/{testing → utils}/docloader.test.d.ts +0 -0
  315. /package/dist/{runtime/key.test.d.ts → utils/kv-cache.test.d.ts} +0 -0
  316. /package/dist/{sig-ByHXzqUi.cjs → utils-Db0ZmjcD.cjs} +0 -0
  317. /package/dist/{sig-Cj3tk-ig.js → utils-Wranxuoe.js} +0 -0
@@ -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.170+a03fedcd";
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,17 +3,44 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { __require, lookupWebFinger } from "./type-C69ZBu7f.js";
7
- import { RouterError, lookupObject, traverseCollection } from "./lookup-pV0JOsuV.js";
6
+ import { createRequire } from "node:module";
8
7
  import { configure, getConsoleSink, getLogger, reset } from "@logtape/logtape";
9
- import { trace } from "@opentelemetry/api";
8
+ import { BasicTracerProvider, SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
9
+ import { ExportResultCode } from "@opentelemetry/core";
10
10
 
11
- //#region src/testing/docloader.ts
12
- const logger = getLogger([
13
- "fedify",
14
- "testing",
15
- "docloader"
16
- ]);
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"]);
17
44
  /**
18
45
  * A mock of the document loader. This does not make any actual HTTP requests
19
46
  * towards the remote server, but looks up the local fixture files instead.
@@ -49,13 +76,14 @@ async function mockDocumentLoader(resource, _options) {
49
76
  });
50
77
  throw new Error(error);
51
78
  }
52
- 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`;
53
81
  let document;
54
82
  try {
55
- document = (await import(path, { with: { type: "json" } })).default;
83
+ document = (await import(fixturePath, { with: { type: "json" } })).default;
56
84
  } catch (error) {
57
85
  logger.error("Failed to read fixture file {path}: {error}", {
58
- path,
86
+ path: fixturePath,
59
87
  error
60
88
  });
61
89
  throw error;
@@ -66,106 +94,57 @@ async function mockDocumentLoader(resource, _options) {
66
94
  documentUrl: resource
67
95
  };
68
96
  }
69
-
70
- //#endregion
71
- //#region src/testing/context.ts
72
- function createContext(values) {
73
- 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;
74
- function throwRouteError() {
75
- 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 });
76
105
  }
77
- return {
78
- federation,
79
- data,
80
- origin: url.origin,
81
- canonicalOrigin: canonicalOrigin ?? url.origin,
82
- host: url.host,
83
- hostname: url.hostname,
84
- documentLoader: documentLoader ?? mockDocumentLoader,
85
- contextLoader: contextLoader ?? mockDocumentLoader,
86
- tracerProvider: tracerProvider ?? trace.getTracerProvider(),
87
- clone: clone ?? ((data$1) => createContext({
88
- ...values,
89
- data: data$1
90
- })),
91
- getNodeInfoUri: getNodeInfoUri ?? throwRouteError,
92
- getActorUri: getActorUri ?? throwRouteError,
93
- getObjectUri: getObjectUri ?? throwRouteError,
94
- getCollectionUri: getCollectionUri ?? throwRouteError,
95
- getOutboxUri: getOutboxUri ?? throwRouteError,
96
- getInboxUri: getInboxUri ?? throwRouteError,
97
- getFollowingUri: getFollowingUri ?? throwRouteError,
98
- getFollowersUri: getFollowersUri ?? throwRouteError,
99
- getLikedUri: getLikedUri ?? throwRouteError,
100
- getFeaturedUri: getFeaturedUri ?? throwRouteError,
101
- getFeaturedTagsUri: getFeaturedTagsUri ?? throwRouteError,
102
- parseUri: parseUri ?? ((_uri) => {
103
- throw new Error("Not implemented");
104
- }),
105
- getDocumentLoader: getDocumentLoader ?? ((_params) => {
106
- throw new Error("Not implemented");
107
- }),
108
- getActorKeyPairs: getActorKeyPairs ?? ((_handle) => Promise.resolve([])),
109
- lookupObject: lookupObject$1 ?? ((uri, options = {}) => {
110
- return lookupObject(uri, {
111
- documentLoader: options.documentLoader ?? documentLoader ?? mockDocumentLoader,
112
- contextLoader: options.contextLoader ?? contextLoader ?? mockDocumentLoader
113
- });
114
- }),
115
- traverseCollection: traverseCollection$1 ?? ((collection, options = {}) => {
116
- return traverseCollection(collection, {
117
- documentLoader: options.documentLoader ?? documentLoader ?? mockDocumentLoader,
118
- contextLoader: options.contextLoader ?? contextLoader ?? mockDocumentLoader
119
- });
120
- }),
121
- lookupNodeInfo: lookupNodeInfo ?? ((_params) => {
122
- throw new Error("Not implemented");
123
- }),
124
- lookupWebFinger: lookupWebFinger$1 ?? ((resource, options = {}) => {
125
- return lookupWebFinger(resource, options);
126
- }),
127
- sendActivity: sendActivity ?? ((_params) => {
128
- throw new Error("Not implemented");
129
- }),
130
- routeActivity: routeActivity ?? ((_params) => {
131
- throw new Error("Not implemented");
132
- })
133
- };
134
- }
135
- function createRequestContext(args) {
136
- return {
137
- ...createContext(args),
138
- clone: args.clone ?? ((data) => createRequestContext({
139
- ...args,
140
- data
141
- })),
142
- request: args.request ?? new Request(args.url),
143
- url: args.url,
144
- getActor: args.getActor ?? (() => Promise.resolve(null)),
145
- getObject: args.getObject ?? (() => Promise.resolve(null)),
146
- getSignedKey: args.getSignedKey ?? (() => Promise.resolve(null)),
147
- getSignedKeyOwner: args.getSignedKeyOwner ?? (() => Promise.resolve(null)),
148
- sendActivity: args.sendActivity ?? ((_params) => {
149
- throw new Error("Not implemented");
150
- })
151
- };
152
- }
153
- function createInboxContext(args) {
154
- return {
155
- ...createContext(args),
156
- clone: args.clone ?? ((data) => createInboxContext({
157
- ...args,
158
- data
159
- })),
160
- recipient: args.recipient ?? null,
161
- forwardActivity: args.forwardActivity ?? ((_params) => {
162
- throw new Error("Not implemented");
163
- })
164
- };
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];
165
147
  }
166
-
167
- //#endregion
168
- //#region src/testing/mod.ts
169
148
  const testDefinitions = [];
170
149
  function test(name, options, fn) {
171
150
  const def = typeof name === "string" ? typeof options === "function" ? {
@@ -299,4 +278,4 @@ function caller() {
299
278
  }
300
279
 
301
280
  //#endregion
302
- export { createInboxContext, createRequestContext, mockDocumentLoader, test, testDefinitions };
281
+ export { __commonJS, __toESM, createTestTracerProvider, mockDocumentLoader, test, testDefinitions };
@@ -3,15 +3,16 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./type-C69ZBu7f.js";
7
- import { validateCryptoKey } from "./key-1KXru8Ug.js";
8
- import { doubleKnock } from "./http-BNOYnVsU.js";
6
+ import { validateCryptoKey } from "./key-DKkHKzvg.js";
7
+ import { doubleKnock } from "./http-CwsBL5_A.js";
9
8
  import { getLogger } from "@logtape/logtape";
9
+ import { curry } from "es-toolkit";
10
+ import { UrlError, createActivityPubRequest, getDocumentLoader, getRemoteDocument, logRequest, validatePublicUrl } from "@fedify/vocab-runtime";
10
11
 
11
- //#region src/runtime/authdocloader.ts
12
+ //#region src/utils/docloader.ts
12
13
  const logger = getLogger([
13
14
  "fedify",
14
- "runtime",
15
+ "utils",
15
16
  "docloader"
16
17
  ]);
17
18
  /**
@@ -37,10 +38,10 @@ function getAuthenticatedDocumentLoader(identity, { allowPrivateAddress, userAge
37
38
  });
38
39
  throw error;
39
40
  }
40
- const originalRequest = createRequest(url, { userAgent });
41
+ const originalRequest = createActivityPubRequest(url, { userAgent });
41
42
  const response = await doubleKnock(originalRequest, identity, {
42
43
  specDeterminer,
43
- log: logRequest,
44
+ log: curry(logRequest)(logger),
44
45
  tracerProvider,
45
46
  signal: options?.signal
46
47
  });
@@ -48,6 +49,14 @@ function getAuthenticatedDocumentLoader(identity, { allowPrivateAddress, userAge
48
49
  }
49
50
  return load;
50
51
  }
52
+ const _fetchDocumentLoader = getDocumentLoader();
53
+ const _fetchDocumentLoader_allowPrivateAddress = getDocumentLoader({ allowPrivateAddress: true });
54
+ function fetchDocumentLoader(url, arg = false) {
55
+ const allowPrivateAddress = typeof arg === "boolean" ? arg : false;
56
+ logger.warn("fetchDocumentLoader() function is deprecated. Use getDocumentLoader() function instead.");
57
+ const loader = allowPrivateAddress ? _fetchDocumentLoader_allowPrivateAddress : _fetchDocumentLoader;
58
+ return loader(url);
59
+ }
51
60
 
52
61
  //#endregion
53
- export { getAuthenticatedDocumentLoader };
62
+ export { fetchDocumentLoader, getAuthenticatedDocumentLoader };
@@ -3,7 +3,7 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { __commonJS, __toESM } from "./type-C69ZBu7f.js";
6
+ import { __commonJS, __toESM } from "./dist-B5f6a8Tt.js";
7
7
 
8
8
  //#region ../../node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js
9
9
  var require_glob_to_regexp = __commonJS({ "../../node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js"(exports, module) {
@@ -115,7 +115,7 @@ function parse(input, loose) {
115
115
  }
116
116
 
117
117
  //#endregion
118
- //#region ../../node_modules/.pnpm/fetch-mock@12.5.3/node_modules/fetch-mock/dist/esm/TypeDescriptor.js
118
+ //#region ../../node_modules/.pnpm/fetch-mock@12.6.0/node_modules/fetch-mock/dist/esm/TypeDescriptor.js
119
119
  const valueTypes = new Set([
120
120
  "boolean",
121
121
  "number",
@@ -207,7 +207,7 @@ var TypeDescriptor = class TypeDescriptor {
207
207
  };
208
208
 
209
209
  //#endregion
210
- //#region ../../node_modules/.pnpm/fetch-mock@12.5.3/node_modules/fetch-mock/dist/esm/IsSubsetOf.js
210
+ //#region ../../node_modules/.pnpm/fetch-mock@12.6.0/node_modules/fetch-mock/dist/esm/IsSubsetOf.js
211
211
  const allowedTypes = new Set([
212
212
  "array",
213
213
  "object",
@@ -366,7 +366,7 @@ function dequal(foo, bar) {
366
366
  }
367
367
 
368
368
  //#endregion
369
- //#region ../../node_modules/.pnpm/fetch-mock@12.5.3/node_modules/fetch-mock/dist/esm/RequestUtils.js
369
+ //#region ../../node_modules/.pnpm/fetch-mock@12.6.0/node_modules/fetch-mock/dist/esm/RequestUtils.js
370
370
  const absoluteUrlRX = new RegExp("^[a-z]+://|^data:", "i");
371
371
  const protocolRelativeUrlRX = new RegExp("^//", "i");
372
372
  function hasCredentialsInUrl(url) {
@@ -431,6 +431,11 @@ function getPath(url) {
431
431
  const u = absoluteUrlRX.test(url) ? new URL(url) : new URL(url, "http://dummy");
432
432
  return u.pathname;
433
433
  }
434
+ function getHost(url) {
435
+ if (absoluteUrlRX.test(url)) return new URL(url).host;
436
+ else if ("location" in globalThis) return globalThis.location.host;
437
+ return null;
438
+ }
434
439
  function getQuery(url) {
435
440
  const u = absoluteUrlRX.test(url) ? new URL(url) : new URL(url, "http://dummy");
436
441
  return u.search ? u.search.substr(1) : "";
@@ -444,7 +449,7 @@ function normalizeHeaders(headers) {
444
449
  }
445
450
 
446
451
  //#endregion
447
- //#region ../../node_modules/.pnpm/fetch-mock@12.5.3/node_modules/fetch-mock/dist/esm/Matchers.js
452
+ //#region ../../node_modules/.pnpm/fetch-mock@12.6.0/node_modules/fetch-mock/dist/esm/Matchers.js
448
453
  var import_glob_to_regexp = __toESM(require_glob_to_regexp(), 1);
449
454
  const isUrlMatcher = (matcher) => matcher instanceof RegExp || typeof matcher === "string" || typeof matcher === "object" && "href" in matcher;
450
455
  const isFunctionMatcher = (matcher) => typeof matcher === "function";
@@ -475,6 +480,9 @@ const stringMatchers = {
475
480
  const path = getPath(url);
476
481
  return path === targetString || path === dotlessTargetString;
477
482
  };
483
+ },
484
+ host: (targetString) => {
485
+ return ({ url }) => targetString === getHost(url);
478
486
  }
479
487
  };
480
488
  const getHeaderMatcher = ({ headers: expectedHeaders }) => {
@@ -627,7 +635,7 @@ const builtInMatchers = [
627
635
  ];
628
636
 
629
637
  //#endregion
630
- //#region ../../node_modules/.pnpm/fetch-mock@12.5.3/node_modules/fetch-mock/dist/esm/StatusTextMap.js
638
+ //#region ../../node_modules/.pnpm/fetch-mock@12.6.0/node_modules/fetch-mock/dist/esm/StatusTextMap.js
631
639
  const statusTextMap = {
632
640
  100: "Continue",
633
641
  101: "Switching Protocols",
@@ -695,7 +703,7 @@ const statusTextMap = {
695
703
  var StatusTextMap_default = statusTextMap;
696
704
 
697
705
  //#endregion
698
- //#region ../../node_modules/.pnpm/fetch-mock@12.5.3/node_modules/fetch-mock/dist/esm/Route.js
706
+ //#region ../../node_modules/.pnpm/fetch-mock@12.6.0/node_modules/fetch-mock/dist/esm/Route.js
699
707
  var __classPrivateFieldSet = void 0 && (void 0).__classPrivateFieldSet || function(receiver, state, value, kind, f) {
700
708
  if (kind === "m") throw new TypeError("Private method is not writable");
701
709
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
@@ -829,7 +837,7 @@ builtInMatchers.forEach(Route.defineMatcher);
829
837
  var Route_default = Route;
830
838
 
831
839
  //#endregion
832
- //#region ../../node_modules/.pnpm/fetch-mock@12.5.3/node_modules/fetch-mock/dist/esm/Router.js
840
+ //#region ../../node_modules/.pnpm/fetch-mock@12.6.0/node_modules/fetch-mock/dist/esm/Router.js
833
841
  const responseConfigProps = [
834
842
  "body",
835
843
  "headers",
@@ -881,18 +889,23 @@ var Router = class {
881
889
  throwSpecExceptions(callLog);
882
890
  return new Promise(async (resolve, reject) => {
883
891
  const { url, options, request, pendingPromises } = callLog;
892
+ let eventListenerAbortController;
884
893
  if (callLog.signal) {
885
894
  const abort = () => {
886
895
  const error = new DOMException("The operation was aborted.", "AbortError");
887
896
  const requestBody = request?.body || options?.body;
888
- if (requestBody instanceof ReadableStream) if (requestBody.locked) requestBody.getReader().cancel(error);
897
+ if (requestBody instanceof ReadableStream) if (requestBody.locked) console.warn("fetch-mock: Locked request body can't be cancelled");
889
898
  else requestBody.cancel(error);
890
- if (callLog?.response?.body) if (callLog.response.body.locked) callLog.response.body.getReader().cancel(error);
899
+ if (callLog?.response?.body) if (callLog.response.body.locked) console.warn("fetch-mock: Locked response body can't be cancelled");
891
900
  else callLog.response.body.cancel(error);
892
901
  reject(error);
893
902
  };
894
903
  if (callLog.signal.aborted) abort();
895
- callLog.signal.addEventListener("abort", abort);
904
+ eventListenerAbortController = new AbortController();
905
+ callLog.signal.addEventListener("abort", abort, {
906
+ once: true,
907
+ signal: eventListenerAbortController.signal
908
+ });
896
909
  }
897
910
  if (this.needsToReadBody(request)) options.body = await options.body;
898
911
  const routesToTry = this.fallbackRoute ? [...this.routes, this.fallbackRoute] : this.routes;
@@ -905,6 +918,8 @@ var Router = class {
905
918
  resolve(observableResponse);
906
919
  } catch (err) {
907
920
  reject(err);
921
+ } finally {
922
+ eventListenerAbortController?.abort();
908
923
  }
909
924
  else reject(/* @__PURE__ */ new Error(`fetch-mock: No response or fallback rule to cover ${options && options.method || "GET"} to ${url}`));
910
925
  });
@@ -1002,7 +1017,7 @@ var Router = class {
1002
1017
  };
1003
1018
 
1004
1019
  //#endregion
1005
- //#region ../../node_modules/.pnpm/fetch-mock@12.5.3/node_modules/fetch-mock/dist/esm/CallHistory.js
1020
+ //#region ../../node_modules/.pnpm/fetch-mock@12.6.0/node_modules/fetch-mock/dist/esm/CallHistory.js
1006
1021
  const isName = (filter) => typeof filter === "string" && /^[\da-zA-Z-]+$/.test(filter) && !["matched", "unmatched"].includes(filter);
1007
1022
  const isMatchedOrUnmatched = (filter) => typeof filter === "boolean" || ["matched", "unmatched"].includes(filter);
1008
1023
  var CallHistory = class {
@@ -1032,11 +1047,11 @@ var CallHistory = class {
1032
1047
  let calls = [...this.callLogs];
1033
1048
  if (typeof filter === "undefined" && !options) return calls;
1034
1049
  if (isMatchedOrUnmatched(filter)) {
1035
- if ([true, "matched"].includes(filter)) calls = calls.filter(({ route }) => !route.config.isFallback);
1036
- else if ([false, "unmatched"].includes(filter)) calls = calls.filter(({ route }) => Boolean(route.config.isFallback));
1050
+ if ([true, "matched"].includes(filter)) calls = calls.filter(({ route }) => !route?.config || !route.config.isFallback);
1051
+ else if ([false, "unmatched"].includes(filter)) calls = calls.filter(({ route }) => Boolean(route?.config && route.config.isFallback));
1037
1052
  if (!options) return calls;
1038
1053
  } else if (isName(filter)) {
1039
- calls = calls.filter(({ route: { config: { name } } }) => name === filter);
1054
+ calls = calls.filter(({ route }) => route?.config?.name === filter);
1040
1055
  if (!options) return calls;
1041
1056
  } else if (isUrlMatcher(filter)) options = {
1042
1057
  url: filter,
@@ -1087,7 +1102,7 @@ var CallHistory = class {
1087
1102
  var CallHistory_default = CallHistory;
1088
1103
 
1089
1104
  //#endregion
1090
- //#region ../../node_modules/.pnpm/fetch-mock@12.5.3/node_modules/fetch-mock/dist/esm/FetchMock.js
1105
+ //#region ../../node_modules/.pnpm/fetch-mock@12.6.0/node_modules/fetch-mock/dist/esm/FetchMock.js
1091
1106
  const defaultFetchMockConfig = {
1092
1107
  includeContentLength: true,
1093
1108
  matchPartialBody: false,
@@ -1220,7 +1235,7 @@ const fetchMock = new FetchMock({ ...defaultFetchMockConfig });
1220
1235
  var FetchMock_default = fetchMock;
1221
1236
 
1222
1237
  //#endregion
1223
- //#region ../../node_modules/.pnpm/fetch-mock@12.5.3/node_modules/fetch-mock/dist/esm/index.js
1238
+ //#region ../../node_modules/.pnpm/fetch-mock@12.6.0/node_modules/fetch-mock/dist/esm/index.js
1224
1239
  var esm_default = FetchMock_default;
1225
1240
 
1226
1241
  //#endregion
@@ -3,20 +3,20 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Activity, Note, Person } from "../type-C69ZBu7f.js";
6
+ import { test } from "../dist-B5f6a8Tt.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
- import { MemoryKvStore } from "../kv-CRZrzyXm.js";
11
- import "../lookup-pV0JOsuV.js";
12
- import "../inbox-BRru9pX3.js";
13
- import { createFederationBuilder } from "../builder-CYOcDUkj.js";
14
- import { test } from "../testing-BWNCAbL-.js";
15
- import { assertExists } from "../std__assert-X-_kMxKM.js";
16
- import "../assert_rejects-DiIiJbZn.js";
17
- import "../assert_is_error-BPGph1Jx.js";
18
- import "../assert_not_equals-f3m3epl3.js";
19
- import { assertThrows } from "../assert_throws-BOO88avQ.js";
10
+ import { MemoryKvStore } from "../kv-QzKcOQgP.js";
11
+ import "../deno-DhWON59o.js";
12
+ import "../router-D9eI0s4b.js";
13
+ import "../inbox-CukSCwad.js";
14
+ import { createFederationBuilder } from "../builder-_MVsWtsS.js";
15
+ import { assertExists } from "../std__assert-DWivtrGR.js";
16
+ import "../assert_rejects-Ce45JcFg.js";
17
+ import { assertThrows } from "../assert_throws-BNXdRGWP.js";
18
+ import "../assert_not_equals-C80BG-_5.js";
19
+ import { Activity, Note, Person } from "@fedify/vocab";
20
20
 
21
21
  //#region src/federation/builder.test.ts
22
22
  test("FederationBuilder", async (t) => {
@@ -3,18 +3,15 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "../type-C69ZBu7f.js";
6
+ import { test } from "../dist-B5f6a8Tt.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
- import "../lookup-pV0JOsuV.js";
11
10
  import { buildCollectionSynchronizationHeader, digest } from "../collection-CcnIw1qY.js";
12
- import { test } from "../testing-BWNCAbL-.js";
13
- import "../std__assert-X-_kMxKM.js";
14
- import "../assert_rejects-DiIiJbZn.js";
15
- import "../assert_is_error-BPGph1Jx.js";
16
- import "../assert_not_equals-f3m3epl3.js";
17
- import "../assert_throws-BOO88avQ.js";
11
+ import "../std__assert-DWivtrGR.js";
12
+ import "../assert_rejects-Ce45JcFg.js";
13
+ import "../assert_throws-BNXdRGWP.js";
14
+ import "../assert_not_equals-C80BG-_5.js";
18
15
  import { decodeHex } from "byte-encodings/hex";
19
16
 
20
17
  //#region src/federation/collection.test.ts