@fedify/fedify 1.7.11 → 1.7.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{actor-DgWryCk8.js → actor-GZRoTRqg.js} +1059 -2276
- package/dist/{actor-2ENhJMd7.js → actor-TYqJGdVq.js} +6 -9
- package/dist/{assert-DmFG7ppO.js → assert-LOEeCUK5.js} +1 -1
- package/dist/{assert_equals-CTYbeopb.js → assert_equals-B44MxcIj.js} +2 -4
- package/dist/{assert_instance_of-CF09JHYM.js → assert_instance_of-XtuFevV_.js} +1 -1
- package/dist/{assert_is_error-nrwA1GeT.js → assert_is_error-BTlryvT0.js} +1 -1
- package/dist/{assert_not_equals-Dc7y-V5Q.js → assert_not_equals-C685gKx6.js} +1 -1
- package/dist/{assert_rejects-C-sxEMM5.js → assert_rejects-DWQ4jaf9.js} +2 -2
- package/dist/{assert_throws-Cn9C6Jur.js → assert_throws-YetpVSc-.js} +2 -2
- package/dist/{authdocloader-BUJAQQAE.js → authdocloader-BopfyipD.js} +3 -3
- package/dist/{authdocloader-CK17fG7y.js → authdocloader-hiFSyM7V.js} +4 -4
- package/dist/{builder-CZM8EtHh.js → builder-mi6RdzNE.js} +7 -10
- package/dist/{chunk-HsBuZ-b2.js → chunk-Cx8LTkjm.js} +3 -1
- package/dist/{client-D83KwIk4.js → client-DuUKk4pk.js} +6 -6
- package/dist/compat/transformers.test.js +27 -28
- package/dist/{context-MUHrGcK9.js → context-RMU32mk4.js} +2 -2
- package/dist/{docloader-BcyuO_kK.js → docloader-DJxET2fN.js} +5 -9
- package/dist/{docloader-D4wl8z_4.js → docloader-bgBm1Hd1.js} +4 -6
- package/dist/{esm-Db4De7AS.js → esm-DO9PrujO.js} +23 -34
- package/dist/federation/builder.test.js +23 -29
- package/dist/federation/collection.test.js +9 -9
- package/dist/federation/handler.test.js +33 -33
- package/dist/federation/inbox.test.js +10 -10
- package/dist/federation/keycache.test.js +9 -9
- package/dist/federation/kv.test.js +10 -9
- package/dist/federation/middleware.test.js +76 -99
- package/dist/federation/mod.js +11 -11
- package/dist/federation/mq.test.js +10 -11
- package/dist/federation/retry.test.js +3 -3
- package/dist/federation/router.test.js +9 -9
- package/dist/federation/send.test.js +22 -22
- package/dist/{federation-BRIQn-GV.js → federation-B0aljx0V.js} +1 -2
- package/dist/{http-DFHfa9tA.js → http-D2DkwsjA.js} +8 -15
- package/dist/{http-Dsj_eYDw.js → http-vqMAvOVs.js} +8 -15
- package/dist/{inbox-CltmHpHc.js → inbox-DAAZZl2k.js} +5 -7
- package/dist/key-5ssHQ67E.js +16 -0
- package/dist/{key-bBurC_PZ.js → key-DSJGnD10.js} +4 -4
- package/dist/{key-qFVeObG1.js → key-DmqJj57e.js} +5 -8
- package/dist/{key-bttcdrh5.js → key-KVhaUM92.js} +6 -9
- package/dist/{keycache-DijbBawF.js → keycache-C1pEuRyQ.js} +2 -2
- package/dist/{keys-DJ5t4jB4.js → keys-C4XQHW5_.js} +1 -1
- package/dist/{ld-U-lGfuzj.js → ld-DzlJ_IpT.js} +9 -16
- package/dist/{lookup-BlPHJ-Ff.js → lookup-CSngxuWm.js} +2 -4
- package/dist/{lookup-C8ZpflGI.js → lookup-D0je8AqR.js} +7 -11
- package/dist/{lookup-BGqnk7rW.js → lookup-DL62q3Xh.js} +3 -5
- package/dist/{middleware-D66R1UZl.js → middleware-3wVT6S9E.js} +34 -52
- package/dist/middleware-CxFoFBD8.js +33 -0
- package/dist/{middleware-BRzqW-QG.js → middleware-DlDXugwZ.js} +34 -58
- package/dist/middleware-w7_U3fFi.js +17 -0
- package/dist/mod.js +11 -11
- package/dist/{multibase-DeCHcK8L.js → multibase-CnLHszip.js} +1 -2
- package/dist/nodeinfo/client.test.js +20 -23
- package/dist/nodeinfo/handler.test.js +32 -32
- package/dist/nodeinfo/mod.js +2 -2
- package/dist/nodeinfo/semver.test.js +23 -30
- package/dist/nodeinfo/types.test.js +11 -11
- package/dist/{owner-2zho-3Ew.js → owner-81ey_76X.js} +3 -3
- package/dist/{proof-BYHc1mMr.js → proof-BlULDH4H.js} +8 -14
- package/dist/{proof-3J23UdVg.js → proof-DlI7QNdn.js} +12 -25
- package/dist/runtime/authdocloader.test.js +21 -21
- package/dist/runtime/docloader.test.js +16 -18
- package/dist/runtime/key.test.js +17 -17
- package/dist/runtime/langstr.test.js +9 -9
- package/dist/runtime/mod.js +6 -6
- package/dist/runtime/multibase/multibase.test.js +11 -12
- package/dist/runtime/url.test.js +6 -6
- package/dist/{semver-DWClQt_5.js → semver-BNrOOAs9.js} +1 -3
- package/dist/{send-CW7iJ-b9.js → send-DdxfTHo6.js} +3 -4
- package/dist/sig/http.test.js +40 -54
- package/dist/sig/key.test.js +18 -18
- package/dist/sig/ld.test.js +20 -22
- package/dist/sig/mod.js +6 -6
- package/dist/sig/owner.test.js +20 -20
- package/dist/sig/proof.test.js +19 -19
- package/dist/{std__assert-vp0TKMS1.js → std__assert-o_r9vqm1.js} +1 -1
- package/dist/testing/docloader.test.js +9 -9
- package/dist/testing/mod.js +1 -1
- package/dist/{testing-BZ0dJ4qn.js → testing-DLyvtiiW.js} +3 -5
- package/dist/{type-D2s5lmbZ.js → type-CFuiGLz9.js} +1 -2
- package/dist/{types-C7C_l-jz.js → types-CJHS5pXl.js} +1 -1
- package/dist/{types-DXmLob1B.js → types-CmVV9LT1.js} +6 -8
- package/dist/{url-kTAI6_KP.js → url-C2xuoQD1.js} +2 -4
- package/dist/vocab/actor.test.js +104 -156
- package/dist/vocab/lookup.test.js +17 -17
- package/dist/vocab/mod.js +4 -4
- package/dist/vocab/type.test.js +11 -15
- package/dist/vocab/vocab.test.js +45 -49
- package/dist/{vocab-Cy9XhW_T.js → vocab-BebR0kAy.js} +6 -10
- package/dist/{vocab-BojAnGjI.js → vocab-DFlq4Wa6.js} +1057 -2270
- package/dist/webfinger/handler.test.js +33 -34
- package/dist/webfinger/lookup.test.js +13 -13
- package/dist/webfinger/mod.js +2 -2
- package/dist/x/cfworkers.test.js +9 -9
- package/package.json +1 -1
- package/dist/key-BROjrzkW.js +0 -16
- package/dist/middleware-BhqeOJrC.js +0 -17
- package/dist/middleware-DFra19vb.js +0 -33
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { deno_default } from "./docloader-
|
|
7
|
-
import { Application, Group, Organization, Person, Service } from "./vocab-
|
|
8
|
-
import { lookupWebFinger } from "./lookup-
|
|
9
|
-
import { getTypeId } from "./type-
|
|
6
|
+
import { deno_default } from "./docloader-bgBm1Hd1.js";
|
|
7
|
+
import { Application, Group, Organization, Person, Service } from "./vocab-DFlq4Wa6.js";
|
|
8
|
+
import { lookupWebFinger } from "./lookup-DL62q3Xh.js";
|
|
9
|
+
import { getTypeId } from "./type-CFuiGLz9.js";
|
|
10
10
|
import { SpanStatusCode, trace } from "@opentelemetry/api";
|
|
11
11
|
import { domainToASCII, domainToUnicode } from "node:url";
|
|
12
12
|
|
|
@@ -72,9 +72,7 @@ function getActorClassByTypeName(typeName) {
|
|
|
72
72
|
* @since 0.4.0
|
|
73
73
|
*/
|
|
74
74
|
async function getActorHandle(actor, options = {}) {
|
|
75
|
-
|
|
76
|
-
const tracer = tracerProvider.getTracer(deno_default.name, deno_default.version);
|
|
77
|
-
return await tracer.startActiveSpan("activitypub.get_actor_handle", async (span) => {
|
|
75
|
+
return await (options.tracerProvider ?? trace.getTracerProvider()).getTracer(deno_default.name, deno_default.version).startActiveSpan("activitypub.get_actor_handle", async (span) => {
|
|
78
76
|
if (isActor(actor)) {
|
|
79
77
|
if (actor.id != null) span.setAttribute("activitypub.actor.id", actor.id.href);
|
|
80
78
|
span.setAttribute("activitypub.actor.type", getTypeId(actor).href);
|
|
@@ -105,8 +103,7 @@ async function getActorHandleInternal(actor, options = {}) {
|
|
|
105
103
|
for (const alias of aliases) {
|
|
106
104
|
const match = alias.match(/^acct:([^@]+)@([^@]+)$/);
|
|
107
105
|
if (match != null) {
|
|
108
|
-
|
|
109
|
-
if (hostname !== actorId.hostname && !await verifyCrossOriginActorHandle(actorId.href, alias, options.userAgent, options.tracerProvider)) continue;
|
|
106
|
+
if (new URL(`https://${match[2]}/`).hostname !== actorId.hostname && !await verifyCrossOriginActorHandle(actorId.href, alias, options.userAgent, options.tracerProvider)) continue;
|
|
110
107
|
return normalizeActorHandle(`@${match[1]}@${match[2]}`, options);
|
|
111
108
|
}
|
|
112
109
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { AssertionError } from "./assert_equals-
|
|
6
|
+
import { AssertionError } from "./assert_equals-B44MxcIj.js";
|
|
7
7
|
|
|
8
8
|
//#region node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert.js
|
|
9
9
|
/**
|
|
@@ -286,8 +286,7 @@ const assertionState = new AssertionState();
|
|
|
286
286
|
//#endregion
|
|
287
287
|
//#region node_modules/.pnpm/@jsr+std__internal@1.0.10/node_modules/@jsr/std__internal/styles.js
|
|
288
288
|
const { Deno } = globalThis;
|
|
289
|
-
const
|
|
290
|
-
const enabled = !noColor;
|
|
289
|
+
const enabled = !(typeof Deno?.noColor === "boolean" ? Deno.noColor : false);
|
|
291
290
|
function code(open, close) {
|
|
292
291
|
return {
|
|
293
292
|
open: `\x1b[${open.join(";")}m`,
|
|
@@ -1042,8 +1041,7 @@ function checkWindows() {
|
|
|
1042
1041
|
* @param options The optional object for the assertion.
|
|
1043
1042
|
*/ function assertEquals(actual, expected, msg) {
|
|
1044
1043
|
if (equal(actual, expected)) return;
|
|
1045
|
-
|
|
1046
|
-
let message = `Values are not equal${msgSuffix}`;
|
|
1044
|
+
let message = `Values are not equal${msg ? `: ${msg}` : "."}`;
|
|
1047
1045
|
const actualString = format(actual);
|
|
1048
1046
|
const expectedString = format(expected);
|
|
1049
1047
|
const stringDiff = typeof actual === "string" && typeof expected === "string";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { AssertionError } from "./assert_equals-
|
|
6
|
+
import { AssertionError } from "./assert_equals-B44MxcIj.js";
|
|
7
7
|
|
|
8
8
|
//#region node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_instance_of.js
|
|
9
9
|
/**
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { AssertionError, stripAnsiCode } from "./assert_equals-
|
|
6
|
+
import { AssertionError, stripAnsiCode } from "./assert_equals-B44MxcIj.js";
|
|
7
7
|
|
|
8
8
|
//#region node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_is_error.js
|
|
9
9
|
/**
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { AssertionError, equal } from "./assert_equals-
|
|
6
|
+
import { AssertionError, equal } from "./assert_equals-B44MxcIj.js";
|
|
7
7
|
|
|
8
8
|
//#region node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_not_equals.js
|
|
9
9
|
/**
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { AssertionError } from "./assert_equals-
|
|
7
|
-
import { assertIsError } from "./assert_is_error-
|
|
6
|
+
import { AssertionError } from "./assert_equals-B44MxcIj.js";
|
|
7
|
+
import { assertIsError } from "./assert_is_error-BTlryvT0.js";
|
|
8
8
|
|
|
9
9
|
//#region node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_false.js
|
|
10
10
|
/**
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { AssertionError } from "./assert_equals-
|
|
7
|
-
import { assertIsError } from "./assert_is_error-
|
|
6
|
+
import { AssertionError } from "./assert_equals-B44MxcIj.js";
|
|
7
|
+
import { assertIsError } from "./assert_is_error-BTlryvT0.js";
|
|
8
8
|
|
|
9
9
|
//#region node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_throws.js
|
|
10
10
|
function assertThrows(fn, errorClassOrMsg, msgIncludesOrMsg, msg) {
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
|
|
5
|
-
import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./docloader-
|
|
6
|
-
import { validateCryptoKey } from "./key-
|
|
7
|
-
import { doubleKnock } from "./http-
|
|
5
|
+
import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./docloader-DJxET2fN.js";
|
|
6
|
+
import { validateCryptoKey } from "./key-DmqJj57e.js";
|
|
7
|
+
import { doubleKnock } from "./http-vqMAvOVs.js";
|
|
8
8
|
import { getLogger } from "@logtape/logtape";
|
|
9
9
|
|
|
10
10
|
//#region runtime/authdocloader.ts
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { createRequest, getRemoteDocument, logRequest } from "./docloader-
|
|
7
|
-
import { UrlError, validatePublicUrl } from "./url-
|
|
8
|
-
import { validateCryptoKey } from "./key-
|
|
9
|
-
import { doubleKnock } from "./http-
|
|
6
|
+
import { createRequest, getRemoteDocument, logRequest } from "./docloader-bgBm1Hd1.js";
|
|
7
|
+
import { UrlError, validatePublicUrl } from "./url-C2xuoQD1.js";
|
|
8
|
+
import { validateCryptoKey } from "./key-KVhaUM92.js";
|
|
9
|
+
import { doubleKnock } from "./http-D2DkwsjA.js";
|
|
10
10
|
import { getLogger } from "@logtape/logtape";
|
|
11
11
|
|
|
12
12
|
//#region runtime/authdocloader.ts
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { deno_default } from "./docloader-
|
|
6
|
+
import { deno_default } from "./docloader-bgBm1Hd1.js";
|
|
7
7
|
import { Router, RouterError } from "./router-D_aVZZUc.js";
|
|
8
|
-
import { getTypeId } from "./type-
|
|
9
|
-
import { InboxListenerSet } from "./inbox-
|
|
8
|
+
import { getTypeId } from "./type-CFuiGLz9.js";
|
|
9
|
+
import { InboxListenerSet } from "./inbox-DAAZZl2k.js";
|
|
10
10
|
import { getLogger } from "@logtape/logtape";
|
|
11
11
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
12
12
|
|
|
@@ -34,7 +34,7 @@ var FederationBuilderImpl = class {
|
|
|
34
34
|
this.objectTypeIds = {};
|
|
35
35
|
}
|
|
36
36
|
async build(options) {
|
|
37
|
-
const { FederationImpl } = await import("./middleware-
|
|
37
|
+
const { FederationImpl } = await import("./middleware-CxFoFBD8.js");
|
|
38
38
|
const f = new FederationImpl(options);
|
|
39
39
|
const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
|
|
40
40
|
f.router = this.router.clone();
|
|
@@ -175,8 +175,7 @@ var FederationBuilderImpl = class {
|
|
|
175
175
|
}
|
|
176
176
|
setNodeInfoDispatcher(path, dispatcher) {
|
|
177
177
|
if (this.router.has("nodeInfo")) throw new RouterError("NodeInfo dispatcher already set.");
|
|
178
|
-
|
|
179
|
-
if (variables.size !== 0) throw new RouterError("Path for NodeInfo dispatcher must have no variables.");
|
|
178
|
+
if (this.router.add(path, "nodeInfo").size !== 0) throw new RouterError("Path for NodeInfo dispatcher must have no variables.");
|
|
180
179
|
this.nodeInfoDispatcher = dispatcher;
|
|
181
180
|
}
|
|
182
181
|
setObjectDispatcher(cls, path, dispatcher) {
|
|
@@ -186,8 +185,7 @@ var FederationBuilderImpl = class {
|
|
|
186
185
|
if (variables.size < 1) throw new RouterError("Path for object dispatcher must have at least one variable.");
|
|
187
186
|
const callbacks = {
|
|
188
187
|
dispatcher: (ctx, values) => {
|
|
189
|
-
|
|
190
|
-
return tracer.startActiveSpan("activitypub.dispatch_object", {
|
|
188
|
+
return this._getTracer().startActiveSpan("activitypub.dispatch_object", {
|
|
191
189
|
kind: SpanKind.SERVER,
|
|
192
190
|
attributes: {
|
|
193
191
|
"fedify.object.type": cls.typeId.href,
|
|
@@ -458,8 +456,7 @@ var FederationBuilderImpl = class {
|
|
|
458
456
|
]).warn("The {{handle}} variable in the inbox path is deprecated. Use {{identifier}} instead.");
|
|
459
457
|
}
|
|
460
458
|
if (sharedInboxPath != null) {
|
|
461
|
-
|
|
462
|
-
if (siVars.size !== 0) throw new RouterError("Path for shared inbox must have no variables.");
|
|
459
|
+
if (this.router.add(sharedInboxPath, "sharedInbox").size !== 0) throw new RouterError("Path for shared inbox must have no variables.");
|
|
463
460
|
}
|
|
464
461
|
const listeners = this.inboxListeners = new InboxListenerSet();
|
|
465
462
|
const setters = {
|
|
@@ -15,11 +15,13 @@ var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
|
15
15
|
var __commonJS = (cb, mod) => function() {
|
|
16
16
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
17
17
|
};
|
|
18
|
-
var __export = (
|
|
18
|
+
var __export = (all) => {
|
|
19
|
+
let target = {};
|
|
19
20
|
for (var name in all) __defProp(target, name, {
|
|
20
21
|
get: all[name],
|
|
21
22
|
enumerable: true
|
|
22
23
|
});
|
|
24
|
+
return target;
|
|
23
25
|
};
|
|
24
26
|
var __copyProps = (to, from, except, desc) => {
|
|
25
27
|
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { getUserAgent } from "./docloader-
|
|
7
|
-
import { parseSemVer } from "./semver-
|
|
6
|
+
import { getUserAgent } from "./docloader-bgBm1Hd1.js";
|
|
7
|
+
import { parseSemVer } from "./semver-BNrOOAs9.js";
|
|
8
8
|
import { getLogger } from "@logtape/logtape";
|
|
9
9
|
|
|
10
10
|
//#region nodeinfo/client.ts
|
|
@@ -28,7 +28,7 @@ async function getNodeInfo(url, options = {}) {
|
|
|
28
28
|
status: wellKnownResponse.status,
|
|
29
29
|
statusText: wellKnownResponse.statusText
|
|
30
30
|
});
|
|
31
|
-
return
|
|
31
|
+
return;
|
|
32
32
|
}
|
|
33
33
|
const wellKnownRd = await wellKnownResponse.json();
|
|
34
34
|
const link = wellKnownRd?.links?.find((link$1) => link$1 != null && "rel" in link$1 && (link$1.rel === "http://nodeinfo.diaspora.software/ns/schema/2.0" || link$1.rel === "http://nodeinfo.diaspora.software/ns/schema/2.1") && "href" in link$1 && link$1.href != null);
|
|
@@ -37,7 +37,7 @@ async function getNodeInfo(url, options = {}) {
|
|
|
37
37
|
url: wellKnownUrl.href,
|
|
38
38
|
resourceDescriptor: wellKnownRd
|
|
39
39
|
});
|
|
40
|
-
return
|
|
40
|
+
return;
|
|
41
41
|
}
|
|
42
42
|
nodeInfoUrl = link.href;
|
|
43
43
|
}
|
|
@@ -51,7 +51,7 @@ async function getNodeInfo(url, options = {}) {
|
|
|
51
51
|
status: response.status,
|
|
52
52
|
statusText: response.statusText
|
|
53
53
|
});
|
|
54
|
-
return
|
|
54
|
+
return;
|
|
55
55
|
}
|
|
56
56
|
const data = await response.json();
|
|
57
57
|
if (options.parse === "none") return data;
|
|
@@ -61,7 +61,7 @@ async function getNodeInfo(url, options = {}) {
|
|
|
61
61
|
url: url.toString(),
|
|
62
62
|
error
|
|
63
63
|
});
|
|
64
|
-
return
|
|
64
|
+
return;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
@@ -3,41 +3,40 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { assertEquals } from "../assert_equals-
|
|
7
|
-
import { assert } from "../assert-
|
|
8
|
-
import { assertInstanceOf } from "../assert_instance_of-
|
|
6
|
+
import { assertEquals } from "../assert_equals-B44MxcIj.js";
|
|
7
|
+
import { assert } from "../assert-LOEeCUK5.js";
|
|
8
|
+
import { assertInstanceOf } from "../assert_instance_of-XtuFevV_.js";
|
|
9
9
|
import { MemoryKvStore } from "../kv-BMY6Qf_A.js";
|
|
10
|
-
import { FederationImpl, actorDehydrator, autoIdAssigner } from "../middleware-
|
|
11
|
-
import "../docloader-
|
|
12
|
-
import "../url-
|
|
13
|
-
import "../semver-
|
|
14
|
-
import "../client-
|
|
10
|
+
import { FederationImpl, actorDehydrator, autoIdAssigner } from "../middleware-3wVT6S9E.js";
|
|
11
|
+
import "../docloader-bgBm1Hd1.js";
|
|
12
|
+
import "../url-C2xuoQD1.js";
|
|
13
|
+
import "../semver-BNrOOAs9.js";
|
|
14
|
+
import "../client-DuUKk4pk.js";
|
|
15
15
|
import "../router-D_aVZZUc.js";
|
|
16
|
-
import "../types-
|
|
17
|
-
import "../multibase-
|
|
18
|
-
import { Follow, Person } from "../vocab-
|
|
16
|
+
import "../types-CJHS5pXl.js";
|
|
17
|
+
import "../multibase-CnLHszip.js";
|
|
18
|
+
import { Follow, Person } from "../vocab-DFlq4Wa6.js";
|
|
19
19
|
import "../langstr-DbWheeIS.js";
|
|
20
|
-
import "../lookup-
|
|
21
|
-
import "../type-
|
|
22
|
-
import "../actor-
|
|
23
|
-
import "../key-
|
|
24
|
-
import "../http-
|
|
25
|
-
import "../authdocloader-
|
|
26
|
-
import "../ld-
|
|
27
|
-
import "../owner-
|
|
28
|
-
import "../proof-
|
|
29
|
-
import "../lookup-
|
|
30
|
-
import "../inbox-
|
|
31
|
-
import "../builder-
|
|
20
|
+
import "../lookup-DL62q3Xh.js";
|
|
21
|
+
import "../type-CFuiGLz9.js";
|
|
22
|
+
import "../actor-TYqJGdVq.js";
|
|
23
|
+
import "../key-KVhaUM92.js";
|
|
24
|
+
import "../http-D2DkwsjA.js";
|
|
25
|
+
import "../authdocloader-hiFSyM7V.js";
|
|
26
|
+
import "../ld-DzlJ_IpT.js";
|
|
27
|
+
import "../owner-81ey_76X.js";
|
|
28
|
+
import "../proof-BlULDH4H.js";
|
|
29
|
+
import "../lookup-D0je8AqR.js";
|
|
30
|
+
import "../inbox-DAAZZl2k.js";
|
|
31
|
+
import "../builder-mi6RdzNE.js";
|
|
32
32
|
import "../collection-Dfb0TPno.js";
|
|
33
|
-
import "../keycache-
|
|
33
|
+
import "../keycache-C1pEuRyQ.js";
|
|
34
34
|
import "../retry-BiIhZWgD.js";
|
|
35
|
-
import "../send-
|
|
36
|
-
import { test } from "../testing-
|
|
35
|
+
import "../send-DdxfTHo6.js";
|
|
36
|
+
import { test } from "../testing-DLyvtiiW.js";
|
|
37
37
|
|
|
38
38
|
//#region compat/transformers.test.ts
|
|
39
|
-
const
|
|
40
|
-
const context = federation.createContext(new URL("http://example.com/"));
|
|
39
|
+
const context = new FederationImpl({ kv: new MemoryKvStore() }).createContext(new URL("http://example.com/"));
|
|
41
40
|
test("autoIdAssigner", async () => {
|
|
42
41
|
const activity = new Follow({
|
|
43
42
|
actor: new URL("http://example.com/actors/1"),
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
6
|
import { RouterError } from "./router-D_aVZZUc.js";
|
|
7
|
-
import { lookupWebFinger } from "./lookup-
|
|
8
|
-
import { lookupObject, traverseCollection } from "./lookup-
|
|
7
|
+
import { lookupWebFinger } from "./lookup-DL62q3Xh.js";
|
|
8
|
+
import { lookupObject, traverseCollection } from "./lookup-D0je8AqR.js";
|
|
9
9
|
import { mockDocumentLoader } from "./docloader-09nVWLAZ.js";
|
|
10
10
|
import { trace } from "@opentelemetry/api";
|
|
11
11
|
|
|
@@ -10,7 +10,7 @@ import { isIP } from "node:net";
|
|
|
10
10
|
|
|
11
11
|
//#region deno.json
|
|
12
12
|
var name = "@fedify/fedify";
|
|
13
|
-
var version = "1.7.
|
|
13
|
+
var version = "1.7.12";
|
|
14
14
|
var license = "MIT";
|
|
15
15
|
var exports = {
|
|
16
16
|
".": "./mod.ts",
|
|
@@ -4270,8 +4270,7 @@ async function validatePublicUrl(url) {
|
|
|
4270
4270
|
if (hostname.startsWith("[") && hostname.endsWith("]")) hostname = hostname.substring(1, hostname.length - 2);
|
|
4271
4271
|
if (hostname === "localhost") throw new UrlError("Localhost is not allowed");
|
|
4272
4272
|
if ("Deno" in globalThis && !isIP(hostname)) {
|
|
4273
|
-
|
|
4274
|
-
if (netPermission.state !== "granted") return;
|
|
4273
|
+
if ((await Deno.permissions.query({ name: "net" })).state !== "granted") return;
|
|
4275
4274
|
}
|
|
4276
4275
|
if ("Bun" in globalThis) {
|
|
4277
4276
|
if (hostname === "example.com" || hostname.endsWith(".example.com")) return;
|
|
@@ -4307,8 +4306,7 @@ function expandIPv6Address(address) {
|
|
|
4307
4306
|
if (address.startsWith("::")) address = "0000" + address;
|
|
4308
4307
|
if (address.endsWith("::")) address = address + "0000";
|
|
4309
4308
|
address = address.replace("::", ":0000".repeat(8 - (address.match(/:/g) || []).length) + ":");
|
|
4310
|
-
|
|
4311
|
-
return parts.map((part) => part.padStart(4, "0")).join(":");
|
|
4309
|
+
return address.split(":").map((part) => part.padStart(4, "0")).join(":");
|
|
4312
4310
|
}
|
|
4313
4311
|
|
|
4314
4312
|
//#endregion
|
|
@@ -4431,8 +4429,7 @@ async function getRemoteDocument(url, response, fetch$1) {
|
|
|
4431
4429
|
const attribs = {};
|
|
4432
4430
|
while ((m2 = p2.exec(rawAttrs)) !== null) {
|
|
4433
4431
|
const key = m2[1].toLowerCase();
|
|
4434
|
-
|
|
4435
|
-
attribs[key] = value;
|
|
4432
|
+
attribs[key] = m2[3] ?? m2[4] ?? m2[5] ?? "";
|
|
4436
4433
|
}
|
|
4437
4434
|
if (attribs.rel === "alternate" && "type" in attribs && (attribs.type === "application/activity+json" || attribs.type === "application/ld+json" || attribs.type.startsWith("application/ld+json;")) && "href" in attribs && new URL(attribs.href, docUrl).href !== docUrl.href) {
|
|
4438
4435
|
logger.debug("Found alternate document: {alternateUrl} from {url}", {
|
|
@@ -4594,8 +4591,7 @@ function getUserAgent({ software, url } = {}) {
|
|
|
4594
4591
|
const userAgent = software == null ? [fedify] : [software, fedify];
|
|
4595
4592
|
if (runtime != null) userAgent.push(runtime);
|
|
4596
4593
|
if (url != null) userAgent.push(`+${url.toString()}`);
|
|
4597
|
-
|
|
4598
|
-
return `${first} (${userAgent.join("; ")})`;
|
|
4594
|
+
return `${userAgent.shift()} (${userAgent.join("; ")})`;
|
|
4599
4595
|
}
|
|
4600
4596
|
|
|
4601
4597
|
//#endregion
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { UrlError, validatePublicUrl } from "./url-
|
|
6
|
+
import { UrlError, validatePublicUrl } from "./url-C2xuoQD1.js";
|
|
7
7
|
import { getLogger } from "@logtape/logtape";
|
|
8
8
|
import { HTTPHeaderLink } from "@hugoalh/http-header-link";
|
|
9
9
|
import process from "node:process";
|
|
10
10
|
|
|
11
11
|
//#region deno.json
|
|
12
12
|
var name = "@fedify/fedify";
|
|
13
|
-
var version = "1.7.
|
|
13
|
+
var version = "1.7.12";
|
|
14
14
|
var license = "MIT";
|
|
15
15
|
var exports = {
|
|
16
16
|
".": "./mod.ts",
|
|
@@ -4372,8 +4372,7 @@ async function getRemoteDocument(url, response, fetch$1) {
|
|
|
4372
4372
|
const attribs = {};
|
|
4373
4373
|
while ((m2 = p2.exec(rawAttrs)) !== null) {
|
|
4374
4374
|
const key = m2[1].toLowerCase();
|
|
4375
|
-
|
|
4376
|
-
attribs[key] = value;
|
|
4375
|
+
attribs[key] = m2[3] ?? m2[4] ?? m2[5] ?? "";
|
|
4377
4376
|
}
|
|
4378
4377
|
if (attribs.rel === "alternate" && "type" in attribs && (attribs.type === "application/activity+json" || attribs.type === "application/ld+json" || attribs.type.startsWith("application/ld+json;")) && "href" in attribs && new URL(attribs.href, docUrl).href !== docUrl.href) {
|
|
4379
4378
|
logger.debug("Found alternate document: {alternateUrl} from {url}", {
|
|
@@ -4535,8 +4534,7 @@ function getUserAgent({ software, url } = {}) {
|
|
|
4535
4534
|
const userAgent = software == null ? [fedify] : [software, fedify];
|
|
4536
4535
|
if (runtime != null) userAgent.push(runtime);
|
|
4537
4536
|
if (url != null) userAgent.push(`+${url.toString()}`);
|
|
4538
|
-
|
|
4539
|
-
return `${first} (${userAgent.join("; ")})`;
|
|
4537
|
+
return `${userAgent.shift()} (${userAgent.join("; ")})`;
|
|
4540
4538
|
}
|
|
4541
4539
|
|
|
4542
4540
|
//#endregion
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { __commonJS, __toESM } from "./chunk-
|
|
6
|
+
import { __commonJS, __toESM } from "./chunk-Cx8LTkjm.js";
|
|
7
7
|
|
|
8
8
|
//#region node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js
|
|
9
9
|
var require_glob_to_regexp = /* @__PURE__ */ __commonJS({ "node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js": ((exports, module) => {
|
|
@@ -66,13 +66,10 @@ var require_glob_to_regexp = /* @__PURE__ */ __commonJS({ "node_modules/.pnpm/gl
|
|
|
66
66
|
}
|
|
67
67
|
var nextChar = str[i + 1];
|
|
68
68
|
if (!globstar) reStr += ".*";
|
|
69
|
-
else {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
i++;
|
|
74
|
-
} else reStr += "([^/]*)";
|
|
75
|
-
}
|
|
69
|
+
else if (starCount > 1 && (prevChar === "/" || prevChar === void 0) && (nextChar === "/" || nextChar === void 0)) {
|
|
70
|
+
reStr += "((?:[^/]*(?:/|$))*)";
|
|
71
|
+
i++;
|
|
72
|
+
} else reStr += "([^/]*)";
|
|
76
73
|
break;
|
|
77
74
|
default: reStr += c;
|
|
78
75
|
}
|
|
@@ -115,7 +112,7 @@ function parse(input, loose) {
|
|
|
115
112
|
}
|
|
116
113
|
|
|
117
114
|
//#endregion
|
|
118
|
-
//#region node_modules/.pnpm/fetch-mock@12.5.
|
|
115
|
+
//#region node_modules/.pnpm/fetch-mock@12.5.4/node_modules/fetch-mock/dist/esm/TypeDescriptor.js
|
|
119
116
|
const valueTypes = new Set([
|
|
120
117
|
"boolean",
|
|
121
118
|
"number",
|
|
@@ -207,7 +204,7 @@ var TypeDescriptor = class TypeDescriptor {
|
|
|
207
204
|
};
|
|
208
205
|
|
|
209
206
|
//#endregion
|
|
210
|
-
//#region node_modules/.pnpm/fetch-mock@12.5.
|
|
207
|
+
//#region node_modules/.pnpm/fetch-mock@12.5.4/node_modules/fetch-mock/dist/esm/IsSubsetOf.js
|
|
211
208
|
const allowedTypes = new Set([
|
|
212
209
|
"array",
|
|
213
210
|
"object",
|
|
@@ -254,16 +251,14 @@ const isSubsetOf = function(subset, superset, visited = []) {
|
|
|
254
251
|
if (Object.keys(subset).length > Object.keys(superset).length) return false;
|
|
255
252
|
for (const [subsetKey, subsetValue] of Object.entries(subset)) {
|
|
256
253
|
const supersetValue = superset[subsetKey];
|
|
257
|
-
|
|
258
|
-
switch (subsetValueType) {
|
|
254
|
+
switch (TypeDescriptor.of(subsetValue)) {
|
|
259
255
|
case "array":
|
|
260
256
|
case "object":
|
|
261
257
|
case "function":
|
|
262
258
|
if (visited.includes(subsetValue)) continue;
|
|
263
259
|
visited.push(subsetValue);
|
|
264
260
|
try {
|
|
265
|
-
|
|
266
|
-
if (!isInSuperset) return false;
|
|
261
|
+
if (!isSubsetOf(subsetValue, supersetValue, visited)) return false;
|
|
267
262
|
} catch {
|
|
268
263
|
return false;
|
|
269
264
|
}
|
|
@@ -290,8 +285,7 @@ isSubsetOf.structural = function(subset, superset, visited = []) {
|
|
|
290
285
|
if (visited.includes(subsetValue)) continue;
|
|
291
286
|
visited.push(subsetValue);
|
|
292
287
|
try {
|
|
293
|
-
|
|
294
|
-
if (!isInSuperset) return false;
|
|
288
|
+
if (!isSubsetOf.structural(subsetValue, supersetValue, visited)) return false;
|
|
295
289
|
} catch {
|
|
296
290
|
return false;
|
|
297
291
|
}
|
|
@@ -364,7 +358,7 @@ function dequal(foo, bar) {
|
|
|
364
358
|
}
|
|
365
359
|
|
|
366
360
|
//#endregion
|
|
367
|
-
//#region node_modules/.pnpm/fetch-mock@12.5.
|
|
361
|
+
//#region node_modules/.pnpm/fetch-mock@12.5.4/node_modules/fetch-mock/dist/esm/RequestUtils.js
|
|
368
362
|
const absoluteUrlRX = new RegExp("^[a-z]+://|^data:", "i");
|
|
369
363
|
const protocolRelativeUrlRX = new RegExp("^//", "i");
|
|
370
364
|
function hasCredentialsInUrl(url) {
|
|
@@ -414,7 +408,7 @@ async function createCallLogFromRequest(request, options) {
|
|
|
414
408
|
} catch {}
|
|
415
409
|
if (request.headers) derivedOptions.headers = normalizeHeaders(request.headers);
|
|
416
410
|
const url = normalizeUrl(request.url, true);
|
|
417
|
-
|
|
411
|
+
return {
|
|
418
412
|
args: [request, options],
|
|
419
413
|
url,
|
|
420
414
|
queryParams: new URLSearchParams(getQuery(url)),
|
|
@@ -423,11 +417,9 @@ async function createCallLogFromRequest(request, options) {
|
|
|
423
417
|
signal: options && options.signal || request.signal,
|
|
424
418
|
pendingPromises
|
|
425
419
|
};
|
|
426
|
-
return callLog;
|
|
427
420
|
}
|
|
428
421
|
function getPath(url) {
|
|
429
|
-
|
|
430
|
-
return u.pathname;
|
|
422
|
+
return (absoluteUrlRX.test(url) ? new URL(url) : new URL(url, "http://dummy")).pathname;
|
|
431
423
|
}
|
|
432
424
|
function getQuery(url) {
|
|
433
425
|
const u = absoluteUrlRX.test(url) ? new URL(url) : new URL(url, "http://dummy");
|
|
@@ -442,7 +434,7 @@ function normalizeHeaders(headers) {
|
|
|
442
434
|
}
|
|
443
435
|
|
|
444
436
|
//#endregion
|
|
445
|
-
//#region node_modules/.pnpm/fetch-mock@12.5.
|
|
437
|
+
//#region node_modules/.pnpm/fetch-mock@12.5.4/node_modules/fetch-mock/dist/esm/Matchers.js
|
|
446
438
|
var import_glob_to_regexp = /* @__PURE__ */ __toESM(require_glob_to_regexp(), 1);
|
|
447
439
|
const isUrlMatcher = (matcher) => matcher instanceof RegExp || typeof matcher === "string" || typeof matcher === "object" && "href" in matcher;
|
|
448
440
|
const isFunctionMatcher = (matcher) => typeof matcher === "function";
|
|
@@ -625,7 +617,7 @@ const builtInMatchers = [
|
|
|
625
617
|
];
|
|
626
618
|
|
|
627
619
|
//#endregion
|
|
628
|
-
//#region node_modules/.pnpm/fetch-mock@12.5.
|
|
620
|
+
//#region node_modules/.pnpm/fetch-mock@12.5.4/node_modules/fetch-mock/dist/esm/StatusTextMap.js
|
|
629
621
|
const statusTextMap = {
|
|
630
622
|
100: "Continue",
|
|
631
623
|
101: "Switching Protocols",
|
|
@@ -693,7 +685,7 @@ const statusTextMap = {
|
|
|
693
685
|
var StatusTextMap_default = statusTextMap;
|
|
694
686
|
|
|
695
687
|
//#endregion
|
|
696
|
-
//#region node_modules/.pnpm/fetch-mock@12.5.
|
|
688
|
+
//#region node_modules/.pnpm/fetch-mock@12.5.4/node_modules/fetch-mock/dist/esm/Route.js
|
|
697
689
|
var __classPrivateFieldSet = void 0 && (void 0).__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
698
690
|
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
699
691
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
@@ -767,8 +759,7 @@ var Route = class {
|
|
|
767
759
|
}
|
|
768
760
|
constructResponseBody(responseInput, responseOptions) {
|
|
769
761
|
let body = responseInput.body;
|
|
770
|
-
|
|
771
|
-
if (!bodyIsBodyInit) if (typeof body === "undefined") body = null;
|
|
762
|
+
if (!isBodyInit(body)) if (typeof body === "undefined") body = null;
|
|
772
763
|
else if (typeof body === "object") {
|
|
773
764
|
body = JSON.stringify(body);
|
|
774
765
|
if (!responseOptions.headers.has("Content-Type")) responseOptions.headers.set("Content-Type", "application/json");
|
|
@@ -805,8 +796,7 @@ _a = Route, _Route_responseSubscriptions = /* @__PURE__ */ new WeakMap(), _Route
|
|
|
805
796
|
const originalMatcher = this.matcher;
|
|
806
797
|
let timesLeft = this.config.repeat;
|
|
807
798
|
this.matcher = (callLog) => {
|
|
808
|
-
|
|
809
|
-
if (match) {
|
|
799
|
+
if (timesLeft && originalMatcher(callLog)) {
|
|
810
800
|
timesLeft--;
|
|
811
801
|
return true;
|
|
812
802
|
}
|
|
@@ -827,7 +817,7 @@ builtInMatchers.forEach(Route.defineMatcher);
|
|
|
827
817
|
var Route_default = Route;
|
|
828
818
|
|
|
829
819
|
//#endregion
|
|
830
|
-
//#region node_modules/.pnpm/fetch-mock@12.5.
|
|
820
|
+
//#region node_modules/.pnpm/fetch-mock@12.5.4/node_modules/fetch-mock/dist/esm/Router.js
|
|
831
821
|
const responseConfigProps = [
|
|
832
822
|
"body",
|
|
833
823
|
"headers",
|
|
@@ -893,8 +883,7 @@ var Router = class {
|
|
|
893
883
|
callLog.signal.addEventListener("abort", abort);
|
|
894
884
|
}
|
|
895
885
|
if (this.needsToReadBody(request)) options.body = await options.body;
|
|
896
|
-
const
|
|
897
|
-
const route = routesToTry.find((route$1) => route$1.matcher(callLog));
|
|
886
|
+
const route = (this.fallbackRoute ? [...this.routes, this.fallbackRoute] : this.routes).find((route$1) => route$1.matcher(callLog));
|
|
898
887
|
if (route) try {
|
|
899
888
|
callLog.route = route;
|
|
900
889
|
const { response, responseOptions, responseInput } = await this.generateResponse(callLog);
|
|
@@ -1000,7 +989,7 @@ var Router = class {
|
|
|
1000
989
|
};
|
|
1001
990
|
|
|
1002
991
|
//#endregion
|
|
1003
|
-
//#region node_modules/.pnpm/fetch-mock@12.5.
|
|
992
|
+
//#region node_modules/.pnpm/fetch-mock@12.5.4/node_modules/fetch-mock/dist/esm/CallHistory.js
|
|
1004
993
|
const isName = (filter) => typeof filter === "string" && /^[\da-zA-Z-]+$/.test(filter) && !["matched", "unmatched"].includes(filter);
|
|
1005
994
|
const isMatchedOrUnmatched = (filter) => typeof filter === "boolean" || ["matched", "unmatched"].includes(filter);
|
|
1006
995
|
var CallHistory = class {
|
|
@@ -1085,7 +1074,7 @@ var CallHistory = class {
|
|
|
1085
1074
|
var CallHistory_default = CallHistory;
|
|
1086
1075
|
|
|
1087
1076
|
//#endregion
|
|
1088
|
-
//#region node_modules/.pnpm/fetch-mock@12.5.
|
|
1077
|
+
//#region node_modules/.pnpm/fetch-mock@12.5.4/node_modules/fetch-mock/dist/esm/FetchMock.js
|
|
1089
1078
|
const defaultFetchMockConfig = {
|
|
1090
1079
|
includeContentLength: true,
|
|
1091
1080
|
matchPartialBody: false,
|
|
@@ -1218,7 +1207,7 @@ const fetchMock = new FetchMock({ ...defaultFetchMockConfig });
|
|
|
1218
1207
|
var FetchMock_default = fetchMock;
|
|
1219
1208
|
|
|
1220
1209
|
//#endregion
|
|
1221
|
-
//#region node_modules/.pnpm/fetch-mock@12.5.
|
|
1210
|
+
//#region node_modules/.pnpm/fetch-mock@12.5.4/node_modules/fetch-mock/dist/esm/index.js
|
|
1222
1211
|
var esm_default = FetchMock_default;
|
|
1223
1212
|
|
|
1224
1213
|
//#endregion
|