@fedify/fedify 1.10.0 → 2.0.0-dev.100
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 +34 -20
- package/dist/{actor-bgf-5lfW.js → actor-CX6a_fXc.js} +220 -705
- package/dist/{actor-eeONG_sv.d.ts → actor-DqFajh9s.d.ts} +2 -2
- package/dist/{actor-BUkMfvz-.js → actor-eJqgtXKv.js} +1 -1
- package/dist/{actor-D190nbTD.d.cts → actor-f2NtjyCg.d.cts} +2 -2
- package/dist/{actor-CD3vk4f0.cjs → actor-vyab-ea8.cjs} +952 -1479
- package/dist/{assert_rejects-DiIiJbZn.js → assert_rejects-Ce45JcFg.js} +1 -1
- package/dist/{assert_is_error-BPGph1Jx.js → assert_throws-BNXdRGWP.js} +31 -1
- package/dist/{builder-CWXSdxB2.js → builder-CknaHxxc.js} +3 -4
- package/dist/{client-n6L4GtQL.d.cts → client-94iWEfQa.d.cts} +3 -75
- package/dist/{client-B3mQJNO7.d.ts → client-BsGzbnV-.d.ts} +3 -75
- package/dist/{client-BCAGZDSx.js → client-pY7-3icS.js} +3 -22
- package/dist/compat/mod.d.cts +10 -12
- package/dist/compat/mod.d.ts +10 -12
- package/dist/compat/transformers.test.js +20 -20
- package/dist/{context-WJoO0SQs.d.cts → context-DBQ7nMCw.d.cts} +152 -27
- package/dist/{context-Cr5DIxq_.d.ts → context-mM0Nu5yo.d.ts} +152 -27
- package/dist/{authdocloader-B7SytNNG.js → docloader-BFOyc5--.js} +17 -8
- package/dist/{esm-D-yelT_S.js → esm-HsBrJq8t.js} +32 -17
- package/dist/federation/builder.test.js +9 -12
- package/dist/federation/collection.test.js +7 -9
- package/dist/federation/handler.test.js +28 -149
- package/dist/federation/idempotency.test.js +26 -27
- package/dist/federation/inbox.test.js +4 -6
- package/dist/federation/keycache.test.js +3 -4
- package/dist/federation/kv.test.js +6 -8
- package/dist/federation/middleware.test.js +270 -93
- package/dist/federation/mod.cjs +9 -11
- package/dist/federation/mod.d.cts +10 -12
- package/dist/federation/mod.d.ts +10 -12
- package/dist/federation/mod.js +9 -11
- package/dist/federation/mq.test.js +10 -10
- package/dist/federation/negotiation.test.js +26 -0
- package/dist/federation/retry.test.js +4 -5
- package/dist/federation/router.test.js +6 -8
- package/dist/federation/send.test.js +14 -16
- package/dist/{http-C9loelvm.js → http-BE4MNK5A.js} +2 -2
- package/dist/{http-DS9z_HzB.d.ts → http-BbO0ejuk.d.ts} +2 -2
- package/dist/{http-BgfXfAjx.cjs → http-Cy32w9zC.cjs} +289 -9
- package/dist/{http-C_1RU1U_.d.cts → http-M8k5mKc0.d.cts} +2 -2
- package/dist/{http-D0qx-TXE.js → http-rzOkBH97.js} +256 -6
- package/dist/{inbox-BEVGwhBi.js → inbox-CC7Xf1dl.js} +2 -7
- package/dist/{key-AeBOuiHs.js → key-DP6qvTbJ.js} +3 -2
- package/dist/{keycache-Bw4Uxzi6.js → keycache-wXn_gxMw.js} +1 -1
- package/dist/{keys-Dj5daeN1.js → keys-DDn7koOQ.js} +2 -1
- package/dist/{kv-DipCBaw2.d.ts → kv-BpJND1Hr.d.ts} +2 -1
- package/dist/{kv-BqEOXcZv.d.cts → kv-cD_d4hg-.d.cts} +2 -1
- package/dist/kv-cache-BRTidUqb.cjs +134 -0
- package/dist/kv-cache-D7LFlByV.js +107 -0
- package/dist/kv-cache-DFZETuNv.js +122 -0
- package/dist/{ld-C3DOGrIw.js → ld-HxSfVcFy.js} +3 -2
- package/dist/{type-DqEM8B7_.js → lookup-B25HiNR_.js} +547 -5409
- package/dist/{lookup-Bu4FBtdO.cjs → lookup-Dwdg60Zd.cjs} +134 -5
- package/dist/{lookup-IlTVyD9K.js → lookup-G1_0vHHK.js} +125 -2
- package/dist/{middleware-DAHeKrOL.cjs → middleware-CHIX0fet.cjs} +58 -104
- package/dist/middleware-CJxiy__Z.js +15 -0
- package/dist/{middleware-eZxZNDdm.js → middleware-D0ByqW8h.js} +43 -146
- package/dist/{middleware-Bj9Trcbz.js → middleware-DYuVYS53.js} +38 -84
- package/dist/middleware-DZFLLqR4.js +26 -0
- package/dist/middleware-ItQuZXpg.cjs +15 -0
- package/dist/{mod-DS4kJskR.d.ts → mod-BlVovdcy.d.ts} +2 -2
- package/dist/{mod-D5rfgGFE.d.cts → mod-BxRCHTz-.d.cts} +2 -2
- package/dist/{mod-CxMBb_dd.d.cts → mod-C58MZ7Wx.d.cts} +1 -1
- package/dist/mod-CAdoBu0x.d.ts +109 -0
- package/dist/{mod-BZfdiPBo.d.ts → mod-D5Z2tISD.d.ts} +3 -3
- package/dist/{mod-Dz5Y15Uy.d.cts → mod-DgxG-byT.d.cts} +3 -3
- package/dist/{mod-ChbckRnC.d.ts → mod-Ds0mpFZU.d.ts} +1 -1
- package/dist/{mod-OQfb33eH.d.cts → mod-Dy2fJtmN.d.cts} +2 -2
- package/dist/{mod-CnULG6Aa.d.ts → mod-GetHzY6F.d.ts} +2 -2
- package/dist/mod-fxr25Gv7.d.cts +107 -0
- package/dist/mod.cjs +19 -34
- package/dist/mod.d.cts +15 -17
- package/dist/mod.d.ts +15 -17
- package/dist/mod.js +14 -16
- package/dist/negotiation-C4nFufNk.js +71 -0
- package/dist/nodeinfo/client.test.js +30 -111
- package/dist/nodeinfo/handler.test.js +25 -26
- package/dist/nodeinfo/mod.cjs +3 -6
- package/dist/nodeinfo/mod.d.cts +3 -5
- package/dist/nodeinfo/mod.d.ts +3 -5
- package/dist/nodeinfo/mod.js +3 -4
- package/dist/nodeinfo/types.test.js +8 -15
- package/dist/otel/exporter.test.js +44 -70
- package/dist/otel/mod.cjs +17 -34
- package/dist/otel/mod.d.cts +5 -6
- package/dist/otel/mod.d.ts +5 -6
- package/dist/otel/mod.js +17 -34
- package/dist/{otel-Chy5T2Xh.js → otel-Bfe_BgOV.js} +1 -2
- package/dist/{owner-AcrG3Xz1.d.cts → owner-B4HbyP8s.d.cts} +3 -3
- package/dist/{owner-DKFFhLVW.js → owner-BWOLrzit.js} +3 -2
- package/dist/{owner-8NMhXwJd.d.ts → owner-kQRGVXG1.d.ts} +3 -3
- package/dist/{proof-ZEESDSs6.js → proof-BYodbwm8.js} +2 -2
- package/dist/{proof-gU4Y_14I.cjs → proof-BqP89L5j.cjs} +18 -17
- package/dist/{proof-Ea3ykPsy.js → proof-ZlfOiUS5.js} +5 -4
- package/dist/{send-xtxi11p2.js → send-CC6itx2j.js} +2 -2
- package/dist/sig/http.test.js +12 -13
- package/dist/sig/key.test.js +9 -11
- package/dist/sig/ld.test.js +8 -10
- package/dist/sig/mod.cjs +9 -11
- package/dist/sig/mod.d.cts +5 -7
- package/dist/sig/mod.d.ts +5 -7
- package/dist/sig/mod.js +5 -7
- package/dist/sig/owner.test.js +11 -13
- package/dist/sig/proof.test.js +13 -14
- package/dist/src/vocab/accept.yaml +1 -1
- package/dist/src/vocab/activity.yaml +1 -1
- package/dist/src/vocab/add.yaml +1 -1
- package/dist/src/vocab/announce.yaml +1 -1
- package/dist/src/vocab/application.yaml +1 -1
- package/dist/src/vocab/arrive.yaml +1 -1
- package/dist/src/vocab/article.yaml +1 -1
- package/dist/src/vocab/audio.yaml +1 -1
- package/dist/src/vocab/block.yaml +1 -1
- package/dist/src/vocab/chatmessage.yaml +1 -1
- package/dist/src/vocab/collection.yaml +1 -1
- package/dist/src/vocab/collectionpage.yaml +1 -1
- package/dist/src/vocab/create.yaml +1 -1
- package/dist/src/vocab/dataintegrityproof.yaml +1 -1
- package/dist/src/vocab/delete.yaml +1 -1
- package/dist/src/vocab/didservice.yaml +1 -1
- package/dist/src/vocab/dislike.yaml +1 -1
- package/dist/src/vocab/document.yaml +1 -1
- package/dist/src/vocab/emoji.yaml +1 -1
- package/dist/src/vocab/emojireact.yaml +1 -1
- package/dist/src/vocab/endpoints.yaml +1 -1
- package/dist/src/vocab/event.yaml +1 -1
- package/dist/src/vocab/export.yaml +1 -1
- package/dist/src/vocab/flag.yaml +1 -1
- package/dist/src/vocab/follow.yaml +1 -1
- package/dist/src/vocab/group.yaml +1 -1
- package/dist/src/vocab/hashtag.yaml +1 -1
- package/dist/src/vocab/ignore.yaml +1 -1
- package/dist/src/vocab/image.yaml +1 -1
- package/dist/src/vocab/intransitiveactivity.yaml +1 -1
- package/dist/src/vocab/invite.yaml +1 -1
- package/dist/src/vocab/join.yaml +1 -1
- package/dist/src/vocab/key.yaml +1 -1
- package/dist/src/vocab/leave.yaml +1 -1
- package/dist/src/vocab/like.yaml +1 -1
- package/dist/src/vocab/link.yaml +1 -1
- package/dist/src/vocab/listen.yaml +1 -1
- package/dist/src/vocab/mention.yaml +1 -1
- package/dist/src/vocab/move.yaml +1 -1
- package/dist/src/vocab/multikey.yaml +1 -1
- package/dist/src/vocab/note.yaml +1 -1
- package/dist/src/vocab/object.yaml +1 -1
- package/dist/src/vocab/offer.yaml +1 -1
- package/dist/src/vocab/orderedcollection.yaml +1 -1
- package/dist/src/vocab/orderedcollectionpage.yaml +1 -1
- package/dist/src/vocab/organization.yaml +1 -1
- package/dist/src/vocab/page.yaml +1 -1
- package/dist/src/vocab/person.yaml +1 -1
- package/dist/src/vocab/place.yaml +1 -1
- package/dist/src/vocab/profile.yaml +1 -1
- package/dist/src/vocab/propertyvalue.yaml +1 -1
- package/dist/src/vocab/question.yaml +1 -1
- package/dist/src/vocab/read.yaml +1 -1
- package/dist/src/vocab/reject.yaml +1 -1
- package/dist/src/vocab/relationship.yaml +1 -1
- package/dist/src/vocab/remove.yaml +1 -1
- package/dist/src/vocab/service.yaml +1 -1
- package/dist/src/vocab/source.yaml +1 -1
- package/dist/src/vocab/tentativeaccept.yaml +1 -1
- package/dist/src/vocab/tentativereject.yaml +1 -1
- package/dist/src/vocab/tombstone.yaml +1 -1
- package/dist/src/vocab/travel.yaml +1 -1
- package/dist/src/vocab/undo.yaml +1 -1
- package/dist/src/vocab/update.yaml +1 -1
- package/dist/src/vocab/video.yaml +1 -1
- package/dist/src/vocab/view.yaml +1 -1
- package/dist/testing/docloader.test.js +6 -8
- package/dist/testing/mod.d.ts +10 -119
- package/dist/testing/mod.js +2 -3
- package/dist/{testing-DFvXSqyP.js → testing-BbJqK9NR.js} +1 -2
- package/dist/{types-DIhRCBa4.js → types-BtUjyi5y.js} +5 -166
- package/dist/{types-BIgY6c-l.js → types-C2XVl6gj.js} +1 -3
- package/dist/{types-ylHYpR3Z.cjs → types-CWgzGaqk.cjs} +6 -179
- package/dist/{runtime/authdocloader.test.js → utils/docloader.test.js} +14 -15
- package/dist/utils/kv-cache.test.js +212 -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/vocab/actor.test.js +8 -10
- package/dist/vocab/lookup.test.js +8 -10
- package/dist/vocab/mod.cjs +3 -4
- package/dist/vocab/mod.d.cts +3 -5
- package/dist/vocab/mod.d.ts +3 -5
- package/dist/vocab/mod.js +3 -4
- package/dist/vocab/type.test.js +2 -3
- package/dist/vocab/vocab.test.js +7618 -1973
- package/dist/{vocab-BASuuzcJ.d.ts → vocab-BCWe1Ih5.d.ts} +9 -25
- package/dist/{vocab-DPMmFPJ1.d.cts → vocab-CeDBzu-f.d.cts} +9 -25
- package/dist/{vocab-Dp0ySvGE.js → vocab-DDf0si0L.js} +3 -3
- package/dist/{vocab-G9W9ByPV.cjs → vocab-wJpUyNt3.cjs} +5 -5
- package/dist/webfinger/handler.test.js +24 -25
- package/dist/webfinger/lookup.test.js +7 -9
- package/dist/webfinger/mod.cjs +2 -3
- package/dist/webfinger/mod.d.cts +1 -3
- package/dist/webfinger/mod.d.ts +1 -3
- package/dist/webfinger/mod.js +2 -3
- package/package.json +33 -66
- package/dist/assert_throws-BOO88avQ.js +0 -39
- package/dist/authdocloader-C9QYbrJt.cjs +0 -58
- package/dist/authdocloader-yFPHUiNm.js +0 -52
- package/dist/denokv-D0nfNQ1x.js +0 -57
- package/dist/docloader-BucCRHZI.d.ts +0 -221
- package/dist/docloader-CankQbIm.cjs +0 -4901
- package/dist/docloader-ChxNLZAA.d.cts +0 -219
- package/dist/docloader-RhwM6pxE.js +0 -4835
- package/dist/key-Bvfy40Rb.js +0 -10
- package/dist/key-CGhTsWG9.cjs +0 -290
- package/dist/key-CS_ify3S.cjs +0 -10
- package/dist/key-J8ksMDYz.js +0 -10
- package/dist/key-LaW_EfdQ.js +0 -260
- package/dist/lookup-CoaKXsmO.js +0 -336
- package/dist/middleware-BffIkFC3.js +0 -17
- package/dist/middleware-DjtcxgEk.cjs +0 -17
- package/dist/middleware-DmIAQdDr.js +0 -26
- package/dist/mod-CD7gfdq3.d.ts +0 -104
- package/dist/mod-JUhOKMHj.d.cts +0 -102
- package/dist/mq-B7R1Q-M5.d.cts +0 -140
- package/dist/mq-CRGm1e_F.d.ts +0 -143
- package/dist/nodeinfo/semver.test.js +0 -143
- package/dist/runtime/docloader.test.js +0 -599
- package/dist/runtime/key.test.d.ts +0 -3
- package/dist/runtime/key.test.js +0 -103
- package/dist/runtime/langstr.test.d.ts +0 -3
- package/dist/runtime/langstr.test.js +0 -40
- package/dist/runtime/link.test.d.ts +0 -3
- package/dist/runtime/link.test.js +0 -61
- package/dist/runtime/mod.cjs +0 -25
- package/dist/runtime/mod.d.cts +0 -6
- 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/semver-dArNLkR9.js +0 -149
- package/dist/vocab/schema.yaml +0 -247
- package/dist/x/cfworkers.cjs +0 -100
- package/dist/x/cfworkers.d.cts +0 -59
- 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.cjs +0 -61
- package/dist/x/hono.d.cts +0 -54
- package/dist/x/hono.d.ts +0 -56
- package/dist/x/hono.js +0 -60
- package/dist/x/sveltekit.cjs +0 -69
- package/dist/x/sveltekit.d.cts +0 -46
- package/dist/x/sveltekit.d.ts +0 -48
- package/dist/x/sveltekit.js +0 -68
- /package/dist/{assert_not_equals-f3m3epl3.js → assert_not_equals-C80BG-_5.js} +0 -0
- /package/dist/{collection-CSzG2j1P.js → collection-BzWsN9pB.js} +0 -0
- /package/dist/{nodeinfo/semver.test.d.ts → federation/negotiation.test.d.ts} +0 -0
- /package/dist/{federation-C15gGOh1.cjs → federation-CoW-KDKv.cjs} +0 -0
- /package/dist/{federation-K-xsO03l.js → federation-D0hkM4T7.js} +0 -0
- /package/dist/{mod-C2tOeRkN.d.cts → mod-B-hUPT2N.d.cts} +0 -0
- /package/dist/{mod-1pDWKvUL.d.ts → mod-CVgZgliM.d.ts} +0 -0
- /package/dist/{mod-FZd39qVq.d.cts → mod-CcDPcLJW.d.cts} +0 -0
- /package/dist/{mod-g0xFzAP9.d.ts → mod-bjzj5QIb.d.ts} +0 -0
- /package/dist/{nodeinfo-DfycQ8Wf.js → nodeinfo-BnthBobC.js} +0 -0
- /package/dist/{nodeinfo-Co9lJrWl.cjs → nodeinfo-CdN0rEnZ.cjs} +0 -0
- /package/dist/{retry-D4GJ670a.js → retry-CfF8Gn4d.js} +0 -0
- /package/dist/{runtime-DPYEDf-o.js → sig-C34-oHBl.js} +0 -0
- /package/dist/{runtime-C58AJWSv.cjs → sig-YYj5tCnr.cjs} +0 -0
- /package/dist/{std__assert-X-_kMxKM.js → std__assert-DWivtrGR.js} +0 -0
- /package/dist/{runtime → utils}/docloader.test.d.ts +0 -0
- /package/dist/{runtime/authdocloader.test.d.ts → utils/kv-cache.test.d.ts} +0 -0
- /package/dist/{sig-Cj3tk-ig.js → utils-D-Va7aXC.js} +0 -0
- /package/dist/{sig-ByHXzqUi.cjs → utils-DyRU1gdZ.cjs} +0 -0
- /package/dist/{webfinger-De_bU0iE.js → webfinger-C72Y8lrh.js} +0 -0
- /package/dist/{webfinger-BjOEdFPs.cjs → webfinger-vAtLmxOF.cjs} +0 -0
|
@@ -3,20 +3,17 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import "../
|
|
6
|
+
import "../lookup-B25HiNR_.js";
|
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
|
8
8
|
import "../assert-MZs1qjMx.js";
|
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
|
10
|
-
import "../
|
|
11
|
-
import {
|
|
12
|
-
import "../
|
|
13
|
-
import
|
|
14
|
-
import "../
|
|
15
|
-
import "../
|
|
16
|
-
import "../
|
|
17
|
-
import "../assert_not_equals-f3m3epl3.js";
|
|
18
|
-
import "../assert_throws-BOO88avQ.js";
|
|
19
|
-
import { esm_default } from "../esm-D-yelT_S.js";
|
|
10
|
+
import { getNodeInfo, parseInboundService, parseNodeInfo, parseOutboundService, parseProtocol, parseServices, parseSoftware, parseUsage } from "../client-pY7-3icS.js";
|
|
11
|
+
import { test } from "../testing-BbJqK9NR.js";
|
|
12
|
+
import "../std__assert-DWivtrGR.js";
|
|
13
|
+
import "../assert_rejects-Ce45JcFg.js";
|
|
14
|
+
import "../assert_throws-BNXdRGWP.js";
|
|
15
|
+
import "../assert_not_equals-C80BG-_5.js";
|
|
16
|
+
import { esm_default } from "../esm-HsBrJq8t.js";
|
|
20
17
|
|
|
21
18
|
//#region src/nodeinfo/client.test.ts
|
|
22
19
|
test("getNodeInfo()", async (t) => {
|
|
@@ -42,13 +39,7 @@ test("getNodeInfo()", async (t) => {
|
|
|
42
39
|
const expected = {
|
|
43
40
|
software: {
|
|
44
41
|
name: "foo",
|
|
45
|
-
version:
|
|
46
|
-
major: 1,
|
|
47
|
-
minor: 2,
|
|
48
|
-
patch: 3,
|
|
49
|
-
build: [],
|
|
50
|
-
prerelease: []
|
|
51
|
-
}
|
|
42
|
+
version: "1.2.3"
|
|
52
43
|
},
|
|
53
44
|
protocols: ["activitypub", "diaspora"],
|
|
54
45
|
usage: {
|
|
@@ -126,13 +117,7 @@ test("parseNodeInfo()", () => {
|
|
|
126
117
|
const output = {
|
|
127
118
|
software: {
|
|
128
119
|
name: "foo",
|
|
129
|
-
version:
|
|
130
|
-
major: 1,
|
|
131
|
-
minor: 2,
|
|
132
|
-
patch: 3,
|
|
133
|
-
build: [],
|
|
134
|
-
prerelease: []
|
|
135
|
-
},
|
|
120
|
+
version: "1.2.3",
|
|
136
121
|
repository: new URL("https://codeberg.org/foo/foo"),
|
|
137
122
|
homepage: new URL("https://foo.example")
|
|
138
123
|
},
|
|
@@ -294,13 +279,7 @@ test("parseSoftware()", () => {
|
|
|
294
279
|
homepage: "https://foo.example"
|
|
295
280
|
}), {
|
|
296
281
|
name: "foo",
|
|
297
|
-
version:
|
|
298
|
-
major: 1,
|
|
299
|
-
minor: 2,
|
|
300
|
-
patch: 3,
|
|
301
|
-
build: [],
|
|
302
|
-
prerelease: []
|
|
303
|
-
},
|
|
282
|
+
version: "1.2.3",
|
|
304
283
|
repository: new URL("https://codeberg.org/foo/foo"),
|
|
305
284
|
homepage: new URL("https://foo.example")
|
|
306
285
|
});
|
|
@@ -309,13 +288,7 @@ test("parseSoftware()", () => {
|
|
|
309
288
|
version: "4.5.6-beta.7+build.8"
|
|
310
289
|
}), {
|
|
311
290
|
name: "foo",
|
|
312
|
-
version:
|
|
313
|
-
major: 4,
|
|
314
|
-
minor: 5,
|
|
315
|
-
patch: 6,
|
|
316
|
-
build: ["build", "8"],
|
|
317
|
-
prerelease: ["beta", 7]
|
|
318
|
-
}
|
|
291
|
+
version: "4.5.6-beta.7+build.8"
|
|
319
292
|
});
|
|
320
293
|
assertEquals(parseSoftware(123), null);
|
|
321
294
|
assertEquals(parseSoftware(123, { tryBestEffort: true }), null);
|
|
@@ -326,73 +299,49 @@ test("parseSoftware()", () => {
|
|
|
326
299
|
assertEquals(parseSoftware({ name: " FOO " }), null);
|
|
327
300
|
assertEquals(parseSoftware({ name: " FOO " }, { tryBestEffort: true }), {
|
|
328
301
|
name: "foo",
|
|
329
|
-
version:
|
|
330
|
-
major: 0,
|
|
331
|
-
minor: 0,
|
|
332
|
-
patch: 0,
|
|
333
|
-
build: [],
|
|
334
|
-
prerelease: []
|
|
335
|
-
}
|
|
302
|
+
version: "0.0.0"
|
|
336
303
|
});
|
|
337
304
|
assertEquals(parseSoftware({
|
|
338
305
|
name: "foo",
|
|
339
306
|
version: 123
|
|
340
|
-
}),
|
|
307
|
+
}), {
|
|
308
|
+
name: "foo",
|
|
309
|
+
version: "123"
|
|
310
|
+
});
|
|
341
311
|
assertEquals(parseSoftware({
|
|
342
312
|
name: "foo",
|
|
343
313
|
version: 123
|
|
344
314
|
}, { tryBestEffort: true }), {
|
|
345
315
|
name: "foo",
|
|
346
|
-
version:
|
|
347
|
-
major: 0,
|
|
348
|
-
minor: 0,
|
|
349
|
-
patch: 0,
|
|
350
|
-
build: [],
|
|
351
|
-
prerelease: []
|
|
352
|
-
}
|
|
316
|
+
version: "123"
|
|
353
317
|
});
|
|
354
318
|
assertEquals(parseSoftware({
|
|
355
319
|
name: "foo",
|
|
356
320
|
version: "abc"
|
|
357
|
-
}),
|
|
321
|
+
}), {
|
|
322
|
+
name: "foo",
|
|
323
|
+
version: "abc"
|
|
324
|
+
});
|
|
358
325
|
assertEquals(parseSoftware({
|
|
359
326
|
name: "foo",
|
|
360
327
|
version: "abc"
|
|
361
328
|
}, { tryBestEffort: true }), {
|
|
362
329
|
name: "foo",
|
|
363
|
-
version:
|
|
364
|
-
major: 0,
|
|
365
|
-
minor: 0,
|
|
366
|
-
patch: 0,
|
|
367
|
-
build: [],
|
|
368
|
-
prerelease: []
|
|
369
|
-
}
|
|
330
|
+
version: "abc"
|
|
370
331
|
});
|
|
371
332
|
assertEquals(parseSoftware({
|
|
372
333
|
name: "foo",
|
|
373
334
|
version: " 1.2.3 "
|
|
374
335
|
}), {
|
|
375
336
|
name: "foo",
|
|
376
|
-
version:
|
|
377
|
-
major: 1,
|
|
378
|
-
minor: 2,
|
|
379
|
-
patch: 3,
|
|
380
|
-
build: [],
|
|
381
|
-
prerelease: []
|
|
382
|
-
}
|
|
337
|
+
version: " 1.2.3 "
|
|
383
338
|
});
|
|
384
339
|
assertEquals(parseSoftware({
|
|
385
340
|
name: "foo",
|
|
386
341
|
version: " 1.2.3 "
|
|
387
342
|
}, { tryBestEffort: true }), {
|
|
388
343
|
name: "foo",
|
|
389
|
-
version:
|
|
390
|
-
major: 1,
|
|
391
|
-
minor: 2,
|
|
392
|
-
patch: 3,
|
|
393
|
-
build: [],
|
|
394
|
-
prerelease: []
|
|
395
|
-
}
|
|
344
|
+
version: " 1.2.3 "
|
|
396
345
|
});
|
|
397
346
|
assertEquals(parseSoftware({
|
|
398
347
|
name: "foo",
|
|
@@ -411,13 +360,7 @@ test("parseSoftware()", () => {
|
|
|
411
360
|
homepage: 456
|
|
412
361
|
}, { tryBestEffort: true }), {
|
|
413
362
|
name: "foo",
|
|
414
|
-
version:
|
|
415
|
-
major: 1,
|
|
416
|
-
minor: 2,
|
|
417
|
-
patch: 3,
|
|
418
|
-
build: [],
|
|
419
|
-
prerelease: []
|
|
420
|
-
}
|
|
363
|
+
version: "1.2.3"
|
|
421
364
|
});
|
|
422
365
|
assertEquals(parseSoftware({
|
|
423
366
|
name: "foo",
|
|
@@ -436,13 +379,7 @@ test("parseSoftware()", () => {
|
|
|
436
379
|
homepage: ""
|
|
437
380
|
}, { tryBestEffort: true }), {
|
|
438
381
|
name: "foo",
|
|
439
|
-
version:
|
|
440
|
-
major: 1,
|
|
441
|
-
minor: 2,
|
|
442
|
-
patch: 3,
|
|
443
|
-
build: [],
|
|
444
|
-
prerelease: []
|
|
445
|
-
}
|
|
382
|
+
version: "1.2.3"
|
|
446
383
|
});
|
|
447
384
|
assertEquals(parseSoftware({
|
|
448
385
|
name: "foo",
|
|
@@ -451,13 +388,7 @@ test("parseSoftware()", () => {
|
|
|
451
388
|
homepage: ""
|
|
452
389
|
}, { tryBestEffort: true }), {
|
|
453
390
|
name: "foo",
|
|
454
|
-
version:
|
|
455
|
-
major: 2,
|
|
456
|
-
minor: 81,
|
|
457
|
-
patch: 0,
|
|
458
|
-
build: [],
|
|
459
|
-
prerelease: []
|
|
460
|
-
}
|
|
391
|
+
version: "2.81"
|
|
461
392
|
});
|
|
462
393
|
assertEquals(parseSoftware({
|
|
463
394
|
name: "foo",
|
|
@@ -466,13 +397,7 @@ test("parseSoftware()", () => {
|
|
|
466
397
|
homepage: ""
|
|
467
398
|
}, { tryBestEffort: true }), {
|
|
468
399
|
name: "foo",
|
|
469
|
-
version:
|
|
470
|
-
major: 3,
|
|
471
|
-
minor: 0,
|
|
472
|
-
patch: 0,
|
|
473
|
-
build: [],
|
|
474
|
-
prerelease: []
|
|
475
|
-
}
|
|
400
|
+
version: "3"
|
|
476
401
|
});
|
|
477
402
|
assertEquals(parseSoftware({
|
|
478
403
|
name: "foo",
|
|
@@ -481,13 +406,7 @@ test("parseSoftware()", () => {
|
|
|
481
406
|
homepage: ""
|
|
482
407
|
}, { tryBestEffort: true }), {
|
|
483
408
|
name: "foo",
|
|
484
|
-
version:
|
|
485
|
-
major: 2,
|
|
486
|
-
minor: 1,
|
|
487
|
-
patch: 3,
|
|
488
|
-
build: [],
|
|
489
|
-
prerelease: []
|
|
490
|
-
}
|
|
409
|
+
version: "2.1.3.4"
|
|
491
410
|
});
|
|
492
411
|
});
|
|
493
412
|
test("parseProtocol()", () => {
|
|
@@ -3,35 +3,34 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import "../
|
|
6
|
+
import "../lookup-B25HiNR_.js";
|
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
|
8
8
|
import "../assert-MZs1qjMx.js";
|
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
|
10
10
|
import { MemoryKvStore } from "../kv-QzKcOQgP.js";
|
|
11
|
-
import { createFederation, handleNodeInfo, handleNodeInfoJrd } from "../middleware-
|
|
12
|
-
import
|
|
13
|
-
import "../
|
|
14
|
-
import "../
|
|
15
|
-
import "../
|
|
16
|
-
import "../
|
|
17
|
-
import "../
|
|
18
|
-
import "../
|
|
19
|
-
import "../
|
|
20
|
-
import "../
|
|
21
|
-
import "../
|
|
22
|
-
import "../
|
|
23
|
-
import "../
|
|
24
|
-
import "../
|
|
25
|
-
import "../
|
|
26
|
-
import "../
|
|
27
|
-
import "../retry-
|
|
28
|
-
import "../send-
|
|
29
|
-
import { createRequestContext, test } from "../testing-
|
|
30
|
-
import "../std__assert-
|
|
31
|
-
import "../assert_rejects-
|
|
32
|
-
import "../
|
|
33
|
-
import "../assert_not_equals-
|
|
34
|
-
import "../assert_throws-BOO88avQ.js";
|
|
11
|
+
import { createFederation, handleNodeInfo, handleNodeInfoJrd } from "../middleware-D0ByqW8h.js";
|
|
12
|
+
import "../client-pY7-3icS.js";
|
|
13
|
+
import "../types-C2XVl6gj.js";
|
|
14
|
+
import "../actor-eJqgtXKv.js";
|
|
15
|
+
import "../key-DP6qvTbJ.js";
|
|
16
|
+
import "../http-BE4MNK5A.js";
|
|
17
|
+
import "../ld-HxSfVcFy.js";
|
|
18
|
+
import "../owner-BWOLrzit.js";
|
|
19
|
+
import "../proof-BYodbwm8.js";
|
|
20
|
+
import "../docloader-BFOyc5--.js";
|
|
21
|
+
import "../kv-cache-D7LFlByV.js";
|
|
22
|
+
import "../inbox-CC7Xf1dl.js";
|
|
23
|
+
import "../builder-CknaHxxc.js";
|
|
24
|
+
import "../collection-BzWsN9pB.js";
|
|
25
|
+
import "../keycache-wXn_gxMw.js";
|
|
26
|
+
import "../negotiation-C4nFufNk.js";
|
|
27
|
+
import "../retry-CfF8Gn4d.js";
|
|
28
|
+
import "../send-CC6itx2j.js";
|
|
29
|
+
import { createRequestContext, test } from "../testing-BbJqK9NR.js";
|
|
30
|
+
import "../std__assert-DWivtrGR.js";
|
|
31
|
+
import "../assert_rejects-Ce45JcFg.js";
|
|
32
|
+
import "../assert_throws-BNXdRGWP.js";
|
|
33
|
+
import "../assert_not_equals-C80BG-_5.js";
|
|
35
34
|
|
|
36
35
|
//#region src/nodeinfo/handler.test.ts
|
|
37
36
|
test("handleNodeInfo()", async () => {
|
|
@@ -46,7 +45,7 @@ test("handleNodeInfo()", async () => {
|
|
|
46
45
|
const nodeInfoDispatcher = (_ctx) => ({
|
|
47
46
|
software: {
|
|
48
47
|
name: "test",
|
|
49
|
-
version:
|
|
48
|
+
version: "1.2.3"
|
|
50
49
|
},
|
|
51
50
|
protocols: ["activitypub"],
|
|
52
51
|
usage: {
|
package/dist/nodeinfo/mod.cjs
CHANGED
|
@@ -2,12 +2,9 @@
|
|
|
2
2
|
const { Temporal } = require("@js-temporal/polyfill");
|
|
3
3
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
4
4
|
|
|
5
|
-
require('../
|
|
6
|
-
|
|
7
|
-
require('../nodeinfo-Co9lJrWl.cjs');
|
|
5
|
+
const require_types = require('../types-CWgzGaqk.cjs');
|
|
6
|
+
require('../nodeinfo-CdN0rEnZ.cjs');
|
|
8
7
|
|
|
9
|
-
exports.formatSemVer = require_types.formatSemVer;
|
|
10
8
|
exports.getNodeInfo = require_types.getNodeInfo;
|
|
11
9
|
exports.nodeInfoToJson = require_types.nodeInfoToJson;
|
|
12
|
-
exports.parseNodeInfo = require_types.parseNodeInfo;
|
|
13
|
-
exports.parseSemVer = require_types.parseSemVer;
|
|
10
|
+
exports.parseNodeInfo = require_types.parseNodeInfo;
|
package/dist/nodeinfo/mod.d.cts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import "../
|
|
3
|
-
|
|
4
|
-
import "../mod-FZd39qVq.cjs";
|
|
5
|
-
export { GetNodeInfoOptions, InboundService, JsonValue, NodeInfo, OutboundService, ParseNodeInfoOptions, Protocol, SemVer, Services, Software, Usage, formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer };
|
|
1
|
+
import { GetNodeInfoOptions, InboundService, JsonValue, NodeInfo, OutboundService, ParseNodeInfoOptions, Protocol, Services, Software, Usage, getNodeInfo, nodeInfoToJson, parseNodeInfo } from "../client-94iWEfQa.cjs";
|
|
2
|
+
import "../mod-B-hUPT2N.cjs";
|
|
3
|
+
export { GetNodeInfoOptions, InboundService, JsonValue, NodeInfo, OutboundService, ParseNodeInfoOptions, Protocol, Services, Software, Usage, getNodeInfo, nodeInfoToJson, parseNodeInfo };
|
package/dist/nodeinfo/mod.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
|
-
import "../
|
|
4
|
-
import "../
|
|
5
|
-
|
|
6
|
-
import "../mod-1pDWKvUL.js";
|
|
7
|
-
export { GetNodeInfoOptions, InboundService, JsonValue, NodeInfo, OutboundService, ParseNodeInfoOptions, Protocol, SemVer, Services, Software, Usage, formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer };
|
|
3
|
+
import { GetNodeInfoOptions, InboundService, JsonValue, NodeInfo, OutboundService, ParseNodeInfoOptions, Protocol, Services, Software, Usage, getNodeInfo, nodeInfoToJson, parseNodeInfo } from "../client-BsGzbnV-.js";
|
|
4
|
+
import "../mod-CVgZgliM.js";
|
|
5
|
+
export { GetNodeInfoOptions, InboundService, JsonValue, NodeInfo, OutboundService, ParseNodeInfoOptions, Protocol, Services, Software, Usage, getNodeInfo, nodeInfoToJson, parseNodeInfo };
|
package/dist/nodeinfo/mod.js
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
|
|
5
|
-
import "../
|
|
6
|
-
import
|
|
7
|
-
import "../nodeinfo-DfycQ8Wf.js";
|
|
5
|
+
import { getNodeInfo, nodeInfoToJson, parseNodeInfo } from "../types-BtUjyi5y.js";
|
|
6
|
+
import "../nodeinfo-BnthBobC.js";
|
|
8
7
|
|
|
9
|
-
export {
|
|
8
|
+
export { getNodeInfo, nodeInfoToJson, parseNodeInfo };
|
|
@@ -3,30 +3,23 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import "../
|
|
6
|
+
import "../lookup-B25HiNR_.js";
|
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
|
8
8
|
import "../assert-MZs1qjMx.js";
|
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
|
10
|
-
import "../
|
|
11
|
-
import "../
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import "../
|
|
15
|
-
import "../
|
|
16
|
-
import "../assert_is_error-BPGph1Jx.js";
|
|
17
|
-
import "../assert_not_equals-f3m3epl3.js";
|
|
18
|
-
import { assertThrows } from "../assert_throws-BOO88avQ.js";
|
|
10
|
+
import { nodeInfoToJson } from "../types-C2XVl6gj.js";
|
|
11
|
+
import { test } from "../testing-BbJqK9NR.js";
|
|
12
|
+
import "../std__assert-DWivtrGR.js";
|
|
13
|
+
import "../assert_rejects-Ce45JcFg.js";
|
|
14
|
+
import { assertThrows } from "../assert_throws-BNXdRGWP.js";
|
|
15
|
+
import "../assert_not_equals-C80BG-_5.js";
|
|
19
16
|
|
|
20
17
|
//#region src/nodeinfo/types.test.ts
|
|
21
18
|
test("nodeInfoToJson()", () => {
|
|
22
19
|
const validInfo = {
|
|
23
20
|
software: {
|
|
24
21
|
name: "software-name",
|
|
25
|
-
version:
|
|
26
|
-
major: 1,
|
|
27
|
-
minor: 2,
|
|
28
|
-
patch: 3
|
|
29
|
-
}
|
|
22
|
+
version: "1.2.3"
|
|
30
23
|
},
|
|
31
24
|
protocols: ["activitypub"],
|
|
32
25
|
usage: {
|
|
@@ -3,18 +3,16 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import "../
|
|
6
|
+
import "../lookup-B25HiNR_.js";
|
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
|
8
8
|
import "../assert-MZs1qjMx.js";
|
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
|
10
10
|
import { MemoryKvStore } from "../kv-QzKcOQgP.js";
|
|
11
|
-
import "../
|
|
12
|
-
import
|
|
13
|
-
import "../
|
|
14
|
-
import "../
|
|
15
|
-
import "../
|
|
16
|
-
import "../assert_not_equals-f3m3epl3.js";
|
|
17
|
-
import { assertThrows } from "../assert_throws-BOO88avQ.js";
|
|
11
|
+
import { test } from "../testing-BbJqK9NR.js";
|
|
12
|
+
import "../std__assert-DWivtrGR.js";
|
|
13
|
+
import "../assert_rejects-Ce45JcFg.js";
|
|
14
|
+
import "../assert_throws-BNXdRGWP.js";
|
|
15
|
+
import "../assert_not_equals-C80BG-_5.js";
|
|
18
16
|
import { getLogger } from "@logtape/logtape";
|
|
19
17
|
import { SpanKind, SpanStatusCode, TraceFlags } from "@opentelemetry/api";
|
|
20
18
|
import { ExportResultCode } from "@opentelemetry/core";
|
|
@@ -43,8 +41,9 @@ import { ExportResultCode } from "@opentelemetry/core";
|
|
|
43
41
|
* ttl: Temporal.Duration.from({ hours: 1 }),
|
|
44
42
|
* });
|
|
45
43
|
*
|
|
46
|
-
* const provider = new BasicTracerProvider(
|
|
47
|
-
*
|
|
44
|
+
* const provider = new BasicTracerProvider({
|
|
45
|
+
* spanProcessors: [new SimpleSpanProcessor(exporter)],
|
|
46
|
+
* });
|
|
48
47
|
* ```
|
|
49
48
|
*
|
|
50
49
|
* @example Querying stored traces
|
|
@@ -69,21 +68,16 @@ var FedifySpanExporter = class {
|
|
|
69
68
|
#kv;
|
|
70
69
|
#ttl;
|
|
71
70
|
#keyPrefix;
|
|
72
|
-
#useList;
|
|
73
71
|
/**
|
|
74
72
|
* Creates a new FedifySpanExporter.
|
|
75
73
|
*
|
|
76
|
-
* @param kv The KvStore to persist trace data to.
|
|
77
|
-
* `list()` or `cas()` method.
|
|
74
|
+
* @param kv The KvStore to persist trace data to.
|
|
78
75
|
* @param options Configuration options.
|
|
79
|
-
* @throws {Error} If the KvStore supports neither `list()` nor `cas()`.
|
|
80
76
|
*/
|
|
81
77
|
constructor(kv, options) {
|
|
82
|
-
if (kv.list == null && kv.cas == null) throw new Error("KvStore must support either list() or cas() method to use FedifySpanExporter. Consider using a KvStore implementation that supports these operations, such as MemoryKvStore, RedisKvStore, PostgresKvStore, or SqliteKvStore.");
|
|
83
78
|
this.#kv = kv;
|
|
84
79
|
this.#ttl = options?.ttl;
|
|
85
80
|
this.#keyPrefix = options?.keyPrefix ?? ["fedify", "traces"];
|
|
86
|
-
this.#useList = kv.list != null;
|
|
87
81
|
}
|
|
88
82
|
/**
|
|
89
83
|
* Exports spans to the KvStore.
|
|
@@ -116,7 +110,7 @@ var FedifySpanExporter = class {
|
|
|
116
110
|
const spanContext = span.spanContext();
|
|
117
111
|
const traceId = spanContext.traceId;
|
|
118
112
|
const spanId = spanContext.spanId;
|
|
119
|
-
const parentSpanId = span.
|
|
113
|
+
const parentSpanId = span.parentSpanContext?.spanId;
|
|
120
114
|
for (const event of span.events) if (event.name === "activitypub.activity.received") {
|
|
121
115
|
const record = this.#extractInboundRecord(event, traceId, spanId, parentSpanId);
|
|
122
116
|
if (record != null) records.push(record);
|
|
@@ -197,15 +191,13 @@ var FedifySpanExporter = class {
|
|
|
197
191
|
}
|
|
198
192
|
async #storeRecord(record) {
|
|
199
193
|
const options = this.#ttl != null ? { ttl: this.#ttl } : void 0;
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
await this.#updateTraceSummary(record, options);
|
|
208
|
-
} else await this.#storeWithCas(record, options);
|
|
194
|
+
const key = [
|
|
195
|
+
...this.#keyPrefix,
|
|
196
|
+
record.traceId,
|
|
197
|
+
record.spanId
|
|
198
|
+
];
|
|
199
|
+
await this.#kv.set(key, record, options);
|
|
200
|
+
await this.#updateTraceSummary(record, options);
|
|
209
201
|
}
|
|
210
202
|
async #setWithCasRetry(key, transform, options) {
|
|
211
203
|
if (this.#kv.cas != null) for (let attempt = 0; attempt < 3; attempt++) {
|
|
@@ -240,11 +232,6 @@ var FedifySpanExporter = class {
|
|
|
240
232
|
return summary;
|
|
241
233
|
}, options);
|
|
242
234
|
}
|
|
243
|
-
async #storeWithCas(record, options) {
|
|
244
|
-
const key = [...this.#keyPrefix, record.traceId];
|
|
245
|
-
await this.#setWithCasRetry(key, (existing) => existing ? [...existing, record] : [record], options);
|
|
246
|
-
await this.#updateTraceSummary(record, options);
|
|
247
|
-
}
|
|
248
235
|
/**
|
|
249
236
|
* Gets all activity records for a specific trace ID.
|
|
250
237
|
*
|
|
@@ -252,16 +239,10 @@ var FedifySpanExporter = class {
|
|
|
252
239
|
* @returns An array of activity records belonging to the trace.
|
|
253
240
|
*/
|
|
254
241
|
async getActivitiesByTraceId(traceId) {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
return records;
|
|
260
|
-
} else {
|
|
261
|
-
const key = [...this.#keyPrefix, traceId];
|
|
262
|
-
const records = await this.#kv.get(key);
|
|
263
|
-
return records ?? [];
|
|
264
|
-
}
|
|
242
|
+
const prefix = [...this.#keyPrefix, traceId];
|
|
243
|
+
const records = [];
|
|
244
|
+
for await (const entry of this.#kv.list(prefix)) records.push(entry.value);
|
|
245
|
+
return records;
|
|
265
246
|
}
|
|
266
247
|
/**
|
|
267
248
|
* Gets recent traces with summary information.
|
|
@@ -272,7 +253,7 @@ var FedifySpanExporter = class {
|
|
|
272
253
|
async getRecentTraces(options) {
|
|
273
254
|
const summaryPrefix = [...this.#keyPrefix, "_summaries"];
|
|
274
255
|
const summaries = [];
|
|
275
|
-
|
|
256
|
+
for await (const entry of this.#kv.list(summaryPrefix)) summaries.push(entry.value);
|
|
276
257
|
summaries.sort((a, b) => b.timestamp.localeCompare(a.timestamp));
|
|
277
258
|
if (options?.limit != null) return summaries.slice(0, options.limit);
|
|
278
259
|
return summaries;
|
|
@@ -298,11 +279,16 @@ function createMockSpan(options) {
|
|
|
298
279
|
spanId,
|
|
299
280
|
traceFlags: TraceFlags.SAMPLED
|
|
300
281
|
};
|
|
282
|
+
const parentSpanContext = options.parentSpanId ? {
|
|
283
|
+
traceId,
|
|
284
|
+
spanId: options.parentSpanId,
|
|
285
|
+
traceFlags: TraceFlags.SAMPLED
|
|
286
|
+
} : void 0;
|
|
301
287
|
return {
|
|
302
288
|
name: options.name ?? "test-span",
|
|
303
289
|
kind: SpanKind.INTERNAL,
|
|
304
290
|
spanContext: () => spanContext,
|
|
305
|
-
|
|
291
|
+
parentSpanContext,
|
|
306
292
|
startTime: [17e8, 0],
|
|
307
293
|
endTime: [1700000001, 0],
|
|
308
294
|
status: { code: SpanStatusCode.OK },
|
|
@@ -313,12 +299,14 @@ function createMockSpan(options) {
|
|
|
313
299
|
ended: true,
|
|
314
300
|
resource: {
|
|
315
301
|
attributes: {},
|
|
302
|
+
getRawAttributes: () => [],
|
|
316
303
|
merge: () => ({
|
|
317
304
|
attributes: {},
|
|
305
|
+
getRawAttributes: () => [],
|
|
318
306
|
merge: () => null
|
|
319
307
|
})
|
|
320
308
|
},
|
|
321
|
-
|
|
309
|
+
instrumentationScope: { name: "test" },
|
|
322
310
|
droppedAttributesCount: 0,
|
|
323
311
|
droppedEventsCount: 0,
|
|
324
312
|
droppedLinksCount: 0
|
|
@@ -349,29 +337,11 @@ function createActivitySentEvent(options) {
|
|
|
349
337
|
};
|
|
350
338
|
}
|
|
351
339
|
test("FedifySpanExporter", async (t) => {
|
|
352
|
-
await t.step("constructor throws if KvStore has neither list() nor cas()", () => {
|
|
353
|
-
const kv = {
|
|
354
|
-
get: () => Promise.resolve(void 0),
|
|
355
|
-
set: () => Promise.resolve(),
|
|
356
|
-
delete: () => Promise.resolve()
|
|
357
|
-
};
|
|
358
|
-
assertThrows(() => new FedifySpanExporter(kv), Error, "KvStore must support either list() or cas()");
|
|
359
|
-
});
|
|
360
340
|
await t.step("constructor accepts KvStore with list()", () => {
|
|
361
341
|
const kv = new MemoryKvStore();
|
|
362
342
|
const exporter = new FedifySpanExporter(kv);
|
|
363
343
|
assertEquals(exporter instanceof FedifySpanExporter, true);
|
|
364
344
|
});
|
|
365
|
-
await t.step("constructor accepts KvStore with cas() only", () => {
|
|
366
|
-
const kv = {
|
|
367
|
-
get: () => Promise.resolve(void 0),
|
|
368
|
-
set: () => Promise.resolve(),
|
|
369
|
-
delete: () => Promise.resolve(),
|
|
370
|
-
cas: () => Promise.resolve(true)
|
|
371
|
-
};
|
|
372
|
-
const exporter = new FedifySpanExporter(kv);
|
|
373
|
-
assertEquals(exporter instanceof FedifySpanExporter, true);
|
|
374
|
-
});
|
|
375
345
|
await t.step("export() stores inbound activity from span event", async () => {
|
|
376
346
|
const kv = new MemoryKvStore();
|
|
377
347
|
const exporter = new FedifySpanExporter(kv);
|
|
@@ -568,7 +538,7 @@ test("FedifySpanExporter", async (t) => {
|
|
|
568
538
|
const exporter = new FedifySpanExporter(kv);
|
|
569
539
|
await exporter.shutdown();
|
|
570
540
|
});
|
|
571
|
-
await t.step("works with
|
|
541
|
+
await t.step("works with custom KvStore implementation", async () => {
|
|
572
542
|
const storedData = {};
|
|
573
543
|
const kv = {
|
|
574
544
|
get: (key) => {
|
|
@@ -585,14 +555,18 @@ test("FedifySpanExporter", async (t) => {
|
|
|
585
555
|
delete storedData[k];
|
|
586
556
|
return Promise.resolve();
|
|
587
557
|
},
|
|
588
|
-
|
|
589
|
-
const
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
558
|
+
async *list(prefix) {
|
|
559
|
+
for (const [encodedKey, value] of Object.entries(storedData)) {
|
|
560
|
+
const key = JSON.parse(encodedKey);
|
|
561
|
+
if (prefix != null) {
|
|
562
|
+
if (key.length < prefix.length) continue;
|
|
563
|
+
if (!prefix.every((p, i) => key[i] === p)) continue;
|
|
564
|
+
}
|
|
565
|
+
yield {
|
|
566
|
+
key,
|
|
567
|
+
value
|
|
568
|
+
};
|
|
594
569
|
}
|
|
595
|
-
return Promise.resolve(false);
|
|
596
570
|
}
|
|
597
571
|
};
|
|
598
572
|
const exporter = new FedifySpanExporter(kv);
|