@fedify/fedify 2.3.0-dev.1137 → 2.3.0-dev.1150
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-BCkBXxky.mjs → builder-Bjm1Jq9n.mjs} +2 -2
- package/dist/compat/mod.d.cts +1 -1
- package/dist/compat/mod.d.ts +1 -1
- package/dist/compat/transformers.test.mjs +1 -1
- package/dist/{context-DI2gRbyN.d.cts → context-CRXCkTM6.d.cts} +48 -6
- package/dist/{context-DCtsSHDv.d.ts → context-MgCh7YGu.d.ts} +48 -6
- package/dist/{deno-B_9yJW3w.mjs → deno-CKFE6Uya.mjs} +1 -1
- package/dist/{docloader-BT89tyFr.mjs → docloader-B-ZE1cZf.mjs} +2 -2
- package/dist/federation/builder.test.mjs +1 -1
- package/dist/federation/handler.test.mjs +1363 -44
- package/dist/federation/idempotency.test.mjs +2 -2
- package/dist/federation/metrics.test.mjs +60 -1
- package/dist/federation/middleware.test.mjs +1667 -163
- package/dist/federation/mod.cjs +1 -1
- package/dist/federation/mod.d.cts +2 -2
- package/dist/federation/mod.d.ts +2 -2
- package/dist/federation/mod.js +1 -1
- package/dist/federation/retry.test.mjs +1 -1
- package/dist/federation/send.test.mjs +8 -8
- package/dist/federation/temporal.test.d.mts +2 -0
- package/dist/federation/temporal.test.mjs +71 -0
- package/dist/federation/webfinger.test.mjs +147 -2
- package/dist/{getMachineId-bsd-etIyxDet.mjs → getMachineId-bsd-BY01PL1n.mjs} +1 -1
- package/dist/{getMachineId-darwin-D23zTf4g.mjs → getMachineId-darwin-Dr1gkBkp.mjs} +1 -1
- package/dist/{getMachineId-win-Dpap6v5i.mjs → getMachineId-win-QEYwcJiy.mjs} +1 -1
- package/dist/{http-CWoeyogl.cjs → http-DQYEA7AZ.cjs} +53 -1
- package/dist/{http-CToqG5ap.js → http-WbS1gKzr.js} +48 -2
- package/dist/{http-Cyx5SNuu.mjs → http-vHCgbhTg.mjs} +3 -3
- package/dist/{key-CkkMJBjF.mjs → key-N0zP_oJA.mjs} +2 -2
- package/dist/{kv-cache-CuCn2xvM.js → kv-cache-DM2O-Yjy.js} +1 -1
- package/dist/{kv-cache-DuEwFYcN.cjs → kv-cache-Dsg_bi4N.cjs} +1 -1
- package/dist/{kv-cache-VHFP42vY.mjs → kv-cache-GXXZEemD.mjs} +1 -1
- package/dist/{ld-k8yqD2a-.mjs → ld-BwKhquPx.mjs} +302 -6
- package/dist/{metrics-iRBg8jTk.mjs → metrics-7Vy9FvEw.mjs} +48 -2
- package/dist/{middleware-D7FrhN9q.js → middleware-BscgvU-m.js} +496 -115
- package/dist/{middleware-BWLUrbS9.cjs → middleware-D_iXrYHJ.cjs} +497 -115
- package/dist/{middleware-CztxpARM.mjs → middleware-Db1_qAFG.mjs} +1 -1
- package/dist/{middleware-DQEgdr83.mjs → middleware-ZuUcO0t1.mjs} +416 -124
- package/dist/{mod-C504qevA.d.cts → mod-C7HOzGqH.d.cts} +11 -2
- package/dist/{mod-wYfuXeDE.d.ts → mod-CpQHB3Ys.d.ts} +11 -2
- package/dist/mod.cjs +4 -4
- package/dist/mod.d.cts +2 -2
- package/dist/mod.d.ts +2 -2
- package/dist/mod.js +4 -4
- package/dist/nodeinfo/handler.test.mjs +1 -1
- package/dist/{owner-nmXdvXpc.mjs → owner-FD0H_vpj.mjs} +2 -2
- package/dist/{proof-CcsIJLTn.cjs → proof-CYK8T8IS.cjs} +353 -3
- package/dist/{proof-NRmtrTDu.js → proof-I3EokKN-.js} +300 -4
- package/dist/{proof-DpwO1T4S.mjs → proof-V_lafPmA.mjs} +3 -3
- package/dist/{send-DvX2tYyZ.mjs → send-Cc2_10tF.mjs} +3 -3
- package/dist/sig/http.test.mjs +2 -2
- package/dist/sig/key.test.mjs +1 -1
- package/dist/sig/ld.test.mjs +558 -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 +1 -1
- package/dist/temporal-BkmBfs__.mjs +95 -0
- package/dist/testing/mod.d.mts +48 -6
- package/dist/utils/docloader.test.mjs +2 -2
- package/dist/utils/kv-cache.test.mjs +1 -1
- package/dist/utils/mod.cjs +1 -1
- package/dist/utils/mod.js +1 -1
- package/package.json +6 -6
- /package/dist/{execAsync-DCBrgFiV.mjs → execAsync-Dxb7rNf3.mjs} +0 -0
- /package/dist/{getMachineId-linux-ObI47Hql.mjs → getMachineId-linux-Bbhofx-s.mjs} +0 -0
- /package/dist/{getMachineId-unsupported-Ddu-PFeh.mjs → getMachineId-unsupported-dIOte2Ct.mjs} +0 -0
- /package/dist/{retry-v_sGLH1d.mjs → retry-_VvV0h9f.mjs} +0 -0
|
@@ -4,9 +4,9 @@ globalThis.addEventListener = () => {};
|
|
|
4
4
|
import { t as assertEquals } from "../assert_equals-C-ZRDbaf.mjs";
|
|
5
5
|
import "../std__assert-BBjXFNOb.mjs";
|
|
6
6
|
import { n as ed25519PrivateKey, r as ed25519PublicKey, t as ed25519Multikey } from "../keys-C3kae-6B.mjs";
|
|
7
|
-
import { r as signObject } from "../proof-
|
|
7
|
+
import { r as signObject } from "../proof-V_lafPmA.mjs";
|
|
8
8
|
import { t as MemoryKvStore } from "../kv-x2IvBUyq.mjs";
|
|
9
|
-
import { o as createFederation } from "../middleware-
|
|
9
|
+
import { o as createFederation } from "../middleware-ZuUcO0t1.mjs";
|
|
10
10
|
import { Create, Follow, Person } from "@fedify/vocab";
|
|
11
11
|
import { mockDocumentLoader, test } from "@fedify/fixture";
|
|
12
12
|
//#region src/federation/idempotency.test.ts
|
|
@@ -4,7 +4,7 @@ globalThis.addEventListener = () => {};
|
|
|
4
4
|
import { t as assertEquals } from "../assert_equals-C-ZRDbaf.mjs";
|
|
5
5
|
import "../std__assert-BBjXFNOb.mjs";
|
|
6
6
|
import { t as assertRejects } from "../assert_rejects-DN60FHPX.mjs";
|
|
7
|
-
import { a as instrumentDocumentLoader, c as recordDocumentCache, d as recordInboxActivity, f as recordKeyLookup, l as recordDocumentFetch, m as recordOutboxEnqueue, p as recordOutboxActivity, t as classifyFetchError, u as recordFanoutRecipients } from "../metrics-
|
|
7
|
+
import { a as instrumentDocumentLoader, c as recordDocumentCache, d as recordInboxActivity, f as recordKeyLookup, h as recordWebFingerHandle, l as recordDocumentFetch, m as recordOutboxEnqueue, p as recordOutboxActivity, t as classifyFetchError, u as recordFanoutRecipients } from "../metrics-7Vy9FvEw.mjs";
|
|
8
8
|
import { createTestMeterProvider, test } from "@fedify/fixture";
|
|
9
9
|
import { FetchError } from "@fedify/vocab-runtime";
|
|
10
10
|
//#region src/federation/metrics.test.ts
|
|
@@ -213,6 +213,65 @@ test("recordDocumentCache() records hit and miss as a counter", () => {
|
|
|
213
213
|
assertEquals(measurements[1].attributes["activitypub.lookup.result"], "miss");
|
|
214
214
|
assertEquals(measurements[1].attributes["activitypub.remote.host"], "w3id.org");
|
|
215
215
|
});
|
|
216
|
+
test("recordWebFingerHandle() records counter and duration with all attributes", () => {
|
|
217
|
+
const [meterProvider, recorder] = createTestMeterProvider();
|
|
218
|
+
recordWebFingerHandle(meterProvider, {
|
|
219
|
+
durationMs: 17,
|
|
220
|
+
result: "resolved",
|
|
221
|
+
scheme: "acct",
|
|
222
|
+
statusCode: 200
|
|
223
|
+
});
|
|
224
|
+
const counters = recorder.getMeasurements("webfinger.handle");
|
|
225
|
+
assertEquals(counters.length, 1);
|
|
226
|
+
assertEquals(counters[0].type, "counter");
|
|
227
|
+
assertEquals(counters[0].value, 1);
|
|
228
|
+
assertEquals(counters[0].attributes["webfinger.handle.result"], "resolved");
|
|
229
|
+
assertEquals(counters[0].attributes["webfinger.resource.scheme"], "acct");
|
|
230
|
+
assertEquals(counters[0].attributes["http.response.status_code"], 200);
|
|
231
|
+
const durations = recorder.getMeasurements("webfinger.handle.duration");
|
|
232
|
+
assertEquals(durations.length, 1);
|
|
233
|
+
assertEquals(durations[0].type, "histogram");
|
|
234
|
+
assertEquals(durations[0].value, 17);
|
|
235
|
+
assertEquals(durations[0].attributes["webfinger.handle.result"], "resolved");
|
|
236
|
+
assertEquals(durations[0].attributes["webfinger.resource.scheme"], "acct");
|
|
237
|
+
assertEquals(durations[0].attributes["http.response.status_code"], 200);
|
|
238
|
+
});
|
|
239
|
+
test("recordWebFingerHandle() records each non-resolved result with the matching status code", () => {
|
|
240
|
+
const [meterProvider, recorder] = createTestMeterProvider();
|
|
241
|
+
for (const [result, statusCode] of [
|
|
242
|
+
["invalid", 400],
|
|
243
|
+
["not_found", 404],
|
|
244
|
+
["tombstoned", 410]
|
|
245
|
+
]) recordWebFingerHandle(meterProvider, {
|
|
246
|
+
durationMs: 1,
|
|
247
|
+
result,
|
|
248
|
+
scheme: "acct",
|
|
249
|
+
statusCode
|
|
250
|
+
});
|
|
251
|
+
const counters = recorder.getMeasurements("webfinger.handle");
|
|
252
|
+
assertEquals(counters.length, 3);
|
|
253
|
+
assertEquals(counters.map((m) => m.attributes["webfinger.handle.result"]), [
|
|
254
|
+
"invalid",
|
|
255
|
+
"not_found",
|
|
256
|
+
"tombstoned"
|
|
257
|
+
]);
|
|
258
|
+
assertEquals(counters.map((m) => m.attributes["http.response.status_code"]), [
|
|
259
|
+
400,
|
|
260
|
+
404,
|
|
261
|
+
410
|
|
262
|
+
]);
|
|
263
|
+
});
|
|
264
|
+
test("recordWebFingerHandle() omits optional attributes when not provided", () => {
|
|
265
|
+
const [meterProvider, recorder] = createTestMeterProvider();
|
|
266
|
+
recordWebFingerHandle(meterProvider, {
|
|
267
|
+
durationMs: 0,
|
|
268
|
+
result: "error"
|
|
269
|
+
});
|
|
270
|
+
const counter = recorder.getMeasurement("webfinger.handle");
|
|
271
|
+
assertEquals(counter?.attributes["webfinger.handle.result"], "error");
|
|
272
|
+
assertEquals("webfinger.resource.scheme" in (counter?.attributes ?? {}), false);
|
|
273
|
+
assertEquals("http.response.status_code" in (counter?.attributes ?? {}), false);
|
|
274
|
+
});
|
|
216
275
|
test("classifyFetchError() classifies FetchError with 404 as not_found", () => {
|
|
217
276
|
assertEquals(classifyFetchError(new FetchError("https://example.com/k", "not found", new Response("", { status: 404 }))), {
|
|
218
277
|
result: "not_found",
|