@fedify/fedify 2.0.0-dev.1604 → 2.0.0-dev.161

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 (292) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +66 -30
  3. package/dist/{assert_rejects-7UF4R_Qs.js → assert_rejects-Ce45JcFg.js} +1 -1
  4. package/dist/{assert_is_error-B035L3om.js → assert_throws-BNXdRGWP.js} +31 -1
  5. package/dist/{builder-D9zidAqR.js → builder-CulJ6Oa9.js} +15 -8
  6. package/dist/chunk-DqRYRqnO.cjs +34 -0
  7. package/dist/client-94iWEfQa.d.cts +222 -0
  8. package/dist/{client-bgSdkFa2.d.ts → client-BivSNrEg.d.ts} +1 -1
  9. package/dist/{client-Bsj0vQPr.js → client-CgMTXmAD.js} +1 -1
  10. package/dist/compat/mod.cjs +10 -0
  11. package/dist/compat/mod.d.cts +7 -0
  12. package/dist/compat/mod.d.ts +6 -12
  13. package/dist/compat/mod.js +5 -5
  14. package/dist/compat/transformers.test.js +21 -19
  15. package/dist/compat-DmDDELst.cjs +4 -0
  16. package/dist/compat-nxUqe4Z-.js +4 -0
  17. package/dist/context-Bns6uTJq.js +109 -0
  18. package/dist/{context-CDSZdQHD.d.ts → context-CYZ2i00R.d.ts} +321 -129
  19. package/dist/context-D2MrtLch.d.cts +2447 -0
  20. package/dist/deno-DIwNGswC.js +117 -0
  21. package/dist/{testing-CdBSI4xF.js → dist-B5f6a8Tt.js} +90 -111
  22. package/dist/{authdocloader-CzpPQC01.js → docloader-D2992pGD.js} +17 -8
  23. package/dist/{esm-CXF1VoeR.js → esm-DGl7uK1r.js} +32 -17
  24. package/dist/federation/builder.test.js +9 -9
  25. package/dist/federation/collection.test.js +3 -6
  26. package/dist/federation/handler.test.js +113 -145
  27. package/dist/federation/idempotency.test.js +202 -0
  28. package/dist/federation/inbox.test.js +5 -6
  29. package/dist/federation/keycache.test.js +4 -5
  30. package/dist/federation/kv.test.js +59 -7
  31. package/dist/federation/middleware.test.js +306 -111
  32. package/dist/federation/mod.cjs +25 -0
  33. package/dist/federation/mod.d.cts +7 -0
  34. package/dist/federation/mod.d.ts +7 -13
  35. package/dist/federation/mod.js +11 -16
  36. package/dist/federation/mq.test.js +7 -8
  37. package/dist/federation/negotiation.test.js +25 -0
  38. package/dist/federation/retry.test.js +2 -4
  39. package/dist/federation/router.test.js +4 -6
  40. package/dist/federation/send.test.js +53 -13
  41. package/dist/{webfinger/handler.test.js → federation/webfinger.test.js} +25 -23
  42. package/dist/federation-B431K2gm.cjs +266 -0
  43. package/dist/{federation-CMX7WzeL.js → federation-BbZwNNWj.js} +31 -9
  44. package/dist/{http-B_pxY5of.js → http-3fEbsHa0.js} +374 -14
  45. package/dist/{http-CSYNybkH.js → http-BV9SKFK0.js} +3 -2
  46. package/dist/http-C06iL_Qv.cjs +1222 -0
  47. package/dist/http-ClB3pLcL.d.cts +253 -0
  48. package/dist/{http-DqSNLFNY.d.ts → http-DLBDPal9.d.ts} +2 -2
  49. package/dist/{inbox-DoJlwIE4.js → inbox-DCV2fS3F.js} +25 -7
  50. package/dist/{key-BOzqiGbl.js → key-Bdc11xlQ.js} +3 -2
  51. package/dist/{keycache--NYDYifd.js → keycache-DRxpZ5r9.js} +1 -1
  52. package/dist/{keys-MacD9GP6.js → keys-ZbcByPg9.js} +2 -1
  53. package/dist/{kv-C7sopW2E.d.ts → kv-CtOmTRNc.d.ts} +30 -1
  54. package/dist/kv-D8q9fLkA.d.cts +110 -0
  55. package/dist/{kv-CRZrzyXm.js → kv-QzKcOQgP.js} +22 -0
  56. package/dist/kv-cache-B4-ASVht.js +122 -0
  57. package/dist/kv-cache-BEeqyGER.js +107 -0
  58. package/dist/kv-cache-CQjPwWHu.cjs +134 -0
  59. package/dist/{ld-D9oTBLrs.js → ld-C7be04RF.js} +4 -2
  60. package/dist/middleware-9RlUwILK.js +12 -0
  61. package/dist/middleware-B_mOdzoC.cjs +4242 -0
  62. package/dist/{middleware-CgNm3XOJ.js → middleware-C3xnTI2Z.js} +230 -327
  63. package/dist/{middleware-C0w2M0tb.js → middleware-C4_a2DNI.js} +272 -271
  64. package/dist/middleware-C9iGBAP1.cjs +12 -0
  65. package/dist/middleware-CYlahvpt.js +26 -0
  66. package/dist/mod-BrS8tiad.d.cts +266 -0
  67. package/dist/mod-C81L6_lQ.d.cts +1 -0
  68. package/dist/mod-CJgbdSqb.d.ts +109 -0
  69. package/dist/mod-CNNTHyBC.d.cts +80 -0
  70. package/dist/mod-CS-MS7gZ.d.cts +62 -0
  71. package/dist/{mod-RI3-KvUI.d.ts → mod-D_cmv2il.d.ts} +4 -4
  72. package/dist/mod-DcPRcifg.d.cts +107 -0
  73. package/dist/mod-DqFSzJA0.d.ts +64 -0
  74. package/dist/{mod-Drmz72EK.d.ts → mod-jOa7W503.d.ts} +3 -3
  75. package/dist/mod.cjs +55 -0
  76. package/dist/mod.d.cts +11 -0
  77. package/dist/mod.d.ts +11 -17
  78. package/dist/mod.js +15 -21
  79. package/dist/negotiation-5NPJL6zp.js +71 -0
  80. package/dist/nodeinfo/client.test.js +5 -8
  81. package/dist/nodeinfo/handler.test.js +23 -22
  82. package/dist/nodeinfo/mod.cjs +10 -0
  83. package/dist/nodeinfo/mod.d.cts +3 -0
  84. package/dist/nodeinfo/mod.d.ts +2 -4
  85. package/dist/nodeinfo/mod.js +5 -6
  86. package/dist/nodeinfo/types.test.js +4 -7
  87. package/dist/nodeinfo-BlLsRSiT.js +4 -0
  88. package/dist/nodeinfo-DuMYTpbZ.cjs +4 -0
  89. package/dist/otel/exporter.test.js +899 -0
  90. package/dist/otel/mod.cjs +262 -0
  91. package/dist/otel/mod.d.cts +230 -0
  92. package/dist/otel/mod.d.ts +232 -0
  93. package/dist/otel/mod.js +261 -0
  94. package/dist/{owner-CQPnQVtf.d.ts → owner-BgI8C-VY.d.ts} +2 -3
  95. package/dist/{owner-gB-pDKA-.js → owner-Bs5Y5twE.js} +45 -8
  96. package/dist/owner-C-zfmVAD.d.cts +66 -0
  97. package/dist/{proof-VPikK_0V.js → proof-C-751PeN.js} +50 -14
  98. package/dist/{proof-CScVkkIT.js → proof-CFwktc0B.js} +3 -2
  99. package/dist/proof-CaA7ysDp.cjs +709 -0
  100. package/dist/router-D9eI0s4b.js +118 -0
  101. package/dist/{send-flZ7H10-.js → send-C288Vw8b.js} +9 -4
  102. package/dist/sig/http.test.js +9 -11
  103. package/dist/sig/key.test.js +7 -9
  104. package/dist/sig/ld.test.js +8 -10
  105. package/dist/sig/mod.cjs +26 -0
  106. package/dist/sig/mod.d.cts +4 -0
  107. package/dist/sig/mod.d.ts +3 -7
  108. package/dist/sig/mod.js +6 -10
  109. package/dist/sig/owner.test.js +31 -10
  110. package/dist/sig/proof.test.js +11 -12
  111. package/dist/sig-CwuONEzF.js +4 -0
  112. package/dist/sig-DeXX2xnj.cjs +4 -0
  113. package/dist/testing/mod.d.ts +179 -6918
  114. package/dist/testing/mod.js +4 -4
  115. package/dist/transformers-BjBg6Lag.cjs +116 -0
  116. package/dist/{transformers-Dna8Fg7k.js → transformers-N_ip_y4P.js} +5 -5
  117. package/dist/types-Q-qkJXBV.cjs +315 -0
  118. package/dist/{types-Vo0qKhN7.js → types-hKTi53FO.js} +4 -4
  119. package/dist/{runtime/authdocloader.test.js → utils/docloader.test.js} +11 -13
  120. package/dist/utils/kv-cache.test.js +211 -0
  121. package/dist/utils/mod.cjs +10 -0
  122. package/dist/utils/mod.d.cts +4 -0
  123. package/dist/utils/mod.d.ts +6 -0
  124. package/dist/utils/mod.js +9 -0
  125. package/dist/utils-Db0ZmjcD.cjs +4 -0
  126. package/dist/utils-Wranxuoe.js +4 -0
  127. package/package.json +69 -55
  128. package/dist/actor-BC3XtGTj.js +0 -37312
  129. package/dist/actor-C22bXuuC.d.ts +0 -130
  130. package/dist/actor-CmRlosMl.js +0 -146
  131. package/dist/assert_throws-53_pKeP3.js +0 -39
  132. package/dist/authdocloader-D-DICGXT.js +0 -52
  133. package/dist/compat-Bb5myD13.js +0 -4
  134. package/dist/denokv-jZ0Z2h0M.js +0 -57
  135. package/dist/docloader-CkASOfZ5.js +0 -4615
  136. package/dist/docloader-CxWcuWqQ.d.ts +0 -221
  137. package/dist/fixtures/activitypub.academy/users/brauca_darradiul.json +0 -83
  138. package/dist/fixtures/example.com/announce.json +0 -6
  139. package/dist/fixtures/example.com/collection.json +0 -19
  140. package/dist/fixtures/example.com/create.json +0 -6
  141. package/dist/fixtures/example.com/cross-origin-actor.json +0 -6
  142. package/dist/fixtures/example.com/hong-gildong.json +0 -11
  143. package/dist/fixtures/example.com/invite.json +0 -7
  144. package/dist/fixtures/example.com/key.json +0 -7
  145. package/dist/fixtures/example.com/key2.json +0 -6
  146. package/dist/fixtures/example.com/object.json +0 -6
  147. package/dist/fixtures/example.com/orderedcollectionpage.json +0 -24
  148. package/dist/fixtures/example.com/paged/a.json +0 -13
  149. package/dist/fixtures/example.com/paged/b.json +0 -16
  150. package/dist/fixtures/example.com/paged-collection.json +0 -6
  151. package/dist/fixtures/example.com/person.json +0 -22
  152. package/dist/fixtures/example.com/person2.json +0 -40
  153. package/dist/fixtures/example.com/test.json +0 -5
  154. package/dist/fixtures/example.com/users/handle.json +0 -16
  155. package/dist/fixtures/example.com/wrong-type.json +0 -3
  156. package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +0 -24
  157. package/dist/fixtures/remote.domain/users/bob.json +0 -20
  158. package/dist/fixtures/server.example/users/alice.json +0 -20
  159. package/dist/fixtures/w3id.org/identity/v1.json +0 -152
  160. package/dist/fixtures/w3id.org/security/data-integrity/v1.json +0 -74
  161. package/dist/fixtures/w3id.org/security/multikey/v1.json +0 -35
  162. package/dist/fixtures/w3id.org/security/v1.json +0 -50
  163. package/dist/fixtures/wizard.casa/users/hongminhee.json +0 -69
  164. package/dist/fixtures/www.w3.org/ns/activitystreams.json +0 -379
  165. package/dist/fixtures/www.w3.org/ns/did/v1.json +0 -58
  166. package/dist/key-Bif4eMj7.js +0 -260
  167. package/dist/key-BteSu1lX.js +0 -10
  168. package/dist/key-DWWqeyaq.js +0 -10
  169. package/dist/lookup-Cz9VSYxw.js +0 -131
  170. package/dist/lookup-DuzrBbTj.js +0 -322
  171. package/dist/middleware-CNfiKLIZ.js +0 -25
  172. package/dist/middleware-CnvU63kV.js +0 -17
  173. package/dist/mod-Cxt4Kpf6.d.ts +0 -291
  174. package/dist/mod-DBzN0aCM.d.ts +0 -115
  175. package/dist/mod-TFoH2Ql8.d.ts +0 -104
  176. package/dist/mod-g0xFzAP9.d.ts +0 -2
  177. package/dist/mq-CRGm1e_F.d.ts +0 -143
  178. package/dist/nodeinfo-CyEbLjHs.js +0 -4
  179. package/dist/runtime/docloader.test.js +0 -522
  180. package/dist/runtime/key.test.js +0 -103
  181. package/dist/runtime/langstr.test.js +0 -39
  182. package/dist/runtime/mod.d.ts +0 -8
  183. package/dist/runtime/mod.js +0 -13
  184. package/dist/runtime/multibase/multibase.test.js +0 -358
  185. package/dist/runtime/url.test.d.ts +0 -3
  186. package/dist/runtime/url.test.js +0 -45
  187. package/dist/runtime-BSkOVUWM.js +0 -4
  188. package/dist/sig-BXJO--F9.js +0 -4
  189. package/dist/src/vocab/accept.yaml +0 -15
  190. package/dist/src/vocab/activity.yaml +0 -98
  191. package/dist/src/vocab/add.yaml +0 -16
  192. package/dist/src/vocab/announce.yaml +0 -30
  193. package/dist/src/vocab/application.yaml +0 -324
  194. package/dist/src/vocab/arrive.yaml +0 -15
  195. package/dist/src/vocab/article.yaml +0 -46
  196. package/dist/src/vocab/audio.yaml +0 -11
  197. package/dist/src/vocab/block.yaml +0 -16
  198. package/dist/src/vocab/chatmessage.yaml +0 -50
  199. package/dist/src/vocab/collection.yaml +0 -154
  200. package/dist/src/vocab/collectionpage.yaml +0 -55
  201. package/dist/src/vocab/create.yaml +0 -28
  202. package/dist/src/vocab/dataintegrityproof.yaml +0 -56
  203. package/dist/src/vocab/delete.yaml +0 -27
  204. package/dist/src/vocab/didservice.yaml +0 -22
  205. package/dist/src/vocab/dislike.yaml +0 -14
  206. package/dist/src/vocab/document.yaml +0 -31
  207. package/dist/src/vocab/emoji.yaml +0 -12
  208. package/dist/src/vocab/emojireact.yaml +0 -17
  209. package/dist/src/vocab/endpoints.yaml +0 -85
  210. package/dist/src/vocab/event.yaml +0 -11
  211. package/dist/src/vocab/export.yaml +0 -9
  212. package/dist/src/vocab/flag.yaml +0 -15
  213. package/dist/src/vocab/follow.yaml +0 -19
  214. package/dist/src/vocab/group.yaml +0 -324
  215. package/dist/src/vocab/hashtag.yaml +0 -14
  216. package/dist/src/vocab/ignore.yaml +0 -14
  217. package/dist/src/vocab/image.yaml +0 -9
  218. package/dist/src/vocab/intransitiveactivity.yaml +0 -15
  219. package/dist/src/vocab/invite.yaml +0 -14
  220. package/dist/src/vocab/join.yaml +0 -14
  221. package/dist/src/vocab/key.yaml +0 -28
  222. package/dist/src/vocab/leave.yaml +0 -14
  223. package/dist/src/vocab/like.yaml +0 -16
  224. package/dist/src/vocab/link.yaml +0 -101
  225. package/dist/src/vocab/listen.yaml +0 -12
  226. package/dist/src/vocab/mention.yaml +0 -9
  227. package/dist/src/vocab/move.yaml +0 -15
  228. package/dist/src/vocab/multikey.yaml +0 -36
  229. package/dist/src/vocab/note.yaml +0 -48
  230. package/dist/src/vocab/object.yaml +0 -404
  231. package/dist/src/vocab/offer.yaml +0 -15
  232. package/dist/src/vocab/orderedcollection.yaml +0 -39
  233. package/dist/src/vocab/orderedcollectionpage.yaml +0 -50
  234. package/dist/src/vocab/organization.yaml +0 -324
  235. package/dist/src/vocab/page.yaml +0 -11
  236. package/dist/src/vocab/person.yaml +0 -324
  237. package/dist/src/vocab/place.yaml +0 -75
  238. package/dist/src/vocab/profile.yaml +0 -26
  239. package/dist/src/vocab/propertyvalue.yaml +0 -32
  240. package/dist/src/vocab/question.yaml +0 -103
  241. package/dist/src/vocab/read.yaml +0 -13
  242. package/dist/src/vocab/reject.yaml +0 -14
  243. package/dist/src/vocab/relationship.yaml +0 -52
  244. package/dist/src/vocab/remove.yaml +0 -14
  245. package/dist/src/vocab/service.yaml +0 -324
  246. package/dist/src/vocab/source.yaml +0 -26
  247. package/dist/src/vocab/tentativeaccept.yaml +0 -14
  248. package/dist/src/vocab/tentativereject.yaml +0 -14
  249. package/dist/src/vocab/tombstone.yaml +0 -24
  250. package/dist/src/vocab/travel.yaml +0 -16
  251. package/dist/src/vocab/undo.yaml +0 -26
  252. package/dist/src/vocab/update.yaml +0 -58
  253. package/dist/src/vocab/video.yaml +0 -11
  254. package/dist/src/vocab/view.yaml +0 -13
  255. package/dist/testing/docloader.test.js +0 -24
  256. package/dist/type-CAteiET0.js +0 -42007
  257. package/dist/vocab/actor.test.d.ts +0 -3
  258. package/dist/vocab/actor.test.js +0 -5965
  259. package/dist/vocab/lookup.test.d.ts +0 -3
  260. package/dist/vocab/lookup.test.js +0 -206
  261. package/dist/vocab/mod.d.ts +0 -8
  262. package/dist/vocab/mod.js +0 -10
  263. package/dist/vocab/schema.yaml +0 -247
  264. package/dist/vocab/type.test.d.ts +0 -3
  265. package/dist/vocab/type.test.js +0 -25
  266. package/dist/vocab/vocab.test.d.ts +0 -3
  267. package/dist/vocab/vocab.test.js +0 -3363
  268. package/dist/vocab-89qErSc9.js +0 -246
  269. package/dist/vocab-SOE1ifCr.d.ts +0 -14634
  270. package/dist/webfinger/handler.test.d.ts +0 -3
  271. package/dist/webfinger/lookup.test.d.ts +0 -3
  272. package/dist/webfinger/lookup.test.js +0 -195
  273. package/dist/webfinger/mod.d.ts +0 -6
  274. package/dist/webfinger/mod.js +0 -9
  275. package/dist/webfinger-C3GIyXIg.js +0 -4
  276. package/dist/x/cfworkers.d.ts +0 -61
  277. package/dist/x/cfworkers.js +0 -98
  278. package/dist/x/cfworkers.test.d.ts +0 -3
  279. package/dist/x/cfworkers.test.js +0 -179
  280. package/dist/x/hono.d.ts +0 -56
  281. package/dist/x/hono.js +0 -60
  282. package/dist/x/sveltekit.d.ts +0 -48
  283. package/dist/x/sveltekit.js +0 -68
  284. /package/dist/{runtime/authdocloader.test.d.ts → federation/idempotency.test.d.ts} +0 -0
  285. /package/dist/{runtime/docloader.test.d.ts → federation/negotiation.test.d.ts} +0 -0
  286. /package/dist/{runtime/key.test.d.ts → federation/webfinger.test.d.ts} +0 -0
  287. /package/dist/{mod-1pDWKvUL.d.ts → mod-1E3W847c.d.ts} +0 -0
  288. /package/dist/{runtime/langstr.test.d.ts → otel/exporter.test.d.ts} +0 -0
  289. /package/dist/{retry-CfF8Gn4d.js → retry-D4GJ670a.js} +0 -0
  290. /package/dist/{types-BSuWJsOm.js → types-BEdCLHqP.js} +0 -0
  291. /package/dist/{testing → utils}/docloader.test.d.ts +0 -0
  292. /package/dist/{runtime/multibase/multibase.test.d.ts → utils/kv-cache.test.d.ts} +0 -0
@@ -1,522 +0,0 @@
1
-
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
- globalThis.addEventListener = () => {};
5
-
6
- import { FetchError, UrlError, contexts_default, deno_default, getDocumentLoader, getUserAgent, kvCache } from "../type-CAteiET0.js";
7
- import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
- import "../assert-MZs1qjMx.js";
9
- import "../assert_instance_of-DHz7EHNU.js";
10
- import { MemoryKvStore } from "../kv-CRZrzyXm.js";
11
- import "../lookup-DuzrBbTj.js";
12
- import { mockDocumentLoader, test } from "../testing-CdBSI4xF.js";
13
- import "../std__assert-DWivtrGR.js";
14
- import { assertRejects } from "../assert_rejects-7UF4R_Qs.js";
15
- import "../assert_is_error-B035L3om.js";
16
- import "../assert_not_equals-C80BG-_5.js";
17
- import { assertThrows } from "../assert_throws-53_pKeP3.js";
18
- import { esm_default } from "../esm-CXF1VoeR.js";
19
- import process from "node:process";
20
-
21
- //#region src/runtime/docloader.test.ts
22
- test("new FetchError()", () => {
23
- const e = new FetchError("https://example.com/", "An error message.");
24
- assertEquals(e.name, "FetchError");
25
- assertEquals(e.url, new URL("https://example.com/"));
26
- assertEquals(e.message, "https://example.com/: An error message.");
27
- const e2 = new FetchError(new URL("https://example.org/"));
28
- assertEquals(e2.url, new URL("https://example.org/"));
29
- assertEquals(e2.message, "https://example.org/");
30
- });
31
- test("getDocumentLoader()", async (t) => {
32
- const fetchDocumentLoader = getDocumentLoader();
33
- esm_default.spyGlobal();
34
- esm_default.get("https://example.com/object", { body: {
35
- "@context": "https://www.w3.org/ns/activitystreams",
36
- id: "https://example.com/object",
37
- name: "Fetched object",
38
- type: "Object"
39
- } });
40
- await t.step("ok", async () => {
41
- assertEquals(await fetchDocumentLoader("https://example.com/object"), {
42
- contextUrl: null,
43
- documentUrl: "https://example.com/object",
44
- document: {
45
- "@context": "https://www.w3.org/ns/activitystreams",
46
- id: "https://example.com/object",
47
- name: "Fetched object",
48
- type: "Object"
49
- }
50
- });
51
- });
52
- esm_default.get("https://example.com/link-ctx", {
53
- body: {
54
- id: "https://example.com/link-ctx",
55
- name: "Fetched object",
56
- type: "Object"
57
- },
58
- headers: {
59
- "Content-Type": "application/activity+json",
60
- Link: "<https://www.w3.org/ns/activitystreams>; rel=\"http://www.w3.org/ns/json-ld#context\"; type=\"application/ld+json\""
61
- }
62
- });
63
- esm_default.get("https://example.com/link-obj", { headers: {
64
- "Content-Type": "text/html; charset=utf-8",
65
- Link: "<https://example.com/object>; rel=\"alternate\"; type=\"application/activity+json\""
66
- } });
67
- esm_default.get("https://example.com/link-obj-relative", { headers: {
68
- "Content-Type": "text/html; charset=utf-8",
69
- Link: "</object>; rel=\"alternate\"; type=\"application/activity+json\""
70
- } });
71
- esm_default.get("https://example.com/obj-w-wrong-link", {
72
- body: {
73
- "@context": "https://www.w3.org/ns/activitystreams",
74
- id: "https://example.com/obj-w-wrong-link",
75
- name: "Fetched object",
76
- type: "Object"
77
- },
78
- headers: {
79
- "Content-Type": "text/html; charset=utf-8",
80
- Link: "<https://example.com/object>; rel=\"alternate\"; type=\"application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"\""
81
- }
82
- });
83
- await t.step("Link header", async () => {
84
- assertEquals(await fetchDocumentLoader("https://example.com/link-ctx"), {
85
- contextUrl: "https://www.w3.org/ns/activitystreams",
86
- documentUrl: "https://example.com/link-ctx",
87
- document: {
88
- id: "https://example.com/link-ctx",
89
- name: "Fetched object",
90
- type: "Object"
91
- }
92
- });
93
- assertEquals(await fetchDocumentLoader("https://example.com/link-obj"), {
94
- contextUrl: null,
95
- documentUrl: "https://example.com/object",
96
- document: {
97
- "@context": "https://www.w3.org/ns/activitystreams",
98
- id: "https://example.com/object",
99
- name: "Fetched object",
100
- type: "Object"
101
- }
102
- });
103
- });
104
- await t.step("Link header relative url", async () => {
105
- assertEquals(await fetchDocumentLoader("https://example.com/link-ctx"), {
106
- contextUrl: "https://www.w3.org/ns/activitystreams",
107
- documentUrl: "https://example.com/link-ctx",
108
- document: {
109
- id: "https://example.com/link-ctx",
110
- name: "Fetched object",
111
- type: "Object"
112
- }
113
- });
114
- assertEquals(await fetchDocumentLoader("https://example.com/link-obj-relative"), {
115
- contextUrl: null,
116
- documentUrl: "https://example.com/object",
117
- document: {
118
- "@context": "https://www.w3.org/ns/activitystreams",
119
- id: "https://example.com/object",
120
- name: "Fetched object",
121
- type: "Object"
122
- }
123
- });
124
- });
125
- await t.step("wrong Link header syntax", async () => {
126
- assertEquals(await fetchDocumentLoader("https://example.com/obj-w-wrong-link"), {
127
- contextUrl: null,
128
- documentUrl: "https://example.com/obj-w-wrong-link",
129
- document: {
130
- "@context": "https://www.w3.org/ns/activitystreams",
131
- id: "https://example.com/obj-w-wrong-link",
132
- name: "Fetched object",
133
- type: "Object"
134
- }
135
- });
136
- });
137
- esm_default.get("https://example.com/html-link", {
138
- body: `<html>
139
- <head>
140
- <meta charset=utf-8>
141
- <link
142
- rel=alternate
143
- type='application/activity+json'
144
- href="https://example.com/object">
145
- </head>
146
- </html>`,
147
- headers: { "Content-Type": "text/html; charset=utf-8" }
148
- });
149
- await t.step("HTML <link>", async () => {
150
- assertEquals(await fetchDocumentLoader("https://example.com/html-link"), {
151
- contextUrl: null,
152
- documentUrl: "https://example.com/object",
153
- document: {
154
- "@context": "https://www.w3.org/ns/activitystreams",
155
- id: "https://example.com/object",
156
- name: "Fetched object",
157
- type: "Object"
158
- }
159
- });
160
- });
161
- esm_default.get("https://example.com/xhtml-link", {
162
- body: `<html>
163
- <head>
164
- <meta charset="utf-8" />
165
- <link
166
- rel=alternate
167
- type="application/activity+json"
168
- href="https://example.com/object" />
169
- </head>
170
- </html>`,
171
- headers: { "Content-Type": "application/xhtml+xml; charset=utf-8" }
172
- });
173
- await t.step("XHTML <link>", async () => {
174
- assertEquals(await fetchDocumentLoader("https://example.com/xhtml-link"), {
175
- contextUrl: null,
176
- documentUrl: "https://example.com/object",
177
- document: {
178
- "@context": "https://www.w3.org/ns/activitystreams",
179
- id: "https://example.com/object",
180
- name: "Fetched object",
181
- type: "Object"
182
- }
183
- });
184
- });
185
- esm_default.get("https://example.com/html-a", {
186
- body: `<html>
187
- <head>
188
- <meta charset=utf-8>
189
- </head>
190
- <body>
191
- <a
192
- rel=alternate
193
- type=application/activity+json
194
- href=https://example.com/object>test</a>
195
- </body>
196
- </html>`,
197
- headers: { "Content-Type": "text/html; charset=utf-8" }
198
- });
199
- await t.step("HTML <a>", async () => {
200
- assertEquals(await fetchDocumentLoader("https://example.com/html-a"), {
201
- contextUrl: null,
202
- documentUrl: "https://example.com/object",
203
- document: {
204
- "@context": "https://www.w3.org/ns/activitystreams",
205
- id: "https://example.com/object",
206
- name: "Fetched object",
207
- type: "Object"
208
- }
209
- });
210
- });
211
- esm_default.get("https://example.com/wrong-content-type", {
212
- body: {
213
- "@context": "https://www.w3.org/ns/activitystreams",
214
- id: "https://example.com/wrong-content-type",
215
- name: "Fetched object",
216
- type: "Object"
217
- },
218
- headers: { "Content-Type": "text/html; charset=utf-8" }
219
- });
220
- await t.step("Wrong Content-Type", async () => {
221
- assertEquals(await fetchDocumentLoader("https://example.com/wrong-content-type"), {
222
- contextUrl: null,
223
- documentUrl: "https://example.com/wrong-content-type",
224
- document: {
225
- "@context": "https://www.w3.org/ns/activitystreams",
226
- id: "https://example.com/wrong-content-type",
227
- name: "Fetched object",
228
- type: "Object"
229
- }
230
- });
231
- });
232
- esm_default.get("https://example.com/404", { status: 404 });
233
- await t.step("not ok", async () => {
234
- await assertRejects(() => fetchDocumentLoader("https://example.com/404"), FetchError, "HTTP 404: https://example.com/404");
235
- });
236
- await t.step("preloaded contexts", async () => {
237
- for (const [url, document] of Object.entries(contexts_default)) assertEquals(await fetchDocumentLoader(url), {
238
- contextUrl: null,
239
- documentUrl: url,
240
- document
241
- });
242
- });
243
- await t.step("deny non-HTTP/HTTPS", async () => {
244
- await assertRejects(() => fetchDocumentLoader("ftp://localhost"), UrlError);
245
- });
246
- esm_default.get("https://example.com/localhost-redirect", {
247
- status: 302,
248
- headers: { Location: "https://localhost/object" }
249
- });
250
- esm_default.get("https://example.com/localhost-link", {
251
- body: `<html>
252
- <head>
253
- <meta charset=utf-8>
254
- <link
255
- rel=alternate
256
- type='application/activity+json'
257
- href="https://localhost/object">
258
- </head>
259
- </html>`,
260
- headers: { "Content-Type": "text/html; charset=utf-8" }
261
- });
262
- esm_default.get("https://localhost/object", { body: {
263
- "@context": "https://www.w3.org/ns/activitystreams",
264
- id: "https://localhost/object",
265
- name: "Fetched object",
266
- type: "Object"
267
- } });
268
- await t.step("allowPrivateAddress: false", async () => {
269
- await assertRejects(() => fetchDocumentLoader("https://localhost/object"), UrlError);
270
- await assertRejects(() => fetchDocumentLoader("https://example.com/localhost-redirect"), UrlError);
271
- await assertRejects(() => fetchDocumentLoader("https://example.com/localhost-link"), UrlError);
272
- });
273
- const fetchDocumentLoader2 = getDocumentLoader({ allowPrivateAddress: true });
274
- await t.step("allowPrivateAddress: true", async () => {
275
- const expected = {
276
- contextUrl: null,
277
- documentUrl: "https://localhost/object",
278
- document: {
279
- "@context": "https://www.w3.org/ns/activitystreams",
280
- id: "https://localhost/object",
281
- name: "Fetched object",
282
- type: "Object"
283
- }
284
- };
285
- assertEquals(await fetchDocumentLoader2("https://localhost/object"), expected);
286
- assertEquals(await fetchDocumentLoader2("https://example.com/localhost-redirect"), expected);
287
- assertEquals(await fetchDocumentLoader2("https://example.com/localhost-link"), expected);
288
- });
289
- esm_default.hardReset();
290
- });
291
- test("kvCache()", async (t) => {
292
- const kv = new MemoryKvStore();
293
- await t.step("cached", async () => {
294
- const loader = kvCache({
295
- kv,
296
- loader: mockDocumentLoader,
297
- rules: [
298
- ["https://example.org/", Temporal.Duration.from({ days: 1 })],
299
- [new URL("https://example.net/"), Temporal.Duration.from({ days: 1 })],
300
- [new URLPattern("https://example.com/*"), Temporal.Duration.from({ days: 30 })]
301
- ],
302
- prefix: ["_test", "cached"]
303
- });
304
- const result = await loader("https://example.com/object");
305
- assertEquals(result, {
306
- contextUrl: null,
307
- documentUrl: "https://example.com/object",
308
- document: {
309
- "@context": "https://www.w3.org/ns/activitystreams",
310
- id: "https://example.com/object",
311
- name: "Fetched object",
312
- type: "Object"
313
- }
314
- });
315
- const cache = await kv.get([
316
- "_test",
317
- "cached",
318
- "https://example.com/object"
319
- ]);
320
- assertEquals(cache, result);
321
- await kv.set([
322
- "_test",
323
- "cached",
324
- "https://example.org/"
325
- ], {
326
- contextUrl: null,
327
- documentUrl: "https://example.org/",
328
- document: { "id": "https://example.org/" }
329
- });
330
- const result2 = await loader("https://example.org/");
331
- assertEquals(result2, {
332
- contextUrl: null,
333
- documentUrl: "https://example.org/",
334
- document: { "id": "https://example.org/" }
335
- });
336
- await kv.set([
337
- "_test",
338
- "cached",
339
- "https://example.net/"
340
- ], {
341
- contextUrl: null,
342
- documentUrl: "https://example.net/",
343
- document: { "id": "https://example.net/" }
344
- });
345
- const result3 = await loader("https://example.net/");
346
- assertEquals(result3, {
347
- contextUrl: null,
348
- documentUrl: "https://example.net/",
349
- document: { "id": "https://example.net/" }
350
- });
351
- });
352
- await t.step("not cached", async () => {
353
- const loader = kvCache({
354
- kv,
355
- loader: mockDocumentLoader,
356
- rules: [],
357
- prefix: ["_test", "not cached"]
358
- });
359
- const result = await loader("https://example.com/object");
360
- assertEquals(result, {
361
- contextUrl: null,
362
- documentUrl: "https://example.com/object",
363
- document: {
364
- "@context": "https://www.w3.org/ns/activitystreams",
365
- id: "https://example.com/object",
366
- name: "Fetched object",
367
- type: "Object"
368
- }
369
- });
370
- const cache = await kv.get([
371
- "test2",
372
- "not cached",
373
- "https://example.com/object"
374
- ]);
375
- assertEquals(cache, void 0);
376
- });
377
- await t.step("maximum cache duration", () => {
378
- assertThrows(() => kvCache({
379
- kv,
380
- loader: mockDocumentLoader,
381
- rules: [["https://example.com/", Temporal.Duration.from({
382
- days: 30,
383
- seconds: 1
384
- })]]
385
- }), TypeError, "The maximum cache duration is 30 days");
386
- assertThrows(() => kvCache({
387
- kv,
388
- loader: mockDocumentLoader,
389
- rules: [[new URLPattern("https://example.com/*"), Temporal.Duration.from({
390
- days: 30,
391
- seconds: 1
392
- })]]
393
- }), TypeError, "The maximum cache duration is 30 days");
394
- });
395
- await t.step("on kv store exception", async () => {
396
- class KvStoreThrowsException {
397
- get(_key) {
398
- throw new Error("Failed to get key");
399
- }
400
- set(_key, _value, _options) {
401
- throw new Error("Failed to set key");
402
- }
403
- delete(_key) {
404
- throw new Error("Failed to delete key");
405
- }
406
- }
407
- const loader = kvCache({
408
- kv: new KvStoreThrowsException(),
409
- loader: mockDocumentLoader,
410
- rules: [
411
- ["https://example.org/", Temporal.Duration.from({ days: 1 })],
412
- [new URL("https://example.net/"), Temporal.Duration.from({ days: 1 })],
413
- [new URLPattern("https://example.com/*"), Temporal.Duration.from({ days: 30 })]
414
- ],
415
- prefix: ["_test", "not cached"]
416
- });
417
- const result = await loader("https://example.com/object");
418
- assertEquals(result, {
419
- contextUrl: null,
420
- documentUrl: "https://example.com/object",
421
- document: {
422
- "@context": "https://www.w3.org/ns/activitystreams",
423
- id: "https://example.com/object",
424
- name: "Fetched object",
425
- type: "Object"
426
- }
427
- });
428
- });
429
- await t.step("preloaded contexts bypass cache", async () => {
430
- const kv$1 = new MemoryKvStore();
431
- let loaderCalled = false;
432
- const mockLoader = (url) => {
433
- loaderCalled = true;
434
- return Promise.resolve({
435
- contextUrl: null,
436
- documentUrl: url,
437
- document: { "mock": "document" }
438
- });
439
- };
440
- const loader = kvCache({
441
- kv: kv$1,
442
- loader: mockLoader,
443
- prefix: ["_test", "preloaded"]
444
- });
445
- const activityStreamsUrl = "https://www.w3.org/ns/activitystreams";
446
- loaderCalled = false;
447
- const result = await loader(activityStreamsUrl);
448
- assertEquals(result, {
449
- contextUrl: null,
450
- documentUrl: activityStreamsUrl,
451
- document: contexts_default[activityStreamsUrl]
452
- });
453
- assertEquals(loaderCalled, false, "Loader should not be called for preloaded contexts");
454
- const cachedValue = await kv$1.get([
455
- "_test",
456
- "preloaded",
457
- activityStreamsUrl
458
- ]);
459
- assertEquals(cachedValue, void 0, "Preloaded contexts should not be cached in KV store");
460
- const securityUrl = "https://w3id.org/security/v1";
461
- loaderCalled = false;
462
- const result2 = await loader(securityUrl);
463
- assertEquals(result2, {
464
- contextUrl: null,
465
- documentUrl: securityUrl,
466
- document: contexts_default[securityUrl]
467
- });
468
- assertEquals(loaderCalled, false, "Loader should not be called for preloaded contexts");
469
- const nonPreloadedUrl = "https://example.com/not-preloaded";
470
- loaderCalled = false;
471
- const result3 = await loader(nonPreloadedUrl);
472
- assertEquals(result3, {
473
- contextUrl: null,
474
- documentUrl: nonPreloadedUrl,
475
- document: { "mock": "document" }
476
- });
477
- assertEquals(loaderCalled, true, "Loader should be called for non-preloaded URLs");
478
- const cachedValue2 = await kv$1.get([
479
- "_test",
480
- "preloaded",
481
- nonPreloadedUrl
482
- ]);
483
- assertEquals(cachedValue2, result3, "Non-preloaded URLs should be cached");
484
- });
485
- });
486
- test("getUserAgent()", () => {
487
- if ("Deno" in globalThis) {
488
- assertEquals(getUserAgent(), `Fedify/${deno_default.version} (Deno/${Deno.version.deno})`);
489
- assertEquals(getUserAgent({ software: "MyApp/1.0.0" }), `MyApp/1.0.0 (Fedify/${deno_default.version}; Deno/${Deno.version.deno})`);
490
- assertEquals(getUserAgent({ url: "https://example.com/" }), `Fedify/${deno_default.version} (Deno/${Deno.version.deno}; +https://example.com/)`);
491
- assertEquals(getUserAgent({
492
- software: "MyApp/1.0.0",
493
- url: new URL("https://example.com/")
494
- }), `MyApp/1.0.0 (Fedify/${deno_default.version}; Deno/${Deno.version.deno}; +https://example.com/)`);
495
- } else if ("Bun" in globalThis) {
496
- assertEquals(getUserAgent(), `Fedify/${deno_default.version} (Bun/${Bun.version})`);
497
- assertEquals(getUserAgent({ software: "MyApp/1.0.0" }), `MyApp/1.0.0 (Fedify/${deno_default.version}; Bun/${Bun.version})`);
498
- assertEquals(getUserAgent({ url: "https://example.com/" }), `Fedify/${deno_default.version} (Bun/${Bun.version}; +https://example.com/)`);
499
- assertEquals(getUserAgent({
500
- software: "MyApp/1.0.0",
501
- url: new URL("https://example.com/")
502
- }), `MyApp/1.0.0 (Fedify/${deno_default.version}; Bun/${Bun.version}; +https://example.com/)`);
503
- } else if (navigator.userAgent === "Cloudflare-Workers") {
504
- assertEquals(getUserAgent(), `Fedify/${deno_default.version} (Cloudflare-Workers)`);
505
- assertEquals(getUserAgent({ software: "MyApp/1.0.0" }), `MyApp/1.0.0 (Fedify/${deno_default.version}; Cloudflare-Workers)`);
506
- assertEquals(getUserAgent({ url: "https://example.com/" }), `Fedify/${deno_default.version} (Cloudflare-Workers; +https://example.com/)`);
507
- assertEquals(getUserAgent({
508
- software: "MyApp/1.0.0",
509
- url: new URL("https://example.com/")
510
- }), `MyApp/1.0.0 (Fedify/${deno_default.version}; Cloudflare-Workers; +https://example.com/)`);
511
- } else {
512
- assertEquals(getUserAgent(), `Fedify/${deno_default.version} (Node.js/${process.versions.node})`);
513
- assertEquals(getUserAgent({ software: "MyApp/1.0.0" }), `MyApp/1.0.0 (Fedify/${deno_default.version}; Node.js/${process.versions.node})`);
514
- assertEquals(getUserAgent({ url: "https://example.com/" }), `Fedify/${deno_default.version} (Node.js/${process.versions.node}; +https://example.com/)`);
515
- assertEquals(getUserAgent({
516
- software: "MyApp/1.0.0",
517
- url: new URL("https://example.com/")
518
- }), `MyApp/1.0.0 (Fedify/${deno_default.version}; Node.js/${process.versions.node}; +https://example.com/)`);
519
- }
520
- });
521
-
522
- //#endregion
@@ -1,103 +0,0 @@
1
-
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
- globalThis.addEventListener = () => {};
5
-
6
- import { exportMultibaseKey, exportSpki, importMultibaseKey, importPem, importPkcs1, importSpki } from "../type-CAteiET0.js";
7
- import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
- import "../assert-MZs1qjMx.js";
9
- import "../assert_instance_of-DHz7EHNU.js";
10
- import "../lookup-DuzrBbTj.js";
11
- import "../actor-CmRlosMl.js";
12
- import { exportJwk, importJwk } from "../key-BOzqiGbl.js";
13
- import { test } from "../testing-CdBSI4xF.js";
14
- import "../std__assert-DWivtrGR.js";
15
- import "../assert_rejects-7UF4R_Qs.js";
16
- import "../assert_is_error-B035L3om.js";
17
- import "../assert_not_equals-C80BG-_5.js";
18
- import "../assert_throws-53_pKeP3.js";
19
-
20
- //#region src/runtime/key.test.ts
21
- const rsaSpki = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxsRuvCkgJtflBTl4OVsm\nnt/J1mQfZasfJtN33dcZ3d1lJroxmgmMu69zjGEAwkNbMQaWNLqC4eogkJaeJ4RR\n5MHYXkL9nNilVoTkjX5BVit3puzs7XJ7WQnKQgQMI+ezn24GHsZ/v1JIo77lerX5\nk4HNwTNVt+yaZVQWaOMR3+6FwziQR6kd0VuG9/a9dgAnz2cEoORRC1i4W7IZaB1s\nZnh1WbHbevlGd72HSXll5rocPIHn8gq6xpBgpHwRphlRsgn4KHaJ6brXDIJjrnQh\nIe/YUBOGj/ImSEXhRwlFerKsoAVnZ0Hwbfa46qk44TAt8CyoPMWmpK6pt0ng4pQ2\nuwIDAQAB\n-----END PUBLIC KEY-----\n";
22
- const rsaPkcs1 = "-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAxsRuvCkgJtflBTl4OVsmnt/J1mQfZasfJtN33dcZ3d1lJroxmgmM\nu69zjGEAwkNbMQaWNLqC4eogkJaeJ4RR5MHYXkL9nNilVoTkjX5BVit3puzs7XJ7\nWQnKQgQMI+ezn24GHsZ/v1JIo77lerX5k4HNwTNVt+yaZVQWaOMR3+6FwziQR6kd\n0VuG9/a9dgAnz2cEoORRC1i4W7IZaB1sZnh1WbHbevlGd72HSXll5rocPIHn8gq6\nxpBgpHwRphlRsgn4KHaJ6brXDIJjrnQhIe/YUBOGj/ImSEXhRwlFerKsoAVnZ0Hw\nbfa46qk44TAt8CyoPMWmpK6pt0ng4pQ2uwIDAQAB\n-----END RSA PUBLIC KEY-----\n";
23
- const rsaJwk = {
24
- alg: "RS256",
25
- e: "AQAB",
26
- ext: true,
27
- key_ops: ["verify"],
28
- kty: "RSA",
29
- n: "xsRuvCkgJtflBTl4OVsmnt_J1mQfZasfJtN33dcZ3d1lJroxmgmMu69zjGEAwkNbMQaWNLqC4eogkJaeJ4RR5MHYXkL9nNilVoTkjX5BVit3puzs7XJ7WQnKQgQMI-ezn24GHsZ_v1JIo77lerX5k4HNwTNVt-yaZVQWaOMR3-6FwziQR6kd0VuG9_a9dgAnz2cEoORRC1i4W7IZaB1sZnh1WbHbevlGd72HSXll5rocPIHn8gq6xpBgpHwRphlRsgn4KHaJ6brXDIJjrnQhIe_YUBOGj_ImSEXhRwlFerKsoAVnZ0Hwbfa46qk44TAt8CyoPMWmpK6pt0ng4pQ2uw"
30
- };
31
- const rsaMultibase = "z4MXj1wBzi9jUstyPqYMn6Gum79JtbKFiHTibtPRoPeufjdimA24Kg8Q5N7E2eMpgVUtD61kUvmy4FaT5D5G8XU3ktxeduwEw5FHTtiLCzaruadf6rit1AUPL34UtcPuHh6GxBzTxgFKMMuzcHiUzG9wvbxn7toS4H2gbmUn1r91836ET2EVgmSdzju614Wu67ukyBGivcboncdfxPSR5JXwURBaL8K2P6yhKn3NyprFV8s6QpN4zgQMAD3Q6fjAsEvGNwXaQTZmEN2yd1NQ7uBE3RJ2XywZnehmfLQTEqD7Ad5XM3qfLLd9CtdzJGBkRfunHhkH1kz8dHL7hXwtk5EMXktY4QF5gZ1uisUV5mpPjEgqz7uDz";
32
- const ed25519Pem = "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAvrabdlLgVI5jWl7GpF+fLFJVF4ccI8D7h+v5ulBCYwo=\n-----END PUBLIC KEY-----\n";
33
- const ed25519Jwk = {
34
- alg: "Ed25519",
35
- kty: "OKP",
36
- crv: "Ed25519",
37
- x: "vrabdlLgVI5jWl7GpF-fLFJVF4ccI8D7h-v5ulBCYwo",
38
- key_ops: ["verify"],
39
- ext: true
40
- };
41
- const ed25519Multibase = "z6MksHj1MJnidCtDiyYW9ugNFftoX9fLK4bornTxmMZ6X7vq";
42
- test("importSpki()", async () => {
43
- const rsaKey = await importSpki(rsaSpki);
44
- assertEquals(await exportJwk(rsaKey), rsaJwk);
45
- const ed25519Key = await importSpki(ed25519Pem);
46
- assertEquals(await exportJwk(ed25519Key), ed25519Jwk);
47
- });
48
- test("exportSpki()", async () => {
49
- const rsaKey = await importJwk(rsaJwk, "public");
50
- const rsaSpki$1 = await exportSpki(rsaKey);
51
- assertEquals(rsaSpki$1, rsaSpki$1);
52
- const ed25519Key = await importJwk(ed25519Jwk, "public");
53
- const ed25519Spki = await exportSpki(ed25519Key);
54
- assertEquals(ed25519Spki, ed25519Pem);
55
- });
56
- test("importPkcs1()", async () => {
57
- const rsaKey = await importPkcs1(rsaPkcs1);
58
- assertEquals(await exportJwk(rsaKey), rsaJwk);
59
- });
60
- test("importPem()", async () => {
61
- const rsaPkcs1Key = await importPem(rsaPkcs1);
62
- assertEquals(await exportJwk(rsaPkcs1Key), rsaJwk);
63
- const rsaSpkiKey = await importPem(rsaSpki);
64
- assertEquals(await exportJwk(rsaSpkiKey), rsaJwk);
65
- const ed25519Key = await importPem(ed25519Pem);
66
- assertEquals(await exportJwk(ed25519Key), ed25519Jwk);
67
- });
68
- test("importMultibase()", async () => {
69
- const rsaKey = await importMultibaseKey(rsaMultibase);
70
- assertEquals(await exportJwk(rsaKey), rsaJwk);
71
- const ed25519Key = await importMultibaseKey(ed25519Multibase);
72
- assertEquals(await exportJwk(ed25519Key), ed25519Jwk);
73
- });
74
- test("exportMultibaseKey()", async () => {
75
- const rsaKey = await importJwk(rsaJwk, "public");
76
- const rsaMb = await exportMultibaseKey(rsaKey);
77
- assertEquals(rsaMb, rsaMultibase);
78
- const ed25519Key = await importJwk(ed25519Jwk, "public");
79
- const ed25519Mb = await exportMultibaseKey(ed25519Key);
80
- assertEquals(ed25519Mb, ed25519Multibase);
81
- const rsaKey2 = await importJwk({
82
- alg: "RS256",
83
- ext: true,
84
- key_ops: ["verify"],
85
- e: "AQAB",
86
- kty: "RSA",
87
- n: "sbX82NTV6IylxCh7MfV4hlyvaniCajuP97GyOqSvTmoEdBOflFvZ06kR_9D6ctt45Fk6hskfnag2GG69NALVH2o4RCR6tQiLRpKcMRtDYE_thEmfBvDzm_VVkOIYfxu-Ipuo9J_S5XDNDjczx2v-3oDh5-CIHkU46hvFeCvpUS-L8TJSbgX0kjVk_m4eIb9wh63rtmD6Uz_KBtCo5mmR4TEtcLZKYdqMp3wCjN-TlgHiz_4oVXWbHUefCEe8rFnX1iQnpDHU49_SaXQoud1jCaexFn25n-Aa8f8bc5Vm-5SeRwidHa6ErvEhTvf1dz6GoNPp2iRvm-wJ1gxwWJEYPQ"
88
- }, "public");
89
- const rsaMb2 = await exportMultibaseKey(rsaKey2);
90
- assertEquals(rsaMb2, "z4MXj1wBzi9jUstyPMS4jQqB6KdJaiatPkAtVtGc6bQEQEEsKTic4G7Rou3iBf9vPmT5dbkm9qsZsuVNjq8HCuW1w24nhBFGkRE4cd2Uf2tfrB3N7h4mnyPp1BF3ZttHTYv3DLUPi1zMdkULiow3M1GfXkoC6DoxDUm1jmN6GBj22SjVsr6dxezRVQc7aj9TxE7JLbMH1wh5X3kA58H3DFW8rnYMakFGbca5CB2Jf6CnGQZmL7o5uJAdTwXfy2iiiyPxXEGerMhHwhjTA1mKYobyk2CpeEcmvynADfNZ5MBvcCS7m3XkFCMNUYBS9NQ3fze6vMSUPsNa6GVYmKx2x6JrdEjCk3qRMMmyjnjCMfR4pXbRMZa3i");
91
- const ed25519Key2 = await importJwk({
92
- alg: "Ed25519",
93
- crv: "Ed25519",
94
- ext: true,
95
- key_ops: ["verify"],
96
- kty: "OKP",
97
- x: "Lm_M42cB3HkUiODQsXRcweM6TByfzEHGO9ND274JcOY"
98
- }, "public");
99
- const ed25519Mb2 = await exportMultibaseKey(ed25519Key2);
100
- assertEquals(ed25519Mb2, "z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK");
101
- });
102
-
103
- //#endregion
@@ -1,39 +0,0 @@
1
-
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
- globalThis.addEventListener = () => {};
5
-
6
- import { LanguageString } from "../type-CAteiET0.js";
7
- import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
- import "../assert-MZs1qjMx.js";
9
- import "../assert_instance_of-DHz7EHNU.js";
10
- import "../lookup-DuzrBbTj.js";
11
- import { test } from "../testing-CdBSI4xF.js";
12
- import "../std__assert-DWivtrGR.js";
13
- import "../assert_rejects-7UF4R_Qs.js";
14
- import "../assert_is_error-B035L3om.js";
15
- import "../assert_not_equals-C80BG-_5.js";
16
- import "../assert_throws-53_pKeP3.js";
17
- import util from "node:util";
18
-
19
- //#region src/runtime/langstr.test.ts
20
- test("new LanguageString()", () => {
21
- const langStr = new LanguageString("Hello", "en");
22
- assertEquals(langStr.toString(), "Hello");
23
- assertEquals(langStr.locale, new Intl.Locale("en"));
24
- assertEquals(new LanguageString("Hello", new Intl.Locale("en")), langStr);
25
- });
26
- test({
27
- name: "Deno.inspect(LanguageString)",
28
- ignore: !("Deno" in globalThis),
29
- fn() {
30
- const langStr = new LanguageString("Hello, 'world'", "en");
31
- assertEquals(Deno.inspect(langStr, { colors: false }), "<en> \"Hello, 'world'\"");
32
- }
33
- });
34
- test("util.inspect(LanguageString)", () => {
35
- const langStr = new LanguageString("Hello, 'world'", "en");
36
- assertEquals(util.inspect(langStr, { colors: false }), "<en> \"Hello, 'world'\"");
37
- });
38
-
39
- //#endregion
@@ -1,8 +0,0 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { URLPattern } from "urlpattern-polyfill";
3
- import "../kv-C7sopW2E.js";
4
- import { AuthenticatedDocumentLoaderFactory, DocumentLoader, DocumentLoaderFactory, DocumentLoaderFactoryOptions, FetchError, GetDocumentLoaderOptions, GetUserAgentOptions, KvCacheParameters, RemoteDocument, fetchDocumentLoader, getDocumentLoader, getUserAgent, kvCache } from "../docloader-CxWcuWqQ.js";
5
- import { LanguageString } from "../vocab-SOE1ifCr.js";
6
- import "../http-DqSNLFNY.js";
7
- import { GetAuthenticatedDocumentLoaderOptions, exportMultibaseKey, exportSpki, getAuthenticatedDocumentLoader, importMultibaseKey, importPem, importPkcs1, importSpki } from "../mod-TFoH2Ql8.js";
8
- export { AuthenticatedDocumentLoaderFactory, DocumentLoader, DocumentLoaderFactory, DocumentLoaderFactoryOptions, FetchError, GetAuthenticatedDocumentLoaderOptions, GetDocumentLoaderOptions, GetUserAgentOptions, KvCacheParameters, LanguageString, RemoteDocument, exportMultibaseKey, exportSpki, fetchDocumentLoader, getAuthenticatedDocumentLoader, getDocumentLoader, getUserAgent, importMultibaseKey, importPem, importPkcs1, importSpki, kvCache };