@fedify/fedify 2.4.0-dev.1873 → 2.4.0-dev.1889
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-7ZvZ5ilC.mjs → builder-JXN1im9k.mjs} +2 -2
- package/dist/{codec-peqOdBaE.mjs → codec-C6rTrpIp.mjs} +26 -3
- package/dist/compat/outgoing-jsonld.test.mjs +1 -1
- package/dist/compat/public-audience.test.mjs +11 -2
- package/dist/compat/transformers.test.mjs +1 -1
- package/dist/{context-Dt36KFEJ.mjs → context-CbS35fLr.mjs} +2 -60
- package/dist/{deno-CxSfl_a4.mjs → deno-DdOBy0fz.mjs} +1 -1
- package/dist/dist-BQvArojP.mjs +188 -0
- package/dist/{docloader-BA8lSYW0.mjs → docloader-DOEGT_GW.mjs} +2 -2
- package/dist/federation/builder.test.mjs +1 -1
- package/dist/federation/handler.test.mjs +4 -4
- package/dist/federation/idempotency.test.mjs +2 -2
- package/dist/federation/metrics.test.mjs +1 -1
- package/dist/federation/middleware.test.mjs +9 -9
- 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/codec.test.mjs +1 -1
- package/dist/federation/tasks/enqueue.test.mjs +2 -2
- package/dist/federation/tasks/tasks.test.mjs +4 -4
- package/dist/federation/temporal.test.mjs +1 -1
- package/dist/federation/webfinger.test.mjs +2 -2
- package/dist/{federation-EWi4e3XY.cjs → federation-DHt4PpSt.cjs} +99 -76
- package/dist/{http-MQyitOvl.cjs → http-CFkGXp3u.cjs} +1 -1
- package/dist/{http-BQxL1lOO.js → http-CIoEAxMQ.js} +1 -1
- package/dist/{http-DlSUSFxF.mjs → http-Ce1WT2Nu.mjs} +3 -3
- package/dist/{key-6O7-nI4D.mjs → key-DGKxCXcy.mjs} +2 -2
- package/dist/{kv-cache-DqiCo6_V.mjs → kv-cache-BEbt3wK2.mjs} +1 -1
- package/dist/{kv-cache-AN6qSmg2.cjs → kv-cache-BdFXi4lB.cjs} +1 -1
- package/dist/{kv-cache-BaLaRgP0.js → kv-cache-CrfmDS-x.js} +1 -1
- package/dist/{ld-CwHaXyMi.mjs → ld-eXBQBH4G.mjs} +3 -3
- package/dist/{metrics-DpjCXFvC.mjs → metrics-Crg4Vbos.mjs} +1 -1
- package/dist/{middleware-Bcx74jmq.js → middleware-B2fE8A-w.js} +28 -5
- package/dist/{middleware-Cy6-svwn.mjs → middleware-DCuzEI3t.mjs} +1 -1
- package/dist/{middleware-C8wXU20O.mjs → middleware-K7vtqCMw.mjs} +14 -14
- package/dist/mod.cjs +4 -4
- package/dist/mod.js +4 -4
- package/dist/nodeinfo/handler.test.mjs +2 -2
- package/dist/{outgoing-jsonld-BQSHRLhg.mjs → outgoing-jsonld-B5Ne7JoL.mjs} +1 -1
- package/dist/{owner-CDshspna.mjs → owner-DE0t4u5s.mjs} +2 -2
- package/dist/{proof-D7aD6Hut.js → proof-BPAFoo_l.js} +3 -2
- package/dist/{proof-CwrJYody.cjs → proof-C2zsXJdb.cjs} +3 -2
- package/dist/{proof-C1uX5GYQ.mjs → proof-D25RA3TP.mjs} +6 -6
- package/dist/{public-audience--9hx7IGx.mjs → public-audience-Cc2YJ3ip.mjs} +2 -1
- package/dist/{send-BrW0OtvG.mjs → send-ByC5h1Gg.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 +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-5ClDg1Qq.mjs → temporal-CLmDbDJj.mjs} +1 -1
- package/dist/testing/context.test.d.mts +2 -0
- package/dist/testing/context.test.mjs +19 -0
- package/dist/testing/mod.d.mts +27 -1
- package/dist/testing/mod.mjs +3 -2
- package/dist/{testing-BX0Nicyq.mjs → testing-D13ymFKy.mjs} +2 -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 +6 -6
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
2
2
|
const require_rolldown_runtime = require("./rolldown-runtime-Dmm3t92W.cjs");
|
|
3
3
|
const require_transformers = require("./transformers-BalCrSsr.cjs");
|
|
4
|
-
const require_http = require("./http-
|
|
5
|
-
const require_proof = require("./proof-
|
|
4
|
+
const require_http = require("./http-CFkGXp3u.cjs");
|
|
5
|
+
const require_proof = require("./proof-C2zsXJdb.cjs");
|
|
6
6
|
const require_types = require("./types-RXm5YxpC.cjs");
|
|
7
|
-
const require_kv_cache = require("./kv-cache-
|
|
7
|
+
const require_kv_cache = require("./kv-cache-BdFXi4lB.cjs");
|
|
8
8
|
let _logtape_logtape = require("@logtape/logtape");
|
|
9
9
|
let _fedify_uri_template = require("@fedify/uri-template");
|
|
10
10
|
let _fedify_vocab = require("@fedify/vocab");
|
|
@@ -724,13 +724,13 @@ function createFederationBuilder() {
|
|
|
724
724
|
}
|
|
725
725
|
//#endregion
|
|
726
726
|
//#region src/federation/circuit-breaker.ts
|
|
727
|
-
const Temporal$
|
|
727
|
+
const Temporal$10 = require_http.Temporal;
|
|
728
728
|
const LEGACY_SWEEP_MARKER = ["__fedify_meta", "circuit_breaker_state_ttl_sweep_v2"];
|
|
729
729
|
const LEGACY_SWEEP_DELETING_MARKER = { __fedifyDeletingCircuitBreakerLegacyState: true };
|
|
730
730
|
const CIRCUIT_BREAKER_STATE_VERSION = 1;
|
|
731
|
-
const LEGACY_SWEEP_LOCK_TTL = Temporal$
|
|
732
|
-
const LEGACY_SWEEP_RENEW_INTERVAL = Temporal$
|
|
733
|
-
const LEGACY_SWEEP_RETRY_WINDOW = Temporal$
|
|
731
|
+
const LEGACY_SWEEP_LOCK_TTL = Temporal$10.Duration.from({ minutes: 5 });
|
|
732
|
+
const LEGACY_SWEEP_RENEW_INTERVAL = Temporal$10.Duration.from({ minutes: 1 });
|
|
733
|
+
const LEGACY_SWEEP_RETRY_WINDOW = Temporal$10.Duration.from({ hours: 168 });
|
|
734
734
|
const LEGACY_SWEEP_WAIT_INTERVAL = 10;
|
|
735
735
|
const LEGACY_SWEEP_CAS_ATTEMPTS = 3;
|
|
736
736
|
/**
|
|
@@ -749,7 +749,7 @@ var CircuitBreaker = class {
|
|
|
749
749
|
this.#kv = options.kv;
|
|
750
750
|
this.#prefix = options.prefix;
|
|
751
751
|
this.#options = normalizeCircuitBreakerOptions(options.options ?? {});
|
|
752
|
-
this.#now = options.now ?? (() => Temporal$
|
|
752
|
+
this.#now = options.now ?? (() => Temporal$10.Now.instant());
|
|
753
753
|
this.#stateChangeObserver = options.stateChangeObserver;
|
|
754
754
|
}
|
|
755
755
|
get options() {
|
|
@@ -763,7 +763,7 @@ var CircuitBreaker = class {
|
|
|
763
763
|
this.#sweepLegacyStates();
|
|
764
764
|
const heldSince = parseHeldSince(message.circuitHeldSince);
|
|
765
765
|
const now = this.#now();
|
|
766
|
-
if (heldSince != null && Temporal$
|
|
766
|
+
if (heldSince != null && Temporal$10.Instant.compare(heldSince.add(this.#options.heldActivityTtl), now) <= 0) return {
|
|
767
767
|
type: "drop",
|
|
768
768
|
heldSince
|
|
769
769
|
};
|
|
@@ -775,12 +775,12 @@ var CircuitBreaker = class {
|
|
|
775
775
|
probe: false
|
|
776
776
|
};
|
|
777
777
|
if (oldState.state === "half-open") {
|
|
778
|
-
const halfOpened = oldState.halfOpened == null ? void 0 : Temporal$
|
|
778
|
+
const halfOpened = oldState.halfOpened == null ? void 0 : Temporal$10.Instant.from(oldState.halfOpened);
|
|
779
779
|
if (halfOpened != null) {
|
|
780
780
|
const staleAt = halfOpened.add(this.#options.recoveryDelay);
|
|
781
|
-
if (Temporal$
|
|
781
|
+
if (Temporal$10.Instant.compare(now, staleAt) < 0) {
|
|
782
782
|
const releaseAt = now.add(this.#options.releaseInterval);
|
|
783
|
-
const retryAt = Temporal$
|
|
783
|
+
const retryAt = Temporal$10.Instant.compare(releaseAt, staleAt) < 0 ? releaseAt : staleAt;
|
|
784
784
|
const cappedRetryAt = this.#capHeldRetryAt(now, heldSince, retryAt);
|
|
785
785
|
return {
|
|
786
786
|
type: "hold",
|
|
@@ -802,8 +802,8 @@ var CircuitBreaker = class {
|
|
|
802
802
|
lastConflictingState = "half-open";
|
|
803
803
|
continue;
|
|
804
804
|
}
|
|
805
|
-
const probeAt = (oldState.opened == null ? now : Temporal$
|
|
806
|
-
if (Temporal$
|
|
805
|
+
const probeAt = (oldState.opened == null ? now : Temporal$10.Instant.from(oldState.opened)).add(this.#options.recoveryDelay);
|
|
806
|
+
if (Temporal$10.Instant.compare(now, probeAt) < 0) {
|
|
807
807
|
const retryAt = this.#capHeldRetryAt(now, heldSince, probeAt);
|
|
808
808
|
return {
|
|
809
809
|
type: "hold",
|
|
@@ -868,7 +868,7 @@ var CircuitBreaker = class {
|
|
|
868
868
|
for (let attempt = 0; attempt < 10; attempt++) {
|
|
869
869
|
const oldState = await this.#get(remoteHost);
|
|
870
870
|
if (oldState?.state === "open") return void 0;
|
|
871
|
-
const oldFailures = oldState?.failures.map(Temporal$
|
|
871
|
+
const oldFailures = oldState?.failures.map(Temporal$10.Instant.from) ?? [];
|
|
872
872
|
const failures = this.#options.pruneFailures([...oldFailures, now], now);
|
|
873
873
|
let newState;
|
|
874
874
|
let transition;
|
|
@@ -952,7 +952,7 @@ var CircuitBreaker = class {
|
|
|
952
952
|
for await (const { key, value } of this.#kv.list(this.#prefix)) {
|
|
953
953
|
if (key.length !== this.#prefix.length + 1) continue;
|
|
954
954
|
await this.#migrateLegacyState(key, value);
|
|
955
|
-
if (Temporal$
|
|
955
|
+
if (Temporal$10.Instant.compare(this.#now(), leaseRenewedAt.add(LEGACY_SWEEP_RENEW_INTERVAL)) >= 0) {
|
|
956
956
|
const renewed = await this.#renewLegacySweep(markerKey, marker);
|
|
957
957
|
if (renewed == null) return;
|
|
958
958
|
marker = renewed;
|
|
@@ -976,7 +976,7 @@ var CircuitBreaker = class {
|
|
|
976
976
|
}
|
|
977
977
|
#finishLegacySweepMarker(marker) {
|
|
978
978
|
const retryUntil = getLegacySweepRetryUntil(marker);
|
|
979
|
-
if (retryUntil != null && Temporal$
|
|
979
|
+
if (retryUntil != null && Temporal$10.Instant.compare(this.#now(), Temporal$10.Instant.from(retryUntil)) < 0) return {
|
|
980
980
|
state: "done",
|
|
981
981
|
retryUntil
|
|
982
982
|
};
|
|
@@ -1019,7 +1019,7 @@ var CircuitBreaker = class {
|
|
|
1019
1019
|
#isLegacySweepDone() {
|
|
1020
1020
|
if (this.#legacySweepDone === "final") return true;
|
|
1021
1021
|
if (this.#legacySweepDone == null) return false;
|
|
1022
|
-
if (Temporal$
|
|
1022
|
+
if (Temporal$10.Instant.compare(this.#now(), this.#legacySweepDone) < 0) return true;
|
|
1023
1023
|
this.#legacySweepDone = void 0;
|
|
1024
1024
|
return false;
|
|
1025
1025
|
}
|
|
@@ -1029,7 +1029,7 @@ var CircuitBreaker = class {
|
|
|
1029
1029
|
}
|
|
1030
1030
|
#capHeldRetryAt(now, heldSince, retryAt) {
|
|
1031
1031
|
const expiresAt = (heldSince ?? now).add(this.#options.heldActivityTtl);
|
|
1032
|
-
return Temporal$
|
|
1032
|
+
return Temporal$10.Instant.compare(expiresAt, retryAt) < 0 ? expiresAt : retryAt;
|
|
1033
1033
|
}
|
|
1034
1034
|
async #get(remoteHost) {
|
|
1035
1035
|
return parseStoredCircuitBreakerKvState(await this.#kv.get(this.#key(remoteHost)));
|
|
@@ -1099,7 +1099,7 @@ function normalizeCircuitBreakerOptions(options) {
|
|
|
1099
1099
|
assertPositiveDuration(releaseInterval, "releaseInterval");
|
|
1100
1100
|
if (configuredStateTtl != null) {
|
|
1101
1101
|
assertPositiveDuration(configuredStateTtl, "stateTtl");
|
|
1102
|
-
if (Temporal$
|
|
1102
|
+
if (Temporal$10.Duration.compare(configuredStateTtl, recoveryDelay) < 0) throw new RangeError("stateTtl must be at least recoveryDelay.");
|
|
1103
1103
|
}
|
|
1104
1104
|
let failure;
|
|
1105
1105
|
let pruneFailures;
|
|
@@ -1111,13 +1111,13 @@ function normalizeCircuitBreakerOptions(options) {
|
|
|
1111
1111
|
assertPositiveDuration(failureWindow, "failureWindow");
|
|
1112
1112
|
pruneFailures = (timestamps, now) => {
|
|
1113
1113
|
const earliest = now.subtract(failureWindow);
|
|
1114
|
-
return timestamps.filter((timestamp) => Temporal$
|
|
1114
|
+
return timestamps.filter((timestamp) => Temporal$10.Instant.compare(timestamp, earliest) >= 0).slice(-failureThreshold);
|
|
1115
1115
|
};
|
|
1116
1116
|
failure = (timestamps) => {
|
|
1117
1117
|
if (timestamps.length < failureThreshold) return false;
|
|
1118
1118
|
const first = timestamps[timestamps.length - failureThreshold];
|
|
1119
1119
|
const last = timestamps[timestamps.length - 1];
|
|
1120
|
-
return Temporal$
|
|
1120
|
+
return Temporal$10.Duration.compare(first.until(last), failureWindow) <= 0;
|
|
1121
1121
|
};
|
|
1122
1122
|
stateTtl = configuredStateTtl ?? maxDuration(recoveryDelay.add(failureWindow), recoveryDelay.add(heldActivityTtl));
|
|
1123
1123
|
} else {
|
|
@@ -1137,7 +1137,7 @@ function normalizeCircuitBreakerOptions(options) {
|
|
|
1137
1137
|
};
|
|
1138
1138
|
}
|
|
1139
1139
|
function maxDuration(duration, ...durations) {
|
|
1140
|
-
return durations.reduce((max, candidate) => Temporal$
|
|
1140
|
+
return durations.reduce((max, candidate) => Temporal$10.Duration.compare(candidate, max) > 0 ? candidate : max, duration);
|
|
1141
1141
|
}
|
|
1142
1142
|
function isLegacySweepDone(value, now) {
|
|
1143
1143
|
return getLegacySweepDoneUntil(value, now) != null;
|
|
@@ -1146,8 +1146,8 @@ function getLegacySweepDoneUntil(value, now) {
|
|
|
1146
1146
|
if (typeof value !== "object" || value == null || !("state" in value)) return;
|
|
1147
1147
|
if (value.state === "final") return "final";
|
|
1148
1148
|
if (value.state === "done" && "retryUntil" in value && typeof value.retryUntil === "string") try {
|
|
1149
|
-
const retryUntil = Temporal$
|
|
1150
|
-
return Temporal$
|
|
1149
|
+
const retryUntil = Temporal$10.Instant.from(value.retryUntil);
|
|
1150
|
+
return Temporal$10.Instant.compare(now, retryUntil) < 0 ? retryUntil : void 0;
|
|
1151
1151
|
} catch {
|
|
1152
1152
|
return;
|
|
1153
1153
|
}
|
|
@@ -1155,7 +1155,7 @@ function getLegacySweepDoneUntil(value, now) {
|
|
|
1155
1155
|
function isLegacySweepRetryDue(value, now) {
|
|
1156
1156
|
if (typeof value !== "object" || value == null || !("state" in value) || value.state !== "done" || !("retryUntil" in value) || typeof value.retryUntil !== "string") return false;
|
|
1157
1157
|
try {
|
|
1158
|
-
return Temporal$
|
|
1158
|
+
return Temporal$10.Instant.compare(now, Temporal$10.Instant.from(value.retryUntil)) >= 0;
|
|
1159
1159
|
} catch {
|
|
1160
1160
|
return false;
|
|
1161
1161
|
}
|
|
@@ -1166,7 +1166,7 @@ function isLegacySweepActive(value, now) {
|
|
|
1166
1166
|
function isLegacySweepInProgress(value, now) {
|
|
1167
1167
|
if (typeof value !== "object" || value == null || !("state" in value) || value.state !== "sweeping" || !("started" in value) || typeof value.started !== "string") return false;
|
|
1168
1168
|
try {
|
|
1169
|
-
return Temporal$
|
|
1169
|
+
return Temporal$10.Instant.compare(now, Temporal$10.Instant.from(value.started).add(LEGACY_SWEEP_LOCK_TTL)) < 0;
|
|
1170
1170
|
} catch {
|
|
1171
1171
|
return false;
|
|
1172
1172
|
}
|
|
@@ -1174,7 +1174,7 @@ function isLegacySweepInProgress(value, now) {
|
|
|
1174
1174
|
function getLegacySweepRetryUntil(value) {
|
|
1175
1175
|
if (typeof value !== "object" || value == null || !("retryUntil" in value) || typeof value.retryUntil !== "string") return;
|
|
1176
1176
|
try {
|
|
1177
|
-
Temporal$
|
|
1177
|
+
Temporal$10.Instant.from(value.retryUntil);
|
|
1178
1178
|
return value.retryUntil;
|
|
1179
1179
|
} catch {
|
|
1180
1180
|
return;
|
|
@@ -1198,19 +1198,19 @@ function delay(milliseconds) {
|
|
|
1198
1198
|
return new Promise((resolve) => setTimeout(resolve, milliseconds));
|
|
1199
1199
|
}
|
|
1200
1200
|
function toInstantDuration(duration) {
|
|
1201
|
-
const parsed = Temporal$
|
|
1202
|
-
return Temporal$
|
|
1201
|
+
const parsed = Temporal$10.Duration.from(duration);
|
|
1202
|
+
return Temporal$10.Duration.from({ milliseconds: Math.trunc(parsed.total({
|
|
1203
1203
|
unit: "millisecond",
|
|
1204
|
-
relativeTo: Temporal$
|
|
1204
|
+
relativeTo: Temporal$10.PlainDateTime.from("2026-01-01T00:00:00")
|
|
1205
1205
|
})) });
|
|
1206
1206
|
}
|
|
1207
1207
|
function assertPositiveDuration(duration, name) {
|
|
1208
|
-
if (Temporal$
|
|
1208
|
+
if (Temporal$10.Duration.compare(duration, { seconds: 0 }) <= 0) throw new RangeError(`${name} must be a positive duration.`);
|
|
1209
1209
|
}
|
|
1210
1210
|
function parseHeldSince(value) {
|
|
1211
1211
|
if (value == null) return void 0;
|
|
1212
1212
|
try {
|
|
1213
|
-
return Temporal$
|
|
1213
|
+
return Temporal$10.Instant.from(value);
|
|
1214
1214
|
} catch (error) {
|
|
1215
1215
|
(0, _logtape_logtape.getLogger)([
|
|
1216
1216
|
"fedify",
|
|
@@ -1237,7 +1237,7 @@ function parseStoredCircuitBreakerKvState(value) {
|
|
|
1237
1237
|
const isInstantString = (v) => {
|
|
1238
1238
|
if (typeof v !== "string") return false;
|
|
1239
1239
|
try {
|
|
1240
|
-
Temporal$
|
|
1240
|
+
Temporal$10.Instant.from(v);
|
|
1241
1241
|
return true;
|
|
1242
1242
|
} catch {
|
|
1243
1243
|
return false;
|
|
@@ -1298,7 +1298,7 @@ async function buildCollectionSynchronizationHeader(collectionId, actorIds) {
|
|
|
1298
1298
|
}
|
|
1299
1299
|
//#endregion
|
|
1300
1300
|
//#region src/federation/inbox.ts
|
|
1301
|
-
const Temporal$
|
|
1301
|
+
const Temporal$9 = require_http.Temporal;
|
|
1302
1302
|
async function routeActivity({ context: ctx, json, originalJson, normalizedActivity, ldSignatureVerified, activity, recipient, inboxListeners, inboxContextFactory, listenerInboxContextFactory, inboxErrorHandler, kv, kvPrefixes, queue, span, meterProvider, tracerProvider, idempotencyStrategy }) {
|
|
1303
1303
|
const logger = (0, _logtape_logtape.getLogger)([
|
|
1304
1304
|
"fedify",
|
|
@@ -1445,7 +1445,7 @@ async function routeActivity({ context: ctx, json, originalJson, normalizedActiv
|
|
|
1445
1445
|
return "error";
|
|
1446
1446
|
}
|
|
1447
1447
|
require_http.recordInboxActivity(meterProvider, "processed", (0, _fedify_vocab.getTypeId)(activity).href);
|
|
1448
|
-
if (cacheKey != null) await kv.set(cacheKey, true, { ttl: Temporal$
|
|
1448
|
+
if (cacheKey != null) await kv.set(cacheKey, true, { ttl: Temporal$9.Duration.from({ days: 1 }) });
|
|
1449
1449
|
logger.info("Activity {activityId} has been processed.", {
|
|
1450
1450
|
activityId: activity.id?.href,
|
|
1451
1451
|
activity: json,
|
|
@@ -1457,7 +1457,7 @@ async function routeActivity({ context: ctx, json, originalJson, normalizedActiv
|
|
|
1457
1457
|
}
|
|
1458
1458
|
//#endregion
|
|
1459
1459
|
//#region src/federation/keycache.ts
|
|
1460
|
-
const Temporal$
|
|
1460
|
+
const Temporal$8 = require_http.Temporal;
|
|
1461
1461
|
var KvKeyCache = class {
|
|
1462
1462
|
kv;
|
|
1463
1463
|
prefix;
|
|
@@ -1468,7 +1468,7 @@ var KvKeyCache = class {
|
|
|
1468
1468
|
this.kv = kv;
|
|
1469
1469
|
this.prefix = prefix;
|
|
1470
1470
|
this.options = options;
|
|
1471
|
-
this.unavailableKeyTtl = options.unavailableKeyTtl ?? Temporal$
|
|
1471
|
+
this.unavailableKeyTtl = options.unavailableKeyTtl ?? Temporal$8.Duration.from({ minutes: 10 });
|
|
1472
1472
|
this.nullKeys = /* @__PURE__ */ new Map();
|
|
1473
1473
|
}
|
|
1474
1474
|
#getFetchErrorKey(keyId) {
|
|
@@ -1481,13 +1481,13 @@ var KvKeyCache = class {
|
|
|
1481
1481
|
async get(keyId) {
|
|
1482
1482
|
const negativeExpiration = this.nullKeys.get(keyId.href);
|
|
1483
1483
|
if (negativeExpiration != null) {
|
|
1484
|
-
if (Temporal$
|
|
1484
|
+
if (Temporal$8.Now.instant().until(negativeExpiration).sign >= 0) return null;
|
|
1485
1485
|
this.nullKeys.delete(keyId.href);
|
|
1486
1486
|
}
|
|
1487
1487
|
const serialized = await this.kv.get([...this.prefix, keyId.href]);
|
|
1488
1488
|
if (serialized === void 0) return void 0;
|
|
1489
1489
|
if (serialized === null) {
|
|
1490
|
-
this.nullKeys.set(keyId.href, Temporal$
|
|
1490
|
+
this.nullKeys.set(keyId.href, Temporal$8.Now.instant().add(this.unavailableKeyTtl));
|
|
1491
1491
|
return null;
|
|
1492
1492
|
}
|
|
1493
1493
|
try {
|
|
@@ -1503,7 +1503,7 @@ var KvKeyCache = class {
|
|
|
1503
1503
|
}
|
|
1504
1504
|
async set(keyId, key) {
|
|
1505
1505
|
if (key == null) {
|
|
1506
|
-
this.nullKeys.set(keyId.href, Temporal$
|
|
1506
|
+
this.nullKeys.set(keyId.href, Temporal$8.Now.instant().add(this.unavailableKeyTtl));
|
|
1507
1507
|
await this.kv.set([...this.prefix, keyId.href], null, { ttl: this.unavailableKeyTtl });
|
|
1508
1508
|
return;
|
|
1509
1509
|
}
|
|
@@ -1642,7 +1642,7 @@ function acceptsJsonLd(request) {
|
|
|
1642
1642
|
}
|
|
1643
1643
|
//#endregion
|
|
1644
1644
|
//#region src/federation/temporal.ts
|
|
1645
|
-
const Temporal$
|
|
1645
|
+
const Temporal$7 = require_http.Temporal;
|
|
1646
1646
|
function isPlainObject$1(value) {
|
|
1647
1647
|
return typeof value === "object" && value != null && !Array.isArray(value);
|
|
1648
1648
|
}
|
|
@@ -1652,7 +1652,7 @@ function normalizeDateTimeLiteral(value) {
|
|
|
1652
1652
|
function isMalformedDateTimeLiteral(value) {
|
|
1653
1653
|
if (typeof value !== "string") return false;
|
|
1654
1654
|
try {
|
|
1655
|
-
Temporal$
|
|
1655
|
+
Temporal$7.Instant.from(normalizeDateTimeLiteral(value));
|
|
1656
1656
|
return false;
|
|
1657
1657
|
} catch {
|
|
1658
1658
|
return true;
|
|
@@ -1661,7 +1661,7 @@ function isMalformedDateTimeLiteral(value) {
|
|
|
1661
1661
|
function isMalformedDurationLiteral(value) {
|
|
1662
1662
|
if (typeof value !== "string") return false;
|
|
1663
1663
|
try {
|
|
1664
|
-
Temporal$
|
|
1664
|
+
Temporal$7.Duration.from(value);
|
|
1665
1665
|
return false;
|
|
1666
1666
|
} catch {
|
|
1667
1667
|
return true;
|
|
@@ -1732,7 +1732,7 @@ async function hasMalformedKnownTemporalLiteral(value, contextLoader) {
|
|
|
1732
1732
|
}
|
|
1733
1733
|
//#endregion
|
|
1734
1734
|
//#region src/federation/handler.ts
|
|
1735
|
-
const Temporal$
|
|
1735
|
+
const Temporal$6 = require_http.Temporal;
|
|
1736
1736
|
const rawInboxContextFactorySymbol = Symbol("fedify.rawInboxContextFactory");
|
|
1737
1737
|
function isRemoteContextLoadingFailure$1(error) {
|
|
1738
1738
|
return error instanceof Error && typeof error.details === "object" && error.details != null && error.details.code === "loading remote context failed";
|
|
@@ -3487,7 +3487,7 @@ async function buildAcceptSignatureHeader(policy, kv, noncePrefix) {
|
|
|
3487
3487
|
}
|
|
3488
3488
|
async function setKey(kv, key, policy) {
|
|
3489
3489
|
const seconds = policy.nonceTtlSeconds ?? 300;
|
|
3490
|
-
const ttl = Temporal$
|
|
3490
|
+
const ttl = Temporal$6.Duration.from({ seconds });
|
|
3491
3491
|
await kv.set(key, true, { ttl });
|
|
3492
3492
|
}
|
|
3493
3493
|
const DEF_COMPONENTS = [
|
|
@@ -3503,7 +3503,7 @@ const MIN_COMPONENTS = [
|
|
|
3503
3503
|
];
|
|
3504
3504
|
//#endregion
|
|
3505
3505
|
//#region src/federation/kv.ts
|
|
3506
|
-
const Temporal$
|
|
3506
|
+
const Temporal$5 = require_http.Temporal;
|
|
3507
3507
|
/**
|
|
3508
3508
|
* A key–value store that stores values in memory.
|
|
3509
3509
|
* Do not use this in production as it does not persist values.
|
|
@@ -3523,7 +3523,7 @@ var MemoryKvStore = class {
|
|
|
3523
3523
|
const entry = this.#values[encodedKey];
|
|
3524
3524
|
if (entry == null) return Promise.resolve(void 0);
|
|
3525
3525
|
const [value, expiration] = entry;
|
|
3526
|
-
if (expiration != null && Temporal$
|
|
3526
|
+
if (expiration != null && Temporal$5.Now.instant().until(expiration).sign < 0) {
|
|
3527
3527
|
delete this.#values[encodedKey];
|
|
3528
3528
|
return Promise.resolve(void 0);
|
|
3529
3529
|
}
|
|
@@ -3534,7 +3534,7 @@ var MemoryKvStore = class {
|
|
|
3534
3534
|
*/
|
|
3535
3535
|
set(key, value, options) {
|
|
3536
3536
|
const encodedKey = this.#encodeKey(key);
|
|
3537
|
-
const expiration = options?.ttl == null ? null : Temporal$
|
|
3537
|
+
const expiration = options?.ttl == null ? null : Temporal$5.Now.instant().add(options.ttl.round({ largestUnit: "hour" }));
|
|
3538
3538
|
this.#values[encodedKey] = [value, expiration];
|
|
3539
3539
|
return Promise.resolve();
|
|
3540
3540
|
}
|
|
@@ -3556,13 +3556,13 @@ var MemoryKvStore = class {
|
|
|
3556
3556
|
if (entry == null) currentValue = void 0;
|
|
3557
3557
|
else {
|
|
3558
3558
|
const [value, expiration] = entry;
|
|
3559
|
-
if (expiration != null && Temporal$
|
|
3559
|
+
if (expiration != null && Temporal$5.Now.instant().until(expiration).sign < 0) {
|
|
3560
3560
|
delete this.#values[encodedKey];
|
|
3561
3561
|
currentValue = void 0;
|
|
3562
3562
|
} else currentValue = value;
|
|
3563
3563
|
}
|
|
3564
3564
|
if (!(0, es_toolkit.isEqual)(currentValue, expectedValue)) return Promise.resolve(false);
|
|
3565
|
-
const expiration = options?.ttl == null ? null : Temporal$
|
|
3565
|
+
const expiration = options?.ttl == null ? null : Temporal$5.Now.instant().add(options.ttl.round({ largestUnit: "hour" }));
|
|
3566
3566
|
this.#values[encodedKey] = [newValue, expiration];
|
|
3567
3567
|
return Promise.resolve(true);
|
|
3568
3568
|
}
|
|
@@ -3570,7 +3570,7 @@ var MemoryKvStore = class {
|
|
|
3570
3570
|
* {@inheritDoc KvStore.list}
|
|
3571
3571
|
*/
|
|
3572
3572
|
async *list(prefix) {
|
|
3573
|
-
const now = Temporal$
|
|
3573
|
+
const now = Temporal$5.Now.instant();
|
|
3574
3574
|
for (const [encodedKey, entry] of Object.entries(this.#values)) {
|
|
3575
3575
|
const key = JSON.parse(encodedKey);
|
|
3576
3576
|
if (prefix != null) {
|
|
@@ -4050,7 +4050,7 @@ function serializeDataPointType(dataPointType) {
|
|
|
4050
4050
|
}
|
|
4051
4051
|
//#endregion
|
|
4052
4052
|
//#region src/federation/retry.ts
|
|
4053
|
-
const Temporal$
|
|
4053
|
+
const Temporal$4 = require_http.Temporal;
|
|
4054
4054
|
/**
|
|
4055
4055
|
* Creates an exponential backoff retry policy. The delay between retries
|
|
4056
4056
|
* starts at the `initialDelay` and is multiplied by the `factor` for each
|
|
@@ -4062,8 +4062,8 @@ const Temporal$3 = require_http.Temporal;
|
|
|
4062
4062
|
* @since 0.12.0
|
|
4063
4063
|
*/
|
|
4064
4064
|
function createExponentialBackoffPolicy(options = {}) {
|
|
4065
|
-
const initialDelay = Temporal$
|
|
4066
|
-
const maxDelay = Temporal$
|
|
4065
|
+
const initialDelay = Temporal$4.Duration.from(options.initialDelay ?? { seconds: 1 });
|
|
4066
|
+
const maxDelay = Temporal$4.Duration.from(options.maxDelay ?? { hours: 12 });
|
|
4067
4067
|
const maxAttempts = options.maxAttempts ?? 10;
|
|
4068
4068
|
const factor = options.factor ?? 2;
|
|
4069
4069
|
const jitter = options.jitter ?? true;
|
|
@@ -4075,8 +4075,8 @@ function createExponentialBackoffPolicy(options = {}) {
|
|
|
4075
4075
|
milliseconds *= 1 + Math.random();
|
|
4076
4076
|
milliseconds = Math.round(milliseconds);
|
|
4077
4077
|
}
|
|
4078
|
-
const delay = Temporal$
|
|
4079
|
-
return Temporal$
|
|
4078
|
+
const delay = Temporal$4.Duration.from({ milliseconds });
|
|
4079
|
+
return Temporal$4.Duration.compare(delay, maxDelay) > 0 ? maxDelay : delay;
|
|
4080
4080
|
};
|
|
4081
4081
|
}
|
|
4082
4082
|
//#endregion
|
|
@@ -4093,8 +4093,14 @@ var TaskCodec = class TaskCodec {
|
|
|
4093
4093
|
this.options = options;
|
|
4094
4094
|
}
|
|
4095
4095
|
/** Serializes `data`, encoding any vocabulary object as its JSON-LD. */
|
|
4096
|
-
serialize = (data) => (0, devalue.stringifyAsync)(data, {
|
|
4097
|
-
|
|
4096
|
+
serialize = (data) => (0, devalue.stringifyAsync)(data, {
|
|
4097
|
+
Vocab: this.#stringifyVocab,
|
|
4098
|
+
FedifyTemporal: stringifyTemporal
|
|
4099
|
+
});
|
|
4100
|
+
deserialize = async (raw) => await this.#revive(/* @__PURE__ */ new Map())((0, devalue.parse)(raw, {
|
|
4101
|
+
Vocab: VocabHolder.from,
|
|
4102
|
+
FedifyTemporal: parseTemporal
|
|
4103
|
+
}));
|
|
4098
4104
|
/** Validates `data` against `schema`, then serializes it. */
|
|
4099
4105
|
encode = async (schema, data) => this.serialize(await TaskCodec.validate(schema, data));
|
|
4100
4106
|
/** Deserializes `raw`, then validates the result against `schema`. */
|
|
@@ -4160,6 +4166,23 @@ var TaskCodec = class TaskCodec {
|
|
|
4160
4166
|
];
|
|
4161
4167
|
};
|
|
4162
4168
|
const isVocab = (value) => value instanceof _fedify_vocab.Object || value instanceof _fedify_vocab.Link;
|
|
4169
|
+
const temporalTypeNames = [
|
|
4170
|
+
"Duration",
|
|
4171
|
+
"Instant",
|
|
4172
|
+
"PlainDate",
|
|
4173
|
+
"PlainTime",
|
|
4174
|
+
"PlainDateTime",
|
|
4175
|
+
"PlainMonthDay",
|
|
4176
|
+
"PlainYearMonth",
|
|
4177
|
+
"ZonedDateTime"
|
|
4178
|
+
];
|
|
4179
|
+
function stringifyTemporal(value) {
|
|
4180
|
+
for (const name of temporalTypeNames) if (value instanceof Temporal[name]) return [name, value.toString()];
|
|
4181
|
+
return false;
|
|
4182
|
+
}
|
|
4183
|
+
function parseTemporal([name, value]) {
|
|
4184
|
+
return Temporal[name].from(value);
|
|
4185
|
+
}
|
|
4163
4186
|
const isPlainObject = (value) => value === null || typeof value !== "object" ? false : isObjectPrototype(globalThis.Object.getPrototypeOf(value));
|
|
4164
4187
|
const isObjectPrototype = (proto) => proto === null || proto === globalThis.Object.prototype;
|
|
4165
4188
|
const isInstanceOf = (cls) => (v) => v instanceof cls;
|
|
@@ -4207,7 +4230,7 @@ const classReviver = (filter, init, set) => (seen, revive, node) => {
|
|
|
4207
4230
|
*
|
|
4208
4231
|
* @module
|
|
4209
4232
|
*/
|
|
4210
|
-
const Temporal$
|
|
4233
|
+
const Temporal$3 = require_http.Temporal;
|
|
4211
4234
|
/**
|
|
4212
4235
|
* Validates the task handle, plans deduplication, encodes every payload, then
|
|
4213
4236
|
* dispatches the resulting messages to the queue. A single item flows through
|
|
@@ -4253,7 +4276,7 @@ const enqueueTasks = (ctx) => async function(task, items, options) {
|
|
|
4253
4276
|
throw error;
|
|
4254
4277
|
}
|
|
4255
4278
|
};
|
|
4256
|
-
const getDurationIfDefined = (item) => item == null ? void 0 : Temporal$
|
|
4279
|
+
const getDurationIfDefined = (item) => item == null ? void 0 : Temporal$3.Duration.from(item);
|
|
4257
4280
|
/**
|
|
4258
4281
|
* Decides how a `deduplicationKey` (if any) is honored: forwarded to a native
|
|
4259
4282
|
* queue, claimed via `cas`, or—when neither is available—dropped or rejected
|
|
@@ -4359,7 +4382,7 @@ const encodeTaskMessage = (codec, origin, task, options) => async (data) => {
|
|
|
4359
4382
|
baseUrl: origin,
|
|
4360
4383
|
taskName: task.name,
|
|
4361
4384
|
data: encoded,
|
|
4362
|
-
started: Temporal$
|
|
4385
|
+
started: Temporal$3.Now.instant().toString(),
|
|
4363
4386
|
attempt: 0,
|
|
4364
4387
|
orderingKey: options.orderingKey,
|
|
4365
4388
|
traceContext: carrier
|
|
@@ -4604,11 +4627,11 @@ var middleware_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
|
4604
4627
|
OutboxContextImpl: () => OutboxContextImpl,
|
|
4605
4628
|
createFederation: () => createFederation
|
|
4606
4629
|
});
|
|
4607
|
-
const Temporal$
|
|
4630
|
+
const Temporal$2 = require_http.Temporal;
|
|
4608
4631
|
const circuitBreakerCasWarningKvStores = /* @__PURE__ */ new WeakSet();
|
|
4609
4632
|
let nextQueueDepthGaugeSourceId = 0;
|
|
4610
4633
|
const retryAfterHttpDate = /* @__PURE__ */ new RegExp("^(?:(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), \\d{2} (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \\d{4} \\d{2}:\\d{2}:\\d{2} GMT|(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), \\d{2}-(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\\d{2} \\d{2}:\\d{2}:\\d{2} GMT|(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (?: \\d|\\d{2}) \\d{2}:\\d{2}:\\d{2} \\d{4})$");
|
|
4611
|
-
function parseRetryAfter(headers, now = Temporal$
|
|
4634
|
+
function parseRetryAfter(headers, now = Temporal$2.Now.instant()) {
|
|
4612
4635
|
const value = headers.get("Retry-After");
|
|
4613
4636
|
if (value == null) return void 0;
|
|
4614
4637
|
const trimmed = value.trim();
|
|
@@ -4626,14 +4649,14 @@ function parseRetryAfter(headers, now = Temporal$1.Now.instant()) {
|
|
|
4626
4649
|
}
|
|
4627
4650
|
function parseRetryAfterDuration(durationLike) {
|
|
4628
4651
|
try {
|
|
4629
|
-
return Temporal$
|
|
4652
|
+
return Temporal$2.Duration.from(durationLike);
|
|
4630
4653
|
} catch (error) {
|
|
4631
4654
|
if (error instanceof RangeError) return void 0;
|
|
4632
4655
|
throw error;
|
|
4633
4656
|
}
|
|
4634
4657
|
}
|
|
4635
4658
|
function clampNegativeDelay(delay) {
|
|
4636
|
-
return delay.sign < 0 ? Temporal$
|
|
4659
|
+
return delay.sign < 0 ? Temporal$2.Duration.from({ seconds: 0 }) : delay;
|
|
4637
4660
|
}
|
|
4638
4661
|
function getBenchmarkRelaxations(allowPrivateAddress, signatureTimeWindow) {
|
|
4639
4662
|
const relaxations = [];
|
|
@@ -4649,7 +4672,7 @@ function getBenchmarkRelaxations(allowPrivateAddress, signatureTimeWindow) {
|
|
|
4649
4672
|
secureDefaultSeconds: 3600
|
|
4650
4673
|
});
|
|
4651
4674
|
else try {
|
|
4652
|
-
const seconds = Temporal$
|
|
4675
|
+
const seconds = Temporal$2.Duration.from(signatureTimeWindow).total({ unit: "seconds" });
|
|
4653
4676
|
if (seconds !== 3600) relaxations.push({
|
|
4654
4677
|
protection: "http_signature_time_window",
|
|
4655
4678
|
effect: "changed",
|
|
@@ -4684,7 +4707,7 @@ function getBenchmarkTriggerOptions(benchmarkOptions) {
|
|
|
4684
4707
|
};
|
|
4685
4708
|
}
|
|
4686
4709
|
function maxDelay(first, second) {
|
|
4687
|
-
return Temporal$
|
|
4710
|
+
return Temporal$2.Duration.compare(first, second) >= 0 ? first : second;
|
|
4688
4711
|
}
|
|
4689
4712
|
function isTransportDeliveryError(error) {
|
|
4690
4713
|
return error instanceof _fedify_vocab_runtime.FetchError || require_http.isAbortError(error);
|
|
@@ -4924,7 +4947,7 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
4924
4947
|
this.inboxRetryPolicy = options.inboxRetryPolicy ?? createExponentialBackoffPolicy();
|
|
4925
4948
|
this.taskRetryPolicy = options.taskRetryPolicy ?? createExponentialBackoffPolicy();
|
|
4926
4949
|
this.taskQueueResolution = options.taskQueueResolution ?? "fallback";
|
|
4927
|
-
this.taskDeduplicationTtl = Temporal$
|
|
4950
|
+
this.taskDeduplicationTtl = Temporal$2.Duration.from(options.taskDeduplicationTtl ?? { hours: 1 });
|
|
4928
4951
|
this.taskDeduplicationFallback = options.taskDeduplicationFallback ?? "open";
|
|
4929
4952
|
this.activityTransformers = options.activityTransformers ?? require_transformers.getDefaultActivityTransformers();
|
|
4930
4953
|
this._tracerProvider = options.tracerProvider;
|
|
@@ -5322,7 +5345,7 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
5322
5345
|
const getPolicyDelay = () => {
|
|
5323
5346
|
if (!policyDelayCalculated) {
|
|
5324
5347
|
retryPolicyDelay = this.outboxRetryPolicy({
|
|
5325
|
-
elapsedTime: Temporal$
|
|
5348
|
+
elapsedTime: Temporal$2.Instant.from(message.started).until(Temporal$2.Now.instant()),
|
|
5326
5349
|
attempts: message.attempt
|
|
5327
5350
|
});
|
|
5328
5351
|
policyDelayCalculated = true;
|
|
@@ -5511,7 +5534,7 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
5511
5534
|
throw error;
|
|
5512
5535
|
}
|
|
5513
5536
|
const delay = this.inboxRetryPolicy({
|
|
5514
|
-
elapsedTime: Temporal$
|
|
5537
|
+
elapsedTime: Temporal$2.Instant.from(message.started).until(Temporal$2.Now.instant()),
|
|
5515
5538
|
attempts: message.attempt
|
|
5516
5539
|
});
|
|
5517
5540
|
if (delay != null) {
|
|
@@ -5670,7 +5693,7 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
5670
5693
|
await handleRetriableFailure(error);
|
|
5671
5694
|
return;
|
|
5672
5695
|
}
|
|
5673
|
-
if (cacheKey != null) await this.kv.set(cacheKey, true, { ttl: Temporal$
|
|
5696
|
+
if (cacheKey != null) await this.kv.set(cacheKey, true, { ttl: Temporal$2.Duration.from({ days: 1 }) });
|
|
5674
5697
|
logger.info("Activity {activityId} has been processed.", {
|
|
5675
5698
|
activityId: activity?.id?.href,
|
|
5676
5699
|
activity: message.activity,
|
|
@@ -5724,9 +5747,9 @@ var FederationImpl = class extends FederationBuilderImpl {
|
|
|
5724
5747
|
const queue = this.resolveTaskQueue(def.name);
|
|
5725
5748
|
if (queue?.nativeRetrial) throw error;
|
|
5726
5749
|
const retryPolicy = def.retryPolicy ?? this.taskRetryPolicy;
|
|
5727
|
-
let elapsedTime = Temporal$
|
|
5750
|
+
let elapsedTime = Temporal$2.Duration.from({ seconds: 0 });
|
|
5728
5751
|
try {
|
|
5729
|
-
elapsedTime = Temporal$
|
|
5752
|
+
elapsedTime = Temporal$2.Instant.from(message.started).until(Temporal$2.Now.instant());
|
|
5730
5753
|
} catch (parseError) {
|
|
5731
5754
|
logger.error("Custom task {taskName} has an unparsable started time {started}; treating elapsedTime as zero:\n{error}", {
|
|
5732
5755
|
taskName: message.taskName,
|
|
@@ -7450,7 +7473,7 @@ function getRequestId(request) {
|
|
|
7450
7473
|
}
|
|
7451
7474
|
//#endregion
|
|
7452
7475
|
//#region src/federation/mq.ts
|
|
7453
|
-
const Temporal = require_http.Temporal;
|
|
7476
|
+
const Temporal$1 = require_http.Temporal;
|
|
7454
7477
|
/**
|
|
7455
7478
|
* A message queue that processes messages in the same process.
|
|
7456
7479
|
* Do not use this in production as it does neither persist messages nor
|
|
@@ -7485,7 +7508,7 @@ var InProcessMessageQueue = class {
|
|
|
7485
7508
|
constructor(options = {}) {
|
|
7486
7509
|
this.#messages = [];
|
|
7487
7510
|
this.#monitors = {};
|
|
7488
|
-
this.#pollIntervalMs = Temporal.Duration.from(options.pollInterval ?? { seconds: 5 }).total("millisecond");
|
|
7511
|
+
this.#pollIntervalMs = Temporal$1.Duration.from(options.pollInterval ?? { seconds: 5 }).total("millisecond");
|
|
7489
7512
|
this.#delayedMessages = 0;
|
|
7490
7513
|
this.#processingKeys = /* @__PURE__ */ new Set();
|
|
7491
7514
|
}
|
|
@@ -9,7 +9,7 @@ let _opentelemetry_semantic_conventions = require("@opentelemetry/semantic-conve
|
|
|
9
9
|
let byte_encodings_base64 = require("byte-encodings/base64");
|
|
10
10
|
//#region deno.json
|
|
11
11
|
var name = "@fedify/fedify";
|
|
12
|
-
var version = "2.4.0-dev.
|
|
12
|
+
var version = "2.4.0-dev.1889+70cfc7ff";
|
|
13
13
|
//#endregion
|
|
14
14
|
//#region ../../node_modules/.pnpm/temporal-polyfill@1.0.1/node_modules/temporal-polyfill/chunks/root.js
|
|
15
15
|
const NativeTemporal = globalThis.Temporal;
|
|
@@ -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.1889+70cfc7ff";
|
|
14
14
|
//#endregion
|
|
15
15
|
//#region src/sig/accept.ts
|
|
16
16
|
/**
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Temporal } from "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-DdOBy0fz.mjs";
|
|
5
|
+
import { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-Crg4Vbos.mjs";
|
|
6
6
|
import { i as validateAcceptSignature, n as fulfillAcceptSignature, r as parseAcceptSignature } from "./accept-CPVqki78.mjs";
|
|
7
|
-
import { o as validateCryptoKey, r as fetchKeyDetailed } from "./key-
|
|
7
|
+
import { o as validateCryptoKey, r as fetchKeyDetailed } from "./key-DGKxCXcy.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 "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-DdOBy0fz.mjs";
|
|
5
|
+
import { _ as recordKeyLookup, n as getDurationMs, t as classifyFetchError } from "./metrics-Crg4Vbos.mjs";
|
|
6
6
|
import { getLogger } from "@logtape/logtape";
|
|
7
7
|
import { CryptographicKey, Multikey, Object as Object$1, isActor } from "@fedify/vocab";
|
|
8
8
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Temporal } from "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-Crg4Vbos.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,5 +1,5 @@
|
|
|
1
1
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
2
|
-
const require_http = require("./http-
|
|
2
|
+
const require_http = require("./http-CFkGXp3u.cjs");
|
|
3
3
|
let _logtape_logtape = require("@logtape/logtape");
|
|
4
4
|
let es_toolkit = require("es-toolkit");
|
|
5
5
|
let _fedify_vocab_runtime = require("@fedify/vocab-runtime");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Temporal } from "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-CIoEAxMQ.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";
|