@fedify/fedify 2.0.0-dev.1908 → 2.0.0-dev.196

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 (266) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +68 -35
  3. package/dist/{builder-GG0LDRaK.js → builder-R1Sfe-tb.js} +5 -3
  4. package/dist/{client-BsGzbnV-.d.ts → client-CUTUGgvJ.d.ts} +18 -18
  5. package/dist/{client-pY7-3icS.js → client-Dg7OfUDA.js} +28 -23
  6. package/dist/{client-94iWEfQa.d.cts → client-by-PEGAJ.d.cts} +18 -18
  7. package/dist/compat/mod.cjs +1 -1
  8. package/dist/compat/mod.d.cts +6 -10
  9. package/dist/compat/mod.d.ts +6 -10
  10. package/dist/compat/mod.js +1 -1
  11. package/dist/compat/transformers.test.js +22 -21
  12. package/dist/context-Bns6uTJq.js +109 -0
  13. package/dist/{context-V-XS2_6O.d.ts → context-C7vzWilY.d.ts} +63 -65
  14. package/dist/{context-PxGADCsD.d.cts → context-CrB9RFy5.d.cts} +63 -65
  15. package/dist/deno-i60L3ZJW.js +117 -0
  16. package/dist/{testing-bgnt5CjE.js → dist-B5f6a8Tt.js} +90 -110
  17. package/dist/{docloader-Buj0Y50A.js → docloader-BuOglEYx.js} +3 -3
  18. package/dist/{esm-vPU_GxaY.js → esm-DGl7uK1r.js} +32 -17
  19. package/dist/federation/builder.test.js +7 -5
  20. package/dist/federation/collection.test.js +2 -3
  21. package/dist/federation/handler.test.js +110 -22
  22. package/dist/federation/idempotency.test.js +23 -22
  23. package/dist/federation/inbox.test.js +4 -3
  24. package/dist/federation/keycache.test.js +4 -4
  25. package/dist/federation/kv.test.js +56 -3
  26. package/dist/federation/middleware.test.js +95 -93
  27. package/dist/federation/mod.cjs +8 -10
  28. package/dist/federation/mod.d.cts +7 -11
  29. package/dist/federation/mod.d.ts +7 -11
  30. package/dist/federation/mod.js +8 -11
  31. package/dist/federation/mq.test.js +5 -6
  32. package/dist/federation/negotiation.test.js +2 -3
  33. package/dist/federation/retry.test.js +2 -3
  34. package/dist/federation/router.test.js +2 -2
  35. package/dist/federation/send.test.js +51 -9
  36. package/dist/{webfinger/handler.test.js → federation/webfinger.test.js} +24 -22
  37. package/dist/{federation-CRpdnOMS.cjs → federation-B431K2gm.cjs} +22 -0
  38. package/dist/{federation-jcR8-ZxP.js → federation-BbZwNNWj.js} +28 -6
  39. package/dist/{http-ByZmUHwe.js → http-B5BgMxiO.js} +119 -9
  40. package/dist/{http-CTi-owaL.cjs → http-B_jtB30-.cjs} +132 -16
  41. package/dist/{http-M8k5mKc0.d.cts → http-ClB3pLcL.d.cts} +1 -1
  42. package/dist/{http-BbO0ejuk.d.ts → http-DLBDPal9.d.ts} +1 -1
  43. package/dist/{http-DO88HCOK.js → http-uzkhnm0W.js} +3 -2
  44. package/dist/{inbox-BwIgnk8R.js → inbox-CxrUTds4.js} +2 -1
  45. package/dist/{key-CrKmngwF.js → key-DBHCloAO.js} +3 -3
  46. package/dist/{keycache-CFv8xdnH.js → keycache-DRxpZ5r9.js} +1 -1
  47. package/dist/{keys-B2yaEG79.js → keys-ZbcByPg9.js} +1 -1
  48. package/dist/{kv-Bxr0Q87_.d.cts → kv-B4vFhIYL.d.cts} +30 -1
  49. package/dist/{kv-BKNZ-Tb-.d.ts → kv-CYySNrsn.d.ts} +30 -1
  50. package/dist/{kv-CRZrzyXm.js → kv-QzKcOQgP.js} +22 -0
  51. package/dist/{kv-cache-DN9pfMBe.js → kv-cache-BEeqyGER.js} +14 -1
  52. package/dist/{kv-cache-CykGg2IP.js → kv-cache-BqWqxam4.js} +2 -2
  53. package/dist/{kv-cache-BbklA4EG.cjs → kv-cache-DY6hQ8Rf.cjs} +2 -2
  54. package/dist/{ld-Ckl2k3lF.js → ld-CZgNIUGN.js} +4 -3
  55. package/dist/{middleware-X0RaVmfv.cjs → middleware-BaoVtoMl.cjs} +210 -194
  56. package/dist/{middleware-Dv90Gwc-.js → middleware-BqPcChYv.js} +164 -154
  57. package/dist/middleware-CnrWiFJI.cjs +12 -0
  58. package/dist/{middleware-CdPISvYD.js → middleware-CxwWsgSo.js} +162 -165
  59. package/dist/middleware-DoFisLae.js +26 -0
  60. package/dist/middleware-ZN9cd_L8.js +12 -0
  61. package/dist/{mod-DMpuiKXi.d.cts → mod-0p9zUdzg.d.cts} +6 -6
  62. package/dist/mod-0qnPv4EC.d.cts +62 -0
  63. package/dist/{mod-DgxG-byT.d.cts → mod-BrS8tiad.d.cts} +2 -2
  64. package/dist/mod-C3SOvTD1.d.ts +64 -0
  65. package/dist/{mod-BoRKfJPE.d.cts → mod-D6pS5_xJ.d.cts} +4 -4
  66. package/dist/{mod-D5Z2tISD.d.ts → mod-jOa7W503.d.ts} +2 -2
  67. package/dist/{mod-Cdo6SYlJ.d.ts → mod-waqu-BL_.d.ts} +4 -4
  68. package/dist/{mod-aAE2wOWV.d.ts → mod-xc20HhMD.d.ts} +6 -6
  69. package/dist/mod.cjs +11 -93
  70. package/dist/mod.d.cts +11 -15
  71. package/dist/mod.d.ts +11 -15
  72. package/dist/mod.js +11 -15
  73. package/dist/nodeinfo/client.test.js +3 -4
  74. package/dist/nodeinfo/handler.test.js +22 -21
  75. package/dist/nodeinfo/mod.cjs +2 -2
  76. package/dist/nodeinfo/mod.d.cts +2 -2
  77. package/dist/nodeinfo/mod.d.ts +2 -2
  78. package/dist/nodeinfo/mod.js +2 -2
  79. package/dist/nodeinfo/types.test.js +2 -3
  80. package/dist/otel/exporter.test.js +893 -0
  81. package/dist/otel/mod.cjs +256 -0
  82. package/dist/otel/mod.d.cts +230 -0
  83. package/dist/otel/mod.d.ts +232 -0
  84. package/dist/otel/mod.js +255 -0
  85. package/dist/{owner-C8UEs7je.js → owner-BDvRiO5T.js} +44 -8
  86. package/dist/{owner-kQRGVXG1.d.ts → owner-BgI8C-VY.d.ts} +1 -2
  87. package/dist/{owner-B4HbyP8s.d.cts → owner-C-zfmVAD.d.cts} +1 -2
  88. package/dist/{proof-CDW6KgLA.js → proof-DzFse-Bn.js} +46 -11
  89. package/dist/{proof-CWKgvgzL.js → proof-XEPY5YKg.js} +3 -2
  90. package/dist/{proof-yc6sVqKg.cjs → proof-vmNsq1AQ.cjs} +63 -28
  91. package/dist/router-D9eI0s4b.js +118 -0
  92. package/dist/{send-z5jueBCW.js → send-BdhhZ2MN.js} +9 -4
  93. package/dist/sig/http.test.js +6 -7
  94. package/dist/sig/key.test.js +5 -5
  95. package/dist/sig/ld.test.js +6 -6
  96. package/dist/sig/mod.cjs +3 -5
  97. package/dist/sig/mod.d.cts +3 -5
  98. package/dist/sig/mod.d.ts +3 -5
  99. package/dist/sig/mod.js +3 -5
  100. package/dist/sig/owner.test.js +29 -6
  101. package/dist/sig/proof.test.js +6 -6
  102. package/dist/testing/mod.d.ts +70 -6999
  103. package/dist/testing/mod.js +4 -3
  104. package/dist/{transformers-CoBS-oFG.cjs → transformers-BjBg6Lag.cjs} +2 -2
  105. package/dist/{transformers-BFT6d7J5.js → transformers-N_ip_y4P.js} +2 -2
  106. package/dist/{types-BtUjyi5y.js → types-8l28uC8o.js} +30 -25
  107. package/dist/{types-CWgzGaqk.cjs → types-B6z6CqIz.cjs} +30 -25
  108. package/dist/{types-C2XVl6gj.js → types-CPz01LGH.js} +3 -3
  109. package/dist/utils/docloader.test.js +7 -8
  110. package/dist/utils/kv-cache.test.js +5 -3
  111. package/dist/utils/mod.cjs +3 -5
  112. package/dist/utils/mod.d.cts +3 -4
  113. package/dist/utils/mod.d.ts +3 -4
  114. package/dist/utils/mod.js +3 -5
  115. package/package.json +25 -36
  116. package/dist/actor-C6x8UgbE.cjs +0 -42079
  117. package/dist/actor-C76CDThG.js +0 -41647
  118. package/dist/actor-DqFajh9s.d.ts +0 -130
  119. package/dist/actor-DrFLTQdj.js +0 -146
  120. package/dist/actor-f2NtjyCg.d.cts +0 -128
  121. package/dist/fixtures/activitypub.academy/users/brauca_darradiul.json +0 -83
  122. package/dist/fixtures/example.com/announce.json +0 -6
  123. package/dist/fixtures/example.com/collection.json +0 -19
  124. package/dist/fixtures/example.com/create.json +0 -6
  125. package/dist/fixtures/example.com/cross-origin-actor.json +0 -6
  126. package/dist/fixtures/example.com/hong-gildong.json +0 -11
  127. package/dist/fixtures/example.com/invite.json +0 -7
  128. package/dist/fixtures/example.com/key.json +0 -7
  129. package/dist/fixtures/example.com/key2.json +0 -6
  130. package/dist/fixtures/example.com/object.json +0 -6
  131. package/dist/fixtures/example.com/orderedcollectionpage.json +0 -24
  132. package/dist/fixtures/example.com/paged/a.json +0 -13
  133. package/dist/fixtures/example.com/paged/b.json +0 -16
  134. package/dist/fixtures/example.com/paged-collection.json +0 -6
  135. package/dist/fixtures/example.com/person.json +0 -22
  136. package/dist/fixtures/example.com/person2.json +0 -40
  137. package/dist/fixtures/example.com/test.json +0 -5
  138. package/dist/fixtures/example.com/users/handle.json +0 -16
  139. package/dist/fixtures/example.com/wrong-type.json +0 -3
  140. package/dist/fixtures/media.example.com/avatars/test-avatar.jpg.json +0 -6
  141. package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +0 -24
  142. package/dist/fixtures/remote.domain/users/bob.json +0 -20
  143. package/dist/fixtures/server.example/users/alice.json +0 -20
  144. package/dist/fixtures/w3id.org/identity/v1.json +0 -152
  145. package/dist/fixtures/w3id.org/security/data-integrity/v1.json +0 -74
  146. package/dist/fixtures/w3id.org/security/multikey/v1.json +0 -35
  147. package/dist/fixtures/w3id.org/security/v1.json +0 -50
  148. package/dist/fixtures/wizard.casa/users/hongminhee.json +0 -69
  149. package/dist/fixtures/www.w3.org/ns/activitystreams.json +0 -379
  150. package/dist/fixtures/www.w3.org/ns/did/v1.json +0 -58
  151. package/dist/lookup-D17ydBQd.cjs +0 -265
  152. package/dist/lookup-DrCNfWHm.js +0 -253
  153. package/dist/lookup-yP6Lo5JV.js +0 -42178
  154. package/dist/middleware-BSCsvvh-.js +0 -26
  155. package/dist/middleware-GFpHLL1X.cjs +0 -15
  156. package/dist/middleware-pl3iXZpj.js +0 -15
  157. package/dist/mod-BlVovdcy.d.ts +0 -309
  158. package/dist/mod-BxRCHTz-.d.cts +0 -307
  159. package/dist/mod-C58MZ7Wx.d.cts +0 -113
  160. package/dist/mod-CcDPcLJW.d.cts +0 -1
  161. package/dist/mod-Ds0mpFZU.d.ts +0 -115
  162. package/dist/mod-bjzj5QIb.d.ts +0 -2
  163. package/dist/src/vocab/accept.yaml +0 -15
  164. package/dist/src/vocab/activity.yaml +0 -98
  165. package/dist/src/vocab/add.yaml +0 -16
  166. package/dist/src/vocab/announce.yaml +0 -30
  167. package/dist/src/vocab/application.yaml +0 -324
  168. package/dist/src/vocab/arrive.yaml +0 -15
  169. package/dist/src/vocab/article.yaml +0 -46
  170. package/dist/src/vocab/audio.yaml +0 -11
  171. package/dist/src/vocab/block.yaml +0 -16
  172. package/dist/src/vocab/chatmessage.yaml +0 -50
  173. package/dist/src/vocab/collection.yaml +0 -154
  174. package/dist/src/vocab/collectionpage.yaml +0 -55
  175. package/dist/src/vocab/create.yaml +0 -28
  176. package/dist/src/vocab/dataintegrityproof.yaml +0 -56
  177. package/dist/src/vocab/delete.yaml +0 -27
  178. package/dist/src/vocab/didservice.yaml +0 -22
  179. package/dist/src/vocab/dislike.yaml +0 -14
  180. package/dist/src/vocab/document.yaml +0 -31
  181. package/dist/src/vocab/emoji.yaml +0 -12
  182. package/dist/src/vocab/emojireact.yaml +0 -17
  183. package/dist/src/vocab/endpoints.yaml +0 -85
  184. package/dist/src/vocab/event.yaml +0 -11
  185. package/dist/src/vocab/export.yaml +0 -9
  186. package/dist/src/vocab/flag.yaml +0 -15
  187. package/dist/src/vocab/follow.yaml +0 -19
  188. package/dist/src/vocab/group.yaml +0 -324
  189. package/dist/src/vocab/hashtag.yaml +0 -14
  190. package/dist/src/vocab/ignore.yaml +0 -14
  191. package/dist/src/vocab/image.yaml +0 -9
  192. package/dist/src/vocab/intransitiveactivity.yaml +0 -15
  193. package/dist/src/vocab/invite.yaml +0 -14
  194. package/dist/src/vocab/join.yaml +0 -14
  195. package/dist/src/vocab/key.yaml +0 -28
  196. package/dist/src/vocab/leave.yaml +0 -14
  197. package/dist/src/vocab/like.yaml +0 -16
  198. package/dist/src/vocab/link.yaml +0 -101
  199. package/dist/src/vocab/listen.yaml +0 -12
  200. package/dist/src/vocab/mention.yaml +0 -9
  201. package/dist/src/vocab/move.yaml +0 -15
  202. package/dist/src/vocab/multikey.yaml +0 -36
  203. package/dist/src/vocab/note.yaml +0 -48
  204. package/dist/src/vocab/object.yaml +0 -404
  205. package/dist/src/vocab/offer.yaml +0 -15
  206. package/dist/src/vocab/orderedcollection.yaml +0 -39
  207. package/dist/src/vocab/orderedcollectionpage.yaml +0 -50
  208. package/dist/src/vocab/organization.yaml +0 -324
  209. package/dist/src/vocab/page.yaml +0 -11
  210. package/dist/src/vocab/person.yaml +0 -324
  211. package/dist/src/vocab/place.yaml +0 -75
  212. package/dist/src/vocab/profile.yaml +0 -26
  213. package/dist/src/vocab/propertyvalue.yaml +0 -32
  214. package/dist/src/vocab/question.yaml +0 -103
  215. package/dist/src/vocab/read.yaml +0 -13
  216. package/dist/src/vocab/reject.yaml +0 -14
  217. package/dist/src/vocab/relationship.yaml +0 -52
  218. package/dist/src/vocab/remove.yaml +0 -14
  219. package/dist/src/vocab/service.yaml +0 -324
  220. package/dist/src/vocab/source.yaml +0 -26
  221. package/dist/src/vocab/tentativeaccept.yaml +0 -14
  222. package/dist/src/vocab/tentativereject.yaml +0 -14
  223. package/dist/src/vocab/tombstone.yaml +0 -24
  224. package/dist/src/vocab/travel.yaml +0 -16
  225. package/dist/src/vocab/undo.yaml +0 -26
  226. package/dist/src/vocab/update.yaml +0 -58
  227. package/dist/src/vocab/video.yaml +0 -11
  228. package/dist/src/vocab/view.yaml +0 -13
  229. package/dist/testing/docloader.test.js +0 -22
  230. package/dist/vocab/actor.test.js +0 -5963
  231. package/dist/vocab/lookup.test.d.ts +0 -3
  232. package/dist/vocab/lookup.test.js +0 -454
  233. package/dist/vocab/mod.cjs +0 -86
  234. package/dist/vocab/mod.d.cts +0 -4
  235. package/dist/vocab/mod.d.ts +0 -6
  236. package/dist/vocab/mod.js +0 -9
  237. package/dist/vocab/type.test.d.ts +0 -3
  238. package/dist/vocab/type.test.js +0 -24
  239. package/dist/vocab/vocab.test.d.ts +0 -3
  240. package/dist/vocab/vocab.test.js +0 -9397
  241. package/dist/vocab-B4wXNBv8.js +0 -255
  242. package/dist/vocab-BCWe1Ih5.d.ts +0 -14905
  243. package/dist/vocab-CeDBzu-f.d.cts +0 -14903
  244. package/dist/vocab-Hqae4yux.cjs +0 -291
  245. package/dist/webfinger/handler.test.d.ts +0 -3
  246. package/dist/webfinger/lookup.test.d.ts +0 -3
  247. package/dist/webfinger/lookup.test.js +0 -193
  248. package/dist/webfinger/mod.cjs +0 -8
  249. package/dist/webfinger/mod.d.cts +0 -2
  250. package/dist/webfinger/mod.d.ts +0 -4
  251. package/dist/webfinger/mod.js +0 -8
  252. package/dist/webfinger-C72Y8lrh.js +0 -4
  253. package/dist/webfinger-vAtLmxOF.cjs +0 -4
  254. /package/dist/{collection-BzWsN9pB.js → collection-CcnIw1qY.js} +0 -0
  255. /package/dist/{testing/docloader.test.d.ts → federation/webfinger.test.d.ts} +0 -0
  256. /package/dist/{mod-CVgZgliM.d.ts → mod-1E3W847c.d.ts} +0 -0
  257. /package/dist/{mod-B-hUPT2N.d.cts → mod-C81L6_lQ.d.cts} +0 -0
  258. /package/dist/{negotiation-C4nFufNk.js → negotiation-5NPJL6zp.js} +0 -0
  259. /package/dist/{nodeinfo-BnthBobC.js → nodeinfo-BlLsRSiT.js} +0 -0
  260. /package/dist/{nodeinfo-CdN0rEnZ.cjs → nodeinfo-DuMYTpbZ.cjs} +0 -0
  261. /package/dist/{vocab/actor.test.d.ts → otel/exporter.test.d.ts} +0 -0
  262. /package/dist/{retry-CfF8Gn4d.js → retry-D4GJ670a.js} +0 -0
  263. /package/dist/{sig-C34-oHBl.js → sig-CwuONEzF.js} +0 -0
  264. /package/dist/{sig-YYj5tCnr.cjs → sig-DeXX2xnj.cjs} +0 -0
  265. /package/dist/{utils-DyRU1gdZ.cjs → utils-Db0ZmjcD.cjs} +0 -0
  266. /package/dist/{utils-D-Va7aXC.js → utils-Wranxuoe.js} +0 -0
@@ -1,3 +0,0 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { URLPattern } from "urlpattern-polyfill";
3
- globalThis.addEventListener = () => {};
@@ -1,454 +0,0 @@
1
-
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
- globalThis.addEventListener = () => {};
5
-
6
- import { Collection, Note, Object as Object$1, Person, lookupObject, traverseCollection } from "../lookup-yP6Lo5JV.js";
7
- import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
- import "../assert-MZs1qjMx.js";
9
- import { assertInstanceOf } from "../assert_instance_of-DHz7EHNU.js";
10
- import { mockDocumentLoader, test } from "../testing-bgnt5CjE.js";
11
- import "../std__assert-DWivtrGR.js";
12
- import { assertRejects } from "../assert_rejects-Ce45JcFg.js";
13
- import "../assert_throws-BNXdRGWP.js";
14
- import "../assert_not_equals-C80BG-_5.js";
15
- import { esm_default } from "../esm-vPU_GxaY.js";
16
-
17
- //#region src/vocab/lookup.test.ts
18
- test("lookupObject()", {
19
- sanitizeResources: false,
20
- sanitizeOps: false
21
- }, async (t) => {
22
- esm_default.spyGlobal();
23
- esm_default.get("begin:https://example.com/.well-known/webfinger", {
24
- subject: "acct:johndoe@example.com",
25
- links: [
26
- {
27
- rel: "alternate",
28
- href: "https://example.com/object",
29
- type: "application/activity+json"
30
- },
31
- {
32
- rel: "self",
33
- href: "https://example.com/html/person",
34
- type: "text/html"
35
- },
36
- {
37
- rel: "self",
38
- href: "https://example.com/person",
39
- type: "application/activity+json"
40
- }
41
- ]
42
- });
43
- const options = {
44
- documentLoader: mockDocumentLoader,
45
- contextLoader: mockDocumentLoader
46
- };
47
- await t.step("actor", async () => {
48
- const person = await lookupObject("@johndoe@example.com", options);
49
- assertInstanceOf(person, Person);
50
- assertEquals(person.id, new URL("https://example.com/person"));
51
- assertEquals(person.name, "John Doe");
52
- const person2 = await lookupObject("johndoe@example.com", options);
53
- assertEquals(person2, person);
54
- const person3 = await lookupObject("acct:johndoe@example.com", options);
55
- assertEquals(person3, person);
56
- });
57
- await t.step("object", async () => {
58
- const object = await lookupObject("https://example.com/object", options);
59
- assertInstanceOf(object, Object$1);
60
- assertEquals(object, new Object$1({
61
- id: new URL("https://example.com/object"),
62
- name: "Fetched object"
63
- }));
64
- const person = await lookupObject("https://example.com/hong-gildong", options);
65
- assertInstanceOf(person, Person);
66
- assertEquals(person, new Person({
67
- id: new URL("https://example.com/hong-gildong"),
68
- name: "Hong Gildong"
69
- }));
70
- });
71
- esm_default.removeRoutes();
72
- esm_default.get("begin:https://example.com/.well-known/webfinger", {
73
- subject: "acct:janedoe@example.com",
74
- links: [{
75
- rel: "self",
76
- href: "https://example.com/404",
77
- type: "application/activity+json"
78
- }]
79
- });
80
- await t.step("not found", async () => {
81
- assertEquals(await lookupObject("janedoe@example.com", options), null);
82
- assertEquals(await lookupObject("https://example.com/404", options), null);
83
- });
84
- esm_default.removeRoutes();
85
- esm_default.get("begin:https://example.com/.well-known/webfinger", () => new Promise((resolve) => {
86
- setTimeout(() => {
87
- resolve({
88
- subject: "acct:johndoe@example.com",
89
- links: [{
90
- rel: "self",
91
- href: "https://example.com/person",
92
- type: "application/activity+json"
93
- }]
94
- });
95
- }, 1e3);
96
- }));
97
- await t.step("request cancellation", async () => {
98
- const controller = new AbortController();
99
- const promise = lookupObject("johndoe@example.com", {
100
- ...options,
101
- signal: controller.signal
102
- });
103
- controller.abort();
104
- assertEquals(await promise, null);
105
- });
106
- esm_default.removeRoutes();
107
- esm_default.get("begin:https://example.com/.well-known/webfinger", {
108
- subject: "acct:johndoe@example.com",
109
- links: [{
110
- rel: "self",
111
- href: "https://example.com/person",
112
- type: "application/activity+json"
113
- }]
114
- });
115
- await t.step("successful request with signal", async () => {
116
- const controller = new AbortController();
117
- const person = await lookupObject("johndoe@example.com", {
118
- ...options,
119
- signal: controller.signal
120
- });
121
- assertInstanceOf(person, Person);
122
- assertEquals(person.id, new URL("https://example.com/person"));
123
- });
124
- esm_default.removeRoutes();
125
- esm_default.get("begin:https://example.com/.well-known/webfinger", () => new Promise((resolve) => {
126
- setTimeout(() => {
127
- resolve({
128
- subject: "acct:johndoe@example.com",
129
- links: [{
130
- rel: "self",
131
- href: "https://example.com/person",
132
- type: "application/activity+json"
133
- }]
134
- });
135
- }, 500);
136
- }));
137
- await t.step("cancellation with immediate abort", async () => {
138
- const controller = new AbortController();
139
- controller.abort();
140
- const result = await lookupObject("johndoe@example.com", {
141
- ...options,
142
- signal: controller.signal
143
- });
144
- assertEquals(result, null);
145
- });
146
- esm_default.removeRoutes();
147
- esm_default.get("https://example.com/slow-object", () => new Promise((resolve) => {
148
- setTimeout(() => {
149
- resolve({
150
- status: 200,
151
- headers: { "Content-Type": "application/activity+json" },
152
- body: {
153
- "@context": "https://www.w3.org/ns/activitystreams",
154
- type: "Note",
155
- content: "Slow response"
156
- }
157
- });
158
- }, 1e3);
159
- }));
160
- await t.step("direct object fetch cancellation", async () => {
161
- const controller = new AbortController();
162
- const promise = lookupObject("https://example.com/slow-object", {
163
- contextLoader: mockDocumentLoader,
164
- signal: controller.signal
165
- });
166
- controller.abort();
167
- assertEquals(await promise, null);
168
- });
169
- esm_default.hardReset();
170
- esm_default.removeRoutes();
171
- });
172
- test("traverseCollection()", {
173
- sanitizeResources: false,
174
- sanitizeOps: false
175
- }, async () => {
176
- const options = {
177
- documentLoader: mockDocumentLoader,
178
- contextLoader: mockDocumentLoader
179
- };
180
- const collection = await lookupObject("https://example.com/collection", options);
181
- assertInstanceOf(collection, Collection);
182
- assertEquals(await Array.fromAsync(traverseCollection(collection, options)), [
183
- new Note({ content: "This is a simple note" }),
184
- new Note({ content: "This is another simple note" }),
185
- new Note({ content: "This is a third simple note" })
186
- ]);
187
- const pagedCollection = await lookupObject("https://example.com/paged-collection", options);
188
- assertInstanceOf(pagedCollection, Collection);
189
- assertEquals(await Array.fromAsync(traverseCollection(pagedCollection, options)), [
190
- new Note({ content: "This is a simple note" }),
191
- new Note({ content: "This is another simple note" }),
192
- new Note({ content: "This is a third simple note" })
193
- ]);
194
- assertEquals(await Array.fromAsync(traverseCollection(pagedCollection, {
195
- ...options,
196
- interval: { milliseconds: 250 }
197
- })), [
198
- new Note({ content: "This is a simple note" }),
199
- new Note({ content: "This is another simple note" }),
200
- new Note({ content: "This is a third simple note" })
201
- ]);
202
- });
203
- test("FEP-fe34: lookupObject() cross-origin security", {
204
- sanitizeResources: false,
205
- sanitizeOps: false
206
- }, async (t) => {
207
- await t.step("crossOrigin: ignore (default) - returns null for cross-origin objects", async () => {
208
- const crossOriginDocumentLoader = async (url) => {
209
- if (url === "https://example.com/note") return {
210
- documentUrl: url,
211
- contextUrl: null,
212
- document: {
213
- "@context": "https://www.w3.org/ns/activitystreams",
214
- type: "Note",
215
- id: "https://malicious.com/fake-note",
216
- content: "This is a spoofed note from a different origin"
217
- }
218
- };
219
- throw new Error(`Unexpected URL: ${url}`);
220
- };
221
- const result = await lookupObject("https://example.com/note", {
222
- documentLoader: crossOriginDocumentLoader,
223
- contextLoader: mockDocumentLoader
224
- });
225
- assertEquals(result, null);
226
- });
227
- await t.step("crossOrigin: throw - throws error for cross-origin objects", async () => {
228
- const crossOriginDocumentLoader = async (url) => {
229
- if (url === "https://example.com/note") return {
230
- documentUrl: url,
231
- contextUrl: null,
232
- document: {
233
- "@context": "https://www.w3.org/ns/activitystreams",
234
- type: "Note",
235
- id: "https://malicious.com/fake-note",
236
- content: "This is a spoofed note from a different origin"
237
- }
238
- };
239
- throw new Error(`Unexpected URL: ${url}`);
240
- };
241
- await assertRejects(() => lookupObject("https://example.com/note", {
242
- documentLoader: crossOriginDocumentLoader,
243
- contextLoader: mockDocumentLoader,
244
- crossOrigin: "throw"
245
- }), Error, "The object's @id (https://malicious.com/fake-note) has a different origin than the document URL (https://example.com/note)");
246
- });
247
- await t.step("crossOrigin: trust - allows cross-origin objects", async () => {
248
- const crossOriginDocumentLoader = async (url) => {
249
- if (url === "https://example.com/note") return {
250
- documentUrl: url,
251
- contextUrl: null,
252
- document: {
253
- "@context": "https://www.w3.org/ns/activitystreams",
254
- type: "Note",
255
- id: "https://malicious.com/fake-note",
256
- content: "This is a spoofed note from a different origin"
257
- }
258
- };
259
- throw new Error(`Unexpected URL: ${url}`);
260
- };
261
- const result = await lookupObject("https://example.com/note", {
262
- documentLoader: crossOriginDocumentLoader,
263
- contextLoader: mockDocumentLoader,
264
- crossOrigin: "trust"
265
- });
266
- assertInstanceOf(result, Note);
267
- assertEquals(result.id, new URL("https://malicious.com/fake-note"));
268
- assertEquals(result.content, "This is a spoofed note from a different origin");
269
- });
270
- await t.step("same-origin objects are always trusted", async () => {
271
- const sameOriginDocumentLoader = async (url) => {
272
- if (url === "https://example.com/note") return {
273
- documentUrl: url,
274
- contextUrl: null,
275
- document: {
276
- "@context": "https://www.w3.org/ns/activitystreams",
277
- type: "Note",
278
- id: "https://example.com/note",
279
- content: "This is a legitimate note from the same origin"
280
- }
281
- };
282
- throw new Error(`Unexpected URL: ${url}`);
283
- };
284
- const result = await lookupObject("https://example.com/note", {
285
- documentLoader: sameOriginDocumentLoader,
286
- contextLoader: mockDocumentLoader
287
- });
288
- assertInstanceOf(result, Note);
289
- assertEquals(result.id, new URL("https://example.com/note"));
290
- assertEquals(result.content, "This is a legitimate note from the same origin");
291
- });
292
- await t.step("objects without @id are trusted", async () => {
293
- const noIdDocumentLoader = async (url) => {
294
- if (url === "https://example.com/note") return {
295
- documentUrl: url,
296
- contextUrl: null,
297
- document: {
298
- "@context": "https://www.w3.org/ns/activitystreams",
299
- type: "Note",
300
- content: "This is a note without an ID"
301
- }
302
- };
303
- throw new Error(`Unexpected URL: ${url}`);
304
- };
305
- const result = await lookupObject("https://example.com/note", {
306
- documentLoader: noIdDocumentLoader,
307
- contextLoader: mockDocumentLoader
308
- });
309
- assertInstanceOf(result, Note);
310
- assertEquals(result.id, null);
311
- assertEquals(result.content, "This is a note without an ID");
312
- });
313
- await t.step("WebFinger lookup with cross-origin actor URL", async () => {
314
- esm_default.spyGlobal();
315
- esm_default.get("begin:https://example.com/.well-known/webfinger", {
316
- subject: "acct:user@example.com",
317
- links: [{
318
- rel: "self",
319
- href: "https://different-origin.com/actor",
320
- type: "application/activity+json"
321
- }]
322
- });
323
- const webfingerDocumentLoader = async (url) => {
324
- if (url === "https://different-origin.com/actor") return {
325
- documentUrl: url,
326
- contextUrl: null,
327
- document: {
328
- "@context": "https://www.w3.org/ns/activitystreams",
329
- type: "Person",
330
- id: "https://malicious.com/fake-actor",
331
- name: "Fake Actor"
332
- }
333
- };
334
- throw new Error(`Unexpected URL: ${url}`);
335
- };
336
- const result1 = await lookupObject("@user@example.com", {
337
- documentLoader: webfingerDocumentLoader,
338
- contextLoader: mockDocumentLoader
339
- });
340
- assertEquals(result1, null);
341
- await assertRejects(() => lookupObject("@user@example.com", {
342
- documentLoader: webfingerDocumentLoader,
343
- contextLoader: mockDocumentLoader,
344
- crossOrigin: "throw"
345
- }), Error, "The object's @id (https://malicious.com/fake-actor) has a different origin than the document URL (https://different-origin.com/actor)");
346
- const result2 = await lookupObject("@user@example.com", {
347
- documentLoader: webfingerDocumentLoader,
348
- contextLoader: mockDocumentLoader,
349
- crossOrigin: "trust"
350
- });
351
- assertInstanceOf(result2, Person);
352
- assertEquals(result2.id, new URL("https://malicious.com/fake-actor"));
353
- esm_default.removeRoutes();
354
- esm_default.hardReset();
355
- });
356
- await t.step("subdomain same-origin check", async () => {
357
- const subdomainDocumentLoader = async (url) => {
358
- if (url === "https://api.example.com/note") return {
359
- documentUrl: url,
360
- contextUrl: null,
361
- document: {
362
- "@context": "https://www.w3.org/ns/activitystreams",
363
- type: "Note",
364
- id: "https://www.example.com/note",
365
- content: "Cross-subdomain note"
366
- }
367
- };
368
- throw new Error(`Unexpected URL: ${url}`);
369
- };
370
- const result = await lookupObject("https://api.example.com/note", {
371
- documentLoader: subdomainDocumentLoader,
372
- contextLoader: mockDocumentLoader
373
- });
374
- assertEquals(result, null);
375
- });
376
- await t.step("different port same-origin check", async () => {
377
- const differentPortDocumentLoader = async (url) => {
378
- if (url === "https://example.com:8080/note") return {
379
- documentUrl: url,
380
- contextUrl: null,
381
- document: {
382
- "@context": "https://www.w3.org/ns/activitystreams",
383
- type: "Note",
384
- id: "https://example.com:9090/note",
385
- content: "Cross-port note"
386
- }
387
- };
388
- throw new Error(`Unexpected URL: ${url}`);
389
- };
390
- const result = await lookupObject("https://example.com:8080/note", {
391
- documentLoader: differentPortDocumentLoader,
392
- contextLoader: mockDocumentLoader
393
- });
394
- assertEquals(result, null);
395
- });
396
- await t.step("protocol difference same-origin check", async () => {
397
- const differentProtocolDocumentLoader = async (url) => {
398
- if (url === "https://example.com/note") return {
399
- documentUrl: url,
400
- contextUrl: null,
401
- document: {
402
- "@context": "https://www.w3.org/ns/activitystreams",
403
- type: "Note",
404
- id: "http://example.com/note",
405
- content: "Cross-protocol note"
406
- }
407
- };
408
- throw new Error(`Unexpected URL: ${url}`);
409
- };
410
- const result = await lookupObject("https://example.com/note", {
411
- documentLoader: differentProtocolDocumentLoader,
412
- contextLoader: mockDocumentLoader
413
- });
414
- assertEquals(result, null);
415
- });
416
- await t.step("error handling with crossOrigin throw option", async () => {
417
- const errorDocumentLoader = async (_url) => {
418
- throw new Error("Network error");
419
- };
420
- const result = await lookupObject("https://example.com/note", {
421
- documentLoader: errorDocumentLoader,
422
- contextLoader: mockDocumentLoader,
423
- crossOrigin: "throw"
424
- });
425
- assertEquals(result, null);
426
- });
427
- await t.step("malformed JSON handling with cross-origin policy", async () => {
428
- const malformedJsonDocumentLoader = async (url) => {
429
- if (url === "https://example.com/note") return {
430
- documentUrl: url,
431
- contextUrl: null,
432
- document: "invalid json"
433
- };
434
- throw new Error(`Unexpected URL: ${url}`);
435
- };
436
- assertEquals(await lookupObject("https://example.com/note", {
437
- documentLoader: malformedJsonDocumentLoader,
438
- contextLoader: mockDocumentLoader,
439
- crossOrigin: "ignore"
440
- }), null);
441
- assertEquals(await lookupObject("https://example.com/note", {
442
- documentLoader: malformedJsonDocumentLoader,
443
- contextLoader: mockDocumentLoader,
444
- crossOrigin: "throw"
445
- }), null);
446
- assertEquals(await lookupObject("https://example.com/note", {
447
- documentLoader: malformedJsonDocumentLoader,
448
- contextLoader: mockDocumentLoader,
449
- crossOrigin: "trust"
450
- }), null);
451
- });
452
- });
453
-
454
- //#endregion
@@ -1,86 +0,0 @@
1
-
2
- const { Temporal } = require("@js-temporal/polyfill");
3
- const { URLPattern } = require("urlpattern-polyfill");
4
-
5
- require('../lookup-D17ydBQd.cjs');
6
- const require_actor = require('../actor-C6x8UgbE.cjs');
7
- const require_vocab = require('../vocab-Hqae4yux.cjs');
8
-
9
- exports.Accept = require_actor.Accept;
10
- exports.Activity = require_actor.Activity;
11
- exports.Add = require_actor.Add;
12
- exports.Announce = require_actor.Announce;
13
- exports.Application = require_actor.Application;
14
- exports.Arrive = require_actor.Arrive;
15
- exports.Article = require_actor.Article;
16
- exports.Audio = require_actor.Audio;
17
- exports.Block = require_actor.Block;
18
- exports.ChatMessage = require_actor.ChatMessage;
19
- exports.Collection = require_actor.Collection;
20
- exports.CollectionPage = require_actor.CollectionPage;
21
- exports.Create = require_actor.Create;
22
- exports.CryptographicKey = require_actor.CryptographicKey;
23
- exports.DataIntegrityProof = require_actor.DataIntegrityProof;
24
- exports.Delete = require_actor.Delete;
25
- exports.DidService = require_actor.DidService;
26
- exports.Dislike = require_actor.Dislike;
27
- exports.Document = require_actor.Document;
28
- exports.Emoji = require_actor.Emoji;
29
- exports.EmojiReact = require_actor.EmojiReact;
30
- exports.Endpoints = require_actor.Endpoints;
31
- exports.Event = require_actor.Event;
32
- exports.Export = require_actor.Export;
33
- exports.Flag = require_actor.Flag;
34
- exports.Follow = require_actor.Follow;
35
- exports.Group = require_actor.Group;
36
- exports.Hashtag = require_actor.Hashtag;
37
- exports.Ignore = require_actor.Ignore;
38
- exports.Image = require_actor.Image;
39
- exports.IntransitiveActivity = require_actor.IntransitiveActivity;
40
- exports.Invite = require_actor.Invite;
41
- exports.Join = require_actor.Join;
42
- exports.Leave = require_actor.Leave;
43
- exports.Like = require_actor.Like;
44
- exports.Link = require_actor.Link;
45
- exports.Listen = require_actor.Listen;
46
- exports.Mention = require_actor.Mention;
47
- exports.Move = require_actor.Move;
48
- exports.Multikey = require_actor.Multikey;
49
- exports.Note = require_actor.Note;
50
- exports.Object = require_actor.Object$1;
51
- exports.Offer = require_actor.Offer;
52
- exports.OrderedCollection = require_actor.OrderedCollection;
53
- exports.OrderedCollectionPage = require_actor.OrderedCollectionPage;
54
- exports.Organization = require_actor.Organization;
55
- exports.PUBLIC_COLLECTION = require_vocab.PUBLIC_COLLECTION;
56
- exports.Page = require_actor.Page;
57
- exports.Person = require_actor.Person;
58
- exports.Place = require_actor.Place;
59
- exports.Profile = require_actor.Profile;
60
- exports.PropertyValue = require_actor.PropertyValue;
61
- exports.Question = require_actor.Question;
62
- exports.Read = require_actor.Read;
63
- exports.Reject = require_actor.Reject;
64
- exports.Relationship = require_actor.Relationship;
65
- exports.Remove = require_actor.Remove;
66
- exports.Service = require_actor.Service;
67
- exports.Source = require_actor.Source;
68
- exports.TentativeAccept = require_actor.TentativeAccept;
69
- exports.TentativeReject = require_actor.TentativeReject;
70
- exports.Tombstone = require_actor.Tombstone;
71
- exports.Travel = require_actor.Travel;
72
- exports.Undo = require_actor.Undo;
73
- exports.Update = require_actor.Update;
74
- exports.Video = require_actor.Video;
75
- exports.View = require_actor.View;
76
- exports.getActorClassByTypeName = require_actor.getActorClassByTypeName;
77
- exports.getActorHandle = require_actor.getActorHandle;
78
- exports.getActorTypeName = require_actor.getActorTypeName;
79
- exports.getTypeId = require_actor.getTypeId;
80
- exports.isActor = require_actor.isActor;
81
- exports.isFediverseHandle = require_vocab.isFediverseHandle;
82
- exports.lookupObject = require_vocab.lookupObject;
83
- exports.normalizeActorHandle = require_actor.normalizeActorHandle;
84
- exports.parseFediverseHandle = require_vocab.parseFediverseHandle;
85
- exports.toAcctUrl = require_vocab.toAcctUrl;
86
- exports.traverseCollection = require_vocab.traverseCollection;
@@ -1,4 +0,0 @@
1
- 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-CeDBzu-f.cjs";
2
- import { Actor, ActorTypeName, GetActorHandleOptions, NormalizeActorHandleOptions, Recipient, getActorClassByTypeName, getActorHandle, getActorTypeName, isActor, normalizeActorHandle } from "../actor-f2NtjyCg.cjs";
3
- import { FediverseHandle, LookupObjectOptions, PUBLIC_COLLECTION, TraverseCollectionOptions, getTypeId, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../mod-BxRCHTz-.cjs";
4
- 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 };
@@ -1,6 +0,0 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { URLPattern } from "urlpattern-polyfill";
3
- 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-BCWe1Ih5.js";
4
- import { Actor, ActorTypeName, GetActorHandleOptions, NormalizeActorHandleOptions, Recipient, getActorClassByTypeName, getActorHandle, getActorTypeName, isActor, normalizeActorHandle } from "../actor-DqFajh9s.js";
5
- import { FediverseHandle, LookupObjectOptions, PUBLIC_COLLECTION, TraverseCollectionOptions, getTypeId, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../mod-BlVovdcy.js";
6
- 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 DELETED
@@ -1,9 +0,0 @@
1
-
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
-
5
- import "../lookup-DrCNfWHm.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-C76CDThG.js";
7
- import { PUBLIC_COLLECTION, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../vocab-B4wXNBv8.js";
8
-
9
- 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 };
@@ -1,3 +0,0 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { URLPattern } from "urlpattern-polyfill";
3
- globalThis.addEventListener = () => {};
@@ -1,24 +0,0 @@
1
-
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
- globalThis.addEventListener = () => {};
5
-
6
- import { Person, getTypeId } from "../lookup-yP6Lo5JV.js";
7
- import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
- import { test } from "../testing-bgnt5CjE.js";
9
-
10
- //#region src/vocab/type.test.ts
11
- test("getTypeId()", () => {
12
- const obj = new Person({});
13
- assertEquals(getTypeId(obj), new URL("https://www.w3.org/ns/activitystreams#Person"));
14
- const obj2 = null;
15
- assertEquals(getTypeId(obj2), null);
16
- const obj3 = void 0;
17
- assertEquals(getTypeId(obj3), void 0);
18
- const obj4 = null;
19
- assertEquals(getTypeId(obj4), null);
20
- const obj5 = void 0;
21
- assertEquals(getTypeId(obj5), void 0);
22
- });
23
-
24
- //#endregion
@@ -1,3 +0,0 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { URLPattern } from "urlpattern-polyfill";
3
- globalThis.addEventListener = () => {};