@fedify/fedify 2.0.36-dev.2637 → 2.0.36-dev.2647
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/{builder-BC3eRIbe.mjs → builder-Cv8baeaM.mjs} +3 -3
- package/dist/compat/transformers.test.mjs +1 -1
- package/dist/{deno-Dv6PIwH_.mjs → deno-Bk4jrob6.mjs} +1 -1
- package/dist/{docloader-BgHM-JLc.mjs → docloader-w8xGNWvP.mjs} +2 -2
- package/dist/federation/builder.test.mjs +1 -1
- package/dist/federation/handler.test.mjs +6 -6
- package/dist/federation/idempotency.test.mjs +2 -2
- package/dist/federation/inbox.test.mjs +1 -1
- package/dist/federation/middleware.test.mjs +287 -6
- package/dist/federation/mod.cjs +1 -1
- package/dist/federation/mod.js +1 -1
- package/dist/federation/send.test.mjs +3 -3
- package/dist/federation/temporal.test.mjs +1 -1
- package/dist/federation/webfinger.test.mjs +1 -1
- package/dist/{http-D69BMfAn.cjs → http-B9ZWGTaN.cjs} +1 -1
- package/dist/{http-CrEB4I8A.js → http-C1v_vvt4.js} +1 -1
- package/dist/{http-BWoAqky4.mjs → http-CDK9iAjb.mjs} +2 -2
- package/dist/{inbox-0Dbv0QVc.mjs → inbox-DAm48Q_C.mjs} +1 -1
- package/dist/{key-ChKDZfvS.mjs → key-C8OKWl8g.mjs} +1 -1
- package/dist/{kv-cache-CDvE8__9.js → kv-cache-B1Y7_B63.js} +1 -1
- package/dist/{kv-cache-B0JZ30EF.cjs → kv-cache-BFFwfQPZ.cjs} +1 -1
- package/dist/{ld-DbSNiv8Q.mjs → ld-gUJKeHbH.mjs} +2 -2
- package/dist/{middleware-DCtCNota.cjs → middleware-3t8hmtzt.cjs} +1 -1
- package/dist/{middleware-CEufJR5k.js → middleware-D-DIq_jJ.js} +44 -28
- package/dist/{middleware-C849kmHB.mjs → middleware-DLxdIffl.mjs} +52 -36
- package/dist/{middleware-BA9cM-vz.mjs → middleware-LgcMsPlF.mjs} +1 -1
- package/dist/{middleware-C_fDk_dx.cjs → middleware-_yMwRAE9.cjs} +45 -29
- package/dist/mod.cjs +4 -4
- package/dist/mod.js +4 -4
- package/dist/nodeinfo/handler.test.mjs +1 -1
- package/dist/{owner-BJeJfxnT.mjs → owner-BenEndHH.mjs} +2 -2
- package/dist/{proof-CaMBdk_x.mjs → proof-Bo9pmjQJ.mjs} +2 -2
- package/dist/{proof-DwooE8kV.js → proof-BvtZYI3N.js} +1 -1
- package/dist/{proof-DNgQwz9E.cjs → proof-DF1RSNYg.cjs} +1 -1
- package/dist/{send-CYrAOC1K.mjs → send-PTFa5PEa.mjs} +2 -2
- package/dist/sig/http.test.mjs +2 -2
- package/dist/sig/key.test.mjs +2 -2
- package/dist/sig/ld.test.mjs +2 -2
- package/dist/sig/mod.cjs +2 -2
- package/dist/sig/mod.js +2 -2
- package/dist/sig/owner.test.mjs +1 -1
- package/dist/sig/proof.test.mjs +2 -2
- package/dist/{temporal-BJoGKOXy.mjs → temporal-CNbx4A18.mjs} +1 -1
- package/dist/utils/docloader.test.mjs +2 -2
- package/dist/utils/mod.cjs +1 -1
- package/dist/utils/mod.js +1 -1
- package/package.json +5 -5
|
@@ -2,8 +2,8 @@ import "@js-temporal/polyfill";
|
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
4
|
import { n as RouterError, t as Router } from "./router-CrMLXoOr.mjs";
|
|
5
|
-
import { n as version, t as name } from "./deno-
|
|
6
|
-
import { t as InboxListenerSet } from "./inbox-
|
|
5
|
+
import { n as version, t as name } from "./deno-Bk4jrob6.mjs";
|
|
6
|
+
import { t as InboxListenerSet } from "./inbox-DAm48Q_C.mjs";
|
|
7
7
|
import { getTypeId } from "@fedify/vocab";
|
|
8
8
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
9
9
|
import { getLogger } from "@logtape/logtape";
|
|
@@ -43,7 +43,7 @@ var FederationBuilderImpl = class {
|
|
|
43
43
|
this.collectionTypeIds = {};
|
|
44
44
|
}
|
|
45
45
|
async build(options) {
|
|
46
|
-
const { FederationImpl } = await import("./middleware-
|
|
46
|
+
const { FederationImpl } = await import("./middleware-LgcMsPlF.mjs");
|
|
47
47
|
const f = new FederationImpl(options);
|
|
48
48
|
const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
|
|
49
49
|
f.router = this.router.clone();
|
|
@@ -4,7 +4,7 @@ globalThis.addEventListener = () => {};
|
|
|
4
4
|
import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
|
|
5
5
|
import { n as assertInstanceOf, t as assert } from "../assert-BhQd8QHP.mjs";
|
|
6
6
|
import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
|
|
7
|
-
import { _ as autoIdAssigner, g as actorDehydrator, n as FederationImpl } from "../middleware-
|
|
7
|
+
import { _ as autoIdAssigner, g as actorDehydrator, n as FederationImpl } from "../middleware-DLxdIffl.mjs";
|
|
8
8
|
import { test } from "@fedify/fixture";
|
|
9
9
|
import { Follow, Person } from "@fedify/vocab";
|
|
10
10
|
//#region src/compat/transformers.test.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "@js-temporal/polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { o as validateCryptoKey } from "./key-
|
|
5
|
-
import { r as doubleKnockScoped } from "./http-
|
|
4
|
+
import { o as validateCryptoKey } from "./key-C8OKWl8g.mjs";
|
|
5
|
+
import { r as doubleKnockScoped } from "./http-CDK9iAjb.mjs";
|
|
6
6
|
import { curry } from "es-toolkit";
|
|
7
7
|
import { FetchError, UrlError, createActivityPubRequest, getRemoteDocument, logRequest } from "@fedify/vocab-runtime";
|
|
8
8
|
import { openDirectFetch, openPublicFetch } from "@fedify/vocab-runtime/internal";
|
|
@@ -5,7 +5,7 @@ import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
|
|
|
5
5
|
import { i as assertExists, n as assertStrictEquals } from "../std__assert-DflMZha5.mjs";
|
|
6
6
|
import { t as assertThrows } from "../assert_throws-D4DNWrux.mjs";
|
|
7
7
|
import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
|
|
8
|
-
import { n as createFederationBuilder } from "../builder-
|
|
8
|
+
import { n as createFederationBuilder } from "../builder-Cv8baeaM.mjs";
|
|
9
9
|
import { test } from "@fedify/fixture";
|
|
10
10
|
import { Activity, Note, Person } from "@fedify/vocab";
|
|
11
11
|
//#region src/federation/builder.test.ts
|
|
@@ -6,14 +6,14 @@ import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
|
|
|
6
6
|
import "../std__assert-DflMZha5.mjs";
|
|
7
7
|
import { t as assert } from "../assert-BhQd8QHP.mjs";
|
|
8
8
|
import { t as assertRejects } from "../assert_rejects-WyYSTDDX.mjs";
|
|
9
|
-
import { i as generateCryptoKeyPair } from "../key-
|
|
10
|
-
import { c as signRequest } from "../http-
|
|
9
|
+
import { i as generateCryptoKeyPair } from "../key-C8OKWl8g.mjs";
|
|
10
|
+
import { c as signRequest } from "../http-CDK9iAjb.mjs";
|
|
11
11
|
import { a as rsaPrivateKey3, c as rsaPublicKey3, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
|
|
12
|
-
import { a as compactJsonLd, f as signJsonLd } from "../ld-
|
|
13
|
-
import { n as signObject } from "../proof-
|
|
12
|
+
import { a as compactJsonLd, f as signJsonLd } from "../ld-gUJKeHbH.mjs";
|
|
13
|
+
import { n as signObject } from "../proof-Bo9pmjQJ.mjs";
|
|
14
14
|
import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
|
|
15
|
-
import { a as createFederation, c as handleCollection, d as handleObject, f as respondWithObject, l as handleCustomCollection, p as respondWithObjectIfAcceptable, s as handleActor, u as handleInbox } from "../middleware-
|
|
16
|
-
import { t as InboxListenerSet } from "../inbox-
|
|
15
|
+
import { a as createFederation, c as handleCollection, d as handleObject, f as respondWithObject, l as handleCustomCollection, p as respondWithObjectIfAcceptable, s as handleActor, u as handleInbox } from "../middleware-DLxdIffl.mjs";
|
|
16
|
+
import { t as InboxListenerSet } from "../inbox-DAm48Q_C.mjs";
|
|
17
17
|
import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
18
18
|
import { Create, CryptographicKey, Multikey, Note, Person } from "@fedify/vocab";
|
|
19
19
|
//#region src/federation/handler.test.ts
|
|
@@ -4,9 +4,9 @@ globalThis.addEventListener = () => {};
|
|
|
4
4
|
import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
|
|
5
5
|
import "../std__assert-DflMZha5.mjs";
|
|
6
6
|
import { n as ed25519PrivateKey, r as ed25519PublicKey, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
|
|
7
|
-
import { n as signObject } from "../proof-
|
|
7
|
+
import { n as signObject } from "../proof-Bo9pmjQJ.mjs";
|
|
8
8
|
import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
|
|
9
|
-
import { a as createFederation } from "../middleware-
|
|
9
|
+
import { a as createFederation } from "../middleware-DLxdIffl.mjs";
|
|
10
10
|
import { mockDocumentLoader, test } from "@fedify/fixture";
|
|
11
11
|
import { Create, Follow, Person } from "@fedify/vocab";
|
|
12
12
|
//#region src/federation/idempotency.test.ts
|
|
@@ -3,7 +3,7 @@ import "urlpattern-polyfill";
|
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
4
|
import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
|
|
5
5
|
import { r as assertFalse, t as assertThrows } from "../assert_throws-D4DNWrux.mjs";
|
|
6
|
-
import { n as actorsHaveSameOrigin, t as InboxListenerSet } from "../inbox-
|
|
6
|
+
import { n as actorsHaveSameOrigin, t as InboxListenerSet } from "../inbox-DAm48Q_C.mjs";
|
|
7
7
|
import { test } from "@fedify/fixture";
|
|
8
8
|
import { Activity, Create, Invite, Offer, Update } from "@fedify/vocab";
|
|
9
9
|
//#region src/federation/inbox.test.ts
|
|
@@ -9,14 +9,15 @@ import { r as assertFalse, t as assertThrows } from "../assert_throws-D4DNWrux.m
|
|
|
9
9
|
import { n as assertInstanceOf, t as assert } from "../assert-BhQd8QHP.mjs";
|
|
10
10
|
import { t as assertNotEquals } from "../assert_not_equals-BkxW5QJI.mjs";
|
|
11
11
|
import { t as assertRejects } from "../assert_rejects-WyYSTDDX.mjs";
|
|
12
|
-
import { c as signRequest, u as verifyRequest } from "../http-
|
|
12
|
+
import { c as signRequest, u as verifyRequest } from "../http-CDK9iAjb.mjs";
|
|
13
13
|
import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
|
|
14
|
-
import { n as getAuthenticatedDocumentLoader } from "../docloader-
|
|
15
|
-
import { a as compactJsonLd, f as signJsonLd, i as attachSignature, m as verifyJsonLd, s as detachSignature } from "../ld-
|
|
16
|
-
import { t as doesActorOwnKey } from "../owner-
|
|
17
|
-
import { n as signObject, r as verifyObject } from "../proof-
|
|
14
|
+
import { n as getAuthenticatedDocumentLoader } from "../docloader-w8xGNWvP.mjs";
|
|
15
|
+
import { a as compactJsonLd, f as signJsonLd, i as attachSignature, m as verifyJsonLd, s as detachSignature } from "../ld-gUJKeHbH.mjs";
|
|
16
|
+
import { t as doesActorOwnKey } from "../owner-BenEndHH.mjs";
|
|
17
|
+
import { n as signObject, r as verifyObject } from "../proof-Bo9pmjQJ.mjs";
|
|
18
18
|
import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
|
|
19
|
-
import { a as createFederation, i as KvSpecDeterminer, n as FederationImpl, r as InboxContextImpl, t as ContextImpl } from "../middleware-
|
|
19
|
+
import { a as createFederation, i as KvSpecDeterminer, n as FederationImpl, r as InboxContextImpl, t as ContextImpl } from "../middleware-DLxdIffl.mjs";
|
|
20
|
+
import { t as SendActivityError } from "../send-PTFa5PEa.mjs";
|
|
20
21
|
import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
21
22
|
import * as vocab from "@fedify/vocab";
|
|
22
23
|
import { Create, Offer, Person, getTypeId, lookupObject } from "@fedify/vocab";
|
|
@@ -5074,6 +5075,286 @@ test("ContextImpl.sendActivity() honors the private-address policy", async (t) =
|
|
|
5074
5075
|
}
|
|
5075
5076
|
});
|
|
5076
5077
|
});
|
|
5078
|
+
function deferredSignal() {
|
|
5079
|
+
let resolve;
|
|
5080
|
+
return {
|
|
5081
|
+
promise: new Promise((r) => resolve = r),
|
|
5082
|
+
resolve
|
|
5083
|
+
};
|
|
5084
|
+
}
|
|
5085
|
+
test("ContextImpl.sendActivity() waits for sibling deliveries on failure", async () => {
|
|
5086
|
+
const failingInbox = "http://127.0.0.1:3001/inbox/fail";
|
|
5087
|
+
const slowInbox = "http://127.0.0.1:3002/inbox/slow";
|
|
5088
|
+
const failingEntered = deferredSignal();
|
|
5089
|
+
const slowEntered = deferredSignal();
|
|
5090
|
+
const slowCompleted = deferredSignal();
|
|
5091
|
+
let releaseSlow;
|
|
5092
|
+
const slowGate = new Promise((resolve) => releaseSlow = resolve);
|
|
5093
|
+
let slowStarted = false;
|
|
5094
|
+
let slowSettled = false;
|
|
5095
|
+
esm_default.spyGlobal();
|
|
5096
|
+
esm_default.post(failingInbox, () => {
|
|
5097
|
+
failingEntered.resolve();
|
|
5098
|
+
return new Response(null, { status: 500 });
|
|
5099
|
+
});
|
|
5100
|
+
esm_default.post(slowInbox, async () => {
|
|
5101
|
+
slowStarted = true;
|
|
5102
|
+
slowEntered.resolve();
|
|
5103
|
+
await slowGate;
|
|
5104
|
+
slowSettled = true;
|
|
5105
|
+
slowCompleted.resolve();
|
|
5106
|
+
return new Response(null, { status: 202 });
|
|
5107
|
+
});
|
|
5108
|
+
let observed;
|
|
5109
|
+
let released = false;
|
|
5110
|
+
try {
|
|
5111
|
+
const ctx = createFederation({
|
|
5112
|
+
kv: new MemoryKvStore(),
|
|
5113
|
+
allowPrivateAddress: true
|
|
5114
|
+
}).createContext(new URL("https://example.com/"));
|
|
5115
|
+
const activity = new Create({
|
|
5116
|
+
id: new URL("https://example.com/activity/fanout"),
|
|
5117
|
+
actor: new URL("https://example.com/person")
|
|
5118
|
+
});
|
|
5119
|
+
let outerSettled = false;
|
|
5120
|
+
let outerError;
|
|
5121
|
+
observed = ctx.sendActivity([{
|
|
5122
|
+
privateKey: ed25519PrivateKey,
|
|
5123
|
+
keyId: ed25519Multikey.id
|
|
5124
|
+
}], [new Person({
|
|
5125
|
+
id: new URL("https://example.com/recipients/failing"),
|
|
5126
|
+
inbox: new URL(failingInbox)
|
|
5127
|
+
}), new Person({
|
|
5128
|
+
id: new URL("https://example.com/recipients/slow"),
|
|
5129
|
+
inbox: new URL(slowInbox)
|
|
5130
|
+
})], activity, { immediate: true }).then(() => {
|
|
5131
|
+
outerSettled = true;
|
|
5132
|
+
}, (error) => {
|
|
5133
|
+
outerSettled = true;
|
|
5134
|
+
outerError = error;
|
|
5135
|
+
});
|
|
5136
|
+
await Promise.all([failingEntered.promise, slowEntered.promise]);
|
|
5137
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
5138
|
+
assertFalse(outerSettled, "sendActivity() must wait for sibling deliveries before rejecting");
|
|
5139
|
+
releaseSlow();
|
|
5140
|
+
released = true;
|
|
5141
|
+
await observed;
|
|
5142
|
+
assert(slowSettled, "the delayed delivery should have settled");
|
|
5143
|
+
assertInstanceOf(outerError, SendActivityError);
|
|
5144
|
+
} finally {
|
|
5145
|
+
if (!released) releaseSlow();
|
|
5146
|
+
if (slowStarted) await slowCompleted.promise;
|
|
5147
|
+
await observed;
|
|
5148
|
+
esm_default.hardReset();
|
|
5149
|
+
}
|
|
5150
|
+
});
|
|
5151
|
+
test("InboxContextImpl.forwardActivity() waits for sibling deliveries on failure", async () => {
|
|
5152
|
+
const failingInbox = "http://127.0.0.1:3003/inbox/fail";
|
|
5153
|
+
const slowInbox = "http://127.0.0.1:3004/inbox/slow";
|
|
5154
|
+
const failingEntered = deferredSignal();
|
|
5155
|
+
const slowEntered = deferredSignal();
|
|
5156
|
+
const slowCompleted = deferredSignal();
|
|
5157
|
+
let releaseSlow;
|
|
5158
|
+
const slowGate = new Promise((resolve) => releaseSlow = resolve);
|
|
5159
|
+
let slowStarted = false;
|
|
5160
|
+
let slowSettled = false;
|
|
5161
|
+
esm_default.spyGlobal();
|
|
5162
|
+
esm_default.post(failingInbox, () => {
|
|
5163
|
+
failingEntered.resolve();
|
|
5164
|
+
return new Response(null, { status: 500 });
|
|
5165
|
+
});
|
|
5166
|
+
esm_default.post(slowInbox, async () => {
|
|
5167
|
+
slowStarted = true;
|
|
5168
|
+
slowEntered.resolve();
|
|
5169
|
+
await slowGate;
|
|
5170
|
+
slowSettled = true;
|
|
5171
|
+
slowCompleted.resolve();
|
|
5172
|
+
return new Response(null, { status: 202 });
|
|
5173
|
+
});
|
|
5174
|
+
let observed;
|
|
5175
|
+
let released = false;
|
|
5176
|
+
try {
|
|
5177
|
+
const federation = new FederationImpl({
|
|
5178
|
+
kv: new MemoryKvStore(),
|
|
5179
|
+
allowPrivateAddress: true
|
|
5180
|
+
});
|
|
5181
|
+
const activity = await signObject(new vocab.Create({
|
|
5182
|
+
id: new URL("https://example.com/activity/forward"),
|
|
5183
|
+
actor: new URL("https://example.com/person2")
|
|
5184
|
+
}), ed25519PrivateKey, ed25519Multikey.id, {
|
|
5185
|
+
contextLoader: mockDocumentLoader,
|
|
5186
|
+
documentLoader: mockDocumentLoader
|
|
5187
|
+
});
|
|
5188
|
+
const ctx = new InboxContextImpl(null, await activity.toJsonLd({ contextLoader: mockDocumentLoader }), activity.id?.href, getTypeId(activity).href, {
|
|
5189
|
+
data: void 0,
|
|
5190
|
+
federation,
|
|
5191
|
+
url: new URL("https://example.com/"),
|
|
5192
|
+
documentLoader: mockDocumentLoader,
|
|
5193
|
+
contextLoader: mockDocumentLoader
|
|
5194
|
+
});
|
|
5195
|
+
let outerSettled = false;
|
|
5196
|
+
let outerError;
|
|
5197
|
+
observed = ctx.forwardActivity([{
|
|
5198
|
+
privateKey: ed25519PrivateKey,
|
|
5199
|
+
keyId: ed25519Multikey.id
|
|
5200
|
+
}], [{
|
|
5201
|
+
id: new URL("https://example.com/recipients/failing"),
|
|
5202
|
+
inboxId: new URL(failingInbox)
|
|
5203
|
+
}, {
|
|
5204
|
+
id: new URL("https://example.com/recipients/slow"),
|
|
5205
|
+
inboxId: new URL(slowInbox)
|
|
5206
|
+
}], {
|
|
5207
|
+
immediate: true,
|
|
5208
|
+
skipIfUnsigned: true
|
|
5209
|
+
}).then(() => {
|
|
5210
|
+
outerSettled = true;
|
|
5211
|
+
}, (error) => {
|
|
5212
|
+
outerSettled = true;
|
|
5213
|
+
outerError = error;
|
|
5214
|
+
});
|
|
5215
|
+
await Promise.all([failingEntered.promise, slowEntered.promise]);
|
|
5216
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
5217
|
+
assertFalse(outerSettled, "forwardActivity() must wait for sibling deliveries before rejecting");
|
|
5218
|
+
releaseSlow();
|
|
5219
|
+
released = true;
|
|
5220
|
+
await observed;
|
|
5221
|
+
assert(slowSettled, "the delayed delivery should have settled");
|
|
5222
|
+
assertInstanceOf(outerError, SendActivityError);
|
|
5223
|
+
} finally {
|
|
5224
|
+
if (!released) releaseSlow();
|
|
5225
|
+
if (slowStarted) await slowCompleted.promise;
|
|
5226
|
+
await observed;
|
|
5227
|
+
esm_default.hardReset();
|
|
5228
|
+
}
|
|
5229
|
+
});
|
|
5230
|
+
test("FederationImpl.sendActivity() drains deliveries when fan-out setup fails", async () => {
|
|
5231
|
+
const slowInbox = "http://127.0.0.1:3005/inbox/slow";
|
|
5232
|
+
const slowEntered = deferredSignal();
|
|
5233
|
+
const slowCompleted = deferredSignal();
|
|
5234
|
+
let releaseSlow;
|
|
5235
|
+
const slowGate = new Promise((resolve) => releaseSlow = resolve);
|
|
5236
|
+
let slowStarted = false;
|
|
5237
|
+
let slowSettled = false;
|
|
5238
|
+
esm_default.spyGlobal();
|
|
5239
|
+
esm_default.post(slowInbox, async () => {
|
|
5240
|
+
slowStarted = true;
|
|
5241
|
+
slowEntered.resolve();
|
|
5242
|
+
await slowGate;
|
|
5243
|
+
slowSettled = true;
|
|
5244
|
+
slowCompleted.resolve();
|
|
5245
|
+
return new Response(null, { status: 202 });
|
|
5246
|
+
});
|
|
5247
|
+
let observed;
|
|
5248
|
+
let released = false;
|
|
5249
|
+
try {
|
|
5250
|
+
const federation = new FederationImpl({
|
|
5251
|
+
kv: new MemoryKvStore(),
|
|
5252
|
+
allowPrivateAddress: true
|
|
5253
|
+
});
|
|
5254
|
+
const context = federation.createContext(new URL("https://example.com/"));
|
|
5255
|
+
const activity = new Create({
|
|
5256
|
+
id: new URL("https://example.com/activity/setup-failure"),
|
|
5257
|
+
actor: new URL("https://example.com/person")
|
|
5258
|
+
});
|
|
5259
|
+
let outerSettled = false;
|
|
5260
|
+
let outerError;
|
|
5261
|
+
observed = federation.sendActivity([{
|
|
5262
|
+
privateKey: ed25519PrivateKey,
|
|
5263
|
+
keyId: ed25519Multikey.id
|
|
5264
|
+
}], {
|
|
5265
|
+
[slowInbox]: {
|
|
5266
|
+
actorIds: ["https://example.com/recipients/slow"],
|
|
5267
|
+
sharedInbox: false
|
|
5268
|
+
},
|
|
5269
|
+
"not a url": {
|
|
5270
|
+
actorIds: ["https://example.com/recipients/invalid"],
|
|
5271
|
+
sharedInbox: false
|
|
5272
|
+
}
|
|
5273
|
+
}, activity, {
|
|
5274
|
+
context,
|
|
5275
|
+
immediate: true
|
|
5276
|
+
}).then(() => {
|
|
5277
|
+
outerSettled = true;
|
|
5278
|
+
}, (error) => {
|
|
5279
|
+
outerSettled = true;
|
|
5280
|
+
outerError = error;
|
|
5281
|
+
});
|
|
5282
|
+
await slowEntered.promise;
|
|
5283
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
5284
|
+
assertFalse(outerSettled, "sendActivity() must drain started deliveries when fan-out setup fails");
|
|
5285
|
+
releaseSlow();
|
|
5286
|
+
released = true;
|
|
5287
|
+
await observed;
|
|
5288
|
+
assert(slowSettled, "the started delivery should have settled");
|
|
5289
|
+
assertInstanceOf(outerError, TypeError);
|
|
5290
|
+
} finally {
|
|
5291
|
+
if (!released) releaseSlow();
|
|
5292
|
+
if (slowStarted) await slowCompleted.promise;
|
|
5293
|
+
await observed;
|
|
5294
|
+
esm_default.hardReset();
|
|
5295
|
+
}
|
|
5296
|
+
});
|
|
5297
|
+
test("FederationImpl.sendActivity() handles rejections while building headers", async () => {
|
|
5298
|
+
const federation = new FederationImpl({ kv: new MemoryKvStore() });
|
|
5299
|
+
const context = federation.createContext(new URL("https://example.com/"));
|
|
5300
|
+
const activity = await signObject(new Create({
|
|
5301
|
+
id: new URL("https://example.com/activity/header-failure"),
|
|
5302
|
+
actor: new URL("https://example.com/person")
|
|
5303
|
+
}), ed25519PrivateKey, ed25519Multikey.id, {
|
|
5304
|
+
contextLoader: mockDocumentLoader,
|
|
5305
|
+
documentLoader: mockDocumentLoader
|
|
5306
|
+
});
|
|
5307
|
+
const subtle = crypto.subtle;
|
|
5308
|
+
const originalDigest = subtle.digest;
|
|
5309
|
+
let digestCalls = 0;
|
|
5310
|
+
let releaseSecondDigest;
|
|
5311
|
+
const secondDigestGate = new Promise((resolve) => {
|
|
5312
|
+
releaseSecondDigest = resolve;
|
|
5313
|
+
});
|
|
5314
|
+
let secondDigestStarted;
|
|
5315
|
+
const secondDigestEntered = new Promise((resolve) => {
|
|
5316
|
+
secondDigestStarted = resolve;
|
|
5317
|
+
});
|
|
5318
|
+
subtle.digest = async (algorithm, data) => {
|
|
5319
|
+
digestCalls++;
|
|
5320
|
+
if (digestCalls === 2) {
|
|
5321
|
+
secondDigestStarted();
|
|
5322
|
+
await secondDigestGate;
|
|
5323
|
+
}
|
|
5324
|
+
return await originalDigest.call(subtle, algorithm, data);
|
|
5325
|
+
};
|
|
5326
|
+
const capture = captureUnhandledRejections();
|
|
5327
|
+
let released = false;
|
|
5328
|
+
try {
|
|
5329
|
+
const observed = federation.sendActivity([{
|
|
5330
|
+
privateKey: ed25519PrivateKey,
|
|
5331
|
+
keyId: ed25519Multikey.id
|
|
5332
|
+
}], {
|
|
5333
|
+
"ftp://example.com/fail": {
|
|
5334
|
+
actorIds: ["https://example.com/recipients/failing"],
|
|
5335
|
+
sharedInbox: false
|
|
5336
|
+
},
|
|
5337
|
+
"http://127.0.0.1:3006/inbox": {
|
|
5338
|
+
actorIds: ["https://example.com/recipients/slow"],
|
|
5339
|
+
sharedInbox: false
|
|
5340
|
+
}
|
|
5341
|
+
}, activity, {
|
|
5342
|
+
context,
|
|
5343
|
+
immediate: true,
|
|
5344
|
+
collectionSync: "https://example.com/followers"
|
|
5345
|
+
}).catch((error) => error);
|
|
5346
|
+
await secondDigestEntered;
|
|
5347
|
+
await capture.settle();
|
|
5348
|
+
assertEquals(capture.reasons, [], "an early rejection must not surface as an unhandled rejection");
|
|
5349
|
+
releaseSecondDigest();
|
|
5350
|
+
released = true;
|
|
5351
|
+
await observed;
|
|
5352
|
+
} finally {
|
|
5353
|
+
if (!released) releaseSecondDigest();
|
|
5354
|
+
subtle.digest = originalDigest;
|
|
5355
|
+
capture.stop();
|
|
5356
|
+
}
|
|
5357
|
+
});
|
|
5077
5358
|
test("Federation.fetch() bounds inbox bodies before dispatch", async () => {
|
|
5078
5359
|
let dispatched = false;
|
|
5079
5360
|
const json = JSON.stringify({
|
package/dist/federation/mod.cjs
CHANGED
|
@@ -2,7 +2,7 @@ const { Temporal } = require("@js-temporal/polyfill");
|
|
|
2
2
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
4
|
require("../chunk-DDcVe30Y.cjs");
|
|
5
|
-
const require_middleware = require("../middleware-
|
|
5
|
+
const require_middleware = require("../middleware-_yMwRAE9.cjs");
|
|
6
6
|
let es_toolkit = require("es-toolkit");
|
|
7
7
|
//#region src/federation/kv.ts
|
|
8
8
|
/**
|
package/dist/federation/mod.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
|
-
import { a as createExponentialBackoffPolicy, c as buildCollectionSynchronizationHeader, d as Router, f as RouterError, i as SendActivityError, l as digest, o as respondWithObject, r as handleWebFinger, s as respondWithObjectIfAcceptable, t as createFederation, u as createFederationBuilder } from "../middleware-
|
|
3
|
+
import { a as createExponentialBackoffPolicy, c as buildCollectionSynchronizationHeader, d as Router, f as RouterError, i as SendActivityError, l as digest, o as respondWithObject, r as handleWebFinger, s as respondWithObjectIfAcceptable, t as createFederation, u as createFederationBuilder } from "../middleware-D-DIq_jJ.js";
|
|
4
4
|
import { isEqual } from "es-toolkit";
|
|
5
5
|
//#region src/federation/kv.ts
|
|
6
6
|
/**
|
|
@@ -8,10 +8,10 @@ import { r as assertFalse } from "../assert_throws-D4DNWrux.mjs";
|
|
|
8
8
|
import { n as assertInstanceOf, t as assert } from "../assert-BhQd8QHP.mjs";
|
|
9
9
|
import { t as assertNotEquals } from "../assert_not_equals-BkxW5QJI.mjs";
|
|
10
10
|
import { t as assertRejects } from "../assert_rejects-WyYSTDDX.mjs";
|
|
11
|
-
import { u as verifyRequest } from "../http-
|
|
11
|
+
import { u as verifyRequest } from "../http-CDK9iAjb.mjs";
|
|
12
12
|
import { i as rsaPrivateKey2, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
|
|
13
|
-
import { t as doesActorOwnKey } from "../owner-
|
|
14
|
-
import { i as sendActivity, n as extractInboxes, r as fetchWithValidatedRedirects, t as SendActivityError } from "../send-
|
|
13
|
+
import { t as doesActorOwnKey } from "../owner-BenEndHH.mjs";
|
|
14
|
+
import { i as sendActivity, n as extractInboxes, r as fetchWithValidatedRedirects, t as SendActivityError } from "../send-PTFa5PEa.mjs";
|
|
15
15
|
import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
16
16
|
import { Activity, Application, Endpoints, Group, Person, Service } from "@fedify/vocab";
|
|
17
17
|
import { FetchError, UrlError } from "@fedify/vocab-runtime";
|
|
@@ -4,7 +4,7 @@ globalThis.addEventListener = () => {};
|
|
|
4
4
|
import "../std__assert-DflMZha5.mjs";
|
|
5
5
|
import { r as assertFalse } from "../assert_throws-D4DNWrux.mjs";
|
|
6
6
|
import { t as assert } from "../assert-BhQd8QHP.mjs";
|
|
7
|
-
import { t as hasMalformedKnownTemporalLiteral } from "../temporal-
|
|
7
|
+
import { t as hasMalformedKnownTemporalLiteral } from "../temporal-CNbx4A18.mjs";
|
|
8
8
|
import { test } from "@fedify/fixture";
|
|
9
9
|
//#region src/federation/temporal.test.ts
|
|
10
10
|
test("hasMalformedKnownTemporalLiteral() detects expanded proof timestamps", async () => {
|
|
@@ -5,7 +5,7 @@ import { n as createRequestContext } from "../context-Juj6bdHC.mjs";
|
|
|
5
5
|
import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
|
|
6
6
|
import "../std__assert-DflMZha5.mjs";
|
|
7
7
|
import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
|
|
8
|
-
import { a as createFederation, o as handleWebFinger } from "../middleware-
|
|
8
|
+
import { a as createFederation, o as handleWebFinger } from "../middleware-DLxdIffl.mjs";
|
|
9
9
|
import { test } from "@fedify/fixture";
|
|
10
10
|
import { Image, Link, Person } from "@fedify/vocab";
|
|
11
11
|
//#region src/federation/webfinger.test.ts
|
|
@@ -11,7 +11,7 @@ let byte_encodings_base64 = require("byte-encodings/base64");
|
|
|
11
11
|
let structured_field_values = require("structured-field-values");
|
|
12
12
|
//#region deno.json
|
|
13
13
|
var name = "@fedify/fedify";
|
|
14
|
-
var version = "2.0.36-dev.
|
|
14
|
+
var version = "2.0.36-dev.2647+2864b09d";
|
|
15
15
|
//#endregion
|
|
16
16
|
//#region src/sig/key.ts
|
|
17
17
|
/** Classifies decoding failures without hiding unexpected loader errors. */
|
|
@@ -10,7 +10,7 @@ import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
|
|
|
10
10
|
import { Item, decodeDict, encodeItem } from "structured-field-values";
|
|
11
11
|
//#region deno.json
|
|
12
12
|
var name = "@fedify/fedify";
|
|
13
|
-
var version = "2.0.36-dev.
|
|
13
|
+
var version = "2.0.36-dev.2647+2864b09d";
|
|
14
14
|
//#endregion
|
|
15
15
|
//#region src/sig/key.ts
|
|
16
16
|
/** Classifies decoding failures without hiding unexpected loader errors. */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as version, t as name } from "./deno-
|
|
5
|
-
import { o as validateCryptoKey, r as fetchKey } from "./key-
|
|
4
|
+
import { n as version, t as name } from "./deno-Bk4jrob6.mjs";
|
|
5
|
+
import { o as validateCryptoKey, r as fetchKey } from "./key-C8OKWl8g.mjs";
|
|
6
6
|
import { CryptographicKey } from "@fedify/vocab";
|
|
7
7
|
import { SpanStatusCode, trace } from "@opentelemetry/api";
|
|
8
8
|
import { FetchError } from "@fedify/vocab-runtime";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as version, t as name } from "./deno-
|
|
4
|
+
import { n as version, t as name } from "./deno-Bk4jrob6.mjs";
|
|
5
5
|
import { Activity, getTypeId } from "@fedify/vocab";
|
|
6
6
|
import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
|
|
7
7
|
import { getLogger } from "@logtape/logtape";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "@js-temporal/polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as version, t as name } from "./deno-
|
|
4
|
+
import { n as version, t as name } from "./deno-Bk4jrob6.mjs";
|
|
5
5
|
import { CryptographicKey, Object as Object$1, isActor } from "@fedify/vocab";
|
|
6
6
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
7
7
|
import { FetchError, UrlError, getDocumentLoader } from "@fedify/vocab-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
|
-
import { l as validateCryptoKey, t as doubleKnockScoped } from "./http-
|
|
3
|
+
import { l as validateCryptoKey, t as doubleKnockScoped } from "./http-C1v_vvt4.js";
|
|
4
4
|
import { getLogger } from "@logtape/logtape";
|
|
5
5
|
import { curry } from "es-toolkit";
|
|
6
6
|
import { FetchError, UrlError, createActivityPubRequest, getRemoteDocument, logRequest, preloadedContexts } from "@fedify/vocab-runtime";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { Temporal } = require("@js-temporal/polyfill");
|
|
2
2
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
3
3
|
require("./chunk-DDcVe30Y.cjs");
|
|
4
|
-
const require_http = require("./http-
|
|
4
|
+
const require_http = require("./http-B9ZWGTaN.cjs");
|
|
5
5
|
let _logtape_logtape = require("@logtape/logtape");
|
|
6
6
|
let es_toolkit = require("es-toolkit");
|
|
7
7
|
let _fedify_vocab_runtime = require("@fedify/vocab-runtime");
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "@js-temporal/polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as version, t as name } from "./deno-
|
|
5
|
-
import { o as validateCryptoKey, r as fetchKey } from "./key-
|
|
4
|
+
import { n as version, t as name } from "./deno-Bk4jrob6.mjs";
|
|
5
|
+
import { o as validateCryptoKey, r as fetchKey } from "./key-C8OKWl8g.mjs";
|
|
6
6
|
import { Activity, CryptographicKey, Object as Object$1, getTypeId } from "@fedify/vocab";
|
|
7
7
|
import { SpanStatusCode, trace } from "@opentelemetry/api";
|
|
8
8
|
import { getDocumentLoader, preloadedContexts } from "@fedify/vocab-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
const { Temporal } = require("@js-temporal/polyfill");
|
|
2
2
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
3
|
-
const require_middleware = require("./middleware-
|
|
3
|
+
const require_middleware = require("./middleware-_yMwRAE9.cjs");
|
|
4
4
|
exports.FederationImpl = require_middleware.FederationImpl;
|
|
@@ -2,10 +2,10 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
3
|
import { t as __exportAll } from "./chunk-CRNNMoPX.js";
|
|
4
4
|
import { r as getDefaultActivityTransformers } from "./transformers-BGMIq1cs.js";
|
|
5
|
-
import { c as importJwk, d as name, f as version, i as exportJwk, l as validateCryptoKey, r as verifyRequest, t as doubleKnockScoped } from "./http-
|
|
5
|
+
import { c as importJwk, d as name, f as version, i as exportJwk, l as validateCryptoKey, r as verifyRequest, t as doubleKnockScoped } from "./http-C1v_vvt4.js";
|
|
6
6
|
import { a as MAX_BODY_SIZE, i as BodyTooLargeError, n as getNodeInfo, o as readBoundedText, t as nodeInfoToJson } from "./types-B1_pRFE_.js";
|
|
7
|
-
import { _ as signJsonLd, a as doesActorOwnKey, c as assertSafeJsonLd, f as detachSignature, g as isInvalidUrlTypeError, h as isClearlyMalformedContextReference, m as hasSignature, n as signObject, o as getKeyOwner, p as getNormalizationContextLoader, r as verifyObject, s as InvalidContextReferenceError, u as compactJsonLd, v as verifyCompactJsonLd, x as wrapContextLoaderForJsonLd } from "./proof-
|
|
8
|
-
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-
|
|
7
|
+
import { _ as signJsonLd, a as doesActorOwnKey, c as assertSafeJsonLd, f as detachSignature, g as isInvalidUrlTypeError, h as isClearlyMalformedContextReference, m as hasSignature, n as signObject, o as getKeyOwner, p as getNormalizationContextLoader, r as verifyObject, s as InvalidContextReferenceError, u as compactJsonLd, v as verifyCompactJsonLd, x as wrapContextLoaderForJsonLd } from "./proof-BvtZYI3N.js";
|
|
8
|
+
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-B1Y7_B63.js";
|
|
9
9
|
import { getLogger, withContext } from "@logtape/logtape";
|
|
10
10
|
import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId, lookupObject, traverseCollection } from "@fedify/vocab";
|
|
11
11
|
import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
|
|
@@ -3485,19 +3485,27 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
3485
3485
|
activity: jsonLd
|
|
3486
3486
|
});
|
|
3487
3487
|
const promises = [];
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
|
|
3500
|
-
|
|
3488
|
+
try {
|
|
3489
|
+
for (const inbox in inboxes) {
|
|
3490
|
+
const promise = sendActivity({
|
|
3491
|
+
allowPrivateAddress: this.allowPrivateAddress,
|
|
3492
|
+
keys,
|
|
3493
|
+
activity: jsonLd,
|
|
3494
|
+
activityId: activity.id?.href,
|
|
3495
|
+
activityType: getTypeId(activity).href,
|
|
3496
|
+
inbox: new URL(inbox),
|
|
3497
|
+
sharedInbox: inboxes[inbox].sharedInbox,
|
|
3498
|
+
headers: collectionSync == null ? void 0 : new Headers({ "Collection-Synchronization": await buildCollectionSynchronizationHeader(collectionSync, inboxes[inbox].actorIds) }),
|
|
3499
|
+
specDeterminer: new KvSpecDeterminer(this.kv, this.kvPrefixes.httpMessageSignaturesSpec, this.firstKnock),
|
|
3500
|
+
tracerProvider: this.tracerProvider
|
|
3501
|
+
});
|
|
3502
|
+
promise.catch(() => {});
|
|
3503
|
+
promises.push(promise);
|
|
3504
|
+
}
|
|
3505
|
+
await Promise.all(promises);
|
|
3506
|
+
} finally {
|
|
3507
|
+
await Promise.allSettled(promises);
|
|
3508
|
+
}
|
|
3501
3509
|
return;
|
|
3502
3510
|
}
|
|
3503
3511
|
logger.debug("Enqueuing activity {activityId} to send later.", {
|
|
@@ -4701,18 +4709,26 @@ var InboxContextImpl = class InboxContextImpl extends ContextImpl {
|
|
|
4701
4709
|
if (options?.immediate) logger.debug("Forwarding activity immediately without queue since immediate option is set.");
|
|
4702
4710
|
else logger.debug("Forwarding activity immediately without queue since queue is not set.");
|
|
4703
4711
|
const promises = [];
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4710
|
-
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
|
|
4714
|
-
|
|
4715
|
-
|
|
4712
|
+
try {
|
|
4713
|
+
for (const inbox in inboxes) {
|
|
4714
|
+
const promise = sendActivity({
|
|
4715
|
+
allowPrivateAddress: this.federation.allowPrivateAddress,
|
|
4716
|
+
keys,
|
|
4717
|
+
activity: this.activity,
|
|
4718
|
+
activityId: this.activityId,
|
|
4719
|
+
activityType: this.activityType,
|
|
4720
|
+
inbox: new URL(inbox),
|
|
4721
|
+
sharedInbox: inboxes[inbox].sharedInbox,
|
|
4722
|
+
tracerProvider: this.tracerProvider,
|
|
4723
|
+
specDeterminer: new KvSpecDeterminer(this.federation.kv, this.federation.kvPrefixes.httpMessageSignaturesSpec, this.federation.firstKnock)
|
|
4724
|
+
});
|
|
4725
|
+
promise.catch(() => {});
|
|
4726
|
+
promises.push(promise);
|
|
4727
|
+
}
|
|
4728
|
+
await Promise.all(promises);
|
|
4729
|
+
} finally {
|
|
4730
|
+
await Promise.allSettled(promises);
|
|
4731
|
+
}
|
|
4716
4732
|
return;
|
|
4717
4733
|
}
|
|
4718
4734
|
logger.debug("Enqueuing activity {activityId} to forward later.", {
|
|
@@ -2,24 +2,24 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
4
|
import { n as RouterError } from "./router-CrMLXoOr.mjs";
|
|
5
|
-
import { n as version, t as name } from "./deno-
|
|
6
|
-
import { a as importJwk, o as validateCryptoKey, t as exportJwk } from "./key-
|
|
7
|
-
import { u as verifyRequest } from "./http-
|
|
8
|
-
import { n as getAuthenticatedDocumentLoader } from "./docloader-
|
|
5
|
+
import { n as version, t as name } from "./deno-Bk4jrob6.mjs";
|
|
6
|
+
import { a as importJwk, o as validateCryptoKey, t as exportJwk } from "./key-C8OKWl8g.mjs";
|
|
7
|
+
import { u as verifyRequest } from "./http-CDK9iAjb.mjs";
|
|
8
|
+
import { n as getAuthenticatedDocumentLoader } from "./docloader-w8xGNWvP.mjs";
|
|
9
9
|
import { n as kvCache } from "./kv-cache-BrjuJue8.mjs";
|
|
10
|
-
import { a as compactJsonLd, c as getNormalizationContextLoader, d as isInvalidUrlTypeError, f as signJsonLd, g as wrapContextLoaderForJsonLd, l as hasSignature, p as verifyCompactJsonLd, r as assertSafeJsonLd, s as detachSignature, t as InvalidContextReferenceError, u as isClearlyMalformedContextReference } from "./ld-
|
|
11
|
-
import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-
|
|
12
|
-
import { n as signObject, r as verifyObject } from "./proof-
|
|
10
|
+
import { a as compactJsonLd, c as getNormalizationContextLoader, d as isInvalidUrlTypeError, f as signJsonLd, g as wrapContextLoaderForJsonLd, l as hasSignature, p as verifyCompactJsonLd, r as assertSafeJsonLd, s as detachSignature, t as InvalidContextReferenceError, u as isClearlyMalformedContextReference } from "./ld-gUJKeHbH.mjs";
|
|
11
|
+
import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-BenEndHH.mjs";
|
|
12
|
+
import { n as signObject, r as verifyObject } from "./proof-Bo9pmjQJ.mjs";
|
|
13
13
|
import { d as MAX_BODY_SIZE, f as readBoundedText, t as getNodeInfo, u as BodyTooLargeError } from "./client-DGNacEx_.mjs";
|
|
14
14
|
import { t as nodeInfoToJson } from "./types-MNlFfxjv.mjs";
|
|
15
|
-
import { n as actorsHaveSameOrigin, r as routeActivity } from "./inbox-
|
|
16
|
-
import { t as FederationBuilderImpl } from "./builder-
|
|
15
|
+
import { n as actorsHaveSameOrigin, r as routeActivity } from "./inbox-DAm48Q_C.mjs";
|
|
16
|
+
import { t as FederationBuilderImpl } from "./builder-Cv8baeaM.mjs";
|
|
17
17
|
import { t as buildCollectionSynchronizationHeader } from "./collection-DI6YzYpd.mjs";
|
|
18
18
|
import { t as KvKeyCache } from "./keycache-DBD6fzl1.mjs";
|
|
19
19
|
import { t as acceptsJsonLd } from "./negotiation-TWEs6Cl8.mjs";
|
|
20
|
-
import { t as hasMalformedKnownTemporalLiteral } from "./temporal-
|
|
20
|
+
import { t as hasMalformedKnownTemporalLiteral } from "./temporal-CNbx4A18.mjs";
|
|
21
21
|
import { t as createExponentialBackoffPolicy } from "./retry-Ddbq3AcK.mjs";
|
|
22
|
-
import { i as sendActivity, n as extractInboxes, t as SendActivityError } from "./send-
|
|
22
|
+
import { i as sendActivity, n as extractInboxes, t as SendActivityError } from "./send-PTFa5PEa.mjs";
|
|
23
23
|
import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId, lookupObject, traverseCollection } from "@fedify/vocab";
|
|
24
24
|
import { lookupWebFinger } from "@fedify/webfinger";
|
|
25
25
|
import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
|
|
@@ -2148,19 +2148,27 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
2148
2148
|
activity: jsonLd
|
|
2149
2149
|
});
|
|
2150
2150
|
const promises = [];
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2151
|
+
try {
|
|
2152
|
+
for (const inbox in inboxes) {
|
|
2153
|
+
const promise = sendActivity({
|
|
2154
|
+
allowPrivateAddress: this.allowPrivateAddress,
|
|
2155
|
+
keys,
|
|
2156
|
+
activity: jsonLd,
|
|
2157
|
+
activityId: activity.id?.href,
|
|
2158
|
+
activityType: getTypeId(activity).href,
|
|
2159
|
+
inbox: new URL(inbox),
|
|
2160
|
+
sharedInbox: inboxes[inbox].sharedInbox,
|
|
2161
|
+
headers: collectionSync == null ? void 0 : new Headers({ "Collection-Synchronization": await buildCollectionSynchronizationHeader(collectionSync, inboxes[inbox].actorIds) }),
|
|
2162
|
+
specDeterminer: new KvSpecDeterminer(this.kv, this.kvPrefixes.httpMessageSignaturesSpec, this.firstKnock),
|
|
2163
|
+
tracerProvider: this.tracerProvider
|
|
2164
|
+
});
|
|
2165
|
+
promise.catch(() => {});
|
|
2166
|
+
promises.push(promise);
|
|
2167
|
+
}
|
|
2168
|
+
await Promise.all(promises);
|
|
2169
|
+
} finally {
|
|
2170
|
+
await Promise.allSettled(promises);
|
|
2171
|
+
}
|
|
2164
2172
|
return;
|
|
2165
2173
|
}
|
|
2166
2174
|
logger.debug("Enqueuing activity {activityId} to send later.", {
|
|
@@ -3364,18 +3372,26 @@ var InboxContextImpl = class InboxContextImpl extends ContextImpl {
|
|
|
3364
3372
|
if (options?.immediate) logger.debug("Forwarding activity immediately without queue since immediate option is set.");
|
|
3365
3373
|
else logger.debug("Forwarding activity immediately without queue since queue is not set.");
|
|
3366
3374
|
const promises = [];
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3375
|
+
try {
|
|
3376
|
+
for (const inbox in inboxes) {
|
|
3377
|
+
const promise = sendActivity({
|
|
3378
|
+
allowPrivateAddress: this.federation.allowPrivateAddress,
|
|
3379
|
+
keys,
|
|
3380
|
+
activity: this.activity,
|
|
3381
|
+
activityId: this.activityId,
|
|
3382
|
+
activityType: this.activityType,
|
|
3383
|
+
inbox: new URL(inbox),
|
|
3384
|
+
sharedInbox: inboxes[inbox].sharedInbox,
|
|
3385
|
+
tracerProvider: this.tracerProvider,
|
|
3386
|
+
specDeterminer: new KvSpecDeterminer(this.federation.kv, this.federation.kvPrefixes.httpMessageSignaturesSpec, this.federation.firstKnock)
|
|
3387
|
+
});
|
|
3388
|
+
promise.catch(() => {});
|
|
3389
|
+
promises.push(promise);
|
|
3390
|
+
}
|
|
3391
|
+
await Promise.all(promises);
|
|
3392
|
+
} finally {
|
|
3393
|
+
await Promise.allSettled(promises);
|
|
3394
|
+
}
|
|
3379
3395
|
return;
|
|
3380
3396
|
}
|
|
3381
3397
|
logger.debug("Enqueuing activity {activityId} to forward later.", {
|
|
@@ -2,10 +2,10 @@ const { Temporal } = require("@js-temporal/polyfill");
|
|
|
2
2
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
3
3
|
const require_chunk = require("./chunk-DDcVe30Y.cjs");
|
|
4
4
|
const require_transformers = require("./transformers-NeAONrAq.cjs");
|
|
5
|
-
const require_http = require("./http-
|
|
5
|
+
const require_http = require("./http-B9ZWGTaN.cjs");
|
|
6
6
|
const require_types = require("./types-DOvyymM4.cjs");
|
|
7
|
-
const require_proof = require("./proof-
|
|
8
|
-
const require_kv_cache = require("./kv-cache-
|
|
7
|
+
const require_proof = require("./proof-DF1RSNYg.cjs");
|
|
8
|
+
const require_kv_cache = require("./kv-cache-BFFwfQPZ.cjs");
|
|
9
9
|
let _logtape_logtape = require("@logtape/logtape");
|
|
10
10
|
let _fedify_vocab = require("@fedify/vocab");
|
|
11
11
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
@@ -351,7 +351,7 @@ var FederationBuilderImpl = class {
|
|
|
351
351
|
this.collectionTypeIds = {};
|
|
352
352
|
}
|
|
353
353
|
async build(options) {
|
|
354
|
-
const { FederationImpl } = await Promise.resolve().then(() => require("./middleware-
|
|
354
|
+
const { FederationImpl } = await Promise.resolve().then(() => require("./middleware-3t8hmtzt.cjs"));
|
|
355
355
|
const f = new FederationImpl(options);
|
|
356
356
|
const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
|
|
357
357
|
f.router = this.router.clone();
|
|
@@ -3479,19 +3479,27 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
3479
3479
|
activity: jsonLd
|
|
3480
3480
|
});
|
|
3481
3481
|
const promises = [];
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3482
|
+
try {
|
|
3483
|
+
for (const inbox in inboxes) {
|
|
3484
|
+
const promise = sendActivity({
|
|
3485
|
+
allowPrivateAddress: this.allowPrivateAddress,
|
|
3486
|
+
keys,
|
|
3487
|
+
activity: jsonLd,
|
|
3488
|
+
activityId: activity.id?.href,
|
|
3489
|
+
activityType: (0, _fedify_vocab.getTypeId)(activity).href,
|
|
3490
|
+
inbox: new URL(inbox),
|
|
3491
|
+
sharedInbox: inboxes[inbox].sharedInbox,
|
|
3492
|
+
headers: collectionSync == null ? void 0 : new Headers({ "Collection-Synchronization": await buildCollectionSynchronizationHeader(collectionSync, inboxes[inbox].actorIds) }),
|
|
3493
|
+
specDeterminer: new KvSpecDeterminer(this.kv, this.kvPrefixes.httpMessageSignaturesSpec, this.firstKnock),
|
|
3494
|
+
tracerProvider: this.tracerProvider
|
|
3495
|
+
});
|
|
3496
|
+
promise.catch(() => {});
|
|
3497
|
+
promises.push(promise);
|
|
3498
|
+
}
|
|
3499
|
+
await Promise.all(promises);
|
|
3500
|
+
} finally {
|
|
3501
|
+
await Promise.allSettled(promises);
|
|
3502
|
+
}
|
|
3495
3503
|
return;
|
|
3496
3504
|
}
|
|
3497
3505
|
logger.debug("Enqueuing activity {activityId} to send later.", {
|
|
@@ -4695,18 +4703,26 @@ var InboxContextImpl = class InboxContextImpl extends ContextImpl {
|
|
|
4695
4703
|
if (options?.immediate) logger.debug("Forwarding activity immediately without queue since immediate option is set.");
|
|
4696
4704
|
else logger.debug("Forwarding activity immediately without queue since queue is not set.");
|
|
4697
4705
|
const promises = [];
|
|
4698
|
-
|
|
4699
|
-
|
|
4700
|
-
|
|
4701
|
-
|
|
4702
|
-
|
|
4703
|
-
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4706
|
+
try {
|
|
4707
|
+
for (const inbox in inboxes) {
|
|
4708
|
+
const promise = sendActivity({
|
|
4709
|
+
allowPrivateAddress: this.federation.allowPrivateAddress,
|
|
4710
|
+
keys,
|
|
4711
|
+
activity: this.activity,
|
|
4712
|
+
activityId: this.activityId,
|
|
4713
|
+
activityType: this.activityType,
|
|
4714
|
+
inbox: new URL(inbox),
|
|
4715
|
+
sharedInbox: inboxes[inbox].sharedInbox,
|
|
4716
|
+
tracerProvider: this.tracerProvider,
|
|
4717
|
+
specDeterminer: new KvSpecDeterminer(this.federation.kv, this.federation.kvPrefixes.httpMessageSignaturesSpec, this.federation.firstKnock)
|
|
4718
|
+
});
|
|
4719
|
+
promise.catch(() => {});
|
|
4720
|
+
promises.push(promise);
|
|
4721
|
+
}
|
|
4722
|
+
await Promise.all(promises);
|
|
4723
|
+
} finally {
|
|
4724
|
+
await Promise.allSettled(promises);
|
|
4725
|
+
}
|
|
4710
4726
|
return;
|
|
4711
4727
|
}
|
|
4712
4728
|
logger.debug("Enqueuing activity {activityId} to forward later.", {
|
package/dist/mod.cjs
CHANGED
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
4
4
|
require("./chunk-DDcVe30Y.cjs");
|
|
5
5
|
const require_transformers = require("./transformers-NeAONrAq.cjs");
|
|
6
6
|
require("./compat/mod.cjs");
|
|
7
|
-
const require_http = require("./http-
|
|
8
|
-
const require_middleware = require("./middleware-
|
|
7
|
+
const require_http = require("./http-B9ZWGTaN.cjs");
|
|
8
|
+
const require_middleware = require("./middleware-_yMwRAE9.cjs");
|
|
9
9
|
const require_types = require("./types-DOvyymM4.cjs");
|
|
10
|
-
const require_proof = require("./proof-
|
|
11
|
-
const require_kv_cache = require("./kv-cache-
|
|
10
|
+
const require_proof = require("./proof-DF1RSNYg.cjs");
|
|
11
|
+
const require_kv_cache = require("./kv-cache-BFFwfQPZ.cjs");
|
|
12
12
|
const require_federation_mod = require("./federation/mod.cjs");
|
|
13
13
|
require("./nodeinfo/mod.cjs");
|
|
14
14
|
require("./runtime/mod.cjs");
|
package/dist/mod.js
CHANGED
|
@@ -3,11 +3,11 @@ import { URLPattern } from "urlpattern-polyfill";
|
|
|
3
3
|
import "./chunk-CRNNMoPX.js";
|
|
4
4
|
import { n as autoIdAssigner, r as getDefaultActivityTransformers, t as actorDehydrator } from "./transformers-BGMIq1cs.js";
|
|
5
5
|
import "./compat/mod.js";
|
|
6
|
-
import { c as importJwk, i as exportJwk, n as signRequest, o as fetchKey, r as verifyRequest, s as generateCryptoKeyPair } from "./http-
|
|
7
|
-
import { a as createExponentialBackoffPolicy, c as buildCollectionSynchronizationHeader, d as Router, f as RouterError, i as SendActivityError, l as digest, o as respondWithObject, r as handleWebFinger, s as respondWithObjectIfAcceptable, t as createFederation, u as createFederationBuilder } from "./middleware-
|
|
6
|
+
import { c as importJwk, i as exportJwk, n as signRequest, o as fetchKey, r as verifyRequest, s as generateCryptoKeyPair } from "./http-C1v_vvt4.js";
|
|
7
|
+
import { a as createExponentialBackoffPolicy, c as buildCollectionSynchronizationHeader, d as Router, f as RouterError, i as SendActivityError, l as digest, o as respondWithObject, r as handleWebFinger, s as respondWithObjectIfAcceptable, t as createFederation, u as createFederationBuilder } from "./middleware-D-DIq_jJ.js";
|
|
8
8
|
import { n as getNodeInfo, r as parseNodeInfo, t as nodeInfoToJson } from "./types-B1_pRFE_.js";
|
|
9
|
-
import { _ as signJsonLd, a as doesActorOwnKey, b as verifySignature, d as createSignature, f as detachSignature, i as verifyProof, l as attachSignature, n as signObject, o as getKeyOwner, r as verifyObject, t as createProof, y as verifyJsonLd } from "./proof-
|
|
10
|
-
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-
|
|
9
|
+
import { _ as signJsonLd, a as doesActorOwnKey, b as verifySignature, d as createSignature, f as detachSignature, i as verifyProof, l as attachSignature, n as signObject, o as getKeyOwner, r as verifyObject, t as createProof, y as verifyJsonLd } from "./proof-BvtZYI3N.js";
|
|
10
|
+
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-B1Y7_B63.js";
|
|
11
11
|
import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "./federation/mod.js";
|
|
12
12
|
import "./nodeinfo/mod.js";
|
|
13
13
|
import "./runtime/mod.js";
|
|
@@ -5,7 +5,7 @@ import { n as createRequestContext } from "../context-Juj6bdHC.mjs";
|
|
|
5
5
|
import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
|
|
6
6
|
import "../std__assert-DflMZha5.mjs";
|
|
7
7
|
import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
|
|
8
|
-
import { a as createFederation, h as handleNodeInfoJrd, m as handleNodeInfo } from "../middleware-
|
|
8
|
+
import { a as createFederation, h as handleNodeInfoJrd, m as handleNodeInfo } from "../middleware-DLxdIffl.mjs";
|
|
9
9
|
import { test } from "@fedify/fixture";
|
|
10
10
|
//#region src/nodeinfo/handler.test.ts
|
|
11
11
|
test("handleNodeInfo()", async () => {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "@js-temporal/polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as version, t as name } from "./deno-
|
|
5
|
-
import { n as fetchActorDocument, s as verifyKeyOwnership, t as exportJwk } from "./key-
|
|
4
|
+
import { n as version, t as name } from "./deno-Bk4jrob6.mjs";
|
|
5
|
+
import { n as fetchActorDocument, s as verifyKeyOwnership, t as exportJwk } from "./key-C8OKWl8g.mjs";
|
|
6
6
|
import { CryptographicKey, Object as Object$1, isActor } from "@fedify/vocab";
|
|
7
7
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
8
8
|
import { getDocumentLoader } from "@fedify/vocab-runtime";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as version, t as name } from "./deno-
|
|
5
|
-
import { o as validateCryptoKey, r as fetchKey } from "./key-
|
|
4
|
+
import { n as version, t as name } from "./deno-Bk4jrob6.mjs";
|
|
5
|
+
import { o as validateCryptoKey, r as fetchKey } from "./key-C8OKWl8g.mjs";
|
|
6
6
|
import { Activity, DataIntegrityProof, Multikey, getTypeId } from "@fedify/vocab";
|
|
7
7
|
import { SpanStatusCode, trace } from "@opentelemetry/api";
|
|
8
8
|
import { getLogger } from "@logtape/logtape";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
|
-
import { a as fetchActorDocument, d as name, f as version, i as exportJwk, l as validateCryptoKey, o as fetchKey, u as verifyKeyOwnership } from "./http-
|
|
3
|
+
import { a as fetchActorDocument, d as name, f as version, i as exportJwk, l as validateCryptoKey, o as fetchKey, u as verifyKeyOwnership } from "./http-C1v_vvt4.js";
|
|
4
4
|
import { getLogger } from "@logtape/logtape";
|
|
5
5
|
import { Activity, CryptographicKey, DataIntegrityProof, Multikey, Object as Object$1, getTypeId, isActor } from "@fedify/vocab";
|
|
6
6
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { Temporal } = require("@js-temporal/polyfill");
|
|
2
2
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
3
3
|
const require_chunk = require("./chunk-DDcVe30Y.cjs");
|
|
4
|
-
const require_http = require("./http-
|
|
4
|
+
const require_http = require("./http-B9ZWGTaN.cjs");
|
|
5
5
|
let _logtape_logtape = require("@logtape/logtape");
|
|
6
6
|
let _fedify_vocab = require("@fedify/vocab");
|
|
7
7
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "@js-temporal/polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as version, t as name } from "./deno-
|
|
5
|
-
import { r as doubleKnockScoped } from "./http-
|
|
4
|
+
import { n as version, t as name } from "./deno-Bk4jrob6.mjs";
|
|
5
|
+
import { r as doubleKnockScoped } from "./http-CDK9iAjb.mjs";
|
|
6
6
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
7
7
|
import { FetchError, UrlError } from "@fedify/vocab-runtime";
|
|
8
8
|
import { openDirectFetch, openPublicFetch } from "@fedify/vocab-runtime/internal";
|
package/dist/sig/http.test.mjs
CHANGED
|
@@ -7,8 +7,8 @@ import { i as assertExists, t as assertStringIncludes } from "../std__assert-Dfl
|
|
|
7
7
|
import { r as assertFalse, t as assertThrows } from "../assert_throws-D4DNWrux.mjs";
|
|
8
8
|
import { t as assert } from "../assert-BhQd8QHP.mjs";
|
|
9
9
|
import { t as assertRejects } from "../assert_rejects-WyYSTDDX.mjs";
|
|
10
|
-
import { t as exportJwk } from "../key-
|
|
11
|
-
import { a as formatRfc9421SignatureParameters, c as signRequest, i as formatRfc9421Signature, l as timingSafeEqual, n as doubleKnock, o as parseRfc9421Signature, r as doubleKnockScoped, s as parseRfc9421SignatureInput, t as createRfc9421SignatureBase, u as verifyRequest } from "../http-
|
|
10
|
+
import { t as exportJwk } from "../key-C8OKWl8g.mjs";
|
|
11
|
+
import { a as formatRfc9421SignatureParameters, c as signRequest, i as formatRfc9421Signature, l as timingSafeEqual, n as doubleKnock, o as parseRfc9421Signature, r as doubleKnockScoped, s as parseRfc9421SignatureInput, t as createRfc9421SignatureBase, u as verifyRequest } from "../http-CDK9iAjb.mjs";
|
|
12
12
|
import { i as rsaPrivateKey2, l as rsaPublicKey5, o as rsaPublicKey1, s as rsaPublicKey2 } from "../keys-CCxRJhWa.mjs";
|
|
13
13
|
import { mockDocumentLoader, test } from "@fedify/fixture";
|
|
14
14
|
import { FetchError, exportSpki } from "@fedify/vocab-runtime";
|
package/dist/sig/key.test.mjs
CHANGED
|
@@ -6,9 +6,9 @@ import { n as assertStrictEquals } from "../std__assert-DflMZha5.mjs";
|
|
|
6
6
|
import { r as assertFalse, t as assertThrows } from "../assert_throws-D4DNWrux.mjs";
|
|
7
7
|
import { t as assert } from "../assert-BhQd8QHP.mjs";
|
|
8
8
|
import { t as assertRejects } from "../assert_rejects-WyYSTDDX.mjs";
|
|
9
|
-
import { a as importJwk, i as generateCryptoKeyPair, o as validateCryptoKey, r as fetchKey, t as exportJwk } from "../key-
|
|
9
|
+
import { a as importJwk, i as generateCryptoKeyPair, o as validateCryptoKey, r as fetchKey, t as exportJwk } from "../key-C8OKWl8g.mjs";
|
|
10
10
|
import { c as rsaPublicKey3, i as rsaPrivateKey2, o as rsaPublicKey1, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
|
|
11
|
-
import { g as wrapContextLoaderForJsonLd } from "../ld-
|
|
11
|
+
import { g as wrapContextLoaderForJsonLd } from "../ld-gUJKeHbH.mjs";
|
|
12
12
|
import { mockDocumentLoader, test } from "@fedify/fixture";
|
|
13
13
|
import { CryptographicKey, Multikey, Person } from "@fedify/vocab";
|
|
14
14
|
import { FetchError, UrlError, getDocumentLoader } from "@fedify/vocab-runtime";
|
package/dist/sig/ld.test.mjs
CHANGED
|
@@ -5,9 +5,9 @@ import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
|
|
|
5
5
|
import { r as assertFalse, t as assertThrows } from "../assert_throws-D4DNWrux.mjs";
|
|
6
6
|
import { n as assertInstanceOf, t as assert } from "../assert-BhQd8QHP.mjs";
|
|
7
7
|
import { t as assertRejects } from "../assert_rejects-WyYSTDDX.mjs";
|
|
8
|
-
import { i as generateCryptoKeyPair } from "../key-
|
|
8
|
+
import { i as generateCryptoKeyPair } from "../key-C8OKWl8g.mjs";
|
|
9
9
|
import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
|
|
10
|
-
import { a as compactJsonLd, d as isInvalidUrlTypeError, f as signJsonLd, h as verifySignature, i as attachSignature, m as verifyJsonLd, n as UnsafeJsonLdError, o as createSignature, s as detachSignature } from "../ld-
|
|
10
|
+
import { a as compactJsonLd, d as isInvalidUrlTypeError, f as signJsonLd, h as verifySignature, i as attachSignature, m as verifyJsonLd, n as UnsafeJsonLdError, o as createSignature, s as detachSignature } from "../ld-gUJKeHbH.mjs";
|
|
11
11
|
import { mockDocumentLoader, test } from "@fedify/fixture";
|
|
12
12
|
import { CryptographicKey } from "@fedify/vocab";
|
|
13
13
|
import { encodeBase64 } from "byte-encodings/base64";
|
package/dist/sig/mod.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const { Temporal } = require("@js-temporal/polyfill");
|
|
2
2
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
|
-
const require_http = require("../http-
|
|
5
|
-
const require_proof = require("../proof-
|
|
4
|
+
const require_http = require("../http-B9ZWGTaN.cjs");
|
|
5
|
+
const require_proof = require("../proof-DF1RSNYg.cjs");
|
|
6
6
|
exports.attachSignature = require_proof.attachSignature;
|
|
7
7
|
exports.createProof = require_proof.createProof;
|
|
8
8
|
exports.createSignature = require_proof.createSignature;
|
package/dist/sig/mod.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
|
-
import { c as importJwk, i as exportJwk, n as signRequest, o as fetchKey, r as verifyRequest, s as generateCryptoKeyPair } from "../http-
|
|
4
|
-
import { _ as signJsonLd, a as doesActorOwnKey, b as verifySignature, d as createSignature, f as detachSignature, i as verifyProof, l as attachSignature, n as signObject, o as getKeyOwner, r as verifyObject, t as createProof, y as verifyJsonLd } from "../proof-
|
|
3
|
+
import { c as importJwk, i as exportJwk, n as signRequest, o as fetchKey, r as verifyRequest, s as generateCryptoKeyPair } from "../http-C1v_vvt4.js";
|
|
4
|
+
import { _ as signJsonLd, a as doesActorOwnKey, b as verifySignature, d as createSignature, f as detachSignature, i as verifyProof, l as attachSignature, n as signObject, o as getKeyOwner, r as verifyObject, t as createProof, y as verifyJsonLd } from "../proof-BvtZYI3N.js";
|
|
5
5
|
export { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, exportJwk, fetchKey, generateCryptoKeyPair, getKeyOwner, importJwk, signJsonLd, signObject, signRequest, verifyJsonLd, verifyObject, verifyProof, verifyRequest, verifySignature };
|
package/dist/sig/owner.test.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import "../std__assert-DflMZha5.mjs";
|
|
|
6
6
|
import { r as assertFalse } from "../assert_throws-D4DNWrux.mjs";
|
|
7
7
|
import { t as assert } from "../assert-BhQd8QHP.mjs";
|
|
8
8
|
import { o as rsaPublicKey1, s as rsaPublicKey2 } from "../keys-CCxRJhWa.mjs";
|
|
9
|
-
import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-
|
|
9
|
+
import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-BenEndHH.mjs";
|
|
10
10
|
import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
11
11
|
import { Create, CryptographicKey, lookupObject } from "@fedify/vocab";
|
|
12
12
|
//#region src/sig/owner.test.ts
|
package/dist/sig/proof.test.mjs
CHANGED
|
@@ -6,8 +6,8 @@ import "../std__assert-DflMZha5.mjs";
|
|
|
6
6
|
import { n as assertInstanceOf } from "../assert-BhQd8QHP.mjs";
|
|
7
7
|
import { t as assertRejects } from "../assert_rejects-WyYSTDDX.mjs";
|
|
8
8
|
import { i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
|
|
9
|
-
import { f as signJsonLd, h as verifySignature, s as detachSignature } from "../ld-
|
|
10
|
-
import { i as verifyProof, n as signObject, r as verifyObject, t as createProof } from "../proof-
|
|
9
|
+
import { f as signJsonLd, h as verifySignature, s as detachSignature } from "../ld-gUJKeHbH.mjs";
|
|
10
|
+
import { i as verifyProof, n as signObject, r as verifyObject, t as createProof } from "../proof-Bo9pmjQJ.mjs";
|
|
11
11
|
import { mockDocumentLoader, test } from "@fedify/fixture";
|
|
12
12
|
import { Create, DataIntegrityProof, Multikey, Note, Place } from "@fedify/vocab";
|
|
13
13
|
import { decodeMultibase, importMultibaseKey } from "@fedify/vocab-runtime";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { c as getNormalizationContextLoader } from "./ld-
|
|
4
|
+
import { c as getNormalizationContextLoader } from "./ld-gUJKeHbH.mjs";
|
|
5
5
|
import jsonld from "@fedify/vocab-runtime/jsonld";
|
|
6
6
|
import { normalizeDateTimeLiteral } from "@fedify/vocab-runtime/temporal";
|
|
7
7
|
//#region src/federation/temporal.ts
|
|
@@ -5,9 +5,9 @@ import { t as esm_default } from "../esm-DVILvP5e.mjs";
|
|
|
5
5
|
import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
|
|
6
6
|
import "../std__assert-DflMZha5.mjs";
|
|
7
7
|
import { t as assertRejects } from "../assert_rejects-WyYSTDDX.mjs";
|
|
8
|
-
import { u as verifyRequest } from "../http-
|
|
8
|
+
import { u as verifyRequest } from "../http-CDK9iAjb.mjs";
|
|
9
9
|
import { i as rsaPrivateKey2 } from "../keys-CCxRJhWa.mjs";
|
|
10
|
-
import { n as getAuthenticatedDocumentLoader, t as createAuthenticatedDocumentLoader } from "../docloader-
|
|
10
|
+
import { n as getAuthenticatedDocumentLoader, t as createAuthenticatedDocumentLoader } from "../docloader-w8xGNWvP.mjs";
|
|
11
11
|
import { mockDocumentLoader, test } from "@fedify/fixture";
|
|
12
12
|
import { FetchError, UrlError } from "@fedify/vocab-runtime";
|
|
13
13
|
import { openDirectFetch, openPublicFetch } from "@fedify/vocab-runtime/internal";
|
package/dist/utils/mod.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const { Temporal } = require("@js-temporal/polyfill");
|
|
2
2
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
|
-
const require_kv_cache = require("../kv-cache-
|
|
4
|
+
const require_kv_cache = require("../kv-cache-BFFwfQPZ.cjs");
|
|
5
5
|
exports.getAuthenticatedDocumentLoader = require_kv_cache.getAuthenticatedDocumentLoader;
|
|
6
6
|
exports.kvCache = require_kv_cache.kvCache;
|
package/dist/utils/mod.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
|
-
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../kv-cache-
|
|
3
|
+
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../kv-cache-B1Y7_B63.js";
|
|
4
4
|
export { getAuthenticatedDocumentLoader, kvCache };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fedify/fedify",
|
|
3
|
-
"version": "2.0.36-dev.
|
|
3
|
+
"version": "2.0.36-dev.2647+2864b09d",
|
|
4
4
|
"description": "An ActivityPub server framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ActivityPub",
|
|
@@ -144,9 +144,9 @@
|
|
|
144
144
|
"uri-template-router": "^1.0.0",
|
|
145
145
|
"url-template": "^3.1.1",
|
|
146
146
|
"urlpattern-polyfill": "^10.1.0",
|
|
147
|
-
"@fedify/vocab": "2.0.36-dev.
|
|
148
|
-
"@fedify/vocab-runtime": "2.0.36-dev.
|
|
149
|
-
"@fedify/webfinger": "2.0.36-dev.
|
|
147
|
+
"@fedify/vocab": "2.0.36-dev.2647+2864b09d",
|
|
148
|
+
"@fedify/vocab-runtime": "2.0.36-dev.2647+2864b09d",
|
|
149
|
+
"@fedify/webfinger": "2.0.36-dev.2647+2864b09d"
|
|
150
150
|
},
|
|
151
151
|
"devDependencies": {
|
|
152
152
|
"@std/assert": "npm:@jsr/std__assert@^0.226.0",
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
"typescript": "^6.0.0",
|
|
160
160
|
"wrangler": "^4.17.0",
|
|
161
161
|
"@fedify/fixture": "2.0.0",
|
|
162
|
-
"@fedify/vocab-tools": "^2.0.36-dev.
|
|
162
|
+
"@fedify/vocab-tools": "^2.0.36-dev.2647+2864b09d"
|
|
163
163
|
},
|
|
164
164
|
"scripts": {
|
|
165
165
|
"build:self": "tsdown",
|