@fedify/fedify 2.4.0-dev.1504 → 2.4.0-dev.1508
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -7
- package/dist/{builder-Ck0Fl_a5.mjs → builder-DlWCek6Z.mjs} +2 -2
- package/dist/compat/transformers.test.mjs +1 -1
- package/dist/{deno-D3gb4X9v.mjs → deno-nexucTAX.mjs} +1 -1
- package/dist/{docloader-DUKu0GzG.mjs → docloader-DAdEN549.mjs} +2 -2
- package/dist/federation/builder.test.mjs +1 -1
- package/dist/federation/handler.test.mjs +3 -3
- package/dist/federation/idempotency.test.mjs +2 -2
- package/dist/federation/metrics.test.mjs +1 -1
- package/dist/federation/middleware.test.mjs +7 -7
- 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/tasks/enqueue.test.mjs +1 -1
- package/dist/federation/tasks/tasks.test.mjs +2 -2
- package/dist/federation/temporal.test.mjs +1 -1
- package/dist/federation/webfinger.test.mjs +1 -1
- package/dist/{http-D9p2_d2X.cjs → http-BCj9dlA_.cjs} +17 -7
- package/dist/{http-CrZzUAtV.js → http-Dv3147TL.js} +17 -7
- package/dist/{http-BNFQkiEZ.mjs → http-inQqS3yx.mjs} +3 -3
- package/dist/{key-BM_SRwBV.mjs → key-CGrr6-I2.mjs} +18 -8
- package/dist/{kv-cache-Ch_Zv5Yq.js → kv-cache-C2oTEXyb.js} +1 -1
- package/dist/{kv-cache-BE1QIPdL.mjs → kv-cache-C3qkFkbt.mjs} +1 -1
- package/dist/{kv-cache-Cna211RR.cjs → kv-cache-c8X6svwE.cjs} +1 -1
- package/dist/{ld-ubkf03eb.mjs → ld-fnWaNT8y.mjs} +3 -3
- package/dist/{metrics-BXR36qzu.mjs → metrics-C5hMINAa.mjs} +1 -1
- package/dist/{middleware-pzCP79He.mjs → middleware-CQlq6ykI.mjs} +1 -1
- package/dist/{middleware-DUNeIkXN.cjs → middleware-DeVzbg1I.cjs} +24 -7
- package/dist/{middleware-iP9VRMus.mjs → middleware-Dl2nyVgB.mjs} +33 -16
- package/dist/{middleware-lB4vtShP.js → middleware-vQ_ZpgcX.js} +24 -7
- package/dist/mod.cjs +4 -4
- package/dist/mod.js +4 -4
- package/dist/nodeinfo/handler.test.mjs +1 -1
- package/dist/{owner-Bf1KkncT.mjs → owner-Bq2eZyO_.mjs} +2 -2
- package/dist/{proof-yeAU1MyT.cjs → proof-Buz7I8wj.cjs} +1 -1
- package/dist/{proof-BMcsi8q_.js → proof-CTG9azxN.js} +1 -1
- package/dist/{proof-Q781Ks5q.mjs → proof-DZCjcFCd.mjs} +3 -3
- package/dist/{send-DFV0S_n9.mjs → send-B253S5gN.mjs} +3 -3
- package/dist/sig/http.test.mjs +2 -2
- package/dist/sig/key.test.mjs +51 -1
- 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 +1 -1
- package/dist/{temporal-CyOjsqPj.mjs → temporal-d6TshGjq.mjs} +1 -1
- 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 +8 -11
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
[![npm][npm badge]][npm]
|
|
8
8
|
[![GitHub Actions][GitHub Actions badge]][GitHub Actions]
|
|
9
9
|
[![Matrix][Matrix badge]][Matrix]
|
|
10
|
-
[![@fedify@
|
|
10
|
+
[![@fedify@hackers.pub][@fedify@hackers.pub badge]][@fedify@hackers.pub]
|
|
11
11
|
|
|
12
12
|
> [!NOTE]
|
|
13
13
|
> Looking for a quick demo? Here it is: [Fedify Demo] on Deno Playground.
|
|
@@ -61,8 +61,8 @@ in the fediverse!
|
|
|
61
61
|
[GitHub Actions]: https://github.com/fedify-dev/fedify/actions/workflows/build.yaml
|
|
62
62
|
[Matrix badge]: https://img.shields.io/matrix/fedify%3Amatrix.org?logo=matrix
|
|
63
63
|
[Matrix]: https://matrix.to/#/#fedify:matrix.org
|
|
64
|
-
[@fedify@
|
|
65
|
-
[@fedify@
|
|
64
|
+
[@fedify@hackers.pub badge]: https://fedi-badge.minhee.org/@fedify@hackers.pub/followers.svg
|
|
65
|
+
[@fedify@hackers.pub]: https://hackers.pub/@fedify
|
|
66
66
|
[Fedify Demo]: https://dash.deno.com/playground/fedify-demo
|
|
67
67
|
[ActivityPub]: https://www.w3.org/TR/activitypub/
|
|
68
68
|
[fediverse]: https://en.wikipedia.org/wiki/Fediverse
|
|
@@ -215,22 +215,25 @@ financial contributors:[^2]
|
|
|
215
215
|
|
|
216
216
|
### Corporate sponsors
|
|
217
217
|
|
|
218
|
-
|
|
218
|
+
| Avatar | Name | Description |
|
|
219
|
+
| ------ | ---- | ----------- |
|
|
220
|
+
| <img src="https://images.opencollective.com/ghost/avatar/128.png" width="64" height="64"> | [Ghost](https://ghost.org) | Fiercely independent, professional publishing |
|
|
221
|
+
| <img src="https://images.opencollective.com/altstore/avatar/128.png" width="64" height="64"> | [AltStore](https://altstore.io) | |
|
|
219
222
|
|
|
220
223
|
### Supporters
|
|
221
224
|
|
|
222
|
-
- [Daniel Supernault](https://pixelfed.org/)
|
|
223
225
|
- [tkgka](https://opencollective.com/tkgka)
|
|
224
226
|
- [Blaine](https://opencollective.com/blaine)
|
|
225
227
|
- [Erick González Aguilar](https://opencollective.com/erick-gonzalez-aguilar)
|
|
228
|
+
- [Daniel Supernault](https://pixelfed.org/)
|
|
226
229
|
|
|
227
230
|
### Backers
|
|
228
231
|
|
|
229
|
-
Robin Riley,
|
|
232
|
+
Robin Riley, Encyclia, taye, box464, Evan Prodromou, okin, yamanoku, malte, Rafael Goulart, Andy Piper
|
|
230
233
|
|
|
231
234
|
### One-time donations
|
|
232
235
|
|
|
233
|
-
Robin Riley,
|
|
236
|
+
Robin Riley, malte, Nils Bergmann, Markus P, Rameez
|
|
234
237
|
|
|
235
238
|
<!-- /DO NOT EDIT -->
|
|
236
239
|
|
|
@@ -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-nexucTAX.mjs";
|
|
5
5
|
import { t as ActivityListenerSet } from "./activity-listener-BeTGV3wc.mjs";
|
|
6
6
|
import { getLogger } from "@logtape/logtape";
|
|
7
7
|
import { Router, RouterError, assertPath } from "@fedify/uri-template";
|
|
@@ -82,7 +82,7 @@ var FederationBuilderImpl = class {
|
|
|
82
82
|
* specified.
|
|
83
83
|
*/
|
|
84
84
|
async build(options) {
|
|
85
|
-
const { FederationImpl } = await import("./middleware-
|
|
85
|
+
const { FederationImpl } = await import("./middleware-CQlq6ykI.mjs");
|
|
86
86
|
const f = new FederationImpl(options);
|
|
87
87
|
const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
|
|
88
88
|
f.router = this.router.clone();
|
|
@@ -5,7 +5,7 @@ import { t as MemoryKvStore } from "../kv-CIvR3Non.mjs";
|
|
|
5
5
|
import { t as assertEquals } from "../assert_equals-PBVKNMJd.mjs";
|
|
6
6
|
import { t as assertInstanceOf } from "../assert_instance_of-CxoC8bVq.mjs";
|
|
7
7
|
import { t as assert } from "../assert-DvVHoIZ0.mjs";
|
|
8
|
-
import { b as autoIdAssigner, n as FederationImpl, y as actorDehydrator } from "../middleware-
|
|
8
|
+
import { b as autoIdAssigner, n as FederationImpl, y as actorDehydrator } from "../middleware-Dl2nyVgB.mjs";
|
|
9
9
|
import { Follow, Person } from "@fedify/vocab";
|
|
10
10
|
import { test } from "@fedify/fixture";
|
|
11
11
|
//#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 { n as doubleKnock } from "./http-
|
|
4
|
+
import { o as validateCryptoKey } from "./key-CGrr6-I2.mjs";
|
|
5
|
+
import { n as doubleKnock } from "./http-inQqS3yx.mjs";
|
|
6
6
|
import { getLogger } from "@logtape/logtape";
|
|
7
7
|
import { curry } from "es-toolkit";
|
|
8
8
|
import { UrlError, createActivityPubRequest, getRemoteDocument, logRequest, validatePublicUrl } from "@fedify/vocab-runtime";
|
|
@@ -5,7 +5,7 @@ import { t as MemoryKvStore } from "../kv-CIvR3Non.mjs";
|
|
|
5
5
|
import { t as assertEquals } from "../assert_equals-PBVKNMJd.mjs";
|
|
6
6
|
import { r as assertExists } from "../std__assert-Dh6uLf_q.mjs";
|
|
7
7
|
import { t as assertThrows } from "../assert_throws-zN79lgIC.mjs";
|
|
8
|
-
import { r as createFederationBuilder } from "../builder-
|
|
8
|
+
import { r as createFederationBuilder } from "../builder-DlWCek6Z.mjs";
|
|
9
9
|
import { DisallowedOperatorError, DisallowedVarSpecModifierError, DuplicateRouteVariableError, RouteTemplateOptionsNotMatchedError, RouterError } from "@fedify/uri-template";
|
|
10
10
|
import { Activity, Note, Person } from "@fedify/vocab";
|
|
11
11
|
import { test } from "@fedify/fixture";
|
|
@@ -9,10 +9,10 @@ import { n as assertGreaterOrEqual, t as assertRejects } from "../assert_rejects
|
|
|
9
9
|
import { t as assertInstanceOf } from "../assert_instance_of-CxoC8bVq.mjs";
|
|
10
10
|
import { t as assert } from "../assert-DvVHoIZ0.mjs";
|
|
11
11
|
import { r as parseAcceptSignature } from "../accept-CgDcxvjV.mjs";
|
|
12
|
-
import { s as signRequest } from "../http-
|
|
12
|
+
import { s as signRequest } from "../http-inQqS3yx.mjs";
|
|
13
13
|
import { a as rsaPrivateKey3, c as rsaPublicKey3, s as rsaPublicKey2 } from "../keys-CSYsOMFG.mjs";
|
|
14
|
-
import { a as compactJsonLd, p as signJsonLd } from "../ld-
|
|
15
|
-
import { c as handleActor, d as handleInbox, f as handleObject, h as respondWithObjectIfAcceptable, l as handleCollection, m as respondWithObject, o as createFederation, p as handleOutbox, u as handleCustomCollection } from "../middleware-
|
|
14
|
+
import { a as compactJsonLd, p as signJsonLd } from "../ld-fnWaNT8y.mjs";
|
|
15
|
+
import { c as handleActor, d as handleInbox, f as handleObject, h as respondWithObjectIfAcceptable, l as handleCollection, m as respondWithObject, o as createFederation, p as handleOutbox, u as handleCustomCollection } from "../middleware-Dl2nyVgB.mjs";
|
|
16
16
|
import { t as ActivityListenerSet } from "../activity-listener-BeTGV3wc.mjs";
|
|
17
17
|
import { Activity, Create, Note, Person, Tombstone } from "@fedify/vocab";
|
|
18
18
|
import { createTestMeterProvider, createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
@@ -5,8 +5,8 @@ import { t as MemoryKvStore } from "../kv-CIvR3Non.mjs";
|
|
|
5
5
|
import { t as assertEquals } from "../assert_equals-PBVKNMJd.mjs";
|
|
6
6
|
import "../std__assert-Dh6uLf_q.mjs";
|
|
7
7
|
import { n as ed25519PrivateKey, r as ed25519PublicKey, t as ed25519Multikey } from "../keys-CSYsOMFG.mjs";
|
|
8
|
-
import { r as signObject } from "../proof-
|
|
9
|
-
import { o as createFederation } from "../middleware-
|
|
8
|
+
import { r as signObject } from "../proof-DZCjcFCd.mjs";
|
|
9
|
+
import { o as createFederation } from "../middleware-Dl2nyVgB.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-PBVKNMJd.mjs";
|
|
5
5
|
import "../std__assert-Dh6uLf_q.mjs";
|
|
6
6
|
import { t as assertRejects } from "../assert_rejects-DAdaaIWM.mjs";
|
|
7
|
-
import { _ as recordKeyLookup, a as instrumentDocumentLoader, b as recordWebFingerHandle, c as recordCircuitBreakerStateChange, d as recordCollectionRequest, f as recordCollectionTotalItems, g as recordInboxActivity, h as recordFanoutRecipients, i as getRemoteHost, l as recordCollectionDispatchDuration, m as recordDocumentFetch, p as recordDocumentCache, r as getFederationMetrics, t as classifyFetchError, u as recordCollectionPageItems, v as recordOutboxActivity, x as registerQueueDepthGauge, y as recordOutboxEnqueue } from "../metrics-
|
|
7
|
+
import { _ as recordKeyLookup, a as instrumentDocumentLoader, b as recordWebFingerHandle, c as recordCircuitBreakerStateChange, d as recordCollectionRequest, f as recordCollectionTotalItems, g as recordInboxActivity, h as recordFanoutRecipients, i as getRemoteHost, l as recordCollectionDispatchDuration, m as recordDocumentFetch, p as recordDocumentCache, r as getFederationMetrics, t as classifyFetchError, u as recordCollectionPageItems, v as recordOutboxActivity, x as registerQueueDepthGauge, y as recordOutboxEnqueue } from "../metrics-C5hMINAa.mjs";
|
|
8
8
|
import { createTestMeterProvider, test } from "@fedify/fixture";
|
|
9
9
|
import { FetchError } from "@fedify/vocab-runtime";
|
|
10
10
|
import { DataPointType, MeterProvider, MetricReader } from "@opentelemetry/sdk-metrics";
|
|
@@ -12,14 +12,14 @@ import { t as assertThrows } from "../assert_throws-zN79lgIC.mjs";
|
|
|
12
12
|
import { t as assertNotEquals } from "../assert_not_equals-C8vcTTA3.mjs";
|
|
13
13
|
import { t as assertStrictEquals } from "../assert_strict_equals-BzqyKuYL.mjs";
|
|
14
14
|
import { t as assert } from "../assert-DvVHoIZ0.mjs";
|
|
15
|
-
import { g as recordInboxActivity } from "../metrics-
|
|
16
|
-
import { l as verifyRequest, s as signRequest } from "../http-
|
|
15
|
+
import { g as recordInboxActivity } from "../metrics-C5hMINAa.mjs";
|
|
16
|
+
import { l as verifyRequest, s as signRequest } from "../http-inQqS3yx.mjs";
|
|
17
17
|
import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CSYsOMFG.mjs";
|
|
18
|
-
import { t as getAuthenticatedDocumentLoader } from "../docloader-
|
|
19
|
-
import { a as compactJsonLd, h as verifyJsonLd, p as signJsonLd, s as detachSignature } from "../ld-
|
|
20
|
-
import { t as doesActorOwnKey } from "../owner-
|
|
21
|
-
import { i as verifyObject, r as signObject } from "../proof-
|
|
22
|
-
import { g as handleBenchmarkTrigger, i as KvSpecDeterminer, n as FederationImpl, o as createFederation, r as InboxContextImpl, t as ContextImpl } from "../middleware-
|
|
18
|
+
import { t as getAuthenticatedDocumentLoader } from "../docloader-DAdEN549.mjs";
|
|
19
|
+
import { a as compactJsonLd, h as verifyJsonLd, p as signJsonLd, s as detachSignature } from "../ld-fnWaNT8y.mjs";
|
|
20
|
+
import { t as doesActorOwnKey } from "../owner-Bq2eZyO_.mjs";
|
|
21
|
+
import { i as verifyObject, r as signObject } from "../proof-DZCjcFCd.mjs";
|
|
22
|
+
import { g as handleBenchmarkTrigger, i as KvSpecDeterminer, n as FederationImpl, o as createFederation, r as InboxContextImpl, t as ContextImpl } from "../middleware-Dl2nyVgB.mjs";
|
|
23
23
|
import { t as CircuitBreaker } from "../circuit-breaker-hJBB6jwA.mjs";
|
|
24
24
|
import { t as TaskCodec } from "../codec-CmlPqjNX.mjs";
|
|
25
25
|
import { configure, reset } from "@logtape/logtape";
|
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-DeVzbg1I.cjs");
|
|
6
6
|
let _logtape_logtape = require("@logtape/logtape");
|
|
7
7
|
let _fedify_uri_template = require("@fedify/uri-template");
|
|
8
8
|
let es_toolkit = require("es-toolkit");
|
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 ParallelMessageQueue, c as respondWithObject, d as digest, f as CircuitBreaker, h as createFederationBuilder, i as InProcessMessageQueue, l as respondWithObjectIfAcceptable, m as parseCircuitBreakerKvState, o as createExponentialBackoffPolicy, p as normalizeCircuitBreakerOptions, r as handleWebFinger, s as SendActivityError, t as createFederation, u as buildCollectionSynchronizationHeader } from "../middleware-
|
|
3
|
+
import { a as ParallelMessageQueue, c as respondWithObject, d as digest, f as CircuitBreaker, h as createFederationBuilder, i as InProcessMessageQueue, l as respondWithObjectIfAcceptable, m as parseCircuitBreakerKvState, o as createExponentialBackoffPolicy, p as normalizeCircuitBreakerOptions, r as handleWebFinger, s as SendActivityError, t as createFederation, u as buildCollectionSynchronizationHeader } from "../middleware-vQ_ZpgcX.js";
|
|
4
4
|
import { getLogger } from "@logtape/logtape";
|
|
5
5
|
import { Router as Router$1, RouterError as RouterError$1, assertPath, isPath } from "@fedify/uri-template";
|
|
6
6
|
import { isEqual } from "es-toolkit";
|
|
@@ -8,10 +8,10 @@ import { n as assertGreaterOrEqual, r as assertFalse, t as assertRejects } from
|
|
|
8
8
|
import { t as assertInstanceOf } from "../assert_instance_of-CxoC8bVq.mjs";
|
|
9
9
|
import { t as assertNotEquals } from "../assert_not_equals-C8vcTTA3.mjs";
|
|
10
10
|
import { t as assert } from "../assert-DvVHoIZ0.mjs";
|
|
11
|
-
import { l as verifyRequest } from "../http-
|
|
11
|
+
import { l as verifyRequest } from "../http-inQqS3yx.mjs";
|
|
12
12
|
import { i as rsaPrivateKey2, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CSYsOMFG.mjs";
|
|
13
|
-
import { t as doesActorOwnKey } from "../owner-
|
|
14
|
-
import { n as extractInboxes, r as sendActivity, t as SendActivityError } from "../send-
|
|
13
|
+
import { t as doesActorOwnKey } from "../owner-Bq2eZyO_.mjs";
|
|
14
|
+
import { n as extractInboxes, r as sendActivity, t as SendActivityError } from "../send-B253S5gN.mjs";
|
|
15
15
|
import { Activity, Application, Endpoints, Group, Person, Service } from "@fedify/vocab";
|
|
16
16
|
import { createTestMeterProvider, createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
17
17
|
import { FetchError } from "@fedify/vocab-runtime";
|
|
@@ -3,7 +3,7 @@ import "urlpattern-polyfill";
|
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
4
|
import { t as MemoryKvStore } from "../../kv-CIvR3Non.mjs";
|
|
5
5
|
import { a as numberSchema, i as makeSchema, n as baseOptions, o as stringSchema, t as MockQueue } from "../../testing-Dy-WhqpN.mjs";
|
|
6
|
-
import { o as createFederation } from "../../middleware-
|
|
6
|
+
import { o as createFederation } from "../../middleware-Dl2nyVgB.mjs";
|
|
7
7
|
import { n as ParallelMessageQueue } from "../../mq-03vS-C9P.mjs";
|
|
8
8
|
import { configure, reset } from "@logtape/logtape";
|
|
9
9
|
import { delay } from "es-toolkit";
|
|
@@ -2,8 +2,8 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
4
|
import { a as numberSchema, i as makeSchema, n as baseOptions, o as stringSchema, t as MockQueue } from "../../testing-Dy-WhqpN.mjs";
|
|
5
|
-
import { o as createFederation } from "../../middleware-
|
|
6
|
-
import { r as createFederationBuilder } from "../../builder-
|
|
5
|
+
import { o as createFederation } from "../../middleware-Dl2nyVgB.mjs";
|
|
6
|
+
import { r as createFederationBuilder } from "../../builder-DlWCek6Z.mjs";
|
|
7
7
|
import { t as TaskCodec } from "../../codec-CmlPqjNX.mjs";
|
|
8
8
|
import { t as InProcessMessageQueue } from "../../mq-03vS-C9P.mjs";
|
|
9
9
|
import { Note } from "@fedify/vocab";
|
|
@@ -4,7 +4,7 @@ globalThis.addEventListener = () => {};
|
|
|
4
4
|
import "../std__assert-Dh6uLf_q.mjs";
|
|
5
5
|
import { r as assertFalse } from "../assert_rejects-DAdaaIWM.mjs";
|
|
6
6
|
import { t as assert } from "../assert-DvVHoIZ0.mjs";
|
|
7
|
-
import { t as hasMalformedKnownTemporalLiteral } from "../temporal-
|
|
7
|
+
import { t as hasMalformedKnownTemporalLiteral } from "../temporal-d6TshGjq.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 () => {
|
|
@@ -6,7 +6,7 @@ import { t as MemoryKvStore } from "../kv-CIvR3Non.mjs";
|
|
|
6
6
|
import { t as assertEquals } from "../assert_equals-PBVKNMJd.mjs";
|
|
7
7
|
import "../std__assert-Dh6uLf_q.mjs";
|
|
8
8
|
import { t as assertNotEquals } from "../assert_not_equals-C8vcTTA3.mjs";
|
|
9
|
-
import { o as createFederation, s as handleWebFinger } from "../middleware-
|
|
9
|
+
import { o as createFederation, s as handleWebFinger } from "../middleware-Dl2nyVgB.mjs";
|
|
10
10
|
import { Image, Link, Person, Tombstone } from "@fedify/vocab";
|
|
11
11
|
import { createTestMeterProvider, test } from "@fedify/fixture";
|
|
12
12
|
//#region src/federation/webfinger.test.ts
|
|
@@ -11,7 +11,7 @@ let _opentelemetry_semantic_conventions = require("@opentelemetry/semantic-conve
|
|
|
11
11
|
let byte_encodings_base64 = require("byte-encodings/base64");
|
|
12
12
|
//#region deno.json
|
|
13
13
|
var name = "@fedify/fedify";
|
|
14
|
-
var version = "2.4.0-dev.
|
|
14
|
+
var version = "2.4.0-dev.1508+68519bf4";
|
|
15
15
|
//#endregion
|
|
16
16
|
//#region src/sig/accept.ts
|
|
17
17
|
/**
|
|
@@ -1201,21 +1201,31 @@ async function resolveFetchedKey(document, cacheKey, keyId, cls, { documentLoade
|
|
|
1201
1201
|
const keys = cls === _fedify_vocab.CryptographicKey ? object.getPublicKeys({
|
|
1202
1202
|
documentLoader,
|
|
1203
1203
|
contextLoader,
|
|
1204
|
+
suppressError: true,
|
|
1204
1205
|
tracerProvider
|
|
1205
1206
|
}) : object.getAssertionMethods({
|
|
1206
1207
|
documentLoader,
|
|
1207
1208
|
contextLoader,
|
|
1209
|
+
suppressError: true,
|
|
1208
1210
|
tracerProvider
|
|
1209
1211
|
});
|
|
1210
1212
|
let length = 0;
|
|
1211
1213
|
let lastKey = null;
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1214
|
+
try {
|
|
1215
|
+
for await (const k of keys) {
|
|
1216
|
+
length++;
|
|
1217
|
+
lastKey = k;
|
|
1218
|
+
if (k.id?.href === keyId) {
|
|
1219
|
+
key = k;
|
|
1220
|
+
break;
|
|
1221
|
+
}
|
|
1218
1222
|
}
|
|
1223
|
+
} catch (e) {
|
|
1224
|
+
if (!(e instanceof TypeError)) throw e;
|
|
1225
|
+
logger.debug("Failed to verify; a malformed key was encountered while iterating the keys of {keyId}; treating it as a missing key: {error}", {
|
|
1226
|
+
keyId,
|
|
1227
|
+
error: e
|
|
1228
|
+
});
|
|
1219
1229
|
}
|
|
1220
1230
|
const keyIdUrl = new URL(keyId);
|
|
1221
1231
|
if (key == null && keyIdUrl.hash === "" && length === 1) key = lastKey;
|
|
@@ -10,7 +10,7 @@ import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL } fro
|
|
|
10
10
|
import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
|
|
11
11
|
//#region deno.json
|
|
12
12
|
var name = "@fedify/fedify";
|
|
13
|
-
var version = "2.4.0-dev.
|
|
13
|
+
var version = "2.4.0-dev.1508+68519bf4";
|
|
14
14
|
//#endregion
|
|
15
15
|
//#region src/sig/accept.ts
|
|
16
16
|
/**
|
|
@@ -1200,21 +1200,31 @@ async function resolveFetchedKey(document, cacheKey, keyId, cls, { documentLoade
|
|
|
1200
1200
|
const keys = cls === CryptographicKey ? object.getPublicKeys({
|
|
1201
1201
|
documentLoader,
|
|
1202
1202
|
contextLoader,
|
|
1203
|
+
suppressError: true,
|
|
1203
1204
|
tracerProvider
|
|
1204
1205
|
}) : object.getAssertionMethods({
|
|
1205
1206
|
documentLoader,
|
|
1206
1207
|
contextLoader,
|
|
1208
|
+
suppressError: true,
|
|
1207
1209
|
tracerProvider
|
|
1208
1210
|
});
|
|
1209
1211
|
let length = 0;
|
|
1210
1212
|
let lastKey = null;
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1213
|
+
try {
|
|
1214
|
+
for await (const k of keys) {
|
|
1215
|
+
length++;
|
|
1216
|
+
lastKey = k;
|
|
1217
|
+
if (k.id?.href === keyId) {
|
|
1218
|
+
key = k;
|
|
1219
|
+
break;
|
|
1220
|
+
}
|
|
1217
1221
|
}
|
|
1222
|
+
} catch (e) {
|
|
1223
|
+
if (!(e instanceof TypeError)) throw e;
|
|
1224
|
+
logger.debug("Failed to verify; a malformed key was encountered while iterating the keys of {keyId}; treating it as a missing key: {error}", {
|
|
1225
|
+
keyId,
|
|
1226
|
+
error: e
|
|
1227
|
+
});
|
|
1218
1228
|
}
|
|
1219
1229
|
const keyIdUrl = new URL(keyId);
|
|
1220
1230
|
if (key == null && keyIdUrl.hash === "" && length === 1) key = lastKey;
|
|
@@ -1,10 +1,10 @@
|
|
|
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 { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-
|
|
4
|
+
import { n as version, t as name } from "./deno-nexucTAX.mjs";
|
|
5
|
+
import { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-C5hMINAa.mjs";
|
|
6
6
|
import { i as validateAcceptSignature, n as fulfillAcceptSignature, r as parseAcceptSignature } from "./accept-CgDcxvjV.mjs";
|
|
7
|
-
import { o as validateCryptoKey, r as fetchKeyDetailed } from "./key-
|
|
7
|
+
import { o as validateCryptoKey, r as fetchKeyDetailed } from "./key-CGrr6-I2.mjs";
|
|
8
8
|
import { getLogger } from "@logtape/logtape";
|
|
9
9
|
import { CryptographicKey } from "@fedify/vocab";
|
|
10
10
|
import { SpanStatusCode, trace } from "@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 { _ as recordKeyLookup, n as getDurationMs, t as classifyFetchError } from "./metrics-
|
|
4
|
+
import { n as version, t as name } from "./deno-nexucTAX.mjs";
|
|
5
|
+
import { _ as recordKeyLookup, n as getDurationMs, t as classifyFetchError } from "./metrics-C5hMINAa.mjs";
|
|
6
6
|
import { getLogger } from "@logtape/logtape";
|
|
7
7
|
import { CryptographicKey, Object as Object$1, isActor } from "@fedify/vocab";
|
|
8
8
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
@@ -248,21 +248,31 @@ async function resolveFetchedKey(document, cacheKey, keyId, cls, { documentLoade
|
|
|
248
248
|
const keys = cls === CryptographicKey ? object.getPublicKeys({
|
|
249
249
|
documentLoader,
|
|
250
250
|
contextLoader,
|
|
251
|
+
suppressError: true,
|
|
251
252
|
tracerProvider
|
|
252
253
|
}) : object.getAssertionMethods({
|
|
253
254
|
documentLoader,
|
|
254
255
|
contextLoader,
|
|
256
|
+
suppressError: true,
|
|
255
257
|
tracerProvider
|
|
256
258
|
});
|
|
257
259
|
let length = 0;
|
|
258
260
|
let lastKey = null;
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
261
|
+
try {
|
|
262
|
+
for await (const k of keys) {
|
|
263
|
+
length++;
|
|
264
|
+
lastKey = k;
|
|
265
|
+
if (k.id?.href === keyId) {
|
|
266
|
+
key = k;
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
265
269
|
}
|
|
270
|
+
} catch (e) {
|
|
271
|
+
if (!(e instanceof TypeError)) throw e;
|
|
272
|
+
logger.debug("Failed to verify; a malformed key was encountered while iterating the keys of {keyId}; treating it as a missing key: {error}", {
|
|
273
|
+
keyId,
|
|
274
|
+
error: e
|
|
275
|
+
});
|
|
266
276
|
}
|
|
267
277
|
const keyIdUrl = new URL(keyId);
|
|
268
278
|
if (key == null && keyIdUrl.hash === "" && length === 1) key = lastKey;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
|
-
import { C as recordDocumentCache, d as validateCryptoKey, t as doubleKnock } from "./http-
|
|
3
|
+
import { C as recordDocumentCache, d as validateCryptoKey, t as doubleKnock } from "./http-Dv3147TL.js";
|
|
4
4
|
import { getLogger } from "@logtape/logtape";
|
|
5
5
|
import { curry } from "es-toolkit";
|
|
6
6
|
import { UrlError, createActivityPubRequest, getRemoteDocument, logRequest, preloadedContexts, validatePublicUrl } from "@fedify/vocab-runtime";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { p as recordDocumentCache } from "./metrics-
|
|
4
|
+
import { p as recordDocumentCache } from "./metrics-C5hMINAa.mjs";
|
|
5
5
|
import { getLogger } from "@logtape/logtape";
|
|
6
6
|
import { preloadedContexts } from "@fedify/vocab-runtime";
|
|
7
7
|
//#region src/utils/kv-cache.ts
|
|
@@ -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-BCj9dlA_.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,9 +1,9 @@
|
|
|
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 getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-
|
|
6
|
-
import { n as fetchKey, o as validateCryptoKey } from "./key-
|
|
4
|
+
import { n as version, t as name } from "./deno-nexucTAX.mjs";
|
|
5
|
+
import { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-C5hMINAa.mjs";
|
|
6
|
+
import { n as fetchKey, o as validateCryptoKey } from "./key-CGrr6-I2.mjs";
|
|
7
7
|
import { getLogger } from "@logtape/logtape";
|
|
8
8
|
import { Activity, CryptographicKey, Object as Object$1, getTypeId } from "@fedify/vocab";
|
|
9
9
|
import { SpanStatusCode, trace } from "@opentelemetry/api";
|
|
@@ -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-nexucTAX.mjs";
|
|
5
5
|
import { metrics } from "@opentelemetry/api";
|
|
6
6
|
import { FetchError } from "@fedify/vocab-runtime";
|
|
7
7
|
//#region src/federation/metrics.ts
|
|
@@ -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-
|
|
6
|
-
const require_proof = require("./proof-
|
|
5
|
+
const require_http = require("./http-BCj9dlA_.cjs");
|
|
6
|
+
const require_proof = require("./proof-Buz7I8wj.cjs");
|
|
7
7
|
const require_types = require("./types-KC4QAoxe.cjs");
|
|
8
|
-
const require_kv_cache = require("./kv-cache-
|
|
8
|
+
const require_kv_cache = require("./kv-cache-c8X6svwE.cjs");
|
|
9
9
|
let _logtape_logtape = require("@logtape/logtape");
|
|
10
10
|
let _fedify_uri_template = require("@fedify/uri-template");
|
|
11
11
|
let _fedify_vocab = require("@fedify/vocab");
|
|
@@ -4404,6 +4404,15 @@ function isPermanentRemoteContextError(error) {
|
|
|
4404
4404
|
function isPermanentInboxParseError(error) {
|
|
4405
4405
|
return error instanceof Error && (error.name === "UnsafeJsonLdError" || error instanceof require_proof.InvalidContextReferenceError || isPermanentRemoteContextError(error) || error.name === "jsonld.SyntaxError" && !isRemoteContextLoadingFailure(error)) || error instanceof TypeError && (/^(Invalid JSON-LD:|Invalid type:|Unexpected type:|Invalid @id:)/.test(error.message) || require_proof.isInvalidUrlTypeError(error));
|
|
4406
4406
|
}
|
|
4407
|
+
function hasLinkedDataSignatureJsonLdProcessingError(error) {
|
|
4408
|
+
if (error.message.startsWith("Maximum deep iterations exceeded")) return true;
|
|
4409
|
+
const cause = error.cause instanceof Error ? error.cause : error.details?.cause;
|
|
4410
|
+
if (error.name === "jsonld.InvalidUrl" && error.details?.code === "loading remote context failed" && cause instanceof Error) return cause.message.startsWith("Maximum deep iterations exceeded") || cause.name.startsWith("jsonld.");
|
|
4411
|
+
return error.name !== "jsonld.InvalidUrl" && error.name.startsWith("jsonld.");
|
|
4412
|
+
}
|
|
4413
|
+
function isLinkedDataSignatureJsonLdProcessingError(error) {
|
|
4414
|
+
return error instanceof Error && hasLinkedDataSignatureJsonLdProcessingError(error);
|
|
4415
|
+
}
|
|
4407
4416
|
/**
|
|
4408
4417
|
* Create a new {@link Federation} instance.
|
|
4409
4418
|
* @param options Parameters for initializing the instance.
|
|
@@ -5523,10 +5532,18 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
5523
5532
|
privateKey: pair.privateKey
|
|
5524
5533
|
}))
|
|
5525
5534
|
});
|
|
5526
|
-
else
|
|
5527
|
-
|
|
5528
|
-
|
|
5529
|
-
|
|
5535
|
+
else try {
|
|
5536
|
+
jsonLd = await require_proof.signJsonLd(jsonLd, rsaKey.privateKey, rsaKey.keyId, {
|
|
5537
|
+
contextLoader,
|
|
5538
|
+
tracerProvider: this.tracerProvider
|
|
5539
|
+
});
|
|
5540
|
+
} catch (error) {
|
|
5541
|
+
if (!isLinkedDataSignatureJsonLdProcessingError(error)) throw error;
|
|
5542
|
+
logger.warn("Failed to create a Linked Data signature for the activity {activityId}. The activity will be sent without a Linked Data signature.", {
|
|
5543
|
+
activityId,
|
|
5544
|
+
error
|
|
5545
|
+
});
|
|
5546
|
+
}
|
|
5530
5547
|
if (!hasProof) logger.warn("No supported key found to create a proof for the activity {activityId}. The activity will be sent without a proof. In order to create a proof, at least one Ed25519 key must be provided.", {
|
|
5531
5548
|
activityId,
|
|
5532
5549
|
keys: keys.map((pair) => ({
|
|
@@ -1,26 +1,26 @@
|
|
|
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 { a as instrumentDocumentLoader, b as recordWebFingerHandle, c as recordCircuitBreakerStateChange, d as recordCollectionRequest, f as recordCollectionTotalItems, g as recordInboxActivity, h as recordFanoutRecipients, i as getRemoteHost, l as recordCollectionDispatchDuration, n as getDurationMs, o as isAbortError, r as getFederationMetrics, u as recordCollectionPageItems, v as recordOutboxActivity, x as registerQueueDepthGauge, y as recordOutboxEnqueue } from "./metrics-
|
|
4
|
+
import { n as version, t as name } from "./deno-nexucTAX.mjs";
|
|
5
|
+
import { a as instrumentDocumentLoader, b as recordWebFingerHandle, c as recordCircuitBreakerStateChange, d as recordCollectionRequest, f as recordCollectionTotalItems, g as recordInboxActivity, h as recordFanoutRecipients, i as getRemoteHost, l as recordCollectionDispatchDuration, n as getDurationMs, o as isAbortError, r as getFederationMetrics, u as recordCollectionPageItems, v as recordOutboxActivity, x as registerQueueDepthGauge, y as recordOutboxEnqueue } from "./metrics-C5hMINAa.mjs";
|
|
6
6
|
import { t as formatAcceptSignature } from "./accept-CgDcxvjV.mjs";
|
|
7
|
-
import { a as importJwk, o as validateCryptoKey, t as exportJwk } from "./key-
|
|
8
|
-
import { l as verifyRequest, o as parseRfc9421SignatureInput, u as verifyRequestDetailed } from "./http-
|
|
9
|
-
import { t as getAuthenticatedDocumentLoader } from "./docloader-
|
|
10
|
-
import { n as kvCache } from "./kv-cache-
|
|
11
|
-
import { _ as wrapContextLoaderForJsonLd, a as compactJsonLd, c as getNormalizationContextLoader, d as isClearlyMalformedContextReference, f as isInvalidUrlTypeError, l as hasSignature, m as verifyCompactJsonLd, p as signJsonLd, r as assertSafeJsonLd, s as detachSignature, t as InvalidContextReferenceError, u as hasSignatureLike } from "./ld-
|
|
12
|
-
import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-
|
|
7
|
+
import { a as importJwk, o as validateCryptoKey, t as exportJwk } from "./key-CGrr6-I2.mjs";
|
|
8
|
+
import { l as verifyRequest, o as parseRfc9421SignatureInput, u as verifyRequestDetailed } from "./http-inQqS3yx.mjs";
|
|
9
|
+
import { t as getAuthenticatedDocumentLoader } from "./docloader-DAdEN549.mjs";
|
|
10
|
+
import { n as kvCache } from "./kv-cache-C3qkFkbt.mjs";
|
|
11
|
+
import { _ as wrapContextLoaderForJsonLd, a as compactJsonLd, c as getNormalizationContextLoader, d as isClearlyMalformedContextReference, f as isInvalidUrlTypeError, l as hasSignature, m as verifyCompactJsonLd, p as signJsonLd, r as assertSafeJsonLd, s as detachSignature, t as InvalidContextReferenceError, u as hasSignatureLike } from "./ld-fnWaNT8y.mjs";
|
|
12
|
+
import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-Bq2eZyO_.mjs";
|
|
13
13
|
import { r as normalizeOutgoingActivityJsonLd } from "./outgoing-jsonld-BNL8AC14.mjs";
|
|
14
|
-
import { i as verifyObject, n as hasProofLike, r as signObject } from "./proof-
|
|
14
|
+
import { i as verifyObject, n as hasProofLike, r as signObject } from "./proof-DZCjcFCd.mjs";
|
|
15
15
|
import { t as getNodeInfo } from "./client-B_A6mfn3.mjs";
|
|
16
16
|
import { t as nodeInfoToJson } from "./types-BFowWFTT.mjs";
|
|
17
|
-
import { n as extractInboxes, r as sendActivity, t as SendActivityError } from "./send-
|
|
18
|
-
import { n as FederationBuilderImpl, t as ACTOR_ALIAS_PREFIX } from "./builder-
|
|
17
|
+
import { n as extractInboxes, r as sendActivity, t as SendActivityError } from "./send-B253S5gN.mjs";
|
|
18
|
+
import { n as FederationBuilderImpl, t as ACTOR_ALIAS_PREFIX } from "./builder-DlWCek6Z.mjs";
|
|
19
19
|
import { t as CircuitBreaker } from "./circuit-breaker-hJBB6jwA.mjs";
|
|
20
20
|
import { t as buildCollectionSynchronizationHeader } from "./collection-Dp5ky45w.mjs";
|
|
21
21
|
import { t as KvKeyCache } from "./keycache-CaOR6NYg.mjs";
|
|
22
22
|
import { t as acceptsJsonLd } from "./negotiation-m_L2nyS3.mjs";
|
|
23
|
-
import { t as hasMalformedKnownTemporalLiteral } from "./temporal-
|
|
23
|
+
import { t as hasMalformedKnownTemporalLiteral } from "./temporal-d6TshGjq.mjs";
|
|
24
24
|
import { t as createExponentialBackoffPolicy } from "./retry-DI4O-zYl.mjs";
|
|
25
25
|
import { t as TaskCodec } from "./codec-CmlPqjNX.mjs";
|
|
26
26
|
import { n as ParallelMessageQueue } from "./mq-03vS-C9P.mjs";
|
|
@@ -2548,6 +2548,15 @@ function isPermanentRemoteContextError(error) {
|
|
|
2548
2548
|
function isPermanentInboxParseError(error) {
|
|
2549
2549
|
return error instanceof Error && (error.name === "UnsafeJsonLdError" || error instanceof InvalidContextReferenceError || isPermanentRemoteContextError(error) || error.name === "jsonld.SyntaxError" && !isRemoteContextLoadingFailure(error)) || error instanceof TypeError && (/^(Invalid JSON-LD:|Invalid type:|Unexpected type:|Invalid @id:)/.test(error.message) || isInvalidUrlTypeError(error));
|
|
2550
2550
|
}
|
|
2551
|
+
function hasLinkedDataSignatureJsonLdProcessingError(error) {
|
|
2552
|
+
if (error.message.startsWith("Maximum deep iterations exceeded")) return true;
|
|
2553
|
+
const cause = error.cause instanceof Error ? error.cause : error.details?.cause;
|
|
2554
|
+
if (error.name === "jsonld.InvalidUrl" && error.details?.code === "loading remote context failed" && cause instanceof Error) return cause.message.startsWith("Maximum deep iterations exceeded") || cause.name.startsWith("jsonld.");
|
|
2555
|
+
return error.name !== "jsonld.InvalidUrl" && error.name.startsWith("jsonld.");
|
|
2556
|
+
}
|
|
2557
|
+
function isLinkedDataSignatureJsonLdProcessingError(error) {
|
|
2558
|
+
return error instanceof Error && hasLinkedDataSignatureJsonLdProcessingError(error);
|
|
2559
|
+
}
|
|
2551
2560
|
/**
|
|
2552
2561
|
* Create a new {@link Federation} instance.
|
|
2553
2562
|
* @param options Parameters for initializing the instance.
|
|
@@ -3667,10 +3676,18 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
3667
3676
|
privateKey: pair.privateKey
|
|
3668
3677
|
}))
|
|
3669
3678
|
});
|
|
3670
|
-
else
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3679
|
+
else try {
|
|
3680
|
+
jsonLd = await signJsonLd(jsonLd, rsaKey.privateKey, rsaKey.keyId, {
|
|
3681
|
+
contextLoader,
|
|
3682
|
+
tracerProvider: this.tracerProvider
|
|
3683
|
+
});
|
|
3684
|
+
} catch (error) {
|
|
3685
|
+
if (!isLinkedDataSignatureJsonLdProcessingError(error)) throw error;
|
|
3686
|
+
logger.warn("Failed to create a Linked Data signature for the activity {activityId}. The activity will be sent without a Linked Data signature.", {
|
|
3687
|
+
activityId,
|
|
3688
|
+
error
|
|
3689
|
+
});
|
|
3690
|
+
}
|
|
3674
3691
|
if (!hasProof) logger.warn("No supported key found to create a proof for the activity {activityId}. The activity will be sent without a proof. In order to create a proof, at least one Ed25519 key must be provided.", {
|
|
3675
3692
|
activityId,
|
|
3676
3693
|
keys: keys.map((pair) => ({
|
|
@@ -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 { A as formatAcceptSignature, D as recordOutboxEnqueue, E as recordOutboxActivity, F as version, O as recordWebFingerHandle, P as name, S as recordCollectionTotalItems, T as recordInboxActivity, a as verifyRequestDetailed, b as recordCollectionPageItems, d as validateCryptoKey, f as getDurationMs, g as isAbortError, h as instrumentDocumentLoader, i as verifyRequest, k as registerQueueDepthGauge, m as getRemoteHost, n as parseRfc9421SignatureInput, o as exportJwk, p as getFederationMetrics, t as doubleKnock, u as importJwk, v as recordCircuitBreakerStateChange, w as recordFanoutRecipients, x as recordCollectionRequest, y as recordCollectionDispatchDuration } from "./http-
|
|
6
|
-
import { _ as hasSignatureLike, b as signJsonLd, c as getKeyOwner, f as compactJsonLd, g as hasSignature, h as getNormalizationContextLoader, i as verifyObject, l as InvalidContextReferenceError, m as detachSignature, n as hasProofLike, o as normalizeOutgoingActivityJsonLd, r as signObject, s as doesActorOwnKey, u as assertSafeJsonLd, v as isClearlyMalformedContextReference, w as wrapContextLoaderForJsonLd, x as verifyCompactJsonLd, y as isInvalidUrlTypeError } from "./proof-
|
|
5
|
+
import { A as formatAcceptSignature, D as recordOutboxEnqueue, E as recordOutboxActivity, F as version, O as recordWebFingerHandle, P as name, S as recordCollectionTotalItems, T as recordInboxActivity, a as verifyRequestDetailed, b as recordCollectionPageItems, d as validateCryptoKey, f as getDurationMs, g as isAbortError, h as instrumentDocumentLoader, i as verifyRequest, k as registerQueueDepthGauge, m as getRemoteHost, n as parseRfc9421SignatureInput, o as exportJwk, p as getFederationMetrics, t as doubleKnock, u as importJwk, v as recordCircuitBreakerStateChange, w as recordFanoutRecipients, x as recordCollectionRequest, y as recordCollectionDispatchDuration } from "./http-Dv3147TL.js";
|
|
6
|
+
import { _ as hasSignatureLike, b as signJsonLd, c as getKeyOwner, f as compactJsonLd, g as hasSignature, h as getNormalizationContextLoader, i as verifyObject, l as InvalidContextReferenceError, m as detachSignature, n as hasProofLike, o as normalizeOutgoingActivityJsonLd, r as signObject, s as doesActorOwnKey, u as assertSafeJsonLd, v as isClearlyMalformedContextReference, w as wrapContextLoaderForJsonLd, x as verifyCompactJsonLd, y as isInvalidUrlTypeError } from "./proof-CTG9azxN.js";
|
|
7
7
|
import { n as getNodeInfo, t as nodeInfoToJson } from "./types-CAY3OdLq.js";
|
|
8
|
-
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-
|
|
8
|
+
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-C2oTEXyb.js";
|
|
9
9
|
import { getLogger, withContext } from "@logtape/logtape";
|
|
10
10
|
import { Router, RouterError, assertPath } from "@fedify/uri-template";
|
|
11
11
|
import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, Tombstone, getTypeId, lookupObject, traverseCollection } from "@fedify/vocab";
|
|
@@ -4403,6 +4403,15 @@ function isPermanentRemoteContextError(error) {
|
|
|
4403
4403
|
function isPermanentInboxParseError(error) {
|
|
4404
4404
|
return error instanceof Error && (error.name === "UnsafeJsonLdError" || error instanceof InvalidContextReferenceError || isPermanentRemoteContextError(error) || error.name === "jsonld.SyntaxError" && !isRemoteContextLoadingFailure(error)) || error instanceof TypeError && (/^(Invalid JSON-LD:|Invalid type:|Unexpected type:|Invalid @id:)/.test(error.message) || isInvalidUrlTypeError(error));
|
|
4405
4405
|
}
|
|
4406
|
+
function hasLinkedDataSignatureJsonLdProcessingError(error) {
|
|
4407
|
+
if (error.message.startsWith("Maximum deep iterations exceeded")) return true;
|
|
4408
|
+
const cause = error.cause instanceof Error ? error.cause : error.details?.cause;
|
|
4409
|
+
if (error.name === "jsonld.InvalidUrl" && error.details?.code === "loading remote context failed" && cause instanceof Error) return cause.message.startsWith("Maximum deep iterations exceeded") || cause.name.startsWith("jsonld.");
|
|
4410
|
+
return error.name !== "jsonld.InvalidUrl" && error.name.startsWith("jsonld.");
|
|
4411
|
+
}
|
|
4412
|
+
function isLinkedDataSignatureJsonLdProcessingError(error) {
|
|
4413
|
+
return error instanceof Error && hasLinkedDataSignatureJsonLdProcessingError(error);
|
|
4414
|
+
}
|
|
4406
4415
|
/**
|
|
4407
4416
|
* Create a new {@link Federation} instance.
|
|
4408
4417
|
* @param options Parameters for initializing the instance.
|
|
@@ -5522,10 +5531,18 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
5522
5531
|
privateKey: pair.privateKey
|
|
5523
5532
|
}))
|
|
5524
5533
|
});
|
|
5525
|
-
else
|
|
5526
|
-
|
|
5527
|
-
|
|
5528
|
-
|
|
5534
|
+
else try {
|
|
5535
|
+
jsonLd = await signJsonLd(jsonLd, rsaKey.privateKey, rsaKey.keyId, {
|
|
5536
|
+
contextLoader,
|
|
5537
|
+
tracerProvider: this.tracerProvider
|
|
5538
|
+
});
|
|
5539
|
+
} catch (error) {
|
|
5540
|
+
if (!isLinkedDataSignatureJsonLdProcessingError(error)) throw error;
|
|
5541
|
+
logger.warn("Failed to create a Linked Data signature for the activity {activityId}. The activity will be sent without a Linked Data signature.", {
|
|
5542
|
+
activityId,
|
|
5543
|
+
error
|
|
5544
|
+
});
|
|
5545
|
+
}
|
|
5529
5546
|
if (!hasProof) logger.warn("No supported key found to create a proof for the activity {activityId}. The activity will be sent without a proof. In order to create a proof, at least one Ed25519 key must be provided.", {
|
|
5530
5547
|
activityId,
|
|
5531
5548
|
keys: keys.map((pair) => ({
|
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-
|
|
9
|
-
const require_proof = require("./proof-
|
|
7
|
+
const require_http = require("./http-BCj9dlA_.cjs");
|
|
8
|
+
const require_middleware = require("./middleware-DeVzbg1I.cjs");
|
|
9
|
+
const require_proof = require("./proof-Buz7I8wj.cjs");
|
|
10
10
|
const require_types = require("./types-KC4QAoxe.cjs");
|
|
11
|
-
const require_kv_cache = require("./kv-cache-
|
|
11
|
+
const require_kv_cache = require("./kv-cache-c8X6svwE.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 { A as formatAcceptSignature, M as parseAcceptSignature, N as validateAcceptSignature, a as verifyRequestDetailed, c as fetchKeyDetailed, i as verifyRequest, j as fulfillAcceptSignature, l as generateCryptoKeyPair, o as exportJwk, r as signRequest, s as fetchKey, u as importJwk } from "./http-
|
|
7
|
-
import { a as ParallelMessageQueue, c as respondWithObject, d as digest, f as CircuitBreaker, h as createFederationBuilder, i as InProcessMessageQueue, l as respondWithObjectIfAcceptable, m as parseCircuitBreakerKvState, o as createExponentialBackoffPolicy, p as normalizeCircuitBreakerOptions, r as handleWebFinger, s as SendActivityError, t as createFederation, u as buildCollectionSynchronizationHeader } from "./middleware-
|
|
8
|
-
import { C as verifySignature, S as verifyJsonLd, _ as hasSignatureLike, a as verifyProof, b as signJsonLd, c as getKeyOwner, d as attachSignature, i as verifyObject, m as detachSignature, n as hasProofLike, p as createSignature, r as signObject, s as doesActorOwnKey, t as createProof } from "./proof-
|
|
6
|
+
import { A as formatAcceptSignature, M as parseAcceptSignature, N as validateAcceptSignature, a as verifyRequestDetailed, c as fetchKeyDetailed, i as verifyRequest, j as fulfillAcceptSignature, l as generateCryptoKeyPair, o as exportJwk, r as signRequest, s as fetchKey, u as importJwk } from "./http-Dv3147TL.js";
|
|
7
|
+
import { a as ParallelMessageQueue, c as respondWithObject, d as digest, f as CircuitBreaker, h as createFederationBuilder, i as InProcessMessageQueue, l as respondWithObjectIfAcceptable, m as parseCircuitBreakerKvState, o as createExponentialBackoffPolicy, p as normalizeCircuitBreakerOptions, r as handleWebFinger, s as SendActivityError, t as createFederation, u as buildCollectionSynchronizationHeader } from "./middleware-vQ_ZpgcX.js";
|
|
8
|
+
import { C as verifySignature, S as verifyJsonLd, _ as hasSignatureLike, a as verifyProof, b as signJsonLd, c as getKeyOwner, d as attachSignature, i as verifyObject, m as detachSignature, n as hasProofLike, p as createSignature, r as signObject, s as doesActorOwnKey, t as createProof } from "./proof-CTG9azxN.js";
|
|
9
9
|
import { n as getNodeInfo, r as parseNodeInfo, t as nodeInfoToJson } from "./types-CAY3OdLq.js";
|
|
10
|
-
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-
|
|
10
|
+
import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-C2oTEXyb.js";
|
|
11
11
|
import { MemoryKvStore, Router, RouterError } from "./federation/mod.js";
|
|
12
12
|
import "./nodeinfo/mod.js";
|
|
13
13
|
import "./runtime/mod.js";
|
|
@@ -5,7 +5,7 @@ import { r as createRequestContext } from "../context-BBRTgkrs.mjs";
|
|
|
5
5
|
import { t as MemoryKvStore } from "../kv-CIvR3Non.mjs";
|
|
6
6
|
import { t as assertEquals } from "../assert_equals-PBVKNMJd.mjs";
|
|
7
7
|
import "../std__assert-Dh6uLf_q.mjs";
|
|
8
|
-
import { _ as handleNodeInfo, o as createFederation, v as handleNodeInfoJrd } from "../middleware-
|
|
8
|
+
import { _ as handleNodeInfo, o as createFederation, v as handleNodeInfoJrd } from "../middleware-Dl2nyVgB.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 "./key-
|
|
4
|
+
import { n as version, t as name } from "./deno-nexucTAX.mjs";
|
|
5
|
+
import "./key-CGrr6-I2.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,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-BCj9dlA_.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,6 +1,6 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
|
-
import { F as version, P as name, _ as measureSignatureKeyFetch, d as validateCryptoKey, f as getDurationMs, p as getFederationMetrics, s as fetchKey } from "./http-
|
|
3
|
+
import { F as version, P as name, _ as measureSignatureKeyFetch, d as validateCryptoKey, f as getDurationMs, p as getFederationMetrics, s as fetchKey } from "./http-Dv3147TL.js";
|
|
4
4
|
import { getLogger } from "@logtape/logtape";
|
|
5
5
|
import { Activity, CryptographicKey, DataIntegrityProof, Multikey, Object as Object$1, PUBLIC_COLLECTION, getTypeId, isActor } from "@fedify/vocab";
|
|
6
6
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
@@ -1,9 +1,9 @@
|
|
|
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 { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-
|
|
6
|
-
import { n as fetchKey, o as validateCryptoKey } from "./key-
|
|
4
|
+
import { n as version, t as name } from "./deno-nexucTAX.mjs";
|
|
5
|
+
import { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-C5hMINAa.mjs";
|
|
6
|
+
import { n as fetchKey, o as validateCryptoKey } from "./key-CGrr6-I2.mjs";
|
|
7
7
|
import { n as preloadedOnlyDocumentLoader } from "./public-audience-c9zmYKgA.mjs";
|
|
8
8
|
import { r as normalizeOutgoingActivityJsonLd } from "./outgoing-jsonld-BNL8AC14.mjs";
|
|
9
9
|
import { getLogger } from "@logtape/logtape";
|
|
@@ -1,9 +1,9 @@
|
|
|
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 getDurationMs, r as getFederationMetrics } from "./metrics-
|
|
6
|
-
import { n as doubleKnock } from "./http-
|
|
4
|
+
import { n as version, t as name } from "./deno-nexucTAX.mjs";
|
|
5
|
+
import { n as getDurationMs, r as getFederationMetrics } from "./metrics-C5hMINAa.mjs";
|
|
6
|
+
import { n as doubleKnock } from "./http-inQqS3yx.mjs";
|
|
7
7
|
import { getLogger } from "@logtape/logtape";
|
|
8
8
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
9
9
|
import { FetchError } from "@fedify/vocab-runtime";
|
package/dist/sig/http.test.mjs
CHANGED
|
@@ -7,8 +7,8 @@ import { r as assertExists, t as assertStringIncludes } from "../std__assert-Dh6
|
|
|
7
7
|
import { n as assertGreaterOrEqual, r as assertFalse, t as assertRejects } from "../assert_rejects-DAdaaIWM.mjs";
|
|
8
8
|
import { t as assertThrows } from "../assert_throws-zN79lgIC.mjs";
|
|
9
9
|
import { t as assert } from "../assert-DvVHoIZ0.mjs";
|
|
10
|
-
import { t as exportJwk } from "../key-
|
|
11
|
-
import { a as parseRfc9421Signature, c as timingSafeEqual, i as formatRfc9421SignatureParameters, l as verifyRequest, n as doubleKnock, o as parseRfc9421SignatureInput, r as formatRfc9421Signature, s as signRequest, t as createRfc9421SignatureBase, u as verifyRequestDetailed } from "../http-
|
|
10
|
+
import { t as exportJwk } from "../key-CGrr6-I2.mjs";
|
|
11
|
+
import { a as parseRfc9421Signature, c as timingSafeEqual, i as formatRfc9421SignatureParameters, l as verifyRequest, n as doubleKnock, o as parseRfc9421SignatureInput, r as formatRfc9421Signature, s as signRequest, t as createRfc9421SignatureBase, u as verifyRequestDetailed } from "../http-inQqS3yx.mjs";
|
|
12
12
|
import { i as rsaPrivateKey2, l as rsaPublicKey5, o as rsaPublicKey1, s as rsaPublicKey2 } from "../keys-CSYsOMFG.mjs";
|
|
13
13
|
import { createTestMeterProvider, createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
14
14
|
import { FetchError, exportSpki } from "@fedify/vocab-runtime";
|
package/dist/sig/key.test.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { t as assertEquals } from "../assert_equals-PBVKNMJd.mjs";
|
|
|
5
5
|
import "../std__assert-Dh6uLf_q.mjs";
|
|
6
6
|
import { t as assertRejects } from "../assert_rejects-DAdaaIWM.mjs";
|
|
7
7
|
import { t as assertThrows } from "../assert_throws-zN79lgIC.mjs";
|
|
8
|
-
import { a as importJwk, i as generateCryptoKeyPair, n as fetchKey, o as validateCryptoKey, r as fetchKeyDetailed, t as exportJwk } from "../key-
|
|
8
|
+
import { a as importJwk, i as generateCryptoKeyPair, n as fetchKey, o as validateCryptoKey, r as fetchKeyDetailed, t as exportJwk } from "../key-CGrr6-I2.mjs";
|
|
9
9
|
import { c as rsaPublicKey3, i as rsaPrivateKey2, o as rsaPublicKey1, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CSYsOMFG.mjs";
|
|
10
10
|
import { CryptographicKey, Multikey } from "@fedify/vocab";
|
|
11
11
|
import { createTestMeterProvider, createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
@@ -400,5 +400,55 @@ test("fetchKey() works when meterProvider is omitted", async () => {
|
|
|
400
400
|
contextLoader: mockDocumentLoader
|
|
401
401
|
})).cached, false);
|
|
402
402
|
});
|
|
403
|
+
test("fetchKey() returns null for a malformed actor publicKey", async () => {
|
|
404
|
+
const actorId = "https://example.com/malformed-public-key";
|
|
405
|
+
const keyId = "https://example.com/malformed-public-key#main-key";
|
|
406
|
+
const cache = {};
|
|
407
|
+
const options = {
|
|
408
|
+
async documentLoader(resource) {
|
|
409
|
+
if (resource === actorId) return {
|
|
410
|
+
contextUrl: null,
|
|
411
|
+
documentUrl: resource,
|
|
412
|
+
document: {
|
|
413
|
+
"@context": ["https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1"],
|
|
414
|
+
id: actorId,
|
|
415
|
+
type: "Person",
|
|
416
|
+
publicKey: keyId
|
|
417
|
+
}
|
|
418
|
+
};
|
|
419
|
+
if (resource === keyId) return {
|
|
420
|
+
contextUrl: null,
|
|
421
|
+
documentUrl: resource,
|
|
422
|
+
document: {
|
|
423
|
+
"@context": "https://w3id.org/security/v1",
|
|
424
|
+
id: keyId,
|
|
425
|
+
type: "Key",
|
|
426
|
+
owner: actorId,
|
|
427
|
+
publicKeyPem: "not a public key"
|
|
428
|
+
}
|
|
429
|
+
};
|
|
430
|
+
return await mockDocumentLoader(resource);
|
|
431
|
+
},
|
|
432
|
+
contextLoader: mockDocumentLoader,
|
|
433
|
+
keyCache: {
|
|
434
|
+
get(keyId) {
|
|
435
|
+
return Promise.resolve(cache[keyId.href]);
|
|
436
|
+
},
|
|
437
|
+
set(keyId, key) {
|
|
438
|
+
cache[keyId.href] = key;
|
|
439
|
+
return Promise.resolve();
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
};
|
|
443
|
+
assertEquals(await fetchKey(actorId, CryptographicKey, options), {
|
|
444
|
+
key: null,
|
|
445
|
+
cached: false
|
|
446
|
+
});
|
|
447
|
+
assertEquals(cache, { [actorId]: null });
|
|
448
|
+
assertEquals(await fetchKey(actorId, CryptographicKey, options), {
|
|
449
|
+
key: null,
|
|
450
|
+
cached: true
|
|
451
|
+
});
|
|
452
|
+
});
|
|
403
453
|
//#endregion
|
|
404
454
|
export {};
|
package/dist/sig/ld.test.mjs
CHANGED
|
@@ -5,9 +5,9 @@ import { t as assertEquals } from "../assert_equals-PBVKNMJd.mjs";
|
|
|
5
5
|
import { n as assertGreaterOrEqual, r as assertFalse, t as assertRejects } from "../assert_rejects-DAdaaIWM.mjs";
|
|
6
6
|
import { t as assertThrows } from "../assert_throws-zN79lgIC.mjs";
|
|
7
7
|
import { t as assert } from "../assert-DvVHoIZ0.mjs";
|
|
8
|
-
import { i as generateCryptoKeyPair } from "../key-
|
|
8
|
+
import { i as generateCryptoKeyPair } from "../key-CGrr6-I2.mjs";
|
|
9
9
|
import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CSYsOMFG.mjs";
|
|
10
|
-
import { a as compactJsonLd, f as isInvalidUrlTypeError, g as verifySignature, h as verifyJsonLd, i as attachSignature, n as UnsafeJsonLdError, o as createSignature, p as signJsonLd, s as detachSignature, u as hasSignatureLike } from "../ld-
|
|
10
|
+
import { a as compactJsonLd, f as isInvalidUrlTypeError, g as verifySignature, h as verifyJsonLd, i as attachSignature, n as UnsafeJsonLdError, o as createSignature, p as signJsonLd, s as detachSignature, u as hasSignatureLike } from "../ld-fnWaNT8y.mjs";
|
|
11
11
|
import { CryptographicKey } from "@fedify/vocab";
|
|
12
12
|
import { createTestMeterProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
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-BCj9dlA_.cjs");
|
|
5
|
+
const require_proof = require("../proof-Buz7I8wj.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 { A as formatAcceptSignature, M as parseAcceptSignature, N as validateAcceptSignature, a as verifyRequestDetailed, c as fetchKeyDetailed, i as verifyRequest, j as fulfillAcceptSignature, l as generateCryptoKeyPair, o as exportJwk, r as signRequest, s as fetchKey, u as importJwk } from "../http-
|
|
4
|
-
import { C as verifySignature, S as verifyJsonLd, _ as hasSignatureLike, a as verifyProof, b as signJsonLd, c as getKeyOwner, d as attachSignature, i as verifyObject, m as detachSignature, n as hasProofLike, p as createSignature, r as signObject, s as doesActorOwnKey, t as createProof } from "../proof-
|
|
3
|
+
import { A as formatAcceptSignature, M as parseAcceptSignature, N as validateAcceptSignature, a as verifyRequestDetailed, c as fetchKeyDetailed, i as verifyRequest, j as fulfillAcceptSignature, l as generateCryptoKeyPair, o as exportJwk, r as signRequest, s as fetchKey, u as importJwk } from "../http-Dv3147TL.js";
|
|
4
|
+
import { C as verifySignature, S as verifyJsonLd, _ as hasSignatureLike, a as verifyProof, b as signJsonLd, c as getKeyOwner, d as attachSignature, i as verifyObject, m as detachSignature, n as hasProofLike, p as createSignature, r as signObject, s as doesActorOwnKey, t as createProof } from "../proof-CTG9azxN.js";
|
|
5
5
|
export { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, exportJwk, fetchKey, fetchKeyDetailed, formatAcceptSignature, fulfillAcceptSignature, generateCryptoKeyPair, getKeyOwner, hasProofLike, hasSignatureLike, importJwk, parseAcceptSignature, signJsonLd, signObject, signRequest, validateAcceptSignature, verifyJsonLd, verifyObject, verifyProof, verifyRequest, verifyRequestDetailed, verifySignature };
|
package/dist/sig/owner.test.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import "../std__assert-Dh6uLf_q.mjs";
|
|
|
6
6
|
import { r as assertFalse } from "../assert_rejects-DAdaaIWM.mjs";
|
|
7
7
|
import { t as assert } from "../assert-DvVHoIZ0.mjs";
|
|
8
8
|
import { o as rsaPublicKey1, s as rsaPublicKey2 } from "../keys-CSYsOMFG.mjs";
|
|
9
|
-
import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-
|
|
9
|
+
import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-Bq2eZyO_.mjs";
|
|
10
10
|
import { Create, CryptographicKey, lookupObject } from "@fedify/vocab";
|
|
11
11
|
import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
12
12
|
//#region src/sig/owner.test.ts
|
package/dist/sig/proof.test.mjs
CHANGED
|
@@ -8,7 +8,7 @@ import { t as assertInstanceOf } from "../assert_instance_of-CxoC8bVq.mjs";
|
|
|
8
8
|
import { t as assert } from "../assert-DvVHoIZ0.mjs";
|
|
9
9
|
import { i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CSYsOMFG.mjs";
|
|
10
10
|
import { r as normalizeOutgoingActivityJsonLd } from "../outgoing-jsonld-BNL8AC14.mjs";
|
|
11
|
-
import { a as verifyProof, i as verifyObject, n as hasProofLike, r as signObject, t as createProof } from "../proof-
|
|
11
|
+
import { a as verifyProof, i as verifyObject, n as hasProofLike, r as signObject, t as createProof } from "../proof-DZCjcFCd.mjs";
|
|
12
12
|
import { Create, DataIntegrityProof, Document, Multikey, Note, PUBLIC_COLLECTION, Place } from "@fedify/vocab";
|
|
13
13
|
import { createTestMeterProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
14
14
|
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-fnWaNT8y.mjs";
|
|
5
5
|
import jsonld from "@fedify/vocab-runtime/jsonld";
|
|
6
6
|
//#region src/federation/temporal.ts
|
|
7
7
|
function isPlainObject(value) {
|
|
@@ -5,9 +5,9 @@ import { t as esm_default } from "../esm-vrlUxr60.mjs";
|
|
|
5
5
|
import { t as assertEquals } from "../assert_equals-PBVKNMJd.mjs";
|
|
6
6
|
import "../std__assert-Dh6uLf_q.mjs";
|
|
7
7
|
import { t as assertRejects } from "../assert_rejects-DAdaaIWM.mjs";
|
|
8
|
-
import { l as verifyRequest } from "../http-
|
|
8
|
+
import { l as verifyRequest } from "../http-inQqS3yx.mjs";
|
|
9
9
|
import { i as rsaPrivateKey2 } from "../keys-CSYsOMFG.mjs";
|
|
10
|
-
import { t as getAuthenticatedDocumentLoader } from "../docloader-
|
|
10
|
+
import { t as getAuthenticatedDocumentLoader } from "../docloader-DAdEN549.mjs";
|
|
11
11
|
import { mockDocumentLoader, test } from "@fedify/fixture";
|
|
12
12
|
import { UrlError } from "@fedify/vocab-runtime";
|
|
13
13
|
//#region src/utils/docloader.test.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { n as kvCache, t as MockKvStore } from "../kv-cache-
|
|
4
|
+
import { n as kvCache, t as MockKvStore } from "../kv-cache-C3qkFkbt.mjs";
|
|
5
5
|
import { deepStrictEqual, throws } from "node:assert";
|
|
6
6
|
import { createTestMeterProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
7
7
|
import { preloadedContexts } from "@fedify/vocab-runtime";
|
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-c8X6svwE.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-C2oTEXyb.js";
|
|
4
4
|
export { getAuthenticatedDocumentLoader, kvCache };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fedify/fedify",
|
|
3
|
-
"version": "2.4.0-dev.
|
|
3
|
+
"version": "2.4.0-dev.1508+68519bf4",
|
|
4
4
|
"description": "An ActivityPub server framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ActivityPub",
|
|
@@ -21,10 +21,7 @@
|
|
|
21
21
|
"bugs": {
|
|
22
22
|
"url": "https://github.com/fedify-dev/fedify/issues"
|
|
23
23
|
},
|
|
24
|
-
"funding":
|
|
25
|
-
"https://opencollective.com/fedify",
|
|
26
|
-
"https://github.com/sponsors/dahlia"
|
|
27
|
-
],
|
|
24
|
+
"funding": "https://opencollective.com/fedify",
|
|
28
25
|
"engines": {
|
|
29
26
|
"deno": ">=2.0.0",
|
|
30
27
|
"node": ">=22.0.0",
|
|
@@ -154,10 +151,10 @@
|
|
|
154
151
|
"jsonld": "^9.0.0",
|
|
155
152
|
"structured-field-values": "^2.0.4",
|
|
156
153
|
"urlpattern-polyfill": "^10.1.0",
|
|
157
|
-
"@fedify/uri-template": "2.4.0-dev.
|
|
158
|
-
"@fedify/vocab": "2.4.0-dev.
|
|
159
|
-
"@fedify/
|
|
160
|
-
"@fedify/
|
|
154
|
+
"@fedify/uri-template": "2.4.0-dev.1508+68519bf4",
|
|
155
|
+
"@fedify/vocab": "2.4.0-dev.1508+68519bf4",
|
|
156
|
+
"@fedify/vocab-runtime": "2.4.0-dev.1508+68519bf4",
|
|
157
|
+
"@fedify/webfinger": "2.4.0-dev.1508+68519bf4"
|
|
161
158
|
},
|
|
162
159
|
"devDependencies": {
|
|
163
160
|
"@std/assert": "npm:@jsr/std__assert@^0.226.0",
|
|
@@ -169,8 +166,8 @@
|
|
|
169
166
|
"tsx": "^4.21.0",
|
|
170
167
|
"typescript": "^6.0.0",
|
|
171
168
|
"wrangler": "^4.17.0",
|
|
172
|
-
"@fedify/
|
|
173
|
-
"@fedify/
|
|
169
|
+
"@fedify/vocab-tools": "^2.4.0-dev.1508+68519bf4",
|
|
170
|
+
"@fedify/fixture": "2.0.0"
|
|
174
171
|
},
|
|
175
172
|
"scripts": {
|
|
176
173
|
"build:self": "tsdown",
|