@fedify/fedify 2.4.0-pr.936.41 → 2.5.0-dev.2271

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 (244) hide show
  1. package/README.md +50 -39
  2. package/dist/{assert-CJ1KXcvv.mjs → assert-D1Eafmd_.mjs} +1 -1
  3. package/dist/{assert_equals-BV7oLMxm.mjs → assert_equals-Z6IcEbWU.mjs} +2 -28
  4. package/dist/assert_exists-cffSpJ7X.mjs +28 -0
  5. package/dist/assert_false-CPdRnc3E.mjs +23 -0
  6. package/dist/assert_greater_or_equal-BlafOF4-.mjs +31 -0
  7. package/dist/{assert_instance_of-Q9KTBnrf.mjs → assert_instance_of-mrXWWNY-.mjs} +1 -1
  8. package/dist/{assert_not_equals-EPJPoxuf.mjs → assert_not_equals-CpPK2t89.mjs} +2 -1
  9. package/dist/assert_rejects-CTptdYck.mjs +39 -0
  10. package/dist/{assert_strict_equals-Ec20AUwa.mjs → assert_strict_equals-CYvBmkpC.mjs} +2 -1
  11. package/dist/{assert_throws-NiFfqbnH.mjs → assert_throws-BYITOvPO.mjs} +2 -1
  12. package/dist/assertion_error-B-cx0fFA.mjs +31 -0
  13. package/dist/audience-CHQ-FlLD.mjs +95 -0
  14. package/dist/{builder-DonuxRl_.mjs → builder-Bda6LK7A.mjs} +169 -14
  15. package/dist/{circuit-breaker-CBGyz5F7.mjs → circuit-breaker-XJ53md4S.mjs} +224 -17
  16. package/dist/circuit-breaker-test-utils-DW6YC_Pe.mjs +14 -0
  17. package/dist/{client-CjF5IYQS.mjs → client-CEnNz8O7.mjs} +144 -8
  18. package/dist/{codec-BBga-FWI.mjs → codec-C6rTrpIp.mjs} +26 -3
  19. package/dist/{collection-BIhlldqK.mjs → collection-CnnP1UAv.mjs} +1 -1
  20. package/dist/compat/mod.cjs +1 -1
  21. package/dist/compat/mod.d.cts +1 -1
  22. package/dist/compat/mod.d.ts +1 -1
  23. package/dist/compat/mod.js +1 -1
  24. package/dist/compat/outgoing-jsonld.test.mjs +71 -3
  25. package/dist/compat/public-audience.test.mjs +14 -5
  26. package/dist/compat/secured-document.test.d.mts +2 -0
  27. package/dist/compat/secured-document.test.mjs +58 -0
  28. package/dist/compat/transformers.test.mjs +5 -5
  29. package/dist/compound-proof-B-9mXxFW.mjs +989 -0
  30. package/dist/{context-Zii1f5xS.d.ts → context-7NyiqIcg.d.ts} +1600 -25
  31. package/dist/{context-BJXxPElm.mjs → context-8Tu9kea0.mjs} +21 -63
  32. package/dist/{context-lxX6I7as.d.cts → context-tsYPJ2Ew.d.cts} +1600 -25
  33. package/dist/{deno-BHzKn9Ig.mjs → deno-oR5aJKpU.mjs} +1 -1
  34. package/dist/dist-DJQM4u7i.mjs +189 -0
  35. package/dist/docloader-DBoYbvYW.mjs +87 -0
  36. package/dist/{esm-yYQfPhIY.mjs → esm-BHXXx4Wx.mjs} +13 -6
  37. package/dist/federation/audience.test.d.mts +2 -0
  38. package/dist/federation/audience.test.mjs +130 -0
  39. package/dist/federation/builder.test.mjs +54 -5
  40. package/dist/federation/circuit-breaker.test.mjs +838 -7
  41. package/dist/federation/collection.test.mjs +3 -3
  42. package/dist/federation/compound-fanout.test.d.mts +2 -0
  43. package/dist/federation/compound-fanout.test.mjs +228 -0
  44. package/dist/federation/handler-compound-proof.test.d.mts +2 -0
  45. package/dist/federation/handler-compound-proof.test.mjs +384 -0
  46. package/dist/federation/handler.test.mjs +385 -15
  47. package/dist/federation/hashlink-media.test.d.mts +2 -0
  48. package/dist/federation/hashlink-media.test.mjs +422 -0
  49. package/dist/federation/idempotency.test.mjs +6 -6
  50. package/dist/federation/inbox-report.test.d.mts +2 -0
  51. package/dist/federation/inbox-report.test.mjs +475 -0
  52. package/dist/federation/inbox.test.mjs +3 -3
  53. package/dist/federation/keycache.test.mjs +215 -14
  54. package/dist/federation/kv.test.mjs +3 -3
  55. package/dist/federation/metrics.test.mjs +5 -5
  56. package/dist/federation/middleware.test.mjs +967 -35
  57. package/dist/federation/mod.cjs +18 -261
  58. package/dist/federation/mod.d.cts +5 -5
  59. package/dist/federation/mod.d.ts +5 -5
  60. package/dist/federation/mod.js +279 -1
  61. package/dist/federation/mq.test.mjs +123 -47
  62. package/dist/federation/negotiation.test.mjs +4 -4
  63. package/dist/federation/outgoing-proof.test.d.mts +2 -0
  64. package/dist/federation/outgoing-proof.test.mjs +931 -0
  65. package/dist/federation/portable-actor.test.d.mts +2 -0
  66. package/dist/federation/portable-actor.test.mjs +496 -0
  67. package/dist/federation/portable-chain.test.d.mts +2 -0
  68. package/dist/federation/portable-chain.test.mjs +370 -0
  69. package/dist/federation/portable-collection.test.d.mts +2 -0
  70. package/dist/federation/portable-collection.test.mjs +832 -0
  71. package/dist/federation/portable-delivery.test.d.mts +2 -0
  72. package/dist/federation/portable-delivery.test.mjs +746 -0
  73. package/dist/federation/portable-gateway-keys.test.d.mts +2 -0
  74. package/dist/federation/portable-gateway-keys.test.mjs +686 -0
  75. package/dist/federation/portable-inbox.test.d.mts +2 -0
  76. package/dist/federation/portable-inbox.test.mjs +1535 -0
  77. package/dist/federation/portable-parse-uri.test.d.mts +2 -0
  78. package/dist/federation/portable-parse-uri.test.mjs +348 -0
  79. package/dist/federation/portable-route-activity.test.d.mts +2 -0
  80. package/dist/federation/portable-route-activity.test.mjs +259 -0
  81. package/dist/federation/portable.test.d.mts +2 -0
  82. package/dist/federation/portable.test.mjs +1072 -0
  83. package/dist/federation/retry.test.mjs +4 -3
  84. package/dist/federation/router.test.mjs +9 -159
  85. package/dist/federation/send.test.mjs +245 -27
  86. package/dist/federation/tasks/codec.test.mjs +4 -4
  87. package/dist/federation/tasks/enqueue.test.mjs +42 -4
  88. package/dist/federation/tasks/tasks.test.mjs +7 -6
  89. package/dist/federation/temporal.test.mjs +4 -4
  90. package/dist/federation/webfinger.test.mjs +275 -12
  91. package/dist/{middleware-FrSMAYEx.cjs → federation-CkZiAcWY.cjs} +8640 -3722
  92. package/dist/http-B5JT115n.cjs +10630 -0
  93. package/dist/http-DydWCB7R.js +6527 -0
  94. package/dist/{http-CPVMUgsW.mjs → http-siciWkmx.mjs} +397 -168
  95. package/dist/key-BspPiXqn.mjs +951 -0
  96. package/dist/key-C1nv7_jD.d.ts +1125 -0
  97. package/dist/key-DYxuyd-s.d.cts +1125 -0
  98. package/dist/key-owner-evidence-APB6NpSk.mjs +108 -0
  99. package/dist/keycache-Da8A8mZa.mjs +200 -0
  100. package/dist/{kv-D6hNiMTK.d.ts → kv-B2mzK5tl.d.cts} +3 -2
  101. package/dist/{kv-gJ8LYbxX.d.cts → kv-B2mzK5tl.d.ts} +3 -2
  102. package/dist/kv-DBRWVx3Q.mjs +104 -0
  103. package/dist/{kv-cache-KyGqJqSp.mjs → kv-cache-BF1hnW65.mjs} +1 -1
  104. package/dist/{kv-cache-5bnX3-Jq.js → kv-cache-CTQr1tbn.js} +54 -16
  105. package/dist/{kv-cache-DQ29C4XL.cjs → kv-cache-DCac1nEU.cjs} +55 -19
  106. package/dist/{ld-Cj9F_5AP.mjs → ld-CzaP-hJl.mjs} +44 -12
  107. package/dist/map-local-context-conflict-DOYEEJ3u.mjs +204 -0
  108. package/dist/map-local-create-note-B0SeXJms.mjs +214 -0
  109. package/dist/{metrics-DMk-nTxI.mjs → metrics-CYg9yxBL.mjs} +3 -2
  110. package/dist/metrics-DVKYY6K1.d.cts +36 -0
  111. package/dist/metrics-DoRtI0qU.d.ts +36 -0
  112. package/dist/{middleware-Y-kpsp6S.js → middleware-CsDDXKuL.js} +5493 -1103
  113. package/dist/{middleware-CvwTUgnP.mjs → middleware-D7_LO-Vs.mjs} +3157 -272
  114. package/dist/{middleware-CEctxBN6.mjs → middleware-DWjrfpcz.mjs} +1 -1
  115. package/dist/{mod-gOlPDuT8.d.cts → mod-BojP2Bw3.d.cts} +1 -1
  116. package/dist/mod-CavhAgLw.d.cts +320 -0
  117. package/dist/mod-CtpF2BU5.d.ts +320 -0
  118. package/dist/{mod-BtEaIEcD.d.cts → mod-DEZXwV6J.d.ts} +10 -4
  119. package/dist/{mod-UMmveiO0.d.ts → mod-Dw-nPxQh.d.cts} +10 -4
  120. package/dist/{mod-DLc2Ot6f.d.ts → mod-Xj5P4s4d.d.ts} +1 -1
  121. package/dist/mod.cjs +40 -39
  122. package/dist/mod.d.cts +10 -11
  123. package/dist/mod.d.ts +10 -11
  124. package/dist/mod.js +9 -9
  125. package/dist/{mq-llHKivST.mjs → mq-Dm1Wmtm-.mjs} +6 -0
  126. package/dist/nodeinfo/client.test.mjs +139 -4
  127. package/dist/nodeinfo/handler.test.mjs +5 -5
  128. package/dist/nodeinfo/mod.cjs +1 -1
  129. package/dist/nodeinfo/mod.d.cts +1 -1
  130. package/dist/nodeinfo/mod.d.ts +1 -1
  131. package/dist/nodeinfo/mod.js +1 -1
  132. package/dist/nodeinfo/types.test.mjs +4 -4
  133. package/dist/otel/exporter.test.mjs +3 -3
  134. package/dist/otel/mod.cjs +0 -1
  135. package/dist/otel/mod.d.cts +1 -1
  136. package/dist/otel/mod.d.ts +1 -1
  137. package/dist/{outgoing-jsonld-URuqsICz.mjs → outgoing-jsonld-4IJqPYos.mjs} +12 -10
  138. package/dist/{owner-DEvZuyOE.d.cts → owner-BF0L9cMt.d.cts} +11 -0
  139. package/dist/{owner-CnngXDNJ.d.ts → owner-BSzr5-I8.d.ts} +11 -0
  140. package/dist/owner-DYgfTFHy.mjs +267 -0
  141. package/dist/portable-collection-BpsVsRov.js +670 -0
  142. package/dist/portable-collection-C74P1vtC.mjs +418 -0
  143. package/dist/portable-collection-DZd2bm7M.cjs +686 -0
  144. package/dist/portable-key-BIMLrAP4.mjs +549 -0
  145. package/dist/portable-key-id-Ca30-hOa.mjs +248 -0
  146. package/dist/proof-Dxy6ByqI.mjs +1299 -0
  147. package/dist/{public-audience-Cr5MsnMq.mjs → public-audience--klBIOk1.mjs} +15 -10
  148. package/dist/router-u5O5KCQr.mjs +156 -0
  149. package/dist/runtime/mod.cjs +1 -1
  150. package/dist/runtime/mod.js +1 -1
  151. package/dist/secured-document-CxzZZ9nL.mjs +35 -0
  152. package/dist/send-C4dDpAxm.mjs +495 -0
  153. package/dist/sig/accept.test.mjs +1 -1
  154. package/dist/sig/compound-proof-discovery.test.d.mts +2 -0
  155. package/dist/sig/compound-proof-discovery.test.mjs +331 -0
  156. package/dist/sig/compound-proof-producer.test.d.mts +2 -0
  157. package/dist/sig/compound-proof-producer.test.mjs +107 -0
  158. package/dist/sig/compound-proof-verification.test.d.mts +2 -0
  159. package/dist/sig/compound-proof-verification.test.mjs +833 -0
  160. package/dist/sig/compound-proof.test.d.mts +2 -0
  161. package/dist/sig/compound-proof.test.mjs +411 -0
  162. package/dist/sig/http.test.mjs +702 -31
  163. package/dist/sig/key-owner-evidence.test.d.mts +2 -0
  164. package/dist/sig/key-owner-evidence.test.mjs +100 -0
  165. package/dist/sig/key.test.mjs +220 -8
  166. package/dist/sig/ld.test.mjs +65 -7
  167. package/dist/sig/mitra-receive-interop.test.d.mts +2 -0
  168. package/dist/sig/mitra-receive-interop.test.mjs +260 -0
  169. package/dist/sig/mitra-send-interop.test.d.mts +2 -0
  170. package/dist/sig/mitra-send-interop.test.mjs +461 -0
  171. package/dist/sig/mod.cjs +18 -16
  172. package/dist/sig/mod.d.cts +4 -4
  173. package/dist/sig/mod.d.ts +4 -4
  174. package/dist/sig/mod.js +3 -3
  175. package/dist/sig/owner.test.mjs +108 -9
  176. package/dist/sig/portable-collection.test.d.mts +2 -0
  177. package/dist/sig/portable-collection.test.mjs +697 -0
  178. package/dist/sig/portable-interop.test.d.mts +2 -0
  179. package/dist/sig/portable-interop.test.mjs +156 -0
  180. package/dist/sig/portable-key-id.test.d.mts +2 -0
  181. package/dist/sig/portable-key-id.test.mjs +67 -0
  182. package/dist/sig/portable-key.test.d.mts +2 -0
  183. package/dist/sig/portable-key.test.mjs +1439 -0
  184. package/dist/sig/proof.test.mjs +1753 -16
  185. package/dist/sig/tootik-request-interop.test.d.mts +2 -0
  186. package/dist/sig/tootik-request-interop.test.mjs +190 -0
  187. package/dist/sig/tootik-send-interop.test.d.mts +2 -0
  188. package/dist/sig/tootik-send-interop.test.mjs +331 -0
  189. package/dist/sig/verification.test.d.mts +2 -0
  190. package/dist/sig/verification.test.mjs +310 -0
  191. package/dist/std__assert-DvMDRPes.mjs +8 -0
  192. package/dist/{testing-CO7ftO8A.mjs → tasks-IG3pHfvZ.mjs} +2 -2
  193. package/dist/{temporal-fsXO5IvD.mjs → temporal-D0KJI4NF.mjs} +3 -3
  194. package/dist/testing/context.test.d.mts +2 -0
  195. package/dist/testing/context.test.mjs +19 -0
  196. package/dist/testing/kv.test.d.mts +2 -0
  197. package/dist/testing/kv.test.mjs +101 -0
  198. package/dist/testing/mod.d.mts +1617 -48
  199. package/dist/testing/mod.mjs +6 -3
  200. package/dist/testing-t8xDeJZ5.mjs +8 -0
  201. package/dist/{transformers-DGwl-hD1.cjs → transformers-BalCrSsr.cjs} +0 -1
  202. package/dist/{types-DC1pNgJA.js → types-_S2_MeLF.js} +144 -8
  203. package/dist/{types-CPym83zc.cjs → types-poIao40f.cjs} +160 -7
  204. package/dist/utils/docloader.test.mjs +530 -8
  205. package/dist/utils/kv-cache.test.mjs +2 -2
  206. package/dist/utils/mod.cjs +1 -1
  207. package/dist/utils/mod.d.cts +1 -1
  208. package/dist/utils/mod.d.ts +1 -1
  209. package/dist/utils/mod.js +1 -1
  210. package/dist/verification-C3954hQh.mjs +5 -0
  211. package/dist/verification-Dpfcw8ml.mjs +105 -0
  212. package/dist/vocab/cjs.test.mjs +1 -1
  213. package/package.json +8 -8
  214. package/dist/assert_rejects-EgstcQy5.mjs +0 -82
  215. package/dist/docloader-e1khNUKy.mjs +0 -49
  216. package/dist/http-CsmQ-BQ4.js +0 -2483
  217. package/dist/http-VyDTd4G3.d.cts +0 -553
  218. package/dist/http-hlIjmewS.cjs +0 -2694
  219. package/dist/http-lf8Hsd91.d.ts +0 -553
  220. package/dist/key-DfPsX8hv.mjs +0 -453
  221. package/dist/keycache-_DHqz5z_.mjs +0 -97
  222. package/dist/metrics-CoUJLQhZ.d.cts +0 -276
  223. package/dist/metrics-Dc4jR-IC.d.ts +0 -276
  224. package/dist/mod-B0hW12_O.d.cts +0 -307
  225. package/dist/mod-COIAjwRS.d.ts +0 -307
  226. package/dist/owner-Br9YYzn_.mjs +0 -120
  227. package/dist/proof-B4ngoaNQ.mjs +0 -316
  228. package/dist/proof-B6E0XUXJ.js +0 -1415
  229. package/dist/proof-NN4xCQGL.cjs +0 -1562
  230. package/dist/send-CxHKUNzv.mjs +0 -239
  231. package/dist/std__assert-B2NnY9bq.mjs +0 -79
  232. package/dist/temporal-polyfill-BCdTHexd.cjs +0 -3565
  233. /package/dist/{accept-8PiolDP7.mjs → accept-CPVqki78.mjs} +0 -0
  234. /package/dist/{activity-listener-BtTSxZWA.mjs → activity-listener-C-BSbKI7.mjs} +0 -0
  235. /package/dist/{client-CAM_bQXx.d.cts → client-D-XP_Ccb.d.cts} +0 -0
  236. /package/dist/{client-CSddvgWN.d.ts → client-D-XP_Ccb.d.ts} +0 -0
  237. /package/dist/{keys-Dbyd7bhl.mjs → keys-DIJNHW-Y.mjs} +0 -0
  238. /package/dist/{kv-CXBAok3k.mjs → kv-DCHkaJ9-.mjs} +0 -0
  239. /package/dist/{negotiation-RuwrPFqi.mjs → negotiation-CCocWT_N.mjs} +0 -0
  240. /package/dist/{retry-DgFqeS5k.mjs → retry-zX5xw5e0.mjs} +0 -0
  241. /package/dist/{chunk-D5IdezsZ.js → rolldown-runtime-BC-Eo5Mj.js} +0 -0
  242. /package/dist/{chunk-Czpeue4M.cjs → rolldown-runtime-Dmm3t92W.cjs} +0 -0
  243. /package/dist/{transformers-DXze6FUB.js → transformers-DAtXl_Kc.js} +0 -0
  244. /package/dist/{types-CrtdVuDP.mjs → types-DE_LV1JB.mjs} +0 -0
package/README.md CHANGED
@@ -95,46 +95,51 @@ which provides the core functionality of the framework. Other packages provide
95
95
  integrations with various web frameworks, database drivers, and other features.
96
96
  Here is the list of packages:
97
97
 
98
- | Package | JSR | npm | Description |
99
- | ------------------------------------------------- | -------------------------------- | -------------------------------- | ---------------------------------------- |
100
- | [@fedify/fedify](/packages/fedify/) | [JSR] | [npm] | The core framework of Fedify |
101
- | [@fedify/cli](/packages/cli/) | [JSR][jsr:@fedify/cli] | [npm][npm:@fedify/cli] | CLI toolchain for testing and debugging |
102
- | [@fedify/create](/packages/create/) | | [npm][npm:@fedify/create] | Create a new Fedify project |
103
- | [@fedify/amqp](/packages/amqp/) | [JSR][jsr:@fedify/amqp] | [npm][npm:@fedify/amqp] | AMQP/RabbitMQ driver |
104
- | [@fedify/astro](/packages/astro/) | [JSR][jsr:@fedify/astro] | [npm][npm:@fedify/astro] | Astro integration |
105
- | [@fedify/backfill](/packages/backfill/) | [JSR][jsr:@fedify/backfill] | [npm][npm:@fedify/backfill] | ActivityPub backfill support |
106
- | [@fedify/cfworkers](/packages/cfworkers/) | [JSR][jsr:@fedify/cfworkers] | [npm][npm:@fedify/cfworkers] | Cloudflare Workers integration |
107
- | [@fedify/debugger](/packages/debugger/) | [JSR][jsr:@fedify/debugger] | [npm][npm:@fedify/debugger] | Embedded ActivityPub debug dashboard |
108
- | [@fedify/denokv](/packages/denokv/) | [JSR][jsr:@fedify/denokv] | | Deno KV integration |
109
- | [@fedify/elysia](/packages/elysia/) | | [npm][npm:@fedify/elysia] | Elysia integration |
110
- | [@fedify/express](/packages/express/) | [JSR][jsr:@fedify/express] | [npm][npm:@fedify/express] | Express integration |
111
- | [@fedify/fastify](/packages/fastify/) | [JSR][jsr:@fedify/fastify] | [npm][npm:@fedify/fastify] | Fastify integration |
112
- | [@fedify/fresh](/packages/fresh/) | [JSR][jsr:@fedify/fresh] | | Fresh integration |
113
- | [@fedify/h3](/packages/h3/) | [JSR][jsr:@fedify/h3] | [npm][npm:@fedify/h3] | H3 integration |
114
- | [@fedify/hono](/packages/hono/) | [JSR][jsr:@fedify/hono] | [npm][npm:@fedify/hono] | Hono integration |
115
- | [@fedify/init](/packages/init/) | [JSR][jsr:@fedify/init] | [npm][npm:@fedify/init] | Project initializer for Fedify |
116
- | [@fedify/koa](/packages/koa/) | [JSR][jsr:@fedify/koa] | [npm][npm:@fedify/koa] | Koa integration |
117
- | [@fedify/lint](/packages/lint/) | [JSR][jsr:@fedify/lint] | [npm][npm:@fedify/lint] | Linting utilities |
118
- | [@fedify/nestjs](/packages/nestjs/) | | [npm][npm:@fedify/nestjs] | NestJS integration |
119
- | [@fedify/next](/packages/next/) | | [npm][npm:@fedify/next] | Next.js integration |
120
- | [@fedify/nuxt](/packages/nuxt/) | [JSR][jsr:@fedify/nuxt] | [npm][npm:@fedify/nuxt] | Nuxt integration |
121
- | [@fedify/mysql](/packages/mysql/) | [JSR][jsr:@fedify/mysql] | [npm][npm:@fedify/mysql] | MySQL/MariaDB driver |
122
- | [@fedify/postgres](/packages/postgres/) | [JSR][jsr:@fedify/postgres] | [npm][npm:@fedify/postgres] | PostgreSQL driver |
123
- | [@fedify/redis](/packages/redis/) | [JSR][jsr:@fedify/redis] | [npm][npm:@fedify/redis] | Redis driver |
124
- | [@fedify/relay](/packages/relay/) | [JSR][jsr:@fedify/relay] | [npm][npm:@fedify/relay] | ActivityPub relay support |
125
- | [@fedify/solidstart](/packages/solidstart/) | [JSR][jsr:@fedify/solidstart] | [npm][npm:@fedify/solidstart] | SolidStart integration |
126
- | [@fedify/sqlite](/packages/sqlite/) | [JSR][jsr:@fedify/sqlite] | [npm][npm:@fedify/sqlite] | SQLite driver |
127
- | [@fedify/sveltekit](/packages/sveltekit/) | [JSR][jsr:@fedify/sveltekit] | [npm][npm:@fedify/sveltekit] | SvelteKit integration |
128
- | [@fedify/testing](/packages/testing/) | [JSR][jsr:@fedify/testing] | [npm][npm:@fedify/testing] | Testing utilities |
129
- | [@fedify/uri-template](/packages/uri-template/) | [JSR][jsr:@fedify/uri-template] | [npm][npm:@fedify/uri-template] | RFC 6570 URI Template library |
130
- | [@fedify/vocab](/packages/vocab/) | [JSR][jsr:@fedify/vocab] | [npm][npm:@fedify/vocab] | Activity Vocabulary library |
131
- | [@fedify/vocab-runtime](/packages/vocab-runtime/) | [JSR][jsr:@fedify/vocab-runtime] | [npm][npm:@fedify/vocab-runtime] | Runtime library for code-generated vocab |
132
- | [@fedify/vocab-tools](/packages/vocab-tools/) | [JSR][jsr:@fedify/vocab-tools] | [npm][npm:@fedify/vocab-tools] | Code generation tools for Activity Vocab |
133
- | [@fedify/webfinger](/packages/webfinger/) | [JSR][jsr:@fedify/webfinger] | [npm][npm:@fedify/webfinger] | WebFinger client library for ActivityPub |
98
+ | Package | JSR | npm | Description |
99
+ | --------------------------------------------------------------- | --------------------------------------- | --------------------------------------- | ---------------------------------------- |
100
+ | [@fedify/fedify](/packages/fedify/) | [JSR] | [npm] | The core framework of Fedify |
101
+ | [@fedify/cli](/packages/cli/) | [JSR][jsr:@fedify/cli] | [npm][npm:@fedify/cli] | CLI toolchain for testing and debugging |
102
+ | [@fedify/create](/packages/create/) | | [npm][npm:@fedify/create] | Create a new Fedify project |
103
+ | [@fedify/adonisjs](/packages/adonisjs/) | | [npm][npm:@fedify/adonisjs] | AdonisJS integration |
104
+ | [@fedify/amqp](/packages/amqp/) | [JSR][jsr:@fedify/amqp] | [npm][npm:@fedify/amqp] | AMQP/RabbitMQ driver |
105
+ | [@fedify/astro](/packages/astro/) | [JSR][jsr:@fedify/astro] | [npm][npm:@fedify/astro] | Astro integration |
106
+ | [@fedify/backfill](/packages/backfill/) | [JSR][jsr:@fedify/backfill] | [npm][npm:@fedify/backfill] | ActivityPub backfill support |
107
+ | [@fedify/cfworkers](/packages/cfworkers/) | [JSR][jsr:@fedify/cfworkers] | [npm][npm:@fedify/cfworkers] | Cloudflare Workers integration |
108
+ | [@fedify/debugger](/packages/debugger/) | [JSR][jsr:@fedify/debugger] | [npm][npm:@fedify/debugger] | Embedded ActivityPub debug dashboard |
109
+ | [@fedify/denokv](/packages/denokv/) | [JSR][jsr:@fedify/denokv] | | Deno KV integration |
110
+ | [@fedify/elysia](/packages/elysia/) | | [npm][npm:@fedify/elysia] | Elysia integration |
111
+ | [@fedify/express](/packages/express/) | [JSR][jsr:@fedify/express] | [npm][npm:@fedify/express] | Express integration |
112
+ | [@fedify/fastify](/packages/fastify/) | [JSR][jsr:@fedify/fastify] | [npm][npm:@fedify/fastify] | Fastify integration |
113
+ | [@fedify/fresh](/packages/fresh/) | [JSR][jsr:@fedify/fresh] | | Fresh integration |
114
+ | [@fedify/h3](/packages/h3/) | [JSR][jsr:@fedify/h3] | [npm][npm:@fedify/h3] | H3 integration |
115
+ | [@fedify/hono](/packages/hono/) | [JSR][jsr:@fedify/hono] | [npm][npm:@fedify/hono] | Hono integration |
116
+ | [@fedify/init](/packages/init/) | [JSR][jsr:@fedify/init] | [npm][npm:@fedify/init] | Project initializer for Fedify |
117
+ | [@fedify/interaction-controls](/packages/interaction-controls/) | [JSR][jsr:@fedify/interaction-controls] | [npm][npm:@fedify/interaction-controls] | Interaction control helpers |
118
+ | [@fedify/koa](/packages/koa/) | [JSR][jsr:@fedify/koa] | [npm][npm:@fedify/koa] | Koa integration |
119
+ | [@fedify/lint](/packages/lint/) | [JSR][jsr:@fedify/lint] | [npm][npm:@fedify/lint] | Linting utilities |
120
+ | [@fedify/nestjs](/packages/nestjs/) | | [npm][npm:@fedify/nestjs] | NestJS integration |
121
+ | [@fedify/next](/packages/next/) | | [npm][npm:@fedify/next] | Next.js integration |
122
+ | [@fedify/nuxt](/packages/nuxt/) | [JSR][jsr:@fedify/nuxt] | [npm][npm:@fedify/nuxt] | Nuxt integration |
123
+ | [@fedify/mysql](/packages/mysql/) | [JSR][jsr:@fedify/mysql] | [npm][npm:@fedify/mysql] | MySQL/MariaDB driver |
124
+ | [@fedify/netlify](/packages/netlify/) | [JSR][jsr:@fedify/netlify] | [npm][npm:@fedify/netlify] | Netlify Async Workloads integration |
125
+ | [@fedify/pglite](/packages/pglite/) | [JSR][jsr:@fedify/pglite] | [npm][npm:@fedify/pglite] | PGlite driver |
126
+ | [@fedify/postgres](/packages/postgres/) | [JSR][jsr:@fedify/postgres] | [npm][npm:@fedify/postgres] | PostgreSQL driver |
127
+ | [@fedify/redis](/packages/redis/) | [JSR][jsr:@fedify/redis] | [npm][npm:@fedify/redis] | Redis driver |
128
+ | [@fedify/relay](/packages/relay/) | [JSR][jsr:@fedify/relay] | [npm][npm:@fedify/relay] | ActivityPub relay support |
129
+ | [@fedify/solidstart](/packages/solidstart/) | [JSR][jsr:@fedify/solidstart] | [npm][npm:@fedify/solidstart] | SolidStart integration |
130
+ | [@fedify/sqlite](/packages/sqlite/) | [JSR][jsr:@fedify/sqlite] | [npm][npm:@fedify/sqlite] | SQLite driver |
131
+ | [@fedify/sveltekit](/packages/sveltekit/) | [JSR][jsr:@fedify/sveltekit] | [npm][npm:@fedify/sveltekit] | SvelteKit integration |
132
+ | [@fedify/testing](/packages/testing/) | [JSR][jsr:@fedify/testing] | [npm][npm:@fedify/testing] | Testing utilities |
133
+ | [@fedify/uri-template](/packages/uri-template/) | [JSR][jsr:@fedify/uri-template] | [npm][npm:@fedify/uri-template] | RFC 6570 URI Template library |
134
+ | [@fedify/vocab](/packages/vocab/) | [JSR][jsr:@fedify/vocab] | [npm][npm:@fedify/vocab] | Activity Vocabulary library |
135
+ | [@fedify/vocab-runtime](/packages/vocab-runtime/) | [JSR][jsr:@fedify/vocab-runtime] | [npm][npm:@fedify/vocab-runtime] | Runtime library for code-generated vocab |
136
+ | [@fedify/vocab-tools](/packages/vocab-tools/) | [JSR][jsr:@fedify/vocab-tools] | [npm][npm:@fedify/vocab-tools] | Code generation tools for Activity Vocab |
137
+ | [@fedify/webfinger](/packages/webfinger/) | [JSR][jsr:@fedify/webfinger] | [npm][npm:@fedify/webfinger] | WebFinger client library for ActivityPub |
134
138
 
135
139
  [jsr:@fedify/cli]: https://jsr.io/@fedify/cli
136
140
  [npm:@fedify/cli]: https://www.npmjs.com/package/@fedify/cli
137
141
  [npm:@fedify/create]: https://www.npmjs.com/package/@fedify/create
142
+ [npm:@fedify/adonisjs]: https://www.npmjs.com/package/@fedify/adonisjs
138
143
  [jsr:@fedify/amqp]: https://jsr.io/@fedify/amqp
139
144
  [npm:@fedify/amqp]: https://www.npmjs.com/package/@fedify/amqp
140
145
  [jsr:@fedify/astro]: https://jsr.io/@fedify/astro
@@ -158,6 +163,8 @@ Here is the list of packages:
158
163
  [npm:@fedify/hono]: https://www.npmjs.com/package/@fedify/hono
159
164
  [jsr:@fedify/init]: https://jsr.io/@fedify/init
160
165
  [npm:@fedify/init]: https://www.npmjs.com/package/@fedify/init
166
+ [jsr:@fedify/interaction-controls]: https://jsr.io/@fedify/interaction-controls
167
+ [npm:@fedify/interaction-controls]: https://www.npmjs.com/package/@fedify/interaction-controls
161
168
  [jsr:@fedify/koa]: https://jsr.io/@fedify/koa
162
169
  [npm:@fedify/koa]: https://www.npmjs.com/package/@fedify/koa
163
170
  [jsr:@fedify/lint]: https://jsr.io/@fedify/lint
@@ -168,6 +175,10 @@ Here is the list of packages:
168
175
  [npm:@fedify/nuxt]: https://www.npmjs.com/package/@fedify/nuxt
169
176
  [jsr:@fedify/mysql]: https://jsr.io/@fedify/mysql
170
177
  [npm:@fedify/mysql]: https://www.npmjs.com/package/@fedify/mysql
178
+ [jsr:@fedify/netlify]: https://jsr.io/@fedify/netlify
179
+ [npm:@fedify/netlify]: https://www.npmjs.com/package/@fedify/netlify
180
+ [jsr:@fedify/pglite]: https://jsr.io/@fedify/pglite
181
+ [npm:@fedify/pglite]: https://www.npmjs.com/package/@fedify/pglite
171
182
  [jsr:@fedify/postgres]: https://jsr.io/@fedify/postgres
172
183
  [npm:@fedify/postgres]: https://www.npmjs.com/package/@fedify/postgres
173
184
  [jsr:@fedify/redis]: https://jsr.io/@fedify/redis
@@ -201,7 +212,7 @@ This project exists thanks to all the people who contribute, donate, and sponsor
201
212
  it. We are grateful for their support. We would like to thank the following
202
213
  financial contributors:[^2]
203
214
 
204
- [^2]: Those lists are automatically updated every hour.
215
+ [^2]: Those lists are automatically updated twice a day.
205
216
 
206
217
  <!-- hongdown-disable -->
207
218
 
@@ -225,11 +236,11 @@ financial contributors:[^2]
225
236
 
226
237
  ### Backers
227
238
 
228
- Robin Riley, Encyclia, taye, box464, Evan Prodromou, okin, yamanoku, malte, Rafael Goulart, Andy Piper
239
+ Robin Riley, Encyclia, box464, Evan Prodromou, taye, okin, yamanoku, malte, Rafael Goulart, Andy Piper
229
240
 
230
241
  ### One-time donations
231
242
 
232
- Robin Riley, malte, Nils Bergmann, Markus P, Rameez
243
+ Robin Riley, malte, Nils Bergmann, Markus P, Rameez, Guest, Guest, Guest, Guest, Guest, Guest, Guest, Guest
233
244
 
234
245
  <!-- /DO NOT EDIT -->
235
246
 
@@ -1,7 +1,7 @@
1
1
  import "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { l as AssertionError } from "./assert_equals-BV7oLMxm.mjs";
4
+ import { t as AssertionError } from "./assertion_error-B-cx0fFA.mjs";
5
5
  //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert.js
6
6
  /**
7
7
  * Make an assertion, error will be thrown if `expr` does not have truthy value.
@@ -1,33 +1,7 @@
1
1
  import "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assertion_error.js
5
- /**
6
- * Error thrown when an assertion fails.
7
- *
8
- * @example Usage
9
- * ```ts no-eval
10
- * import { AssertionError } from "@std/assert/assertion-error";
11
- *
12
- * throw new AssertionError("Assertion failed");
13
- * ```
14
- */ var AssertionError = class extends Error {
15
- /** Constructs a new instance.
16
- *
17
- * @example Usage
18
- * ```ts no-eval
19
- * import { AssertionError } from "@std/assert/assertion-error";
20
- *
21
- * throw new AssertionError("Assertion failed");
22
- * ```
23
- *
24
- * @param message The error message.
25
- */ constructor(message) {
26
- super(message);
27
- this.name = "AssertionError";
28
- }
29
- };
30
- //#endregion
4
+ import { t as AssertionError } from "./assertion_error-B-cx0fFA.mjs";
31
5
  //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/equal.js
32
6
  function isKeyedCollection(x) {
33
7
  return [Symbol.iterator, "size"].every((k) => k in x);
@@ -1010,4 +984,4 @@ const NON_WHITESPACE_REGEXP = /\S/;
1010
984
  throw new AssertionError(message);
1011
985
  }
1012
986
  //#endregion
1013
- export { red as a, equal as c, buildMessage as i, AssertionError as l, diffStr as n, stripAnsiCode as o, diff as r, format as s, assertEquals as t };
987
+ export { red as a, equal as c, buildMessage as i, diffStr as n, stripAnsiCode as o, diff as r, format as s, assertEquals as t };
@@ -0,0 +1,28 @@
1
+ import "temporal-polyfill";
2
+ import "urlpattern-polyfill";
3
+ globalThis.addEventListener = () => {};
4
+ import { t as AssertionError } from "./assertion_error-B-cx0fFA.mjs";
5
+ //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_exists.js
6
+ /**
7
+ * Make an assertion that actual is not null or undefined.
8
+ * If not then throw.
9
+ *
10
+ * @example Usage
11
+ * ```ts no-eval
12
+ * import { assertExists } from "@std/assert/assert-exists";
13
+ *
14
+ * assertExists("something"); // Doesn't throw
15
+ * assertExists(undefined); // Throws
16
+ * ```
17
+ *
18
+ * @typeParam T The type of the actual value.
19
+ * @param actual The actual value to check.
20
+ * @param msg The optional message to include in the error if the assertion fails.
21
+ */ function assertExists(actual, msg) {
22
+ if (actual === void 0 || actual === null) {
23
+ msg = `Expected actual: "${actual}" to not be null or undefined${msg ? `: ${msg}` : "."}`;
24
+ throw new AssertionError(msg);
25
+ }
26
+ }
27
+ //#endregion
28
+ export { assertExists as t };
@@ -0,0 +1,23 @@
1
+ import "temporal-polyfill";
2
+ import "urlpattern-polyfill";
3
+ globalThis.addEventListener = () => {};
4
+ import { t as AssertionError } from "./assertion_error-B-cx0fFA.mjs";
5
+ //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_false.js
6
+ /**
7
+ * Make an assertion, error will be thrown if `expr` have truthy value.
8
+ *
9
+ * @example Usage
10
+ * ```ts no-eval
11
+ * import { assertFalse } from "@std/assert/assert-false";
12
+ *
13
+ * assertFalse(false); // Doesn't throw
14
+ * assertFalse(true); // Throws
15
+ * ```
16
+ *
17
+ * @param expr The expression to test.
18
+ * @param msg The optional message to display if the assertion fails.
19
+ */ function assertFalse(expr, msg = "") {
20
+ if (expr) throw new AssertionError(msg);
21
+ }
22
+ //#endregion
23
+ export { assertFalse as t };
@@ -0,0 +1,31 @@
1
+ import "temporal-polyfill";
2
+ import "urlpattern-polyfill";
3
+ globalThis.addEventListener = () => {};
4
+ import { t as AssertionError } from "./assertion_error-B-cx0fFA.mjs";
5
+ import { s as format } from "./assert_equals-Z6IcEbWU.mjs";
6
+ //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_greater_or_equal.js
7
+ /**
8
+ * Make an assertion that `actual` is greater than or equal to `expected`.
9
+ * If not then throw.
10
+ *
11
+ * @example Usage
12
+ * ```ts no-eval
13
+ * import { assertGreaterOrEqual } from "@std/assert/assert-greater-or-equal";
14
+ *
15
+ * assertGreaterOrEqual(2, 1); // Doesn't throw
16
+ * assertGreaterOrEqual(1, 1); // Doesn't throw
17
+ * assertGreaterOrEqual(0, 1); // Throws
18
+ * ```
19
+ *
20
+ * @typeParam T The type of the values to compare.
21
+ * @param actual The actual value to compare.
22
+ * @param expected The expected value to compare.
23
+ * @param msg The optional message to display if the assertion fails.
24
+ */ function assertGreaterOrEqual(actual, expected, msg) {
25
+ if (actual >= expected) return;
26
+ const actualString = format(actual);
27
+ const expectedString = format(expected);
28
+ throw new AssertionError(msg ?? `Expect ${actualString} >= ${expectedString}`);
29
+ }
30
+ //#endregion
31
+ export { assertGreaterOrEqual as t };
@@ -1,7 +1,7 @@
1
1
  import "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { l as AssertionError } from "./assert_equals-BV7oLMxm.mjs";
4
+ import { t as AssertionError } from "./assertion_error-B-cx0fFA.mjs";
5
5
  //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_instance_of.js
6
6
  /**
7
7
  * Make an assertion that `obj` is an instance of `type`.
@@ -1,7 +1,8 @@
1
1
  import "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { c as equal, l as AssertionError } from "./assert_equals-BV7oLMxm.mjs";
4
+ import { t as AssertionError } from "./assertion_error-B-cx0fFA.mjs";
5
+ import { c as equal } from "./assert_equals-Z6IcEbWU.mjs";
5
6
  //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_not_equals.js
6
7
  /**
7
8
  * Make an assertion that `actual` and `expected` are not equal, deeply.
@@ -0,0 +1,39 @@
1
+ import "temporal-polyfill";
2
+ import "urlpattern-polyfill";
3
+ globalThis.addEventListener = () => {};
4
+ import { t as AssertionError } from "./assertion_error-B-cx0fFA.mjs";
5
+ import { n as assertIsError } from "./assert_throws-BYITOvPO.mjs";
6
+ //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_rejects.js
7
+ async function assertRejects(fn, errorClassOrMsg, msgIncludesOrMsg, msg) {
8
+ let ErrorClass = void 0;
9
+ let msgIncludes = void 0;
10
+ let err;
11
+ if (typeof errorClassOrMsg !== "string") {
12
+ if (errorClassOrMsg === void 0 || errorClassOrMsg.prototype instanceof Error || errorClassOrMsg.prototype === Error.prototype) {
13
+ ErrorClass = errorClassOrMsg;
14
+ msgIncludes = msgIncludesOrMsg;
15
+ }
16
+ } else msg = errorClassOrMsg;
17
+ let doesThrow = false;
18
+ let isPromiseReturned = false;
19
+ const msgSuffix = msg ? `: ${msg}` : ".";
20
+ try {
21
+ const possiblePromise = fn();
22
+ if (possiblePromise && typeof possiblePromise === "object" && typeof possiblePromise.then === "function") {
23
+ isPromiseReturned = true;
24
+ await possiblePromise;
25
+ } else throw Error();
26
+ } catch (error) {
27
+ if (!isPromiseReturned) throw new AssertionError(`Function throws when expected to reject${msgSuffix}`);
28
+ if (ErrorClass) {
29
+ if (!(error instanceof Error)) throw new AssertionError(`A non-Error object was rejected${msgSuffix}`);
30
+ assertIsError(error, ErrorClass, msgIncludes, msg);
31
+ }
32
+ err = error;
33
+ doesThrow = true;
34
+ }
35
+ if (!doesThrow) throw new AssertionError(`Expected function to reject${msgSuffix}`);
36
+ return err;
37
+ }
38
+ //#endregion
39
+ export { assertRejects as t };
@@ -1,7 +1,8 @@
1
1
  import "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { a as red, i as buildMessage, l as AssertionError, n as diffStr, r as diff, s as format } from "./assert_equals-BV7oLMxm.mjs";
4
+ import { t as AssertionError } from "./assertion_error-B-cx0fFA.mjs";
5
+ import { a as red, i as buildMessage, n as diffStr, r as diff, s as format } from "./assert_equals-Z6IcEbWU.mjs";
5
6
  //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_strict_equals.js
6
7
  /**
7
8
  * Make an assertion that `actual` and `expected` are equal using
@@ -1,7 +1,8 @@
1
1
  import "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { l as AssertionError, o as stripAnsiCode } from "./assert_equals-BV7oLMxm.mjs";
4
+ import { t as AssertionError } from "./assertion_error-B-cx0fFA.mjs";
5
+ import { o as stripAnsiCode } from "./assert_equals-Z6IcEbWU.mjs";
5
6
  //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_is_error.js
6
7
  /**
7
8
  * Make an assertion that `error` is an `Error`.
@@ -0,0 +1,31 @@
1
+ import "temporal-polyfill";
2
+ import "urlpattern-polyfill";
3
+ globalThis.addEventListener = () => {};
4
+ //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assertion_error.js
5
+ /**
6
+ * Error thrown when an assertion fails.
7
+ *
8
+ * @example Usage
9
+ * ```ts no-eval
10
+ * import { AssertionError } from "@std/assert/assertion-error";
11
+ *
12
+ * throw new AssertionError("Assertion failed");
13
+ * ```
14
+ */ var AssertionError = class extends Error {
15
+ /** Constructs a new instance.
16
+ *
17
+ * @example Usage
18
+ * ```ts no-eval
19
+ * import { AssertionError } from "@std/assert/assertion-error";
20
+ *
21
+ * throw new AssertionError("Assertion failed");
22
+ * ```
23
+ *
24
+ * @param message The error message.
25
+ */ constructor(message) {
26
+ super(message);
27
+ this.name = "AssertionError";
28
+ }
29
+ };
30
+ //#endregion
31
+ export { AssertionError as t };
@@ -0,0 +1,95 @@
1
+ import "temporal-polyfill";
2
+ import "urlpattern-polyfill";
3
+ globalThis.addEventListener = () => {};
4
+ import { n as getCanonicalPortableId } from "./portable-key-id-Ca30-hOa.mjs";
5
+ import { PUBLIC_COLLECTION } from "@fedify/vocab";
6
+ //#region src/federation/audience.ts
7
+ const AS_NAMESPACE = "https://www.w3.org/ns/activitystreams#";
8
+ /**
9
+ * The addressing properties that determine the audience of an object.
10
+ */
11
+ const ADDRESSING_PROPERTIES = [
12
+ "to",
13
+ "cc",
14
+ "bto",
15
+ "bcc",
16
+ "audience"
17
+ ];
18
+ /**
19
+ * The IDs that Fedify treats as the public collection. Besides the full IRI,
20
+ * the compact forms `as:Public` and `Public` are reserved as public for
21
+ * compatibility with documents whose compact forms survive JSON-LD expansion,
22
+ * e.g., bare `Public`, which expands to a relative IRI.
23
+ */
24
+ const PUBLIC_IDS = /* @__PURE__ */ new Set([
25
+ PUBLIC_COLLECTION.href,
26
+ "as:Public",
27
+ "Public"
28
+ ]);
29
+ /**
30
+ * Checks whether an expanded JSON-LD node is addressed to the public
31
+ * collection, i.e., any of its `to`, `cc`, `bto`, `bcc`, and `audience` has
32
+ * the public collection. Only the node itself is checked, not the nodes
33
+ * embedded in it.
34
+ * @param node The expanded JSON-LD node.
35
+ * @returns `true` if the node is publicly addressed.
36
+ * @internal
37
+ */
38
+ function isPubliclyAddressedNode(node) {
39
+ for (const property of ADDRESSING_PROPERTIES) {
40
+ const values = node[AS_NAMESPACE + property];
41
+ if (!Array.isArray(values)) continue;
42
+ for (const value of values) if (typeof value === "object" && value != null && "@id" in value && typeof value["@id"] === "string" && PUBLIC_IDS.has(value["@id"])) return true;
43
+ }
44
+ return false;
45
+ }
46
+ function getAudienceIds(object) {
47
+ return [
48
+ ...object.toIds,
49
+ ...object.ccIds,
50
+ ...object.btoIds,
51
+ ...object.bccIds,
52
+ ...object.audienceIds
53
+ ];
54
+ }
55
+ /**
56
+ * Checks whether two actor IDs refer to the same actor. [FEP-ef61] portable
57
+ * IDs are compared by their canonical forms, so an `ap:` URI, an `ap+ef61:`
58
+ * URI, and a compatible identifier on any gateway are the same actor if they
59
+ * have the same canonical portable ID. Other IDs are compared as they are.
60
+ *
61
+ * [FEP-ef61]: https://w3id.org/fep/ef61
62
+ */
63
+ function isSameActorId(a, b) {
64
+ const canonicalA = getCanonicalPortableId(a);
65
+ const canonicalB = getCanonicalPortableId(b);
66
+ if (canonicalA != null || canonicalB != null) return canonicalA === canonicalB;
67
+ return a.href === b.href;
68
+ }
69
+ /**
70
+ * Checks whether an actor belongs to the audience of an object: the object is
71
+ * publicly addressed, the actor is one of its addressees, or the actor is
72
+ * a member of one of them according to `isMember()`.
73
+ * @param object The object whose audience is checked.
74
+ * @param actor The actor to check, or `null` if there is no actor. No actor
75
+ * belongs to the audience of an object that is not public.
76
+ * @param options Options for checking the audience.
77
+ * @returns `true` if the actor belongs to the audience of the object.
78
+ * @internal
79
+ */
80
+ async function isInAudience(object, actor, options = {}) {
81
+ const addressees = getAudienceIds(object);
82
+ if (addressees.some((id) => PUBLIC_IDS.has(id.href))) return true;
83
+ const actorId = actor?.id;
84
+ if (actor == null || actorId == null) return false;
85
+ const others = [];
86
+ for (const addressee of addressees) {
87
+ if (isSameActorId(addressee, actorId)) return true;
88
+ others.push(addressee);
89
+ }
90
+ if (options.isMember == null) return false;
91
+ for (const addressee of others) if (await options.isMember(addressee, actor)) return true;
92
+ return false;
93
+ }
94
+ //#endregion
95
+ export { isPubliclyAddressedNode as n, isInAudience as t };