@fedify/fedify 1.8.1-pr.328.1165 → 1.8.1-pr.329.1209

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.
Files changed (102) hide show
  1. package/README.md +1 -4
  2. package/dist/{actor-6WfgEEM7.js → actor-CiCVXwx3.js} +4 -1
  3. package/dist/{actor-BvUN9QgD.js → actor-DOUbHIhg.js} +179 -179
  4. package/dist/{assert_rejects-AjlKk-Vo.js → assert_rejects-DceVjUlD.js} +1 -1
  5. package/dist/{assert_throws-CqMKbTh_.js → assert_throws-DTDC_gwN.js} +1 -1
  6. package/dist/{authdocloader-BxpW2l0x.js → authdocloader-CMmTK9S5.js} +3 -3
  7. package/dist/{authdocloader-DlQKiAuj.js → authdocloader-CrpSsLr1.js} +4 -3
  8. package/dist/{builder-Bql0U6IX.js → builder-DFk9FOJ6.js} +5 -4
  9. package/dist/chunk-HsBuZ-b2.js +41 -0
  10. package/dist/{client-CI4TcEtW.js → client-CYFhpq6p.js} +2 -2
  11. package/dist/compat/transformers.test.js +27 -20
  12. package/dist/context-B4-Ypxls.js +108 -0
  13. package/dist/docloader-09nVWLAZ.js +68 -0
  14. package/dist/{docloader-B6dtEu0e.js → docloader-B8jv3Z2V.js} +1 -2
  15. package/dist/docloader-xLomwjk3.js +4526 -0
  16. package/dist/{esm-80CEOYyg.js → esm-d-9EVGaP.js} +1 -1
  17. package/dist/federation/builder.test.js +16 -11
  18. package/dist/federation/collection.test.js +7 -9
  19. package/dist/federation/handler.test.js +35 -26
  20. package/dist/federation/inbox.test.js +10 -6
  21. package/dist/federation/keycache.test.js +7 -4
  22. package/dist/federation/kv.test.js +6 -8
  23. package/dist/federation/middleware.test.js +35 -27
  24. package/dist/federation/mod.js +10 -10
  25. package/dist/federation/mq.test.js +8 -10
  26. package/dist/federation/retry.test.js +3 -5
  27. package/dist/federation/router.test.js +7 -8
  28. package/dist/federation/send.test.js +21 -15
  29. package/dist/{http-Cdm4poZb.js → http-6MXyLsoh.js} +3 -2
  30. package/dist/{http-epXQkoos.js → http-DLoFeou5.js} +3 -3
  31. package/dist/{inbox-ClBcgVPg.js → inbox-K6Jqy_1j.js} +3 -1
  32. package/dist/{key-B2Vg4tVB.js → key-B56jBz9U.js} +4 -4
  33. package/dist/{key-Cl_Xlkrv.js → key-BAIJJ5gY.js} +2 -2
  34. package/dist/key-Be2GEH6h.js +16 -0
  35. package/dist/{key-D2T-GDYd.js → key-DbuLgndY.js} +3 -2
  36. package/dist/{keycache-M-zWLLCU.js → keycache-D2ce3zUW.js} +1 -1
  37. package/dist/{keys-qx88le-G.js → keys-Cl8uuXBD.js} +1 -1
  38. package/dist/langstr-DbWheeIS.js +33 -0
  39. package/dist/{ld-ZkyR7ab4.js → ld-WpKwgDtk.js} +4 -2
  40. package/dist/lookup-BhK5FmDe.js +132 -0
  41. package/dist/{lookup-BlMMBOS2.js → lookup-ByMEYudm.js} +1 -1
  42. package/dist/{lookup-BH2SgpoS.js → lookup-DMKWAbKW.js} +6 -113
  43. package/dist/middleware-B-tW_fwo.js +17 -0
  44. package/dist/middleware-Ba5IuZoK.js +33 -0
  45. package/dist/{middleware-0TQ_tx1T.js → middleware-Dbj6Ns6x.js} +21 -17
  46. package/dist/{middleware-Cye6GERQ.js → middleware-vpRI19Dq.js} +11 -11
  47. package/dist/mod.js +10 -10
  48. package/dist/multibase-DeCHcK8L.js +316 -0
  49. package/dist/nodeinfo/client.test.js +11 -11
  50. package/dist/nodeinfo/handler.test.js +34 -25
  51. package/dist/nodeinfo/mod.js +2 -2
  52. package/dist/nodeinfo/semver.test.js +7 -9
  53. package/dist/nodeinfo/types.test.js +8 -10
  54. package/dist/{owner-C_vL0hRG.js → owner-jodbuyfr.js} +3 -2
  55. package/dist/{proof-CiYpiavN.js → proof-BSG6S-sj.js} +3 -3
  56. package/dist/{proof-Dz3Yq7kI.js → proof-DZrqpsSm.js} +4 -2
  57. package/dist/router-D3UybECj.js +118 -0
  58. package/dist/runtime/authdocloader.test.js +20 -14
  59. package/dist/runtime/docloader.test.js +10 -9
  60. package/dist/runtime/key.test.js +15 -10
  61. package/dist/runtime/langstr.test.js +7 -8
  62. package/dist/runtime/mod.js +6 -6
  63. package/dist/runtime/multibase/multibase.test.js +7 -8
  64. package/dist/runtime/url.test.js +4 -5
  65. package/dist/{send-CDQXxlmm.js → send-CNN4e6xr.js} +2 -2
  66. package/dist/sig/http.test.js +19 -13
  67. package/dist/sig/key.test.js +17 -11
  68. package/dist/sig/ld.test.js +16 -10
  69. package/dist/sig/mod.js +6 -6
  70. package/dist/sig/owner.test.js +19 -12
  71. package/dist/sig/proof.test.js +18 -12
  72. package/dist/testing/docloader.test.js +7 -8
  73. package/dist/testing/mod.d.ts +1 -8387
  74. package/dist/testing/mod.js +2 -4
  75. package/dist/testing-BZ0dJ4qn.js +143 -0
  76. package/dist/type-D2s5lmbZ.js +14 -0
  77. package/dist/{types-E0EOd3en.js → types-9rwT068o.js} +1 -1
  78. package/dist/{types-n7HI7VFr.js → types-C7C_l-jz.js} +1 -1
  79. package/dist/url-kTAI6_KP.js +68 -0
  80. package/dist/vocab/actor.test.js +16 -10
  81. package/dist/vocab/lookup.test.js +16 -9
  82. package/dist/vocab/mod.js +4 -4
  83. package/dist/vocab/type.test.js +7 -3
  84. package/dist/vocab/vocab.test.js +13 -9
  85. package/dist/{type-BvQGw6hv.js → vocab-Db0G5VQ2.js} +183 -5255
  86. package/dist/{vocab-fVvi4e5m.js → vocab-iY_A93sn.js} +3 -3
  87. package/dist/webfinger/handler.test.js +34 -25
  88. package/dist/webfinger/lookup.test.js +10 -9
  89. package/dist/webfinger/mod.js +2 -2
  90. package/dist/x/cfworkers.test.js +6 -8
  91. package/package.json +1 -1
  92. package/dist/key-CE5RdobB.js +0 -10
  93. package/dist/middleware-DPQqiqLu.js +0 -26
  94. package/dist/middleware-Dh8xaPyd.js +0 -17
  95. package/dist/testing-COl4JbdC.js +0 -301
  96. /package/dist/{assert_is_error-CeVBLPsZ.js → assert_is_error-DQdKoRgb.js} +0 -0
  97. /package/dist/{assert_not_equals-D2R2nl5h.js → assert_not_equals-7pyUM3Ib.js} +0 -0
  98. /package/dist/{collection-D5V3UzU3.js → collection-Dfb0TPno.js} +0 -0
  99. /package/dist/{denokv-DK9P5Jq7.js → denokv-QWKsIqML.js} +0 -0
  100. /package/dist/{retry-BnpVRGFC.js → retry-BiIhZWgD.js} +0 -0
  101. /package/dist/{semver-DCqorrj5.js → semver-DWClQt_5.js} +0 -0
  102. /package/dist/{std__assert-BQdmxyzF.js → std__assert-B3iAixc-.js} +0 -0
@@ -4,7 +4,7 @@
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
6
  import { AssertionError } from "./assert_equals-C5gKCm6A.js";
7
- import { assertIsError } from "./assert_is_error-CeVBLPsZ.js";
7
+ import { assertIsError } from "./assert_is_error-DQdKoRgb.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
  /**
@@ -4,7 +4,7 @@
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
6
  import { AssertionError } from "./assert_equals-C5gKCm6A.js";
7
- import { assertIsError } from "./assert_is_error-CeVBLPsZ.js";
7
+ import { assertIsError } from "./assert_is_error-DQdKoRgb.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-B6dtEu0e.js";
6
- import { validateCryptoKey } from "./key-Cl_Xlkrv.js";
7
- import { doubleKnock } from "./http-epXQkoos.js";
5
+ import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./docloader-B8jv3Z2V.js";
6
+ import { validateCryptoKey } from "./key-BAIJJ5gY.js";
7
+ import { doubleKnock } from "./http-DLoFeou5.js";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
 
10
10
  //#region runtime/authdocloader.ts
@@ -3,9 +3,10 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./type-BvQGw6hv.js";
7
- import { validateCryptoKey } from "./key-D2T-GDYd.js";
8
- import { doubleKnock } from "./http-Cdm4poZb.js";
6
+ import { createRequest, getRemoteDocument, logRequest } from "./docloader-xLomwjk3.js";
7
+ import { UrlError, validatePublicUrl } from "./url-kTAI6_KP.js";
8
+ import { validateCryptoKey } from "./key-DbuLgndY.js";
9
+ import { doubleKnock } from "./http-6MXyLsoh.js";
9
10
  import { getLogger } from "@logtape/logtape";
10
11
 
11
12
  //#region runtime/authdocloader.ts
@@ -3,9 +3,10 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default, getTypeId } from "./type-BvQGw6hv.js";
7
- import { Router, RouterError } from "./lookup-BH2SgpoS.js";
8
- import { InboxListenerSet } from "./inbox-ClBcgVPg.js";
6
+ import { deno_default } from "./docloader-xLomwjk3.js";
7
+ import { Router, RouterError } from "./router-D3UybECj.js";
8
+ import { getTypeId } from "./type-D2s5lmbZ.js";
9
+ import { InboxListenerSet } from "./inbox-K6Jqy_1j.js";
9
10
  import { getLogger } from "@logtape/logtape";
10
11
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
11
12
 
@@ -33,7 +34,7 @@ var FederationBuilderImpl = class {
33
34
  this.objectTypeIds = {};
34
35
  }
35
36
  async build(options) {
36
- const { FederationImpl } = await import("./middleware-DPQqiqLu.js");
37
+ const { FederationImpl } = await import("./middleware-Ba5IuZoK.js");
37
38
  const f = new FederationImpl(options);
38
39
  const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
39
40
  f.router = this.router.clone();
@@ -0,0 +1,41 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+ globalThis.addEventListener = () => {};
5
+
6
+ import { createRequire } from "node:module";
7
+
8
+ //#region rolldown:runtime
9
+ var __create = Object.create;
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __getProtoOf = Object.getPrototypeOf;
14
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
15
+ var __commonJS = (cb, mod) => function() {
16
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
17
+ };
18
+ var __export = (target, all) => {
19
+ for (var name in all) __defProp(target, name, {
20
+ get: all[name],
21
+ enumerable: true
22
+ });
23
+ };
24
+ var __copyProps = (to, from, except, desc) => {
25
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
26
+ key = keys[i];
27
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
28
+ get: ((k) => from[k]).bind(null, key),
29
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
30
+ });
31
+ }
32
+ return to;
33
+ };
34
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
35
+ value: mod,
36
+ enumerable: true
37
+ }) : target, mod));
38
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
39
+
40
+ //#endregion
41
+ export { __commonJS, __export, __require, __toESM };
@@ -3,8 +3,8 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { getUserAgent } from "./type-BvQGw6hv.js";
7
- import { parseSemVer } from "./semver-DCqorrj5.js";
6
+ import { getUserAgent } from "./docloader-xLomwjk3.js";
7
+ import { parseSemVer } from "./semver-DWClQt_5.js";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
 
10
10
  //#region nodeinfo/client.ts
@@ -3,30 +3,37 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Follow, Person } from "../type-BvQGw6hv.js";
7
6
  import { assertEquals } from "../assert_equals-C5gKCm6A.js";
8
7
  import { assert } from "../assert-DwEa6glZ.js";
9
8
  import { assertInstanceOf } from "../assert_instance_of-C9QtN-X9.js";
10
9
  import { MemoryKvStore } from "../kv-D7Yt6pnB.js";
11
- import { FederationImpl, actorDehydrator, autoIdAssigner } from "../middleware-0TQ_tx1T.js";
12
- import "../semver-DCqorrj5.js";
13
- import "../client-CI4TcEtW.js";
14
- import "../lookup-BH2SgpoS.js";
15
- import "../types-n7HI7VFr.js";
16
- import "../actor-6WfgEEM7.js";
17
- import "../key-D2T-GDYd.js";
18
- import "../http-Cdm4poZb.js";
19
- import "../authdocloader-DlQKiAuj.js";
20
- import "../ld-ZkyR7ab4.js";
21
- import "../owner-C_vL0hRG.js";
22
- import "../proof-Dz3Yq7kI.js";
23
- import "../inbox-ClBcgVPg.js";
24
- import "../builder-Bql0U6IX.js";
25
- import "../collection-D5V3UzU3.js";
26
- import "../keycache-M-zWLLCU.js";
27
- import "../retry-BnpVRGFC.js";
28
- import "../send-CDQXxlmm.js";
29
- import { test } from "../testing-COl4JbdC.js";
10
+ import { FederationImpl, actorDehydrator, autoIdAssigner } from "../middleware-Dbj6Ns6x.js";
11
+ import "../docloader-xLomwjk3.js";
12
+ import "../url-kTAI6_KP.js";
13
+ import "../semver-DWClQt_5.js";
14
+ import "../client-CYFhpq6p.js";
15
+ import "../router-D3UybECj.js";
16
+ import "../types-C7C_l-jz.js";
17
+ import "../multibase-DeCHcK8L.js";
18
+ import { Follow, Person } from "../vocab-Db0G5VQ2.js";
19
+ import "../langstr-DbWheeIS.js";
20
+ import "../lookup-BhK5FmDe.js";
21
+ import "../type-D2s5lmbZ.js";
22
+ import "../actor-CiCVXwx3.js";
23
+ import "../key-DbuLgndY.js";
24
+ import "../http-6MXyLsoh.js";
25
+ import "../authdocloader-CrpSsLr1.js";
26
+ import "../ld-WpKwgDtk.js";
27
+ import "../owner-jodbuyfr.js";
28
+ import "../proof-DZrqpsSm.js";
29
+ import "../lookup-DMKWAbKW.js";
30
+ import "../inbox-K6Jqy_1j.js";
31
+ import "../builder-DFk9FOJ6.js";
32
+ import "../collection-Dfb0TPno.js";
33
+ import "../keycache-D2ce3zUW.js";
34
+ import "../retry-BiIhZWgD.js";
35
+ import "../send-CNN4e6xr.js";
36
+ import { test } from "../testing-BZ0dJ4qn.js";
30
37
 
31
38
  //#region compat/transformers.test.ts
32
39
  const federation = new FederationImpl({ kv: new MemoryKvStore() });
@@ -0,0 +1,108 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+ globalThis.addEventListener = () => {};
5
+
6
+ import { RouterError } from "./router-D3UybECj.js";
7
+ import { lookupWebFinger } from "./lookup-BhK5FmDe.js";
8
+ import { lookupObject, traverseCollection } from "./lookup-DMKWAbKW.js";
9
+ import { mockDocumentLoader } from "./docloader-09nVWLAZ.js";
10
+ import { trace } from "@opentelemetry/api";
11
+
12
+ //#region testing/context.ts
13
+ function createContext(values) {
14
+ const { federation, url = new URL("http://example.com/"), canonicalOrigin, data, documentLoader, contextLoader, tracerProvider, clone, getNodeInfoUri, getActorUri, getObjectUri, getOutboxUri, getInboxUri, getFollowingUri, getFollowersUri, getLikedUri, getFeaturedUri, getFeaturedTagsUri, parseUri, getActorKeyPairs, getDocumentLoader, lookupObject: lookupObject$1, traverseCollection: traverseCollection$1, lookupNodeInfo, lookupWebFinger: lookupWebFinger$1, sendActivity, routeActivity } = values;
15
+ function throwRouteError() {
16
+ throw new RouterError("Not implemented");
17
+ }
18
+ return {
19
+ federation,
20
+ data,
21
+ origin: url.origin,
22
+ canonicalOrigin: canonicalOrigin ?? url.origin,
23
+ host: url.host,
24
+ hostname: url.hostname,
25
+ documentLoader: documentLoader ?? mockDocumentLoader,
26
+ contextLoader: contextLoader ?? mockDocumentLoader,
27
+ tracerProvider: tracerProvider ?? trace.getTracerProvider(),
28
+ clone: clone ?? ((data$1) => createContext({
29
+ ...values,
30
+ data: data$1
31
+ })),
32
+ getNodeInfoUri: getNodeInfoUri ?? throwRouteError,
33
+ getActorUri: getActorUri ?? throwRouteError,
34
+ getObjectUri: getObjectUri ?? throwRouteError,
35
+ getOutboxUri: getOutboxUri ?? throwRouteError,
36
+ getInboxUri: getInboxUri ?? throwRouteError,
37
+ getFollowingUri: getFollowingUri ?? throwRouteError,
38
+ getFollowersUri: getFollowersUri ?? throwRouteError,
39
+ getLikedUri: getLikedUri ?? throwRouteError,
40
+ getFeaturedUri: getFeaturedUri ?? throwRouteError,
41
+ getFeaturedTagsUri: getFeaturedTagsUri ?? throwRouteError,
42
+ parseUri: parseUri ?? ((_uri) => {
43
+ throw new Error("Not implemented");
44
+ }),
45
+ getDocumentLoader: getDocumentLoader ?? ((_params) => {
46
+ throw new Error("Not implemented");
47
+ }),
48
+ getActorKeyPairs: getActorKeyPairs ?? ((_handle) => Promise.resolve([])),
49
+ lookupObject: lookupObject$1 ?? ((uri, options = {}) => {
50
+ return lookupObject(uri, {
51
+ documentLoader: options.documentLoader ?? documentLoader ?? mockDocumentLoader,
52
+ contextLoader: options.contextLoader ?? contextLoader ?? mockDocumentLoader
53
+ });
54
+ }),
55
+ traverseCollection: traverseCollection$1 ?? ((collection, options = {}) => {
56
+ return traverseCollection(collection, {
57
+ documentLoader: options.documentLoader ?? documentLoader ?? mockDocumentLoader,
58
+ contextLoader: options.contextLoader ?? contextLoader ?? mockDocumentLoader
59
+ });
60
+ }),
61
+ lookupNodeInfo: lookupNodeInfo ?? ((_params) => {
62
+ throw new Error("Not implemented");
63
+ }),
64
+ lookupWebFinger: lookupWebFinger$1 ?? ((resource, options = {}) => {
65
+ return lookupWebFinger(resource, options);
66
+ }),
67
+ sendActivity: sendActivity ?? ((_params) => {
68
+ throw new Error("Not implemented");
69
+ }),
70
+ routeActivity: routeActivity ?? ((_params) => {
71
+ throw new Error("Not implemented");
72
+ })
73
+ };
74
+ }
75
+ function createRequestContext(args) {
76
+ return {
77
+ ...createContext(args),
78
+ clone: args.clone ?? ((data) => createRequestContext({
79
+ ...args,
80
+ data
81
+ })),
82
+ request: args.request ?? new Request(args.url),
83
+ url: args.url,
84
+ getActor: args.getActor ?? (() => Promise.resolve(null)),
85
+ getObject: args.getObject ?? (() => Promise.resolve(null)),
86
+ getSignedKey: args.getSignedKey ?? (() => Promise.resolve(null)),
87
+ getSignedKeyOwner: args.getSignedKeyOwner ?? (() => Promise.resolve(null)),
88
+ sendActivity: args.sendActivity ?? ((_params) => {
89
+ throw new Error("Not implemented");
90
+ })
91
+ };
92
+ }
93
+ function createInboxContext(args) {
94
+ return {
95
+ ...createContext(args),
96
+ clone: args.clone ?? ((data) => createInboxContext({
97
+ ...args,
98
+ data
99
+ })),
100
+ recipient: args.recipient ?? null,
101
+ forwardActivity: args.forwardActivity ?? ((_params) => {
102
+ throw new Error("Not implemented");
103
+ })
104
+ };
105
+ }
106
+
107
+ //#endregion
108
+ export { createInboxContext, createRequestContext };
@@ -0,0 +1,68 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+ globalThis.addEventListener = () => {};
5
+
6
+ import { getLogger } from "@logtape/logtape";
7
+
8
+ //#region testing/docloader.ts
9
+ const logger = getLogger([
10
+ "fedify",
11
+ "testing",
12
+ "docloader"
13
+ ]);
14
+ /**
15
+ * A mock of the document loader. This does not make any actual HTTP requests
16
+ * towards the remote server, but looks up the local fixture files instead.
17
+ *
18
+ * For instance, `mockDocumentLoader("http://example.com/foo/bar")` will look up
19
+ * the file `testing/fixtures/http/example.com/foo/bar` (no suffix) and return
20
+ * its content as the response.
21
+ */
22
+ async function mockDocumentLoader(resource) {
23
+ const url = new URL(resource);
24
+ if ("navigator" in globalThis && navigator.userAgent === "Cloudflare-Workers") {
25
+ const testUrl = new URL(url);
26
+ testUrl.hostname += ".test";
27
+ const resp = await fetch(testUrl);
28
+ if (resp.ok) {
29
+ const document$1 = await resp.json();
30
+ logger.debug("Successfully fetched fixture {resource}: {status} {statusText}\n{body}", {
31
+ resource,
32
+ status: resp.status,
33
+ statusText: resp.statusText,
34
+ body: document$1
35
+ });
36
+ return {
37
+ contextUrl: null,
38
+ document: document$1,
39
+ documentUrl: resource
40
+ };
41
+ }
42
+ const error = await resp.text();
43
+ logger.error("Failed to fetch fixture {resource}: {error}", {
44
+ resource,
45
+ error
46
+ });
47
+ throw new Error(error);
48
+ }
49
+ const path = `./fixtures/${url.host}${url.pathname}.json`;
50
+ let document;
51
+ try {
52
+ document = (await import(path, { with: { type: "json" } })).default;
53
+ } catch (error) {
54
+ logger.error("Failed to read fixture file {path}: {error}", {
55
+ path,
56
+ error
57
+ });
58
+ throw error;
59
+ }
60
+ return {
61
+ contextUrl: null,
62
+ document,
63
+ documentUrl: resource
64
+ };
65
+ }
66
+
67
+ //#endregion
68
+ export { mockDocumentLoader };
@@ -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.8.1-pr.328.1165+9356087c";
13
+ var version = "1.8.1-pr.329.1209+851f9e22";
14
14
  var license = "MIT";
15
15
  var exports = {
16
16
  ".": "./mod.ts",
@@ -19,7 +19,6 @@ var exports = {
19
19
  "./nodeinfo": "./nodeinfo/mod.ts",
20
20
  "./runtime": "./runtime/mod.ts",
21
21
  "./sig": "./sig/mod.ts",
22
- "./testing": "./testing/mod.ts",
23
22
  "./vocab": "./vocab/mod.ts",
24
23
  "./webfinger": "./webfinger/mod.ts",
25
24
  "./x/cfworkers": "./x/cfworkers.ts",