@fedify/fedify 0.5.0-dev.88

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.

Potentially problematic release.


This version of @fedify/fedify might be problematic. Click here for more details.

Files changed (496) hide show
  1. package/CHANGES.md +239 -0
  2. package/LICENSE +661 -0
  3. package/README.md +96 -0
  4. package/esm/_dnt.shims.d.ts +11 -0
  5. package/esm/_dnt.shims.d.ts.map +1 -0
  6. package/esm/_dnt.shims.js +67 -0
  7. package/esm/_dnt.test_polyfills.d.ts.map +1 -0
  8. package/esm/_dnt.test_shims.d.ts.map +1 -0
  9. package/esm/codegen/fs.d.ts.map +1 -0
  10. package/esm/codegen/schema.d.ts.map +1 -0
  11. package/esm/codegen/schema.yaml +194 -0
  12. package/esm/codegen/type.d.ts.map +1 -0
  13. package/esm/deps/crux.land/api/get/2KNRVU.d.ts.map +1 -0
  14. package/esm/deps/deno.land/x/mock_fetch@0.3.0/mod.d.ts.map +1 -0
  15. package/esm/deps/jsr.io/@david/which-runtime/0.2.0/mod.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/mod.d.ts.map +1 -0
  17. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/collections.d.ts.map +1 -0
  18. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/concat.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/drop.d.ts.map +1 -0
  20. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/filter.d.ts.map +1 -0
  21. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/fold.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/infinite.d.ts.map +1 -0
  23. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/map.d.ts.map +1 -0
  24. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/mod.d.ts.map +1 -0
  25. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/range.d.ts.map +1 -0
  26. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/take.d.ts.map +1 -0
  27. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/tee.d.ts.map +1 -0
  28. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/testing.d.ts.map +1 -0
  29. package/esm/deps/jsr.io/@hongminhee/aitertools/0.6.0/src/unique.d.ts.map +1 -0
  30. package/esm/deps/jsr.io/@std/assert/0.220.1/_constants.d.ts.map +1 -0
  31. package/esm/deps/jsr.io/@std/assert/0.220.1/_diff.d.ts.map +1 -0
  32. package/esm/deps/jsr.io/@std/assert/0.220.1/_format.d.ts.map +1 -0
  33. package/esm/deps/jsr.io/@std/assert/0.220.1/assert.d.ts.map +1 -0
  34. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_almost_equals.d.ts.map +1 -0
  35. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_array_includes.d.ts.map +1 -0
  36. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_equals.d.ts.map +1 -0
  37. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_exists.d.ts.map +1 -0
  38. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_false.d.ts.map +1 -0
  39. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_greater.d.ts.map +1 -0
  40. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_greater_or_equal.d.ts.map +1 -0
  41. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_instance_of.d.ts.map +1 -0
  42. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_is_error.d.ts.map +1 -0
  43. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_less.d.ts.map +1 -0
  44. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_less_or_equal.d.ts.map +1 -0
  45. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_match.d.ts.map +1 -0
  46. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_not_equals.d.ts.map +1 -0
  47. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_not_instance_of.d.ts.map +1 -0
  48. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_not_match.d.ts.map +1 -0
  49. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_not_strict_equals.d.ts.map +1 -0
  50. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_object_match.d.ts.map +1 -0
  51. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_rejects.d.ts.map +1 -0
  52. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_strict_equals.d.ts.map +1 -0
  53. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_string_includes.d.ts.map +1 -0
  54. package/esm/deps/jsr.io/@std/assert/0.220.1/assert_throws.d.ts.map +1 -0
  55. package/esm/deps/jsr.io/@std/assert/0.220.1/assertion_error.d.ts.map +1 -0
  56. package/esm/deps/jsr.io/@std/assert/0.220.1/equal.d.ts.map +1 -0
  57. package/esm/deps/jsr.io/@std/assert/0.220.1/fail.d.ts.map +1 -0
  58. package/esm/deps/jsr.io/@std/assert/0.220.1/mod.d.ts.map +1 -0
  59. package/esm/deps/jsr.io/@std/assert/0.220.1/unimplemented.d.ts.map +1 -0
  60. package/esm/deps/jsr.io/@std/assert/0.220.1/unreachable.d.ts.map +1 -0
  61. package/esm/deps/jsr.io/@std/bytes/0.220.1/concat.d.ts +14 -0
  62. package/esm/deps/jsr.io/@std/bytes/0.220.1/concat.d.ts.map +1 -0
  63. package/esm/deps/jsr.io/@std/bytes/0.220.1/concat.js +27 -0
  64. package/esm/deps/jsr.io/@std/bytes/0.220.1/copy.d.ts +28 -0
  65. package/esm/deps/jsr.io/@std/bytes/0.220.1/copy.d.ts.map +1 -0
  66. package/esm/deps/jsr.io/@std/bytes/0.220.1/copy.js +37 -0
  67. package/esm/deps/jsr.io/@std/bytes/0.220.1/ends_with.d.ts +14 -0
  68. package/esm/deps/jsr.io/@std/bytes/0.220.1/ends_with.d.ts.map +1 -0
  69. package/esm/deps/jsr.io/@std/bytes/0.220.1/ends_with.js +23 -0
  70. package/esm/deps/jsr.io/@std/bytes/0.220.1/equals.d.ts +6 -0
  71. package/esm/deps/jsr.io/@std/bytes/0.220.1/equals.d.ts.map +1 -0
  72. package/esm/deps/jsr.io/@std/bytes/0.220.1/equals.js +44 -0
  73. package/esm/deps/jsr.io/@std/bytes/0.220.1/includes_needle.d.ts +17 -0
  74. package/esm/deps/jsr.io/@std/bytes/0.220.1/includes_needle.d.ts.map +1 -0
  75. package/esm/deps/jsr.io/@std/bytes/0.220.1/includes_needle.js +21 -0
  76. package/esm/deps/jsr.io/@std/bytes/0.220.1/index_of_needle.d.ts +18 -0
  77. package/esm/deps/jsr.io/@std/bytes/0.220.1/index_of_needle.d.ts.map +1 -0
  78. package/esm/deps/jsr.io/@std/bytes/0.220.1/index_of_needle.js +45 -0
  79. package/esm/deps/jsr.io/@std/bytes/0.220.1/last_index_of_needle.d.ts +18 -0
  80. package/esm/deps/jsr.io/@std/bytes/0.220.1/last_index_of_needle.d.ts.map +1 -0
  81. package/esm/deps/jsr.io/@std/bytes/0.220.1/last_index_of_needle.js +45 -0
  82. package/esm/deps/jsr.io/@std/bytes/0.220.1/mod.d.ts +24 -0
  83. package/esm/deps/jsr.io/@std/bytes/0.220.1/mod.d.ts.map +1 -0
  84. package/esm/deps/jsr.io/@std/bytes/0.220.1/mod.js +25 -0
  85. package/esm/deps/jsr.io/@std/bytes/0.220.1/repeat.d.ts +15 -0
  86. package/esm/deps/jsr.io/@std/bytes/0.220.1/repeat.d.ts.map +1 -0
  87. package/esm/deps/jsr.io/@std/bytes/0.220.1/repeat.js +33 -0
  88. package/esm/deps/jsr.io/@std/bytes/0.220.1/starts_with.d.ts +14 -0
  89. package/esm/deps/jsr.io/@std/bytes/0.220.1/starts_with.d.ts.map +1 -0
  90. package/esm/deps/jsr.io/@std/bytes/0.220.1/starts_with.js +21 -0
  91. package/esm/deps/jsr.io/@std/encoding/0.220.1/_util.d.ts +2 -0
  92. package/esm/deps/jsr.io/@std/encoding/0.220.1/_util.d.ts.map +1 -0
  93. package/esm/deps/jsr.io/@std/encoding/0.220.1/_util.js +26 -0
  94. package/esm/deps/jsr.io/@std/encoding/0.220.1/base64.d.ts +27 -0
  95. package/esm/deps/jsr.io/@std/encoding/0.220.1/base64.d.ts.map +1 -0
  96. package/esm/deps/jsr.io/@std/encoding/0.220.1/base64.js +141 -0
  97. package/esm/deps/jsr.io/@std/fmt/0.220.1/colors.d.ts.map +1 -0
  98. package/esm/deps/jsr.io/@std/fs/0.220.1/_get_file_info_type.d.ts.map +1 -0
  99. package/esm/deps/jsr.io/@std/fs/0.220.1/_to_path_string.d.ts.map +1 -0
  100. package/esm/deps/jsr.io/@std/fs/0.220.1/ensure_dir.d.ts.map +1 -0
  101. package/esm/deps/jsr.io/@std/fs/0.220.1/ensure_file.d.ts.map +1 -0
  102. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/common.d.ts +38 -0
  103. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/common.d.ts.map +1 -0
  104. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/common.js +40 -0
  105. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/encoding.d.ts +34 -0
  106. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/encoding.d.ts.map +1 -0
  107. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/encoding.js +121 -0
  108. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/language.d.ts +31 -0
  109. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/language.d.ts.map +1 -0
  110. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/language.js +113 -0
  111. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/media_type.d.ts +31 -0
  112. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/media_type.d.ts.map +1 -0
  113. package/esm/deps/jsr.io/@std/http/0.220.1/_negotiation/media_type.js +140 -0
  114. package/esm/deps/jsr.io/@std/http/0.220.1/negotiation.d.ts +128 -0
  115. package/esm/deps/jsr.io/@std/http/0.220.1/negotiation.d.ts.map +1 -0
  116. package/esm/deps/jsr.io/@std/http/0.220.1/negotiation.js +37 -0
  117. package/esm/deps/jsr.io/@std/path/0.220.1/_common/assert_path.d.ts.map +1 -0
  118. package/esm/deps/jsr.io/@std/path/0.220.1/_common/basename.d.ts.map +1 -0
  119. package/esm/deps/jsr.io/@std/path/0.220.1/_common/common.d.ts.map +1 -0
  120. package/esm/deps/jsr.io/@std/path/0.220.1/_common/constants.d.ts.map +1 -0
  121. package/esm/deps/jsr.io/@std/path/0.220.1/_common/dirname.d.ts.map +1 -0
  122. package/esm/deps/jsr.io/@std/path/0.220.1/_common/format.d.ts.map +1 -0
  123. package/esm/deps/jsr.io/@std/path/0.220.1/_common/from_file_url.d.ts.map +1 -0
  124. package/esm/deps/jsr.io/@std/path/0.220.1/_common/glob_to_reg_exp.d.ts.map +1 -0
  125. package/esm/deps/jsr.io/@std/path/0.220.1/_common/normalize.d.ts.map +1 -0
  126. package/esm/deps/jsr.io/@std/path/0.220.1/_common/normalize_string.d.ts.map +1 -0
  127. package/esm/deps/jsr.io/@std/path/0.220.1/_common/relative.d.ts.map +1 -0
  128. package/esm/deps/jsr.io/@std/path/0.220.1/_common/strip_trailing_separators.d.ts.map +1 -0
  129. package/esm/deps/jsr.io/@std/path/0.220.1/_common/to_file_url.d.ts.map +1 -0
  130. package/esm/deps/jsr.io/@std/path/0.220.1/_interface.d.ts.map +1 -0
  131. package/esm/deps/jsr.io/@std/path/0.220.1/_os.d.ts.map +1 -0
  132. package/esm/deps/jsr.io/@std/path/0.220.1/basename.d.ts.map +1 -0
  133. package/esm/deps/jsr.io/@std/path/0.220.1/common.d.ts.map +1 -0
  134. package/esm/deps/jsr.io/@std/path/0.220.1/constants.d.ts.map +1 -0
  135. package/esm/deps/jsr.io/@std/path/0.220.1/dirname.d.ts.map +1 -0
  136. package/esm/deps/jsr.io/@std/path/0.220.1/extname.d.ts.map +1 -0
  137. package/esm/deps/jsr.io/@std/path/0.220.1/format.d.ts.map +1 -0
  138. package/esm/deps/jsr.io/@std/path/0.220.1/from_file_url.d.ts.map +1 -0
  139. package/esm/deps/jsr.io/@std/path/0.220.1/glob_to_regexp.d.ts.map +1 -0
  140. package/esm/deps/jsr.io/@std/path/0.220.1/is_absolute.d.ts.map +1 -0
  141. package/esm/deps/jsr.io/@std/path/0.220.1/is_glob.d.ts.map +1 -0
  142. package/esm/deps/jsr.io/@std/path/0.220.1/join.d.ts.map +1 -0
  143. package/esm/deps/jsr.io/@std/path/0.220.1/join_globs.d.ts.map +1 -0
  144. package/esm/deps/jsr.io/@std/path/0.220.1/mod.d.ts.map +1 -0
  145. package/esm/deps/jsr.io/@std/path/0.220.1/normalize.d.ts.map +1 -0
  146. package/esm/deps/jsr.io/@std/path/0.220.1/normalize_glob.d.ts.map +1 -0
  147. package/esm/deps/jsr.io/@std/path/0.220.1/parse.d.ts.map +1 -0
  148. package/esm/deps/jsr.io/@std/path/0.220.1/posix/_util.d.ts.map +1 -0
  149. package/esm/deps/jsr.io/@std/path/0.220.1/posix/basename.d.ts.map +1 -0
  150. package/esm/deps/jsr.io/@std/path/0.220.1/posix/common.d.ts.map +1 -0
  151. package/esm/deps/jsr.io/@std/path/0.220.1/posix/constants.d.ts.map +1 -0
  152. package/esm/deps/jsr.io/@std/path/0.220.1/posix/dirname.d.ts.map +1 -0
  153. package/esm/deps/jsr.io/@std/path/0.220.1/posix/extname.d.ts.map +1 -0
  154. package/esm/deps/jsr.io/@std/path/0.220.1/posix/format.d.ts.map +1 -0
  155. package/esm/deps/jsr.io/@std/path/0.220.1/posix/from_file_url.d.ts.map +1 -0
  156. package/esm/deps/jsr.io/@std/path/0.220.1/posix/glob_to_regexp.d.ts.map +1 -0
  157. package/esm/deps/jsr.io/@std/path/0.220.1/posix/is_absolute.d.ts.map +1 -0
  158. package/esm/deps/jsr.io/@std/path/0.220.1/posix/is_glob.d.ts.map +1 -0
  159. package/esm/deps/jsr.io/@std/path/0.220.1/posix/join.d.ts.map +1 -0
  160. package/esm/deps/jsr.io/@std/path/0.220.1/posix/join_globs.d.ts.map +1 -0
  161. package/esm/deps/jsr.io/@std/path/0.220.1/posix/mod.d.ts.map +1 -0
  162. package/esm/deps/jsr.io/@std/path/0.220.1/posix/normalize.d.ts.map +1 -0
  163. package/esm/deps/jsr.io/@std/path/0.220.1/posix/normalize_glob.d.ts.map +1 -0
  164. package/esm/deps/jsr.io/@std/path/0.220.1/posix/parse.d.ts.map +1 -0
  165. package/esm/deps/jsr.io/@std/path/0.220.1/posix/relative.d.ts.map +1 -0
  166. package/esm/deps/jsr.io/@std/path/0.220.1/posix/resolve.d.ts.map +1 -0
  167. package/esm/deps/jsr.io/@std/path/0.220.1/posix/to_file_url.d.ts.map +1 -0
  168. package/esm/deps/jsr.io/@std/path/0.220.1/posix/to_namespaced_path.d.ts.map +1 -0
  169. package/esm/deps/jsr.io/@std/path/0.220.1/relative.d.ts.map +1 -0
  170. package/esm/deps/jsr.io/@std/path/0.220.1/resolve.d.ts.map +1 -0
  171. package/esm/deps/jsr.io/@std/path/0.220.1/to_file_url.d.ts.map +1 -0
  172. package/esm/deps/jsr.io/@std/path/0.220.1/to_namespaced_path.d.ts.map +1 -0
  173. package/esm/deps/jsr.io/@std/path/0.220.1/windows/_util.d.ts.map +1 -0
  174. package/esm/deps/jsr.io/@std/path/0.220.1/windows/basename.d.ts.map +1 -0
  175. package/esm/deps/jsr.io/@std/path/0.220.1/windows/common.d.ts.map +1 -0
  176. package/esm/deps/jsr.io/@std/path/0.220.1/windows/constants.d.ts.map +1 -0
  177. package/esm/deps/jsr.io/@std/path/0.220.1/windows/dirname.d.ts.map +1 -0
  178. package/esm/deps/jsr.io/@std/path/0.220.1/windows/extname.d.ts.map +1 -0
  179. package/esm/deps/jsr.io/@std/path/0.220.1/windows/format.d.ts.map +1 -0
  180. package/esm/deps/jsr.io/@std/path/0.220.1/windows/from_file_url.d.ts.map +1 -0
  181. package/esm/deps/jsr.io/@std/path/0.220.1/windows/glob_to_regexp.d.ts.map +1 -0
  182. package/esm/deps/jsr.io/@std/path/0.220.1/windows/is_absolute.d.ts.map +1 -0
  183. package/esm/deps/jsr.io/@std/path/0.220.1/windows/is_glob.d.ts.map +1 -0
  184. package/esm/deps/jsr.io/@std/path/0.220.1/windows/join.d.ts.map +1 -0
  185. package/esm/deps/jsr.io/@std/path/0.220.1/windows/join_globs.d.ts.map +1 -0
  186. package/esm/deps/jsr.io/@std/path/0.220.1/windows/mod.d.ts.map +1 -0
  187. package/esm/deps/jsr.io/@std/path/0.220.1/windows/normalize.d.ts.map +1 -0
  188. package/esm/deps/jsr.io/@std/path/0.220.1/windows/normalize_glob.d.ts.map +1 -0
  189. package/esm/deps/jsr.io/@std/path/0.220.1/windows/parse.d.ts.map +1 -0
  190. package/esm/deps/jsr.io/@std/path/0.220.1/windows/relative.d.ts.map +1 -0
  191. package/esm/deps/jsr.io/@std/path/0.220.1/windows/resolve.d.ts.map +1 -0
  192. package/esm/deps/jsr.io/@std/path/0.220.1/windows/to_file_url.d.ts.map +1 -0
  193. package/esm/deps/jsr.io/@std/path/0.220.1/windows/to_namespaced_path.d.ts.map +1 -0
  194. package/esm/deps/jsr.io/@std/semver/0.220.1/_constants.d.ts +2 -0
  195. package/esm/deps/jsr.io/@std/semver/0.220.1/_constants.d.ts.map +1 -0
  196. package/esm/deps/jsr.io/@std/semver/0.220.1/_constants.js +10 -0
  197. package/esm/deps/jsr.io/@std/semver/0.220.1/_shared.d.ts +44 -0
  198. package/esm/deps/jsr.io/@std/semver/0.220.1/_shared.d.ts.map +1 -0
  199. package/esm/deps/jsr.io/@std/semver/0.220.1/_shared.js +161 -0
  200. package/esm/deps/jsr.io/@std/semver/0.220.1/can_parse.d.ts +2 -0
  201. package/esm/deps/jsr.io/@std/semver/0.220.1/can_parse.d.ts.map +1 -0
  202. package/esm/deps/jsr.io/@std/semver/0.220.1/can_parse.js +14 -0
  203. package/esm/deps/jsr.io/@std/semver/0.220.1/compare.d.ts +11 -0
  204. package/esm/deps/jsr.io/@std/semver/0.220.1/compare.d.ts.map +1 -0
  205. package/esm/deps/jsr.io/@std/semver/0.220.1/compare.js +18 -0
  206. package/esm/deps/jsr.io/@std/semver/0.220.1/constants.d.ts +43 -0
  207. package/esm/deps/jsr.io/@std/semver/0.220.1/constants.d.ts.map +1 -0
  208. package/esm/deps/jsr.io/@std/semver/0.220.1/constants.js +73 -0
  209. package/esm/deps/jsr.io/@std/semver/0.220.1/difference.d.ts +6 -0
  210. package/esm/deps/jsr.io/@std/semver/0.220.1/difference.d.ts.map +1 -0
  211. package/esm/deps/jsr.io/@std/semver/0.220.1/difference.js +16 -0
  212. package/esm/deps/jsr.io/@std/semver/0.220.1/equals.d.ts +8 -0
  213. package/esm/deps/jsr.io/@std/semver/0.220.1/equals.d.ts.map +1 -0
  214. package/esm/deps/jsr.io/@std/semver/0.220.1/equals.js +10 -0
  215. package/esm/deps/jsr.io/@std/semver/0.220.1/format.d.ts +13 -0
  216. package/esm/deps/jsr.io/@std/semver/0.220.1/format.d.ts.map +1 -0
  217. package/esm/deps/jsr.io/@std/semver/0.220.1/format.js +36 -0
  218. package/esm/deps/jsr.io/@std/semver/0.220.1/format_range.d.ts +9 -0
  219. package/esm/deps/jsr.io/@std/semver/0.220.1/format_range.d.ts.map +1 -0
  220. package/esm/deps/jsr.io/@std/semver/0.220.1/format_range.js +16 -0
  221. package/esm/deps/jsr.io/@std/semver/0.220.1/greater_or_equal.d.ts +8 -0
  222. package/esm/deps/jsr.io/@std/semver/0.220.1/greater_or_equal.d.ts.map +1 -0
  223. package/esm/deps/jsr.io/@std/semver/0.220.1/greater_or_equal.js +9 -0
  224. package/esm/deps/jsr.io/@std/semver/0.220.1/greater_than.d.ts +8 -0
  225. package/esm/deps/jsr.io/@std/semver/0.220.1/greater_than.d.ts.map +1 -0
  226. package/esm/deps/jsr.io/@std/semver/0.220.1/greater_than.js +10 -0
  227. package/esm/deps/jsr.io/@std/semver/0.220.1/increment.d.ts +29 -0
  228. package/esm/deps/jsr.io/@std/semver/0.220.1/increment.d.ts.map +1 -0
  229. package/esm/deps/jsr.io/@std/semver/0.220.1/increment.js +160 -0
  230. package/esm/deps/jsr.io/@std/semver/0.220.1/is_range.d.ts +13 -0
  231. package/esm/deps/jsr.io/@std/semver/0.220.1/is_range.d.ts.map +1 -0
  232. package/esm/deps/jsr.io/@std/semver/0.220.1/is_range.js +28 -0
  233. package/esm/deps/jsr.io/@std/semver/0.220.1/is_semver.d.ts +18 -0
  234. package/esm/deps/jsr.io/@std/semver/0.220.1/is_semver.d.ts.map +1 -0
  235. package/esm/deps/jsr.io/@std/semver/0.220.1/is_semver.js +38 -0
  236. package/esm/deps/jsr.io/@std/semver/0.220.1/less_or_equal.d.ts +8 -0
  237. package/esm/deps/jsr.io/@std/semver/0.220.1/less_or_equal.d.ts.map +1 -0
  238. package/esm/deps/jsr.io/@std/semver/0.220.1/less_or_equal.js +9 -0
  239. package/esm/deps/jsr.io/@std/semver/0.220.1/less_than.d.ts +8 -0
  240. package/esm/deps/jsr.io/@std/semver/0.220.1/less_than.d.ts.map +1 -0
  241. package/esm/deps/jsr.io/@std/semver/0.220.1/less_than.js +9 -0
  242. package/esm/deps/jsr.io/@std/semver/0.220.1/max_satisfying.d.ts +10 -0
  243. package/esm/deps/jsr.io/@std/semver/0.220.1/max_satisfying.d.ts.map +1 -0
  244. package/esm/deps/jsr.io/@std/semver/0.220.1/max_satisfying.js +18 -0
  245. package/esm/deps/jsr.io/@std/semver/0.220.1/min_satisfying.d.ts +10 -0
  246. package/esm/deps/jsr.io/@std/semver/0.220.1/min_satisfying.d.ts.map +1 -0
  247. package/esm/deps/jsr.io/@std/semver/0.220.1/min_satisfying.js +18 -0
  248. package/esm/deps/jsr.io/@std/semver/0.220.1/mod.d.ts +291 -0
  249. package/esm/deps/jsr.io/@std/semver/0.220.1/mod.d.ts.map +1 -0
  250. package/esm/deps/jsr.io/@std/semver/0.220.1/mod.js +293 -0
  251. package/esm/deps/jsr.io/@std/semver/0.220.1/not_equals.d.ts +8 -0
  252. package/esm/deps/jsr.io/@std/semver/0.220.1/not_equals.d.ts.map +1 -0
  253. package/esm/deps/jsr.io/@std/semver/0.220.1/not_equals.js +9 -0
  254. package/esm/deps/jsr.io/@std/semver/0.220.1/parse.d.ts +9 -0
  255. package/esm/deps/jsr.io/@std/semver/0.220.1/parse.d.ts.map +1 -0
  256. package/esm/deps/jsr.io/@std/semver/0.220.1/parse.js +34 -0
  257. package/esm/deps/jsr.io/@std/semver/0.220.1/parse_range.d.ts +8 -0
  258. package/esm/deps/jsr.io/@std/semver/0.220.1/parse_range.d.ts.map +1 -0
  259. package/esm/deps/jsr.io/@std/semver/0.220.1/parse_range.js +336 -0
  260. package/esm/deps/jsr.io/@std/semver/0.220.1/range_intersects.d.ts +9 -0
  261. package/esm/deps/jsr.io/@std/semver/0.220.1/range_intersects.d.ts.map +1 -0
  262. package/esm/deps/jsr.io/@std/semver/0.220.1/range_intersects.js +72 -0
  263. package/esm/deps/jsr.io/@std/semver/0.220.1/range_max.d.ts +8 -0
  264. package/esm/deps/jsr.io/@std/semver/0.220.1/range_max.d.ts.map +1 -0
  265. package/esm/deps/jsr.io/@std/semver/0.220.1/range_max.js +58 -0
  266. package/esm/deps/jsr.io/@std/semver/0.220.1/range_min.d.ts +8 -0
  267. package/esm/deps/jsr.io/@std/semver/0.220.1/range_min.d.ts.map +1 -0
  268. package/esm/deps/jsr.io/@std/semver/0.220.1/range_min.js +49 -0
  269. package/esm/deps/jsr.io/@std/semver/0.220.1/test_range.d.ts +9 -0
  270. package/esm/deps/jsr.io/@std/semver/0.220.1/test_range.d.ts.map +1 -0
  271. package/esm/deps/jsr.io/@std/semver/0.220.1/test_range.js +69 -0
  272. package/esm/deps/jsr.io/@std/semver/0.220.1/try_parse.d.ts +8 -0
  273. package/esm/deps/jsr.io/@std/semver/0.220.1/try_parse.d.ts.map +1 -0
  274. package/esm/deps/jsr.io/@std/semver/0.220.1/try_parse.js +17 -0
  275. package/esm/deps/jsr.io/@std/semver/0.220.1/try_parse_range.d.ts +8 -0
  276. package/esm/deps/jsr.io/@std/semver/0.220.1/try_parse_range.d.ts.map +1 -0
  277. package/esm/deps/jsr.io/@std/semver/0.220.1/try_parse_range.js +17 -0
  278. package/esm/deps/jsr.io/@std/semver/0.220.1/types.d.ts +38 -0
  279. package/esm/deps/jsr.io/@std/semver/0.220.1/types.d.ts.map +1 -0
  280. package/esm/deps/jsr.io/@std/semver/0.220.1/types.js +2 -0
  281. package/esm/deps/jsr.io/@std/testing/0.220.1/snapshot.d.ts.map +1 -0
  282. package/esm/deps/jsr.io/@std/text/0.220.1/_util.d.ts.map +1 -0
  283. package/esm/deps/jsr.io/@std/text/0.220.1/case.d.ts.map +1 -0
  284. package/esm/deps/jsr.io/@std/text/0.220.1/closest_string.d.ts.map +1 -0
  285. package/esm/deps/jsr.io/@std/text/0.220.1/compare_similarity.d.ts.map +1 -0
  286. package/esm/deps/jsr.io/@std/text/0.220.1/levenshtein_distance.d.ts.map +1 -0
  287. package/esm/deps/jsr.io/@std/text/0.220.1/mod.d.ts.map +1 -0
  288. package/esm/deps/jsr.io/@std/text/0.220.1/word_similarity_sort.d.ts.map +1 -0
  289. package/esm/deps/jsr.io/@std/url/0.220.1/_strip.d.ts.map +1 -0
  290. package/esm/deps/jsr.io/@std/url/0.220.1/basename.d.ts.map +1 -0
  291. package/esm/deps/jsr.io/@std/url/0.220.1/dirname.d.ts.map +1 -0
  292. package/esm/deps/jsr.io/@std/url/0.220.1/extname.d.ts.map +1 -0
  293. package/esm/deps/jsr.io/@std/url/0.220.1/join.d.ts.map +1 -0
  294. package/esm/deps/jsr.io/@std/url/0.220.1/mod.d.ts.map +1 -0
  295. package/esm/deps/jsr.io/@std/url/0.220.1/normalize.d.ts.map +1 -0
  296. package/esm/deps/jsr.io/@std/yaml/0.220.1/_dumper/dumper.d.ts.map +1 -0
  297. package/esm/deps/jsr.io/@std/yaml/0.220.1/_dumper/dumper_state.d.ts.map +1 -0
  298. package/esm/deps/jsr.io/@std/yaml/0.220.1/_error.d.ts.map +1 -0
  299. package/esm/deps/jsr.io/@std/yaml/0.220.1/_loader/loader.d.ts.map +1 -0
  300. package/esm/deps/jsr.io/@std/yaml/0.220.1/_loader/loader_state.d.ts.map +1 -0
  301. package/esm/deps/jsr.io/@std/yaml/0.220.1/_mark.d.ts.map +1 -0
  302. package/esm/deps/jsr.io/@std/yaml/0.220.1/_state.d.ts.map +1 -0
  303. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/binary.d.ts.map +1 -0
  304. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/bool.d.ts.map +1 -0
  305. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/float.d.ts.map +1 -0
  306. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/function.d.ts.map +1 -0
  307. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/int.d.ts.map +1 -0
  308. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/map.d.ts.map +1 -0
  309. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/merge.d.ts.map +1 -0
  310. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/mod.d.ts.map +1 -0
  311. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/nil.d.ts.map +1 -0
  312. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/omap.d.ts.map +1 -0
  313. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/pairs.d.ts.map +1 -0
  314. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/regexp.d.ts.map +1 -0
  315. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/seq.d.ts.map +1 -0
  316. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/set.d.ts.map +1 -0
  317. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/str.d.ts.map +1 -0
  318. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/timestamp.d.ts.map +1 -0
  319. package/esm/deps/jsr.io/@std/yaml/0.220.1/_type/undefined.d.ts.map +1 -0
  320. package/esm/deps/jsr.io/@std/yaml/0.220.1/_utils.d.ts.map +1 -0
  321. package/esm/deps/jsr.io/@std/yaml/0.220.1/mod.d.ts.map +1 -0
  322. package/esm/deps/jsr.io/@std/yaml/0.220.1/parse.d.ts.map +1 -0
  323. package/esm/deps/jsr.io/@std/yaml/0.220.1/schema/core.d.ts.map +1 -0
  324. package/esm/deps/jsr.io/@std/yaml/0.220.1/schema/default.d.ts.map +1 -0
  325. package/esm/deps/jsr.io/@std/yaml/0.220.1/schema/extended.d.ts.map +1 -0
  326. package/esm/deps/jsr.io/@std/yaml/0.220.1/schema/failsafe.d.ts.map +1 -0
  327. package/esm/deps/jsr.io/@std/yaml/0.220.1/schema/json.d.ts.map +1 -0
  328. package/esm/deps/jsr.io/@std/yaml/0.220.1/schema/mod.d.ts.map +1 -0
  329. package/esm/deps/jsr.io/@std/yaml/0.220.1/schema.d.ts.map +1 -0
  330. package/esm/deps/jsr.io/@std/yaml/0.220.1/stringify.d.ts.map +1 -0
  331. package/esm/deps/jsr.io/@std/yaml/0.220.1/type.d.ts.map +1 -0
  332. package/esm/federation/callback.d.ts +56 -0
  333. package/esm/federation/callback.d.ts.map +1 -0
  334. package/esm/federation/callback.js +1 -0
  335. package/esm/federation/collection.d.ts +9 -0
  336. package/esm/federation/collection.d.ts.map +1 -0
  337. package/esm/federation/collection.js +1 -0
  338. package/esm/federation/context.d.ts +148 -0
  339. package/esm/federation/context.d.ts.map +1 -0
  340. package/esm/federation/context.js +1 -0
  341. package/esm/federation/handler.d.ts +83 -0
  342. package/esm/federation/handler.d.ts.map +1 -0
  343. package/esm/federation/handler.js +266 -0
  344. package/esm/federation/handler.test.d.ts.map +1 -0
  345. package/esm/federation/kv.d.ts +58 -0
  346. package/esm/federation/kv.d.ts.map +1 -0
  347. package/esm/federation/kv.js +45 -0
  348. package/esm/federation/middleware.d.ts +309 -0
  349. package/esm/federation/middleware.d.ts.map +1 -0
  350. package/esm/federation/middleware.js +626 -0
  351. package/esm/federation/middleware.test.d.ts.map +1 -0
  352. package/esm/federation/mod.d.ts +14 -0
  353. package/esm/federation/mod.d.ts.map +1 -0
  354. package/esm/federation/mod.js +13 -0
  355. package/esm/federation/mq.d.ts +42 -0
  356. package/esm/federation/mq.d.ts.map +1 -0
  357. package/esm/federation/mq.js +26 -0
  358. package/esm/federation/queue.d.ts +10 -0
  359. package/esm/federation/queue.d.ts.map +1 -0
  360. package/esm/federation/queue.js +1 -0
  361. package/esm/federation/router.d.ts +52 -0
  362. package/esm/federation/router.d.ts.map +1 -0
  363. package/esm/federation/router.js +80 -0
  364. package/esm/federation/router.test.d.ts.map +1 -0
  365. package/esm/federation/send.d.ts +60 -0
  366. package/esm/federation/send.d.ts.map +1 -0
  367. package/esm/federation/send.js +45 -0
  368. package/esm/federation/send.test.d.ts.map +1 -0
  369. package/esm/httpsig/key.d.ts +32 -0
  370. package/esm/httpsig/key.d.ts.map +1 -0
  371. package/esm/httpsig/key.js +62 -0
  372. package/esm/httpsig/key.test.d.ts.map +1 -0
  373. package/esm/httpsig/mod.d.ts +47 -0
  374. package/esm/httpsig/mod.d.ts.map +1 -0
  375. package/esm/httpsig/mod.js +193 -0
  376. package/esm/httpsig/mod.test.d.ts.map +1 -0
  377. package/esm/mod.d.ts +51 -0
  378. package/esm/mod.d.ts.map +1 -0
  379. package/esm/mod.js +50 -0
  380. package/esm/nodeinfo/handler.d.ts +33 -0
  381. package/esm/nodeinfo/handler.d.ts.map +1 -0
  382. package/esm/nodeinfo/handler.js +49 -0
  383. package/esm/nodeinfo/handler.test.d.ts.map +1 -0
  384. package/esm/nodeinfo/mod.d.ts +8 -0
  385. package/esm/nodeinfo/mod.d.ts.map +1 -0
  386. package/esm/nodeinfo/mod.js +7 -0
  387. package/esm/nodeinfo/types.d.ts +133 -0
  388. package/esm/nodeinfo/types.d.ts.map +1 -0
  389. package/esm/nodeinfo/types.js +60 -0
  390. package/esm/nodeinfo/types.test.d.ts.map +1 -0
  391. package/esm/package.json +3 -0
  392. package/esm/runtime/docloader.d.ts +104 -0
  393. package/esm/runtime/docloader.d.ts.map +1 -0
  394. package/esm/runtime/docloader.js +124 -0
  395. package/esm/runtime/docloader.test.d.ts.map +1 -0
  396. package/esm/runtime/key.d.ts +14 -0
  397. package/esm/runtime/key.d.ts.map +1 -0
  398. package/esm/runtime/key.js +24 -0
  399. package/esm/runtime/key.test.d.ts.map +1 -0
  400. package/esm/runtime/langstr.d.ts +15 -0
  401. package/esm/runtime/langstr.d.ts.map +1 -0
  402. package/esm/runtime/langstr.js +25 -0
  403. package/esm/runtime/langstr.test.d.ts.map +1 -0
  404. package/esm/runtime/mod.d.ts +10 -0
  405. package/esm/runtime/mod.d.ts.map +1 -0
  406. package/esm/runtime/mod.js +9 -0
  407. package/esm/shim/event.d.ts.map +1 -0
  408. package/esm/testing/context.d.ts.map +1 -0
  409. package/esm/testing/docloader.d.ts.map +1 -0
  410. package/esm/testing/fixtures/example.com/hong-gildong +11 -0
  411. package/esm/testing/fixtures/example.com/key +7 -0
  412. package/esm/testing/fixtures/example.com/key2 +6 -0
  413. package/esm/testing/fixtures/example.com/object +6 -0
  414. package/esm/testing/fixtures/example.com/person +22 -0
  415. package/esm/testing/fixtures/example.com/test +5 -0
  416. package/esm/testing/fixtures/example.com/users/handle +16 -0
  417. package/esm/testing/fixtures/example.com/wrong-type +3 -0
  418. package/esm/testing/fixtures/w3id.org/security/v1 +50 -0
  419. package/esm/testing/fixtures/www.w3.org/ns/activitystreams +379 -0
  420. package/esm/testing/keys.d.ts.map +1 -0
  421. package/esm/vocab/accept.yaml +11 -0
  422. package/esm/vocab/activity.yaml +42 -0
  423. package/esm/vocab/actor.d.ts +52 -0
  424. package/esm/vocab/actor.d.ts.map +1 -0
  425. package/esm/vocab/actor.js +94 -0
  426. package/esm/vocab/actor.test.d.ts.map +1 -0
  427. package/esm/vocab/add.yaml +12 -0
  428. package/esm/vocab/announce.yaml +11 -0
  429. package/esm/vocab/application.yaml +179 -0
  430. package/esm/vocab/article.yaml +8 -0
  431. package/esm/vocab/audio.yaml +8 -0
  432. package/esm/vocab/block.yaml +12 -0
  433. package/esm/vocab/collection.yaml +63 -0
  434. package/esm/vocab/collectionpage.yaml +38 -0
  435. package/esm/vocab/create.yaml +8 -0
  436. package/esm/vocab/delete.yaml +10 -0
  437. package/esm/vocab/dislike.yaml +8 -0
  438. package/esm/vocab/document.yaml +8 -0
  439. package/esm/vocab/endpoints.yaml +78 -0
  440. package/esm/vocab/event.yaml +8 -0
  441. package/esm/vocab/flag.yaml +11 -0
  442. package/esm/vocab/follow.yaml +12 -0
  443. package/esm/vocab/group.yaml +179 -0
  444. package/esm/vocab/ignore.yaml +10 -0
  445. package/esm/vocab/image.yaml +8 -0
  446. package/esm/vocab/intransitiveactivity.yaml +11 -0
  447. package/esm/vocab/key.yaml +25 -0
  448. package/esm/vocab/like.yaml +10 -0
  449. package/esm/vocab/link.yaml +92 -0
  450. package/esm/vocab/lookup.d.ts +42 -0
  451. package/esm/vocab/lookup.d.ts.map +1 -0
  452. package/esm/vocab/lookup.js +82 -0
  453. package/esm/vocab/lookup.test.d.ts.map +1 -0
  454. package/esm/vocab/mention.yaml +8 -0
  455. package/esm/vocab/mod.d.ts +55 -0
  456. package/esm/vocab/mod.d.ts.map +1 -0
  457. package/esm/vocab/mod.js +54 -0
  458. package/esm/vocab/note.yaml +10 -0
  459. package/esm/vocab/object.yaml +301 -0
  460. package/esm/vocab/orderedcollection.yaml +11 -0
  461. package/esm/vocab/orderedcollectionpage.yaml +20 -0
  462. package/esm/vocab/organization.yaml +179 -0
  463. package/esm/vocab/page.yaml +8 -0
  464. package/esm/vocab/person.yaml +179 -0
  465. package/esm/vocab/place.yaml +66 -0
  466. package/esm/vocab/profile.yaml +22 -0
  467. package/esm/vocab/reject.yaml +10 -0
  468. package/esm/vocab/relationship.yaml +46 -0
  469. package/esm/vocab/remove.yaml +10 -0
  470. package/esm/vocab/service.yaml +179 -0
  471. package/esm/vocab/undo.yaml +15 -0
  472. package/esm/vocab/update.yaml +13 -0
  473. package/esm/vocab/video.yaml +8 -0
  474. package/esm/vocab/vocab.d.ts +7191 -0
  475. package/esm/vocab/vocab.d.ts.map +1 -0
  476. package/esm/vocab/vocab.js +14279 -0
  477. package/esm/vocab/vocab.test.d.ts.map +1 -0
  478. package/esm/webfinger/handler.d.ts +29 -0
  479. package/esm/webfinger/handler.d.ts.map +1 -0
  480. package/esm/webfinger/handler.js +76 -0
  481. package/esm/webfinger/handler.test.d.ts.map +1 -0
  482. package/esm/webfinger/jrd.d.ts +52 -0
  483. package/esm/webfinger/jrd.d.ts.map +1 -0
  484. package/esm/webfinger/jrd.js +1 -0
  485. package/esm/webfinger/lookup.d.ts +9 -0
  486. package/esm/webfinger/lookup.d.ts.map +1 -0
  487. package/esm/webfinger/lookup.js +44 -0
  488. package/esm/webfinger/lookup.test.d.ts.map +1 -0
  489. package/esm/webfinger/mod.d.ts +8 -0
  490. package/esm/webfinger/mod.d.ts.map +1 -0
  491. package/esm/webfinger/mod.js +7 -0
  492. package/esm/x/fresh.d.ts +58 -0
  493. package/esm/x/fresh.d.ts.map +1 -0
  494. package/esm/x/fresh.js +77 -0
  495. package/logo.svg +187 -0
  496. package/package.json +60 -0
@@ -0,0 +1,42 @@
1
+ import type { Temporal } from "@js-temporal/polyfill";
2
+ /**
3
+ * Additional options for enqueuing a message in a queue.
4
+ */
5
+ export interface MessageQueueEnqueueOptions {
6
+ /**
7
+ * The delay before the message is enqueued. No delay by default.
8
+ */
9
+ delay?: Temporal.Duration;
10
+ }
11
+ /**
12
+ * An abstract interface for a message queue.
13
+ */
14
+ export interface MessageQueue {
15
+ /**
16
+ * Enqueues a message in the queue.
17
+ * @param message The message to enqueue.
18
+ * @param options Additional options for enqueuing the message.
19
+ */
20
+ enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
21
+ /**
22
+ * Listens for messages in the queue.
23
+ * @param handler The handler for messages in the queue.
24
+ */
25
+ listen(handler: (message: any) => Promise<void> | void): void;
26
+ }
27
+ /**
28
+ * A message queue that processes messages in the same process.
29
+ * Do not use this in production as it does not persist messages.
30
+ */
31
+ export declare class InProcessMessageQueue implements MessageQueue {
32
+ #private;
33
+ /**
34
+ * {@inheritDoc Queue.enqueue}
35
+ */
36
+ enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
37
+ /**
38
+ * {@inheritDoc Queue.listen}
39
+ */
40
+ listen(handler: (message: any) => Promise<void> | void): void;
41
+ }
42
+ //# sourceMappingURL=mq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq.d.ts","sourceRoot":"","sources":["../../src/federation/mq.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3E;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;CAC/D;AAED;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,YAAY;;IAGxD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1E;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;CAG9D"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * A message queue that processes messages in the same process.
3
+ * Do not use this in production as it does not persist messages.
4
+ */
5
+ export class InProcessMessageQueue {
6
+ #handlers = [];
7
+ /**
8
+ * {@inheritDoc Queue.enqueue}
9
+ */
10
+ enqueue(message, options) {
11
+ const delay = options?.delay == null
12
+ ? 0
13
+ : options.delay.total("millisecond");
14
+ setTimeout(() => {
15
+ for (const handler of this.#handlers)
16
+ handler(message);
17
+ }, delay);
18
+ return Promise.resolve();
19
+ }
20
+ /**
21
+ * {@inheritDoc Queue.listen}
22
+ */
23
+ listen(handler) {
24
+ this.#handlers.push(handler);
25
+ }
26
+ }
@@ -0,0 +1,10 @@
1
+ import * as dntShim from "../_dnt.shims.js";
2
+ export interface OutboxMessage {
3
+ type: "outbox";
4
+ keyId: string;
5
+ privateKey: dntShim.JsonWebKey;
6
+ activity: unknown;
7
+ inbox: string;
8
+ trial: number;
9
+ }
10
+ //# sourceMappingURL=queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/federation/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ /**
2
+ * URL router and constructor based on URI Template
3
+ * ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
4
+ */
5
+ export declare class Router {
6
+ #private;
7
+ /**
8
+ * Create a new {@link Router}.
9
+ */
10
+ constructor();
11
+ /**
12
+ * Checks if a path name exists in the router.
13
+ * @param name The name of the path.
14
+ * @returns `true` if the path name exists, otherwise `false`.
15
+ */
16
+ has(name: string): boolean;
17
+ /**
18
+ * Adds a new path rule to the router.
19
+ * @param template The path pattern.
20
+ * @param name The name of the path.
21
+ * @returns The names of the variables in the path pattern.
22
+ */
23
+ add(template: string, name: string): Set<string>;
24
+ /**
25
+ * Resolves a path name and values from a URL, if any match.
26
+ * @param url The URL to resolve.
27
+ * @returns The name of the path and its values, if any match. Otherwise,
28
+ * `null`.
29
+ */
30
+ route(url: string): {
31
+ name: string;
32
+ values: Record<string, string>;
33
+ } | null;
34
+ /**
35
+ * Constructs a URL/path from a path name and values.
36
+ * @param name The name of the path.
37
+ * @param values The values to expand the path with.
38
+ * @returns The URL/path, if the name exists. Otherwise, `null`.
39
+ */
40
+ build(name: string, values: Record<string, string>): string | null;
41
+ }
42
+ /**
43
+ * An error thrown by the {@link Router}.
44
+ */
45
+ export declare class RouterError extends Error {
46
+ /**
47
+ * Create a new {@link RouterError}.
48
+ * @param message The error message.
49
+ */
50
+ constructor(message: string);
51
+ }
52
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/federation/router.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,qBAAa,MAAM;;IAIjB;;OAEG;;IAMH;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;;;;OAKG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAShD;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI;IAS3E;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI;CAMnE;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC;;;OAGG;gBACS,OAAO,EAAE,MAAM;CAI5B"}
@@ -0,0 +1,80 @@
1
+ // @ts-ignore TS7016
2
+ import { Router as InnerRouter } from "uri-template-router";
3
+ import { parseTemplate } from "url-template";
4
+ /**
5
+ * URL router and constructor based on URI Template
6
+ * ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
7
+ */
8
+ export class Router {
9
+ #router;
10
+ #templates;
11
+ /**
12
+ * Create a new {@link Router}.
13
+ */
14
+ constructor() {
15
+ this.#router = new InnerRouter();
16
+ this.#templates = {};
17
+ }
18
+ /**
19
+ * Checks if a path name exists in the router.
20
+ * @param name The name of the path.
21
+ * @returns `true` if the path name exists, otherwise `false`.
22
+ */
23
+ has(name) {
24
+ return name in this.#templates;
25
+ }
26
+ /**
27
+ * Adds a new path rule to the router.
28
+ * @param template The path pattern.
29
+ * @param name The name of the path.
30
+ * @returns The names of the variables in the path pattern.
31
+ */
32
+ add(template, name) {
33
+ if (!template.startsWith("/")) {
34
+ throw new RouterError("Path must start with a slash.");
35
+ }
36
+ const rule = this.#router.addTemplate(template, {}, name);
37
+ this.#templates[name] = parseTemplate(template);
38
+ return new Set(rule.variables.map((v) => v.varname));
39
+ }
40
+ /**
41
+ * Resolves a path name and values from a URL, if any match.
42
+ * @param url The URL to resolve.
43
+ * @returns The name of the path and its values, if any match. Otherwise,
44
+ * `null`.
45
+ */
46
+ route(url) {
47
+ const match = this.#router.resolveURI(url);
48
+ if (match == null)
49
+ return null;
50
+ return {
51
+ name: match.matchValue,
52
+ values: match.params,
53
+ };
54
+ }
55
+ /**
56
+ * Constructs a URL/path from a path name and values.
57
+ * @param name The name of the path.
58
+ * @param values The values to expand the path with.
59
+ * @returns The URL/path, if the name exists. Otherwise, `null`.
60
+ */
61
+ build(name, values) {
62
+ if (name in this.#templates) {
63
+ return this.#templates[name].expand(values);
64
+ }
65
+ return null;
66
+ }
67
+ }
68
+ /**
69
+ * An error thrown by the {@link Router}.
70
+ */
71
+ export class RouterError extends Error {
72
+ /**
73
+ * Create a new {@link RouterError}.
74
+ * @param message The error message.
75
+ */
76
+ constructor(message) {
77
+ super(message);
78
+ this.name = "RouterError";
79
+ }
80
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.test.d.ts","sourceRoot":"","sources":["../../src/federation/router.test.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC"}
@@ -0,0 +1,60 @@
1
+ /// <reference types="node" />
2
+ import * as dntShim from "../_dnt.shims.js";
3
+ import type { DocumentLoader } from "../runtime/docloader.js";
4
+ import type { Actor } from "../vocab/actor.js";
5
+ import type { Activity } from "../vocab/mod.js";
6
+ /**
7
+ * Parameters for {@link extractInboxes}.
8
+ */
9
+ export interface ExtractInboxesParameters {
10
+ /**
11
+ * Actors to extract the inboxes from.
12
+ */
13
+ recipients: Actor[];
14
+ /**
15
+ * Whether to prefer the shared inbox over the personal inbox.
16
+ * Defaults to `false`.
17
+ */
18
+ preferSharedInbox?: boolean;
19
+ }
20
+ /**
21
+ * Extracts the inbox URLs from recipients.
22
+ * @param parameters The parameters to extract the inboxes.
23
+ * See also {@link ExtractInboxesParameters}.
24
+ * @returns The inbox URLs.
25
+ */
26
+ export declare function extractInboxes({ recipients, preferSharedInbox }: ExtractInboxesParameters): Set<URL>;
27
+ /**
28
+ * Parameters for {@link sendActivity}.
29
+ */
30
+ export interface SendActivityParameters {
31
+ /**
32
+ * The activity to send.
33
+ */
34
+ activity: Activity;
35
+ /**
36
+ * The actor's private key to sign the request.
37
+ */
38
+ privateKey: dntShim.CryptoKey;
39
+ /**
40
+ * The public key ID that corresponds to the private key.
41
+ */
42
+ keyId: URL;
43
+ /**
44
+ * The inbox URL to send the activity to.
45
+ */
46
+ inbox: URL;
47
+ /**
48
+ * The document loader to use for JSON-LD context retrieval.
49
+ */
50
+ documentLoader?: DocumentLoader;
51
+ }
52
+ /**
53
+ * Sends an {@link Activity} to an inbox.
54
+ *
55
+ * @param parameters The parameters for sending the activity.
56
+ * See also {@link SendActivityParameters}.
57
+ * @throws {Error} If the activity fails to send.
58
+ */
59
+ export declare function sendActivity({ activity, privateKey, keyId, inbox, documentLoader, }: SendActivityParameters): Promise<void>;
60
+ //# sourceMappingURL=send.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/federation/send.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,UAAU,EAAE,KAAK,EAAE,CAAC;IAEpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,wBAAwB,GAC1D,GAAG,CAAC,GAAG,CAAC,CASV;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC;IAE9B;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC;IAEX;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC;IAEX;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,EACE,QAAQ,EACR,UAAU,EACV,KAAK,EACL,KAAK,EACL,cAAc,GACf,EAAE,sBAAsB,GACxB,OAAO,CAAC,IAAI,CAAC,CAuBf"}
@@ -0,0 +1,45 @@
1
+ import { sign } from "../httpsig/mod.js";
2
+ /**
3
+ * Extracts the inbox URLs from recipients.
4
+ * @param parameters The parameters to extract the inboxes.
5
+ * See also {@link ExtractInboxesParameters}.
6
+ * @returns The inbox URLs.
7
+ */
8
+ export function extractInboxes({ recipients, preferSharedInbox }) {
9
+ const inboxes = {};
10
+ for (const recipient of recipients) {
11
+ const inbox = preferSharedInbox
12
+ ? recipient.endpoints?.sharedInbox ?? recipient.inboxId
13
+ : recipient.inboxId;
14
+ if (inbox != null)
15
+ inboxes[inbox.href] = inbox;
16
+ }
17
+ return new Set(Object.values(inboxes));
18
+ }
19
+ /**
20
+ * Sends an {@link Activity} to an inbox.
21
+ *
22
+ * @param parameters The parameters for sending the activity.
23
+ * See also {@link SendActivityParameters}.
24
+ * @throws {Error} If the activity fails to send.
25
+ */
26
+ export async function sendActivity({ activity, privateKey, keyId, inbox, documentLoader, }) {
27
+ if (activity.actorId == null) {
28
+ throw new TypeError("The activity to send must have at least one actor property.");
29
+ }
30
+ const jsonLd = await activity.toJsonLd({ documentLoader });
31
+ let request = new Request(inbox, {
32
+ method: "POST",
33
+ headers: {
34
+ "Content-Type": "application/activity+json",
35
+ },
36
+ body: JSON.stringify(jsonLd),
37
+ });
38
+ request = await sign(request, privateKey, keyId);
39
+ const response = await fetch(request);
40
+ if (!response.ok) {
41
+ throw new Error(`Failed to send activity to ${inbox} ` +
42
+ `(${response.status} ${response.statusText}):\n` +
43
+ await response.text());
44
+ }
45
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.test.d.ts","sourceRoot":"","sources":["../../src/federation/send.test.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Checks if the given key is valid and supported. No-op if the key is valid,
3
+ * otherwise throws an error.
4
+ * @param key The key to check.
5
+ * @param type Which type of key to check. If not specified, the key can be
6
+ * either public or private.
7
+ * @throws {TypeError} If the key is invalid or unsupported.
8
+ */
9
+ import * as dntShim from "../_dnt.shims.js";
10
+ export declare function validateCryptoKey(key: dntShim.CryptoKey, type?: "public" | "private"): void;
11
+ /**
12
+ * Generates a key pair which is appropriate for Fedify.
13
+ * @returns The generated key pair.
14
+ */
15
+ export declare function generateCryptoKeyPair(): Promise<dntShim.CryptoKeyPair>;
16
+ /**
17
+ * Exports a key in JWK format.
18
+ * @param key The key to export. Either public or private key.
19
+ * @returns The exported key in JWK format. The key is suitable for
20
+ * serialization and storage.
21
+ * @throws {TypeError} If the key is invalid or unsupported.
22
+ */
23
+ export declare function exportJwk(key: dntShim.CryptoKey): Promise<dntShim.JsonWebKey>;
24
+ /**
25
+ * Imports a key from JWK format.
26
+ * @param jwk The key in JWK format.
27
+ * @param type Which type of key to import, either `"public"`" or `"private"`".
28
+ * @returns The imported key.
29
+ * @throws {TypeError} If the key is invalid or unsupported.
30
+ */
31
+ export declare function importJwk(jwk: dntShim.JsonWebKey, type: "public" | "private"): Promise<dntShim.CryptoKey>;
32
+ //# sourceMappingURL=key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/httpsig/key.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,CAAC,SAAS,EACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,GAC1B,IAAI,CAqBN;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAWtE;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAGnF;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,OAAO,CAAC,UAAU,EACvB,IAAI,EAAE,QAAQ,GAAG,SAAS,GACzB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAU5B"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Checks if the given key is valid and supported. No-op if the key is valid,
3
+ * otherwise throws an error.
4
+ * @param key The key to check.
5
+ * @param type Which type of key to check. If not specified, the key can be
6
+ * either public or private.
7
+ * @throws {TypeError} If the key is invalid or unsupported.
8
+ */
9
+ import * as dntShim from "../_dnt.shims.js";
10
+ export function validateCryptoKey(key, type) {
11
+ if (type != null && key.type !== type) {
12
+ throw new TypeError(`The key is not a ${type} key.`);
13
+ }
14
+ if (!key.extractable) {
15
+ throw new TypeError("The key is not extractable.");
16
+ }
17
+ if (key.algorithm.name != "RSASSA-PKCS1-v1_5") {
18
+ throw new TypeError("Currently only RSASSA-PKCS1-v1_5 key is supported. " +
19
+ "More algorithms will be added in the future!");
20
+ }
21
+ // @ts-ignore TS2304
22
+ const algorithm = key.algorithm;
23
+ if (algorithm.hash.name != "SHA-256") {
24
+ throw new TypeError("For compatibility with the existing Fediverse software " +
25
+ "(e.g., Mastodon), hash algorithm must be SHA-256.");
26
+ }
27
+ }
28
+ /**
29
+ * Generates a key pair which is appropriate for Fedify.
30
+ * @returns The generated key pair.
31
+ */
32
+ export function generateCryptoKeyPair() {
33
+ return dntShim.crypto.subtle.generateKey({
34
+ name: "RSASSA-PKCS1-v1_5",
35
+ modulusLength: 4096,
36
+ publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
37
+ hash: "SHA-256",
38
+ }, true, ["sign", "verify"]);
39
+ }
40
+ /**
41
+ * Exports a key in JWK format.
42
+ * @param key The key to export. Either public or private key.
43
+ * @returns The exported key in JWK format. The key is suitable for
44
+ * serialization and storage.
45
+ * @throws {TypeError} If the key is invalid or unsupported.
46
+ */
47
+ export async function exportJwk(key) {
48
+ validateCryptoKey(key);
49
+ return await dntShim.crypto.subtle.exportKey("jwk", key);
50
+ }
51
+ /**
52
+ * Imports a key from JWK format.
53
+ * @param jwk The key in JWK format.
54
+ * @param type Which type of key to import, either `"public"`" or `"private"`".
55
+ * @returns The imported key.
56
+ * @throws {TypeError} If the key is invalid or unsupported.
57
+ */
58
+ export async function importJwk(jwk, type) {
59
+ const key = await dntShim.crypto.subtle.importKey("jwk", jwk, { name: "RSASSA-PKCS1-v1_5", hash: "SHA-256" }, true, type === "public" ? ["verify"] : ["sign"]);
60
+ validateCryptoKey(key, type);
61
+ return key;
62
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key.test.d.ts","sourceRoot":"","sources":["../../src/httpsig/key.test.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC"}
@@ -0,0 +1,47 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ /**
4
+ * The implementation of the [HTTP
5
+ * Signatures](https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-12).
6
+ *
7
+ * @module
8
+ */
9
+ import * as dntShim from "../_dnt.shims.js";
10
+ import { Temporal } from "@js-temporal/polyfill";
11
+ import type { DocumentLoader } from "../runtime/docloader.js";
12
+ import { type Activity, CryptographicKey } from "../vocab/vocab.js";
13
+ export { exportJwk, generateCryptoKeyPair, importJwk } from "./key.js";
14
+ /**
15
+ * Signs a request using the given private key.
16
+ * @param request The request to sign.
17
+ * @param privateKey The private key to use for signing.
18
+ * @param keyId The key ID to use for the signature. It will be used by the
19
+ * verifier.
20
+ * @returns The signed request.
21
+ * @throws {TypeError} If the private key is invalid or unsupported.
22
+ */
23
+ export declare function sign(request: Request, privateKey: dntShim.CryptoKey, keyId: URL): Promise<Request>;
24
+ /**
25
+ * Verifies the signature of a request.
26
+ *
27
+ * Note that this function consumes the request body, so it should not be used
28
+ * if the request body is already consumed. Consuming the request body after
29
+ * calling this function is okay, since this function clones the request
30
+ * under the hood.
31
+ * @param request The request to verify.
32
+ * @param documentLoader The document loader to use for fetching the public key.
33
+ * @param currentTime The current time. If not specified, the current time is
34
+ * used. This is useful for testing.
35
+ * @returns The public key of the verified signature, or `null` if the signature
36
+ * could not be verified.
37
+ */
38
+ export declare function verify(request: Request, documentLoader: DocumentLoader, currentTime?: Temporal.Instant): Promise<CryptographicKey | null>;
39
+ /**
40
+ * Checks if the actor of the given activity owns the specified key.
41
+ * @param activity The activity to check.
42
+ * @param key The public key to check.
43
+ * @param documentLoader The document loader to use for fetching the actor.
44
+ * @returns Whether the actor is the owner of the key.
45
+ */
46
+ export declare function doesActorOwnKey(activity: Activity, key: CryptographicKey, documentLoader: DocumentLoader): Promise<boolean>;
47
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/httpsig/mod.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EACL,KAAK,QAAQ,EACb,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEvE;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CACxB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,OAAO,CAAC,SAAS,EAC7B,KAAK,EAAE,GAAG,GACT,OAAO,CAAC,OAAO,CAAC,CAuClB;AAQD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,WAAW,CAAC,EAAE,QAAQ,CAAC,OAAO,GAC7B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAyGlC;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,gBAAgB,EACrB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC,CAUlB"}