@fedify/fedify 2.0.0-dev.1485 → 2.0.0-dev.150
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/LICENSE +1 -1
- package/README.md +38 -18
- package/dist/actor-Bhc5FasL.cjs +42079 -0
- package/dist/{actor-7ivEf1H3.js → actor-C6cDxaJJ.js} +4 -1
- package/dist/{actor-DXTdNCfp.js → actor-DPvScYuz.js} +7058 -2722
- package/dist/{actor-C22bXuuC.d.ts → actor-DqFajh9s.d.ts} +2 -2
- package/dist/actor-f2NtjyCg.d.cts +128 -0
- package/dist/{assert-MZs1qjMx.js → assert-Dp5_aoAs.js} +1 -1
- package/dist/{assert_instance_of-DHz7EHNU.js → assert_instance_of-D1m8F7x0.js} +1 -1
- package/dist/{assert_not_equals-f3m3epl3.js → assert_not_equals-B2R_8p36.js} +1 -1
- package/dist/{assert_rejects-DiIiJbZn.js → assert_rejects-BoKYY0g1.js} +2 -2
- package/dist/{assert_is_error-BPGph1Jx.js → assert_throws-DjkXin1a.js} +32 -2
- package/dist/{builder-BPGqEvtB.js → builder-DcDoTCBH.js} +20 -8
- package/dist/chunk-DqRYRqnO.cjs +34 -0
- package/dist/chunk-HsBuZ-b2.js +41 -0
- package/dist/client-94iWEfQa.d.cts +222 -0
- package/dist/{client-DF8anIB5.d.ts → client-BsGzbnV-.d.ts} +3 -75
- package/dist/{client-g2FDBoeY.js → client-CD87uCL_.js} +4 -23
- package/dist/compat/mod.cjs +10 -0
- package/dist/compat/mod.d.cts +11 -0
- package/dist/compat/mod.d.ts +10 -12
- package/dist/compat/mod.js +5 -5
- package/dist/compat/transformers.test.js +29 -24
- package/dist/compat-DmDDELst.cjs +4 -0
- package/dist/compat-nxUqe4Z-.js +4 -0
- package/dist/context-DBQ7nMCw.d.cts +2449 -0
- package/dist/context-DpN-0qNU.js +109 -0
- package/dist/{context-DmlbRh9p.d.ts → context-mM0Nu5yo.d.ts} +335 -134
- package/dist/deno-DHmnBq8X.js +131 -0
- package/dist/{testing-BG_8Fyas.js → dist-lStjlyET.js} +73 -114
- package/dist/{authdocloader-D_IvQE4z.js → docloader-C2QNrF7j.js} +17 -8
- package/dist/{esm-CPZhxxGc.js → esm-B52TuumP.js} +32 -17
- package/dist/federation/builder.test.js +16 -16
- package/dist/federation/collection.test.js +9 -12
- package/dist/federation/handler.test.js +123 -152
- package/dist/federation/idempotency.test.js +206 -0
- package/dist/federation/inbox.test.js +7 -7
- package/dist/federation/keycache.test.js +7 -8
- package/dist/federation/kv.test.js +64 -12
- package/dist/federation/middleware.test.js +281 -99
- package/dist/federation/mod.cjs +27 -0
- package/dist/federation/mod.d.cts +11 -0
- package/dist/federation/mod.d.ts +11 -13
- package/dist/federation/mod.js +13 -15
- package/dist/federation/mq.test.js +12 -13
- package/dist/federation/negotiation.test.js +25 -0
- package/dist/federation/retry.test.js +4 -6
- package/dist/federation/router.test.js +9 -11
- package/dist/federation/send.test.js +61 -18
- package/dist/federation-CoW-KDKv.cjs +266 -0
- package/dist/{federation-CMX7WzeL.js → federation-D0hkM4T7.js} +25 -3
- package/dist/{http-zsOxPKCt.js → http-B1d-Jhbj.js} +260 -10
- package/dist/{http-DqSNLFNY.d.ts → http-BbO0ejuk.d.ts} +2 -2
- package/dist/http-CS6iqtXa.cjs +1106 -0
- package/dist/http-M8k5mKc0.d.cts +253 -0
- package/dist/{http-C7rxW7Kh.js → http-b10BrywC.js} +4 -3
- package/dist/{inbox-eK2W2MF3.js → inbox-gPnuScsy.js} +26 -7
- package/dist/{key-CYOcZ9G5.js → key-W6YaI4J_.js} +4 -2
- package/dist/{keycache-BLq6GT4_.js → keycache-DkTZcjkH.js} +1 -1
- package/dist/{keys-BIwlbtMN.js → keys-CfcSjjys.js} +2 -1
- package/dist/{kv-C7sopW2E.d.ts → kv-BpJND1Hr.d.ts} +30 -1
- package/dist/{kv-CRZrzyXm.js → kv-DaWUKuhD.js} +22 -0
- package/dist/kv-cD_d4hg-.d.cts +110 -0
- package/dist/kv-cache-C6NrTtII.js +107 -0
- package/dist/kv-cache-DhRe6qxQ.js +122 -0
- package/dist/kv-cache-a7LD3ze0.cjs +134 -0
- package/dist/{ld-DWwLYT4e.js → ld-UYagkye9.js} +7 -4
- package/dist/lookup-C-ajaa9S.js +256 -0
- package/dist/{lookup-DNQyH8UQ.js → lookup-CjgzNtAk.js} +33 -125
- package/dist/lookup-DI7YTXtl.cjs +268 -0
- package/dist/{lookup-BHYMosdS.js → lookup-DP8Hm9oD.js} +3 -1
- package/dist/middleware-Botvlnr6.js +31 -0
- package/dist/{middleware-DakCaqXu.js → middleware-C2V0Hmj1.js} +105 -188
- package/dist/middleware-D5o8ITlx.cjs +4237 -0
- package/dist/middleware-ESmU0CBL.cjs +15 -0
- package/dist/middleware-JqrIzuk6.js +15 -0
- package/dist/{middleware-BcVqlHyD.js → middleware-V7PNM-lv.js} +143 -136
- package/dist/mod-B-hUPT2N.d.cts +1 -0
- package/dist/{mod-Cxt4Kpf6.d.ts → mod-BlVovdcy.d.ts} +20 -2
- package/dist/mod-BxRCHTz-.d.cts +307 -0
- package/dist/mod-C58MZ7Wx.d.cts +113 -0
- package/dist/mod-CAdoBu0x.d.ts +109 -0
- package/dist/mod-CcDPcLJW.d.cts +1 -0
- package/dist/{mod-Drmz72EK.d.ts → mod-D5Z2tISD.d.ts} +3 -3
- package/dist/mod-DgxG-byT.d.cts +266 -0
- package/dist/{lookup-3czM5mmU.d.ts → mod-Ds0mpFZU.d.ts} +9 -2
- package/dist/mod-Dy2fJtmN.d.cts +80 -0
- package/dist/{mod-0EysZ-dJ.d.ts → mod-GetHzY6F.d.ts} +2 -2
- package/dist/mod-fxr25Gv7.d.cts +107 -0
- package/dist/mod.cjs +137 -0
- package/dist/mod.d.cts +15 -0
- package/dist/mod.d.ts +15 -18
- package/dist/mod.js +19 -21
- package/dist/negotiation-B4NJHk1f.js +71 -0
- package/dist/nodeinfo/client.test.js +32 -114
- package/dist/nodeinfo/handler.test.js +35 -30
- package/dist/nodeinfo/mod.cjs +10 -0
- package/dist/nodeinfo/mod.d.cts +3 -0
- package/dist/nodeinfo/mod.d.ts +3 -5
- package/dist/nodeinfo/mod.js +6 -7
- package/dist/nodeinfo/types.test.js +10 -18
- package/dist/nodeinfo-BnthBobC.js +4 -0
- package/dist/nodeinfo-CdN0rEnZ.cjs +4 -0
- package/dist/otel/exporter.test.js +899 -0
- package/dist/otel/mod.cjs +262 -0
- package/dist/otel/mod.d.cts +230 -0
- package/dist/otel/mod.d.ts +232 -0
- package/dist/otel/mod.js +261 -0
- package/dist/owner-B4HbyP8s.d.cts +67 -0
- package/dist/{owner-smArESGi.js → owner-DgNCw_Z-.js} +46 -8
- package/dist/{owner-CQPnQVtf.d.ts → owner-kQRGVXG1.d.ts} +3 -3
- package/dist/{proof-C6z-uqeO.js → proof-BwleRoo3.js} +5 -3
- package/dist/proof-M11sS3Oq.cjs +710 -0
- package/dist/{proof-CT1SITRP.js → proof-TlLZC_r7.js} +53 -16
- package/dist/router-CVRQXlZi.js +118 -0
- package/dist/{send-1zdmNlUo.js → send-BMU9B7Sm.js} +9 -4
- package/dist/sig/http.test.js +19 -17
- package/dist/sig/key.test.js +15 -14
- package/dist/sig/ld.test.js +13 -12
- package/dist/sig/mod.cjs +28 -0
- package/dist/sig/mod.d.cts +6 -0
- package/dist/sig/mod.d.ts +5 -7
- package/dist/sig/mod.js +8 -10
- package/dist/sig/owner.test.js +40 -15
- package/dist/sig/proof.test.js +19 -17
- package/dist/sig-C34-oHBl.js +4 -0
- package/dist/sig-YYj5tCnr.cjs +4 -0
- package/dist/{std__assert-X-_kMxKM.js → std__assert-Cm-MfI66.js} +1 -1
- package/dist/testing/mod.d.ts +410 -232
- package/dist/testing/mod.js +9 -4
- package/dist/{transformers-Dna8Fg7k.js → transformers-BFT6d7J5.js} +3 -3
- package/dist/transformers-CoBS-oFG.cjs +116 -0
- package/dist/type-BSNcIxTd.js +14 -0
- package/dist/{types-BzyGRkRt.js → types-BtUjyi5y.js} +9 -170
- package/dist/types-CWgzGaqk.cjs +315 -0
- package/dist/{types-BIgY6c-l.js → types-D2jhK2VG.js} +1 -3
- package/dist/{runtime/authdocloader.test.js → utils/docloader.test.js} +20 -18
- package/dist/utils/kv-cache.test.js +211 -0
- package/dist/utils/mod.cjs +12 -0
- package/dist/utils/mod.d.cts +5 -0
- package/dist/utils/mod.d.ts +7 -0
- package/dist/utils/mod.js +11 -0
- package/dist/utils-D-Va7aXC.js +4 -0
- package/dist/utils-DyRU1gdZ.cjs +4 -0
- package/dist/vocab/actor.test.js +15 -13
- package/dist/vocab/lookup.test.js +285 -12
- package/dist/vocab/mod.cjs +86 -0
- package/dist/vocab/mod.d.cts +4 -0
- package/dist/vocab/mod.d.ts +3 -5
- package/dist/vocab/mod.js +6 -7
- package/dist/vocab/type.test.js +4 -4
- package/dist/vocab/vocab.test.js +8058 -1987
- package/dist/{vocab-SOE1ifCr.d.ts → vocab-BCWe1Ih5.d.ts} +292 -21
- package/dist/vocab-CeDBzu-f.d.cts +14903 -0
- package/dist/{type-I68qwqmo.js → vocab-Durhw0Gx.js} +6947 -7381
- package/dist/{vocab-Bg1J3mu4.js → vocab-NOF1dCjQ.js} +32 -18
- package/dist/vocab-Vw1RxMp6.cjs +296 -0
- package/dist/webfinger/handler.test.js +62 -29
- package/dist/webfinger/lookup.test.js +11 -12
- package/dist/webfinger/mod.cjs +8 -0
- package/dist/webfinger/mod.d.cts +2 -0
- package/dist/webfinger/mod.d.ts +1 -4
- package/dist/webfinger/mod.js +5 -6
- package/dist/webfinger-C72Y8lrh.js +4 -0
- package/dist/webfinger-vAtLmxOF.cjs +4 -0
- package/package.json +81 -45
- package/dist/assert_throws-BOO88avQ.js +0 -39
- package/dist/authdocloader-Bq0gEHRj.js +0 -52
- package/dist/compat-Bb5myD13.js +0 -4
- package/dist/denokv-Bv33Xxea.js +0 -57
- package/dist/docloader-BlVueewg.js +0 -4615
- package/dist/docloader-CxWcuWqQ.d.ts +0 -221
- package/dist/fixtures/activitypub.academy/users/brauca_darradiul.json +0 -83
- package/dist/fixtures/example.com/announce.json +0 -6
- package/dist/fixtures/example.com/collection.json +0 -19
- package/dist/fixtures/example.com/create.json +0 -6
- package/dist/fixtures/example.com/cross-origin-actor.json +0 -6
- package/dist/fixtures/example.com/hong-gildong.json +0 -11
- package/dist/fixtures/example.com/invite.json +0 -7
- package/dist/fixtures/example.com/key.json +0 -7
- package/dist/fixtures/example.com/key2.json +0 -6
- package/dist/fixtures/example.com/object.json +0 -6
- package/dist/fixtures/example.com/orderedcollectionpage.json +0 -24
- package/dist/fixtures/example.com/paged/a.json +0 -13
- package/dist/fixtures/example.com/paged/b.json +0 -16
- package/dist/fixtures/example.com/paged-collection.json +0 -6
- package/dist/fixtures/example.com/person.json +0 -22
- package/dist/fixtures/example.com/person2.json +0 -40
- package/dist/fixtures/example.com/test.json +0 -5
- package/dist/fixtures/example.com/users/handle.json +0 -16
- package/dist/fixtures/example.com/wrong-type.json +0 -3
- package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +0 -24
- package/dist/fixtures/remote.domain/users/bob.json +0 -20
- package/dist/fixtures/server.example/users/alice.json +0 -20
- package/dist/fixtures/w3id.org/identity/v1.json +0 -152
- package/dist/fixtures/w3id.org/security/data-integrity/v1.json +0 -74
- package/dist/fixtures/w3id.org/security/multikey/v1.json +0 -35
- package/dist/fixtures/w3id.org/security/v1.json +0 -50
- package/dist/fixtures/wizard.casa/users/hongminhee.json +0 -69
- package/dist/fixtures/www.w3.org/ns/activitystreams.json +0 -379
- package/dist/fixtures/www.w3.org/ns/did/v1.json +0 -58
- package/dist/key-Dn7Lram-.js +0 -260
- package/dist/key-S7WllAWz.js +0 -10
- package/dist/key-rRCUafNm.js +0 -10
- package/dist/middleware-CWbGhXnl.js +0 -26
- package/dist/middleware-D-OlNiyj.js +0 -17
- package/dist/mod-TFoH2Ql8.d.ts +0 -104
- package/dist/mod-g0xFzAP9.d.ts +0 -2
- package/dist/mq-CRGm1e_F.d.ts +0 -143
- package/dist/nodeinfo/semver.test.js +0 -143
- package/dist/nodeinfo-CyEbLjHs.js +0 -4
- package/dist/runtime/docloader.test.js +0 -522
- package/dist/runtime/key.test.js +0 -103
- package/dist/runtime/langstr.test.d.ts +0 -3
- package/dist/runtime/langstr.test.js +0 -39
- package/dist/runtime/mod.d.ts +0 -8
- package/dist/runtime/mod.js +0 -13
- package/dist/runtime/multibase/multibase.test.d.ts +0 -3
- package/dist/runtime/multibase/multibase.test.js +0 -358
- package/dist/runtime/url.test.d.ts +0 -3
- package/dist/runtime/url.test.js +0 -45
- package/dist/runtime-BSkOVUWM.js +0 -4
- package/dist/semver-dArNLkR9.js +0 -149
- package/dist/sig-BXJO--F9.js +0 -4
- package/dist/src/vocab/accept.yaml +0 -15
- package/dist/src/vocab/activity.yaml +0 -98
- package/dist/src/vocab/add.yaml +0 -16
- package/dist/src/vocab/announce.yaml +0 -30
- package/dist/src/vocab/application.yaml +0 -324
- package/dist/src/vocab/arrive.yaml +0 -15
- package/dist/src/vocab/article.yaml +0 -46
- package/dist/src/vocab/audio.yaml +0 -11
- package/dist/src/vocab/block.yaml +0 -16
- package/dist/src/vocab/chatmessage.yaml +0 -50
- package/dist/src/vocab/collection.yaml +0 -154
- package/dist/src/vocab/collectionpage.yaml +0 -55
- package/dist/src/vocab/create.yaml +0 -28
- package/dist/src/vocab/dataintegrityproof.yaml +0 -56
- package/dist/src/vocab/delete.yaml +0 -27
- package/dist/src/vocab/didservice.yaml +0 -22
- package/dist/src/vocab/dislike.yaml +0 -14
- package/dist/src/vocab/document.yaml +0 -31
- package/dist/src/vocab/emoji.yaml +0 -12
- package/dist/src/vocab/emojireact.yaml +0 -17
- package/dist/src/vocab/endpoints.yaml +0 -85
- package/dist/src/vocab/event.yaml +0 -11
- package/dist/src/vocab/export.yaml +0 -9
- package/dist/src/vocab/flag.yaml +0 -15
- package/dist/src/vocab/follow.yaml +0 -19
- package/dist/src/vocab/group.yaml +0 -324
- package/dist/src/vocab/hashtag.yaml +0 -14
- package/dist/src/vocab/ignore.yaml +0 -14
- package/dist/src/vocab/image.yaml +0 -9
- package/dist/src/vocab/intransitiveactivity.yaml +0 -15
- package/dist/src/vocab/invite.yaml +0 -14
- package/dist/src/vocab/join.yaml +0 -14
- package/dist/src/vocab/key.yaml +0 -28
- package/dist/src/vocab/leave.yaml +0 -14
- package/dist/src/vocab/like.yaml +0 -16
- package/dist/src/vocab/link.yaml +0 -101
- package/dist/src/vocab/listen.yaml +0 -12
- package/dist/src/vocab/mention.yaml +0 -9
- package/dist/src/vocab/move.yaml +0 -15
- package/dist/src/vocab/multikey.yaml +0 -36
- package/dist/src/vocab/note.yaml +0 -48
- package/dist/src/vocab/object.yaml +0 -404
- package/dist/src/vocab/offer.yaml +0 -15
- package/dist/src/vocab/orderedcollection.yaml +0 -39
- package/dist/src/vocab/orderedcollectionpage.yaml +0 -50
- package/dist/src/vocab/organization.yaml +0 -324
- package/dist/src/vocab/page.yaml +0 -11
- package/dist/src/vocab/person.yaml +0 -324
- package/dist/src/vocab/place.yaml +0 -75
- package/dist/src/vocab/profile.yaml +0 -26
- package/dist/src/vocab/propertyvalue.yaml +0 -32
- package/dist/src/vocab/question.yaml +0 -103
- package/dist/src/vocab/read.yaml +0 -13
- package/dist/src/vocab/reject.yaml +0 -14
- package/dist/src/vocab/relationship.yaml +0 -52
- package/dist/src/vocab/remove.yaml +0 -14
- package/dist/src/vocab/service.yaml +0 -324
- package/dist/src/vocab/source.yaml +0 -26
- package/dist/src/vocab/tentativeaccept.yaml +0 -14
- package/dist/src/vocab/tentativereject.yaml +0 -14
- package/dist/src/vocab/tombstone.yaml +0 -24
- package/dist/src/vocab/travel.yaml +0 -16
- package/dist/src/vocab/undo.yaml +0 -26
- package/dist/src/vocab/update.yaml +0 -58
- package/dist/src/vocab/video.yaml +0 -11
- package/dist/src/vocab/view.yaml +0 -13
- package/dist/testing/docloader.test.js +0 -24
- package/dist/vocab/schema.yaml +0 -247
- package/dist/webfinger-C3GIyXIg.js +0 -4
- package/dist/x/cfworkers.d.ts +0 -61
- package/dist/x/cfworkers.js +0 -98
- package/dist/x/cfworkers.test.d.ts +0 -3
- package/dist/x/cfworkers.test.js +0 -179
- package/dist/x/hono.d.ts +0 -56
- package/dist/x/hono.js +0 -60
- package/dist/x/sveltekit.d.ts +0 -48
- package/dist/x/sveltekit.js +0 -68
- /package/dist/{assert_equals-DSbWqCm3.js → assert_equals-Gbplq4lg.js} +0 -0
- /package/dist/{collection-CSzG2j1P.js → collection-CrkRM5Ep.js} +0 -0
- /package/dist/{nodeinfo/semver.test.d.ts → federation/idempotency.test.d.ts} +0 -0
- /package/dist/{runtime/authdocloader.test.d.ts → federation/negotiation.test.d.ts} +0 -0
- /package/dist/{mod-1pDWKvUL.d.ts → mod-CVgZgliM.d.ts} +0 -0
- /package/dist/{mod-GIh5OYxW.d.ts → mod-bjzj5QIb.d.ts} +0 -0
- /package/dist/{runtime/docloader.test.d.ts → otel/exporter.test.d.ts} +0 -0
- /package/dist/{retry-D4GJ670a.js → retry-Bz5pP75o.js} +0 -0
- /package/dist/{testing → utils}/docloader.test.d.ts +0 -0
- /package/dist/{runtime/key.test.d.ts → utils/kv-cache.test.d.ts} +0 -0
|
@@ -3,45 +3,43 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
import { assertEquals } from "../assert_equals-
|
|
8
|
-
import { assert } from "../assert-
|
|
9
|
-
import "../assert_instance_of-
|
|
10
|
-
import { MemoryKvStore } from "../kv-
|
|
11
|
-
import
|
|
12
|
-
import "../
|
|
13
|
-
import "../client-
|
|
14
|
-
import "../
|
|
15
|
-
import "../types-
|
|
16
|
-
import "../
|
|
17
|
-
import "../
|
|
18
|
-
import
|
|
19
|
-
import "../
|
|
20
|
-
import "../
|
|
21
|
-
import "../
|
|
22
|
-
import "../
|
|
23
|
-
import
|
|
24
|
-
import "../
|
|
25
|
-
import "../
|
|
26
|
-
import "../
|
|
27
|
-
import "../
|
|
28
|
-
import "../
|
|
29
|
-
import
|
|
30
|
-
import "../
|
|
31
|
-
import
|
|
32
|
-
import "../
|
|
33
|
-
import "../
|
|
34
|
-
import "../
|
|
35
|
-
import
|
|
6
|
+
import { createTestTracerProvider, mockDocumentLoader, test } from "../dist-lStjlyET.js";
|
|
7
|
+
import { assertEquals } from "../assert_equals-Gbplq4lg.js";
|
|
8
|
+
import { assert } from "../assert-Dp5_aoAs.js";
|
|
9
|
+
import "../assert_instance_of-D1m8F7x0.js";
|
|
10
|
+
import { MemoryKvStore } from "../kv-DaWUKuhD.js";
|
|
11
|
+
import "../deno-DHmnBq8X.js";
|
|
12
|
+
import { createFederation, handleActor, handleCollection, handleCustomCollection, handleInbox, handleObject, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-C2V0Hmj1.js";
|
|
13
|
+
import "../client-CD87uCL_.js";
|
|
14
|
+
import "../router-CVRQXlZi.js";
|
|
15
|
+
import "../types-D2jhK2VG.js";
|
|
16
|
+
import { Create, Note, Person } from "../vocab-Durhw0Gx.js";
|
|
17
|
+
import "../lookup-DP8Hm9oD.js";
|
|
18
|
+
import "../type-BSNcIxTd.js";
|
|
19
|
+
import "../actor-C6cDxaJJ.js";
|
|
20
|
+
import "../key-W6YaI4J_.js";
|
|
21
|
+
import { signRequest } from "../http-b10BrywC.js";
|
|
22
|
+
import "../ld-UYagkye9.js";
|
|
23
|
+
import "../owner-DgNCw_Z-.js";
|
|
24
|
+
import "../proof-BwleRoo3.js";
|
|
25
|
+
import "../docloader-C2QNrF7j.js";
|
|
26
|
+
import "../kv-cache-C6NrTtII.js";
|
|
27
|
+
import "../lookup-CjgzNtAk.js";
|
|
28
|
+
import { InboxListenerSet } from "../inbox-gPnuScsy.js";
|
|
29
|
+
import "../builder-DcDoTCBH.js";
|
|
30
|
+
import "../collection-CrkRM5Ep.js";
|
|
31
|
+
import "../keycache-DkTZcjkH.js";
|
|
32
|
+
import "../negotiation-B4NJHk1f.js";
|
|
33
|
+
import "../retry-Bz5pP75o.js";
|
|
34
|
+
import "../send-BMU9B7Sm.js";
|
|
35
|
+
import "../std__assert-Cm-MfI66.js";
|
|
36
|
+
import "../assert_rejects-BoKYY0g1.js";
|
|
37
|
+
import "../assert_throws-DjkXin1a.js";
|
|
38
|
+
import "../assert_not_equals-B2R_8p36.js";
|
|
39
|
+
import { createInboxContext, createRequestContext } from "../context-DpN-0qNU.js";
|
|
40
|
+
import { rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-CfcSjjys.js";
|
|
36
41
|
|
|
37
42
|
//#region src/federation/handler.test.ts
|
|
38
|
-
test("acceptsJsonLd()", () => {
|
|
39
|
-
assert(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/activity+json" } })));
|
|
40
|
-
assert(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/ld+json" } })));
|
|
41
|
-
assert(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/json" } })));
|
|
42
|
-
assertFalse(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/ld+json; q=0.5, text/html; q=0.8" } })));
|
|
43
|
-
assertFalse(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/ld+json; q=0.4, application/xhtml+xml; q=0.9" } })));
|
|
44
|
-
});
|
|
45
43
|
test("handleActor()", async () => {
|
|
46
44
|
const federation = createFederation({ kv: new MemoryKvStore() });
|
|
47
45
|
let context = createRequestContext({
|
|
@@ -64,11 +62,6 @@ test("handleActor()", async () => {
|
|
|
64
62
|
onNotFoundCalled = request;
|
|
65
63
|
return new Response("Not found", { status: 404 });
|
|
66
64
|
};
|
|
67
|
-
let onNotAcceptableCalled = null;
|
|
68
|
-
const onNotAcceptable = (request) => {
|
|
69
|
-
onNotAcceptableCalled = request;
|
|
70
|
-
return new Response("Not acceptable", { status: 406 });
|
|
71
|
-
};
|
|
72
65
|
let onUnauthorizedCalled = null;
|
|
73
66
|
const onUnauthorized = (request) => {
|
|
74
67
|
onUnauthorizedCalled = request;
|
|
@@ -78,44 +71,21 @@ test("handleActor()", async () => {
|
|
|
78
71
|
context,
|
|
79
72
|
identifier: "someone",
|
|
80
73
|
onNotFound,
|
|
81
|
-
onNotAcceptable,
|
|
82
74
|
onUnauthorized
|
|
83
75
|
});
|
|
84
76
|
assertEquals(response.status, 404);
|
|
85
77
|
assertEquals(onNotFoundCalled, context.request);
|
|
86
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
87
78
|
assertEquals(onUnauthorizedCalled, null);
|
|
88
79
|
onNotFoundCalled = null;
|
|
89
|
-
context = createRequestContext({
|
|
90
|
-
...context,
|
|
91
|
-
getActor(handle) {
|
|
92
|
-
return Promise.resolve(actorDispatcher(context, handle));
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
response = await handleActor(context.request, {
|
|
96
|
-
context,
|
|
97
|
-
identifier: "someone",
|
|
98
|
-
actorDispatcher,
|
|
99
|
-
onNotFound,
|
|
100
|
-
onNotAcceptable,
|
|
101
|
-
onUnauthorized
|
|
102
|
-
});
|
|
103
|
-
assertEquals(response.status, 406);
|
|
104
|
-
assertEquals(onNotFoundCalled, null);
|
|
105
|
-
assertEquals(onNotAcceptableCalled, context.request);
|
|
106
|
-
assertEquals(onUnauthorizedCalled, null);
|
|
107
|
-
onNotAcceptableCalled = null;
|
|
108
80
|
response = await handleActor(context.request, {
|
|
109
81
|
context,
|
|
110
82
|
identifier: "no-one",
|
|
111
83
|
actorDispatcher,
|
|
112
84
|
onNotFound,
|
|
113
|
-
onNotAcceptable,
|
|
114
85
|
onUnauthorized
|
|
115
86
|
});
|
|
116
87
|
assertEquals(response.status, 404);
|
|
117
88
|
assertEquals(onNotFoundCalled, context.request);
|
|
118
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
119
89
|
assertEquals(onUnauthorizedCalled, null);
|
|
120
90
|
onNotFoundCalled = null;
|
|
121
91
|
context = createRequestContext({
|
|
@@ -127,7 +97,6 @@ test("handleActor()", async () => {
|
|
|
127
97
|
identifier: "someone",
|
|
128
98
|
actorDispatcher,
|
|
129
99
|
onNotFound,
|
|
130
|
-
onNotAcceptable,
|
|
131
100
|
onUnauthorized
|
|
132
101
|
});
|
|
133
102
|
assertEquals(response.status, 200);
|
|
@@ -176,19 +145,16 @@ test("handleActor()", async () => {
|
|
|
176
145
|
name: "Someone"
|
|
177
146
|
});
|
|
178
147
|
assertEquals(onNotFoundCalled, null);
|
|
179
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
180
148
|
assertEquals(onUnauthorizedCalled, null);
|
|
181
149
|
response = await handleActor(context.request, {
|
|
182
150
|
context,
|
|
183
151
|
identifier: "no-one",
|
|
184
152
|
actorDispatcher,
|
|
185
153
|
onNotFound,
|
|
186
|
-
onNotAcceptable,
|
|
187
154
|
onUnauthorized
|
|
188
155
|
});
|
|
189
156
|
assertEquals(response.status, 404);
|
|
190
157
|
assertEquals(onNotFoundCalled, context.request);
|
|
191
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
192
158
|
assertEquals(onUnauthorizedCalled, null);
|
|
193
159
|
onNotFoundCalled = null;
|
|
194
160
|
response = await handleActor(context.request, {
|
|
@@ -197,12 +163,10 @@ test("handleActor()", async () => {
|
|
|
197
163
|
actorDispatcher,
|
|
198
164
|
authorizePredicate: (_ctx, _handle, signedKey, signedKeyOwner) => signedKey != null && signedKeyOwner != null,
|
|
199
165
|
onNotFound,
|
|
200
|
-
onNotAcceptable,
|
|
201
166
|
onUnauthorized
|
|
202
167
|
});
|
|
203
168
|
assertEquals(response.status, 401);
|
|
204
169
|
assertEquals(onNotFoundCalled, null);
|
|
205
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
206
170
|
assertEquals(onUnauthorizedCalled, context.request);
|
|
207
171
|
onUnauthorizedCalled = null;
|
|
208
172
|
context = createRequestContext({
|
|
@@ -216,7 +180,6 @@ test("handleActor()", async () => {
|
|
|
216
180
|
actorDispatcher,
|
|
217
181
|
authorizePredicate: (_ctx, _handle, signedKey, signedKeyOwner) => signedKey != null && signedKeyOwner != null,
|
|
218
182
|
onNotFound,
|
|
219
|
-
onNotAcceptable,
|
|
220
183
|
onUnauthorized
|
|
221
184
|
});
|
|
222
185
|
assertEquals(response.status, 200);
|
|
@@ -265,7 +228,6 @@ test("handleActor()", async () => {
|
|
|
265
228
|
name: "Someone"
|
|
266
229
|
});
|
|
267
230
|
assertEquals(onNotFoundCalled, null);
|
|
268
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
269
231
|
assertEquals(onUnauthorizedCalled, null);
|
|
270
232
|
});
|
|
271
233
|
test("handleObject()", async () => {
|
|
@@ -290,11 +252,6 @@ test("handleObject()", async () => {
|
|
|
290
252
|
onNotFoundCalled = request;
|
|
291
253
|
return new Response("Not found", { status: 404 });
|
|
292
254
|
};
|
|
293
|
-
let onNotAcceptableCalled = null;
|
|
294
|
-
const onNotAcceptable = (request) => {
|
|
295
|
-
onNotAcceptableCalled = request;
|
|
296
|
-
return new Response("Not acceptable", { status: 406 });
|
|
297
|
-
};
|
|
298
255
|
let onUnauthorizedCalled = null;
|
|
299
256
|
const onUnauthorized = (request) => {
|
|
300
257
|
onUnauthorizedCalled = request;
|
|
@@ -307,12 +264,10 @@ test("handleObject()", async () => {
|
|
|
307
264
|
id: "123"
|
|
308
265
|
},
|
|
309
266
|
onNotFound,
|
|
310
|
-
onNotAcceptable,
|
|
311
267
|
onUnauthorized
|
|
312
268
|
});
|
|
313
269
|
assertEquals(response.status, 404);
|
|
314
270
|
assertEquals(onNotFoundCalled, context.request);
|
|
315
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
316
271
|
assertEquals(onUnauthorizedCalled, null);
|
|
317
272
|
onNotFoundCalled = null;
|
|
318
273
|
response = await handleObject(context.request, {
|
|
@@ -323,14 +278,11 @@ test("handleObject()", async () => {
|
|
|
323
278
|
},
|
|
324
279
|
objectDispatcher,
|
|
325
280
|
onNotFound,
|
|
326
|
-
onNotAcceptable,
|
|
327
281
|
onUnauthorized
|
|
328
282
|
});
|
|
329
|
-
assertEquals(response.status,
|
|
283
|
+
assertEquals(response.status, 200);
|
|
330
284
|
assertEquals(onNotFoundCalled, null);
|
|
331
|
-
assertEquals(onNotAcceptableCalled, context.request);
|
|
332
285
|
assertEquals(onUnauthorizedCalled, null);
|
|
333
|
-
onNotAcceptableCalled = null;
|
|
334
286
|
response = await handleObject(context.request, {
|
|
335
287
|
context,
|
|
336
288
|
values: {
|
|
@@ -339,12 +291,10 @@ test("handleObject()", async () => {
|
|
|
339
291
|
},
|
|
340
292
|
objectDispatcher,
|
|
341
293
|
onNotFound,
|
|
342
|
-
onNotAcceptable,
|
|
343
294
|
onUnauthorized
|
|
344
295
|
});
|
|
345
296
|
assertEquals(response.status, 404);
|
|
346
297
|
assertEquals(onNotFoundCalled, context.request);
|
|
347
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
348
298
|
assertEquals(onUnauthorizedCalled, null);
|
|
349
299
|
onNotFoundCalled = null;
|
|
350
300
|
response = await handleObject(context.request, {
|
|
@@ -355,12 +305,10 @@ test("handleObject()", async () => {
|
|
|
355
305
|
},
|
|
356
306
|
objectDispatcher,
|
|
357
307
|
onNotFound,
|
|
358
|
-
onNotAcceptable,
|
|
359
308
|
onUnauthorized
|
|
360
309
|
});
|
|
361
310
|
assertEquals(response.status, 404);
|
|
362
311
|
assertEquals(onNotFoundCalled, context.request);
|
|
363
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
364
312
|
assertEquals(onUnauthorizedCalled, null);
|
|
365
313
|
onNotFoundCalled = null;
|
|
366
314
|
context = createRequestContext({
|
|
@@ -375,7 +323,6 @@ test("handleObject()", async () => {
|
|
|
375
323
|
},
|
|
376
324
|
objectDispatcher,
|
|
377
325
|
onNotFound,
|
|
378
|
-
onNotAcceptable,
|
|
379
326
|
onUnauthorized
|
|
380
327
|
});
|
|
381
328
|
assertEquals(response.status, 200);
|
|
@@ -405,7 +352,6 @@ test("handleObject()", async () => {
|
|
|
405
352
|
type: "Note"
|
|
406
353
|
});
|
|
407
354
|
assertEquals(onNotFoundCalled, null);
|
|
408
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
409
355
|
assertEquals(onUnauthorizedCalled, null);
|
|
410
356
|
response = await handleObject(context.request, {
|
|
411
357
|
context,
|
|
@@ -415,12 +361,10 @@ test("handleObject()", async () => {
|
|
|
415
361
|
},
|
|
416
362
|
objectDispatcher,
|
|
417
363
|
onNotFound,
|
|
418
|
-
onNotAcceptable,
|
|
419
364
|
onUnauthorized
|
|
420
365
|
});
|
|
421
366
|
assertEquals(response.status, 404);
|
|
422
367
|
assertEquals(onNotFoundCalled, context.request);
|
|
423
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
424
368
|
assertEquals(onUnauthorizedCalled, null);
|
|
425
369
|
onNotFoundCalled = null;
|
|
426
370
|
response = await handleObject(context.request, {
|
|
@@ -431,12 +375,10 @@ test("handleObject()", async () => {
|
|
|
431
375
|
},
|
|
432
376
|
objectDispatcher,
|
|
433
377
|
onNotFound,
|
|
434
|
-
onNotAcceptable,
|
|
435
378
|
onUnauthorized
|
|
436
379
|
});
|
|
437
380
|
assertEquals(response.status, 404);
|
|
438
381
|
assertEquals(onNotFoundCalled, context.request);
|
|
439
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
440
382
|
assertEquals(onUnauthorizedCalled, null);
|
|
441
383
|
onNotFoundCalled = null;
|
|
442
384
|
response = await handleObject(context.request, {
|
|
@@ -448,12 +390,10 @@ test("handleObject()", async () => {
|
|
|
448
390
|
objectDispatcher,
|
|
449
391
|
authorizePredicate: (_ctx, _values, signedKey, signedKeyOwner) => signedKey != null && signedKeyOwner != null,
|
|
450
392
|
onNotFound,
|
|
451
|
-
onNotAcceptable,
|
|
452
393
|
onUnauthorized
|
|
453
394
|
});
|
|
454
395
|
assertEquals(response.status, 401);
|
|
455
396
|
assertEquals(onNotFoundCalled, null);
|
|
456
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
457
397
|
assertEquals(onUnauthorizedCalled, context.request);
|
|
458
398
|
onUnauthorizedCalled = null;
|
|
459
399
|
context = createRequestContext({
|
|
@@ -470,7 +410,6 @@ test("handleObject()", async () => {
|
|
|
470
410
|
objectDispatcher,
|
|
471
411
|
authorizePredicate: (_ctx, _values, signedKey, signedKeyOwner) => signedKey != null && signedKeyOwner != null,
|
|
472
412
|
onNotFound,
|
|
473
|
-
onNotAcceptable,
|
|
474
413
|
onUnauthorized
|
|
475
414
|
});
|
|
476
415
|
assertEquals(response.status, 200);
|
|
@@ -500,7 +439,6 @@ test("handleObject()", async () => {
|
|
|
500
439
|
type: "Note"
|
|
501
440
|
});
|
|
502
441
|
assertEquals(onNotFoundCalled, null);
|
|
503
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
504
442
|
assertEquals(onUnauthorizedCalled, null);
|
|
505
443
|
});
|
|
506
444
|
test("handleCollection()", async () => {
|
|
@@ -538,11 +476,6 @@ test("handleCollection()", async () => {
|
|
|
538
476
|
onNotFoundCalled = request;
|
|
539
477
|
return new Response("Not found", { status: 404 });
|
|
540
478
|
};
|
|
541
|
-
let onNotAcceptableCalled = null;
|
|
542
|
-
const onNotAcceptable = (request) => {
|
|
543
|
-
onNotAcceptableCalled = request;
|
|
544
|
-
return new Response("Not acceptable", { status: 406 });
|
|
545
|
-
};
|
|
546
479
|
let onUnauthorizedCalled = null;
|
|
547
480
|
const onUnauthorized = (request) => {
|
|
548
481
|
onUnauthorizedCalled = request;
|
|
@@ -556,12 +489,10 @@ test("handleCollection()", async () => {
|
|
|
556
489
|
return new URL(`https://example.com/users/${identifier}`);
|
|
557
490
|
},
|
|
558
491
|
onNotFound,
|
|
559
|
-
onNotAcceptable,
|
|
560
492
|
onUnauthorized
|
|
561
493
|
});
|
|
562
494
|
assertEquals(response.status, 404);
|
|
563
495
|
assertEquals(onNotFoundCalled, context.request);
|
|
564
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
565
496
|
assertEquals(onUnauthorizedCalled, null);
|
|
566
497
|
onNotFoundCalled = null;
|
|
567
498
|
response = await handleCollection(context.request, {
|
|
@@ -573,14 +504,11 @@ test("handleCollection()", async () => {
|
|
|
573
504
|
},
|
|
574
505
|
collectionCallbacks: { dispatcher },
|
|
575
506
|
onNotFound,
|
|
576
|
-
onNotAcceptable,
|
|
577
507
|
onUnauthorized
|
|
578
508
|
});
|
|
579
|
-
assertEquals(response.status,
|
|
509
|
+
assertEquals(response.status, 200);
|
|
580
510
|
assertEquals(onNotFoundCalled, null);
|
|
581
|
-
assertEquals(onNotAcceptableCalled, context.request);
|
|
582
511
|
assertEquals(onUnauthorizedCalled, null);
|
|
583
|
-
onNotAcceptableCalled = null;
|
|
584
512
|
response = await handleCollection(context.request, {
|
|
585
513
|
context,
|
|
586
514
|
name: "collection",
|
|
@@ -590,12 +518,10 @@ test("handleCollection()", async () => {
|
|
|
590
518
|
},
|
|
591
519
|
collectionCallbacks: { dispatcher },
|
|
592
520
|
onNotFound,
|
|
593
|
-
onNotAcceptable,
|
|
594
521
|
onUnauthorized
|
|
595
522
|
});
|
|
596
523
|
assertEquals(response.status, 404);
|
|
597
524
|
assertEquals(onNotFoundCalled, context.request);
|
|
598
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
599
525
|
assertEquals(onUnauthorizedCalled, null);
|
|
600
526
|
onNotFoundCalled = null;
|
|
601
527
|
context = createRequestContext({
|
|
@@ -611,12 +537,10 @@ test("handleCollection()", async () => {
|
|
|
611
537
|
},
|
|
612
538
|
collectionCallbacks: { dispatcher },
|
|
613
539
|
onNotFound,
|
|
614
|
-
onNotAcceptable,
|
|
615
540
|
onUnauthorized
|
|
616
541
|
});
|
|
617
542
|
assertEquals(response.status, 404);
|
|
618
543
|
assertEquals(onNotFoundCalled, context.request);
|
|
619
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
620
544
|
assertEquals(onUnauthorizedCalled, null);
|
|
621
545
|
onNotFoundCalled = null;
|
|
622
546
|
response = await handleCollection(context.request, {
|
|
@@ -628,7 +552,6 @@ test("handleCollection()", async () => {
|
|
|
628
552
|
},
|
|
629
553
|
collectionCallbacks: { dispatcher },
|
|
630
554
|
onNotFound,
|
|
631
|
-
onNotAcceptable,
|
|
632
555
|
onUnauthorized
|
|
633
556
|
});
|
|
634
557
|
assertEquals(response.status, 200);
|
|
@@ -701,7 +624,6 @@ test("handleCollection()", async () => {
|
|
|
701
624
|
]
|
|
702
625
|
});
|
|
703
626
|
assertEquals(onNotFoundCalled, null);
|
|
704
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
705
627
|
assertEquals(onUnauthorizedCalled, null);
|
|
706
628
|
response = await handleCollection(context.request, {
|
|
707
629
|
context,
|
|
@@ -715,12 +637,10 @@ test("handleCollection()", async () => {
|
|
|
715
637
|
authorizePredicate: (_ctx, _handle, key, keyOwner) => key != null && keyOwner != null
|
|
716
638
|
},
|
|
717
639
|
onNotFound,
|
|
718
|
-
onNotAcceptable,
|
|
719
640
|
onUnauthorized
|
|
720
641
|
});
|
|
721
642
|
assertEquals(response.status, 401);
|
|
722
643
|
assertEquals(onNotFoundCalled, null);
|
|
723
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
724
644
|
assertEquals(onUnauthorizedCalled, context.request);
|
|
725
645
|
onUnauthorizedCalled = null;
|
|
726
646
|
context = createRequestContext({
|
|
@@ -740,7 +660,6 @@ test("handleCollection()", async () => {
|
|
|
740
660
|
authorizePredicate: (_ctx, _handle, key, keyOwner) => key != null && keyOwner != null
|
|
741
661
|
},
|
|
742
662
|
onNotFound,
|
|
743
|
-
onNotAcceptable,
|
|
744
663
|
onUnauthorized
|
|
745
664
|
});
|
|
746
665
|
assertEquals(response.status, 200);
|
|
@@ -788,7 +707,6 @@ test("handleCollection()", async () => {
|
|
|
788
707
|
]
|
|
789
708
|
});
|
|
790
709
|
assertEquals(onNotFoundCalled, null);
|
|
791
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
792
710
|
assertEquals(onUnauthorizedCalled, null);
|
|
793
711
|
response = await handleCollection(context.request, {
|
|
794
712
|
context,
|
|
@@ -804,7 +722,6 @@ test("handleCollection()", async () => {
|
|
|
804
722
|
lastCursor
|
|
805
723
|
},
|
|
806
724
|
onNotFound,
|
|
807
|
-
onNotAcceptable,
|
|
808
725
|
onUnauthorized
|
|
809
726
|
});
|
|
810
727
|
assertEquals(response.status, 200);
|
|
@@ -838,7 +755,6 @@ test("handleCollection()", async () => {
|
|
|
838
755
|
last: "https://example.com/?cursor=2"
|
|
839
756
|
});
|
|
840
757
|
assertEquals(onNotFoundCalled, null);
|
|
841
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
842
758
|
assertEquals(onUnauthorizedCalled, null);
|
|
843
759
|
let url = new URL("https://example.com/?cursor=0");
|
|
844
760
|
context = createRequestContext({
|
|
@@ -860,7 +776,6 @@ test("handleCollection()", async () => {
|
|
|
860
776
|
lastCursor
|
|
861
777
|
},
|
|
862
778
|
onNotFound,
|
|
863
|
-
onNotAcceptable,
|
|
864
779
|
onUnauthorized
|
|
865
780
|
});
|
|
866
781
|
assertEquals(response.status, 200);
|
|
@@ -898,7 +813,6 @@ test("handleCollection()", async () => {
|
|
|
898
813
|
}]
|
|
899
814
|
});
|
|
900
815
|
assertEquals(onNotFoundCalled, null);
|
|
901
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
902
816
|
assertEquals(onUnauthorizedCalled, null);
|
|
903
817
|
url = new URL("https://example.com/?cursor=2");
|
|
904
818
|
context = createRequestContext({
|
|
@@ -920,7 +834,6 @@ test("handleCollection()", async () => {
|
|
|
920
834
|
lastCursor
|
|
921
835
|
},
|
|
922
836
|
onNotFound,
|
|
923
|
-
onNotAcceptable,
|
|
924
837
|
onUnauthorized
|
|
925
838
|
});
|
|
926
839
|
assertEquals(response.status, 200);
|
|
@@ -958,7 +871,6 @@ test("handleCollection()", async () => {
|
|
|
958
871
|
}]
|
|
959
872
|
});
|
|
960
873
|
assertEquals(onNotFoundCalled, null);
|
|
961
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
962
874
|
assertEquals(onUnauthorizedCalled, null);
|
|
963
875
|
});
|
|
964
876
|
test("handleInbox()", async () => {
|
|
@@ -1330,11 +1242,6 @@ test("handleCustomCollection()", async () => {
|
|
|
1330
1242
|
onNotFoundCalled = request;
|
|
1331
1243
|
return new Response("Not found", { status: 404 });
|
|
1332
1244
|
};
|
|
1333
|
-
let onNotAcceptableCalled = null;
|
|
1334
|
-
const onNotAcceptable = (request) => {
|
|
1335
|
-
onNotAcceptableCalled = request;
|
|
1336
|
-
return new Response("Not acceptable", { status: 406 });
|
|
1337
|
-
};
|
|
1338
1245
|
let onUnauthorizedCalled = null;
|
|
1339
1246
|
const onUnauthorized = (request) => {
|
|
1340
1247
|
onUnauthorizedCalled = request;
|
|
@@ -1342,7 +1249,6 @@ test("handleCustomCollection()", async () => {
|
|
|
1342
1249
|
};
|
|
1343
1250
|
const errorHandlers = {
|
|
1344
1251
|
onNotFound,
|
|
1345
|
-
onNotAcceptable,
|
|
1346
1252
|
onUnauthorized
|
|
1347
1253
|
};
|
|
1348
1254
|
let response = await handleCustomCollection(context.request, {
|
|
@@ -1353,21 +1259,7 @@ test("handleCustomCollection()", async () => {
|
|
|
1353
1259
|
});
|
|
1354
1260
|
assertEquals(response.status, 404);
|
|
1355
1261
|
assertEquals(onNotFoundCalled, context.request);
|
|
1356
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
1357
|
-
assertEquals(onUnauthorizedCalled, null);
|
|
1358
|
-
onNotFoundCalled = null;
|
|
1359
|
-
response = await handleCustomCollection(context.request, {
|
|
1360
|
-
context,
|
|
1361
|
-
name: "custom collection",
|
|
1362
|
-
values: { handle: "someone" },
|
|
1363
|
-
collectionCallbacks: { dispatcher },
|
|
1364
|
-
...errorHandlers
|
|
1365
|
-
});
|
|
1366
|
-
assertEquals(response.status, 406);
|
|
1367
|
-
assertEquals(onNotFoundCalled, null);
|
|
1368
|
-
assertEquals(onNotAcceptableCalled, context.request);
|
|
1369
1262
|
assertEquals(onUnauthorizedCalled, null);
|
|
1370
|
-
onNotAcceptableCalled = null;
|
|
1371
1263
|
context = createRequestContext({
|
|
1372
1264
|
...context,
|
|
1373
1265
|
request: new Request(context.url, { headers: { Accept: "application/activity+json" } })
|
|
@@ -1381,7 +1273,6 @@ test("handleCustomCollection()", async () => {
|
|
|
1381
1273
|
});
|
|
1382
1274
|
assertEquals(response.status, 404);
|
|
1383
1275
|
assertEquals(onNotFoundCalled, context.request);
|
|
1384
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
1385
1276
|
assertEquals(onUnauthorizedCalled, null);
|
|
1386
1277
|
onNotFoundCalled = null;
|
|
1387
1278
|
response = await handleCustomCollection(context.request, {
|
|
@@ -1462,7 +1353,6 @@ test("handleCustomCollection()", async () => {
|
|
|
1462
1353
|
]
|
|
1463
1354
|
});
|
|
1464
1355
|
assertEquals(onNotFoundCalled, null);
|
|
1465
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
1466
1356
|
assertEquals(onUnauthorizedCalled, null);
|
|
1467
1357
|
response = await handleCustomCollection(context.request, {
|
|
1468
1358
|
context,
|
|
@@ -1476,7 +1366,6 @@ test("handleCustomCollection()", async () => {
|
|
|
1476
1366
|
});
|
|
1477
1367
|
assertEquals(response.status, 401);
|
|
1478
1368
|
assertEquals(onNotFoundCalled, null);
|
|
1479
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
1480
1369
|
assertEquals(onUnauthorizedCalled, context.request);
|
|
1481
1370
|
onUnauthorizedCalled = null;
|
|
1482
1371
|
context = createRequestContext({
|
|
@@ -1519,7 +1408,6 @@ test("handleCustomCollection()", async () => {
|
|
|
1519
1408
|
]
|
|
1520
1409
|
});
|
|
1521
1410
|
assertEquals(onNotFoundCalled, null);
|
|
1522
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
1523
1411
|
assertEquals(onUnauthorizedCalled, null);
|
|
1524
1412
|
response = await handleCustomCollection(context.request, {
|
|
1525
1413
|
context,
|
|
@@ -1539,7 +1427,6 @@ test("handleCustomCollection()", async () => {
|
|
|
1539
1427
|
last: "https://example.com/?cursor=2"
|
|
1540
1428
|
});
|
|
1541
1429
|
assertEquals(onNotFoundCalled, null);
|
|
1542
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
1543
1430
|
assertEquals(onUnauthorizedCalled, null);
|
|
1544
1431
|
let url = new URL("https://example.com/?cursor=0");
|
|
1545
1432
|
context = createRequestContext({
|
|
@@ -1569,7 +1456,6 @@ test("handleCustomCollection()", async () => {
|
|
|
1569
1456
|
}
|
|
1570
1457
|
});
|
|
1571
1458
|
assertEquals(onNotFoundCalled, null);
|
|
1572
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
1573
1459
|
assertEquals(onUnauthorizedCalled, null);
|
|
1574
1460
|
url = new URL("https://example.com/?cursor=2");
|
|
1575
1461
|
context = createRequestContext({
|
|
@@ -1599,8 +1485,93 @@ test("handleCustomCollection()", async () => {
|
|
|
1599
1485
|
}
|
|
1600
1486
|
});
|
|
1601
1487
|
assertEquals(onNotFoundCalled, null);
|
|
1602
|
-
assertEquals(onNotAcceptableCalled, null);
|
|
1603
1488
|
assertEquals(onUnauthorizedCalled, null);
|
|
1604
1489
|
});
|
|
1490
|
+
test("handleInbox() records OpenTelemetry span events", async () => {
|
|
1491
|
+
const [tracerProvider, exporter] = createTestTracerProvider();
|
|
1492
|
+
const kv = new MemoryKvStore();
|
|
1493
|
+
const federation = createFederation({
|
|
1494
|
+
kv,
|
|
1495
|
+
tracerProvider
|
|
1496
|
+
});
|
|
1497
|
+
const activity = new Create({
|
|
1498
|
+
id: new URL("https://example.com/activity"),
|
|
1499
|
+
actor: new URL("https://example.com/users/someone"),
|
|
1500
|
+
object: new Note({
|
|
1501
|
+
id: new URL("https://example.com/note"),
|
|
1502
|
+
content: "Hello, world!"
|
|
1503
|
+
})
|
|
1504
|
+
});
|
|
1505
|
+
const request = new Request("https://example.com/users/someone/inbox", {
|
|
1506
|
+
method: "POST",
|
|
1507
|
+
headers: { "Content-Type": "application/activity+json" },
|
|
1508
|
+
body: JSON.stringify(await activity.toJsonLd())
|
|
1509
|
+
});
|
|
1510
|
+
const signed = await signRequest(request, rsaPrivateKey3, new URL("https://example.com/users/someone#main-key"));
|
|
1511
|
+
const context = createRequestContext({
|
|
1512
|
+
federation,
|
|
1513
|
+
request: signed,
|
|
1514
|
+
url: new URL(signed.url),
|
|
1515
|
+
data: void 0,
|
|
1516
|
+
documentLoader: mockDocumentLoader,
|
|
1517
|
+
contextLoader: mockDocumentLoader,
|
|
1518
|
+
getActorUri(identifier) {
|
|
1519
|
+
return new URL(`https://example.com/users/${identifier}`);
|
|
1520
|
+
}
|
|
1521
|
+
});
|
|
1522
|
+
const actorDispatcher = (ctx, handle) => {
|
|
1523
|
+
if (handle !== "someone") return null;
|
|
1524
|
+
return new Person({
|
|
1525
|
+
id: ctx.getActorUri(handle),
|
|
1526
|
+
name: "Someone",
|
|
1527
|
+
inbox: new URL("https://example.com/users/someone/inbox"),
|
|
1528
|
+
publicKey: rsaPublicKey2
|
|
1529
|
+
});
|
|
1530
|
+
};
|
|
1531
|
+
const listeners = new InboxListenerSet();
|
|
1532
|
+
let receivedActivity = null;
|
|
1533
|
+
listeners.add(Create, (_ctx, activity$1) => {
|
|
1534
|
+
receivedActivity = activity$1;
|
|
1535
|
+
});
|
|
1536
|
+
const response = await handleInbox(signed, {
|
|
1537
|
+
recipient: "someone",
|
|
1538
|
+
context,
|
|
1539
|
+
inboxContextFactory(_activity) {
|
|
1540
|
+
return createInboxContext({
|
|
1541
|
+
...context,
|
|
1542
|
+
clone: void 0
|
|
1543
|
+
});
|
|
1544
|
+
},
|
|
1545
|
+
kv,
|
|
1546
|
+
kvPrefixes: {
|
|
1547
|
+
activityIdempotence: ["activityIdempotence"],
|
|
1548
|
+
publicKey: ["publicKey"]
|
|
1549
|
+
},
|
|
1550
|
+
actorDispatcher,
|
|
1551
|
+
inboxListeners: listeners,
|
|
1552
|
+
inboxErrorHandler: void 0,
|
|
1553
|
+
onNotFound: (_request) => new Response("Not found", { status: 404 }),
|
|
1554
|
+
signatureTimeWindow: false,
|
|
1555
|
+
skipSignatureVerification: true,
|
|
1556
|
+
tracerProvider
|
|
1557
|
+
});
|
|
1558
|
+
assertEquals(response.status, 202);
|
|
1559
|
+
assert(receivedActivity != null);
|
|
1560
|
+
const spans = exporter.getSpans("activitypub.inbox");
|
|
1561
|
+
assertEquals(spans.length, 1);
|
|
1562
|
+
const span = spans[0];
|
|
1563
|
+
assertEquals(span.attributes["fedify.inbox.recipient"], "someone");
|
|
1564
|
+
assertEquals(span.attributes["activitypub.activity.id"], "https://example.com/activity");
|
|
1565
|
+
const events = exporter.getEvents("activitypub.inbox", "activitypub.activity.received");
|
|
1566
|
+
assertEquals(events.length, 1);
|
|
1567
|
+
const event = events[0];
|
|
1568
|
+
assert(event.attributes != null);
|
|
1569
|
+
assertEquals(event.attributes["activitypub.activity.verified"], true);
|
|
1570
|
+
assertEquals(event.attributes["http_signatures.verified"], false);
|
|
1571
|
+
assert(typeof event.attributes["activitypub.activity.json"] === "string");
|
|
1572
|
+
const recordedActivity = JSON.parse(event.attributes["activitypub.activity.json"]);
|
|
1573
|
+
assertEquals(recordedActivity.id, "https://example.com/activity");
|
|
1574
|
+
assertEquals(recordedActivity.type, "Create");
|
|
1575
|
+
});
|
|
1605
1576
|
|
|
1606
1577
|
//#endregion
|