@fedify/fedify 2.0.0-dev.1875 → 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 (283) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +68 -35
  3. package/dist/{builder-CLT_zIyw.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 -11
  9. package/dist/compat/mod.d.ts +6 -11
  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-DG0huGW-.d.ts → context-C7vzWilY.d.ts} +200 -65
  14. package/dist/{context-DJ8aSy2Q.d.cts → context-CrB9RFy5.d.cts} +200 -65
  15. package/dist/deno-i60L3ZJW.js +117 -0
  16. package/dist/{testing-CW4N8vgf.js → dist-B5f6a8Tt.js} +90 -110
  17. package/dist/{docloader-BkhI_RcC.js → docloader-BuOglEYx.js} +3 -3
  18. package/dist/{esm-DOqAYjlY.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 -12
  29. package/dist/federation/mod.d.ts +7 -12
  30. package/dist/federation/mod.js +8 -11
  31. package/dist/federation/mq.test.js +5 -4
  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-DmUiHemJ.js → http-B5BgMxiO.js} +119 -9
  40. package/dist/{http-DarlEN23.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-BIYwcgTd.js → http-uzkhnm0W.js} +3 -2
  44. package/dist/{inbox-Dbt8hLxb.js → inbox-CxrUTds4.js} +2 -1
  45. package/dist/{key-BcT6cdMK.js → key-DBHCloAO.js} +3 -3
  46. package/dist/{keycache-B8aIeTgt.js → keycache-DRxpZ5r9.js} +1 -1
  47. package/dist/{keys-Bs-0Hapk.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-B5TLf2fI.js → kv-cache-BqWqxam4.js} +2 -2
  53. package/dist/{kv-cache-BWWu8RyL.cjs → kv-cache-DY6hQ8Rf.cjs} +2 -2
  54. package/dist/{ld-DR6mmQjt.js → ld-CZgNIUGN.js} +4 -3
  55. package/dist/{middleware-B09KVcU4.cjs → middleware-BaoVtoMl.cjs} +210 -194
  56. package/dist/{middleware-B_rzGWsn.js → middleware-BqPcChYv.js} +164 -154
  57. package/dist/middleware-CnrWiFJI.cjs +12 -0
  58. package/dist/{middleware-Aqt52eK0.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-0noXw66R.d.cts → mod-0p9zUdzg.d.cts} +6 -6
  62. package/dist/mod-0qnPv4EC.d.cts +62 -0
  63. package/dist/{mod-DgdBYYa0.d.cts → mod-BrS8tiad.d.cts} +2 -2
  64. package/dist/mod-C3SOvTD1.d.ts +64 -0
  65. package/dist/{mod-DJcZDvjA.d.cts → mod-D6pS5_xJ.d.cts} +4 -4
  66. package/dist/{mod-B2iOw50L.d.ts → mod-jOa7W503.d.ts} +2 -2
  67. package/dist/{mod-BoHnwOCs.d.ts → mod-waqu-BL_.d.ts} +4 -4
  68. package/dist/{mod-B9M-8jm2.d.ts → mod-xc20HhMD.d.ts} +6 -6
  69. package/dist/mod.cjs +11 -93
  70. package/dist/mod.d.cts +11 -16
  71. package/dist/mod.d.ts +11 -16
  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-DEgLiB7Z.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-AhMjXzru.js → proof-DzFse-Bn.js} +46 -11
  89. package/dist/{proof-p3cmdfis.js → proof-XEPY5YKg.js} +3 -2
  90. package/dist/{proof-CbB_yXKu.cjs → proof-vmNsq1AQ.cjs} +63 -28
  91. package/dist/router-D9eI0s4b.js +118 -0
  92. package/dist/{send-CcKJ-npK.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 -67
  116. package/dist/actor-BQuDqoKQ.cjs +0 -42079
  117. package/dist/actor-CmPnJ0G7.js +0 -146
  118. package/dist/actor-CtTW_fTc.js +0 -41647
  119. package/dist/actor-DqFajh9s.d.ts +0 -130
  120. package/dist/actor-f2NtjyCg.d.cts +0 -128
  121. package/dist/denokv-CCssOzMJ.js +0 -57
  122. package/dist/fixtures/activitypub.academy/users/brauca_darradiul.json +0 -83
  123. package/dist/fixtures/example.com/announce.json +0 -6
  124. package/dist/fixtures/example.com/collection.json +0 -19
  125. package/dist/fixtures/example.com/create.json +0 -6
  126. package/dist/fixtures/example.com/cross-origin-actor.json +0 -6
  127. package/dist/fixtures/example.com/hong-gildong.json +0 -11
  128. package/dist/fixtures/example.com/invite.json +0 -7
  129. package/dist/fixtures/example.com/key.json +0 -7
  130. package/dist/fixtures/example.com/key2.json +0 -6
  131. package/dist/fixtures/example.com/object.json +0 -6
  132. package/dist/fixtures/example.com/orderedcollectionpage.json +0 -24
  133. package/dist/fixtures/example.com/paged/a.json +0 -13
  134. package/dist/fixtures/example.com/paged/b.json +0 -16
  135. package/dist/fixtures/example.com/paged-collection.json +0 -6
  136. package/dist/fixtures/example.com/person.json +0 -22
  137. package/dist/fixtures/example.com/person2.json +0 -40
  138. package/dist/fixtures/example.com/test.json +0 -5
  139. package/dist/fixtures/example.com/users/handle.json +0 -16
  140. package/dist/fixtures/example.com/wrong-type.json +0 -3
  141. package/dist/fixtures/media.example.com/avatars/test-avatar.jpg.json +0 -6
  142. package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +0 -24
  143. package/dist/fixtures/remote.domain/users/bob.json +0 -20
  144. package/dist/fixtures/server.example/users/alice.json +0 -20
  145. package/dist/fixtures/w3id.org/identity/v1.json +0 -152
  146. package/dist/fixtures/w3id.org/security/data-integrity/v1.json +0 -74
  147. package/dist/fixtures/w3id.org/security/multikey/v1.json +0 -35
  148. package/dist/fixtures/w3id.org/security/v1.json +0 -50
  149. package/dist/fixtures/wizard.casa/users/hongminhee.json +0 -69
  150. package/dist/fixtures/www.w3.org/ns/activitystreams.json +0 -379
  151. package/dist/fixtures/www.w3.org/ns/did/v1.json +0 -58
  152. package/dist/lookup-Bhv7efZB.js +0 -42183
  153. package/dist/lookup-DdpqU9Gb.js +0 -258
  154. package/dist/lookup-EHJhdA8l.cjs +0 -270
  155. package/dist/middleware-C_Sa9J23.cjs +0 -15
  156. package/dist/middleware-DGwP3i-w.js +0 -15
  157. package/dist/middleware-Xyxj43cy.js +0 -26
  158. package/dist/mod-BlVovdcy.d.ts +0 -309
  159. package/dist/mod-BxRCHTz-.d.cts +0 -307
  160. package/dist/mod-C2tOeRkN.d.cts +0 -1
  161. package/dist/mod-C58MZ7Wx.d.cts +0 -113
  162. package/dist/mod-Ds0mpFZU.d.ts +0 -115
  163. package/dist/mod-xIj-IT58.d.ts +0 -2
  164. package/dist/mq-CUKlBw08.d.ts +0 -143
  165. package/dist/mq-DcJPkXD5.d.cts +0 -140
  166. package/dist/src/vocab/accept.yaml +0 -15
  167. package/dist/src/vocab/activity.yaml +0 -98
  168. package/dist/src/vocab/add.yaml +0 -16
  169. package/dist/src/vocab/announce.yaml +0 -30
  170. package/dist/src/vocab/application.yaml +0 -324
  171. package/dist/src/vocab/arrive.yaml +0 -15
  172. package/dist/src/vocab/article.yaml +0 -46
  173. package/dist/src/vocab/audio.yaml +0 -11
  174. package/dist/src/vocab/block.yaml +0 -16
  175. package/dist/src/vocab/chatmessage.yaml +0 -50
  176. package/dist/src/vocab/collection.yaml +0 -154
  177. package/dist/src/vocab/collectionpage.yaml +0 -55
  178. package/dist/src/vocab/create.yaml +0 -28
  179. package/dist/src/vocab/dataintegrityproof.yaml +0 -56
  180. package/dist/src/vocab/delete.yaml +0 -27
  181. package/dist/src/vocab/didservice.yaml +0 -22
  182. package/dist/src/vocab/dislike.yaml +0 -14
  183. package/dist/src/vocab/document.yaml +0 -31
  184. package/dist/src/vocab/emoji.yaml +0 -12
  185. package/dist/src/vocab/emojireact.yaml +0 -17
  186. package/dist/src/vocab/endpoints.yaml +0 -85
  187. package/dist/src/vocab/event.yaml +0 -11
  188. package/dist/src/vocab/export.yaml +0 -9
  189. package/dist/src/vocab/flag.yaml +0 -15
  190. package/dist/src/vocab/follow.yaml +0 -19
  191. package/dist/src/vocab/group.yaml +0 -324
  192. package/dist/src/vocab/hashtag.yaml +0 -14
  193. package/dist/src/vocab/ignore.yaml +0 -14
  194. package/dist/src/vocab/image.yaml +0 -9
  195. package/dist/src/vocab/intransitiveactivity.yaml +0 -15
  196. package/dist/src/vocab/invite.yaml +0 -14
  197. package/dist/src/vocab/join.yaml +0 -14
  198. package/dist/src/vocab/key.yaml +0 -28
  199. package/dist/src/vocab/leave.yaml +0 -14
  200. package/dist/src/vocab/like.yaml +0 -16
  201. package/dist/src/vocab/link.yaml +0 -101
  202. package/dist/src/vocab/listen.yaml +0 -12
  203. package/dist/src/vocab/mention.yaml +0 -9
  204. package/dist/src/vocab/move.yaml +0 -15
  205. package/dist/src/vocab/multikey.yaml +0 -36
  206. package/dist/src/vocab/note.yaml +0 -48
  207. package/dist/src/vocab/object.yaml +0 -404
  208. package/dist/src/vocab/offer.yaml +0 -15
  209. package/dist/src/vocab/orderedcollection.yaml +0 -39
  210. package/dist/src/vocab/orderedcollectionpage.yaml +0 -50
  211. package/dist/src/vocab/organization.yaml +0 -324
  212. package/dist/src/vocab/page.yaml +0 -11
  213. package/dist/src/vocab/person.yaml +0 -324
  214. package/dist/src/vocab/place.yaml +0 -75
  215. package/dist/src/vocab/profile.yaml +0 -26
  216. package/dist/src/vocab/propertyvalue.yaml +0 -32
  217. package/dist/src/vocab/question.yaml +0 -103
  218. package/dist/src/vocab/read.yaml +0 -13
  219. package/dist/src/vocab/reject.yaml +0 -14
  220. package/dist/src/vocab/relationship.yaml +0 -52
  221. package/dist/src/vocab/remove.yaml +0 -14
  222. package/dist/src/vocab/service.yaml +0 -324
  223. package/dist/src/vocab/source.yaml +0 -26
  224. package/dist/src/vocab/tentativeaccept.yaml +0 -14
  225. package/dist/src/vocab/tentativereject.yaml +0 -14
  226. package/dist/src/vocab/tombstone.yaml +0 -24
  227. package/dist/src/vocab/travel.yaml +0 -16
  228. package/dist/src/vocab/undo.yaml +0 -26
  229. package/dist/src/vocab/update.yaml +0 -58
  230. package/dist/src/vocab/video.yaml +0 -11
  231. package/dist/src/vocab/view.yaml +0 -13
  232. package/dist/testing/docloader.test.js +0 -22
  233. package/dist/vocab/actor.test.js +0 -5963
  234. package/dist/vocab/lookup.test.d.ts +0 -3
  235. package/dist/vocab/lookup.test.js +0 -454
  236. package/dist/vocab/mod.cjs +0 -86
  237. package/dist/vocab/mod.d.cts +0 -4
  238. package/dist/vocab/mod.d.ts +0 -6
  239. package/dist/vocab/mod.js +0 -9
  240. package/dist/vocab/type.test.d.ts +0 -3
  241. package/dist/vocab/type.test.js +0 -24
  242. package/dist/vocab/vocab.test.d.ts +0 -3
  243. package/dist/vocab/vocab.test.js +0 -9397
  244. package/dist/vocab-BCWe1Ih5.d.ts +0 -14905
  245. package/dist/vocab-CeDBzu-f.d.cts +0 -14903
  246. package/dist/vocab-CuAJ4Tbh.js +0 -255
  247. package/dist/vocab-DCYaqGPG.cjs +0 -291
  248. package/dist/webfinger/handler.test.d.ts +0 -3
  249. package/dist/webfinger/lookup.test.d.ts +0 -3
  250. package/dist/webfinger/lookup.test.js +0 -193
  251. package/dist/webfinger/mod.cjs +0 -8
  252. package/dist/webfinger/mod.d.cts +0 -2
  253. package/dist/webfinger/mod.d.ts +0 -4
  254. package/dist/webfinger/mod.js +0 -8
  255. package/dist/webfinger-C72Y8lrh.js +0 -4
  256. package/dist/webfinger-vAtLmxOF.cjs +0 -4
  257. package/dist/x/cfworkers.cjs +0 -100
  258. package/dist/x/cfworkers.d.cts +0 -59
  259. package/dist/x/cfworkers.d.ts +0 -61
  260. package/dist/x/cfworkers.js +0 -98
  261. package/dist/x/cfworkers.test.d.ts +0 -3
  262. package/dist/x/cfworkers.test.js +0 -177
  263. package/dist/x/hono.cjs +0 -61
  264. package/dist/x/hono.d.cts +0 -53
  265. package/dist/x/hono.d.ts +0 -55
  266. package/dist/x/hono.js +0 -60
  267. package/dist/x/sveltekit.cjs +0 -69
  268. package/dist/x/sveltekit.d.cts +0 -45
  269. package/dist/x/sveltekit.d.ts +0 -47
  270. package/dist/x/sveltekit.js +0 -68
  271. /package/dist/{collection-BzWsN9pB.js → collection-CcnIw1qY.js} +0 -0
  272. /package/dist/{testing/docloader.test.d.ts → federation/webfinger.test.d.ts} +0 -0
  273. /package/dist/{mod-CVgZgliM.d.ts → mod-1E3W847c.d.ts} +0 -0
  274. /package/dist/{mod-B-hUPT2N.d.cts → mod-C81L6_lQ.d.cts} +0 -0
  275. /package/dist/{negotiation-C4nFufNk.js → negotiation-5NPJL6zp.js} +0 -0
  276. /package/dist/{nodeinfo-BnthBobC.js → nodeinfo-BlLsRSiT.js} +0 -0
  277. /package/dist/{nodeinfo-CdN0rEnZ.cjs → nodeinfo-DuMYTpbZ.cjs} +0 -0
  278. /package/dist/{vocab/actor.test.d.ts → otel/exporter.test.d.ts} +0 -0
  279. /package/dist/{retry-CfF8Gn4d.js → retry-D4GJ670a.js} +0 -0
  280. /package/dist/{sig-C34-oHBl.js → sig-CwuONEzF.js} +0 -0
  281. /package/dist/{sig-YYj5tCnr.cjs → sig-DeXX2xnj.cjs} +0 -0
  282. /package/dist/{utils-DyRU1gdZ.cjs → utils-Db0ZmjcD.cjs} +0 -0
  283. /package/dist/{utils-D-Va7aXC.js → utils-Wranxuoe.js} +0 -0
@@ -3,30 +3,31 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Follow, Person } from "../lookup-Bhv7efZB.js";
6
+ import { test } from "../dist-B5f6a8Tt.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import { assert } from "../assert-MZs1qjMx.js";
9
9
  import { assertInstanceOf } from "../assert_instance_of-DHz7EHNU.js";
10
- import { MemoryKvStore } from "../kv-CRZrzyXm.js";
11
- import { FederationImpl, actorDehydrator, autoIdAssigner } from "../middleware-Aqt52eK0.js";
12
- import "../client-pY7-3icS.js";
13
- import "../types-C2XVl6gj.js";
14
- import "../actor-CmPnJ0G7.js";
15
- import "../key-BcT6cdMK.js";
16
- import "../http-BIYwcgTd.js";
17
- import "../ld-DR6mmQjt.js";
18
- import "../owner-DEgLiB7Z.js";
19
- import "../proof-p3cmdfis.js";
20
- import "../docloader-BkhI_RcC.js";
21
- import "../kv-cache-DN9pfMBe.js";
22
- import "../inbox-Dbt8hLxb.js";
23
- import "../builder-CLT_zIyw.js";
24
- import "../collection-BzWsN9pB.js";
25
- import "../keycache-B8aIeTgt.js";
26
- import "../negotiation-C4nFufNk.js";
27
- import "../retry-CfF8Gn4d.js";
28
- import "../send-CcKJ-npK.js";
29
- import { test } from "../testing-CW4N8vgf.js";
10
+ import { MemoryKvStore } from "../kv-QzKcOQgP.js";
11
+ import "../deno-i60L3ZJW.js";
12
+ import { FederationImpl, actorDehydrator, autoIdAssigner } from "../middleware-CxwWsgSo.js";
13
+ import "../client-Dg7OfUDA.js";
14
+ import "../router-D9eI0s4b.js";
15
+ import "../types-CPz01LGH.js";
16
+ import "../key-DBHCloAO.js";
17
+ import "../http-uzkhnm0W.js";
18
+ import "../ld-CZgNIUGN.js";
19
+ import "../owner-BDvRiO5T.js";
20
+ import "../proof-XEPY5YKg.js";
21
+ import "../docloader-BuOglEYx.js";
22
+ import "../kv-cache-BEeqyGER.js";
23
+ import "../inbox-CxrUTds4.js";
24
+ import "../builder-R1Sfe-tb.js";
25
+ import "../collection-CcnIw1qY.js";
26
+ import "../keycache-DRxpZ5r9.js";
27
+ import "../negotiation-5NPJL6zp.js";
28
+ import "../retry-D4GJ670a.js";
29
+ import "../send-BdhhZ2MN.js";
30
+ import { Follow, Person } from "@fedify/vocab";
30
31
 
31
32
  //#region src/compat/transformers.test.ts
32
33
  const federation = new FederationImpl({ kv: new MemoryKvStore() });
@@ -0,0 +1,109 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+ globalThis.addEventListener = () => {};
5
+
6
+ import { mockDocumentLoader } from "./dist-B5f6a8Tt.js";
7
+ import { RouterError } from "./router-D9eI0s4b.js";
8
+ import { lookupObject, traverseCollection } from "@fedify/vocab";
9
+ import { lookupWebFinger } from "@fedify/webfinger";
10
+ import { trace } from "@opentelemetry/api";
11
+
12
+ //#region src/testing/context.ts
13
+ function createContext(values) {
14
+ 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;
15
+ function throwRouteError() {
16
+ throw new RouterError("Not implemented");
17
+ }
18
+ return {
19
+ federation,
20
+ data,
21
+ origin: url.origin,
22
+ canonicalOrigin: canonicalOrigin ?? url.origin,
23
+ host: url.host,
24
+ hostname: url.hostname,
25
+ documentLoader: documentLoader ?? mockDocumentLoader,
26
+ contextLoader: contextLoader ?? mockDocumentLoader,
27
+ tracerProvider: tracerProvider ?? trace.getTracerProvider(),
28
+ clone: clone ?? ((data$1) => createContext({
29
+ ...values,
30
+ data: data$1
31
+ })),
32
+ getNodeInfoUri: getNodeInfoUri ?? throwRouteError,
33
+ getActorUri: getActorUri ?? throwRouteError,
34
+ getObjectUri: getObjectUri ?? throwRouteError,
35
+ getCollectionUri: getCollectionUri ?? throwRouteError,
36
+ getOutboxUri: getOutboxUri ?? throwRouteError,
37
+ getInboxUri: getInboxUri ?? throwRouteError,
38
+ getFollowingUri: getFollowingUri ?? throwRouteError,
39
+ getFollowersUri: getFollowersUri ?? throwRouteError,
40
+ getLikedUri: getLikedUri ?? throwRouteError,
41
+ getFeaturedUri: getFeaturedUri ?? throwRouteError,
42
+ getFeaturedTagsUri: getFeaturedTagsUri ?? throwRouteError,
43
+ parseUri: parseUri ?? ((_uri) => {
44
+ throw new Error("Not implemented");
45
+ }),
46
+ getDocumentLoader: getDocumentLoader ?? ((_params) => {
47
+ throw new Error("Not implemented");
48
+ }),
49
+ getActorKeyPairs: getActorKeyPairs ?? ((_handle) => Promise.resolve([])),
50
+ lookupObject: lookupObject$1 ?? ((uri, options = {}) => {
51
+ return lookupObject(uri, {
52
+ documentLoader: options.documentLoader ?? documentLoader ?? mockDocumentLoader,
53
+ contextLoader: options.contextLoader ?? contextLoader ?? mockDocumentLoader
54
+ });
55
+ }),
56
+ traverseCollection: traverseCollection$1 ?? ((collection, options = {}) => {
57
+ return traverseCollection(collection, {
58
+ documentLoader: options.documentLoader ?? documentLoader ?? mockDocumentLoader,
59
+ contextLoader: options.contextLoader ?? contextLoader ?? mockDocumentLoader
60
+ });
61
+ }),
62
+ lookupNodeInfo: lookupNodeInfo ?? ((_params) => {
63
+ throw new Error("Not implemented");
64
+ }),
65
+ lookupWebFinger: lookupWebFinger$1 ?? ((resource, options = {}) => {
66
+ return lookupWebFinger(resource, options);
67
+ }),
68
+ sendActivity: sendActivity ?? ((_params) => {
69
+ throw new Error("Not implemented");
70
+ }),
71
+ routeActivity: routeActivity ?? ((_params) => {
72
+ throw new Error("Not implemented");
73
+ })
74
+ };
75
+ }
76
+ function createRequestContext(args) {
77
+ return {
78
+ ...createContext(args),
79
+ clone: args.clone ?? ((data) => createRequestContext({
80
+ ...args,
81
+ data
82
+ })),
83
+ request: args.request ?? new Request(args.url),
84
+ url: args.url,
85
+ getActor: args.getActor ?? (() => Promise.resolve(null)),
86
+ getObject: args.getObject ?? (() => Promise.resolve(null)),
87
+ getSignedKey: args.getSignedKey ?? (() => Promise.resolve(null)),
88
+ getSignedKeyOwner: args.getSignedKeyOwner ?? (() => Promise.resolve(null)),
89
+ sendActivity: args.sendActivity ?? ((_params) => {
90
+ throw new Error("Not implemented");
91
+ })
92
+ };
93
+ }
94
+ function createInboxContext(args) {
95
+ return {
96
+ ...createContext(args),
97
+ clone: args.clone ?? ((data) => createInboxContext({
98
+ ...args,
99
+ data
100
+ })),
101
+ recipient: args.recipient ?? null,
102
+ forwardActivity: args.forwardActivity ?? ((_params) => {
103
+ throw new Error("Not implemented");
104
+ })
105
+ };
106
+ }
107
+
108
+ //#endregion
109
+ export { createInboxContext, createRequestContext };
@@ -1,16 +1,13 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { GetNodeInfoOptions, JsonValue, NodeInfo } from "./client-BsGzbnV-.js";
4
- import { Activity, Collection, CryptographicKey, Hashtag, Link, Multikey, Object as Object$1 } from "./vocab-BCWe1Ih5.js";
5
- import { Actor, Recipient } from "./actor-DqFajh9s.js";
6
- import { HttpMessageSignaturesSpec } from "./http-BbO0ejuk.js";
7
- import { GetKeyOwnerOptions } from "./owner-kQRGVXG1.js";
8
- import { LookupObjectOptions, TraverseCollectionOptions } from "./mod-BlVovdcy.js";
9
- import { Link as Link$1, LookupWebFingerOptions, ResourceDescriptor } from "./mod-Ds0mpFZU.js";
10
- import { KvKey, KvStore } from "./kv-BKNZ-Tb-.js";
11
- import { MessageQueue } from "./mq-CUKlBw08.js";
12
- import { Span, TracerProvider } from "@opentelemetry/api";
3
+ import { GetNodeInfoOptions, JsonValue, NodeInfo } from "./client-CUTUGgvJ.js";
4
+ import { HttpMessageSignaturesSpec } from "./http-DLBDPal9.js";
5
+ import { GetKeyOwnerOptions } from "./owner-BgI8C-VY.js";
6
+ import { KvKey, KvStore } from "./kv-CYySNrsn.js";
7
+ import { Activity, Actor, Collection, CryptographicKey, Hashtag, Link, LookupObjectOptions, Multikey, Object as Object$1, Recipient, TraverseCollectionOptions } from "@fedify/vocab";
8
+ import { Span, Tracer, TracerProvider } from "@opentelemetry/api";
13
9
  import { AuthenticatedDocumentLoaderFactory, DocumentLoader, DocumentLoaderFactory, GetUserAgentOptions } from "@fedify/vocab-runtime";
10
+ import { Link as Link$1, LookupWebFingerOptions, ResourceDescriptor } from "@fedify/webfinger";
14
11
 
15
12
  //#region src/compat/types.d.ts
16
13
  /**
@@ -24,9 +21,9 @@ type ActivityTransformer<TContextData> = (activity: Activity, context: Context<T
24
21
  * A page of items.
25
22
  */
26
23
  interface PageItems<TItem> {
27
- prevCursor?: string | null;
28
- nextCursor?: string | null;
29
- items: TItem[];
24
+ readonly prevCursor?: string | null;
25
+ readonly nextCursor?: string | null;
26
+ readonly items: readonly TItem[];
30
27
  }
31
28
  /**
32
29
  * Calculates the [partial follower collection digest][1].
@@ -56,11 +53,11 @@ interface SenderKeyPair {
56
53
  /**
57
54
  * The actor's private key to sign the request.
58
55
  */
59
- privateKey: CryptoKey;
56
+ readonly privateKey: CryptoKey;
60
57
  /**
61
58
  * The public key ID that corresponds to the private key.
62
59
  */
63
- keyId: URL;
60
+ readonly keyId: URL;
64
61
  }
65
62
  /**
66
63
  * Parameters for {@link sendActivity}.
@@ -308,8 +305,146 @@ type CustomCollectionCounter<TParam extends string, TContextData> = (context: Re
308
305
  */
309
306
  type CustomCollectionCursor<TParam extends string, TContext extends Context<TContextData>, TContextData> = (context: TContext, values: Record<TParam, string>) => string | null | Promise<string | null>;
310
307
  //#endregion
308
+ //#region src/federation/mq.d.ts
309
+ /**
310
+ * Additional options for enqueuing a message in a queue.
311
+ *
312
+ * @since 0.5.0
313
+ */
314
+ interface MessageQueueEnqueueOptions {
315
+ /**
316
+ * The delay before the message is enqueued. No delay by default.
317
+ *
318
+ * It must not be negative.
319
+ */
320
+ delay?: Temporal.Duration;
321
+ }
322
+ /**
323
+ * Additional options for listening to a message queue.
324
+ *
325
+ * @since 1.0.0
326
+ */
327
+ interface MessageQueueListenOptions {
328
+ /**
329
+ * The signal to abort listening to the message queue.
330
+ */
331
+ signal?: AbortSignal;
332
+ }
333
+ /**
334
+ * An abstract interface for a message queue.
335
+ *
336
+ * @since 0.5.0
337
+ */
338
+ interface MessageQueue {
339
+ /**
340
+ * Whether the message queue backend provides native retry mechanisms.
341
+ * When `true`, Fedify will skip its own retry logic and rely on the backend
342
+ * to handle retries. When `false` or omitted, Fedify will handle retries
343
+ * using its own retry policies.
344
+ *
345
+ * @default `false`
346
+ * @since 1.7.0
347
+ */
348
+ readonly nativeRetrial?: boolean;
349
+ /**
350
+ * Enqueues a message in the queue.
351
+ * @param message The message to enqueue.
352
+ * @param options Additional options for enqueuing the message.
353
+ */
354
+ enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
355
+ /**
356
+ * Enqueues multiple messages in the queue. This operation is optional,
357
+ * and may not be supported by all implementations. If not supported,
358
+ * Fedify will invoke {@link enqueue} for each message.
359
+ *
360
+ * @param messages The messages to enqueue.
361
+ * @param options Additional options for enqueuing the messages.
362
+ */
363
+ enqueueMany?: (messages: readonly any[], options?: MessageQueueEnqueueOptions) => Promise<void>;
364
+ /**
365
+ * Listens for messages in the queue.
366
+ * @param handler The handler for messages in the queue.
367
+ * @param options Additional options for listening to the message queue.
368
+ * @returns A promise that resolves when the listening is done. It never
369
+ * rejects, and is resolved when the signal is aborted. If no
370
+ * signal is provided, it never resolves.
371
+ */
372
+ listen(handler: (message: any) => Promise<void> | void, options?: MessageQueueListenOptions): Promise<void>;
373
+ }
374
+ /**
375
+ * Additional options for {@link InProcessMessageQueue}.
376
+ * @since 1.0.0
377
+ */
378
+ interface InProcessMessageQueueOptions {
379
+ /**
380
+ * The interval to poll for messages in the queue. 5 seconds by default.
381
+ * @default `{ seconds: 5 }`
382
+ */
383
+ pollInterval?: Temporal.Duration | Temporal.DurationLike;
384
+ }
385
+ /**
386
+ * A message queue that processes messages in the same process.
387
+ * Do not use this in production as it does neither persist messages nor
388
+ * distribute them across multiple processes.
389
+ *
390
+ * @since 0.5.0
391
+ */
392
+ declare class InProcessMessageQueue implements MessageQueue {
393
+ #private;
394
+ /**
395
+ * In-process message queue does not provide native retry mechanisms.
396
+ * @since 1.7.0
397
+ */
398
+ readonly nativeRetrial = false;
399
+ /**
400
+ * Constructs a new {@link InProcessMessageQueue} with the given options.
401
+ * @param options Additional options for the in-process message queue.
402
+ */
403
+ constructor(options?: InProcessMessageQueueOptions);
404
+ enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
405
+ enqueueMany(messages: readonly any[], options?: MessageQueueEnqueueOptions): Promise<void>;
406
+ listen(handler: (message: any) => Promise<void> | void, options?: MessageQueueListenOptions): Promise<void>;
407
+ }
408
+ /**
409
+ * A message queue that processes messages in parallel. It takes another
410
+ * {@link MessageQueue}, and processes messages in parallel up to a certain
411
+ * number of workers.
412
+ *
413
+ * Actually, it's rather a decorator than a queue itself.
414
+ *
415
+ * Note that the workers do not run in truly parallel, in the sense that they
416
+ * are not running in separate threads or processes. They are running in the
417
+ * same process, but are scheduled to run in parallel. Hence, this is useful
418
+ * for I/O-bound tasks, but not for CPU-bound tasks, which is okay for Fedify's
419
+ * workloads.
420
+ *
421
+ * @since 1.0.0
422
+ */
423
+ declare class ParallelMessageQueue implements MessageQueue {
424
+ #private;
425
+ readonly queue: MessageQueue;
426
+ readonly workers: number;
427
+ /**
428
+ * Inherits the native retry capability from the wrapped queue.
429
+ * @since 1.7.0
430
+ */
431
+ readonly nativeRetrial?: boolean;
432
+ /**
433
+ * Constructs a new {@link ParallelMessageQueue} with the given queue and
434
+ * number of workers.
435
+ * @param queue The message queue to use under the hood. Note that
436
+ * {@link ParallelMessageQueue} cannot be nested.
437
+ * @param workers The number of workers to process messages in parallel.
438
+ * @throws {TypeError} If the given queue is an instance of
439
+ * {@link ParallelMessageQueue}.
440
+ */
441
+ constructor(queue: MessageQueue, workers: number);
442
+ enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
443
+ enqueueMany(messages: readonly any[], options?: MessageQueueEnqueueOptions): Promise<void>;
444
+ listen(handler: (message: any) => Promise<void> | void, options?: MessageQueueListenOptions): Promise<void>;
445
+ }
446
+ //#endregion
311
447
  //#region src/federation/handler.d.ts
312
-
313
448
  /**
314
449
  * Options for the {@link respondWithObject} and
315
450
  * {@link respondWithObjectIfAcceptable} functions.
@@ -436,8 +571,8 @@ declare function createFederationBuilder<TContextData>(): FederationBuilder<TCon
436
571
  //#endregion
437
572
  //#region src/federation/queue.d.ts
438
573
  interface SenderKeyJwkPair {
439
- keyId: string;
440
- privateKey: JsonWebKey;
574
+ readonly keyId: string;
575
+ readonly privateKey: JsonWebKey;
441
576
  }
442
577
  /**
443
578
  * A message that represents a task to be processed by the background worker.
@@ -450,44 +585,44 @@ interface SenderKeyJwkPair {
450
585
  */
451
586
  type Message = FanoutMessage | OutboxMessage | InboxMessage;
452
587
  interface FanoutMessage {
453
- type: "fanout";
454
- id: ReturnType<typeof crypto.randomUUID>;
455
- baseUrl: string;
456
- keys: SenderKeyJwkPair[];
457
- inboxes: Record<string, {
458
- actorIds: string[];
459
- sharedInbox: boolean;
460
- }>;
461
- activity: unknown;
462
- activityId?: string;
463
- activityType: string;
464
- collectionSync?: string;
465
- traceContext: Record<string, string>;
588
+ readonly type: "fanout";
589
+ readonly id: ReturnType<typeof crypto.randomUUID>;
590
+ readonly baseUrl: string;
591
+ readonly keys: readonly SenderKeyJwkPair[];
592
+ readonly inboxes: Readonly<Record<string, {
593
+ readonly actorIds: readonly string[];
594
+ readonly sharedInbox: boolean;
595
+ }>>;
596
+ readonly activity: unknown;
597
+ readonly activityId?: string;
598
+ readonly activityType: string;
599
+ readonly collectionSync?: string;
600
+ readonly traceContext: Readonly<Record<string, string>>;
466
601
  }
467
602
  interface OutboxMessage {
468
- type: "outbox";
469
- id: ReturnType<typeof crypto.randomUUID>;
470
- baseUrl: string;
471
- keys: SenderKeyJwkPair[];
472
- activity: unknown;
473
- activityId?: string;
474
- activityType: string;
475
- inbox: string;
476
- sharedInbox: boolean;
477
- started: string;
478
- attempt: number;
479
- headers: Record<string, string>;
480
- traceContext: Record<string, string>;
603
+ readonly type: "outbox";
604
+ readonly id: ReturnType<typeof crypto.randomUUID>;
605
+ readonly baseUrl: string;
606
+ readonly keys: readonly SenderKeyJwkPair[];
607
+ readonly activity: unknown;
608
+ readonly activityId?: string;
609
+ readonly activityType: string;
610
+ readonly inbox: string;
611
+ readonly sharedInbox: boolean;
612
+ readonly started: string;
613
+ readonly attempt: number;
614
+ readonly headers: Readonly<Record<string, string>>;
615
+ readonly traceContext: Readonly<Record<string, string>>;
481
616
  }
482
617
  interface InboxMessage {
483
- type: "inbox";
484
- id: ReturnType<typeof crypto.randomUUID>;
485
- baseUrl: string;
486
- activity: unknown;
487
- started: string;
488
- attempt: number;
489
- identifier: string | null;
490
- traceContext: Record<string, string>;
618
+ readonly type: "inbox";
619
+ readonly id: ReturnType<typeof crypto.randomUUID>;
620
+ readonly baseUrl: string;
621
+ readonly activity: unknown;
622
+ readonly started: string;
623
+ readonly attempt: number;
624
+ readonly identifier: string | null;
625
+ readonly traceContext: Readonly<Record<string, string>>;
491
626
  }
492
627
  //#endregion
493
628
  //#region src/federation/retry.d.ts
@@ -571,19 +706,19 @@ interface FederationQueueOptions {
571
706
  * The message queue for incoming activities. If not provided, incoming
572
707
  * activities will not be queued and will be processed immediately.
573
708
  */
574
- inbox?: MessageQueue;
709
+ readonly inbox?: MessageQueue;
575
710
  /**
576
711
  * The message queue for outgoing activities. If not provided, outgoing
577
712
  * activities will not be queued and will be sent immediately.
578
713
  */
579
- outbox?: MessageQueue;
714
+ readonly outbox?: MessageQueue;
580
715
  /**
581
716
  * The message queue for fanning out outgoing activities. If not provided,
582
717
  * outgoing activities will not be fanned out in the background, but will be
583
718
  * fanned out immediately, which causes slow response times on
584
719
  * {@link Context.sendActivity} calls.
585
720
  */
586
- fanout?: MessageQueue;
721
+ readonly fanout?: MessageQueue;
587
722
  }
588
723
  /**
589
724
  * Prefixes for namespacing keys in the Deno KV store.
@@ -594,18 +729,18 @@ interface FederationKvPrefixes {
594
729
  * processed or not.
595
730
  * @default `["_fedify", "activityIdempotence"]`
596
731
  */
597
- activityIdempotence: KvKey;
732
+ readonly activityIdempotence: KvKey;
598
733
  /**
599
734
  * The key prefix used for storing remote JSON-LD documents.
600
735
  * @default `["_fedify", "remoteDocument"]`
601
736
  */
602
- remoteDocument: KvKey;
737
+ readonly remoteDocument: KvKey;
603
738
  /**
604
739
  * The key prefix used for caching public keys.
605
740
  * @default `["_fedify", "publicKey"]`
606
741
  * @since 0.12.0
607
742
  */
608
- publicKey: KvKey;
743
+ readonly publicKey: KvKey;
609
744
  /**
610
745
  * The key prefix used for caching HTTP Message Signatures specs.
611
746
  * The cached spec is used to reduce the number of requests to make signed
@@ -613,7 +748,7 @@ interface FederationKvPrefixes {
613
748
  * @default `["_fedify", "httpMessageSignaturesSpec"]`
614
749
  * @since 1.6.0
615
750
  */
616
- httpMessageSignaturesSpec: KvKey;
751
+ readonly httpMessageSignaturesSpec: KvKey;
617
752
  }
618
753
  /**
619
754
  * Options for {@link CreateFederationOptions.origin} when it is not a string.
@@ -2027,7 +2162,7 @@ interface InboxContext<TContextData> extends Context<TContextData> {
2027
2162
  * inbox, it is `null`.
2028
2163
  * @since 1.2.0
2029
2164
  */
2030
- recipient: string | null;
2165
+ readonly recipient: string | null;
2031
2166
  /**
2032
2167
  * Creates a new context with the same properties as this one,
2033
2168
  * but with the given data.
@@ -2217,7 +2352,7 @@ interface SendActivityOptions {
2217
2352
  *
2218
2353
  * @since 0.9.0
2219
2354
  */
2220
- excludeBaseUris?: URL[];
2355
+ readonly excludeBaseUris?: readonly URL[];
2221
2356
  }
2222
2357
  /**
2223
2358
  * Options for {@link Context.sendActivity} method when sending to a collection.
@@ -2300,15 +2435,15 @@ interface ActorKeyPair extends CryptoKeyPair {
2300
2435
  /**
2301
2436
  * The URI of the public key, which is used for verifying HTTP Signatures.
2302
2437
  */
2303
- keyId: URL;
2438
+ readonly keyId: URL;
2304
2439
  /**
2305
2440
  * A {@link CryptographicKey} instance of the public key.
2306
2441
  */
2307
- cryptographicKey: CryptographicKey;
2442
+ readonly cryptographicKey: CryptographicKey;
2308
2443
  /**
2309
2444
  * A {@link Multikey} instance of the public key.
2310
2445
  */
2311
- multikey: Multikey;
2446
+ readonly multikey: Multikey;
2312
2447
  }
2313
2448
  //#endregion
2314
- 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, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, Message, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, Rfc6570Expression, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
2449
+ 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 };