@fedify/fedify 2.0.0-dev.1566 → 2.0.0-dev.158

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 (297) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +40 -18
  3. package/dist/{assert_rejects-DiIiJbZn.js → assert_rejects-Ce45JcFg.js} +1 -1
  4. package/dist/{assert_is_error-BPGph1Jx.js → assert_throws-BNXdRGWP.js} +31 -1
  5. package/dist/{builder-B2I70zuM.js → builder-BnWso6VP.js} +15 -8
  6. package/dist/chunk-DqRYRqnO.cjs +34 -0
  7. package/dist/client-94iWEfQa.d.cts +222 -0
  8. package/dist/{client-DF8anIB5.d.ts → client-BivSNrEg.d.ts} +3 -75
  9. package/dist/{client-BVDUd3WA.js → client-CgMTXmAD.js} +3 -22
  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 -20
  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-9gCpIkiz.d.ts → context-CYZ2i00R.d.ts} +321 -129
  19. package/dist/context-D2MrtLch.d.cts +2447 -0
  20. package/dist/deno-CQV858ip.js +117 -0
  21. package/dist/{testing-CWE5Nn0S.js → dist-B5f6a8Tt.js} +90 -111
  22. package/dist/{authdocloader-BilVqAPe.js → docloader-Csc8gQux.js} +17 -8
  23. package/dist/{esm-eH43VACi.js → esm-DGl7uK1r.js} +32 -17
  24. package/dist/federation/builder.test.js +12 -13
  25. package/dist/federation/collection.test.js +6 -9
  26. package/dist/federation/handler.test.js +115 -148
  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 +61 -9
  31. package/dist/federation/middleware.test.js +311 -131
  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 +9 -10
  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 +6 -8
  40. package/dist/federation/send.test.js +55 -15
  41. package/dist/{webfinger/handler.test.js → federation/webfinger.test.js} +27 -26
  42. package/dist/federation-B431K2gm.cjs +266 -0
  43. package/dist/{federation-CMX7WzeL.js → federation-BbZwNNWj.js} +31 -9
  44. package/dist/{http-Cdjyj7h1.js → http-BizGfAHd.js} +375 -15
  45. package/dist/{http-BE2S7wC2.js → http-CXG5ZFqn.js} +4 -3
  46. package/dist/http-ClB3pLcL.d.cts +253 -0
  47. package/dist/{http-DqSNLFNY.d.ts → http-DLBDPal9.d.ts} +2 -2
  48. package/dist/http-DbACqYyq.cjs +1222 -0
  49. package/dist/{inbox-CtcEN1S1.js → inbox-B7ybw6fk.js} +25 -7
  50. package/dist/{key-q4xxkABj.js → key-C27c_yHR.js} +3 -2
  51. package/dist/{keycache-CtCHz6HR.js → keycache-DRxpZ5r9.js} +1 -1
  52. package/dist/{keys-BiuLoxwK.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-B7dwGQFA.js +122 -0
  57. package/dist/kv-cache-BEeqyGER.js +107 -0
  58. package/dist/kv-cache-rPOPQdj9.cjs +134 -0
  59. package/dist/{ld-PkXepnwg.js → ld-D_Jn1aGa.js} +6 -4
  60. package/dist/middleware-BVqYHBWm.cjs +12 -0
  61. package/dist/{middleware-HDts7zkt.js → middleware-BjS6_zkf.js} +272 -271
  62. package/dist/middleware-CAJR7KGo.cjs +4242 -0
  63. package/dist/{middleware-BQHcEUgM.js → middleware-ClkhKNXU.js} +230 -327
  64. package/dist/middleware-DSz6sI16.js +26 -0
  65. package/dist/middleware-OcaFHSk8.js +12 -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-Bqxcp7eN.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 +29 -111
  81. package/dist/nodeinfo/handler.test.js +26 -26
  82. package/dist/nodeinfo/mod.cjs +10 -0
  83. package/dist/nodeinfo/mod.d.cts +3 -0
  84. package/dist/nodeinfo/mod.d.ts +3 -5
  85. package/dist/nodeinfo/mod.js +6 -7
  86. package/dist/nodeinfo/types.test.js +7 -15
  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-C-zfmVAD.d.cts +66 -0
  96. package/dist/{owner-DZ5zP8JS.js → owner-Dc8rUE-H.js} +45 -8
  97. package/dist/{proof-ohtusUSV.js → proof-BdNM3iSl.js} +4 -3
  98. package/dist/proof-Bx2JqJ-D.cjs +709 -0
  99. package/dist/{proof-D8S7qgEZ.js → proof-CTYnbjx5.js} +53 -17
  100. package/dist/router-D9eI0s4b.js +118 -0
  101. package/dist/{send-BBi1tzS8.js → send-DBRRqVMa.js} +9 -4
  102. package/dist/sig/http.test.js +12 -14
  103. package/dist/sig/key.test.js +9 -11
  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 +33 -12
  110. package/dist/sig/proof.test.js +13 -14
  111. package/dist/sig-CwuONEzF.js +4 -0
  112. package/dist/sig-DeXX2xnj.cjs +4 -0
  113. package/dist/testing/mod.d.ts +180 -6946
  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-BIgY6c-l.js → types-BEdCLHqP.js} +1 -3
  118. package/dist/types-Q-qkJXBV.cjs +315 -0
  119. package/dist/{types-CTYFFnQp.js → types-hKTi53FO.js} +8 -169
  120. package/dist/{runtime/authdocloader.test.js → utils/docloader.test.js} +13 -15
  121. package/dist/utils/kv-cache.test.js +211 -0
  122. package/dist/utils/mod.cjs +10 -0
  123. package/dist/utils/mod.d.cts +4 -0
  124. package/dist/utils/mod.d.ts +6 -0
  125. package/dist/utils/mod.js +9 -0
  126. package/dist/utils-Db0ZmjcD.cjs +4 -0
  127. package/dist/utils-Wranxuoe.js +4 -0
  128. package/package.json +69 -55
  129. package/dist/actor-BKxX_F1w.js +0 -37311
  130. package/dist/actor-C22bXuuC.d.ts +0 -130
  131. package/dist/actor-DI_YpFlI.js +0 -146
  132. package/dist/assert_throws-BOO88avQ.js +0 -39
  133. package/dist/authdocloader-UdvnssIx.js +0 -52
  134. package/dist/compat-Bb5myD13.js +0 -4
  135. package/dist/denokv-Bv33Xxea.js +0 -57
  136. package/dist/docloader-4XS4XdXc.js +0 -4615
  137. package/dist/docloader-CxWcuWqQ.d.ts +0 -221
  138. package/dist/fixtures/activitypub.academy/users/brauca_darradiul.json +0 -83
  139. package/dist/fixtures/example.com/announce.json +0 -6
  140. package/dist/fixtures/example.com/collection.json +0 -19
  141. package/dist/fixtures/example.com/create.json +0 -6
  142. package/dist/fixtures/example.com/cross-origin-actor.json +0 -6
  143. package/dist/fixtures/example.com/hong-gildong.json +0 -11
  144. package/dist/fixtures/example.com/invite.json +0 -7
  145. package/dist/fixtures/example.com/key.json +0 -7
  146. package/dist/fixtures/example.com/key2.json +0 -6
  147. package/dist/fixtures/example.com/object.json +0 -6
  148. package/dist/fixtures/example.com/orderedcollectionpage.json +0 -24
  149. package/dist/fixtures/example.com/paged/a.json +0 -13
  150. package/dist/fixtures/example.com/paged/b.json +0 -16
  151. package/dist/fixtures/example.com/paged-collection.json +0 -6
  152. package/dist/fixtures/example.com/person.json +0 -22
  153. package/dist/fixtures/example.com/person2.json +0 -40
  154. package/dist/fixtures/example.com/test.json +0 -5
  155. package/dist/fixtures/example.com/users/handle.json +0 -16
  156. package/dist/fixtures/example.com/wrong-type.json +0 -3
  157. package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +0 -24
  158. package/dist/fixtures/remote.domain/users/bob.json +0 -20
  159. package/dist/fixtures/server.example/users/alice.json +0 -20
  160. package/dist/fixtures/w3id.org/identity/v1.json +0 -152
  161. package/dist/fixtures/w3id.org/security/data-integrity/v1.json +0 -74
  162. package/dist/fixtures/w3id.org/security/multikey/v1.json +0 -35
  163. package/dist/fixtures/w3id.org/security/v1.json +0 -50
  164. package/dist/fixtures/wizard.casa/users/hongminhee.json +0 -69
  165. package/dist/fixtures/www.w3.org/ns/activitystreams.json +0 -379
  166. package/dist/fixtures/www.w3.org/ns/did/v1.json +0 -58
  167. package/dist/key-C2_QSigr.js +0 -260
  168. package/dist/key-Ck2-lYS5.js +0 -10
  169. package/dist/key-II1NsE_S.js +0 -10
  170. package/dist/lookup-DCIN2EFw.js +0 -322
  171. package/dist/lookup-DVlWgAsd.js +0 -131
  172. package/dist/middleware-CTQfgVW8.js +0 -17
  173. package/dist/middleware-D3rOl6Au.js +0 -26
  174. package/dist/mod-Cxt4Kpf6.d.ts +0 -291
  175. package/dist/mod-DBzN0aCM.d.ts +0 -115
  176. package/dist/mod-TFoH2Ql8.d.ts +0 -104
  177. package/dist/mod-g0xFzAP9.d.ts +0 -2
  178. package/dist/mq-CRGm1e_F.d.ts +0 -143
  179. package/dist/nodeinfo/semver.test.js +0 -143
  180. package/dist/nodeinfo-CyEbLjHs.js +0 -4
  181. package/dist/runtime/docloader.test.js +0 -522
  182. package/dist/runtime/key.test.js +0 -103
  183. package/dist/runtime/langstr.test.js +0 -39
  184. package/dist/runtime/mod.d.ts +0 -8
  185. package/dist/runtime/mod.js +0 -13
  186. package/dist/runtime/multibase/multibase.test.d.ts +0 -3
  187. package/dist/runtime/multibase/multibase.test.js +0 -358
  188. package/dist/runtime/url.test.d.ts +0 -3
  189. package/dist/runtime/url.test.js +0 -45
  190. package/dist/runtime-BSkOVUWM.js +0 -4
  191. package/dist/semver-dArNLkR9.js +0 -149
  192. package/dist/sig-BXJO--F9.js +0 -4
  193. package/dist/src/vocab/accept.yaml +0 -15
  194. package/dist/src/vocab/activity.yaml +0 -98
  195. package/dist/src/vocab/add.yaml +0 -16
  196. package/dist/src/vocab/announce.yaml +0 -30
  197. package/dist/src/vocab/application.yaml +0 -324
  198. package/dist/src/vocab/arrive.yaml +0 -15
  199. package/dist/src/vocab/article.yaml +0 -46
  200. package/dist/src/vocab/audio.yaml +0 -11
  201. package/dist/src/vocab/block.yaml +0 -16
  202. package/dist/src/vocab/chatmessage.yaml +0 -50
  203. package/dist/src/vocab/collection.yaml +0 -154
  204. package/dist/src/vocab/collectionpage.yaml +0 -55
  205. package/dist/src/vocab/create.yaml +0 -28
  206. package/dist/src/vocab/dataintegrityproof.yaml +0 -56
  207. package/dist/src/vocab/delete.yaml +0 -27
  208. package/dist/src/vocab/didservice.yaml +0 -22
  209. package/dist/src/vocab/dislike.yaml +0 -14
  210. package/dist/src/vocab/document.yaml +0 -31
  211. package/dist/src/vocab/emoji.yaml +0 -12
  212. package/dist/src/vocab/emojireact.yaml +0 -17
  213. package/dist/src/vocab/endpoints.yaml +0 -85
  214. package/dist/src/vocab/event.yaml +0 -11
  215. package/dist/src/vocab/export.yaml +0 -9
  216. package/dist/src/vocab/flag.yaml +0 -15
  217. package/dist/src/vocab/follow.yaml +0 -19
  218. package/dist/src/vocab/group.yaml +0 -324
  219. package/dist/src/vocab/hashtag.yaml +0 -14
  220. package/dist/src/vocab/ignore.yaml +0 -14
  221. package/dist/src/vocab/image.yaml +0 -9
  222. package/dist/src/vocab/intransitiveactivity.yaml +0 -15
  223. package/dist/src/vocab/invite.yaml +0 -14
  224. package/dist/src/vocab/join.yaml +0 -14
  225. package/dist/src/vocab/key.yaml +0 -28
  226. package/dist/src/vocab/leave.yaml +0 -14
  227. package/dist/src/vocab/like.yaml +0 -16
  228. package/dist/src/vocab/link.yaml +0 -101
  229. package/dist/src/vocab/listen.yaml +0 -12
  230. package/dist/src/vocab/mention.yaml +0 -9
  231. package/dist/src/vocab/move.yaml +0 -15
  232. package/dist/src/vocab/multikey.yaml +0 -36
  233. package/dist/src/vocab/note.yaml +0 -48
  234. package/dist/src/vocab/object.yaml +0 -404
  235. package/dist/src/vocab/offer.yaml +0 -15
  236. package/dist/src/vocab/orderedcollection.yaml +0 -39
  237. package/dist/src/vocab/orderedcollectionpage.yaml +0 -50
  238. package/dist/src/vocab/organization.yaml +0 -324
  239. package/dist/src/vocab/page.yaml +0 -11
  240. package/dist/src/vocab/person.yaml +0 -324
  241. package/dist/src/vocab/place.yaml +0 -75
  242. package/dist/src/vocab/profile.yaml +0 -26
  243. package/dist/src/vocab/propertyvalue.yaml +0 -32
  244. package/dist/src/vocab/question.yaml +0 -103
  245. package/dist/src/vocab/read.yaml +0 -13
  246. package/dist/src/vocab/reject.yaml +0 -14
  247. package/dist/src/vocab/relationship.yaml +0 -52
  248. package/dist/src/vocab/remove.yaml +0 -14
  249. package/dist/src/vocab/service.yaml +0 -324
  250. package/dist/src/vocab/source.yaml +0 -26
  251. package/dist/src/vocab/tentativeaccept.yaml +0 -14
  252. package/dist/src/vocab/tentativereject.yaml +0 -14
  253. package/dist/src/vocab/tombstone.yaml +0 -24
  254. package/dist/src/vocab/travel.yaml +0 -16
  255. package/dist/src/vocab/undo.yaml +0 -26
  256. package/dist/src/vocab/update.yaml +0 -58
  257. package/dist/src/vocab/video.yaml +0 -11
  258. package/dist/src/vocab/view.yaml +0 -13
  259. package/dist/testing/docloader.test.js +0 -24
  260. package/dist/type-B7_rMIU9.js +0 -42006
  261. package/dist/vocab/actor.test.d.ts +0 -3
  262. package/dist/vocab/actor.test.js +0 -5965
  263. package/dist/vocab/lookup.test.d.ts +0 -3
  264. package/dist/vocab/lookup.test.js +0 -206
  265. package/dist/vocab/mod.d.ts +0 -8
  266. package/dist/vocab/mod.js +0 -10
  267. package/dist/vocab/schema.yaml +0 -247
  268. package/dist/vocab/type.test.d.ts +0 -3
  269. package/dist/vocab/type.test.js +0 -25
  270. package/dist/vocab/vocab.test.d.ts +0 -3
  271. package/dist/vocab/vocab.test.js +0 -3363
  272. package/dist/vocab-3Eie7Ze4.js +0 -246
  273. package/dist/vocab-SOE1ifCr.d.ts +0 -14634
  274. package/dist/webfinger/handler.test.d.ts +0 -3
  275. package/dist/webfinger/lookup.test.d.ts +0 -3
  276. package/dist/webfinger/lookup.test.js +0 -195
  277. package/dist/webfinger/mod.d.ts +0 -6
  278. package/dist/webfinger/mod.js +0 -9
  279. package/dist/webfinger-C3GIyXIg.js +0 -4
  280. package/dist/x/cfworkers.d.ts +0 -61
  281. package/dist/x/cfworkers.js +0 -98
  282. package/dist/x/cfworkers.test.d.ts +0 -3
  283. package/dist/x/cfworkers.test.js +0 -179
  284. package/dist/x/hono.d.ts +0 -56
  285. package/dist/x/hono.js +0 -60
  286. package/dist/x/sveltekit.d.ts +0 -48
  287. package/dist/x/sveltekit.js +0 -68
  288. /package/dist/{assert_not_equals-f3m3epl3.js → assert_not_equals-C80BG-_5.js} +0 -0
  289. /package/dist/{collection-CSzG2j1P.js → collection-CcnIw1qY.js} +0 -0
  290. /package/dist/{nodeinfo/semver.test.d.ts → federation/idempotency.test.d.ts} +0 -0
  291. /package/dist/{runtime/authdocloader.test.d.ts → federation/negotiation.test.d.ts} +0 -0
  292. /package/dist/{runtime/docloader.test.d.ts → federation/webfinger.test.d.ts} +0 -0
  293. /package/dist/{mod-1pDWKvUL.d.ts → mod-1E3W847c.d.ts} +0 -0
  294. /package/dist/{runtime/key.test.d.ts → otel/exporter.test.d.ts} +0 -0
  295. /package/dist/{std__assert-X-_kMxKM.js → std__assert-DWivtrGR.js} +0 -0
  296. /package/dist/{testing → utils}/docloader.test.d.ts +0 -0
  297. /package/dist/{runtime/langstr.test.d.ts → utils/kv-cache.test.d.ts} +0 -0
@@ -1,149 +0,0 @@
1
-
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
- globalThis.addEventListener = () => {};
5
-
6
- //#region src/nodeinfo/semver.ts
7
- const MAX_LENGTH = 256;
8
- /**
9
- * A single `0`, or a non-zero digit followed by zero or more digits.
10
- */
11
- const NUMERIC_IDENTIFIER = "0|[1-9]\\d*";
12
- /**
13
- * Zero or more digits, followed by a letter or hyphen, and then zero or more letters, digits, or hyphens.
14
- */
15
- const NON_NUMERIC_IDENTIFIER = "\\d*[a-zA-Z-][a-zA-Z0-9-]*";
16
- /**
17
- * Three dot-separated numeric identifiers.
18
- */
19
- const VERSION_CORE = `(?<major>${NUMERIC_IDENTIFIER})\\.(?<minor>${NUMERIC_IDENTIFIER})\\.(?<patch>${NUMERIC_IDENTIFIER})`;
20
- /**
21
- * A numeric identifier, or a non-numeric identifier.
22
- */
23
- const PRERELEASE_IDENTIFIER = `(?:${NUMERIC_IDENTIFIER}|${NON_NUMERIC_IDENTIFIER})`;
24
- /**
25
- * A hyphen, followed by one or more dot-separated pre-release version identifiers.
26
- * @example "-pre.release"
27
- */
28
- const PRERELEASE = `(?:-(?<prerelease>${PRERELEASE_IDENTIFIER}(?:\\.${PRERELEASE_IDENTIFIER})*))`;
29
- /**
30
- * Any combination of digits, letters, or hyphens.
31
- */
32
- const BUILD_IDENTIFIER = "[0-9A-Za-z-]+";
33
- /**
34
- * A plus sign, followed by one or more period-separated build metadata identifiers.
35
- * @example "+build.meta"
36
- */
37
- const BUILD = `(?:\\+(?<buildmetadata>${BUILD_IDENTIFIER}(?:\\.${BUILD_IDENTIFIER})*))`;
38
- /**
39
- * A version, followed optionally by a pre-release version and build metadata.
40
- */
41
- const FULL_VERSION = `v?${VERSION_CORE}${PRERELEASE}?${BUILD}?`;
42
- const FULL_REGEXP = /* @__PURE__ */ new RegExp(`^${FULL_VERSION}$`);
43
- /**
44
- * Attempt to parse a string as a semantic version, returning a SemVer object.
45
- *
46
- * @example Usage
47
- * ```ts
48
- * import { parseSemVer } from "@fedify/fedify/nodeinfo";
49
- * import { assertEquals } from "@std/assert";
50
- *
51
- * const version = parseSemVer("1.2.3");
52
- * assertEquals(version, {
53
- * major: 1,
54
- * minor: 2,
55
- * patch: 3,
56
- * prerelease: [],
57
- * build: [],
58
- * });
59
- * ```
60
- *
61
- * @throws {TypeError} If the input string is invalid.
62
- * @param value The version string to parse
63
- * @returns A valid SemVer
64
- * @since 1.2.0
65
- */
66
- function parseSemVer(value) {
67
- if (typeof value !== "string") throw new TypeError(`Cannot parse version as version must be a string: received ${typeof value}`);
68
- if (value.length > MAX_LENGTH) throw new TypeError(`Cannot parse version as version length is too long: length is ${value.length}, max length is ${MAX_LENGTH}`);
69
- value = value.trim();
70
- const groups = value.match(FULL_REGEXP)?.groups;
71
- if (!groups) throw new TypeError(`Cannot parse version: ${value}`);
72
- const major = parseNumber(groups.major, `Cannot parse version ${value}: invalid major version`);
73
- const minor = parseNumber(groups.minor, `Cannot parse version ${value}: invalid minor version`);
74
- const patch = parseNumber(groups.patch, `Cannot parse version ${value}: invalid patch version`);
75
- const prerelease = groups.prerelease ? parsePrerelease(groups.prerelease) : [];
76
- const build = groups.buildmetadata ? parseBuild(groups.buildmetadata) : [];
77
- return {
78
- major,
79
- minor,
80
- patch,
81
- prerelease,
82
- build
83
- };
84
- }
85
- /**
86
- * Returns true if the value is a valid SemVer number.
87
- *
88
- * Must be a number. Must not be NaN. Can be positive or negative infinity.
89
- * Can be between 0 and MAX_SAFE_INTEGER.
90
- * @param value The value to check
91
- * @returns True if its a valid semver number
92
- */
93
- function isValidNumber(value) {
94
- return typeof value === "number" && !Number.isNaN(value) && (!Number.isFinite(value) || 0 <= value && value <= Number.MAX_SAFE_INTEGER);
95
- }
96
- const NUMERIC_IDENTIFIER_REGEXP = /* @__PURE__ */ new RegExp(`^${NUMERIC_IDENTIFIER}$`);
97
- function parsePrerelease(prerelease) {
98
- return prerelease.split(".").filter(Boolean).map((id) => {
99
- if (NUMERIC_IDENTIFIER_REGEXP.test(id)) {
100
- const number = Number(id);
101
- if (isValidNumber(number)) return number;
102
- }
103
- return id;
104
- });
105
- }
106
- function parseBuild(buildmetadata) {
107
- return buildmetadata.split(".").filter(Boolean);
108
- }
109
- function parseNumber(input, errorMessage) {
110
- const number = Number(input);
111
- if (!isValidNumber(number)) throw new TypeError(errorMessage);
112
- return number;
113
- }
114
- function formatNumber(value) {
115
- return value.toFixed(0);
116
- }
117
- /**
118
- * Format a SemVer object into a string.
119
- *
120
- * @example Usage
121
- * ```ts
122
- * import { formatSemVer } from "@fedify/fedify/nodeinfo";
123
- * import { assertEquals } from "@std/assert";
124
- *
125
- * const semver = {
126
- * major: 1,
127
- * minor: 2,
128
- * patch: 3,
129
- * };
130
- * assertEquals(formatSemVer(semver), "1.2.3");
131
- * ```
132
- *
133
- * @param version The SemVer to format
134
- * @returns The string representation of a semantic version.
135
- * @since 1.2.0
136
- */
137
- function formatSemVer(version) {
138
- const major = formatNumber(version.major);
139
- const minor = formatNumber(version.minor);
140
- const patch = formatNumber(version.patch);
141
- const pre = version.prerelease?.join(".") ?? "";
142
- const build = version.build?.join(".") ?? "";
143
- const primary = `${major}.${minor}.${patch}`;
144
- const release = [primary, pre].filter((v) => v).join("-");
145
- return [release, build].filter((v) => v).join("+");
146
- }
147
-
148
- //#endregion
149
- export { formatSemVer, parseSemVer };
@@ -1,4 +0,0 @@
1
-
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
-
@@ -1,15 +0,0 @@
1
- $schema: ../codegen/schema.yaml
2
- name: Accept
3
- compactName: Accept
4
- uri: "https://www.w3.org/ns/activitystreams#Accept"
5
- extends: "https://www.w3.org/ns/activitystreams#Activity"
6
- entity: true
7
- description: |
8
- Indicates that the `actor` accepts the `object`. The `target` property can be
9
- used in certain circumstances to indicate the context into which the `object`
10
- has been accepted.
11
- defaultContext:
12
- - "https://w3id.org/identity/v1"
13
- - "https://www.w3.org/ns/activitystreams"
14
- - "https://w3id.org/security/data-integrity/v1"
15
- properties: []
@@ -1,98 +0,0 @@
1
- $schema: ../codegen/schema.yaml
2
- name: Activity
3
- compactName: Activity
4
- uri: "https://www.w3.org/ns/activitystreams#Activity"
5
- extends: "https://www.w3.org/ns/activitystreams#Object"
6
- entity: true
7
- description: |
8
- An Activity is a subtype of {@link Object} that describes some form of action
9
- that may happen, is currently happening, or has already happened.
10
- The {@link Activity} type itself serves as an abstract base type for all types
11
- of activities. It is important to note that the {@link Activity} type itself
12
- does not carry any specific semantics about the kind of action being taken.
13
- defaultContext:
14
- - "https://w3id.org/identity/v1"
15
- - "https://www.w3.org/ns/activitystreams"
16
- - "https://w3id.org/security/v1"
17
- - "https://w3id.org/security/data-integrity/v1"
18
-
19
- properties:
20
- - pluralName: actors
21
- singularName: actor
22
- singularAccessor: true
23
- compactName: actor
24
- uri: "https://www.w3.org/ns/activitystreams#actor"
25
- subpropertyOf: "https://www.w3.org/ns/activitystreams#attributedTo"
26
- description: |
27
- Describes one or more entities that either performed or are expected to
28
- perform the activity. Any single activity can have multiple actors.
29
- The actor MAY be specified using an indirect {@link Link}.
30
- range:
31
- - "https://www.w3.org/ns/activitystreams#Application"
32
- - "https://www.w3.org/ns/activitystreams#Group"
33
- - "https://www.w3.org/ns/activitystreams#Organization"
34
- - "https://www.w3.org/ns/activitystreams#Person"
35
- - "https://www.w3.org/ns/activitystreams#Service"
36
-
37
- - pluralName: objects
38
- singularName: object
39
- singularAccessor: true
40
- compactName: object
41
- uri: "https://www.w3.org/ns/activitystreams#object"
42
- description: |
43
- When used within an {@link Activity}, describes the direct object of
44
- the activity. For instance, in the activity "John added a movie to his
45
- wishlist", the object of the activity is the movie added.
46
- range:
47
- - "https://www.w3.org/ns/activitystreams#Object"
48
-
49
- - pluralName: targets
50
- singularName: target
51
- singularAccessor: true
52
- compactName: target
53
- uri: "https://www.w3.org/ns/activitystreams#target"
54
- description: |
55
- Describes the indirect object, or target, of the activity. The precise
56
- meaning of the target is largely dependent on the type of action being
57
- described but will often be the object of the English preposition "to".
58
- For instance, in the activity "John added a movie to his wishlist",
59
- the target of the activity is John's wishlist. An activity can have more
60
- than one target.
61
- range:
62
- - "https://www.w3.org/ns/activitystreams#Object"
63
-
64
- - pluralName: results
65
- singularName: result
66
- singularAccessor: true
67
- compactName: result
68
- uri: "https://www.w3.org/ns/activitystreams#result"
69
- description: |
70
- Describes the result of the activity. For instance, if a particular action
71
- results in the creation of a new resource, the result property can be used
72
- to describe that new resource.
73
- range:
74
- - "https://www.w3.org/ns/activitystreams#Object"
75
-
76
- - pluralName: origins
77
- singularName: origin
78
- singularAccessor: true
79
- compactName: origin
80
- uri: "https://www.w3.org/ns/activitystreams#origin"
81
- description: |
82
- Describes an indirect object of the activity from which the activity is
83
- directed. The precise meaning of the origin is the object of the English
84
- preposition "from". For instance, in the activity "John moved an item to
85
- List B from List A", the origin of the activity is "List A".
86
- range:
87
- - "https://www.w3.org/ns/activitystreams#Object"
88
-
89
- - pluralName: instruments
90
- singularName: instrument
91
- singularAccessor: true
92
- compactName: instrument
93
- uri: "https://www.w3.org/ns/activitystreams#instrument"
94
- description: |
95
- Identifies one or more objects used (or to be used) in the completion of
96
- an {@link Activity}.
97
- range:
98
- - "https://www.w3.org/ns/activitystreams#Object"
@@ -1,16 +0,0 @@
1
- $schema: ../codegen/schema.yaml
2
- name: Add
3
- compactName: Add
4
- uri: "https://www.w3.org/ns/activitystreams#Add"
5
- extends: "https://www.w3.org/ns/activitystreams#Activity"
6
- entity: true
7
- description: |
8
- Indicates that the `actor` has added the `object` to the `target`.
9
- If the `target` property is not explicitly specified, the target would need
10
- to be determined implicitly by context. The `origin` can be used to identify
11
- the context from which the `object` originated.
12
- defaultContext:
13
- - "https://w3id.org/identity/v1"
14
- - "https://www.w3.org/ns/activitystreams"
15
- - "https://w3id.org/security/data-integrity/v1"
16
- properties: []
@@ -1,30 +0,0 @@
1
- $schema: ../codegen/schema.yaml
2
- name: Announce
3
- compactName: Announce
4
- uri: "https://www.w3.org/ns/activitystreams#Announce"
5
- extends: "https://www.w3.org/ns/activitystreams#Activity"
6
- entity: true
7
- description: |
8
- Indicates that the `actor` is calling the `target`'s attention the `object`.
9
-
10
- The `origin` typically has no defined meaning.
11
- defaultContext:
12
- - "https://w3id.org/identity/v1"
13
- - "https://www.w3.org/ns/activitystreams"
14
- - "https://w3id.org/security/data-integrity/v1"
15
- - toot: "http://joinmastodon.org/ns#"
16
- misskey: "https://misskey-hub.net/ns#"
17
- fedibird: "http://fedibird.com/ns#"
18
- sensitive: "as:sensitive"
19
- votersCount:
20
- "@id": "toot:votersCount"
21
- "@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
22
- Emoji: "toot:Emoji"
23
- Hashtag: "as:Hashtag"
24
- quoteUrl: "as:quoteUrl"
25
- _misskey_quote: "misskey:_misskey_quote"
26
- quoteUri: "fedibird:quoteUri"
27
- emojiReactions:
28
- "@id": "fedibird:emojiReactions"
29
- "@type": "@id"
30
- properties: []
@@ -1,324 +0,0 @@
1
- $schema: ../codegen/schema.yaml
2
- name: Application
3
- compactName: Application
4
- uri: "https://www.w3.org/ns/activitystreams#Application"
5
- extends: "https://www.w3.org/ns/activitystreams#Object"
6
- entity: true
7
- description: Describes a software application.
8
- defaultContext:
9
- - "https://www.w3.org/ns/activitystreams"
10
- - "https://w3id.org/security/v1"
11
- - "https://w3id.org/security/data-integrity/v1"
12
- - "https://www.w3.org/ns/did/v1"
13
- - "https://w3id.org/security/multikey/v1"
14
- - alsoKnownAs:
15
- "@id": "as:alsoKnownAs"
16
- "@type": "@id"
17
- manuallyApprovesFollowers: "as:manuallyApprovesFollowers"
18
- movedTo:
19
- "@id": "as:movedTo"
20
- "@type": "@id"
21
- toot: "http://joinmastodon.org/ns#"
22
- Emoji: "toot:Emoji"
23
- featured:
24
- "@id": "toot:featured"
25
- "@type": "@id"
26
- featuredTags:
27
- "@id": "toot:featuredTags"
28
- "@type": "@id"
29
- discoverable: "toot:discoverable"
30
- suspended: "toot:suspended"
31
- memorial: "toot:memorial"
32
- indexable: "toot:indexable"
33
- schema: "http://schema.org#"
34
- PropertyValue: "schema:PropertyValue"
35
- value: "schema:value"
36
- misskey: "https://misskey-hub.net/ns#"
37
- _misskey_followedMessage: "misskey:_misskey_followedMessage"
38
- isCat: "misskey:isCat"
39
-
40
- properties:
41
- - pluralName: preferredUsernames
42
- singularName: preferredUsername
43
- singularAccessor: true
44
- compactName: preferredUsername
45
- uri: "https://www.w3.org/ns/activitystreams#preferredUsername"
46
- description: |
47
- A short username which may be used to refer to the actor,
48
- with no uniqueness guarantees.
49
- range:
50
- - "http://www.w3.org/2001/XMLSchema#string"
51
- - "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
52
-
53
- - pluralName: publicKeys
54
- singularName: publicKey
55
- singularAccessor: true
56
- compactName: publicKey
57
- uri: "https://w3id.org/security#publicKey"
58
- description: A public part of the key pair owned by this actor.
59
- untyped: true
60
- range:
61
- - "https://w3id.org/security#Key"
62
-
63
- - pluralName: assertionMethods
64
- singularName: assertionMethod
65
- singularAccessor: true
66
- compactName: assertionMethod
67
- uri: "https://w3id.org/security#assertionMethod"
68
- description: |
69
- Represents this actor's public keys. It serves as equivalent to
70
- the `publicKeys` property, but is used for [FEP-521a] compliance.
71
-
72
- [FEP-521a]: https://w3id.org/fep/521a
73
- range:
74
- - "https://w3id.org/security#Multikey"
75
-
76
- - singularName: manuallyApprovesFollowers
77
- functional: true
78
- compactName: manuallyApprovesFollowers
79
- uri: "https://www.w3.org/ns/activitystreams#manuallyApprovesFollowers"
80
- description: |
81
- When `true`, conveys that for this actor, follow requests are not usually
82
- automatically approved, but instead are examined by a person who may accept
83
- or reject the request, at some time in the future. Setting of `false`
84
- conveys no information and may be ignored. This information is typically
85
- used to affect display of accounts, such as showing an account as private or
86
- locked.
87
- range:
88
- - "http://www.w3.org/2001/XMLSchema#boolean"
89
-
90
- - singularName: inbox
91
- functional: true
92
- compactName: inbox
93
- uri: "http://www.w3.org/ns/ldp#inbox"
94
- description: |
95
- The inbox stream contains all activities received by the actor. The server
96
- SHOULD filter content according to the requester's permission. In general,
97
- the owner of an inbox is likely to be able to access all of their inbox
98
- contents. Depending on access control, some other content may be public,
99
- whereas other content may require authentication for non-owner users,
100
- if they can access the inbox at all.
101
-
102
- The server MUST perform de-duplication of activities returned by the inbox.
103
- Duplication can occur if an activity is addressed both to an actor's
104
- followers, and a specific actor who also follows the recipient actor,
105
- and the server has failed to de-duplicate the recipients list.
106
- Such deduplication MUST be performed by comparing the `id` of the activities
107
- and dropping any activities already seen.
108
- range:
109
- - "https://www.w3.org/ns/activitystreams#OrderedCollection"
110
- - "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
111
-
112
- - singularName: outbox
113
- functional: true
114
- compactName: outbox
115
- uri: "https://www.w3.org/ns/activitystreams#outbox"
116
- description: |
117
- The outbox stream contains activities the user has published,
118
- subject to the ability of the requestor to retrieve the activity
119
- (that is, the contents of the outbox are filtered by the permissions of
120
- the person reading it). If a user submits a request without
121
- [Authorization](https://www.w3.org/TR/activitypub/#authorization)
122
- the server should respond with all of the
123
- [Public](https://www.w3.org/TR/activitypub/#public-addressing) posts.
124
- This could potentially be all relevant objects published by the user,
125
- though the number of available items is left to the discretion of those
126
- implementing and deploying the server.
127
- range:
128
- - "https://www.w3.org/ns/activitystreams#OrderedCollection"
129
- - "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
130
-
131
- - singularName: following
132
- functional: true
133
- compactName: following
134
- uri: "https://www.w3.org/ns/activitystreams#following"
135
- description: |
136
- This is a list of everybody that the actor has followed, added as a
137
- [side effect](https://www.w3.org/TR/activitypub/#follow-activity-outbox).
138
- The `following` collection MUST be either an {@link OrderedCollection}
139
- or a {@link Collection} and MAY be filtered on privileges of
140
- an authenticated user or as appropriate when no authentication is given.
141
- range:
142
- - "https://www.w3.org/ns/activitystreams#Collection"
143
-
144
- - singularName: followers
145
- functional: true
146
- compactName: followers
147
- uri: "https://www.w3.org/ns/activitystreams#followers"
148
- description: |
149
- This is a list of everyone who has sent a {@link Follow} activity
150
- for the actor, added as a
151
- [side effect](https://www.w3.org/TR/activitypub/#follow-activity-outbox).
152
- This is where one would find a list of all the actors that are following
153
- the actor. The `followers` collection MUST be either
154
- an {@link OrderedCollection} or a {@link Collection} and MAY be filtered on
155
- privileges of an authenticated user or as appropriate when no authentication
156
- is given.
157
- range:
158
- - "https://www.w3.org/ns/activitystreams#Collection"
159
-
160
- - singularName: liked
161
- functional: true
162
- compactName: liked
163
- uri: "https://www.w3.org/ns/activitystreams#liked"
164
- description: |
165
- This is a list of every object from all of the actor's {@link Like}
166
- activities, added as a
167
- [side effect](https://www.w3.org/TR/activitypub/#like-activity-outbox).
168
- The `liked` collection MUST be either an {@link OrderedCollection} or
169
- a {@link Collection} and MAY be filtered on privileges of an authenticated
170
- user or as appropriate when no authentication is given.
171
- range:
172
- - "https://www.w3.org/ns/activitystreams#Collection"
173
-
174
- - singularName: featured
175
- functional: true
176
- compactName: featured
177
- uri: "http://joinmastodon.org/ns#featured"
178
- description: |
179
- What is known in Mastodon as "pinned statuses", or statuses that are always
180
- featured at the top of people's profiles, is implemented using an extra
181
- property `featured` on the actor object that points to a {@link Collection}
182
- of objects.
183
- range:
184
- - "https://www.w3.org/ns/activitystreams#Collection"
185
-
186
- - singularName: featuredTags
187
- functional: true
188
- compactName: featuredTags
189
- uri: "http://joinmastodon.org/ns#featuredTags"
190
- description: |
191
- What is known in Mastodon as "featured hashtags", hashtags that are featured
192
- at people's profiles, is implemented using an extra property `featuredTags`
193
- on the actor object that points to a {@link Collection} of {@link Hashtag}
194
- objects specifically.
195
- range:
196
- - "https://www.w3.org/ns/activitystreams#Collection"
197
-
198
- - pluralName: streams
199
- singularName: stream
200
- singularAccessor: false
201
- compactName: streams
202
- uri: "https://www.w3.org/ns/activitystreams#streams"
203
- description: |
204
- A list of supplementary Collections which may be of interest.
205
- range:
206
- - "https://www.w3.org/ns/activitystreams#Collection"
207
-
208
- - singularName: endpoints
209
- functional: true
210
- compactName: endpoints
211
- uri: "https://www.w3.org/ns/activitystreams#endpoints"
212
- description: |
213
- A JSON object which maps additional (typically server/domain-wide) endpoints
214
- which may be useful either for this actor or someone referencing this actor.
215
- This mapping may be nested inside the actor document as the value or may be
216
- a link to a JSON-LD document with these properties.
217
- range:
218
- - "https://www.w3.org/ns/activitystreams#Endpoints"
219
-
220
- - singularName: discoverable
221
- functional: true
222
- compactName: discoverable
223
- uri: "http://joinmastodon.org/ns#discoverable"
224
- description: |
225
- Allows users to opt-in or opt-out of discoverability features like
226
- the profile directory. This flag may also be used as an indicator of
227
- the user's preferences toward being included in external discovery services,
228
- such as search engines or other indexing tools.
229
- range:
230
- - "http://www.w3.org/2001/XMLSchema#boolean"
231
-
232
- - singularName: suspended
233
- functional: true
234
- compactName: suspended
235
- uri: "http://joinmastodon.org/ns#suspended"
236
- description: |
237
- Reports whether a user was locally suspended, for better handling of
238
- these accounts.
239
- range:
240
- - "http://www.w3.org/2001/XMLSchema#boolean"
241
-
242
- - singularName: memorial
243
- functional: true
244
- compactName: memorial
245
- uri: "http://joinmastodon.org/ns#memorial"
246
- description: Whether the actor is in-memorial state.
247
- range:
248
- - "http://www.w3.org/2001/XMLSchema#boolean"
249
-
250
- - singularName: indexable
251
- functional: true
252
- compactName: indexable
253
- uri: "http://joinmastodon.org/ns#indexable"
254
- description: Whether the actor allows to be indexed.
255
- range:
256
- - "http://www.w3.org/2001/XMLSchema#boolean"
257
-
258
- - singularName: successor
259
- functional: true
260
- compactName: movedTo
261
- uri: "https://www.w3.org/ns/activitystreams#movedTo"
262
- description: >-
263
- Signifies that an actor has been moved to a different ID.
264
- Used in Mastodon-style data portability with the {@link Move} activity;
265
- see [ActivityPub Data Portability/Move
266
- Action](https://swicg.github.io/activitypub-data-portability/#move-action)
267
- for more details.
268
- range:
269
- - "https://www.w3.org/ns/activitystreams#Application"
270
- - "https://www.w3.org/ns/activitystreams#Group"
271
- - "https://www.w3.org/ns/activitystreams#Organization"
272
- - "https://www.w3.org/ns/activitystreams#Person"
273
- - "https://www.w3.org/ns/activitystreams#Service"
274
-
275
- - pluralName: aliases
276
- singularName: alias
277
- singularAccessor: true
278
- compactName: alsoKnownAs
279
- uri: "https://www.w3.org/ns/activitystreams#alsoKnownAs"
280
- description: |
281
- The `aliases` (`alsoKnownAs`) property is used to specify alternative names
282
- or aliases for an entity. It can be used to provide additional identifiers
283
- or labels for an entity, which can be useful in scenarios where an entity
284
- may have multiple names or aliases.
285
- range:
286
- - "https://www.w3.org/ns/activitystreams#Application"
287
- - "https://www.w3.org/ns/activitystreams#Group"
288
- - "https://www.w3.org/ns/activitystreams#Organization"
289
- - "https://www.w3.org/ns/activitystreams#Person"
290
- - "https://www.w3.org/ns/activitystreams#Service"
291
-
292
- - pluralName: services
293
- singularName: service
294
- singularAccessor: true
295
- compactName: service
296
- uri: "https://www.w3.org/ns/did#service"
297
- description: |
298
- Means of communicating or interacting with the DID subject or associated
299
- entities via one or more service endpoints. Examples include discovery
300
- services, agent services, social networking services, file storage services,
301
- and verifiable credential repository services.
302
- range:
303
- - "https://www.w3.org/ns/did#Service"
304
-
305
- - singularName: followedMessage
306
- functional: true
307
- compactName: _misskey_followedMessage
308
- uri: "https://misskey-hub.net/ns#_misskey_followedMessage"
309
- description: |
310
- This value is used for `Actor` type objects to show message on followed.
311
- range:
312
- - "http://www.w3.org/2001/XMLSchema#string"
313
-
314
- - singularName: cat
315
- functional: true
316
- compactName: isCat
317
- uri: "https://misskey-hub.net/ns#isCat"
318
- description: |
319
- Used on actors to indicate that they in some way identify as a cat,
320
- expressed as a boolean value. If this property is set to `true`,
321
- displaying the actor or their notes will have some special effects
322
- attached in some clients.
323
- range:
324
- - "http://www.w3.org/2001/XMLSchema#boolean"
@@ -1,15 +0,0 @@
1
- $schema: ../codegen/schema.yaml
2
- name: Arrive
3
- compactName: Arrive
4
- uri: "https://www.w3.org/ns/activitystreams#Arrive"
5
- extends: "https://www.w3.org/ns/activitystreams#IntransitiveActivity"
6
- entity: true
7
- description: |
8
- An `IntransitiveActivity` that indicates that the `actor` has arrived at the `location`.
9
- The `origin` can be used to identify the context from which the `actor` originated.
10
- The `target` typically has no defined meaning.
11
- defaultContext:
12
- - "https://w3id.org/identity/v1"
13
- - "https://www.w3.org/ns/activitystreams"
14
- - "https://w3id.org/security/data-integrity/v1"
15
- properties: []