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

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-BvUN9QgD.js → actor-BR3M3Bg3.js} +179 -179
  3. package/dist/{actor-6WfgEEM7.js → actor-CMQ_Gxax.js} +4 -1
  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-AvrLkCka.js} +3 -3
  7. package/dist/{authdocloader-DlQKiAuj.js → authdocloader-CNt1UkcL.js} +4 -3
  8. package/dist/{builder-Bql0U6IX.js → builder-ZewotViE.js} +5 -4
  9. package/dist/chunk-HsBuZ-b2.js +41 -0
  10. package/dist/{client-CI4TcEtW.js → client-C2F5RZOv.js} +2 -2
  11. package/dist/compat/transformers.test.js +27 -20
  12. package/dist/context-Cc5Prh-p.js +108 -0
  13. package/dist/docloader-09nVWLAZ.js +68 -0
  14. package/dist/{docloader-B6dtEu0e.js → docloader-DaZu_7K2.js} +1 -2
  15. package/dist/docloader-Dj3ESYni.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-3Bbxlpky.js} +3 -2
  30. package/dist/{http-epXQkoos.js → http-D3F6HGUu.js} +3 -3
  31. package/dist/{inbox-ClBcgVPg.js → inbox-DKd5F3DT.js} +3 -1
  32. package/dist/{key-Cl_Xlkrv.js → key-BcO5OTYc.js} +2 -2
  33. package/dist/{key-B2Vg4tVB.js → key-BduQHf38.js} +4 -4
  34. package/dist/key-DwQrog_Y.js +16 -0
  35. package/dist/{key-D2T-GDYd.js → key-wb9EWpSb.js} +3 -2
  36. package/dist/{keycache-M-zWLLCU.js → keycache-DnA7Ub23.js} +1 -1
  37. package/dist/{keys-qx88le-G.js → keys-BRV40NP0.js} +1 -1
  38. package/dist/langstr-DbWheeIS.js +33 -0
  39. package/dist/{ld-ZkyR7ab4.js → ld-viIK1KF8.js} +4 -2
  40. package/dist/{lookup-BlMMBOS2.js → lookup-B21lQ9pb.js} +1 -1
  41. package/dist/{lookup-BH2SgpoS.js → lookup-B9AWrAUf.js} +6 -113
  42. package/dist/lookup-sc6ms_6o.js +132 -0
  43. package/dist/{middleware-0TQ_tx1T.js → middleware-BSmfCdQG.js} +21 -17
  44. package/dist/middleware-C6bO8pt_.js +17 -0
  45. package/dist/middleware-CavVW6ka.js +33 -0
  46. package/dist/{middleware-Cye6GERQ.js → middleware-y21POb8Y.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-DGNtApEB.js} +3 -2
  55. package/dist/{proof-CiYpiavN.js → proof-Be4Tmi-k.js} +3 -3
  56. package/dist/{proof-Dz3Yq7kI.js → proof-X397Edu9.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-MctFltyI.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-BlaDGaMP.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/{vocab-fVvi4e5m.js → vocab-CMem4Z8B.js} +3 -3
  86. package/dist/{type-BvQGw6hv.js → vocab-CpXP4iIV.js} +183 -5255
  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
@@ -3,7 +3,10 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Application, Group, Organization, Person, Service, deno_default, getTypeId, lookupWebFinger } from "./type-BvQGw6hv.js";
6
+ import { deno_default } from "./docloader-Dj3ESYni.js";
7
+ import { Application, Group, Organization, Person, Service } from "./vocab-CpXP4iIV.js";
8
+ import { lookupWebFinger } from "./lookup-sc6ms_6o.js";
9
+ import { getTypeId } from "./type-D2s5lmbZ.js";
7
10
  import { SpanStatusCode, trace } from "@opentelemetry/api";
8
11
  import { domainToASCII, domainToUnicode } from "node:url";
9
12
 
@@ -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-DaZu_7K2.js";
6
+ import { validateCryptoKey } from "./key-BcO5OTYc.js";
7
+ import { doubleKnock } from "./http-D3F6HGUu.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-Dj3ESYni.js";
7
+ import { UrlError, validatePublicUrl } from "./url-kTAI6_KP.js";
8
+ import { validateCryptoKey } from "./key-wb9EWpSb.js";
9
+ import { doubleKnock } from "./http-3Bbxlpky.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-Dj3ESYni.js";
7
+ import { Router, RouterError } from "./router-D3UybECj.js";
8
+ import { getTypeId } from "./type-D2s5lmbZ.js";
9
+ import { InboxListenerSet } from "./inbox-DKd5F3DT.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-CavVW6ka.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-Dj3ESYni.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-BSmfCdQG.js";
11
+ import "../docloader-Dj3ESYni.js";
12
+ import "../url-kTAI6_KP.js";
13
+ import "../semver-DWClQt_5.js";
14
+ import "../client-C2F5RZOv.js";
15
+ import "../router-D3UybECj.js";
16
+ import "../types-C7C_l-jz.js";
17
+ import "../multibase-DeCHcK8L.js";
18
+ import { Follow, Person } from "../vocab-CpXP4iIV.js";
19
+ import "../langstr-DbWheeIS.js";
20
+ import "../lookup-sc6ms_6o.js";
21
+ import "../type-D2s5lmbZ.js";
22
+ import "../actor-CMQ_Gxax.js";
23
+ import "../key-wb9EWpSb.js";
24
+ import "../http-3Bbxlpky.js";
25
+ import "../authdocloader-CNt1UkcL.js";
26
+ import "../ld-viIK1KF8.js";
27
+ import "../owner-DGNtApEB.js";
28
+ import "../proof-X397Edu9.js";
29
+ import "../lookup-B9AWrAUf.js";
30
+ import "../inbox-DKd5F3DT.js";
31
+ import "../builder-ZewotViE.js";
32
+ import "../collection-Dfb0TPno.js";
33
+ import "../keycache-DnA7Ub23.js";
34
+ import "../retry-BiIhZWgD.js";
35
+ import "../send-MctFltyI.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-sc6ms_6o.js";
8
+ import { lookupObject, traverseCollection } from "./lookup-B9AWrAUf.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.1205+9daa6571";
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",