@fedify/fedify 1.5.1 → 1.5.3

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 (159) hide show
  1. package/CHANGES.md +101 -0
  2. package/README.md +3 -2
  3. package/SPONSORS.md +3 -2
  4. package/esm/deno.js +1 -1
  5. package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/equals.js +1 -1
  6. package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_constants.js +0 -10
  7. package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/satisfies.js +1 -0
  8. package/esm/federation/handler.js +20 -7
  9. package/esm/nodeinfo/client.js +1 -1
  10. package/esm/nodeinfo/mod.js +1 -1
  11. package/esm/nodeinfo/types.js +1 -1
  12. package/esm/runtime/key.js +1 -1
  13. package/esm/sig/http.js +1 -1
  14. package/esm/sig/key.js +4 -1
  15. package/esm/vocab/lookup.js +1 -1
  16. package/esm/vocab/vocab.js +308 -176
  17. package/package.json +1 -1
  18. package/types/deps/jsr.io/@std/async/{1.0.12 → 1.0.13}/delay.d.ts.map +1 -1
  19. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/_types.d.ts.map +1 -1
  20. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/concat.d.ts +1 -1
  21. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/concat.d.ts.map +1 -1
  22. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/copy.d.ts.map +1 -1
  23. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/ends_with.d.ts.map +1 -1
  24. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/equals.d.ts.map +1 -1
  25. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/includes_needle.d.ts.map +1 -1
  26. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/index_of_needle.d.ts.map +1 -1
  27. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/last_index_of_needle.d.ts.map +1 -1
  28. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/mod.d.ts.map +1 -1
  29. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/repeat.d.ts.map +1 -1
  30. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/starts_with.d.ts.map +1 -1
  31. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/common.d.ts.map +1 -1
  32. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/encoding.d.ts.map +1 -1
  33. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/language.d.ts.map +1 -1
  34. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/media_type.d.ts.map +1 -1
  35. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/negotiation.d.ts.map +1 -1
  36. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_constants.d.ts +0 -4
  37. package/types/deps/jsr.io/@std/semver/1.0.5/_constants.d.ts.map +1 -0
  38. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_shared.d.ts.map +1 -1
  39. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_test_comparator_set.d.ts.map +1 -1
  40. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/can_parse.d.ts.map +1 -1
  41. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/compare.d.ts.map +1 -1
  42. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/difference.d.ts.map +1 -1
  43. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/equals.d.ts.map +1 -1
  44. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format.d.ts.map +1 -1
  45. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format_range.d.ts.map +1 -1
  46. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_or_equal.d.ts.map +1 -1
  47. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than.d.ts.map +1 -1
  48. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than_range.d.ts.map +1 -1
  49. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/increment.d.ts.map +1 -1
  50. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_range.d.ts.map +1 -1
  51. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_semver.d.ts.map +1 -1
  52. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_or_equal.d.ts.map +1 -1
  53. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than.d.ts.map +1 -1
  54. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than_range.d.ts.map +1 -1
  55. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/max_satisfying.d.ts.map +1 -1
  56. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/min_satisfying.d.ts.map +1 -1
  57. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/mod.d.ts.map +1 -1
  58. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/not_equals.d.ts.map +1 -1
  59. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse.d.ts.map +1 -1
  60. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse_range.d.ts.map +1 -1
  61. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/range_intersects.d.ts.map +1 -1
  62. package/types/deps/jsr.io/@std/semver/1.0.5/satisfies.d.ts.map +1 -0
  63. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse.d.ts.map +1 -1
  64. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse_range.d.ts.map +1 -1
  65. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/types.d.ts.map +1 -1
  66. package/types/federation/handler.d.ts.map +1 -1
  67. package/types/nodeinfo/mod.d.ts +1 -1
  68. package/types/nodeinfo/types.d.ts +1 -1
  69. package/types/sig/key.d.ts.map +1 -1
  70. package/types/vocab/vocab.d.ts.map +1 -1
  71. package/types/deps/jsr.io/@std/semver/1.0.4/_constants.d.ts.map +0 -1
  72. package/types/deps/jsr.io/@std/semver/1.0.4/satisfies.d.ts.map +0 -1
  73. /package/esm/deps/jsr.io/@std/async/{1.0.12 → 1.0.13}/delay.js +0 -0
  74. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/_types.js +0 -0
  75. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/concat.js +0 -0
  76. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/copy.js +0 -0
  77. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/ends_with.js +0 -0
  78. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/includes_needle.js +0 -0
  79. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/index_of_needle.js +0 -0
  80. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/last_index_of_needle.js +0 -0
  81. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/mod.js +0 -0
  82. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/repeat.js +0 -0
  83. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/starts_with.js +0 -0
  84. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/common.js +0 -0
  85. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/encoding.js +0 -0
  86. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/language.js +0 -0
  87. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/media_type.js +0 -0
  88. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/negotiation.js +0 -0
  89. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_shared.js +0 -0
  90. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_test_comparator_set.js +0 -0
  91. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/can_parse.js +0 -0
  92. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/compare.js +0 -0
  93. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/difference.js +0 -0
  94. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/equals.js +0 -0
  95. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format.js +0 -0
  96. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format_range.js +0 -0
  97. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_or_equal.js +0 -0
  98. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than.js +0 -0
  99. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than_range.js +0 -0
  100. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/increment.js +0 -0
  101. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_range.js +0 -0
  102. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_semver.js +0 -0
  103. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_or_equal.js +0 -0
  104. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than.js +0 -0
  105. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than_range.js +0 -0
  106. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/max_satisfying.js +0 -0
  107. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/min_satisfying.js +0 -0
  108. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/mod.js +0 -0
  109. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/not_equals.js +0 -0
  110. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse.js +0 -0
  111. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse_range.js +0 -0
  112. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/range_intersects.js +0 -0
  113. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse.js +0 -0
  114. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse_range.js +0 -0
  115. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/types.js +0 -0
  116. /package/types/deps/jsr.io/@std/async/{1.0.12 → 1.0.13}/delay.d.ts +0 -0
  117. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/_types.d.ts +0 -0
  118. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/copy.d.ts +0 -0
  119. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/ends_with.d.ts +0 -0
  120. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/equals.d.ts +0 -0
  121. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/includes_needle.d.ts +0 -0
  122. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/index_of_needle.d.ts +0 -0
  123. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/last_index_of_needle.d.ts +0 -0
  124. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/mod.d.ts +0 -0
  125. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/repeat.d.ts +0 -0
  126. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/starts_with.d.ts +0 -0
  127. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/common.d.ts +0 -0
  128. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/encoding.d.ts +0 -0
  129. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/language.d.ts +0 -0
  130. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/_negotiation/media_type.d.ts +0 -0
  131. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.16}/negotiation.d.ts +0 -0
  132. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_shared.d.ts +0 -0
  133. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_test_comparator_set.d.ts +0 -0
  134. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/can_parse.d.ts +0 -0
  135. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/compare.d.ts +0 -0
  136. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/difference.d.ts +0 -0
  137. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/equals.d.ts +0 -0
  138. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format.d.ts +0 -0
  139. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format_range.d.ts +0 -0
  140. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_or_equal.d.ts +0 -0
  141. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than.d.ts +0 -0
  142. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than_range.d.ts +0 -0
  143. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/increment.d.ts +0 -0
  144. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_range.d.ts +0 -0
  145. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_semver.d.ts +0 -0
  146. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_or_equal.d.ts +0 -0
  147. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than.d.ts +0 -0
  148. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than_range.d.ts +0 -0
  149. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/max_satisfying.d.ts +0 -0
  150. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/min_satisfying.d.ts +0 -0
  151. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/mod.d.ts +0 -0
  152. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/not_equals.d.ts +0 -0
  153. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse.d.ts +0 -0
  154. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse_range.d.ts +0 -0
  155. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/range_intersects.d.ts +0 -0
  156. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/satisfies.d.ts +0 -0
  157. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse.d.ts +0 -0
  158. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse_range.d.ts +0 -0
  159. /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,35 @@
3
3
  Fedify changelog
4
4
  ================
5
5
 
6
+ Version 1.5.3
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.5.2
21
+ -------------
22
+
23
+ Released on May 11, 2025.
24
+
25
+ - Fixed the `fedify init` command to install the correct version of
26
+ *@fedify/express* package. [[#230], [#231] by Emelia Smith]
27
+
28
+ - The `exportJwk()` function now populates the `alg` property of a returned
29
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
30
+
31
+ [#230]: https://github.com/fedify-dev/fedify/issues/230
32
+ [#231]: https://github.com/fedify-dev/fedify/pull/231
33
+
34
+
6
35
  Version 1.5.1
7
36
  -------------
8
37
 
@@ -137,6 +166,20 @@ Released on March 28, 2025.
137
166
  [multibase]: https://github.com/multiformats/js-multibase
138
167
 
139
168
 
169
+ Version 1.4.11
170
+ --------------
171
+
172
+ Released on May 16, 2025.
173
+
174
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
175
+ caused a `500 Internal Server Error` when the received activity had
176
+ an invalid JSON-LD syntax. Now it logs the error and responds with
177
+ a `400 Bad Request` error instead. [[#232]]
178
+
179
+ - The `exportJwk()` function now populates the `alg` property of a returned
180
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
181
+
182
+
140
183
  Version 1.4.10
141
184
  --------------
142
185
 
@@ -361,6 +404,20 @@ Released on February 5, 2025.
361
404
  [#195]: https://github.com/fedify-dev/fedify/issues/195
362
405
 
363
406
 
407
+ Version 1.3.18
408
+ --------------
409
+
410
+ Released on May 16, 2025.
411
+
412
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
413
+ caused a `500 Internal Server Error` when the received activity had
414
+ an invalid JSON-LD syntax. Now it logs the error and responds with
415
+ a `400 Bad Request` error instead. [[#232]]
416
+
417
+ - The `exportJwk()` function now populates the `alg` property of a returned
418
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
419
+
420
+
364
421
  Version 1.3.17
365
422
  --------------
366
423
 
@@ -701,6 +758,20 @@ Released on November 30, 2024.
701
758
  [#193]: https://github.com/fedify-dev/fedify/issues/193
702
759
 
703
760
 
761
+ Version 1.2.22
762
+ --------------
763
+
764
+ Released on May 16, 2025.
765
+
766
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
767
+ caused a `500 Internal Server Error` when the received activity had
768
+ an invalid JSON-LD syntax. Now it logs the error and responds with
769
+ a `400 Bad Request` error instead. [[#232]]
770
+
771
+ - The `exportJwk()` function now populates the `alg` property of a returned
772
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
773
+
774
+
704
775
  Version 1.2.21
705
776
  --------------
706
777
 
@@ -1089,6 +1160,20 @@ Released on October 31, 2024.
1089
1160
  [#118]: https://github.com/fedify-dev/fedify/issues/118
1090
1161
 
1091
1162
 
1163
+ Version 1.1.22
1164
+ --------------
1165
+
1166
+ Released on May 16, 2025.
1167
+
1168
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
1169
+ caused a `500 Internal Server Error` when the received activity had
1170
+ an invalid JSON-LD syntax. Now it logs the error and responds with
1171
+ a `400 Bad Request` error instead. [[#232]]
1172
+
1173
+ - The `exportJwk()` function now populates the `alg` property of a returned
1174
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
1175
+
1176
+
1092
1177
  Version 1.1.21
1093
1178
  --------------
1094
1179
 
@@ -1518,6 +1603,22 @@ Released on October 20, 2024.
1518
1603
  [#150]: https://github.com/fedify-dev/fedify/issues/150
1519
1604
 
1520
1605
 
1606
+ Version 1.0.25
1607
+ --------------
1608
+
1609
+ Released on May 16, 2025.
1610
+
1611
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
1612
+ caused a `500 Internal Server Error` when the received activity had
1613
+ an invalid JSON-LD syntax. Now it logs the error and responds with
1614
+ a `400 Bad Request` error instead. [[#232]]
1615
+
1616
+ - The `exportJwk()` function now populates the `alg` property of a returned
1617
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
1618
+
1619
+ [#232]: https://github.com/fedify-dev/fedify/issues/232
1620
+
1621
+
1521
1622
  Version 1.0.24
1522
1623
  --------------
1523
1624
 
package/README.md CHANGED
@@ -101,14 +101,15 @@ financial contributors:[^2]
101
101
  - [Daniel Supernault](https://pixelfed.org/)
102
102
  - [tkgka](https://opencollective.com/tkgka)
103
103
  - [Blaine](https://opencollective.com/blaine)
104
+ - [Erick González Aguilar](https://opencollective.com/erick-gonzalez-aguilar)
104
105
 
105
106
  ### Backers
106
107
 
107
- yamanoku, taye, Encyclia, okin, Andy Piper, box464, Evan Prodromou, Rafael Goulart, malte
108
+ Robin Riley, yamanoku, Encyclia, taye, okin, Andy Piper, box464, Evan Prodromou, Rafael Goulart, malte
108
109
 
109
110
  ### One-time donations
110
111
 
111
- Markus P, Nils Bergmann, Rameez
112
+ Robin Riley, Markus P, Nils Bergmann, Rameez
112
113
 
113
114
  <!-- /DO NOT EDIT -->
114
115
  <!-- cSpell: enable -->
package/SPONSORS.md CHANGED
@@ -21,16 +21,17 @@ Supporters
21
21
  - [Daniel Supernault](https://pixelfed.org/)
22
22
  - [tkgka](https://opencollective.com/tkgka)
23
23
  - [Blaine](https://opencollective.com/blaine)
24
+ - [Erick González Aguilar](https://opencollective.com/erick-gonzalez-aguilar)
24
25
 
25
26
  Backers
26
27
  -------
27
28
 
28
- yamanoku, taye, Encyclia, okin, Andy Piper, box464, Evan Prodromou, Rafael Goulart, malte
29
+ Robin Riley, yamanoku, Encyclia, taye, okin, Andy Piper, box464, Evan Prodromou, Rafael Goulart, malte
29
30
 
30
31
  One-time donations
31
32
  ------------------
32
33
 
33
- Markus P, Nils Bergmann, Rameez
34
+ Robin Riley, Markus P, Nils Bergmann, Rameez
34
35
 
35
36
  <!-- /DO NOT EDIT -->
36
37
  <!-- cSpell: enable -->
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "@fedify/fedify",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
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";
@@ -376,12 +376,25 @@ async function handleInboxInternal(request, { recipient, context: ctx, inboxCont
376
376
  });
377
377
  }
378
378
  const keyCache = new KvKeyCache(kv, kvPrefixes.publicKey, ctx);
379
- const ldSigVerified = await verifyJsonLd(json, {
380
- contextLoader: ctx.contextLoader,
381
- documentLoader: ctx.documentLoader,
382
- keyCache,
383
- tracerProvider,
384
- });
379
+ let ldSigVerified;
380
+ try {
381
+ ldSigVerified = await verifyJsonLd(json, {
382
+ contextLoader: ctx.contextLoader,
383
+ documentLoader: ctx.documentLoader,
384
+ keyCache,
385
+ tracerProvider,
386
+ });
387
+ }
388
+ catch (error) {
389
+ if (error instanceof Error && error.name === "jsonld.SyntaxError") {
390
+ logger.error("Failed to parse JSON-LD:\n{error}", { recipient, error });
391
+ return new Response("Invalid JSON-LD.", {
392
+ status: 400,
393
+ headers: { "Content-Type": "text/plain; charset=utf-8" },
394
+ });
395
+ }
396
+ ldSigVerified = false;
397
+ }
385
398
  const jsonWithoutSig = detachSignature(json);
386
399
  let activity = null;
387
400
  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,5 +1,5 @@
1
1
  import * as dntShim from "../_dnt.shims.js";
2
- import { concat } from "../deps/jsr.io/@std/bytes/1.0.5/concat.js";
2
+ import { concat } from "../deps/jsr.io/@std/bytes/1.0.6/concat.js";
3
3
  import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/1.0.7/base64.js";
4
4
  import { decodeBase64Url } from "../deps/jsr.io/@std/encoding/1.0.7/base64url.js";
5
5
  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";