@fedify/fedify 1.8.1-pr.315.1090 → 1.8.1-pr.322.1108
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-1rvS-py8.d.ts → actor-B4TBtqRP.d.ts} +2 -2
- package/dist/{actor-C02Getjh.js → actor-CJTmhnth.js} +179 -179
- package/dist/{actor-BX-pKSuT.js → actor-Dz9UQYVb.js} +3 -3
- package/dist/{authdocloader-BZs3nvC8.js → authdocloader-B-msSrkp.js} +4 -4
- package/dist/{authdocloader-BbVFhkcz.js → authdocloader-Ciqeevu6.js} +4 -4
- package/dist/{builder-DuW8p2S3.js → builder-amB_hlpA.js} +3 -3
- package/dist/{client-DK4qnXK0.d.ts → client-BQ4AQGKo.d.ts} +1 -1
- package/dist/{client-BD0mI7gk.js → client-SnwWitbP.js} +1 -1
- package/dist/compat/mod.d.ts +10 -10
- package/dist/compat/transformers.test.js +17 -17
- package/dist/{context-BhO5LP_t.d.ts → context-B6mUZhs_.d.ts} +8 -8
- package/dist/{context-V7yd31ov.js → context-BJqm96mD.js} +3 -3
- package/dist/{docloader-Bh-sDknx.js → docloader-09nVWLAZ.js} +1 -1
- package/dist/{docloader-umQd797n.js → docloader-BZuFiEXd.js} +25 -13
- package/dist/{docloader-DtGccyuM.d.ts → docloader-BeCtcTOJ.d.ts} +1 -10
- package/dist/{docloader-D5BOqs-9.js → docloader-CXPltDXB.js} +25 -13
- package/dist/federation/builder.test.js +4 -4
- package/dist/federation/handler.test.js +20 -20
- package/dist/federation/inbox.test.js +3 -3
- package/dist/federation/keycache.test.js +3 -3
- package/dist/federation/middleware.test.js +19 -19
- package/dist/federation/mod.d.ts +9 -9
- package/dist/federation/mod.js +10 -10
- package/dist/federation/send.test.js +10 -10
- package/dist/{http-D59x3pzl.js → http-CO4u5nBU.js} +3 -3
- package/dist/{http-Cp-0z2Ja.d.ts → http-D1uoUH4N.d.ts} +2 -2
- package/dist/{http-CkS9JLmm.js → http-pA_CrWNW.js} +3 -3
- package/dist/{inbox-BjyNe-HL.js → inbox-Occzd0fW.js} +2 -2
- package/dist/{key-Btkh3AwY.js → key-BL2NIV2u.js} +2 -2
- package/dist/{key-Cf8lNopw.js → key-B_om2lz2.js} +4 -4
- package/dist/{key-DqZKjPjH.js → key-CrsQ70bS.js} +5 -5
- package/dist/{key-jxin-rRq.js → key-ImQEtwDQ.js} +3 -3
- package/dist/{keycache-BC5bL06g.js → keycache-ByOsPmdH.js} +1 -1
- package/dist/{keys-Dfntfi5m.js → keys-CIPuxYvA.js} +1 -1
- package/dist/{ld-DwoZFwEd.js → ld-DV--r9sk.js} +3 -3
- package/dist/{lookup-CAXRxPZ3.js → lookup-BKfdKgBL.js} +6 -7
- package/dist/{lookup-gQIU9tXW.js → lookup-Bo7aPoM4.js} +2 -3
- package/dist/{lookup-DvfZUKur.js → lookup-CGJAl6wY.js} +2 -3
- package/dist/{lookup-m3U6KA0u.d.ts → lookup-J_m4YZg0.d.ts} +1 -7
- package/dist/{middleware-BOHju0mN.js → middleware-Ba0aX8lS.js} +10 -10
- package/dist/middleware-C3J_4TFS.js +17 -0
- package/dist/{middleware-cN6r9o1m.js → middleware-QT945LmL.js} +15 -15
- package/dist/middleware-srxeZUkY.js +33 -0
- package/dist/{mod-c1I-Ydch.d.ts → mod-0L5jhGYM.d.ts} +2 -2
- package/dist/{mod-yPzXIjJX.d.ts → mod-BCl7t-Ka.d.ts} +3 -3
- package/dist/{mod-BqCBztub.d.ts → mod-BFwgZ7_K.d.ts} +2 -7
- package/dist/{mod-nlVEnYuj.d.ts → mod-D9qE4iHP.d.ts} +2 -2
- package/dist/mod.d.ts +12 -12
- package/dist/mod.js +10 -10
- package/dist/nodeinfo/client.test.js +2 -2
- package/dist/nodeinfo/handler.test.js +19 -19
- package/dist/nodeinfo/mod.d.ts +2 -2
- package/dist/nodeinfo/mod.js +2 -2
- package/dist/{owner-BK4eWKBp.d.ts → owner-CEv_PfyK.d.ts} +3 -3
- package/dist/{owner-BrSLT3By.js → owner-lczy5b-8.js} +3 -3
- package/dist/{proof-u4rhYX_R.js → proof-DJ73QbT0.js} +3 -3
- package/dist/{proof-BDYegzwN.js → proof-XkvUcpbW.js} +3 -3
- package/dist/runtime/authdocloader.test.js +9 -9
- package/dist/runtime/docloader.test.js +2 -2
- package/dist/runtime/key.test.js +5 -5
- package/dist/runtime/mod.d.ts +4 -4
- package/dist/runtime/mod.js +6 -6
- package/dist/{send-DRDKgORs.js → send-JIHB8b9R.js} +2 -2
- package/dist/sig/http.test.js +8 -8
- package/dist/sig/key.test.js +7 -7
- package/dist/sig/ld.test.js +8 -8
- package/dist/sig/mod.d.ts +6 -6
- package/dist/sig/mod.js +6 -6
- package/dist/sig/owner.test.js +9 -9
- package/dist/sig/proof.test.js +8 -8
- package/dist/testing/docloader.test.js +1 -1
- package/dist/{types-D1lhruqy.js → types-B6C9wAt4.js} +1 -1
- package/dist/vocab/actor.test.js +4 -4
- package/dist/vocab/lookup.test.js +7 -75
- package/dist/vocab/mod.d.ts +4 -4
- package/dist/vocab/mod.js +4 -4
- package/dist/vocab/type.test.js +2 -2
- package/dist/vocab/vocab.test.js +4 -4
- package/dist/{vocab-C4cyrUaT.js → vocab-B7KhPrGi.js} +178 -178
- package/dist/{vocab-BaWeqg9y.js → vocab-BoxaRqvr.js} +6 -7
- package/dist/{vocab-B52eQhpN.d.ts → vocab-By6mpzr-.d.ts} +1 -1
- package/dist/webfinger/handler.test.js +19 -19
- package/dist/webfinger/lookup.test.js +2 -56
- package/dist/webfinger/mod.d.ts +2 -2
- package/dist/webfinger/mod.js +2 -2
- package/dist/x/hono.d.ts +9 -9
- package/dist/x/sveltekit.d.ts +9 -9
- package/package.json +1 -1
- package/dist/middleware-31SyXabg.js +0 -33
- package/dist/middleware-CGl-YyTa.js +0 -17
|
@@ -6,28 +6,25 @@
|
|
|
6
6
|
import { assertEquals } from "../assert_equals-C5gKCm6A.js";
|
|
7
7
|
import "../assert-DwEa6glZ.js";
|
|
8
8
|
import { assertInstanceOf } from "../assert_instance_of-C9QtN-X9.js";
|
|
9
|
-
import "../docloader-
|
|
9
|
+
import "../docloader-CXPltDXB.js";
|
|
10
10
|
import "../url-kTAI6_KP.js";
|
|
11
11
|
import "../multibase-DeCHcK8L.js";
|
|
12
|
-
import { Collection, Note, Object as Object$1, Person } from "../vocab-
|
|
12
|
+
import { Collection, Note, Object as Object$1, Person } from "../vocab-B7KhPrGi.js";
|
|
13
13
|
import "../langstr-DbWheeIS.js";
|
|
14
|
-
import "../lookup-
|
|
14
|
+
import "../lookup-CGJAl6wY.js";
|
|
15
15
|
import "../type-D2s5lmbZ.js";
|
|
16
|
-
import { lookupObject, traverseCollection } from "../lookup-
|
|
16
|
+
import { lookupObject, traverseCollection } from "../lookup-BKfdKgBL.js";
|
|
17
17
|
import { test } from "../testing-BZ0dJ4qn.js";
|
|
18
18
|
import "../std__assert-B3iAixc-.js";
|
|
19
19
|
import "../assert_rejects-DceVjUlD.js";
|
|
20
20
|
import "../assert_is_error-DQdKoRgb.js";
|
|
21
21
|
import "../assert_not_equals-7pyUM3Ib.js";
|
|
22
22
|
import "../assert_throws-DTDC_gwN.js";
|
|
23
|
-
import { mockDocumentLoader } from "../docloader-
|
|
23
|
+
import { mockDocumentLoader } from "../docloader-09nVWLAZ.js";
|
|
24
24
|
import { esm_default } from "../esm-d-9EVGaP.js";
|
|
25
25
|
|
|
26
26
|
//#region vocab/lookup.test.ts
|
|
27
|
-
test("lookupObject()", {
|
|
28
|
-
sanitizeResources: false,
|
|
29
|
-
sanitizeOps: false
|
|
30
|
-
}, async (t) => {
|
|
27
|
+
test("lookupObject()", async (t) => {
|
|
31
28
|
esm_default.spyGlobal();
|
|
32
29
|
esm_default.get("begin:https://example.com/.well-known/webfinger", {
|
|
33
30
|
subject: "acct:johndoe@example.com",
|
|
@@ -90,74 +87,9 @@ test("lookupObject()", {
|
|
|
90
87
|
assertEquals(await lookupObject("janedoe@example.com", options), null);
|
|
91
88
|
assertEquals(await lookupObject("https://example.com/404", options), null);
|
|
92
89
|
});
|
|
93
|
-
esm_default.removeRoutes();
|
|
94
|
-
esm_default.get("begin:https://example.com/.well-known/webfinger", () => new Promise((resolve) => {
|
|
95
|
-
setTimeout(() => {
|
|
96
|
-
resolve({
|
|
97
|
-
subject: "acct:johndoe@example.com",
|
|
98
|
-
links: [{
|
|
99
|
-
rel: "self",
|
|
100
|
-
href: "https://example.com/person",
|
|
101
|
-
type: "application/activity+json"
|
|
102
|
-
}]
|
|
103
|
-
});
|
|
104
|
-
}, 1e3);
|
|
105
|
-
}));
|
|
106
|
-
await t.step("request cancellation", async () => {
|
|
107
|
-
const controller = new AbortController();
|
|
108
|
-
const promise = lookupObject("johndoe@example.com", {
|
|
109
|
-
...options,
|
|
110
|
-
signal: controller.signal
|
|
111
|
-
});
|
|
112
|
-
controller.abort();
|
|
113
|
-
assertEquals(await promise, null);
|
|
114
|
-
});
|
|
115
|
-
esm_default.removeRoutes();
|
|
116
|
-
esm_default.get("begin:https://example.com/.well-known/webfinger", {
|
|
117
|
-
subject: "acct:johndoe@example.com",
|
|
118
|
-
links: [{
|
|
119
|
-
rel: "self",
|
|
120
|
-
href: "https://example.com/person",
|
|
121
|
-
type: "application/activity+json"
|
|
122
|
-
}]
|
|
123
|
-
});
|
|
124
|
-
await t.step("successful request with signal", async () => {
|
|
125
|
-
const controller = new AbortController();
|
|
126
|
-
const person = await lookupObject("johndoe@example.com", {
|
|
127
|
-
...options,
|
|
128
|
-
signal: controller.signal
|
|
129
|
-
});
|
|
130
|
-
assertInstanceOf(person, Person);
|
|
131
|
-
assertEquals(person.id, new URL("https://example.com/person"));
|
|
132
|
-
});
|
|
133
|
-
esm_default.removeRoutes();
|
|
134
|
-
esm_default.get("begin:https://example.com/.well-known/webfinger", () => new Promise((resolve) => {
|
|
135
|
-
setTimeout(() => {
|
|
136
|
-
resolve({
|
|
137
|
-
subject: "acct:johndoe@example.com",
|
|
138
|
-
links: [{
|
|
139
|
-
rel: "self",
|
|
140
|
-
href: "https://example.com/person",
|
|
141
|
-
type: "application/activity+json"
|
|
142
|
-
}]
|
|
143
|
-
});
|
|
144
|
-
}, 500);
|
|
145
|
-
}));
|
|
146
|
-
await t.step("cancellation with immediate abort", async () => {
|
|
147
|
-
const controller = new AbortController();
|
|
148
|
-
controller.abort();
|
|
149
|
-
const result = await lookupObject("johndoe@example.com", {
|
|
150
|
-
...options,
|
|
151
|
-
signal: controller.signal
|
|
152
|
-
});
|
|
153
|
-
assertEquals(result, null);
|
|
154
|
-
});
|
|
155
90
|
esm_default.hardReset();
|
|
156
91
|
});
|
|
157
|
-
test("traverseCollection()", {
|
|
158
|
-
sanitizeResources: false,
|
|
159
|
-
sanitizeOps: false
|
|
160
|
-
}, async () => {
|
|
92
|
+
test("traverseCollection()", async () => {
|
|
161
93
|
const options = {
|
|
162
94
|
documentLoader: mockDocumentLoader,
|
|
163
95
|
contextLoader: mockDocumentLoader
|
package/dist/vocab/mod.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
3
|
import "../kv-DDdb1hMa.js";
|
|
4
|
-
import "../docloader-
|
|
5
|
-
import { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object as Object$1, Offer, OrderedCollection, OrderedCollectionPage, Organization, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View } from "../vocab-
|
|
6
|
-
import { Actor, ActorTypeName, GetActorHandleOptions, NormalizeActorHandleOptions, Recipient, getActorClassByTypeName, getActorHandle, getActorTypeName, isActor, normalizeActorHandle } from "../actor-
|
|
7
|
-
import { FediverseHandle, LookupObjectOptions, PUBLIC_COLLECTION, TraverseCollectionOptions, getTypeId, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../mod-
|
|
4
|
+
import "../docloader-BeCtcTOJ.js";
|
|
5
|
+
import { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object as Object$1, Offer, OrderedCollection, OrderedCollectionPage, Organization, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View } from "../vocab-By6mpzr-.js";
|
|
6
|
+
import { Actor, ActorTypeName, GetActorHandleOptions, NormalizeActorHandleOptions, Recipient, getActorClassByTypeName, getActorHandle, getActorTypeName, isActor, normalizeActorHandle } from "../actor-B4TBtqRP.js";
|
|
7
|
+
import { FediverseHandle, LookupObjectOptions, PUBLIC_COLLECTION, TraverseCollectionOptions, getTypeId, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../mod-BFwgZ7_K.js";
|
|
8
8
|
export { Accept, Activity, Actor, ActorTypeName, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, FediverseHandle, Flag, Follow, GetActorHandleOptions, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, LookupObjectOptions, Mention, Move, Multikey, NormalizeActorHandleOptions, Note, Object$1 as Object, Offer, OrderedCollection, OrderedCollectionPage, Organization, PUBLIC_COLLECTION, Page, Person, Place, Profile, PropertyValue, Question, Read, Recipient, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, TraverseCollectionOptions, Undo, Update, Video, View, getActorClassByTypeName, getActorHandle, getActorTypeName, getTypeId, isActor, isFediverseHandle, lookupObject, normalizeActorHandle, parseFediverseHandle, toAcctUrl, traverseCollection };
|
package/dist/vocab/mod.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
|
|
5
|
-
import "../docloader-
|
|
6
|
-
import { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object as Object$1, Offer, OrderedCollection, OrderedCollectionPage, Organization, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View, getActorClassByTypeName, getActorHandle, getActorTypeName, getTypeId, isActor, normalizeActorHandle } from "../actor-
|
|
7
|
-
import "../lookup-
|
|
8
|
-
import { PUBLIC_COLLECTION, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../vocab-
|
|
5
|
+
import "../docloader-BZuFiEXd.js";
|
|
6
|
+
import { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object as Object$1, Offer, OrderedCollection, OrderedCollectionPage, Organization, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View, getActorClassByTypeName, getActorHandle, getActorTypeName, getTypeId, isActor, normalizeActorHandle } from "../actor-CJTmhnth.js";
|
|
7
|
+
import "../lookup-Bo7aPoM4.js";
|
|
8
|
+
import { PUBLIC_COLLECTION, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../vocab-BoxaRqvr.js";
|
|
9
9
|
|
|
10
10
|
export { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object$1 as Object, Offer, OrderedCollection, OrderedCollectionPage, Organization, PUBLIC_COLLECTION, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View, getActorClassByTypeName, getActorHandle, getActorTypeName, getTypeId, isActor, isFediverseHandle, lookupObject, normalizeActorHandle, parseFediverseHandle, toAcctUrl, traverseCollection };
|
package/dist/vocab/type.test.js
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
6
|
import { assertEquals } from "../assert_equals-C5gKCm6A.js";
|
|
7
|
-
import "../docloader-
|
|
7
|
+
import "../docloader-CXPltDXB.js";
|
|
8
8
|
import "../url-kTAI6_KP.js";
|
|
9
9
|
import "../multibase-DeCHcK8L.js";
|
|
10
|
-
import { Person } from "../vocab-
|
|
10
|
+
import { Person } from "../vocab-B7KhPrGi.js";
|
|
11
11
|
import "../langstr-DbWheeIS.js";
|
|
12
12
|
import { getTypeId } from "../type-D2s5lmbZ.js";
|
|
13
13
|
import { test } from "../testing-BZ0dJ4qn.js";
|
package/dist/vocab/vocab.test.js
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
import { assertEquals } from "../assert_equals-C5gKCm6A.js";
|
|
7
7
|
import { assert } from "../assert-DwEa6glZ.js";
|
|
8
8
|
import { assertInstanceOf } from "../assert_instance_of-C9QtN-X9.js";
|
|
9
|
-
import "../docloader-
|
|
9
|
+
import "../docloader-CXPltDXB.js";
|
|
10
10
|
import "../url-kTAI6_KP.js";
|
|
11
11
|
import { decode } from "../multibase-DeCHcK8L.js";
|
|
12
|
-
import { Activity, Announce, Create, CryptographicKey, Follow, Hashtag, Note, Object as Object$1, OrderedCollectionPage, Person, Place, Question, Source, vocab_exports } from "../vocab-
|
|
12
|
+
import { Activity, Announce, Create, CryptographicKey, Follow, Hashtag, Note, Object as Object$1, OrderedCollectionPage, Person, Place, Question, Source, vocab_exports } from "../vocab-B7KhPrGi.js";
|
|
13
13
|
import { LanguageString } from "../langstr-DbWheeIS.js";
|
|
14
14
|
import { test } from "../testing-BZ0dJ4qn.js";
|
|
15
15
|
import "../std__assert-B3iAixc-.js";
|
|
@@ -17,8 +17,8 @@ import { assertFalse, assertRejects } from "../assert_rejects-DceVjUlD.js";
|
|
|
17
17
|
import "../assert_is_error-DQdKoRgb.js";
|
|
18
18
|
import { assertNotEquals } from "../assert_not_equals-7pyUM3Ib.js";
|
|
19
19
|
import { assertThrows } from "../assert_throws-DTDC_gwN.js";
|
|
20
|
-
import { mockDocumentLoader } from "../docloader-
|
|
21
|
-
import { ed25519PublicKey, rsaPublicKey1 } from "../keys-
|
|
20
|
+
import { mockDocumentLoader } from "../docloader-09nVWLAZ.js";
|
|
21
|
+
import { ed25519PublicKey, rsaPublicKey1 } from "../keys-CIPuxYvA.js";
|
|
22
22
|
import { pascalCase } from "es-toolkit";
|
|
23
23
|
import { parseLanguageTag } from "@phensley/language-tag";
|
|
24
24
|
import { Validator } from "@cfworker/json-schema";
|