@fedify/fedify 1.10.0-dev.5 → 2.0.0-dev.12
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 +3 -0
- package/dist/{actor-BXsV2bEo.js → actor-C-FuEZU4.js} +220 -705
- package/dist/{actor-C1Euqngb.d.ts → actor-DqFajh9s.d.ts} +2 -2
- package/dist/{actor-Cn_Wo2Sr.cjs → actor-_9UN5RVT.cjs} +952 -1479
- package/dist/{actor-Ydzhc8dj.d.cts → actor-f2NtjyCg.d.cts} +2 -2
- package/dist/{actor-B1L4qxfi.js → actor-rOm0sXHU.js} +1 -1
- 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-C-PtyBzf.js → builder-hArjoWjW.js} +3 -4
- package/dist/{client-DjT_tegg.d.cts → client-94iWEfQa.d.cts} +3 -75
- package/dist/{client-DF8anIB5.d.ts → client-BsGzbnV-.d.ts} +3 -75
- package/dist/{client-DQu9XLnH.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-CwUAkopp.d.cts → context-PxGADCsD.d.cts} +152 -27
- package/dist/{context-CXUibY4L.d.ts → context-V-XS2_6O.d.ts} +152 -27
- package/dist/{authdocloader-Cx_DgATa.js → docloader-CE1lRhEV.js} +17 -8
- package/dist/{esm-BHq8vvU6.js → esm-BEFbR5eN.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-wsGR6KkT.d.ts → http-BbO0ejuk.d.ts} +2 -2
- package/dist/{http-ZepHDnAP.js → http-Bmx7ea3F.js} +2 -2
- package/dist/{http-B1_DzfAU.d.cts → http-M8k5mKc0.d.cts} +2 -2
- package/dist/{http-C4Oi5eIq.js → http-Q_l4fCEE.js} +256 -6
- package/dist/{http-BtKvhGUI.cjs → http-So5V_Tgv.cjs} +289 -9
- package/dist/{inbox-D6-aBaqR.js → inbox-B9PjFn2S.js} +2 -7
- package/dist/{key-Dwqt62bf.js → key-khQpfFdw.js} +3 -2
- package/dist/{keycache-DZ51X_tY.js → keycache-BU3fsZFa.js} +1 -1
- package/dist/{keys-D9SlcZrs.js → keys-BaMFfIdL.js} +2 -1
- package/dist/kv-cache-DN9pfMBe.js +94 -0
- package/dist/kv-cache-R1oW382l.js +122 -0
- package/dist/kv-cache-X2ggcnHI.cjs +134 -0
- package/dist/{ld-CTGnKRt0.js → ld-BLMebnep.js} +3 -2
- package/dist/{type-BBugK2n5.js → lookup-C7SSHgK7.js} +542 -5394
- package/dist/{lookup-aQOlOGdF.cjs → lookup-CLaDFNx1.cjs} +134 -5
- package/dist/{lookup-BnxmqZLB.js → lookup-CtC3x1M6.js} +125 -2
- package/dist/middleware-BYBwqvTv.cjs +15 -0
- package/dist/{middleware-BtJedzGJ.js → middleware-Bda2JO66.js} +38 -84
- package/dist/{middleware-DHDM-Bzb.js → middleware-C3ml59Hp.js} +43 -146
- package/dist/middleware-DC7h2qq-.js +26 -0
- package/dist/{middleware-DTIx6DRv.cjs → middleware-DFLterpx.cjs} +58 -104
- package/dist/middleware-mQR2SM7T.js +15 -0
- package/dist/{mod-CDObsV1d.d.ts → mod-BlVovdcy.d.ts} +2 -2
- package/dist/{mod-mXx9V0q5.d.cts → mod-BoRKfJPE.d.cts} +2 -2
- package/dist/{mod-BUbqxBev.d.cts → mod-BxRCHTz-.d.cts} +2 -2
- package/dist/{mod-jQ4OODsl.d.cts → mod-C58MZ7Wx.d.cts} +1 -1
- package/dist/{mod-BcObK1Lz.d.ts → mod-Cdo6SYlJ.d.ts} +2 -2
- package/dist/{mod-DgcYoyZK.d.ts → mod-D5Z2tISD.d.ts} +3 -3
- package/dist/mod-DMpuiKXi.d.cts +107 -0
- package/dist/{mod-fjqfsrty.d.cts → mod-DgxG-byT.d.cts} +3 -3
- package/dist/{mod-DBzN0aCM.d.ts → mod-Ds0mpFZU.d.ts} +1 -1
- package/dist/mod-aAE2wOWV.d.ts +109 -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/{owner-6KSEp9eV.d.cts → owner-B4HbyP8s.d.cts} +3 -3
- package/dist/{owner-DxpcLcST.js → owner-XzzTSr4S.js} +3 -2
- package/dist/{owner-BbeUDvOu.d.ts → owner-kQRGVXG1.d.ts} +3 -3
- package/dist/{proof-OAc97dy3.js → proof-B-qOSAuQ.js} +5 -4
- package/dist/{proof-ADZwDCs9.cjs → proof-BzJkFBBF.cjs} +18 -17
- package/dist/{proof-DBJnG2Jh.js → proof-C9sfVit1.js} +2 -2
- package/dist/{send-Df2mI5_D.js → send-yEkZlxzW.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-J7AQVhyi.js → testing-D-nLIHkh.js} +1 -2
- package/dist/{types-C-qRy7Sr.js → types-BtUjyi5y.js} +5 -166
- package/dist/{types-BIgY6c-l.js → types-C2XVl6gj.js} +1 -3
- package/dist/{types-Bzu6UrRZ.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 +209 -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-CDHNj5zp.d.ts → vocab-BCWe1Ih5.d.ts} +9 -25
- package/dist/{vocab-BmNpY-Qt.cjs → vocab-C96aggZM.cjs} +5 -5
- package/dist/{vocab-Cfs0937i.d.cts → vocab-CeDBzu-f.d.cts} +9 -25
- package/dist/{vocab-LbNRAL-4.js → vocab-axlR_8k0.js} +3 -3
- 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 +20 -51
- package/dist/assert_throws-BOO88avQ.js +0 -39
- package/dist/authdocloader-D9EszOkX.js +0 -52
- package/dist/authdocloader-Drjjh5Im.cjs +0 -58
- package/dist/denokv-D0nfNQ1x.js +0 -57
- package/dist/docloader-Bmu3XCd9.js +0 -4825
- package/dist/docloader-Ca3eoIku.cjs +0 -4891
- package/dist/docloader-CxWcuWqQ.d.ts +0 -221
- package/dist/docloader-D-MrRyHl.d.cts +0 -219
- package/dist/key-B0fFsgYk.js +0 -10
- package/dist/key-BvTvHoN1.js +0 -10
- package/dist/key-CPuhWBwH.cjs +0 -290
- package/dist/key-DUfn16_4.js +0 -260
- package/dist/key-DZieB9_P.cjs +0 -10
- package/dist/lookup-DSMnJERg.js +0 -336
- package/dist/middleware-BnRluVn4.js +0 -17
- package/dist/middleware-CkMXhJ9g.cjs +0 -17
- package/dist/middleware-DhE-His4.js +0 -26
- package/dist/mod-CIbqfZW0.d.ts +0 -104
- package/dist/mod-Dt-G9ZOS.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 -588
- 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-H2_En3j5.cjs → federation-CRpdnOMS.cjs} +0 -0
- /package/dist/{federation-D1U8YY9t.js → federation-jcR8-ZxP.js} +0 -0
- /package/dist/{kv-C7sopW2E.d.ts → kv-BKNZ-Tb-.d.ts} +0 -0
- /package/dist/{kv-63Cil1MD.d.cts → kv-Bxr0Q87_.d.cts} +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/{otel-Chy5T2Xh.js → otel-1BmGPuZc.js} +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
package/dist/src/vocab/page.yaml
CHANGED
package/dist/src/vocab/read.yaml
CHANGED
package/dist/src/vocab/undo.yaml
CHANGED
package/dist/src/vocab/view.yaml
CHANGED
|
@@ -3,17 +3,15 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import "../
|
|
6
|
+
import "../lookup-C7SSHgK7.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 "../assert_not_equals-f3m3epl3.js";
|
|
16
|
-
import "../assert_throws-BOO88avQ.js";
|
|
10
|
+
import { mockDocumentLoader, test } from "../testing-D-nLIHkh.js";
|
|
11
|
+
import "../std__assert-DWivtrGR.js";
|
|
12
|
+
import "../assert_rejects-Ce45JcFg.js";
|
|
13
|
+
import "../assert_throws-BNXdRGWP.js";
|
|
14
|
+
import "../assert_not_equals-C80BG-_5.js";
|
|
17
15
|
|
|
18
16
|
//#region src/testing/docloader.test.ts
|
|
19
17
|
test("mockDocumentLoader()", async () => {
|
package/dist/testing/mod.d.ts
CHANGED
|
@@ -1,102 +1,9 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
+
import { DocumentLoader, GetUserAgentOptions, LanguageString } from "@fedify/vocab-runtime";
|
|
4
5
|
import { Span, TracerProvider } from "@opentelemetry/api";
|
|
5
|
-
import { LanguageTag } from "@phensley/language-tag";
|
|
6
6
|
|
|
7
|
-
//#region src/runtime/docloader.d.ts
|
|
8
|
-
/**
|
|
9
|
-
* A remote JSON-LD document and its context fetched by
|
|
10
|
-
* a {@link DocumentLoader}.
|
|
11
|
-
*/
|
|
12
|
-
interface RemoteDocument {
|
|
13
|
-
/**
|
|
14
|
-
* The URL of the context document.
|
|
15
|
-
*/
|
|
16
|
-
contextUrl: string | null;
|
|
17
|
-
/**
|
|
18
|
-
* The fetched JSON-LD document.
|
|
19
|
-
*/
|
|
20
|
-
document: unknown;
|
|
21
|
-
/**
|
|
22
|
-
* The URL of the fetched document.
|
|
23
|
-
*/
|
|
24
|
-
documentUrl: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Options for {@link DocumentLoader}.
|
|
28
|
-
* @since 1.8.0
|
|
29
|
-
*/
|
|
30
|
-
interface DocumentLoaderOptions {
|
|
31
|
-
/**
|
|
32
|
-
* An `AbortSignal` for cancellation.
|
|
33
|
-
* @since 1.8.0
|
|
34
|
-
*/
|
|
35
|
-
signal?: AbortSignal;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* A JSON-LD document loader that fetches documents from the Web.
|
|
39
|
-
* @param url The URL of the document to load.
|
|
40
|
-
* @param options The options for the document loader.
|
|
41
|
-
* @returns The loaded remote document.
|
|
42
|
-
*/
|
|
43
|
-
type DocumentLoader = (url: string, options?: DocumentLoaderOptions) => Promise<RemoteDocument>;
|
|
44
|
-
/**
|
|
45
|
-
* A factory function that creates a {@link DocumentLoader} with options.
|
|
46
|
-
* @param options The options for the document loader.
|
|
47
|
-
* @returns The document loader.
|
|
48
|
-
* @since 1.4.0
|
|
49
|
-
*/
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Options for making `User-Agent` string.
|
|
53
|
-
* @see {@link getUserAgent}
|
|
54
|
-
* @since 1.3.0
|
|
55
|
-
*/
|
|
56
|
-
interface GetUserAgentOptions {
|
|
57
|
-
/**
|
|
58
|
-
* An optional software name and version, e.g., `"Hollo/1.0.0"`.
|
|
59
|
-
*/
|
|
60
|
-
software?: string | null;
|
|
61
|
-
/**
|
|
62
|
-
* An optional URL to append to the user agent string.
|
|
63
|
-
* Usually the URL of the ActivityPub instance.
|
|
64
|
-
*/
|
|
65
|
-
url?: string | URL | null;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Gets the user agent string for the given application and URL.
|
|
69
|
-
* @param options The options for making the user agent string.
|
|
70
|
-
* @returns The user agent string.
|
|
71
|
-
* @since 1.3.0
|
|
72
|
-
*/
|
|
73
|
-
//#endregion
|
|
74
|
-
//#region src/nodeinfo/semver.d.ts
|
|
75
|
-
/**
|
|
76
|
-
* A SemVer object parsed into its constituent parts.
|
|
77
|
-
* @since 1.2.0
|
|
78
|
-
*/
|
|
79
|
-
interface SemVer {
|
|
80
|
-
/** The major version */
|
|
81
|
-
major: number;
|
|
82
|
-
/** The minor version */
|
|
83
|
-
minor: number;
|
|
84
|
-
/** The patch version */
|
|
85
|
-
patch: number;
|
|
86
|
-
/**
|
|
87
|
-
* The prerelease version
|
|
88
|
-
*
|
|
89
|
-
* @default {[]}
|
|
90
|
-
*/
|
|
91
|
-
prerelease?: (string | number)[];
|
|
92
|
-
/**
|
|
93
|
-
* The build metadata
|
|
94
|
-
*
|
|
95
|
-
* @default {[]}
|
|
96
|
-
*/
|
|
97
|
-
build?: string[];
|
|
98
|
-
}
|
|
99
|
-
//#endregion
|
|
100
7
|
//#region src/nodeinfo/types.d.ts
|
|
101
8
|
/**
|
|
102
9
|
* The type of the result of parsing JSON.
|
|
@@ -146,9 +53,8 @@ interface Software {
|
|
|
146
53
|
name: string;
|
|
147
54
|
/**
|
|
148
55
|
* The version of this server software.
|
|
149
|
-
* @see {@link parseSemVer}
|
|
150
56
|
*/
|
|
151
|
-
version:
|
|
57
|
+
version: string;
|
|
152
58
|
/**
|
|
153
59
|
* The URL of the source code repository of this server software.
|
|
154
60
|
*/
|
|
@@ -276,21 +182,6 @@ interface GetNodeInfoOptions {
|
|
|
276
182
|
* @since 1.2.0
|
|
277
183
|
*/
|
|
278
184
|
//#endregion
|
|
279
|
-
//#region src/runtime/langstr.d.ts
|
|
280
|
-
/**
|
|
281
|
-
* A language-tagged string which corresponds to the `rdf:langString` type.
|
|
282
|
-
*/
|
|
283
|
-
declare class LanguageString extends String {
|
|
284
|
-
readonly language: LanguageTag;
|
|
285
|
-
/**
|
|
286
|
-
* Constructs a new `LanguageString`.
|
|
287
|
-
* @param value A string value written in the given language.
|
|
288
|
-
* @param language The language of the string. If a string is given, it will
|
|
289
|
-
* be parsed as a `LanguageTag`.
|
|
290
|
-
*/
|
|
291
|
-
constructor(value: string, language: LanguageTag | string);
|
|
292
|
-
}
|
|
293
|
-
//#endregion
|
|
294
185
|
//#region src/vocab/vocab.d.ts
|
|
295
186
|
/** Describes an object of any kind. The Object type serves as the base type for
|
|
296
187
|
* most of the other kinds of objects defined in the Activity Vocabulary,
|
|
@@ -4229,7 +4120,7 @@ declare class Link {
|
|
|
4229
4120
|
mediaType?: string | null;
|
|
4230
4121
|
name?: string | LanguageString | null;
|
|
4231
4122
|
names?: ((string | LanguageString))[];
|
|
4232
|
-
language?:
|
|
4123
|
+
language?: Intl.Locale | null;
|
|
4233
4124
|
height?: number | null;
|
|
4234
4125
|
width?: number | null;
|
|
4235
4126
|
previews?: (Link | Object$1 | URL)[];
|
|
@@ -4252,7 +4143,7 @@ declare class Link {
|
|
|
4252
4143
|
mediaType?: string | null;
|
|
4253
4144
|
name?: string | LanguageString | null;
|
|
4254
4145
|
names?: ((string | LanguageString))[];
|
|
4255
|
-
language?:
|
|
4146
|
+
language?: Intl.Locale | null;
|
|
4256
4147
|
height?: number | null;
|
|
4257
4148
|
width?: number | null;
|
|
4258
4149
|
previews?: (Link | Object$1 | URL)[];
|
|
@@ -4296,7 +4187,7 @@ declare class Link {
|
|
|
4296
4187
|
/** Hints as to the language used by the target resource.
|
|
4297
4188
|
* Value MUST be a BCP 47 Language-Tag.
|
|
4298
4189
|
*/
|
|
4299
|
-
get language():
|
|
4190
|
+
get language(): Intl.Locale | null;
|
|
4300
4191
|
/** On a {@link Link}, specifies a hint as to the rendering height in
|
|
4301
4192
|
* device-independent pixels of the linked resource.
|
|
4302
4193
|
*/
|
|
@@ -4383,7 +4274,7 @@ declare class Hashtag extends Link {
|
|
|
4383
4274
|
mediaType?: string | null;
|
|
4384
4275
|
name?: string | LanguageString | null;
|
|
4385
4276
|
names?: ((string | LanguageString))[];
|
|
4386
|
-
language?:
|
|
4277
|
+
language?: Intl.Locale | null;
|
|
4387
4278
|
height?: number | null;
|
|
4388
4279
|
width?: number | null;
|
|
4389
4280
|
previews?: (Link | Object$1 | URL)[];
|
|
@@ -4406,7 +4297,7 @@ declare class Hashtag extends Link {
|
|
|
4406
4297
|
mediaType?: string | null;
|
|
4407
4298
|
name?: string | LanguageString | null;
|
|
4408
4299
|
names?: ((string | LanguageString))[];
|
|
4409
|
-
language?:
|
|
4300
|
+
language?: Intl.Locale | null;
|
|
4410
4301
|
height?: number | null;
|
|
4411
4302
|
width?: number | null;
|
|
4412
4303
|
previews?: (Link | Object$1 | URL)[];
|
|
@@ -8127,13 +8018,13 @@ interface CollectionCallbackSetters<TContext extends Context<TContextData>, TCon
|
|
|
8127
8018
|
*
|
|
8128
8019
|
* - `"per-origin"`: Activities are deduplicated per receiving server's origin.
|
|
8129
8020
|
* The same activity ID will be processed only once on each receiving server,
|
|
8130
|
-
* but can be processed separately on different receiving servers. This
|
|
8131
|
-
* the default behavior in Fedify 1.x versions.
|
|
8021
|
+
* but can be processed separately on different receiving servers. This had
|
|
8022
|
+
* been the default behavior in Fedify 1.x versions.
|
|
8132
8023
|
*
|
|
8133
8024
|
* - `"per-inbox"`: Activities are deduplicated per inbox. The same activity
|
|
8134
8025
|
* ID can be processed once per inbox, allowing the same activity to be
|
|
8135
8026
|
* delivered to multiple inboxes independently. This follows standard
|
|
8136
|
-
* ActivityPub behavior and
|
|
8027
|
+
* ActivityPub behavior and is the default strategy since Fedify 2.0.0.
|
|
8137
8028
|
*
|
|
8138
8029
|
* @since 1.9.0
|
|
8139
8030
|
*/
|
package/dist/testing/mod.js
CHANGED
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import "../
|
|
7
|
-
import "../
|
|
8
|
-
import { createInboxContext, createRequestContext, test, testDefinitions } from "../testing-J7AQVhyi.js";
|
|
6
|
+
import "../lookup-C7SSHgK7.js";
|
|
7
|
+
import { createInboxContext, createRequestContext, test, testDefinitions } from "../testing-D-nLIHkh.js";
|
|
9
8
|
|
|
10
9
|
export { createInboxContext, createRequestContext, test, testDefinitions };
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { __require, lookupWebFinger } from "./
|
|
7
|
-
import { RouterError, lookupObject, traverseCollection } from "./lookup-DSMnJERg.js";
|
|
6
|
+
import { RouterError, __require, lookupObject, lookupWebFinger, traverseCollection } from "./lookup-C7SSHgK7.js";
|
|
8
7
|
import { configure, getConsoleSink, getLogger, reset } from "@logtape/logtape";
|
|
9
8
|
import { trace } from "@opentelemetry/api";
|
|
10
9
|
|
|
@@ -2,152 +2,9 @@
|
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
|
|
5
|
-
import { getUserAgent } from "./docloader-Bmu3XCd9.js";
|
|
6
5
|
import { getLogger } from "@logtape/logtape";
|
|
6
|
+
import { getUserAgent } from "@fedify/vocab-runtime";
|
|
7
7
|
|
|
8
|
-
//#region src/nodeinfo/semver.ts
|
|
9
|
-
const MAX_LENGTH = 256;
|
|
10
|
-
/**
|
|
11
|
-
* A single `0`, or a non-zero digit followed by zero or more digits.
|
|
12
|
-
*/
|
|
13
|
-
const NUMERIC_IDENTIFIER = "0|[1-9]\\d*";
|
|
14
|
-
/**
|
|
15
|
-
* Zero or more digits, followed by a letter or hyphen, and then zero or more letters, digits, or hyphens.
|
|
16
|
-
*/
|
|
17
|
-
const NON_NUMERIC_IDENTIFIER = "\\d*[a-zA-Z-][a-zA-Z0-9-]*";
|
|
18
|
-
/**
|
|
19
|
-
* Three dot-separated numeric identifiers.
|
|
20
|
-
*/
|
|
21
|
-
const VERSION_CORE = `(?<major>${NUMERIC_IDENTIFIER})\\.(?<minor>${NUMERIC_IDENTIFIER})\\.(?<patch>${NUMERIC_IDENTIFIER})`;
|
|
22
|
-
/**
|
|
23
|
-
* A numeric identifier, or a non-numeric identifier.
|
|
24
|
-
*/
|
|
25
|
-
const PRERELEASE_IDENTIFIER = `(?:${NUMERIC_IDENTIFIER}|${NON_NUMERIC_IDENTIFIER})`;
|
|
26
|
-
/**
|
|
27
|
-
* A hyphen, followed by one or more dot-separated pre-release version identifiers.
|
|
28
|
-
* @example "-pre.release"
|
|
29
|
-
*/
|
|
30
|
-
const PRERELEASE = `(?:-(?<prerelease>${PRERELEASE_IDENTIFIER}(?:\\.${PRERELEASE_IDENTIFIER})*))`;
|
|
31
|
-
/**
|
|
32
|
-
* Any combination of digits, letters, or hyphens.
|
|
33
|
-
*/
|
|
34
|
-
const BUILD_IDENTIFIER = "[0-9A-Za-z-]+";
|
|
35
|
-
/**
|
|
36
|
-
* A plus sign, followed by one or more period-separated build metadata identifiers.
|
|
37
|
-
* @example "+build.meta"
|
|
38
|
-
*/
|
|
39
|
-
const BUILD = `(?:\\+(?<buildmetadata>${BUILD_IDENTIFIER}(?:\\.${BUILD_IDENTIFIER})*))`;
|
|
40
|
-
/**
|
|
41
|
-
* A version, followed optionally by a pre-release version and build metadata.
|
|
42
|
-
*/
|
|
43
|
-
const FULL_VERSION = `v?${VERSION_CORE}${PRERELEASE}?${BUILD}?`;
|
|
44
|
-
const FULL_REGEXP = /* @__PURE__ */ new RegExp(`^${FULL_VERSION}$`);
|
|
45
|
-
/**
|
|
46
|
-
* Attempt to parse a string as a semantic version, returning a SemVer object.
|
|
47
|
-
*
|
|
48
|
-
* @example Usage
|
|
49
|
-
* ```ts
|
|
50
|
-
* import { parseSemVer } from "@fedify/fedify/nodeinfo";
|
|
51
|
-
* import { assertEquals } from "@std/assert";
|
|
52
|
-
*
|
|
53
|
-
* const version = parseSemVer("1.2.3");
|
|
54
|
-
* assertEquals(version, {
|
|
55
|
-
* major: 1,
|
|
56
|
-
* minor: 2,
|
|
57
|
-
* patch: 3,
|
|
58
|
-
* prerelease: [],
|
|
59
|
-
* build: [],
|
|
60
|
-
* });
|
|
61
|
-
* ```
|
|
62
|
-
*
|
|
63
|
-
* @throws {TypeError} If the input string is invalid.
|
|
64
|
-
* @param value The version string to parse
|
|
65
|
-
* @returns A valid SemVer
|
|
66
|
-
* @since 1.2.0
|
|
67
|
-
*/
|
|
68
|
-
function parseSemVer(value) {
|
|
69
|
-
if (typeof value !== "string") throw new TypeError(`Cannot parse version as version must be a string: received ${typeof value}`);
|
|
70
|
-
if (value.length > MAX_LENGTH) throw new TypeError(`Cannot parse version as version length is too long: length is ${value.length}, max length is ${MAX_LENGTH}`);
|
|
71
|
-
value = value.trim();
|
|
72
|
-
const groups = value.match(FULL_REGEXP)?.groups;
|
|
73
|
-
if (!groups) throw new TypeError(`Cannot parse version: ${value}`);
|
|
74
|
-
const major = parseNumber(groups.major, `Cannot parse version ${value}: invalid major version`);
|
|
75
|
-
const minor = parseNumber(groups.minor, `Cannot parse version ${value}: invalid minor version`);
|
|
76
|
-
const patch = parseNumber(groups.patch, `Cannot parse version ${value}: invalid patch version`);
|
|
77
|
-
const prerelease = groups.prerelease ? parsePrerelease(groups.prerelease) : [];
|
|
78
|
-
const build = groups.buildmetadata ? parseBuild(groups.buildmetadata) : [];
|
|
79
|
-
return {
|
|
80
|
-
major,
|
|
81
|
-
minor,
|
|
82
|
-
patch,
|
|
83
|
-
prerelease,
|
|
84
|
-
build
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Returns true if the value is a valid SemVer number.
|
|
89
|
-
*
|
|
90
|
-
* Must be a number. Must not be NaN. Can be positive or negative infinity.
|
|
91
|
-
* Can be between 0 and MAX_SAFE_INTEGER.
|
|
92
|
-
* @param value The value to check
|
|
93
|
-
* @returns True if its a valid semver number
|
|
94
|
-
*/
|
|
95
|
-
function isValidNumber(value) {
|
|
96
|
-
return typeof value === "number" && !Number.isNaN(value) && (!Number.isFinite(value) || 0 <= value && value <= Number.MAX_SAFE_INTEGER);
|
|
97
|
-
}
|
|
98
|
-
const NUMERIC_IDENTIFIER_REGEXP = /* @__PURE__ */ new RegExp(`^${NUMERIC_IDENTIFIER}$`);
|
|
99
|
-
function parsePrerelease(prerelease) {
|
|
100
|
-
return prerelease.split(".").filter(Boolean).map((id) => {
|
|
101
|
-
if (NUMERIC_IDENTIFIER_REGEXP.test(id)) {
|
|
102
|
-
const number = Number(id);
|
|
103
|
-
if (isValidNumber(number)) return number;
|
|
104
|
-
}
|
|
105
|
-
return id;
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
function parseBuild(buildmetadata) {
|
|
109
|
-
return buildmetadata.split(".").filter(Boolean);
|
|
110
|
-
}
|
|
111
|
-
function parseNumber(input, errorMessage) {
|
|
112
|
-
const number = Number(input);
|
|
113
|
-
if (!isValidNumber(number)) throw new TypeError(errorMessage);
|
|
114
|
-
return number;
|
|
115
|
-
}
|
|
116
|
-
function formatNumber(value) {
|
|
117
|
-
return value.toFixed(0);
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Format a SemVer object into a string.
|
|
121
|
-
*
|
|
122
|
-
* @example Usage
|
|
123
|
-
* ```ts
|
|
124
|
-
* import { formatSemVer } from "@fedify/fedify/nodeinfo";
|
|
125
|
-
* import { assertEquals } from "@std/assert";
|
|
126
|
-
*
|
|
127
|
-
* const semver = {
|
|
128
|
-
* major: 1,
|
|
129
|
-
* minor: 2,
|
|
130
|
-
* patch: 3,
|
|
131
|
-
* };
|
|
132
|
-
* assertEquals(formatSemVer(semver), "1.2.3");
|
|
133
|
-
* ```
|
|
134
|
-
*
|
|
135
|
-
* @param version The SemVer to format
|
|
136
|
-
* @returns The string representation of a semantic version.
|
|
137
|
-
* @since 1.2.0
|
|
138
|
-
*/
|
|
139
|
-
function formatSemVer(version) {
|
|
140
|
-
const major = formatNumber(version.major);
|
|
141
|
-
const minor = formatNumber(version.minor);
|
|
142
|
-
const patch = formatNumber(version.patch);
|
|
143
|
-
const pre = version.prerelease?.join(".") ?? "";
|
|
144
|
-
const build = version.build?.join(".") ?? "";
|
|
145
|
-
const primary = `${major}.${minor}.${patch}`;
|
|
146
|
-
const release = [primary, pre].filter((v) => v).join("-");
|
|
147
|
-
return [release, build].filter((v) => v).join("+");
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
//#endregion
|
|
151
8
|
//#region src/nodeinfo/client.ts
|
|
152
9
|
const logger = getLogger([
|
|
153
10
|
"fedify",
|
|
@@ -274,28 +131,10 @@ function parseSoftware(data, options = {}) {
|
|
|
274
131
|
name = data.name.trim().toLowerCase();
|
|
275
132
|
} else return null;
|
|
276
133
|
let version;
|
|
277
|
-
if ("version" in data
|
|
278
|
-
version = parseSemVer(data.version);
|
|
279
|
-
} catch {
|
|
280
|
-
if (!options.tryBestEffort) return null;
|
|
281
|
-
const parts = data.version.split(".").map((p) => parseInt(p, 10));
|
|
282
|
-
version = {
|
|
283
|
-
major: !isNaN(parts[0]) ? parts[0] : 0,
|
|
284
|
-
minor: !isNaN(parts[1]) ? parts[1] : 0,
|
|
285
|
-
patch: !isNaN(parts[2]) ? parts[2] : 0,
|
|
286
|
-
build: [],
|
|
287
|
-
prerelease: []
|
|
288
|
-
};
|
|
289
|
-
}
|
|
134
|
+
if ("version" in data) version = String(data.version);
|
|
290
135
|
else {
|
|
291
136
|
if (!options.tryBestEffort) return null;
|
|
292
|
-
version =
|
|
293
|
-
major: 0,
|
|
294
|
-
minor: 0,
|
|
295
|
-
patch: 0,
|
|
296
|
-
build: [],
|
|
297
|
-
prerelease: []
|
|
298
|
-
};
|
|
137
|
+
version = "0.0.0";
|
|
299
138
|
}
|
|
300
139
|
let repository;
|
|
301
140
|
if ("repository" in data) {
|
|
@@ -432,7 +271,7 @@ function nodeInfoToJson(nodeInfo) {
|
|
|
432
271
|
version: "2.1",
|
|
433
272
|
software: {
|
|
434
273
|
name: nodeInfo.software.name,
|
|
435
|
-
version:
|
|
274
|
+
version: nodeInfo.software.version,
|
|
436
275
|
repository: nodeInfo.software.repository?.href,
|
|
437
276
|
homepage: nodeInfo.software.homepage?.href
|
|
438
277
|
},
|
|
@@ -455,4 +294,4 @@ function nodeInfoToJson(nodeInfo) {
|
|
|
455
294
|
}
|
|
456
295
|
|
|
457
296
|
//#endregion
|
|
458
|
-
export {
|
|
297
|
+
export { getNodeInfo, nodeInfoToJson, parseNodeInfo };
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { formatSemVer } from "./semver-dArNLkR9.js";
|
|
7
|
-
|
|
8
6
|
//#region src/nodeinfo/types.ts
|
|
9
7
|
/**
|
|
10
8
|
* Converts a {@link NodeInfo} object to a JSON value.
|
|
@@ -25,7 +23,7 @@ function nodeInfoToJson(nodeInfo) {
|
|
|
25
23
|
version: "2.1",
|
|
26
24
|
software: {
|
|
27
25
|
name: nodeInfo.software.name,
|
|
28
|
-
version:
|
|
26
|
+
version: nodeInfo.software.version,
|
|
29
27
|
repository: nodeInfo.software.repository?.href,
|
|
30
28
|
homepage: nodeInfo.software.homepage?.href
|
|
31
29
|
},
|