@fedify/fedify 1.4.9 → 1.4.11

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 (158) hide show
  1. package/CHANGES.md +174 -0
  2. package/esm/deno.js +1 -1
  3. package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/equals.js +1 -1
  4. package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_constants.js +0 -10
  5. package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/satisfies.js +1 -0
  6. package/esm/federation/handler.js +20 -7
  7. package/esm/nodeinfo/client.js +1 -1
  8. package/esm/nodeinfo/mod.js +1 -1
  9. package/esm/nodeinfo/types.js +1 -1
  10. package/esm/runtime/key.js +1 -1
  11. package/esm/sig/http.js +1 -1
  12. package/esm/sig/key.js +4 -1
  13. package/esm/vocab/lookup.js +1 -1
  14. package/esm/vocab/undo.yaml +4 -0
  15. package/esm/vocab/vocab.js +338 -184
  16. package/package.json +1 -1
  17. package/types/deps/jsr.io/@std/async/{1.0.12 → 1.0.13}/delay.d.ts.map +1 -1
  18. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/_types.d.ts.map +1 -1
  19. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/concat.d.ts +1 -1
  20. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/concat.d.ts.map +1 -1
  21. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/copy.d.ts.map +1 -1
  22. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/ends_with.d.ts.map +1 -1
  23. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/equals.d.ts.map +1 -1
  24. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/includes_needle.d.ts.map +1 -1
  25. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/index_of_needle.d.ts.map +1 -1
  26. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/last_index_of_needle.d.ts.map +1 -1
  27. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/mod.d.ts.map +1 -1
  28. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/repeat.d.ts.map +1 -1
  29. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/starts_with.d.ts.map +1 -1
  30. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/common.d.ts.map +1 -1
  31. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/encoding.d.ts.map +1 -1
  32. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/language.d.ts.map +1 -1
  33. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/media_type.d.ts.map +1 -1
  34. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/negotiation.d.ts.map +1 -1
  35. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_constants.d.ts +0 -4
  36. package/types/deps/jsr.io/@std/semver/1.0.5/_constants.d.ts.map +1 -0
  37. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_shared.d.ts.map +1 -1
  38. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_test_comparator_set.d.ts.map +1 -1
  39. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/can_parse.d.ts.map +1 -1
  40. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/compare.d.ts.map +1 -1
  41. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/difference.d.ts.map +1 -1
  42. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/equals.d.ts.map +1 -1
  43. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format.d.ts.map +1 -1
  44. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format_range.d.ts.map +1 -1
  45. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_or_equal.d.ts.map +1 -1
  46. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than.d.ts.map +1 -1
  47. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than_range.d.ts.map +1 -1
  48. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/increment.d.ts.map +1 -1
  49. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_range.d.ts.map +1 -1
  50. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_semver.d.ts.map +1 -1
  51. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_or_equal.d.ts.map +1 -1
  52. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than.d.ts.map +1 -1
  53. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than_range.d.ts.map +1 -1
  54. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/max_satisfying.d.ts.map +1 -1
  55. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/min_satisfying.d.ts.map +1 -1
  56. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/mod.d.ts.map +1 -1
  57. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/not_equals.d.ts.map +1 -1
  58. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse.d.ts.map +1 -1
  59. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse_range.d.ts.map +1 -1
  60. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/range_intersects.d.ts.map +1 -1
  61. package/types/deps/jsr.io/@std/semver/1.0.5/satisfies.d.ts.map +1 -0
  62. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse.d.ts.map +1 -1
  63. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse_range.d.ts.map +1 -1
  64. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/types.d.ts.map +1 -1
  65. package/types/federation/handler.d.ts.map +1 -1
  66. package/types/nodeinfo/mod.d.ts +1 -1
  67. package/types/nodeinfo/types.d.ts +1 -1
  68. package/types/sig/key.d.ts.map +1 -1
  69. package/types/vocab/vocab.d.ts.map +1 -1
  70. package/types/deps/jsr.io/@std/semver/1.0.4/_constants.d.ts.map +0 -1
  71. package/types/deps/jsr.io/@std/semver/1.0.4/satisfies.d.ts.map +0 -1
  72. /package/esm/deps/jsr.io/@std/async/{1.0.12 → 1.0.13}/delay.js +0 -0
  73. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/_types.js +0 -0
  74. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/concat.js +0 -0
  75. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/copy.js +0 -0
  76. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/ends_with.js +0 -0
  77. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/includes_needle.js +0 -0
  78. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/index_of_needle.js +0 -0
  79. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/last_index_of_needle.js +0 -0
  80. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/mod.js +0 -0
  81. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/repeat.js +0 -0
  82. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/starts_with.js +0 -0
  83. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/common.js +0 -0
  84. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/encoding.js +0 -0
  85. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/language.js +0 -0
  86. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/media_type.js +0 -0
  87. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/negotiation.js +0 -0
  88. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_shared.js +0 -0
  89. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_test_comparator_set.js +0 -0
  90. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/can_parse.js +0 -0
  91. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/compare.js +0 -0
  92. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/difference.js +0 -0
  93. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/equals.js +0 -0
  94. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format.js +0 -0
  95. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format_range.js +0 -0
  96. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_or_equal.js +0 -0
  97. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than.js +0 -0
  98. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than_range.js +0 -0
  99. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/increment.js +0 -0
  100. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_range.js +0 -0
  101. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_semver.js +0 -0
  102. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_or_equal.js +0 -0
  103. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than.js +0 -0
  104. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than_range.js +0 -0
  105. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/max_satisfying.js +0 -0
  106. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/min_satisfying.js +0 -0
  107. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/mod.js +0 -0
  108. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/not_equals.js +0 -0
  109. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse.js +0 -0
  110. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse_range.js +0 -0
  111. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/range_intersects.js +0 -0
  112. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse.js +0 -0
  113. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse_range.js +0 -0
  114. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/types.js +0 -0
  115. /package/types/deps/jsr.io/@std/async/{1.0.12 → 1.0.13}/delay.d.ts +0 -0
  116. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/_types.d.ts +0 -0
  117. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/copy.d.ts +0 -0
  118. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/ends_with.d.ts +0 -0
  119. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/equals.d.ts +0 -0
  120. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/includes_needle.d.ts +0 -0
  121. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/index_of_needle.d.ts +0 -0
  122. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/last_index_of_needle.d.ts +0 -0
  123. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/mod.d.ts +0 -0
  124. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/repeat.d.ts +0 -0
  125. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/starts_with.d.ts +0 -0
  126. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/common.d.ts +0 -0
  127. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/encoding.d.ts +0 -0
  128. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/language.d.ts +0 -0
  129. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/media_type.d.ts +0 -0
  130. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/negotiation.d.ts +0 -0
  131. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_shared.d.ts +0 -0
  132. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_test_comparator_set.d.ts +0 -0
  133. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/can_parse.d.ts +0 -0
  134. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/compare.d.ts +0 -0
  135. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/difference.d.ts +0 -0
  136. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/equals.d.ts +0 -0
  137. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format.d.ts +0 -0
  138. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format_range.d.ts +0 -0
  139. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_or_equal.d.ts +0 -0
  140. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than.d.ts +0 -0
  141. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than_range.d.ts +0 -0
  142. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/increment.d.ts +0 -0
  143. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_range.d.ts +0 -0
  144. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_semver.d.ts +0 -0
  145. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_or_equal.d.ts +0 -0
  146. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than.d.ts +0 -0
  147. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than_range.d.ts +0 -0
  148. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/max_satisfying.d.ts +0 -0
  149. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/min_satisfying.d.ts +0 -0
  150. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/mod.d.ts +0 -0
  151. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/not_equals.d.ts +0 -0
  152. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse.d.ts +0 -0
  153. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse_range.d.ts +0 -0
  154. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/range_intersects.d.ts +0 -0
  155. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/satisfies.d.ts +0 -0
  156. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse.d.ts +0 -0
  157. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse_range.d.ts +0 -0
  158. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/types.d.ts +0 -0
package/CHANGES.md CHANGED
@@ -3,6 +3,42 @@
3
3
  Fedify changelog
4
4
  ================
5
5
 
6
+ Version 1.4.11
7
+ --------------
8
+
9
+ Released on May 16, 2025.
10
+
11
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
12
+ caused a `500 Internal Server Error` when the received activity had
13
+ an invalid JSON-LD syntax. Now it logs the error and responds with
14
+ a `400 Bad Request` error instead. [[#232]]
15
+
16
+ - The `exportJwk()` function now populates the `alg` property of a returned
17
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
18
+
19
+
20
+ Version 1.4.10
21
+ --------------
22
+
23
+ Released on April 8, 2025.
24
+
25
+ - Activity Vocabulary API became to accept [RFC 3339] date-time strings
26
+ without a timezone offset. This is not a bug fix, but improves
27
+ interoperability with some implementations that do not include a timezone
28
+ offset in their date-time strings including WordPress. [[#226]]
29
+
30
+ - Added the following default context to `Undo` class:
31
+
32
+ ~~~~ json
33
+ {
34
+ "litepub": "http://litepub.social/ns#",
35
+ "toot": "http://joinmastodon.org/ns#",
36
+ "EmojiReact": "litepub:EmojiReact",
37
+ "Emoji": "toot:Emoji"
38
+ }
39
+ ~~~~
40
+
41
+
6
42
  Version 1.4.9
7
43
  -------------
8
44
 
@@ -205,6 +241,42 @@ Released on February 5, 2025.
205
241
  [#195]: https://github.com/fedify-dev/fedify/issues/195
206
242
 
207
243
 
244
+ Version 1.3.18
245
+ --------------
246
+
247
+ Released on May 16, 2025.
248
+
249
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
250
+ caused a `500 Internal Server Error` when the received activity had
251
+ an invalid JSON-LD syntax. Now it logs the error and responds with
252
+ a `400 Bad Request` error instead. [[#232]]
253
+
254
+ - The `exportJwk()` function now populates the `alg` property of a returned
255
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
256
+
257
+
258
+ Version 1.3.17
259
+ --------------
260
+
261
+ Released on April 8, 2025.
262
+
263
+ - Activity Vocabulary API became to accept [RFC 3339] date-time strings
264
+ without a timezone offset. This is not a bug fix, but improves
265
+ interoperability with some implementations that do not include a timezone
266
+ offset in their date-time strings including WordPress. [[#226]]
267
+
268
+ - Added the following default context to `Undo` class:
269
+
270
+ ~~~~ json
271
+ {
272
+ "litepub": "http://litepub.social/ns#",
273
+ "toot": "http://joinmastodon.org/ns#",
274
+ "EmojiReact": "litepub:EmojiReact",
275
+ "Emoji": "toot:Emoji"
276
+ }
277
+ ~~~~
278
+
279
+
208
280
  Version 1.3.16
209
281
  --------------
210
282
 
@@ -523,6 +595,42 @@ Released on November 30, 2024.
523
595
  [#193]: https://github.com/fedify-dev/fedify/issues/193
524
596
 
525
597
 
598
+ Version 1.2.22
599
+ --------------
600
+
601
+ Released on May 16, 2025.
602
+
603
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
604
+ caused a `500 Internal Server Error` when the received activity had
605
+ an invalid JSON-LD syntax. Now it logs the error and responds with
606
+ a `400 Bad Request` error instead. [[#232]]
607
+
608
+ - The `exportJwk()` function now populates the `alg` property of a returned
609
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
610
+
611
+
612
+ Version 1.2.21
613
+ --------------
614
+
615
+ Released on April 8, 2025.
616
+
617
+ - Activity Vocabulary API became to accept [RFC 3339] date-time strings
618
+ without a timezone offset. This is not a bug fix, but improves
619
+ interoperability with some implementations that do not include a timezone
620
+ offset in their date-time strings including WordPress. [[#226]]
621
+
622
+ - Added the following default context to `Undo` class:
623
+
624
+ ~~~~ json
625
+ {
626
+ "litepub": "http://litepub.social/ns#",
627
+ "toot": "http://joinmastodon.org/ns#",
628
+ "EmojiReact": "litepub:EmojiReact",
629
+ "Emoji": "toot:Emoji"
630
+ }
631
+ ~~~~
632
+
633
+
526
634
  Version 1.2.20
527
635
  --------------
528
636
 
@@ -889,6 +997,42 @@ Released on October 31, 2024.
889
997
  [#118]: https://github.com/fedify-dev/fedify/issues/118
890
998
 
891
999
 
1000
+ Version 1.1.22
1001
+ --------------
1002
+
1003
+ Released on May 16, 2025.
1004
+
1005
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
1006
+ caused a `500 Internal Server Error` when the received activity had
1007
+ an invalid JSON-LD syntax. Now it logs the error and responds with
1008
+ a `400 Bad Request` error instead. [[#232]]
1009
+
1010
+ - The `exportJwk()` function now populates the `alg` property of a returned
1011
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
1012
+
1013
+
1014
+ Version 1.1.21
1015
+ --------------
1016
+
1017
+ Released on April 8, 2025.
1018
+
1019
+ - Activity Vocabulary API became to accept [RFC 3339] date-time strings
1020
+ without a timezone offset. This is not a bug fix, but improves
1021
+ interoperability with some implementations that do not include a timezone
1022
+ offset in their date-time strings including WordPress. [[#226]]
1023
+
1024
+ - Added the following default context to `Undo` class:
1025
+
1026
+ ~~~~ json
1027
+ {
1028
+ "litepub": "http://litepub.social/ns#",
1029
+ "toot": "http://joinmastodon.org/ns#",
1030
+ "EmojiReact": "litepub:EmojiReact",
1031
+ "Emoji": "toot:Emoji"
1032
+ }
1033
+ ~~~~
1034
+
1035
+
892
1036
  Version 1.1.20
893
1037
  --------------
894
1038
 
@@ -1296,6 +1440,36 @@ Released on October 20, 2024.
1296
1440
  [#150]: https://github.com/fedify-dev/fedify/issues/150
1297
1441
 
1298
1442
 
1443
+ Version 1.0.25
1444
+ --------------
1445
+
1446
+ Released on May 16, 2025.
1447
+
1448
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
1449
+ caused a `500 Internal Server Error` when the received activity had
1450
+ an invalid JSON-LD syntax. Now it logs the error and responds with
1451
+ a `400 Bad Request` error instead. [[#232]]
1452
+
1453
+ - The `exportJwk()` function now populates the `alg` property of a returned
1454
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
1455
+
1456
+ [#232]: https://github.com/fedify-dev/fedify/issues/232
1457
+
1458
+
1459
+ Version 1.0.24
1460
+ --------------
1461
+
1462
+ Released on April 8, 2025.
1463
+
1464
+ - Activity Vocabulary API became to accept [RFC 3339] date-time strings
1465
+ without a timezone offset. This is not a bug fix, but improves
1466
+ interoperability with some implementations that do not include a timezone
1467
+ offset in their date-time strings including WordPress. [[#226]]
1468
+
1469
+ [RFC 3339]: https://datatracker.ietf.org/doc/html/rfc3339
1470
+ [#226]: https://github.com/fedify-dev/fedify/issues/226
1471
+
1472
+
1299
1473
  Version 1.0.23
1300
1474
  --------------
1301
1475
 
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "@fedify/fedify",
3
- "version": "1.4.9",
3
+ "version": "1.4.11",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": "./mod.ts",
@@ -48,7 +48,7 @@ function equals32Bit(a, b) {
48
48
  * Byte length threshold for when to use 32-bit comparisons, based on
49
49
  * benchmarks.
50
50
  *
51
- * @see {@link https://github.com/denoland/deno_std/pull/4635}
51
+ * @see {@link https://github.com/denoland/std/pull/4635}
52
52
  */
53
53
  const THRESHOLD_32_BIT = 160;
54
54
  /**
@@ -1,14 +1,4 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
- /**
3
- * The minimum valid SemVer object. Equivalent to `0.0.0`.
4
- */
5
- export const MIN = {
6
- major: 0,
7
- minor: 0,
8
- patch: 0,
9
- prerelease: [],
10
- build: [],
11
- };
12
2
  /**
13
3
  * ANY is a sentinel value used by some range calculations. It is not a valid
14
4
  * SemVer object and should not be used directly.
@@ -1,4 +1,5 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
+ // This module is browser compatible.
2
3
  import { testComparatorSet } from "./_test_comparator_set.js";
3
4
  /**
4
5
  * Test to see if the SemVer satisfies the range.
@@ -1,6 +1,6 @@
1
1
  import { getLogger } from "@logtape/logtape";
2
2
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
3
- import { accepts } from "../deps/jsr.io/@std/http/1.0.13/negotiation.js";
3
+ import { accepts } from "../deps/jsr.io/@std/http/1.0.16/negotiation.js";
4
4
  import metadata from "../deno.js";
5
5
  import { verifyRequest } from "../sig/http.js";
6
6
  import { detachSignature, verifyJsonLd } from "../sig/ld.js";
@@ -322,12 +322,25 @@ async function handleInboxInternal(request, { recipient, context: ctx, inboxCont
322
322
  });
323
323
  }
324
324
  const keyCache = new KvKeyCache(kv, kvPrefixes.publicKey, ctx);
325
- const ldSigVerified = await verifyJsonLd(json, {
326
- contextLoader: ctx.contextLoader,
327
- documentLoader: ctx.documentLoader,
328
- keyCache,
329
- tracerProvider,
330
- });
325
+ let ldSigVerified;
326
+ try {
327
+ ldSigVerified = await verifyJsonLd(json, {
328
+ contextLoader: ctx.contextLoader,
329
+ documentLoader: ctx.documentLoader,
330
+ keyCache,
331
+ tracerProvider,
332
+ });
333
+ }
334
+ catch (error) {
335
+ if (error instanceof Error && error.name === "jsonld.SyntaxError") {
336
+ logger.error("Failed to parse JSON-LD:\n{error}", { recipient, error });
337
+ return new Response("Invalid JSON-LD.", {
338
+ status: 400,
339
+ headers: { "Content-Type": "text/plain; charset=utf-8" },
340
+ });
341
+ }
342
+ ldSigVerified = false;
343
+ }
331
344
  const jsonWithoutSig = detachSignature(json);
332
345
  let activity = null;
333
346
  if (ldSigVerified) {
@@ -1,5 +1,5 @@
1
1
  import { getLogger } from "@logtape/logtape";
2
- import { parse } from "../deps/jsr.io/@std/semver/1.0.4/mod.js";
2
+ import { parse } from "../deps/jsr.io/@std/semver/1.0.5/mod.js";
3
3
  import { getUserAgent, } from "../runtime/docloader.js";
4
4
  const logger = getLogger(["fedify", "nodeinfo", "client"]);
5
5
  export async function getNodeInfo(url, options = {}) {
@@ -5,6 +5,6 @@
5
5
  * @module
6
6
  * @since 0.2.0
7
7
  */
8
- export { format as formatSemVer, parse as parseSemVer, } from "../deps/jsr.io/@std/semver/1.0.4/mod.js";
8
+ export { format as formatSemVer, parse as parseSemVer, } from "../deps/jsr.io/@std/semver/1.0.5/mod.js";
9
9
  export { getNodeInfo, parseNodeInfo, } from "./client.js";
10
10
  export * from "./types.js";
@@ -1,4 +1,4 @@
1
- import { format } from "../deps/jsr.io/@std/semver/1.0.4/mod.js";
1
+ import { format } from "../deps/jsr.io/@std/semver/1.0.5/mod.js";
2
2
  /**
3
3
  * Converts a {@link NodeInfo} object to a JSON value.
4
4
  * @param nodeInfo The {@link NodeInfo} object to convert.
@@ -1,6 +1,6 @@
1
1
  import * as dntShim from "../_dnt.shims.js";
2
2
  import { createPublicKey } from "node:crypto";
3
- import { concat } from "../deps/jsr.io/@std/bytes/1.0.5/concat.js";
3
+ import { concat } from "../deps/jsr.io/@std/bytes/1.0.6/concat.js";
4
4
  import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/1.0.7/base64.js";
5
5
  import { decodeBase64Url } from "../deps/jsr.io/@std/encoding/1.0.7/base64url.js";
6
6
  import { decodeHex } from "../deps/jsr.io/@std/encoding/1.0.7/hex.js";
package/esm/sig/http.js CHANGED
@@ -2,7 +2,7 @@ import * as dntShim from "../_dnt.shims.js";
2
2
  import { getLogger } from "@logtape/logtape";
3
3
  import { SpanStatusCode, trace, } from "@opentelemetry/api";
4
4
  import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL, } from "@opentelemetry/semantic-conventions";
5
- import { equals } from "../deps/jsr.io/@std/bytes/1.0.5/mod.js";
5
+ import { equals } from "../deps/jsr.io/@std/bytes/1.0.6/mod.js";
6
6
  import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/1.0.7/base64.js";
7
7
  import { encodeHex } from "../deps/jsr.io/@std/encoding/1.0.7/hex.js";
8
8
  import metadata from "../deno.js";
package/esm/sig/key.js CHANGED
@@ -70,7 +70,10 @@ export function generateCryptoKeyPair(algorithm) {
70
70
  */
71
71
  export async function exportJwk(key) {
72
72
  validateCryptoKey(key);
73
- return await dntShim.crypto.subtle.exportKey("jwk", key);
73
+ const jwk = await dntShim.crypto.subtle.exportKey("jwk", key);
74
+ if (jwk.crv === "Ed25519")
75
+ jwk.alg = "Ed25519";
76
+ return jwk;
74
77
  }
75
78
  /**
76
79
  * Imports a key from JWK format.
@@ -1,7 +1,7 @@
1
1
  import * as dntShim from "../_dnt.shims.js";
2
2
  import { getLogger } from "@logtape/logtape";
3
3
  import { SpanStatusCode, trace } from "@opentelemetry/api";
4
- import { delay } from "../deps/jsr.io/@std/async/1.0.12/delay.js";
4
+ import { delay } from "../deps/jsr.io/@std/async/1.0.13/delay.js";
5
5
  import metadata from "../deno.js";
6
6
  import { getDocumentLoader, } from "../runtime/docloader.js";
7
7
  import { lookupWebFinger } from "../webfinger/lookup.js";
@@ -19,4 +19,8 @@ defaultContext:
19
19
  - "https://w3id.org/security/data-integrity/v1"
20
20
  - "https://www.w3.org/ns/did/v1"
21
21
  - "https://w3id.org/security/multikey/v1"
22
+ - litepub: "http://litepub.social/ns#"
23
+ toot: "http://joinmastodon.org/ns#"
24
+ EmojiReact: "litepub:EmojiReact"
25
+ Emoji: "toot:Emoji"
22
26
  properties: []