@fedify/fedify 2.0.0-dev.1561 → 2.0.0-dev.158

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 (297) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +40 -18
  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-C8mpxJD3.js → builder-BnWso6VP.js} +15 -8
  6. package/dist/chunk-DqRYRqnO.cjs +34 -0
  7. package/dist/client-94iWEfQa.d.cts +222 -0
  8. package/dist/{client-DF8anIB5.d.ts → client-BivSNrEg.d.ts} +3 -75
  9. package/dist/{client-DI0GS_3p.js → client-CgMTXmAD.js} +3 -22
  10. package/dist/compat/mod.cjs +10 -0
  11. package/dist/compat/mod.d.cts +7 -0
  12. package/dist/compat/mod.d.ts +6 -12
  13. package/dist/compat/mod.js +5 -5
  14. package/dist/compat/transformers.test.js +21 -20
  15. package/dist/compat-DmDDELst.cjs +4 -0
  16. package/dist/compat-nxUqe4Z-.js +4 -0
  17. package/dist/context-Bns6uTJq.js +109 -0
  18. package/dist/{context-9gCpIkiz.d.ts → context-CYZ2i00R.d.ts} +321 -129
  19. package/dist/context-D2MrtLch.d.cts +2447 -0
  20. package/dist/deno-CQV858ip.js +117 -0
  21. package/dist/{testing-DsuOHyiF.js → dist-B5f6a8Tt.js} +90 -111
  22. package/dist/{authdocloader-CN-tWO4K.js → docloader-Csc8gQux.js} +17 -8
  23. package/dist/{esm-CtgLSZwm.js → esm-DGl7uK1r.js} +32 -17
  24. package/dist/federation/builder.test.js +12 -13
  25. package/dist/federation/collection.test.js +6 -9
  26. package/dist/federation/handler.test.js +115 -148
  27. package/dist/federation/idempotency.test.js +202 -0
  28. package/dist/federation/inbox.test.js +5 -6
  29. package/dist/federation/keycache.test.js +4 -5
  30. package/dist/federation/kv.test.js +61 -9
  31. package/dist/federation/middleware.test.js +311 -131
  32. package/dist/federation/mod.cjs +25 -0
  33. package/dist/federation/mod.d.cts +7 -0
  34. package/dist/federation/mod.d.ts +7 -13
  35. package/dist/federation/mod.js +11 -16
  36. package/dist/federation/mq.test.js +9 -10
  37. package/dist/federation/negotiation.test.js +25 -0
  38. package/dist/federation/retry.test.js +2 -4
  39. package/dist/federation/router.test.js +6 -8
  40. package/dist/federation/send.test.js +55 -15
  41. package/dist/{webfinger/handler.test.js → federation/webfinger.test.js} +27 -26
  42. package/dist/federation-B431K2gm.cjs +266 -0
  43. package/dist/{federation-CMX7WzeL.js → federation-BbZwNNWj.js} +31 -9
  44. package/dist/{http-B_tXwHIe.js → http-BizGfAHd.js} +375 -15
  45. package/dist/{http-DTJgsmYR.js → http-CXG5ZFqn.js} +4 -3
  46. package/dist/http-ClB3pLcL.d.cts +253 -0
  47. package/dist/{http-DqSNLFNY.d.ts → http-DLBDPal9.d.ts} +2 -2
  48. package/dist/http-DbACqYyq.cjs +1222 -0
  49. package/dist/{inbox-Dx8EjUbq.js → inbox-B7ybw6fk.js} +25 -7
  50. package/dist/{key-olV6hEgm.js → key-C27c_yHR.js} +3 -2
  51. package/dist/{keycache-CExtp4Yl.js → keycache-DRxpZ5r9.js} +1 -1
  52. package/dist/{keys-O0-r0NpJ.js → keys-ZbcByPg9.js} +2 -1
  53. package/dist/{kv-C7sopW2E.d.ts → kv-CtOmTRNc.d.ts} +30 -1
  54. package/dist/kv-D8q9fLkA.d.cts +110 -0
  55. package/dist/{kv-CRZrzyXm.js → kv-QzKcOQgP.js} +22 -0
  56. package/dist/kv-cache-B7dwGQFA.js +122 -0
  57. package/dist/kv-cache-BEeqyGER.js +107 -0
  58. package/dist/kv-cache-rPOPQdj9.cjs +134 -0
  59. package/dist/{ld-DR6b11xZ.js → ld-D_Jn1aGa.js} +6 -4
  60. package/dist/middleware-BVqYHBWm.cjs +12 -0
  61. package/dist/{middleware-GT7W03qw.js → middleware-BjS6_zkf.js} +272 -271
  62. package/dist/middleware-CAJR7KGo.cjs +4242 -0
  63. package/dist/{middleware-CUw3Ys9y.js → middleware-ClkhKNXU.js} +230 -327
  64. package/dist/middleware-DSz6sI16.js +26 -0
  65. package/dist/middleware-OcaFHSk8.js +12 -0
  66. package/dist/mod-BrS8tiad.d.cts +266 -0
  67. package/dist/mod-C81L6_lQ.d.cts +1 -0
  68. package/dist/mod-CJgbdSqb.d.ts +109 -0
  69. package/dist/mod-CNNTHyBC.d.cts +80 -0
  70. package/dist/mod-CS-MS7gZ.d.cts +62 -0
  71. package/dist/{mod-Bqxcp7eN.d.ts → mod-D_cmv2il.d.ts} +4 -4
  72. package/dist/mod-DcPRcifg.d.cts +107 -0
  73. package/dist/mod-DqFSzJA0.d.ts +64 -0
  74. package/dist/{mod-Drmz72EK.d.ts → mod-jOa7W503.d.ts} +3 -3
  75. package/dist/mod.cjs +55 -0
  76. package/dist/mod.d.cts +11 -0
  77. package/dist/mod.d.ts +11 -17
  78. package/dist/mod.js +15 -21
  79. package/dist/negotiation-5NPJL6zp.js +71 -0
  80. package/dist/nodeinfo/client.test.js +29 -111
  81. package/dist/nodeinfo/handler.test.js +26 -26
  82. package/dist/nodeinfo/mod.cjs +10 -0
  83. package/dist/nodeinfo/mod.d.cts +3 -0
  84. package/dist/nodeinfo/mod.d.ts +3 -5
  85. package/dist/nodeinfo/mod.js +6 -7
  86. package/dist/nodeinfo/types.test.js +7 -15
  87. package/dist/nodeinfo-BlLsRSiT.js +4 -0
  88. package/dist/nodeinfo-DuMYTpbZ.cjs +4 -0
  89. package/dist/otel/exporter.test.js +899 -0
  90. package/dist/otel/mod.cjs +262 -0
  91. package/dist/otel/mod.d.cts +230 -0
  92. package/dist/otel/mod.d.ts +232 -0
  93. package/dist/otel/mod.js +261 -0
  94. package/dist/{owner-CQPnQVtf.d.ts → owner-BgI8C-VY.d.ts} +2 -3
  95. package/dist/owner-C-zfmVAD.d.cts +66 -0
  96. package/dist/{owner-BtFz-dZ-.js → owner-Dc8rUE-H.js} +45 -8
  97. package/dist/{proof-DsZjVJ0G.js → proof-BdNM3iSl.js} +4 -3
  98. package/dist/proof-Bx2JqJ-D.cjs +709 -0
  99. package/dist/{proof-DKDM7T5F.js → proof-CTYnbjx5.js} +53 -17
  100. package/dist/router-D9eI0s4b.js +118 -0
  101. package/dist/{send-s0_EjVhZ.js → send-DBRRqVMa.js} +9 -4
  102. package/dist/sig/http.test.js +12 -14
  103. package/dist/sig/key.test.js +9 -11
  104. package/dist/sig/ld.test.js +8 -10
  105. package/dist/sig/mod.cjs +26 -0
  106. package/dist/sig/mod.d.cts +4 -0
  107. package/dist/sig/mod.d.ts +3 -7
  108. package/dist/sig/mod.js +6 -10
  109. package/dist/sig/owner.test.js +33 -12
  110. package/dist/sig/proof.test.js +13 -14
  111. package/dist/sig-CwuONEzF.js +4 -0
  112. package/dist/sig-DeXX2xnj.cjs +4 -0
  113. package/dist/testing/mod.d.ts +180 -6946
  114. package/dist/testing/mod.js +4 -4
  115. package/dist/transformers-BjBg6Lag.cjs +116 -0
  116. package/dist/{transformers-Dna8Fg7k.js → transformers-N_ip_y4P.js} +5 -5
  117. package/dist/{types-BIgY6c-l.js → types-BEdCLHqP.js} +1 -3
  118. package/dist/types-Q-qkJXBV.cjs +315 -0
  119. package/dist/{types-CGB4mJU6.js → types-hKTi53FO.js} +8 -169
  120. package/dist/{runtime/authdocloader.test.js → utils/docloader.test.js} +13 -15
  121. package/dist/utils/kv-cache.test.js +211 -0
  122. package/dist/utils/mod.cjs +10 -0
  123. package/dist/utils/mod.d.cts +4 -0
  124. package/dist/utils/mod.d.ts +6 -0
  125. package/dist/utils/mod.js +9 -0
  126. package/dist/utils-Db0ZmjcD.cjs +4 -0
  127. package/dist/utils-Wranxuoe.js +4 -0
  128. package/package.json +69 -55
  129. package/dist/actor-C22bXuuC.d.ts +0 -130
  130. package/dist/actor-Qc3Ee6k1.js +0 -37311
  131. package/dist/actor-mhluotIb.js +0 -146
  132. package/dist/assert_throws-BOO88avQ.js +0 -39
  133. package/dist/authdocloader-Dp9WS-1G.js +0 -52
  134. package/dist/compat-Bb5myD13.js +0 -4
  135. package/dist/denokv-Bv33Xxea.js +0 -57
  136. package/dist/docloader-CxWcuWqQ.d.ts +0 -221
  137. package/dist/docloader-DIjo5mkd.js +0 -4615
  138. package/dist/fixtures/activitypub.academy/users/brauca_darradiul.json +0 -83
  139. package/dist/fixtures/example.com/announce.json +0 -6
  140. package/dist/fixtures/example.com/collection.json +0 -19
  141. package/dist/fixtures/example.com/create.json +0 -6
  142. package/dist/fixtures/example.com/cross-origin-actor.json +0 -6
  143. package/dist/fixtures/example.com/hong-gildong.json +0 -11
  144. package/dist/fixtures/example.com/invite.json +0 -7
  145. package/dist/fixtures/example.com/key.json +0 -7
  146. package/dist/fixtures/example.com/key2.json +0 -6
  147. package/dist/fixtures/example.com/object.json +0 -6
  148. package/dist/fixtures/example.com/orderedcollectionpage.json +0 -24
  149. package/dist/fixtures/example.com/paged/a.json +0 -13
  150. package/dist/fixtures/example.com/paged/b.json +0 -16
  151. package/dist/fixtures/example.com/paged-collection.json +0 -6
  152. package/dist/fixtures/example.com/person.json +0 -22
  153. package/dist/fixtures/example.com/person2.json +0 -40
  154. package/dist/fixtures/example.com/test.json +0 -5
  155. package/dist/fixtures/example.com/users/handle.json +0 -16
  156. package/dist/fixtures/example.com/wrong-type.json +0 -3
  157. package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +0 -24
  158. package/dist/fixtures/remote.domain/users/bob.json +0 -20
  159. package/dist/fixtures/server.example/users/alice.json +0 -20
  160. package/dist/fixtures/w3id.org/identity/v1.json +0 -152
  161. package/dist/fixtures/w3id.org/security/data-integrity/v1.json +0 -74
  162. package/dist/fixtures/w3id.org/security/multikey/v1.json +0 -35
  163. package/dist/fixtures/w3id.org/security/v1.json +0 -50
  164. package/dist/fixtures/wizard.casa/users/hongminhee.json +0 -69
  165. package/dist/fixtures/www.w3.org/ns/activitystreams.json +0 -379
  166. package/dist/fixtures/www.w3.org/ns/did/v1.json +0 -58
  167. package/dist/key-CGjkGPkw.js +0 -260
  168. package/dist/key-CaFAQSic.js +0 -10
  169. package/dist/key-DcnCet42.js +0 -10
  170. package/dist/lookup-B8Ld9P9G.js +0 -131
  171. package/dist/lookup-IyAhz9I6.js +0 -322
  172. package/dist/middleware-Bx6Sgkth.js +0 -26
  173. package/dist/middleware-DdRB1d4s.js +0 -17
  174. package/dist/mod-Cxt4Kpf6.d.ts +0 -291
  175. package/dist/mod-DBzN0aCM.d.ts +0 -115
  176. package/dist/mod-TFoH2Ql8.d.ts +0 -104
  177. package/dist/mod-g0xFzAP9.d.ts +0 -2
  178. package/dist/mq-CRGm1e_F.d.ts +0 -143
  179. package/dist/nodeinfo/semver.test.js +0 -143
  180. package/dist/nodeinfo-CyEbLjHs.js +0 -4
  181. package/dist/runtime/docloader.test.js +0 -522
  182. package/dist/runtime/key.test.js +0 -103
  183. package/dist/runtime/langstr.test.js +0 -39
  184. package/dist/runtime/mod.d.ts +0 -8
  185. package/dist/runtime/mod.js +0 -13
  186. package/dist/runtime/multibase/multibase.test.d.ts +0 -3
  187. package/dist/runtime/multibase/multibase.test.js +0 -358
  188. package/dist/runtime/url.test.d.ts +0 -3
  189. package/dist/runtime/url.test.js +0 -45
  190. package/dist/runtime-BSkOVUWM.js +0 -4
  191. package/dist/semver-dArNLkR9.js +0 -149
  192. package/dist/sig-BXJO--F9.js +0 -4
  193. package/dist/src/vocab/accept.yaml +0 -15
  194. package/dist/src/vocab/activity.yaml +0 -98
  195. package/dist/src/vocab/add.yaml +0 -16
  196. package/dist/src/vocab/announce.yaml +0 -30
  197. package/dist/src/vocab/application.yaml +0 -324
  198. package/dist/src/vocab/arrive.yaml +0 -15
  199. package/dist/src/vocab/article.yaml +0 -46
  200. package/dist/src/vocab/audio.yaml +0 -11
  201. package/dist/src/vocab/block.yaml +0 -16
  202. package/dist/src/vocab/chatmessage.yaml +0 -50
  203. package/dist/src/vocab/collection.yaml +0 -154
  204. package/dist/src/vocab/collectionpage.yaml +0 -55
  205. package/dist/src/vocab/create.yaml +0 -28
  206. package/dist/src/vocab/dataintegrityproof.yaml +0 -56
  207. package/dist/src/vocab/delete.yaml +0 -27
  208. package/dist/src/vocab/didservice.yaml +0 -22
  209. package/dist/src/vocab/dislike.yaml +0 -14
  210. package/dist/src/vocab/document.yaml +0 -31
  211. package/dist/src/vocab/emoji.yaml +0 -12
  212. package/dist/src/vocab/emojireact.yaml +0 -17
  213. package/dist/src/vocab/endpoints.yaml +0 -85
  214. package/dist/src/vocab/event.yaml +0 -11
  215. package/dist/src/vocab/export.yaml +0 -9
  216. package/dist/src/vocab/flag.yaml +0 -15
  217. package/dist/src/vocab/follow.yaml +0 -19
  218. package/dist/src/vocab/group.yaml +0 -324
  219. package/dist/src/vocab/hashtag.yaml +0 -14
  220. package/dist/src/vocab/ignore.yaml +0 -14
  221. package/dist/src/vocab/image.yaml +0 -9
  222. package/dist/src/vocab/intransitiveactivity.yaml +0 -15
  223. package/dist/src/vocab/invite.yaml +0 -14
  224. package/dist/src/vocab/join.yaml +0 -14
  225. package/dist/src/vocab/key.yaml +0 -28
  226. package/dist/src/vocab/leave.yaml +0 -14
  227. package/dist/src/vocab/like.yaml +0 -16
  228. package/dist/src/vocab/link.yaml +0 -101
  229. package/dist/src/vocab/listen.yaml +0 -12
  230. package/dist/src/vocab/mention.yaml +0 -9
  231. package/dist/src/vocab/move.yaml +0 -15
  232. package/dist/src/vocab/multikey.yaml +0 -36
  233. package/dist/src/vocab/note.yaml +0 -48
  234. package/dist/src/vocab/object.yaml +0 -404
  235. package/dist/src/vocab/offer.yaml +0 -15
  236. package/dist/src/vocab/orderedcollection.yaml +0 -39
  237. package/dist/src/vocab/orderedcollectionpage.yaml +0 -50
  238. package/dist/src/vocab/organization.yaml +0 -324
  239. package/dist/src/vocab/page.yaml +0 -11
  240. package/dist/src/vocab/person.yaml +0 -324
  241. package/dist/src/vocab/place.yaml +0 -75
  242. package/dist/src/vocab/profile.yaml +0 -26
  243. package/dist/src/vocab/propertyvalue.yaml +0 -32
  244. package/dist/src/vocab/question.yaml +0 -103
  245. package/dist/src/vocab/read.yaml +0 -13
  246. package/dist/src/vocab/reject.yaml +0 -14
  247. package/dist/src/vocab/relationship.yaml +0 -52
  248. package/dist/src/vocab/remove.yaml +0 -14
  249. package/dist/src/vocab/service.yaml +0 -324
  250. package/dist/src/vocab/source.yaml +0 -26
  251. package/dist/src/vocab/tentativeaccept.yaml +0 -14
  252. package/dist/src/vocab/tentativereject.yaml +0 -14
  253. package/dist/src/vocab/tombstone.yaml +0 -24
  254. package/dist/src/vocab/travel.yaml +0 -16
  255. package/dist/src/vocab/undo.yaml +0 -26
  256. package/dist/src/vocab/update.yaml +0 -58
  257. package/dist/src/vocab/video.yaml +0 -11
  258. package/dist/src/vocab/view.yaml +0 -13
  259. package/dist/testing/docloader.test.js +0 -24
  260. package/dist/type-BMGxK0zE.js +0 -42006
  261. package/dist/vocab/actor.test.d.ts +0 -3
  262. package/dist/vocab/actor.test.js +0 -5965
  263. package/dist/vocab/lookup.test.d.ts +0 -3
  264. package/dist/vocab/lookup.test.js +0 -206
  265. package/dist/vocab/mod.d.ts +0 -8
  266. package/dist/vocab/mod.js +0 -10
  267. package/dist/vocab/schema.yaml +0 -247
  268. package/dist/vocab/type.test.d.ts +0 -3
  269. package/dist/vocab/type.test.js +0 -25
  270. package/dist/vocab/vocab.test.d.ts +0 -3
  271. package/dist/vocab/vocab.test.js +0 -3363
  272. package/dist/vocab-CXuKLJjd.js +0 -246
  273. package/dist/vocab-SOE1ifCr.d.ts +0 -14634
  274. package/dist/webfinger/handler.test.d.ts +0 -3
  275. package/dist/webfinger/lookup.test.d.ts +0 -3
  276. package/dist/webfinger/lookup.test.js +0 -195
  277. package/dist/webfinger/mod.d.ts +0 -6
  278. package/dist/webfinger/mod.js +0 -9
  279. package/dist/webfinger-C3GIyXIg.js +0 -4
  280. package/dist/x/cfworkers.d.ts +0 -61
  281. package/dist/x/cfworkers.js +0 -98
  282. package/dist/x/cfworkers.test.d.ts +0 -3
  283. package/dist/x/cfworkers.test.js +0 -179
  284. package/dist/x/hono.d.ts +0 -56
  285. package/dist/x/hono.js +0 -60
  286. package/dist/x/sveltekit.d.ts +0 -48
  287. package/dist/x/sveltekit.js +0 -68
  288. /package/dist/{assert_not_equals-f3m3epl3.js → assert_not_equals-C80BG-_5.js} +0 -0
  289. /package/dist/{collection-CSzG2j1P.js → collection-CcnIw1qY.js} +0 -0
  290. /package/dist/{nodeinfo/semver.test.d.ts → federation/idempotency.test.d.ts} +0 -0
  291. /package/dist/{runtime/authdocloader.test.d.ts → federation/negotiation.test.d.ts} +0 -0
  292. /package/dist/{runtime/docloader.test.d.ts → federation/webfinger.test.d.ts} +0 -0
  293. /package/dist/{mod-1pDWKvUL.d.ts → mod-1E3W847c.d.ts} +0 -0
  294. /package/dist/{runtime/key.test.d.ts → otel/exporter.test.d.ts} +0 -0
  295. /package/dist/{std__assert-X-_kMxKM.js → std__assert-DWivtrGR.js} +0 -0
  296. /package/dist/{testing → utils}/docloader.test.d.ts +0 -0
  297. /package/dist/{runtime/langstr.test.d.ts → utils/kv-cache.test.d.ts} +0 -0
@@ -0,0 +1,26 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+ globalThis.addEventListener = () => {};
5
+
6
+ import "./deno-CQV858ip.js";
7
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-ClkhKNXU.js";
8
+ import "./client-CgMTXmAD.js";
9
+ import "./router-D9eI0s4b.js";
10
+ import "./types-BEdCLHqP.js";
11
+ import "./key-C27c_yHR.js";
12
+ import "./http-CXG5ZFqn.js";
13
+ import "./ld-D_Jn1aGa.js";
14
+ import "./owner-Dc8rUE-H.js";
15
+ import "./proof-BdNM3iSl.js";
16
+ import "./docloader-Csc8gQux.js";
17
+ import "./kv-cache-BEeqyGER.js";
18
+ import "./inbox-B7ybw6fk.js";
19
+ import "./builder-BnWso6VP.js";
20
+ import "./collection-CcnIw1qY.js";
21
+ import "./keycache-DRxpZ5r9.js";
22
+ import "./negotiation-5NPJL6zp.js";
23
+ import "./retry-D4GJ670a.js";
24
+ import "./send-DBRRqVMa.js";
25
+
26
+ export { FederationImpl };
@@ -0,0 +1,12 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+
5
+ import "./transformers-N_ip_y4P.js";
6
+ import "./http-BizGfAHd.js";
7
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-BjS6_zkf.js";
8
+ import "./proof-CTYnbjx5.js";
9
+ import "./types-hKTi53FO.js";
10
+ import "./kv-cache-B7dwGQFA.js";
11
+
12
+ export { FederationImpl };
@@ -0,0 +1,266 @@
1
+ import { KeyCache } from "./http-ClB3pLcL.cjs";
2
+ import { CryptographicKey, DataIntegrityProof, Multikey, Object as Object$1 } from "@fedify/vocab";
3
+ import { DocumentLoader } from "@fedify/vocab-runtime";
4
+ import { TracerProvider } from "@opentelemetry/api";
5
+
6
+ //#region src/sig/ld.d.ts
7
+ /**
8
+ * A signature of a JSON-LD document.
9
+ * @since 1.0.0
10
+ */
11
+ interface Signature {
12
+ "@context"?: "https://w3id.org/identity/v1";
13
+ type: "RsaSignature2017";
14
+ id?: string;
15
+ creator: string;
16
+ created: string;
17
+ signatureValue: string;
18
+ }
19
+ /**
20
+ * Attaches a LD signature to the given JSON-LD document.
21
+ * @param jsonLd The JSON-LD document to attach the signature to. It is not
22
+ * modified.
23
+ * @param signature The signature to attach.
24
+ * @returns The JSON-LD document with the attached signature.
25
+ * @throws {TypeError} If the input document is not a valid JSON-LD document.
26
+ * @since 1.0.0
27
+ */
28
+ declare function attachSignature(jsonLd: unknown, signature: Signature): {
29
+ signature: Signature;
30
+ };
31
+ /**
32
+ * Options for creating Linked Data Signatures.
33
+ * @since 1.0.0
34
+ */
35
+ interface CreateSignatureOptions {
36
+ /**
37
+ * The context loader for loading remote JSON-LD contexts.
38
+ */
39
+ contextLoader?: DocumentLoader;
40
+ /**
41
+ * The time when the signature was created. If not specified, the current
42
+ * time will be used.
43
+ */
44
+ created?: Temporal.Instant;
45
+ }
46
+ /**
47
+ * Creates a LD signature for the given JSON-LD document.
48
+ * @param jsonLd The JSON-LD document to sign.
49
+ * @param privateKey The private key to sign the document.
50
+ * @param keyId The ID of the public key that corresponds to the private key.
51
+ * @param options Additional options for creating the signature.
52
+ * See also {@link CreateSignatureOptions}.
53
+ * @return The created signature.
54
+ * @throws {TypeError} If the private key is invalid or unsupported.
55
+ * @since 1.0.0
56
+ */
57
+ declare function createSignature(jsonLd: unknown, privateKey: CryptoKey, keyId: URL, {
58
+ contextLoader,
59
+ created
60
+ }?: CreateSignatureOptions): Promise<Signature>;
61
+ /**
62
+ * Options for signing JSON-LD documents.
63
+ * @since 1.0.0
64
+ */
65
+ interface SignJsonLdOptions extends CreateSignatureOptions {
66
+ /**
67
+ * The OpenTelemetry tracer provider for tracing the signing process.
68
+ * If omitted, the global tracer provider is used.
69
+ * @since 1.3.0
70
+ */
71
+ tracerProvider?: TracerProvider;
72
+ }
73
+ /**
74
+ * Signs the given JSON-LD document with the private key and returns the signed
75
+ * JSON-LD document.
76
+ * @param jsonLd The JSON-LD document to sign.
77
+ * @param privateKey The private key to sign the document.
78
+ * @param keyId The key ID to use in the signature. It will be used by the
79
+ * verifier to fetch the corresponding public key.
80
+ * @param options Additional options for signing the document.
81
+ * See also {@link SignJsonLdOptions}.
82
+ * @returns The signed JSON-LD document.
83
+ * @throws {TypeError} If the private key is invalid or unsupported.
84
+ * @since 1.0.0
85
+ */
86
+ declare function signJsonLd(jsonLd: unknown, privateKey: CryptoKey, keyId: URL, options: SignJsonLdOptions): Promise<{
87
+ signature: Signature;
88
+ }>;
89
+ /**
90
+ * Detaches Linked Data Signatures from the given JSON-LD document.
91
+ * @param jsonLd The JSON-LD document to modify.
92
+ * @returns The modified JSON-LD document. If the input document does not
93
+ * contain a signature, the original document is returned.
94
+ * @since 1.0.0
95
+ */
96
+ declare function detachSignature(jsonLd: unknown): unknown;
97
+ /**
98
+ * Options for verifying Linked Data Signatures.
99
+ * @since 1.0.0
100
+ */
101
+ interface VerifySignatureOptions {
102
+ /**
103
+ * The document loader to use for fetching the public key.
104
+ */
105
+ documentLoader?: DocumentLoader;
106
+ /**
107
+ * The context loader to use for JSON-LD context retrieval.
108
+ */
109
+ contextLoader?: DocumentLoader;
110
+ /**
111
+ * The key cache to use for caching public keys.
112
+ */
113
+ keyCache?: KeyCache;
114
+ /**
115
+ * The OpenTelemetry tracer provider for tracing the verification process.
116
+ * If omitted, the global tracer provider is used.
117
+ * @since 1.3.0
118
+ */
119
+ tracerProvider?: TracerProvider;
120
+ }
121
+ /**
122
+ * Verifies Linked Data Signatures of the given JSON-LD document.
123
+ * @param jsonLd The JSON-LD document to verify.
124
+ * @param options Options for verifying the signature.
125
+ * @returns The public key that signed the document or `null` if the signature
126
+ * is invalid or the key is not found.
127
+ * @since 1.0.0
128
+ */
129
+ declare function verifySignature(jsonLd: unknown, options?: VerifySignatureOptions): Promise<CryptographicKey | null>;
130
+ /**
131
+ * Options for verifying JSON-LD documents.
132
+ */
133
+ interface VerifyJsonLdOptions extends VerifySignatureOptions {}
134
+ /**
135
+ * Verify the authenticity of the given JSON-LD document using Linked Data
136
+ * Signatures. If the document is signed, this function verifies the signature
137
+ * and checks if the document is attributed to the owner of the public key.
138
+ * If the document is not signed, this function returns `false`.
139
+ * @param jsonLd The JSON-LD document to verify.
140
+ * @param options Options for verifying the document.
141
+ * @returns `true` if the document is authentic; `false` otherwise.
142
+ */
143
+ declare function verifyJsonLd(jsonLd: unknown, options?: VerifyJsonLdOptions): Promise<boolean>;
144
+ //#endregion
145
+ //#region src/sig/proof.d.ts
146
+ /**
147
+ * Options for {@link createProof}.
148
+ * @since 0.10.0
149
+ */
150
+ interface CreateProofOptions {
151
+ /**
152
+ * The context loader for loading remote JSON-LD contexts.
153
+ */
154
+ contextLoader?: DocumentLoader;
155
+ /**
156
+ * The JSON-LD context to use for serializing the object to sign.
157
+ */
158
+ context?: string | Record<string, string> | (string | Record<string, string>)[];
159
+ /**
160
+ * The time when the proof was created. If not specified, the current time
161
+ * will be used.
162
+ */
163
+ created?: Temporal.Instant;
164
+ }
165
+ /**
166
+ * Creates a proof for the given object.
167
+ * @param object The object to create a proof for.
168
+ * @param privateKey The private key to sign the proof with.
169
+ * @param keyId The key ID to use in the proof. It will be used by the verifier.
170
+ * @param options Additional options. See also {@link CreateProofOptions}.
171
+ * @returns The created proof.
172
+ * @throws {TypeError} If the private key is invalid or unsupported.
173
+ * @since 0.10.0
174
+ */
175
+ declare function createProof(object: Object$1, privateKey: CryptoKey, keyId: URL, {
176
+ contextLoader,
177
+ context,
178
+ created
179
+ }?: CreateProofOptions): Promise<DataIntegrityProof>;
180
+ /**
181
+ * Options for {@link signObject}.
182
+ * @since 0.10.0
183
+ */
184
+ interface SignObjectOptions extends CreateProofOptions {
185
+ /**
186
+ * The document loader for loading remote JSON-LD documents.
187
+ */
188
+ documentLoader?: DocumentLoader;
189
+ /**
190
+ * The OpenTelemetry tracer provider. If omitted, the global tracer provider
191
+ * is used.
192
+ * @since 1.3.0
193
+ */
194
+ tracerProvider?: TracerProvider;
195
+ }
196
+ /**
197
+ * Signs the given object with the private key and returns the signed object.
198
+ * @param object The object to create a proof for.
199
+ * @param privateKey The private key to sign the proof with.
200
+ * @param keyId The key ID to use in the proof. It will be used by the verifier.
201
+ * @param options Additional options. See also {@link SignObjectOptions}.
202
+ * @returns The signed object.
203
+ * @throws {TypeError} If the private key is invalid or unsupported.
204
+ * @since 0.10.0
205
+ */
206
+ declare function signObject<T extends Object$1>(object: T, privateKey: CryptoKey, keyId: URL, options?: SignObjectOptions): Promise<T>;
207
+ /**
208
+ * Options for {@link verifyProof}.
209
+ * @since 0.10.0
210
+ */
211
+ interface VerifyProofOptions {
212
+ /**
213
+ * The context loader for loading remote JSON-LD contexts.
214
+ */
215
+ contextLoader?: DocumentLoader;
216
+ /**
217
+ * The document loader for loading remote JSON-LD documents.
218
+ */
219
+ documentLoader?: DocumentLoader;
220
+ /**
221
+ * The key cache to use for caching public keys.
222
+ * @since 0.12.0
223
+ */
224
+ keyCache?: KeyCache;
225
+ /**
226
+ * The OpenTelemetry tracer provider. If omitted, the global tracer provider
227
+ * is used.
228
+ * @since 1.3.0
229
+ */
230
+ tracerProvider?: TracerProvider;
231
+ }
232
+ /**
233
+ * Verifies the given proof for the object.
234
+ * @param jsonLd The JSON-LD object to verify the proof for. If it contains
235
+ * any proofs, they will be ignored.
236
+ * @param proof The proof to verify.
237
+ * @param options Additional options. See also {@link VerifyProofOptions}.
238
+ * @returns The public key that was used to sign the proof, or `null` if the
239
+ * proof is invalid.
240
+ * @since 0.10.0
241
+ */
242
+ declare function verifyProof(jsonLd: unknown, proof: DataIntegrityProof, options?: VerifyProofOptions): Promise<Multikey | null>;
243
+ /**
244
+ * Options for {@link verifyObject}.
245
+ * @since 0.10.0
246
+ */
247
+ interface VerifyObjectOptions extends VerifyProofOptions {}
248
+ /**
249
+ * Verifies the given object. It will verify all the proofs in the object,
250
+ * and succeed only if all the proofs are valid and all attributions and
251
+ * actors are authenticated by the proofs.
252
+ * @template T The type of the object to verify.
253
+ * @param cls The class of the object to verify. It must be a subclass of
254
+ * the {@link Object}.
255
+ * @param jsonLd The JSON-LD object to verify. It's assumed that the object
256
+ * is a compacted JSON-LD representation of a `T` with `@context`.
257
+ * @param options Additional options. See also {@link VerifyObjectOptions}.
258
+ * @returns The object if it's verified, or `null` if it's not.
259
+ * @throws {TypeError} If the object is invalid or unsupported.
260
+ * @since 0.10.0
261
+ */
262
+ declare function verifyObject<T extends Object$1>(cls: (new (...args: any[]) => T) & {
263
+ fromJsonLd(jsonLd: unknown, options: VerifyObjectOptions): Promise<T>;
264
+ }, jsonLd: unknown, options?: VerifyObjectOptions): Promise<T | null>;
265
+ //#endregion
266
+ export { CreateProofOptions, CreateSignatureOptions, SignJsonLdOptions, SignObjectOptions, VerifyJsonLdOptions, VerifyObjectOptions, VerifyProofOptions, VerifySignatureOptions, attachSignature, createProof, createSignature, detachSignature, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,109 @@
1
+ import { Temporal } from "@js-temporal/polyfill";
2
+ import { URLPattern } from "urlpattern-polyfill";
3
+ import { HttpMessageSignaturesSpecDeterminer } from "./http-DLBDPal9.js";
4
+ import { KvKey, KvStore } from "./kv-CtOmTRNc.js";
5
+ import { TracerProvider } from "@opentelemetry/api";
6
+ import { DocumentLoader, DocumentLoaderFactoryOptions } from "@fedify/vocab-runtime";
7
+
8
+ //#region src/utils/docloader.d.ts
9
+ /**
10
+ * Options for {@link getAuthenticatedDocumentLoader}.
11
+ * @see {@link getAuthenticatedDocumentLoader}
12
+ * @since 1.3.0
13
+ */
14
+ interface GetAuthenticatedDocumentLoaderOptions extends DocumentLoaderFactoryOptions {
15
+ /**
16
+ * An optional spec determiner for HTTP Message Signatures.
17
+ * It determines the spec to use for signing requests.
18
+ * It is used for double-knocking
19
+ * (see <https://swicg.github.io/activitypub-http-signature/#how-to-upgrade-supported-versions>).
20
+ * @since 1.6.0
21
+ */
22
+ specDeterminer?: HttpMessageSignaturesSpecDeterminer;
23
+ /**
24
+ * The OpenTelemetry tracer provider. If omitted, the global tracer provider
25
+ * is used.
26
+ * @since 1.6.0
27
+ */
28
+ tracerProvider?: TracerProvider;
29
+ }
30
+ /**
31
+ * Gets an authenticated {@link DocumentLoader} for the given identity.
32
+ * Note that an authenticated document loader intentionally does not cache
33
+ * the fetched documents.
34
+ * @param identity The identity to get the document loader for.
35
+ * The actor's key pair.
36
+ * @param options The options for the document loader.
37
+ * @returns The authenticated document loader.
38
+ * @throws {TypeError} If the key is invalid or unsupported.
39
+ * @since 0.4.0
40
+ */
41
+ declare function getAuthenticatedDocumentLoader(identity: {
42
+ keyId: URL;
43
+ privateKey: CryptoKey;
44
+ }, {
45
+ allowPrivateAddress,
46
+ userAgent,
47
+ specDeterminer,
48
+ tracerProvider
49
+ }?: GetAuthenticatedDocumentLoaderOptions): DocumentLoader;
50
+ /**
51
+ * A JSON-LD document loader that utilizes the browser's `fetch` API.
52
+ *
53
+ * This loader preloads the below frequently used contexts:
54
+ *
55
+ * - <https://www.w3.org/ns/activitystreams>
56
+ * - <https://w3id.org/security/v1>
57
+ * - <https://w3id.org/security/data-integrity/v1>
58
+ * - <https://www.w3.org/ns/did/v1>
59
+ * - <https://w3id.org/security/multikey/v1>
60
+ * - <https://purl.archive.org/socialweb/webfinger>
61
+ * - <http://schema.org/>
62
+ * @param url The URL of the document to load.
63
+ * @param allowPrivateAddress Whether to allow fetching private network
64
+ * addresses. Turned off by default.
65
+ * @returns The remote document.
66
+ * @deprecated Use {@link getDocumentLoader} instead.
67
+ */
68
+ //#endregion
69
+ //#region src/utils/kv-cache.d.ts
70
+ /**
71
+ * The parameters for {@link kvCache} function.
72
+ */
73
+ interface KvCacheParameters {
74
+ /**
75
+ * The document loader to decorate with a cache.
76
+ */
77
+ loader: DocumentLoader;
78
+ /**
79
+ * The key–value store to use for backing the cache.
80
+ */
81
+ kv: KvStore;
82
+ /**
83
+ * The key prefix to use for namespacing the cache.
84
+ * `["_fedify", "remoteDocument"]` by default.
85
+ */
86
+ prefix?: KvKey;
87
+ /**
88
+ * The per-URL cache rules in the array of `[urlPattern, duration]` pairs
89
+ * where `urlPattern` is either a string, a {@link URL}, or
90
+ * a {@link URLPattern} and `duration` is a {@link Temporal.DurationLike}.
91
+ * The `duration` is allowed to be at most 30 days.
92
+ *
93
+ * By default, 5 minutes for all URLs.
94
+ */
95
+ rules?: [string | URL | URLPattern, Temporal.Duration | Temporal.DurationLike][];
96
+ }
97
+ /**
98
+ * Decorates a {@link DocumentLoader} with a cache backed by a {@link Deno.Kv}.
99
+ * @param parameters The parameters for the cache.
100
+ * @returns The decorated document loader which is cache-enabled.
101
+ */
102
+ declare function kvCache({
103
+ loader,
104
+ kv,
105
+ prefix,
106
+ rules
107
+ }: KvCacheParameters): DocumentLoader;
108
+ //#endregion
109
+ export { getAuthenticatedDocumentLoader, kvCache };
@@ -0,0 +1,80 @@
1
+ import { ActivityTransformer, Context } from "./context-D2MrtLch.cjs";
2
+ import { Activity } from "@fedify/vocab";
3
+
4
+ //#region src/compat/transformers.d.ts
5
+
6
+ /**
7
+ * An activity transformer that assigns a new random ID to an activity if it
8
+ * does not already have one. This is useful for ensuring that activities
9
+ * have an ID before they are sent to other servers.
10
+ *
11
+ * The generated ID is an origin URI with a fragment which contains an activity
12
+ * type name with a random UUID:
13
+ *
14
+ * ```
15
+ * https://example.com/#Follow/12345678-1234-5678-1234-567812345678
16
+ * ```
17
+ *
18
+ * @template TContextData The type of the context data.
19
+ * @param activity The activity to assign an ID to.
20
+ * @param context The context of the activity.
21
+ * @return The activity with an ID assigned.
22
+ * @since 1.4.0
23
+ */
24
+ declare function autoIdAssigner<TContextData>(activity: Activity, context: Context<TContextData>): Activity;
25
+ /**
26
+ * An activity transformer that dehydrates the actor property of an activity
27
+ * so that it only contains the actor's URI. For example, suppose we have an
28
+ * activity like this:
29
+ *
30
+ * ```typescript
31
+ * import { Follow, Person } from "@fedify/vocab";
32
+ * const input = new Follow({
33
+ * id: new URL("http://example.com/activities/1"),
34
+ * actor: new Person({
35
+ * id: new URL("http://example.com/actors/1"),
36
+ * name: "Alice",
37
+ * preferredUsername: "alice",
38
+ * }),
39
+ * object: new Person({
40
+ * id: new URL("http://example.com/actors/2"),
41
+ * name: "Bob",
42
+ * preferredUsername: "bob",
43
+ * }),
44
+ * });
45
+ * ```
46
+ *
47
+ * The result of applying this transformer would be:
48
+ *
49
+ * ```typescript
50
+ * import { Follow, Person } from "@fedify/vocab";
51
+ * const output = new Follow({
52
+ * id: new URL("http://example.com/activities/1"),
53
+ * actor: new URL("http://example.com/actors/1"),
54
+ * object: new Person({
55
+ * id: new URL("http://example.com/actors/2"),
56
+ * name: "Bob",
57
+ * preferredUsername: "bob",
58
+ * }),
59
+ * });
60
+ * ```
61
+ *
62
+ * As some ActivityPub implementations like Threads fail to deal with inlined
63
+ * actor objects, this transformer can be used to work around this issue.
64
+ * @template TContextData The type of the context data.
65
+ * @param activity The activity to dehydrate the actor property of.
66
+ * @param context The context of the activity.
67
+ * @returns The dehydrated activity.
68
+ * @since 1.4.0
69
+ */
70
+ declare function actorDehydrator<TContextData>(activity: Activity, _context: Context<TContextData>): Activity;
71
+ /**
72
+ * Gets the default activity transformers that are applied to all outgoing
73
+ * activities.
74
+ * @template TContextData The type of the context data.
75
+ * @returns The default activity transformers.
76
+ * @since 1.4.0
77
+ */
78
+ declare function getDefaultActivityTransformers<TContextData>(): readonly ActivityTransformer<TContextData>[];
79
+ //#endregion
80
+ export { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers };
@@ -0,0 +1,62 @@
1
+ import { ActorAliasMapper, ActorDispatcher, ActorHandleMapper, RequestContext, WebFingerLinksDispatcher } from "./context-D2MrtLch.cjs";
2
+ import { Span, Tracer } from "@opentelemetry/api";
3
+
4
+ //#region src/federation/webfinger.d.ts
5
+ /**
6
+ * Parameters for {@link handleWebFinger}.
7
+ */
8
+ interface WebFingerHandlerParameters<TContextData> {
9
+ /**
10
+ * The request context.
11
+ */
12
+ context: RequestContext<TContextData>;
13
+ /**
14
+ * The canonical hostname of the server, if it's explicitly configured.
15
+ * @since 1.5.0
16
+ */
17
+ host?: string;
18
+ /**
19
+ * The callback for dispatching the actor.
20
+ */
21
+ actorDispatcher?: ActorDispatcher<TContextData>;
22
+ /**
23
+ * The callback for mapping a WebFinger username to the corresponding actor's
24
+ * internal identifier, or `null` if the username is not found.
25
+ * @since 0.15.0
26
+ */
27
+ actorHandleMapper?: ActorHandleMapper<TContextData>;
28
+ /**
29
+ * The callback for mapping a WebFinger query to the corresponding actor's
30
+ * internal identifier or username, or `null` if the query is not found.
31
+ * @since 1.4.0
32
+ */
33
+ actorAliasMapper?: ActorAliasMapper<TContextData>;
34
+ /**
35
+ * The callback for dispatching the Links of webFinger.
36
+ */
37
+ webFingerLinksDispatcher?: WebFingerLinksDispatcher<TContextData>;
38
+ /**
39
+ * The function to call when the actor is not found.
40
+ */
41
+ onNotFound(request: Request): Response | Promise<Response>;
42
+ /**
43
+ * The OpenTelemetry tracer.
44
+ * @since 1.3.0
45
+ */
46
+ tracer?: Tracer;
47
+ /**
48
+ * The span for the request.
49
+ * @since 1.3.0
50
+ */
51
+ span?: Span;
52
+ }
53
+ /**
54
+ * Handles a WebFinger request. You would not typically call this function
55
+ * directly, but instead use {@link Federation.fetch} method.
56
+ * @param request The WebFinger request to handle.
57
+ * @param parameters The parameters for handling the request.
58
+ * @returns The response to the request.
59
+ */
60
+ declare function handleWebFinger<TContextData>(request: Request, options: WebFingerHandlerParameters<TContextData>): Promise<Response>;
61
+ //#endregion
62
+ export { WebFingerHandlerParameters, handleWebFinger };
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { Activity } from "./vocab-SOE1ifCr.js";
4
- import { ActivityTransformer, Context } from "./context-9gCpIkiz.js";
3
+ import { ActivityTransformer, Context } from "./context-CYZ2i00R.js";
4
+ import { Activity } from "@fedify/vocab";
5
5
 
6
6
  //#region src/compat/transformers.d.ts
7
7
 
@@ -30,7 +30,7 @@ declare function autoIdAssigner<TContextData>(activity: Activity, context: Conte
30
30
  * activity like this:
31
31
  *
32
32
  * ```typescript
33
- * import { Follow, Person } from "@fedify/fedify/vocab";
33
+ * import { Follow, Person } from "@fedify/vocab";
34
34
  * const input = new Follow({
35
35
  * id: new URL("http://example.com/activities/1"),
36
36
  * actor: new Person({
@@ -49,7 +49,7 @@ declare function autoIdAssigner<TContextData>(activity: Activity, context: Conte
49
49
  * The result of applying this transformer would be:
50
50
  *
51
51
  * ```typescript
52
- * import { Follow, Person } from "@fedify/fedify/vocab";
52
+ * import { Follow, Person } from "@fedify/vocab";
53
53
  * const output = new Follow({
54
54
  * id: new URL("http://example.com/activities/1"),
55
55
  * actor: new URL("http://example.com/actors/1"),