@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.
- package/README.md +50 -39
- package/dist/{assert-CJ1KXcvv.mjs → assert-D1Eafmd_.mjs} +1 -1
- package/dist/{assert_equals-BV7oLMxm.mjs → assert_equals-Z6IcEbWU.mjs} +2 -28
- package/dist/assert_exists-cffSpJ7X.mjs +28 -0
- package/dist/assert_false-CPdRnc3E.mjs +23 -0
- package/dist/assert_greater_or_equal-BlafOF4-.mjs +31 -0
- package/dist/{assert_instance_of-Q9KTBnrf.mjs → assert_instance_of-mrXWWNY-.mjs} +1 -1
- package/dist/{assert_not_equals-EPJPoxuf.mjs → assert_not_equals-CpPK2t89.mjs} +2 -1
- package/dist/assert_rejects-CTptdYck.mjs +39 -0
- package/dist/{assert_strict_equals-Ec20AUwa.mjs → assert_strict_equals-CYvBmkpC.mjs} +2 -1
- package/dist/{assert_throws-NiFfqbnH.mjs → assert_throws-BYITOvPO.mjs} +2 -1
- package/dist/assertion_error-B-cx0fFA.mjs +31 -0
- package/dist/audience-CHQ-FlLD.mjs +95 -0
- package/dist/{builder-DonuxRl_.mjs → builder-Bda6LK7A.mjs} +169 -14
- package/dist/{circuit-breaker-CBGyz5F7.mjs → circuit-breaker-XJ53md4S.mjs} +224 -17
- package/dist/circuit-breaker-test-utils-DW6YC_Pe.mjs +14 -0
- package/dist/{client-CjF5IYQS.mjs → client-CEnNz8O7.mjs} +144 -8
- package/dist/{codec-BBga-FWI.mjs → codec-C6rTrpIp.mjs} +26 -3
- package/dist/{collection-BIhlldqK.mjs → collection-CnnP1UAv.mjs} +1 -1
- package/dist/compat/mod.cjs +1 -1
- package/dist/compat/mod.d.cts +1 -1
- package/dist/compat/mod.d.ts +1 -1
- package/dist/compat/mod.js +1 -1
- package/dist/compat/outgoing-jsonld.test.mjs +71 -3
- package/dist/compat/public-audience.test.mjs +14 -5
- package/dist/compat/secured-document.test.d.mts +2 -0
- package/dist/compat/secured-document.test.mjs +58 -0
- package/dist/compat/transformers.test.mjs +5 -5
- package/dist/compound-proof-B-9mXxFW.mjs +989 -0
- package/dist/{context-Zii1f5xS.d.ts → context-7NyiqIcg.d.ts} +1600 -25
- package/dist/{context-BJXxPElm.mjs → context-8Tu9kea0.mjs} +21 -63
- package/dist/{context-lxX6I7as.d.cts → context-tsYPJ2Ew.d.cts} +1600 -25
- package/dist/{deno-BHzKn9Ig.mjs → deno-oR5aJKpU.mjs} +1 -1
- package/dist/dist-DJQM4u7i.mjs +189 -0
- package/dist/docloader-DBoYbvYW.mjs +87 -0
- package/dist/{esm-yYQfPhIY.mjs → esm-BHXXx4Wx.mjs} +13 -6
- package/dist/federation/audience.test.d.mts +2 -0
- package/dist/federation/audience.test.mjs +130 -0
- package/dist/federation/builder.test.mjs +54 -5
- package/dist/federation/circuit-breaker.test.mjs +838 -7
- package/dist/federation/collection.test.mjs +3 -3
- package/dist/federation/compound-fanout.test.d.mts +2 -0
- package/dist/federation/compound-fanout.test.mjs +228 -0
- package/dist/federation/handler-compound-proof.test.d.mts +2 -0
- package/dist/federation/handler-compound-proof.test.mjs +384 -0
- package/dist/federation/handler.test.mjs +385 -15
- package/dist/federation/hashlink-media.test.d.mts +2 -0
- package/dist/federation/hashlink-media.test.mjs +422 -0
- package/dist/federation/idempotency.test.mjs +6 -6
- package/dist/federation/inbox-report.test.d.mts +2 -0
- package/dist/federation/inbox-report.test.mjs +475 -0
- package/dist/federation/inbox.test.mjs +3 -3
- package/dist/federation/keycache.test.mjs +215 -14
- package/dist/federation/kv.test.mjs +3 -3
- package/dist/federation/metrics.test.mjs +5 -5
- package/dist/federation/middleware.test.mjs +967 -35
- package/dist/federation/mod.cjs +18 -261
- package/dist/federation/mod.d.cts +5 -5
- package/dist/federation/mod.d.ts +5 -5
- package/dist/federation/mod.js +279 -1
- package/dist/federation/mq.test.mjs +123 -47
- package/dist/federation/negotiation.test.mjs +4 -4
- package/dist/federation/outgoing-proof.test.d.mts +2 -0
- package/dist/federation/outgoing-proof.test.mjs +931 -0
- package/dist/federation/portable-actor.test.d.mts +2 -0
- package/dist/federation/portable-actor.test.mjs +496 -0
- package/dist/federation/portable-chain.test.d.mts +2 -0
- package/dist/federation/portable-chain.test.mjs +370 -0
- package/dist/federation/portable-collection.test.d.mts +2 -0
- package/dist/federation/portable-collection.test.mjs +832 -0
- package/dist/federation/portable-delivery.test.d.mts +2 -0
- package/dist/federation/portable-delivery.test.mjs +746 -0
- package/dist/federation/portable-gateway-keys.test.d.mts +2 -0
- package/dist/federation/portable-gateway-keys.test.mjs +686 -0
- package/dist/federation/portable-inbox.test.d.mts +2 -0
- package/dist/federation/portable-inbox.test.mjs +1535 -0
- package/dist/federation/portable-parse-uri.test.d.mts +2 -0
- package/dist/federation/portable-parse-uri.test.mjs +348 -0
- package/dist/federation/portable-route-activity.test.d.mts +2 -0
- package/dist/federation/portable-route-activity.test.mjs +259 -0
- package/dist/federation/portable.test.d.mts +2 -0
- package/dist/federation/portable.test.mjs +1072 -0
- package/dist/federation/retry.test.mjs +4 -3
- package/dist/federation/router.test.mjs +9 -159
- package/dist/federation/send.test.mjs +245 -27
- package/dist/federation/tasks/codec.test.mjs +4 -4
- package/dist/federation/tasks/enqueue.test.mjs +42 -4
- package/dist/federation/tasks/tasks.test.mjs +7 -6
- package/dist/federation/temporal.test.mjs +4 -4
- package/dist/federation/webfinger.test.mjs +275 -12
- package/dist/{middleware-FrSMAYEx.cjs → federation-CkZiAcWY.cjs} +8640 -3722
- package/dist/http-B5JT115n.cjs +10630 -0
- package/dist/http-DydWCB7R.js +6527 -0
- package/dist/{http-CPVMUgsW.mjs → http-siciWkmx.mjs} +397 -168
- package/dist/key-BspPiXqn.mjs +951 -0
- package/dist/key-C1nv7_jD.d.ts +1125 -0
- package/dist/key-DYxuyd-s.d.cts +1125 -0
- package/dist/key-owner-evidence-APB6NpSk.mjs +108 -0
- package/dist/keycache-Da8A8mZa.mjs +200 -0
- package/dist/{kv-D6hNiMTK.d.ts → kv-B2mzK5tl.d.cts} +3 -2
- package/dist/{kv-gJ8LYbxX.d.cts → kv-B2mzK5tl.d.ts} +3 -2
- package/dist/kv-DBRWVx3Q.mjs +104 -0
- package/dist/{kv-cache-KyGqJqSp.mjs → kv-cache-BF1hnW65.mjs} +1 -1
- package/dist/{kv-cache-5bnX3-Jq.js → kv-cache-CTQr1tbn.js} +54 -16
- package/dist/{kv-cache-DQ29C4XL.cjs → kv-cache-DCac1nEU.cjs} +55 -19
- package/dist/{ld-Cj9F_5AP.mjs → ld-CzaP-hJl.mjs} +44 -12
- package/dist/map-local-context-conflict-DOYEEJ3u.mjs +204 -0
- package/dist/map-local-create-note-B0SeXJms.mjs +214 -0
- package/dist/{metrics-DMk-nTxI.mjs → metrics-CYg9yxBL.mjs} +3 -2
- package/dist/metrics-DVKYY6K1.d.cts +36 -0
- package/dist/metrics-DoRtI0qU.d.ts +36 -0
- package/dist/{middleware-Y-kpsp6S.js → middleware-CsDDXKuL.js} +5493 -1103
- package/dist/{middleware-CvwTUgnP.mjs → middleware-D7_LO-Vs.mjs} +3157 -272
- package/dist/{middleware-CEctxBN6.mjs → middleware-DWjrfpcz.mjs} +1 -1
- package/dist/{mod-gOlPDuT8.d.cts → mod-BojP2Bw3.d.cts} +1 -1
- package/dist/mod-CavhAgLw.d.cts +320 -0
- package/dist/mod-CtpF2BU5.d.ts +320 -0
- package/dist/{mod-BtEaIEcD.d.cts → mod-DEZXwV6J.d.ts} +10 -4
- package/dist/{mod-UMmveiO0.d.ts → mod-Dw-nPxQh.d.cts} +10 -4
- package/dist/{mod-DLc2Ot6f.d.ts → mod-Xj5P4s4d.d.ts} +1 -1
- package/dist/mod.cjs +40 -39
- package/dist/mod.d.cts +10 -11
- package/dist/mod.d.ts +10 -11
- package/dist/mod.js +9 -9
- package/dist/{mq-llHKivST.mjs → mq-Dm1Wmtm-.mjs} +6 -0
- package/dist/nodeinfo/client.test.mjs +139 -4
- package/dist/nodeinfo/handler.test.mjs +5 -5
- package/dist/nodeinfo/mod.cjs +1 -1
- package/dist/nodeinfo/mod.d.cts +1 -1
- package/dist/nodeinfo/mod.d.ts +1 -1
- package/dist/nodeinfo/mod.js +1 -1
- package/dist/nodeinfo/types.test.mjs +4 -4
- package/dist/otel/exporter.test.mjs +3 -3
- package/dist/otel/mod.cjs +0 -1
- package/dist/otel/mod.d.cts +1 -1
- package/dist/otel/mod.d.ts +1 -1
- package/dist/{outgoing-jsonld-URuqsICz.mjs → outgoing-jsonld-4IJqPYos.mjs} +12 -10
- package/dist/{owner-DEvZuyOE.d.cts → owner-BF0L9cMt.d.cts} +11 -0
- package/dist/{owner-CnngXDNJ.d.ts → owner-BSzr5-I8.d.ts} +11 -0
- package/dist/owner-DYgfTFHy.mjs +267 -0
- package/dist/portable-collection-BpsVsRov.js +670 -0
- package/dist/portable-collection-C74P1vtC.mjs +418 -0
- package/dist/portable-collection-DZd2bm7M.cjs +686 -0
- package/dist/portable-key-BIMLrAP4.mjs +549 -0
- package/dist/portable-key-id-Ca30-hOa.mjs +248 -0
- package/dist/proof-Dxy6ByqI.mjs +1299 -0
- package/dist/{public-audience-Cr5MsnMq.mjs → public-audience--klBIOk1.mjs} +15 -10
- package/dist/router-u5O5KCQr.mjs +156 -0
- package/dist/runtime/mod.cjs +1 -1
- package/dist/runtime/mod.js +1 -1
- package/dist/secured-document-CxzZZ9nL.mjs +35 -0
- package/dist/send-C4dDpAxm.mjs +495 -0
- package/dist/sig/accept.test.mjs +1 -1
- package/dist/sig/compound-proof-discovery.test.d.mts +2 -0
- package/dist/sig/compound-proof-discovery.test.mjs +331 -0
- package/dist/sig/compound-proof-producer.test.d.mts +2 -0
- package/dist/sig/compound-proof-producer.test.mjs +107 -0
- package/dist/sig/compound-proof-verification.test.d.mts +2 -0
- package/dist/sig/compound-proof-verification.test.mjs +833 -0
- package/dist/sig/compound-proof.test.d.mts +2 -0
- package/dist/sig/compound-proof.test.mjs +411 -0
- package/dist/sig/http.test.mjs +702 -31
- package/dist/sig/key-owner-evidence.test.d.mts +2 -0
- package/dist/sig/key-owner-evidence.test.mjs +100 -0
- package/dist/sig/key.test.mjs +220 -8
- package/dist/sig/ld.test.mjs +65 -7
- package/dist/sig/mitra-receive-interop.test.d.mts +2 -0
- package/dist/sig/mitra-receive-interop.test.mjs +260 -0
- package/dist/sig/mitra-send-interop.test.d.mts +2 -0
- package/dist/sig/mitra-send-interop.test.mjs +461 -0
- package/dist/sig/mod.cjs +18 -16
- package/dist/sig/mod.d.cts +4 -4
- package/dist/sig/mod.d.ts +4 -4
- package/dist/sig/mod.js +3 -3
- package/dist/sig/owner.test.mjs +108 -9
- package/dist/sig/portable-collection.test.d.mts +2 -0
- package/dist/sig/portable-collection.test.mjs +697 -0
- package/dist/sig/portable-interop.test.d.mts +2 -0
- package/dist/sig/portable-interop.test.mjs +156 -0
- package/dist/sig/portable-key-id.test.d.mts +2 -0
- package/dist/sig/portable-key-id.test.mjs +67 -0
- package/dist/sig/portable-key.test.d.mts +2 -0
- package/dist/sig/portable-key.test.mjs +1439 -0
- package/dist/sig/proof.test.mjs +1753 -16
- package/dist/sig/tootik-request-interop.test.d.mts +2 -0
- package/dist/sig/tootik-request-interop.test.mjs +190 -0
- package/dist/sig/tootik-send-interop.test.d.mts +2 -0
- package/dist/sig/tootik-send-interop.test.mjs +331 -0
- package/dist/sig/verification.test.d.mts +2 -0
- package/dist/sig/verification.test.mjs +310 -0
- package/dist/std__assert-DvMDRPes.mjs +8 -0
- package/dist/{testing-CO7ftO8A.mjs → tasks-IG3pHfvZ.mjs} +2 -2
- package/dist/{temporal-fsXO5IvD.mjs → temporal-D0KJI4NF.mjs} +3 -3
- package/dist/testing/context.test.d.mts +2 -0
- package/dist/testing/context.test.mjs +19 -0
- package/dist/testing/kv.test.d.mts +2 -0
- package/dist/testing/kv.test.mjs +101 -0
- package/dist/testing/mod.d.mts +1617 -48
- package/dist/testing/mod.mjs +6 -3
- package/dist/testing-t8xDeJZ5.mjs +8 -0
- package/dist/{transformers-DGwl-hD1.cjs → transformers-BalCrSsr.cjs} +0 -1
- package/dist/{types-DC1pNgJA.js → types-_S2_MeLF.js} +144 -8
- package/dist/{types-CPym83zc.cjs → types-poIao40f.cjs} +160 -7
- package/dist/utils/docloader.test.mjs +530 -8
- package/dist/utils/kv-cache.test.mjs +2 -2
- package/dist/utils/mod.cjs +1 -1
- package/dist/utils/mod.d.cts +1 -1
- package/dist/utils/mod.d.ts +1 -1
- package/dist/utils/mod.js +1 -1
- package/dist/verification-C3954hQh.mjs +5 -0
- package/dist/verification-Dpfcw8ml.mjs +105 -0
- package/dist/vocab/cjs.test.mjs +1 -1
- package/package.json +8 -8
- package/dist/assert_rejects-EgstcQy5.mjs +0 -82
- package/dist/docloader-e1khNUKy.mjs +0 -49
- package/dist/http-CsmQ-BQ4.js +0 -2483
- package/dist/http-VyDTd4G3.d.cts +0 -553
- package/dist/http-hlIjmewS.cjs +0 -2694
- package/dist/http-lf8Hsd91.d.ts +0 -553
- package/dist/key-DfPsX8hv.mjs +0 -453
- package/dist/keycache-_DHqz5z_.mjs +0 -97
- package/dist/metrics-CoUJLQhZ.d.cts +0 -276
- package/dist/metrics-Dc4jR-IC.d.ts +0 -276
- package/dist/mod-B0hW12_O.d.cts +0 -307
- package/dist/mod-COIAjwRS.d.ts +0 -307
- package/dist/owner-Br9YYzn_.mjs +0 -120
- package/dist/proof-B4ngoaNQ.mjs +0 -316
- package/dist/proof-B6E0XUXJ.js +0 -1415
- package/dist/proof-NN4xCQGL.cjs +0 -1562
- package/dist/send-CxHKUNzv.mjs +0 -239
- package/dist/std__assert-B2NnY9bq.mjs +0 -79
- package/dist/temporal-polyfill-BCdTHexd.cjs +0 -3565
- /package/dist/{accept-8PiolDP7.mjs → accept-CPVqki78.mjs} +0 -0
- /package/dist/{activity-listener-BtTSxZWA.mjs → activity-listener-C-BSbKI7.mjs} +0 -0
- /package/dist/{client-CAM_bQXx.d.cts → client-D-XP_Ccb.d.cts} +0 -0
- /package/dist/{client-CSddvgWN.d.ts → client-D-XP_Ccb.d.ts} +0 -0
- /package/dist/{keys-Dbyd7bhl.mjs → keys-DIJNHW-Y.mjs} +0 -0
- /package/dist/{kv-CXBAok3k.mjs → kv-DCHkaJ9-.mjs} +0 -0
- /package/dist/{negotiation-RuwrPFqi.mjs → negotiation-CCocWT_N.mjs} +0 -0
- /package/dist/{retry-DgFqeS5k.mjs → retry-zX5xw5e0.mjs} +0 -0
- /package/dist/{chunk-D5IdezsZ.js → rolldown-runtime-BC-Eo5Mj.js} +0 -0
- /package/dist/{chunk-Czpeue4M.cjs → rolldown-runtime-Dmm3t92W.cjs} +0 -0
- /package/dist/{transformers-DXze6FUB.js → transformers-DAtXl_Kc.js} +0 -0
- /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
|
|
99
|
-
|
|
|
100
|
-
| [@fedify/fedify](/packages/fedify/)
|
|
101
|
-
| [@fedify/cli](/packages/cli/)
|
|
102
|
-
| [@fedify/create](/packages/create/)
|
|
103
|
-
| [@fedify/
|
|
104
|
-
| [@fedify/
|
|
105
|
-
| [@fedify/
|
|
106
|
-
| [@fedify/
|
|
107
|
-
| [@fedify/
|
|
108
|
-
| [@fedify/
|
|
109
|
-
| [@fedify/
|
|
110
|
-
| [@fedify/
|
|
111
|
-
| [@fedify/
|
|
112
|
-
| [@fedify/
|
|
113
|
-
| [@fedify/
|
|
114
|
-
| [@fedify/
|
|
115
|
-
| [@fedify/
|
|
116
|
-
| [@fedify/
|
|
117
|
-
| [@fedify/
|
|
118
|
-
| [@fedify/
|
|
119
|
-
| [@fedify/
|
|
120
|
-
| [@fedify/
|
|
121
|
-
| [@fedify/
|
|
122
|
-
| [@fedify/
|
|
123
|
-
| [@fedify/
|
|
124
|
-
| [@fedify/
|
|
125
|
-
| [@fedify/
|
|
126
|
-
| [@fedify/
|
|
127
|
-
| [@fedify/
|
|
128
|
-
| [@fedify/
|
|
129
|
-
| [@fedify/
|
|
130
|
-
| [@fedify/
|
|
131
|
-
| [@fedify/
|
|
132
|
-
| [@fedify/
|
|
133
|
-
| [@fedify/
|
|
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
|
|
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,
|
|
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 {
|
|
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
|
-
|
|
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,
|
|
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 {
|
|
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 {
|
|
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 {
|
|
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 {
|
|
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 };
|