@fedify/fedify 1.3.17 → 1.3.19

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 (162) hide show
  1. package/CHANGES.md +102 -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/announce.yaml +3 -1
  14. package/esm/vocab/create.yaml +3 -1
  15. package/esm/vocab/delete.yaml +3 -1
  16. package/esm/vocab/lookup.js +1 -1
  17. package/esm/vocab/question.yaml +75 -73
  18. package/esm/vocab/update.yaml +3 -1
  19. package/esm/vocab/vocab.js +325 -178
  20. package/package.json +1 -1
  21. package/types/deps/jsr.io/@std/async/{1.0.12 → 1.0.13}/delay.d.ts.map +1 -1
  22. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/_types.d.ts.map +1 -1
  23. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/concat.d.ts +1 -1
  24. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/concat.d.ts.map +1 -1
  25. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/copy.d.ts.map +1 -1
  26. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/ends_with.d.ts.map +1 -1
  27. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/equals.d.ts.map +1 -1
  28. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/includes_needle.d.ts.map +1 -1
  29. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/index_of_needle.d.ts.map +1 -1
  30. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/last_index_of_needle.d.ts.map +1 -1
  31. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/mod.d.ts.map +1 -1
  32. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/repeat.d.ts.map +1 -1
  33. package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/starts_with.d.ts.map +1 -1
  34. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/common.d.ts.map +1 -1
  35. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/encoding.d.ts.map +1 -1
  36. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/language.d.ts.map +1 -1
  37. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/media_type.d.ts.map +1 -1
  38. package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/negotiation.d.ts.map +1 -1
  39. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_constants.d.ts +0 -4
  40. package/types/deps/jsr.io/@std/semver/1.0.5/_constants.d.ts.map +1 -0
  41. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_shared.d.ts.map +1 -1
  42. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_test_comparator_set.d.ts.map +1 -1
  43. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/can_parse.d.ts.map +1 -1
  44. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/compare.d.ts.map +1 -1
  45. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/difference.d.ts.map +1 -1
  46. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/equals.d.ts.map +1 -1
  47. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format.d.ts.map +1 -1
  48. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format_range.d.ts.map +1 -1
  49. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_or_equal.d.ts.map +1 -1
  50. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than.d.ts.map +1 -1
  51. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than_range.d.ts.map +1 -1
  52. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/increment.d.ts.map +1 -1
  53. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_range.d.ts.map +1 -1
  54. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_semver.d.ts.map +1 -1
  55. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_or_equal.d.ts.map +1 -1
  56. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than.d.ts.map +1 -1
  57. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than_range.d.ts.map +1 -1
  58. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/max_satisfying.d.ts.map +1 -1
  59. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/min_satisfying.d.ts.map +1 -1
  60. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/mod.d.ts.map +1 -1
  61. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/not_equals.d.ts.map +1 -1
  62. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse.d.ts.map +1 -1
  63. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse_range.d.ts.map +1 -1
  64. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/range_intersects.d.ts.map +1 -1
  65. package/types/deps/jsr.io/@std/semver/1.0.5/satisfies.d.ts.map +1 -0
  66. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse.d.ts.map +1 -1
  67. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse_range.d.ts.map +1 -1
  68. package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/types.d.ts.map +1 -1
  69. package/types/federation/handler.d.ts.map +1 -1
  70. package/types/nodeinfo/mod.d.ts +1 -1
  71. package/types/nodeinfo/types.d.ts +1 -1
  72. package/types/sig/key.d.ts.map +1 -1
  73. package/types/vocab/vocab.d.ts.map +1 -1
  74. package/types/deps/jsr.io/@std/semver/1.0.4/_constants.d.ts.map +0 -1
  75. package/types/deps/jsr.io/@std/semver/1.0.4/satisfies.d.ts.map +0 -1
  76. /package/esm/deps/jsr.io/@std/async/{1.0.12 → 1.0.13}/delay.js +0 -0
  77. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/_types.js +0 -0
  78. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/concat.js +0 -0
  79. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/copy.js +0 -0
  80. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/ends_with.js +0 -0
  81. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/includes_needle.js +0 -0
  82. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/index_of_needle.js +0 -0
  83. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/last_index_of_needle.js +0 -0
  84. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/mod.js +0 -0
  85. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/repeat.js +0 -0
  86. /package/esm/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/starts_with.js +0 -0
  87. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/common.js +0 -0
  88. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/encoding.js +0 -0
  89. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/language.js +0 -0
  90. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/media_type.js +0 -0
  91. /package/esm/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/negotiation.js +0 -0
  92. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_shared.js +0 -0
  93. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_test_comparator_set.js +0 -0
  94. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/can_parse.js +0 -0
  95. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/compare.js +0 -0
  96. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/difference.js +0 -0
  97. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/equals.js +0 -0
  98. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format.js +0 -0
  99. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format_range.js +0 -0
  100. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_or_equal.js +0 -0
  101. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than.js +0 -0
  102. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than_range.js +0 -0
  103. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/increment.js +0 -0
  104. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_range.js +0 -0
  105. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_semver.js +0 -0
  106. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_or_equal.js +0 -0
  107. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than.js +0 -0
  108. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than_range.js +0 -0
  109. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/max_satisfying.js +0 -0
  110. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/min_satisfying.js +0 -0
  111. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/mod.js +0 -0
  112. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/not_equals.js +0 -0
  113. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse.js +0 -0
  114. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse_range.js +0 -0
  115. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/range_intersects.js +0 -0
  116. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse.js +0 -0
  117. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse_range.js +0 -0
  118. /package/esm/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/types.js +0 -0
  119. /package/types/deps/jsr.io/@std/async/{1.0.12 → 1.0.13}/delay.d.ts +0 -0
  120. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/_types.d.ts +0 -0
  121. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/copy.d.ts +0 -0
  122. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/ends_with.d.ts +0 -0
  123. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/equals.d.ts +0 -0
  124. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/includes_needle.d.ts +0 -0
  125. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/index_of_needle.d.ts +0 -0
  126. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/last_index_of_needle.d.ts +0 -0
  127. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/mod.d.ts +0 -0
  128. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/repeat.d.ts +0 -0
  129. /package/types/deps/jsr.io/@std/bytes/{1.0.5 → 1.0.6}/starts_with.d.ts +0 -0
  130. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/common.d.ts +0 -0
  131. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/encoding.d.ts +0 -0
  132. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/language.d.ts +0 -0
  133. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/_negotiation/media_type.d.ts +0 -0
  134. /package/types/deps/jsr.io/@std/http/{1.0.13 → 1.0.18}/negotiation.d.ts +0 -0
  135. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_shared.d.ts +0 -0
  136. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/_test_comparator_set.d.ts +0 -0
  137. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/can_parse.d.ts +0 -0
  138. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/compare.d.ts +0 -0
  139. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/difference.d.ts +0 -0
  140. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/equals.d.ts +0 -0
  141. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format.d.ts +0 -0
  142. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/format_range.d.ts +0 -0
  143. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_or_equal.d.ts +0 -0
  144. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than.d.ts +0 -0
  145. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/greater_than_range.d.ts +0 -0
  146. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/increment.d.ts +0 -0
  147. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_range.d.ts +0 -0
  148. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/is_semver.d.ts +0 -0
  149. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_or_equal.d.ts +0 -0
  150. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than.d.ts +0 -0
  151. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/less_than_range.d.ts +0 -0
  152. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/max_satisfying.d.ts +0 -0
  153. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/min_satisfying.d.ts +0 -0
  154. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/mod.d.ts +0 -0
  155. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/not_equals.d.ts +0 -0
  156. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse.d.ts +0 -0
  157. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/parse_range.d.ts +0 -0
  158. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/range_intersects.d.ts +0 -0
  159. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/satisfies.d.ts +0 -0
  160. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse.d.ts +0 -0
  161. /package/types/deps/jsr.io/@std/semver/{1.0.4 → 1.0.5}/try_parse_range.d.ts +0 -0
  162. /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,31 @@
3
3
  Fedify changelog
4
4
  ================
5
5
 
6
+ Version 1.3.19
7
+ --------------
8
+
9
+ Released on June 30, 2025.
10
+
11
+ - Fixed JSON-LD serialization of the `Question.voters` property to correctly
12
+ serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
13
+ typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
14
+ "@value":123}`).
15
+
16
+
17
+ Version 1.3.18
18
+ --------------
19
+
20
+ Released on May 16, 2025.
21
+
22
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
23
+ caused a `500 Internal Server Error` when the received activity had
24
+ an invalid JSON-LD syntax. Now it logs the error and responds with
25
+ a `400 Bad Request` error instead. [[#232]]
26
+
27
+ - The `exportJwk()` function now populates the `alg` property of a returned
28
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
29
+
30
+
6
31
  Version 1.3.17
7
32
  --------------
8
33
 
@@ -343,6 +368,31 @@ Released on November 30, 2024.
343
368
  [#193]: https://github.com/fedify-dev/fedify/issues/193
344
369
 
345
370
 
371
+ Version 1.2.23
372
+ --------------
373
+
374
+ Released on June 30, 2025.
375
+
376
+ - Fixed JSON-LD serialization of the `Question.voters` property to correctly
377
+ serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
378
+ typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
379
+ "@value":123}`).
380
+
381
+
382
+ Version 1.2.22
383
+ --------------
384
+
385
+ Released on May 16, 2025.
386
+
387
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
388
+ caused a `500 Internal Server Error` when the received activity had
389
+ an invalid JSON-LD syntax. Now it logs the error and responds with
390
+ a `400 Bad Request` error instead. [[#232]]
391
+
392
+ - The `exportJwk()` function now populates the `alg` property of a returned
393
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
394
+
395
+
346
396
  Version 1.2.21
347
397
  --------------
348
398
 
@@ -731,6 +781,31 @@ Released on October 31, 2024.
731
781
  [#118]: https://github.com/fedify-dev/fedify/issues/118
732
782
 
733
783
 
784
+ Version 1.1.23
785
+ --------------
786
+
787
+ Released on June 30, 2025.
788
+
789
+ - Fixed JSON-LD serialization of the `Question.voters` property to correctly
790
+ serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
791
+ typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
792
+ "@value":123}`).
793
+
794
+
795
+ Version 1.1.22
796
+ --------------
797
+
798
+ Released on May 16, 2025.
799
+
800
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
801
+ caused a `500 Internal Server Error` when the received activity had
802
+ an invalid JSON-LD syntax. Now it logs the error and responds with
803
+ a `400 Bad Request` error instead. [[#232]]
804
+
805
+ - The `exportJwk()` function now populates the `alg` property of a returned
806
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
807
+
808
+
734
809
  Version 1.1.21
735
810
  --------------
736
811
 
@@ -1160,6 +1235,33 @@ Released on October 20, 2024.
1160
1235
  [#150]: https://github.com/fedify-dev/fedify/issues/150
1161
1236
 
1162
1237
 
1238
+ Version 1.0.26
1239
+ --------------
1240
+
1241
+ Released on June 30, 2025.
1242
+
1243
+ - Fixed JSON-LD serialization of the `Question.voters` property to correctly
1244
+ serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
1245
+ typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
1246
+ "@value":123}`).
1247
+
1248
+
1249
+ Version 1.0.25
1250
+ --------------
1251
+
1252
+ Released on May 16, 2025.
1253
+
1254
+ - Fixed a bug where inbox handler had thrown a `jsonld.SyntaxError` which
1255
+ caused a `500 Internal Server Error` when the received activity had
1256
+ an invalid JSON-LD syntax. Now it logs the error and responds with
1257
+ a `400 Bad Request` error instead. [[#232]]
1258
+
1259
+ - The `exportJwk()` function now populates the `alg` property of a returned
1260
+ `JsonWebKey` object with `"Ed25519"` if the input key is an Ed25519 key.
1261
+
1262
+ [#232]: https://github.com/fedify-dev/fedify/issues/232
1263
+
1264
+
1163
1265
  Version 1.0.24
1164
1266
  --------------
1165
1267
 
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "@fedify/fedify",
3
- "version": "1.3.17",
3
+ "version": "1.3.19",
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.18/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.
@@ -16,7 +16,9 @@ defaultContext:
16
16
  misskey: "https://misskey-hub.net/ns#"
17
17
  fedibird: "http://fedibird.com/ns#"
18
18
  sensitive: "as:sensitive"
19
- votersCount: "toot:votersCount"
19
+ votersCount:
20
+ "@id": "toot:votersCount"
21
+ "@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
20
22
  Emoji: "toot:Emoji"
21
23
  Hashtag: "as:Hashtag"
22
24
  quoteUrl: "as:quoteUrl"
@@ -13,7 +13,9 @@ defaultContext:
13
13
  misskey: "https://misskey-hub.net/ns#"
14
14
  fedibird: "http://fedibird.com/ns#"
15
15
  sensitive: "as:sensitive"
16
- votersCount: "toot:votersCount"
16
+ votersCount:
17
+ "@id": "toot:votersCount"
18
+ "@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
17
19
  Emoji: "toot:Emoji"
18
20
  Hashtag: "as:Hashtag"
19
21
  ChatMessage: "http://litepub.social/ns#ChatMessage"
@@ -15,7 +15,9 @@ defaultContext:
15
15
  misskey: "https://misskey-hub.net/ns#"
16
16
  fedibird: "http://fedibird.com/ns#"
17
17
  sensitive: "as:sensitive"
18
- votersCount: "toot:votersCount"
18
+ votersCount:
19
+ "@id": "toot:votersCount"
20
+ "@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
19
21
  Emoji: "toot:Emoji"
20
22
  Hashtag: "as:Hashtag"
21
23
  ChatMessage: "http://litepub.social/ns#ChatMessage"
@@ -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";
@@ -14,85 +14,87 @@ description: |
14
14
  used to express possible answers, but a Question object *must not* have both
15
15
  properties.
16
16
  defaultContext:
17
- - "https://w3id.org/identity/v1"
18
- - "https://www.w3.org/ns/activitystreams"
19
- - "https://w3id.org/security/data-integrity/v1"
20
- - toot: "http://joinmastodon.org/ns#"
21
- misskey: "https://misskey-hub.net/ns#"
22
- fedibird: "http://fedibird.com/ns#"
23
- sensitive: "as:sensitive"
24
- votersCount: "toot:votersCount"
25
- Emoji: "toot:Emoji"
26
- Hashtag: "as:Hashtag"
27
- quoteUrl: "as:quoteUrl"
28
- _misskey_quote: "misskey:_misskey_quote"
29
- quoteUri: "fedibird:quoteUri"
17
+ - "https://w3id.org/identity/v1"
18
+ - "https://www.w3.org/ns/activitystreams"
19
+ - "https://w3id.org/security/data-integrity/v1"
20
+ - toot: "http://joinmastodon.org/ns#"
21
+ misskey: "https://misskey-hub.net/ns#"
22
+ fedibird: "http://fedibird.com/ns#"
23
+ sensitive: "as:sensitive"
24
+ votersCount:
25
+ "@id": "toot:votersCount"
26
+ "@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
27
+ Emoji: "toot:Emoji"
28
+ Hashtag: "as:Hashtag"
29
+ quoteUrl: "as:quoteUrl"
30
+ _misskey_quote: "misskey:_misskey_quote"
31
+ quoteUri: "fedibird:quoteUri"
30
32
 
31
33
  properties:
32
- - pluralName: exclusiveOptions
33
- singularName: exclusiveOption
34
- singularAccessor: false
35
- compactName: oneOf
36
- uri: "https://www.w3.org/ns/activitystreams#oneOf"
37
- description: |
38
- Identifies an exclusive option for a Question. Use of `exclusiveOptions`
39
- implies that the Question can have only a single answer. To indicate that
40
- a Question can have multiple answers, use `inclusiveOptions`.
41
- range:
42
- - "https://www.w3.org/ns/activitystreams#Object"
34
+ - pluralName: exclusiveOptions
35
+ singularName: exclusiveOption
36
+ singularAccessor: false
37
+ compactName: oneOf
38
+ uri: "https://www.w3.org/ns/activitystreams#oneOf"
39
+ description: |
40
+ Identifies an exclusive option for a Question. Use of `exclusiveOptions`
41
+ implies that the Question can have only a single answer. To indicate that
42
+ a Question can have multiple answers, use `inclusiveOptions`.
43
+ range:
44
+ - "https://www.w3.org/ns/activitystreams#Object"
43
45
 
44
- - pluralName: inclusiveOptions
45
- singularName: inclusiveOption
46
- singularAccessor: false
47
- compactName: anyOf
48
- uri: "https://www.w3.org/ns/activitystreams#anyOf"
49
- description: |
50
- Identifies an inclusive option for a Question. Use of `inclusiveOptions`
51
- implies that the Question can have multiple answers. To indicate that
52
- a Question can have only one answer, use `exclusiveOptions`.
53
- range:
54
- - "https://www.w3.org/ns/activitystreams#Object"
46
+ - pluralName: inclusiveOptions
47
+ singularName: inclusiveOption
48
+ singularAccessor: false
49
+ compactName: anyOf
50
+ uri: "https://www.w3.org/ns/activitystreams#anyOf"
51
+ description: |
52
+ Identifies an inclusive option for a Question. Use of `inclusiveOptions`
53
+ implies that the Question can have multiple answers. To indicate that
54
+ a Question can have only one answer, use `exclusiveOptions`.
55
+ range:
56
+ - "https://www.w3.org/ns/activitystreams#Object"
55
57
 
56
- - singularName: closed
57
- functional: true
58
- compactName: closed
59
- uri: "https://www.w3.org/ns/activitystreams#closed"
60
- description: |
61
- Indicates that a question has been closed, and answers are no longer
62
- accepted.
63
- range:
64
- - "http://www.w3.org/2001/XMLSchema#dateTime"
65
- - "http://www.w3.org/2001/XMLSchema#boolean"
58
+ - singularName: closed
59
+ functional: true
60
+ compactName: closed
61
+ uri: "https://www.w3.org/ns/activitystreams#closed"
62
+ description: |
63
+ Indicates that a question has been closed, and answers are no longer
64
+ accepted.
65
+ range:
66
+ - "http://www.w3.org/2001/XMLSchema#dateTime"
67
+ - "http://www.w3.org/2001/XMLSchema#boolean"
66
68
 
67
- - singularName: voters
68
- functional: true
69
- compactName: votersCount
70
- uri: "http://joinmastodon.org/ns#votersCount"
71
- description: |
72
- How many people have voted in the poll. Distinct from how many votes have
73
- been cast (in the case of multiple-choice polls).
74
- range:
75
- - "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
69
+ - singularName: voters
70
+ functional: true
71
+ compactName: votersCount
72
+ uri: "http://joinmastodon.org/ns#votersCount"
73
+ description: |
74
+ How many people have voted in the poll. Distinct from how many votes have
75
+ been cast (in the case of multiple-choice polls).
76
+ range:
77
+ - "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
76
78
 
77
- - singularName: quoteUrl
78
- functional: true
79
- compactName: quoteUrl
80
- uri: "https://www.w3.org/ns/activitystreams#quoteUrl"
81
- redundantProperties:
82
- - compactName: _misskey_quote
83
- uri: "https://misskey-hub.net/ns#_misskey_quote"
84
- - compactName: quoteUri
85
- uri: "http://fedibird.com/ns#quoteUri"
86
- description: |
87
- The URI of the ActivityStreams object that this object quotes.
79
+ - singularName: quoteUrl
80
+ functional: true
81
+ compactName: quoteUrl
82
+ uri: "https://www.w3.org/ns/activitystreams#quoteUrl"
83
+ redundantProperties:
84
+ - compactName: _misskey_quote
85
+ uri: "https://misskey-hub.net/ns#_misskey_quote"
86
+ - compactName: quoteUri
87
+ uri: "http://fedibird.com/ns#quoteUri"
88
+ description: |
89
+ The URI of the ActivityStreams object that this object quotes.
88
90
 
89
- This property sets three JSON-LD properties at once under the hood:
91
+ This property sets three JSON-LD properties at once under the hood:
90
92
 
91
- 1. https://www.w3.org/ns/activitystreams#quoteUrl
92
- 2. https://misskey-hub.net/ns#_misskey_quote
93
- 3. http://fedibird.com/ns#quoteUri
93
+ 1. https://www.w3.org/ns/activitystreams#quoteUrl
94
+ 2. https://misskey-hub.net/ns#_misskey_quote
95
+ 3. http://fedibird.com/ns#quoteUri
94
96
 
95
- When a JSON-LD object is parsed, this property is filled with one of
96
- the values of those three properties in order.
97
- range:
98
- - "fedify:url"
97
+ When a JSON-LD object is parsed, this property is filled with one of
98
+ the values of those three properties in order.
99
+ range:
100
+ - "fedify:url"
@@ -37,7 +37,9 @@ defaultContext:
37
37
  suspended: "toot:suspended"
38
38
  memorial: "toot:memorial"
39
39
  indexable: "toot:indexable"
40
- votersCount: "toot:votersCount"
40
+ votersCount:
41
+ "@id": "toot:votersCount"
42
+ "@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
41
43
  Emoji: "toot:Emoji"
42
44
  Hashtag: "as:Hashtag"
43
45
  schema: "http://schema.org#"