@fedify/fedify 1.9.0-pr.388.1454 → 1.9.0-pr.388.1456
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/dist/{actor-D6e9qEkV.js → actor-Bj4E2JRg.js} +1 -1
- package/dist/{actor-rnKKWIEt.js → actor-DEUcppZT.js} +187 -187
- package/dist/{authdocloader-DNXCwhe4.js → authdocloader-CmFtuaWu.js} +3 -3
- package/dist/{authdocloader-BLlcg6OT.js → authdocloader-Dx6uHSEc.js} +3 -3
- package/dist/{builder-rbQSp-ig.js → builder-CxPGY_jN.js} +4 -4
- package/dist/{client-V4MB7-QC.js → client-iVnypF2y.js} +1 -1
- package/dist/compat/transformers.test.js +16 -16
- package/dist/{docloader-B0JdtOnB.js → docloader-dcX6wT70.js} +2 -2
- package/dist/{esm-Lllns3MF.js → esm-BczgbYY7.js} +1 -1
- package/dist/federation/builder.test.js +5 -5
- package/dist/federation/collection.test.js +3 -3
- package/dist/federation/handler.test.js +17 -17
- package/dist/federation/inbox.test.js +4 -4
- package/dist/federation/keycache.test.js +4 -4
- package/dist/federation/kv.test.js +3 -3
- package/dist/federation/middleware.test.js +18 -18
- package/dist/federation/mod.js +10 -10
- package/dist/federation/mq.test.js +3 -3
- package/dist/federation/retry.test.js +3 -3
- package/dist/federation/router.test.js +3 -3
- package/dist/federation/send.test.js +10 -10
- package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +24 -0
- package/dist/{http-CyF0WaM0.js → http-BgBStUQn.js} +50 -4
- package/dist/{http-Udeoz_Al.js → http-DLDZw5Or.js} +51 -5
- package/dist/{inbox-5hqyXKPa.js → inbox-DdQaBIzA.js} +1 -1
- package/dist/{key-CTkfaVig.js → key-BRTdSnMG.js} +3 -3
- package/dist/{key-DIPT1P-B.js → key-BgPXFh5H.js} +2 -2
- package/dist/{key-7MvpRoyd.js → key-Bogxf4NW.js} +2 -2
- package/dist/{key-5ppjSAIK.js → key-C_wDZpcY.js} +4 -4
- package/dist/{keycache-rmZ6V89m.js → keycache-C4SeJJRt.js} +1 -1
- package/dist/{keys-DwuXi5ni.js → keys-BaR7xMh1.js} +1 -1
- package/dist/{ld-pm8P5ZxN.js → ld-B3_WG7GN.js} +2 -2
- package/dist/{lookup-DV4bXX-_.js → lookup-DYiszLvp.js} +1 -1
- package/dist/{lookup-RSoRngQM.js → lookup-Dpul0cUe.js} +1 -1
- package/dist/{middleware-DLtvTXdd.js → middleware-BkT88swb.js} +13 -13
- package/dist/middleware-GyK1UpCo.js +17 -0
- package/dist/middleware-WfGCcPDI.js +26 -0
- package/dist/{middleware-u3F5lAP_.js → middleware-hKurpsy6.js} +10 -10
- package/dist/mod.js +10 -10
- package/dist/nodeinfo/client.test.js +5 -5
- package/dist/nodeinfo/handler.test.js +16 -16
- package/dist/nodeinfo/mod.js +2 -2
- package/dist/nodeinfo/semver.test.js +3 -3
- package/dist/nodeinfo/types.test.js +3 -3
- package/dist/{owner-Dyov2Vyh.js → owner-DBEblO3I.js} +2 -2
- package/dist/{proof-DOdxEdqB.js → proof-Zk7ECIIN.js} +2 -2
- package/dist/{proof-BKV2LcLG.js → proof-e2T8mSSn.js} +3 -3
- package/dist/runtime/authdocloader.test.js +9 -9
- package/dist/runtime/docloader.test.js +28 -4
- package/dist/runtime/key.test.js +5 -5
- package/dist/runtime/langstr.test.js +3 -3
- package/dist/runtime/mod.js +6 -6
- package/dist/runtime/multibase/multibase.test.js +3 -3
- package/dist/runtime/url.test.js +3 -3
- package/dist/{send-BW12PG34.js → send-DiNom3JD.js} +2 -2
- package/dist/sig/http.test.js +24 -8
- package/dist/sig/key.test.js +6 -6
- package/dist/sig/ld.test.js +7 -7
- package/dist/sig/mod.js +6 -6
- package/dist/sig/owner.test.js +7 -7
- package/dist/sig/proof.test.js +7 -7
- package/dist/testing/docloader.test.js +3 -3
- package/dist/testing/mod.js +3 -3
- package/dist/{testing-BVgrw3iR.js → testing-oIthntGQ.js} +2 -2
- package/dist/{type-DGVk0-c1.js → type-aO0QESjd.js} +187 -187
- package/dist/{types-DpoqseBT.js → types-DlmitN02.js} +1 -1
- package/dist/vocab/actor.test.js +5 -5
- package/dist/vocab/lookup.test.js +4 -4
- package/dist/vocab/mod.js +4 -4
- package/dist/vocab/type.test.js +3 -3
- package/dist/vocab/vocab.test.js +4 -4
- package/dist/{vocab-xe_N1JvM.js → vocab-Drpu6tmF.js} +3 -3
- package/dist/webfinger/handler.test.js +16 -16
- package/dist/webfinger/lookup.test.js +4 -4
- package/dist/webfinger/mod.js +2 -2
- package/dist/x/cfworkers.test.js +3 -3
- package/package.json +1 -1
- package/dist/middleware-C6C_eSdH.js +0 -17
- package/dist/middleware-kt4x4bcT.js +0 -26
@@ -2,9 +2,9 @@
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
|
5
|
-
import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./docloader-
|
6
|
-
import { validateCryptoKey } from "./key-
|
7
|
-
import { doubleKnock } from "./http-
|
5
|
+
import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./docloader-dcX6wT70.js";
|
6
|
+
import { validateCryptoKey } from "./key-BgPXFh5H.js";
|
7
|
+
import { doubleKnock } from "./http-DLDZw5Or.js";
|
8
8
|
import { getLogger } from "@logtape/logtape";
|
9
9
|
|
10
10
|
//#region src/runtime/authdocloader.ts
|
@@ -3,9 +3,9 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./type-
|
7
|
-
import { validateCryptoKey } from "./key-
|
8
|
-
import { doubleKnock } from "./http-
|
6
|
+
import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./type-aO0QESjd.js";
|
7
|
+
import { validateCryptoKey } from "./key-Bogxf4NW.js";
|
8
|
+
import { doubleKnock } from "./http-BgBStUQn.js";
|
9
9
|
import { getLogger } from "@logtape/logtape";
|
10
10
|
|
11
11
|
//#region src/runtime/authdocloader.ts
|
@@ -3,9 +3,9 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { deno_default, getTypeId } from "./type-
|
7
|
-
import { Router, RouterError } from "./lookup-
|
8
|
-
import { InboxListenerSet } from "./inbox-
|
6
|
+
import { deno_default, getTypeId } from "./type-aO0QESjd.js";
|
7
|
+
import { Router, RouterError } from "./lookup-Dpul0cUe.js";
|
8
|
+
import { InboxListenerSet } from "./inbox-DdQaBIzA.js";
|
9
9
|
import { getLogger } from "@logtape/logtape";
|
10
10
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
11
11
|
|
@@ -41,7 +41,7 @@ var FederationBuilderImpl = class {
|
|
41
41
|
this.collectionTypeIds = {};
|
42
42
|
}
|
43
43
|
async build(options) {
|
44
|
-
const { FederationImpl } = await import("./middleware-
|
44
|
+
const { FederationImpl } = await import("./middleware-WfGCcPDI.js");
|
45
45
|
const f = new FederationImpl(options);
|
46
46
|
const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
|
47
47
|
f.router = this.router.clone();
|
@@ -3,7 +3,7 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { getUserAgent } from "./type-
|
6
|
+
import { getUserAgent } from "./type-aO0QESjd.js";
|
7
7
|
import { parseSemVer } from "./semver-dArNLkR9.js";
|
8
8
|
import { getLogger } from "@logtape/logtape";
|
9
9
|
|
@@ -3,30 +3,30 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Follow, Person } from "../type-
|
6
|
+
import { Follow, Person } from "../type-aO0QESjd.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import { assertInstanceOf } from "../assert_instance_of-DHz7EHNU.js";
|
10
10
|
import { MemoryKvStore } from "../kv-CRZrzyXm.js";
|
11
|
-
import { FederationImpl, actorDehydrator, autoIdAssigner } from "../middleware-
|
11
|
+
import { FederationImpl, actorDehydrator, autoIdAssigner } from "../middleware-BkT88swb.js";
|
12
12
|
import "../semver-dArNLkR9.js";
|
13
|
-
import "../client-
|
14
|
-
import "../lookup-
|
13
|
+
import "../client-iVnypF2y.js";
|
14
|
+
import "../lookup-Dpul0cUe.js";
|
15
15
|
import "../types-BIgY6c-l.js";
|
16
|
-
import "../actor-
|
17
|
-
import "../key-
|
18
|
-
import "../http-
|
19
|
-
import "../authdocloader-
|
20
|
-
import "../ld-
|
21
|
-
import "../owner-
|
22
|
-
import "../proof-
|
23
|
-
import "../inbox-
|
24
|
-
import "../builder-
|
16
|
+
import "../actor-Bj4E2JRg.js";
|
17
|
+
import "../key-Bogxf4NW.js";
|
18
|
+
import "../http-BgBStUQn.js";
|
19
|
+
import "../authdocloader-Dx6uHSEc.js";
|
20
|
+
import "../ld-B3_WG7GN.js";
|
21
|
+
import "../owner-DBEblO3I.js";
|
22
|
+
import "../proof-Zk7ECIIN.js";
|
23
|
+
import "../inbox-DdQaBIzA.js";
|
24
|
+
import "../builder-CxPGY_jN.js";
|
25
25
|
import "../collection-CSzG2j1P.js";
|
26
|
-
import "../keycache-
|
26
|
+
import "../keycache-C4SeJJRt.js";
|
27
27
|
import "../retry-D4GJ670a.js";
|
28
|
-
import "../send-
|
29
|
-
import { test } from "../testing-
|
28
|
+
import "../send-DiNom3JD.js";
|
29
|
+
import { test } from "../testing-oIthntGQ.js";
|
30
30
|
|
31
31
|
//#region src/compat/transformers.test.ts
|
32
32
|
const federation = new FederationImpl({ kv: new MemoryKvStore() });
|
@@ -10,7 +10,7 @@ import { isIP } from "node:net";
|
|
10
10
|
|
11
11
|
//#region deno.json
|
12
12
|
var name = "@fedify/fedify";
|
13
|
-
var version = "1.9.0-pr.388.
|
13
|
+
var version = "1.9.0-pr.388.1456+c8cbdb88";
|
14
14
|
var license = "MIT";
|
15
15
|
var exports = {
|
16
16
|
".": "./src/mod.ts",
|
@@ -4446,7 +4446,7 @@ async function getRemoteDocument(url, response, fetch$1) {
|
|
4446
4446
|
}
|
4447
4447
|
let document;
|
4448
4448
|
if (!jsonLd && (contentType === "text/html" || contentType?.startsWith("text/html;") || contentType === "application/xhtml+xml" || contentType?.startsWith("application/xhtml+xml;"))) {
|
4449
|
-
const p = /<(a|link)((\s+[a-z][a-z:_-]*=("[^"]*"|'[^']*'|[^\s>]+))+)
|
4449
|
+
const p = /<(a|link)((\s+[a-z][a-z:_-]*=("[^"]*"|'[^']*'|[^\s>]+))+)\s*\/?>/gi;
|
4450
4450
|
const p2 = /\s+([a-z][a-z:_-]*)=("([^"]*)"|'([^']*)'|([^\s>]+))/gi;
|
4451
4451
|
const html = await response.text();
|
4452
4452
|
let m;
|
@@ -3,7 +3,7 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { __commonJS, __toESM } from "./type-
|
6
|
+
import { __commonJS, __toESM } from "./type-aO0QESjd.js";
|
7
7
|
|
8
8
|
//#region ../../node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js
|
9
9
|
var require_glob_to_regexp = __commonJS({ "../../node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js"(exports, module) {
|
@@ -3,16 +3,16 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Activity, Note, Person } from "../type-
|
6
|
+
import { Activity, Note, Person } from "../type-aO0QESjd.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-CRZrzyXm.js";
|
11
11
|
import { parseSemVer } from "../semver-dArNLkR9.js";
|
12
|
-
import "../lookup-
|
13
|
-
import "../inbox-
|
14
|
-
import { createFederationBuilder } from "../builder-
|
15
|
-
import { test } from "../testing-
|
12
|
+
import "../lookup-Dpul0cUe.js";
|
13
|
+
import "../inbox-DdQaBIzA.js";
|
14
|
+
import { createFederationBuilder } from "../builder-CxPGY_jN.js";
|
15
|
+
import { test } from "../testing-oIthntGQ.js";
|
16
16
|
import { assertExists } from "../std__assert-X-_kMxKM.js";
|
17
17
|
import "../assert_rejects-DiIiJbZn.js";
|
18
18
|
import "../assert_is_error-BPGph1Jx.js";
|
@@ -3,13 +3,13 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import "../type-
|
6
|
+
import "../type-aO0QESjd.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 "../lookup-
|
10
|
+
import "../lookup-Dpul0cUe.js";
|
11
11
|
import { buildCollectionSynchronizationHeader, digest } from "../collection-CSzG2j1P.js";
|
12
|
-
import { test } from "../testing-
|
12
|
+
import { test } from "../testing-oIthntGQ.js";
|
13
13
|
import "../std__assert-X-_kMxKM.js";
|
14
14
|
import "../assert_rejects-DiIiJbZn.js";
|
15
15
|
import "../assert_is_error-BPGph1Jx.js";
|
@@ -3,36 +3,36 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Create, Note, Person } from "../type-
|
6
|
+
import { Create, Note, Person } from "../type-aO0QESjd.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
10
10
|
import { MemoryKvStore } from "../kv-CRZrzyXm.js";
|
11
|
-
import { acceptsJsonLd, createFederation, handleActor, handleCollection, handleCustomCollection, handleInbox, handleObject, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-
|
11
|
+
import { acceptsJsonLd, createFederation, handleActor, handleCollection, handleCustomCollection, handleInbox, handleObject, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-BkT88swb.js";
|
12
12
|
import "../semver-dArNLkR9.js";
|
13
|
-
import "../client-
|
14
|
-
import "../lookup-
|
13
|
+
import "../client-iVnypF2y.js";
|
14
|
+
import "../lookup-Dpul0cUe.js";
|
15
15
|
import "../types-BIgY6c-l.js";
|
16
|
-
import "../actor-
|
17
|
-
import "../key-
|
18
|
-
import { signRequest } from "../http-
|
19
|
-
import "../authdocloader-
|
20
|
-
import "../ld-
|
21
|
-
import "../owner-
|
22
|
-
import "../proof-
|
23
|
-
import { InboxListenerSet } from "../inbox-
|
24
|
-
import "../builder-
|
16
|
+
import "../actor-Bj4E2JRg.js";
|
17
|
+
import "../key-Bogxf4NW.js";
|
18
|
+
import { signRequest } from "../http-BgBStUQn.js";
|
19
|
+
import "../authdocloader-Dx6uHSEc.js";
|
20
|
+
import "../ld-B3_WG7GN.js";
|
21
|
+
import "../owner-DBEblO3I.js";
|
22
|
+
import "../proof-Zk7ECIIN.js";
|
23
|
+
import { InboxListenerSet } from "../inbox-DdQaBIzA.js";
|
24
|
+
import "../builder-CxPGY_jN.js";
|
25
25
|
import "../collection-CSzG2j1P.js";
|
26
|
-
import "../keycache-
|
26
|
+
import "../keycache-C4SeJJRt.js";
|
27
27
|
import "../retry-D4GJ670a.js";
|
28
|
-
import "../send-
|
29
|
-
import { createInboxContext, createRequestContext, mockDocumentLoader, test } from "../testing-
|
28
|
+
import "../send-DiNom3JD.js";
|
29
|
+
import { createInboxContext, createRequestContext, mockDocumentLoader, test } from "../testing-oIthntGQ.js";
|
30
30
|
import "../std__assert-X-_kMxKM.js";
|
31
31
|
import { assertFalse } from "../assert_rejects-DiIiJbZn.js";
|
32
32
|
import "../assert_is_error-BPGph1Jx.js";
|
33
33
|
import "../assert_not_equals-f3m3epl3.js";
|
34
34
|
import "../assert_throws-BOO88avQ.js";
|
35
|
-
import { rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-
|
35
|
+
import { rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-BaR7xMh1.js";
|
36
36
|
|
37
37
|
//#region src/federation/handler.test.ts
|
38
38
|
test("acceptsJsonLd()", () => {
|
@@ -3,11 +3,11 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Activity, Create, Invite, Offer, Update } from "../type-
|
6
|
+
import { Activity, Create, Invite, Offer, Update } from "../type-aO0QESjd.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
|
-
import "../lookup-
|
9
|
-
import { InboxListenerSet } from "../inbox-
|
10
|
-
import { test } from "../testing-
|
8
|
+
import "../lookup-Dpul0cUe.js";
|
9
|
+
import { InboxListenerSet } from "../inbox-DdQaBIzA.js";
|
10
|
+
import { test } from "../testing-oIthntGQ.js";
|
11
11
|
import "../assert_is_error-BPGph1Jx.js";
|
12
12
|
import { assertThrows } from "../assert_throws-BOO88avQ.js";
|
13
13
|
|
@@ -3,14 +3,14 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { CryptographicKey, Multikey } from "../type-
|
6
|
+
import { CryptographicKey, Multikey } from "../type-aO0QESjd.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import { assertInstanceOf } from "../assert_instance_of-DHz7EHNU.js";
|
10
10
|
import { MemoryKvStore } from "../kv-CRZrzyXm.js";
|
11
|
-
import "../lookup-
|
12
|
-
import { KvKeyCache } from "../keycache-
|
13
|
-
import { test } from "../testing-
|
11
|
+
import "../lookup-Dpul0cUe.js";
|
12
|
+
import { KvKeyCache } from "../keycache-C4SeJJRt.js";
|
13
|
+
import { test } from "../testing-oIthntGQ.js";
|
14
14
|
|
15
15
|
//#region src/federation/keycache.test.ts
|
16
16
|
test("KvKeyCache.set()", async () => {
|
@@ -3,13 +3,13 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import "../type-
|
6
|
+
import "../type-aO0QESjd.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-CRZrzyXm.js";
|
11
|
-
import "../lookup-
|
12
|
-
import { test } from "../testing-
|
11
|
+
import "../lookup-Dpul0cUe.js";
|
12
|
+
import { test } from "../testing-oIthntGQ.js";
|
13
13
|
import "../std__assert-X-_kMxKM.js";
|
14
14
|
import "../assert_rejects-DiIiJbZn.js";
|
15
15
|
import "../assert_is_error-BPGph1Jx.js";
|
@@ -3,37 +3,37 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Activity, Announce, Create, FetchError, Invite, Multikey, Note, Object as Object$1, Offer, Person, fetchDocumentLoader, getTypeId } from "../type-
|
6
|
+
import { Activity, Announce, Create, FetchError, Invite, Multikey, Note, Object as Object$1, Offer, Person, fetchDocumentLoader, getTypeId } from "../type-aO0QESjd.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import { assertInstanceOf } from "../assert_instance_of-DHz7EHNU.js";
|
10
10
|
import { MemoryKvStore } from "../kv-CRZrzyXm.js";
|
11
|
-
import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "../middleware-
|
11
|
+
import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "../middleware-BkT88swb.js";
|
12
12
|
import "../semver-dArNLkR9.js";
|
13
|
-
import "../client-
|
14
|
-
import { RouterError, lookupObject } from "../lookup-
|
13
|
+
import "../client-iVnypF2y.js";
|
14
|
+
import { RouterError, lookupObject } from "../lookup-Dpul0cUe.js";
|
15
15
|
import "../types-BIgY6c-l.js";
|
16
|
-
import "../actor-
|
17
|
-
import "../key-
|
18
|
-
import { signRequest, verifyRequest } from "../http-
|
19
|
-
import { getAuthenticatedDocumentLoader } from "../authdocloader-
|
20
|
-
import { detachSignature, signJsonLd, verifyJsonLd } from "../ld-
|
21
|
-
import { doesActorOwnKey } from "../owner-
|
22
|
-
import { signObject, verifyObject } from "../proof-
|
23
|
-
import "../inbox-
|
24
|
-
import "../builder-
|
16
|
+
import "../actor-Bj4E2JRg.js";
|
17
|
+
import "../key-Bogxf4NW.js";
|
18
|
+
import { signRequest, verifyRequest } from "../http-BgBStUQn.js";
|
19
|
+
import { getAuthenticatedDocumentLoader } from "../authdocloader-Dx6uHSEc.js";
|
20
|
+
import { detachSignature, signJsonLd, verifyJsonLd } from "../ld-B3_WG7GN.js";
|
21
|
+
import { doesActorOwnKey } from "../owner-DBEblO3I.js";
|
22
|
+
import { signObject, verifyObject } from "../proof-Zk7ECIIN.js";
|
23
|
+
import "../inbox-DdQaBIzA.js";
|
24
|
+
import "../builder-CxPGY_jN.js";
|
25
25
|
import "../collection-CSzG2j1P.js";
|
26
|
-
import "../keycache-
|
26
|
+
import "../keycache-C4SeJJRt.js";
|
27
27
|
import "../retry-D4GJ670a.js";
|
28
|
-
import "../send-
|
29
|
-
import { mockDocumentLoader, test } from "../testing-
|
28
|
+
import "../send-DiNom3JD.js";
|
29
|
+
import { mockDocumentLoader, test } from "../testing-oIthntGQ.js";
|
30
30
|
import { assertStrictEquals } from "../std__assert-X-_kMxKM.js";
|
31
31
|
import { assertFalse, assertRejects } from "../assert_rejects-DiIiJbZn.js";
|
32
32
|
import "../assert_is_error-BPGph1Jx.js";
|
33
33
|
import { assertNotEquals } from "../assert_not_equals-f3m3epl3.js";
|
34
34
|
import { assertThrows } from "../assert_throws-BOO88avQ.js";
|
35
|
-
import { ed25519Multikey, ed25519PrivateKey, ed25519PublicKey, rsaPrivateKey2, rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-
|
36
|
-
import { esm_default } from "../esm-
|
35
|
+
import { ed25519Multikey, ed25519PrivateKey, ed25519PublicKey, rsaPrivateKey2, rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-BaR7xMh1.js";
|
36
|
+
import { esm_default } from "../esm-BczgbYY7.js";
|
37
37
|
|
38
38
|
//#region src/testing/fixtures/example.com/person.json
|
39
39
|
var __context$1 = ["https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1"];
|
package/dist/federation/mod.js
CHANGED
@@ -3,16 +3,16 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
|
5
5
|
import "../transformers-Dna8Fg7k.js";
|
6
|
-
import "../docloader-
|
7
|
-
import "../actor-
|
8
|
-
import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-
|
9
|
-
import "../lookup-
|
10
|
-
import "../key-
|
11
|
-
import "../http-
|
12
|
-
import "../proof-
|
6
|
+
import "../docloader-dcX6wT70.js";
|
7
|
+
import "../actor-DEUcppZT.js";
|
8
|
+
import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-hKurpsy6.js";
|
9
|
+
import "../lookup-DYiszLvp.js";
|
10
|
+
import "../key-BgPXFh5H.js";
|
11
|
+
import "../http-DLDZw5Or.js";
|
12
|
+
import "../proof-e2T8mSSn.js";
|
13
13
|
import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "../federation-CMX7WzeL.js";
|
14
|
-
import "../types-
|
15
|
-
import "../authdocloader-
|
16
|
-
import "../vocab-
|
14
|
+
import "../types-DlmitN02.js";
|
15
|
+
import "../authdocloader-CmFtuaWu.js";
|
16
|
+
import "../vocab-Drpu6tmF.js";
|
17
17
|
|
18
18
|
export { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue, Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
|
@@ -3,12 +3,12 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import "../type-
|
6
|
+
import "../type-aO0QESjd.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
10
|
-
import "../lookup-
|
11
|
-
import { test } from "../testing-
|
10
|
+
import "../lookup-Dpul0cUe.js";
|
11
|
+
import { test } from "../testing-oIthntGQ.js";
|
12
12
|
import { assertGreater, assertGreaterOrEqual } from "../std__assert-X-_kMxKM.js";
|
13
13
|
import { assertFalse } from "../assert_rejects-DiIiJbZn.js";
|
14
14
|
import "../assert_is_error-BPGph1Jx.js";
|
@@ -3,11 +3,11 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import "../type-
|
6
|
+
import "../type-aO0QESjd.js";
|
7
7
|
import { AssertionError, assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
|
-
import "../lookup-
|
8
|
+
import "../lookup-Dpul0cUe.js";
|
9
9
|
import { createExponentialBackoffPolicy } from "../retry-D4GJ670a.js";
|
10
|
-
import { test } from "../testing-
|
10
|
+
import { test } from "../testing-oIthntGQ.js";
|
11
11
|
import { assertNotEquals } from "../assert_not_equals-f3m3epl3.js";
|
12
12
|
|
13
13
|
//#region src/federation/retry.test.ts
|
@@ -3,12 +3,12 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import "../type-
|
6
|
+
import "../type-aO0QESjd.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
10
|
-
import { Router, RouterError } from "../lookup-
|
11
|
-
import { test } from "../testing-
|
10
|
+
import { Router, RouterError } from "../lookup-Dpul0cUe.js";
|
11
|
+
import { test } from "../testing-oIthntGQ.js";
|
12
12
|
import "../std__assert-X-_kMxKM.js";
|
13
13
|
import { assertFalse } from "../assert_rejects-DiIiJbZn.js";
|
14
14
|
import "../assert_is_error-BPGph1Jx.js";
|
@@ -3,24 +3,24 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Activity, Application, Endpoints, Group, Person, Service } from "../type-
|
6
|
+
import { Activity, Application, Endpoints, Group, Person, Service } from "../type-aO0QESjd.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
10
|
-
import "../lookup-
|
11
|
-
import "../actor-
|
12
|
-
import "../key-
|
13
|
-
import { verifyRequest } from "../http-
|
14
|
-
import { doesActorOwnKey } from "../owner-
|
15
|
-
import { extractInboxes, sendActivity } from "../send-
|
16
|
-
import { mockDocumentLoader, test } from "../testing-
|
10
|
+
import "../lookup-Dpul0cUe.js";
|
11
|
+
import "../actor-Bj4E2JRg.js";
|
12
|
+
import "../key-Bogxf4NW.js";
|
13
|
+
import { verifyRequest } from "../http-BgBStUQn.js";
|
14
|
+
import { doesActorOwnKey } from "../owner-DBEblO3I.js";
|
15
|
+
import { extractInboxes, sendActivity } from "../send-DiNom3JD.js";
|
16
|
+
import { mockDocumentLoader, test } from "../testing-oIthntGQ.js";
|
17
17
|
import "../std__assert-X-_kMxKM.js";
|
18
18
|
import { assertFalse, assertRejects } from "../assert_rejects-DiIiJbZn.js";
|
19
19
|
import "../assert_is_error-BPGph1Jx.js";
|
20
20
|
import { assertNotEquals } from "../assert_not_equals-f3m3epl3.js";
|
21
21
|
import "../assert_throws-BOO88avQ.js";
|
22
|
-
import { ed25519Multikey, ed25519PrivateKey, rsaPrivateKey2, rsaPublicKey2 } from "../keys-
|
23
|
-
import { esm_default } from "../esm-
|
22
|
+
import { ed25519Multikey, ed25519PrivateKey, rsaPrivateKey2, rsaPublicKey2 } from "../keys-BaR7xMh1.js";
|
23
|
+
import { esm_default } from "../esm-BczgbYY7.js";
|
24
24
|
|
25
25
|
//#region src/federation/send.test.ts
|
26
26
|
test("extractInboxes()", () => {
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"@context": [
|
3
|
+
"https://www.w3.org/ns/activitystreams",
|
4
|
+
"https://w3id.org/security/v1"
|
5
|
+
],
|
6
|
+
"id": "https://oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd",
|
7
|
+
"type": "Person",
|
8
|
+
"preferredUsername": "hongminhee",
|
9
|
+
"name": "洪兔",
|
10
|
+
"inbox": "https://oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd/inbox",
|
11
|
+
"outbox": "https://oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd/outbox",
|
12
|
+
"publicKey": {
|
13
|
+
"id": "https://oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd#main-key",
|
14
|
+
"owner": "https://oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd",
|
15
|
+
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAowJfOzpA/nAYyL0bVDTm\niCAOlhFCIBnqwk1jvGrbkDhMzxlsgyoDqUSlmcJdKaPwu24YdFajDtJIgto27Ju7\nIC3hB7OFchnZ4JZrdYFo7CJABOzK58o12sdmmkCdY5hXWf1604E+mzyIdBAJ1FFJ\nL8vP07VEUsZ7yo9x0iVNg7HpCOK+y6BqI2GHS2dq9qkqQEIhC2TKHXn/RQVXwYB6\nG+YQmVUtcsbCVKdcWyTKhItLRGnepu3BqBSbieLxV27B1O9NFSoPu8xiBUnYwMoe\nsUQCE5tGcqxc75HzcVCbq7PqVqHZ1NW9RYssaSUqi4FYcjXxQrR08DrAl8rR4eXT\n4QIDAQAB\n-----END PUBLIC KEY-----\n"
|
16
|
+
},
|
17
|
+
"endpoints": {
|
18
|
+
"type": "as:Endpoints",
|
19
|
+
"sharedInbox": "https://oeee.cafe/inbox"
|
20
|
+
},
|
21
|
+
"followers": "https://oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd/followers",
|
22
|
+
"manuallyApprovesFollowers": false,
|
23
|
+
"url": "https://oeee.cafe/@hongminhee"
|
24
|
+
}
|
@@ -3,8 +3,8 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { CryptographicKey, deno_default } from "./type-
|
7
|
-
import { fetchKey, validateCryptoKey } from "./key-
|
6
|
+
import { CryptographicKey, deno_default } from "./type-aO0QESjd.js";
|
7
|
+
import { fetchKey, validateCryptoKey } from "./key-Bogxf4NW.js";
|
8
8
|
import { getLogger } from "@logtape/logtape";
|
9
9
|
import { SpanStatusCode, trace } from "@opentelemetry/api";
|
10
10
|
import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL } from "@opentelemetry/semantic-conventions";
|
@@ -366,7 +366,7 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
|
|
366
366
|
return null;
|
367
367
|
}
|
368
368
|
}
|
369
|
-
const sigValues = Object.fromEntries(sigHeader.split(",").map((pair) => pair.match(/^\s*([A-Za-z]+)="([^"]*)"\s*$/)).filter((m) => m != null).map((m) => m
|
369
|
+
const sigValues = Object.fromEntries(sigHeader.split(",").map((pair) => pair.match(/^\s*([A-Za-z]+)=(?:"([^"]*)"|(\d+))\s*$/)).filter((m) => m != null).map((m) => [m[1], m[2] ?? m[3]]));
|
370
370
|
if (!("keyId" in sigValues)) {
|
371
371
|
logger.debug("Failed to verify; no keyId field found in the Signature header.", { signature: sigHeader });
|
372
372
|
return null;
|
@@ -377,6 +377,52 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
|
|
377
377
|
logger.debug("Failed to verify; no signature field found in the Signature header.", { signature: sigHeader });
|
378
378
|
return null;
|
379
379
|
}
|
380
|
+
if ("expires" in sigValues) {
|
381
|
+
const expiresSeconds = parseInt(sigValues.expires);
|
382
|
+
if (!Number.isInteger(expiresSeconds)) {
|
383
|
+
logger.debug("Failed to verify; invalid expires field in the Signature header: {expires}.", {
|
384
|
+
expires: sigValues.expires,
|
385
|
+
signature: sigHeader
|
386
|
+
});
|
387
|
+
return null;
|
388
|
+
}
|
389
|
+
const expires = Temporal.Instant.fromEpochMilliseconds(expiresSeconds * 1e3);
|
390
|
+
if (Temporal.Instant.compare(now, expires) > 0) {
|
391
|
+
logger.debug("Failed to verify; signature expired at {expires} (now: {now}).", {
|
392
|
+
expires: expires.toString(),
|
393
|
+
now: now.toString(),
|
394
|
+
signature: sigHeader
|
395
|
+
});
|
396
|
+
return null;
|
397
|
+
}
|
398
|
+
}
|
399
|
+
if ("created" in sigValues) {
|
400
|
+
const createdSeconds = parseInt(sigValues.created);
|
401
|
+
if (!Number.isInteger(createdSeconds)) {
|
402
|
+
logger.debug("Failed to verify; invalid created field in the Signature header: {created}.", {
|
403
|
+
created: sigValues.created,
|
404
|
+
signature: sigHeader
|
405
|
+
});
|
406
|
+
return null;
|
407
|
+
}
|
408
|
+
if (timeWindow !== false) {
|
409
|
+
const created = Temporal.Instant.fromEpochMilliseconds(createdSeconds * 1e3);
|
410
|
+
const tw = timeWindow ?? { minutes: 1 };
|
411
|
+
if (Temporal.Instant.compare(created, now.add(tw)) > 0) {
|
412
|
+
logger.debug("Failed to verify; created is too far in the future.", {
|
413
|
+
created: created.toString(),
|
414
|
+
now: now.toString()
|
415
|
+
});
|
416
|
+
return null;
|
417
|
+
} else if (Temporal.Instant.compare(created, now.subtract(tw)) < 0) {
|
418
|
+
logger.debug("Failed to verify; created is too far in the past.", {
|
419
|
+
created: created.toString(),
|
420
|
+
now: now.toString()
|
421
|
+
});
|
422
|
+
return null;
|
423
|
+
}
|
424
|
+
}
|
425
|
+
}
|
380
426
|
const { keyId, headers, signature } = sigValues;
|
381
427
|
span?.setAttribute("http_signatures.key_id", keyId);
|
382
428
|
if ("algorithm" in sigValues) span?.setAttribute("http_signatures.algorithm", sigValues.algorithm);
|
@@ -396,7 +442,7 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
|
|
396
442
|
logger.debug("Failed to verify; required headers missing in the Signature header: {headers}.", { headers });
|
397
443
|
return null;
|
398
444
|
}
|
399
|
-
const message = headerNames.map((name) => `${name}: ` + (name
|
445
|
+
const message = headerNames.map((name) => `${name}: ` + (name === "(request-target)" ? `${request.method.toLowerCase()} ${new URL(request.url).pathname}` : name === "(created)" ? sigValues.created ?? "" : name === "(expires)" ? sigValues.expires ?? "" : name === "host" ? request.headers.get("host") ?? new URL(request.url).host : request.headers.get(name))).join("\n");
|
400
446
|
const sig = decodeBase64(signature);
|
401
447
|
span?.setAttribute("http_signatures.signature", encodeHex(sig));
|
402
448
|
const verified = await crypto.subtle.verify("RSASSA-PKCS1-v1_5", key.publicKey, sig, new TextEncoder().encode(message));
|