async-matrix 0.1.2 → 1.0.0

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 (341) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +131 -0
  3. data/data/matrix-spec/api/client-server/account-data.yaml +389 -0
  4. data/data/matrix-spec/api/client-server/account_deactivation.yaml +149 -0
  5. data/data/matrix-spec/api/client-server/admin.yaml +512 -0
  6. data/data/matrix-spec/api/client-server/administrative_contact.yaml +620 -0
  7. data/data/matrix-spec/api/client-server/appservice_ping.yaml +183 -0
  8. data/data/matrix-spec/api/client-server/appservice_room_directory.yaml +104 -0
  9. data/data/matrix-spec/api/client-server/authed-content-repo.yaml +590 -0
  10. data/data/matrix-spec/api/client-server/banning.yaml +177 -0
  11. data/data/matrix-spec/api/client-server/capabilities.yaml +235 -0
  12. data/data/matrix-spec/api/client-server/content-repo.yaml +887 -0
  13. data/data/matrix-spec/api/client-server/create_room.yaml +306 -0
  14. data/data/matrix-spec/api/client-server/cross_signing.yaml +300 -0
  15. data/data/matrix-spec/api/client-server/definitions/auth_data.yaml +34 -0
  16. data/data/matrix-spec/api/client-server/definitions/auth_response.yaml +62 -0
  17. data/data/matrix-spec/api/client-server/definitions/client_device.yaml +44 -0
  18. data/data/matrix-spec/api/client-server/definitions/client_event.yaml +49 -0
  19. data/data/matrix-spec/api/client-server/definitions/client_event_without_room_id.yaml +147 -0
  20. data/data/matrix-spec/api/client-server/definitions/cross_signing_key.yaml +57 -0
  21. data/data/matrix-spec/api/client-server/definitions/device_keys.yaml +70 -0
  22. data/data/matrix-spec/api/client-server/definitions/errors/error.yaml +26 -0
  23. data/data/matrix-spec/api/client-server/definitions/errors/rate_limited.yaml +34 -0
  24. data/data/matrix-spec/api/client-server/definitions/event_batch.yaml +22 -0
  25. data/data/matrix-spec/api/client-server/definitions/event_filter.yaml +55 -0
  26. data/data/matrix-spec/api/client-server/definitions/invite_3pid.yaml +45 -0
  27. data/data/matrix-spec/api/client-server/definitions/key_backup_auth_data.yaml +36 -0
  28. data/data/matrix-spec/api/client-server/definitions/key_backup_data.yaml +50 -0
  29. data/data/matrix-spec/api/client-server/definitions/key_backup_session_data.yaml +57 -0
  30. data/data/matrix-spec/api/client-server/definitions/m.login.terms_params.yaml +83 -0
  31. data/data/matrix-spec/api/client-server/definitions/m.mentions.yaml +33 -0
  32. data/data/matrix-spec/api/client-server/definitions/m.oauth_params.yaml +30 -0
  33. data/data/matrix-spec/api/client-server/definitions/m.relates_to.yaml +45 -0
  34. data/data/matrix-spec/api/client-server/definitions/megolm_export_session_data.yaml +39 -0
  35. data/data/matrix-spec/api/client-server/definitions/olm_payload.yaml +88 -0
  36. data/data/matrix-spec/api/client-server/definitions/one_time_keys.yaml +27 -0
  37. data/data/matrix-spec/api/client-server/definitions/openid_token.yaml +37 -0
  38. data/data/matrix-spec/api/client-server/definitions/protocol.yaml +44 -0
  39. data/data/matrix-spec/api/client-server/definitions/public_rooms_chunk.yaml +74 -0
  40. data/data/matrix-spec/api/client-server/definitions/public_rooms_response.yaml +59 -0
  41. data/data/matrix-spec/api/client-server/definitions/push_condition.yaml +53 -0
  42. data/data/matrix-spec/api/client-server/definitions/push_rule.yaml +53 -0
  43. data/data/matrix-spec/api/client-server/definitions/push_ruleset.yaml +206 -0
  44. data/data/matrix-spec/api/client-server/definitions/recent_emoji.yaml +29 -0
  45. data/data/matrix-spec/api/client-server/definitions/request_email_validation.yaml +36 -0
  46. data/data/matrix-spec/api/client-server/definitions/request_msisdn_validation.yaml +36 -0
  47. data/data/matrix-spec/api/client-server/definitions/request_token_response.yaml +46 -0
  48. data/data/matrix-spec/api/client-server/definitions/room_event_filter.yaml +60 -0
  49. data/data/matrix-spec/api/client-server/definitions/room_key_backup.yaml +37 -0
  50. data/data/matrix-spec/api/client-server/definitions/room_summary.yaml +44 -0
  51. data/data/matrix-spec/api/client-server/definitions/security.yaml +47 -0
  52. data/data/matrix-spec/api/client-server/definitions/sso_login_flow.yaml +98 -0
  53. data/data/matrix-spec/api/client-server/definitions/state_event_batch.yaml +21 -0
  54. data/data/matrix-spec/api/client-server/definitions/sync_filter.yaml +86 -0
  55. data/data/matrix-spec/api/client-server/definitions/tag.yaml +24 -0
  56. data/data/matrix-spec/api/client-server/definitions/third_party_signed.yaml +45 -0
  57. data/data/matrix-spec/api/client-server/definitions/timeline_batch.yaml +36 -0
  58. data/data/matrix-spec/api/client-server/definitions/user_identifier.yaml +27 -0
  59. data/data/matrix-spec/api/client-server/definitions/wellknown/full.yaml +38 -0
  60. data/data/matrix-spec/api/client-server/definitions/wellknown/homeserver.yaml +25 -0
  61. data/data/matrix-spec/api/client-server/definitions/wellknown/identity_server.yaml +25 -0
  62. data/data/matrix-spec/api/client-server/device_management.yaml +314 -0
  63. data/data/matrix-spec/api/client-server/directory.yaml +318 -0
  64. data/data/matrix-spec/api/client-server/event_context.yaml +161 -0
  65. data/data/matrix-spec/api/client-server/filter.yaml +224 -0
  66. data/data/matrix-spec/api/client-server/inviting.yaml +149 -0
  67. data/data/matrix-spec/api/client-server/joining.yaml +238 -0
  68. data/data/matrix-spec/api/client-server/key_backup.yaml +993 -0
  69. data/data/matrix-spec/api/client-server/keys.yaml +482 -0
  70. data/data/matrix-spec/api/client-server/kicking.yaml +110 -0
  71. data/data/matrix-spec/api/client-server/knocking.yaml +152 -0
  72. data/data/matrix-spec/api/client-server/leaving.yaml +163 -0
  73. data/data/matrix-spec/api/client-server/list_joined_rooms.yaml +68 -0
  74. data/data/matrix-spec/api/client-server/list_public_rooms.yaml +280 -0
  75. data/data/matrix-spec/api/client-server/login.yaml +321 -0
  76. data/data/matrix-spec/api/client-server/login_token.yaml +138 -0
  77. data/data/matrix-spec/api/client-server/logout.yaml +86 -0
  78. data/data/matrix-spec/api/client-server/message_pagination.yaml +194 -0
  79. data/data/matrix-spec/api/client-server/notifications.yaml +152 -0
  80. data/data/matrix-spec/api/client-server/oauth_server_metadata.yaml +238 -0
  81. data/data/matrix-spec/api/client-server/old_sync.yaml +379 -0
  82. data/data/matrix-spec/api/client-server/openid.yaml +98 -0
  83. data/data/matrix-spec/api/client-server/password_management.yaml +246 -0
  84. data/data/matrix-spec/api/client-server/peeking_events.yaml +122 -0
  85. data/data/matrix-spec/api/client-server/policy_server.yaml +82 -0
  86. data/data/matrix-spec/api/client-server/presence.yaml +169 -0
  87. data/data/matrix-spec/api/client-server/profile.yaml +366 -0
  88. data/data/matrix-spec/api/client-server/pusher.yaml +303 -0
  89. data/data/matrix-spec/api/client-server/pushrules.yaml +633 -0
  90. data/data/matrix-spec/api/client-server/read_markers.yaml +103 -0
  91. data/data/matrix-spec/api/client-server/receipts.yaml +139 -0
  92. data/data/matrix-spec/api/client-server/redaction.yaml +116 -0
  93. data/data/matrix-spec/api/client-server/refresh.yaml +119 -0
  94. data/data/matrix-spec/api/client-server/registration.yaml +488 -0
  95. data/data/matrix-spec/api/client-server/registration_tokens.yaml +93 -0
  96. data/data/matrix-spec/api/client-server/relations.yaml +382 -0
  97. data/data/matrix-spec/api/client-server/report_content.yaml +283 -0
  98. data/data/matrix-spec/api/client-server/room_event_by_timestamp.yaml +147 -0
  99. data/data/matrix-spec/api/client-server/room_initial_sync.yaml +188 -0
  100. data/data/matrix-spec/api/client-server/room_send.yaml +130 -0
  101. data/data/matrix-spec/api/client-server/room_state.yaml +159 -0
  102. data/data/matrix-spec/api/client-server/room_summary.yaml +138 -0
  103. data/data/matrix-spec/api/client-server/room_upgrades.yaml +130 -0
  104. data/data/matrix-spec/api/client-server/rooms.yaml +380 -0
  105. data/data/matrix-spec/api/client-server/search.yaml +385 -0
  106. data/data/matrix-spec/api/client-server/space_hierarchy.yaml +237 -0
  107. data/data/matrix-spec/api/client-server/sso_login_redirect.yaml +135 -0
  108. data/data/matrix-spec/api/client-server/support.yaml +142 -0
  109. data/data/matrix-spec/api/client-server/sync.yaml +692 -0
  110. data/data/matrix-spec/api/client-server/tags.yaml +183 -0
  111. data/data/matrix-spec/api/client-server/third_party_lookup.yaml +324 -0
  112. data/data/matrix-spec/api/client-server/third_party_membership.yaml +139 -0
  113. data/data/matrix-spec/api/client-server/threads_list.yaml +167 -0
  114. data/data/matrix-spec/api/client-server/to_device.yaml +104 -0
  115. data/data/matrix-spec/api/client-server/typing.yaml +103 -0
  116. data/data/matrix-spec/api/client-server/users.yaml +136 -0
  117. data/data/matrix-spec/api/client-server/versions.yaml +108 -0
  118. data/data/matrix-spec/api/client-server/voip.yaml +93 -0
  119. data/data/matrix-spec/api/client-server/wellknown.yaml +60 -0
  120. data/data/matrix-spec/api/client-server/whoami.yaml +121 -0
  121. data/data/matrix-spec/event-schemas/examples/core/event.json +6 -0
  122. data/data/matrix-spec/event-schemas/examples/core/room_edu.json +3 -0
  123. data/data/matrix-spec/event-schemas/examples/core/room_event.json +11 -0
  124. data/data/matrix-spec/event-schemas/examples/core/state_event.json +4 -0
  125. data/data/matrix-spec/event-schemas/examples/invite_room_state.json +18 -0
  126. data/data/matrix-spec/event-schemas/examples/knock_room_state.json +18 -0
  127. data/data/matrix-spec/event-schemas/examples/m.accepted_terms.yaml +10 -0
  128. data/data/matrix-spec/event-schemas/examples/m.call.answer.yaml +21 -0
  129. data/data/matrix-spec/event-schemas/examples/m.call.candidates.yaml +16 -0
  130. data/data/matrix-spec/event-schemas/examples/m.call.hangup.yaml +10 -0
  131. data/data/matrix-spec/event-schemas/examples/m.call.invite.yaml +22 -0
  132. data/data/matrix-spec/event-schemas/examples/m.call.negotiate.yaml +22 -0
  133. data/data/matrix-spec/event-schemas/examples/m.call.reject.yaml +9 -0
  134. data/data/matrix-spec/event-schemas/examples/m.call.sdp_stream_metadata_changed.yaml +16 -0
  135. data/data/matrix-spec/event-schemas/examples/m.call.select_answer.yaml +10 -0
  136. data/data/matrix-spec/event-schemas/examples/m.direct.yaml +10 -0
  137. data/data/matrix-spec/event-schemas/examples/m.dummy.yaml +4 -0
  138. data/data/matrix-spec/event-schemas/examples/m.forwarded_room_key.yaml +14 -0
  139. data/data/matrix-spec/event-schemas/examples/m.fully_read.yaml +7 -0
  140. data/data/matrix-spec/event-schemas/examples/m.identity_server.yaml +7 -0
  141. data/data/matrix-spec/event-schemas/examples/m.ignored_user_list.yaml +9 -0
  142. data/data/matrix-spec/event-schemas/examples/m.invite_permission_config.yaml +7 -0
  143. data/data/matrix-spec/event-schemas/examples/m.key.verification.accept.yaml +12 -0
  144. data/data/matrix-spec/event-schemas/examples/m.key.verification.cancel.yaml +8 -0
  145. data/data/matrix-spec/event-schemas/examples/m.key.verification.done.yaml +6 -0
  146. data/data/matrix-spec/event-schemas/examples/m.key.verification.key.yaml +7 -0
  147. data/data/matrix-spec/event-schemas/examples/m.key.verification.mac.yaml +10 -0
  148. data/data/matrix-spec/event-schemas/examples/m.key.verification.ready.yaml +10 -0
  149. data/data/matrix-spec/event-schemas/examples/m.key.verification.request.yaml +11 -0
  150. data/data/matrix-spec/event-schemas/examples/m.key.verification.start$m.sas.v1.yaml +12 -0
  151. data/data/matrix-spec/event-schemas/examples/m.key.verification.start.yaml +8 -0
  152. data/data/matrix-spec/event-schemas/examples/m.key_backup.yaml +7 -0
  153. data/data/matrix-spec/event-schemas/examples/m.marked_unread.yaml +7 -0
  154. data/data/matrix-spec/event-schemas/examples/m.policy.rule.room.yaml +10 -0
  155. data/data/matrix-spec/event-schemas/examples/m.policy.rule.server.yaml +10 -0
  156. data/data/matrix-spec/event-schemas/examples/m.policy.rule.user.yaml +10 -0
  157. data/data/matrix-spec/event-schemas/examples/m.presence.yaml +12 -0
  158. data/data/matrix-spec/event-schemas/examples/m.push_rules.yaml +177 -0
  159. data/data/matrix-spec/event-schemas/examples/m.reaction.yaml +11 -0
  160. data/data/matrix-spec/event-schemas/examples/m.receipt.yaml +18 -0
  161. data/data/matrix-spec/event-schemas/examples/m.recent_emoji.yaml +16 -0
  162. data/data/matrix-spec/event-schemas/examples/m.room.avatar.yaml +14 -0
  163. data/data/matrix-spec/event-schemas/examples/m.room.canonical_alias.yaml +12 -0
  164. data/data/matrix-spec/event-schemas/examples/m.room.create.yaml +13 -0
  165. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$megolm.yaml +11 -0
  166. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$olm.yaml +14 -0
  167. data/data/matrix-spec/event-schemas/examples/m.room.encryption.yaml +10 -0
  168. data/data/matrix-spec/event-schemas/examples/m.room.guest_access.yaml +8 -0
  169. data/data/matrix-spec/event-schemas/examples/m.room.history_visibility.yaml +8 -0
  170. data/data/matrix-spec/event-schemas/examples/m.room.join_rules$restricted.yaml +18 -0
  171. data/data/matrix-spec/event-schemas/examples/m.room.join_rules.yaml +8 -0
  172. data/data/matrix-spec/event-schemas/examples/m.room.member$invite_room_state.yaml +15 -0
  173. data/data/matrix-spec/event-schemas/examples/m.room.member$join_authorised_via_users_server.yaml +12 -0
  174. data/data/matrix-spec/event-schemas/examples/m.room.member$knock_room_state.yaml +15 -0
  175. data/data/matrix-spec/event-schemas/examples/m.room.member$third_party_invite.yaml +20 -0
  176. data/data/matrix-spec/event-schemas/examples/m.room.member.yaml +12 -0
  177. data/data/matrix-spec/event-schemas/examples/m.room.message$m.audio.yaml +14 -0
  178. data/data/matrix-spec/event-schemas/examples/m.room.message$m.emote.yaml +10 -0
  179. data/data/matrix-spec/event-schemas/examples/m.room.message$m.file.yaml +14 -0
  180. data/data/matrix-spec/event-schemas/examples/m.room.message$m.image.yaml +16 -0
  181. data/data/matrix-spec/event-schemas/examples/m.room.message$m.key.verification.request.yaml +19 -0
  182. data/data/matrix-spec/event-schemas/examples/m.room.message$m.location.yaml +18 -0
  183. data/data/matrix-spec/event-schemas/examples/m.room.message$m.notice.yaml +10 -0
  184. data/data/matrix-spec/event-schemas/examples/m.room.message$m.server_notice.yaml +11 -0
  185. data/data/matrix-spec/event-schemas/examples/m.room.message$m.text.yaml +10 -0
  186. data/data/matrix-spec/event-schemas/examples/m.room.message$m.video.yaml +23 -0
  187. data/data/matrix-spec/event-schemas/examples/m.room.name.yaml +8 -0
  188. data/data/matrix-spec/event-schemas/examples/m.room.pinned_events.yaml +8 -0
  189. data/data/matrix-spec/event-schemas/examples/m.room.policy.yaml +11 -0
  190. data/data/matrix-spec/event-schemas/examples/m.room.power_levels.yaml +24 -0
  191. data/data/matrix-spec/event-schemas/examples/m.room.redaction.yaml +8 -0
  192. data/data/matrix-spec/event-schemas/examples/m.room.server_acl.yaml +10 -0
  193. data/data/matrix-spec/event-schemas/examples/m.room.third_party_invite.yaml +14 -0
  194. data/data/matrix-spec/event-schemas/examples/m.room.tombstone.yaml +9 -0
  195. data/data/matrix-spec/event-schemas/examples/m.room.topic.yaml +16 -0
  196. data/data/matrix-spec/event-schemas/examples/m.room_key.withheld.yaml +12 -0
  197. data/data/matrix-spec/event-schemas/examples/m.room_key.yaml +10 -0
  198. data/data/matrix-spec/event-schemas/examples/m.room_key_request$cancel_request.yaml +8 -0
  199. data/data/matrix-spec/event-schemas/examples/m.room_key_request$request.yaml +14 -0
  200. data/data/matrix-spec/event-schemas/examples/m.secret.request.yaml +9 -0
  201. data/data/matrix-spec/event-schemas/examples/m.secret.send.yaml +7 -0
  202. data/data/matrix-spec/event-schemas/examples/m.space.child.yaml +10 -0
  203. data/data/matrix-spec/event-schemas/examples/m.space.parent.yaml +9 -0
  204. data/data/matrix-spec/event-schemas/examples/m.sticker.yaml +22 -0
  205. data/data/matrix-spec/event-schemas/examples/m.tag.yaml +9 -0
  206. data/data/matrix-spec/event-schemas/examples/m.typing.yaml +7 -0
  207. data/data/matrix-spec/event-schemas/moderation_policy_rule.yaml +32 -0
  208. data/data/matrix-spec/event-schemas/schema/components/m_text_content_block.yaml +28 -0
  209. data/data/matrix-spec/event-schemas/schema/components/sdp_stream_metadata.yaml +43 -0
  210. data/data/matrix-spec/event-schemas/schema/components/signed_third_party_invite.yaml +48 -0
  211. data/data/matrix-spec/event-schemas/schema/core-event-schema/call_event.yaml +27 -0
  212. data/data/matrix-spec/event-schemas/schema/core-event-schema/event.yaml +16 -0
  213. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/avatar_info.yaml +30 -0
  214. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/image_info.yaml +52 -0
  215. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/thumbnail_info.yaml +22 -0
  216. data/data/matrix-spec/event-schemas/schema/core-event-schema/room_event.yaml +17 -0
  217. data/data/matrix-spec/event-schemas/schema/core-event-schema/state_event.yaml +8 -0
  218. data/data/matrix-spec/event-schemas/schema/core-event-schema/stripped_state.yaml +48 -0
  219. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_room_event.yaml +49 -0
  220. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_state_event.yaml +36 -0
  221. data/data/matrix-spec/event-schemas/schema/core-event-schema/unsigned_prop.yaml +23 -0
  222. data/data/matrix-spec/event-schemas/schema/m.accepted_terms.yaml +25 -0
  223. data/data/matrix-spec/event-schemas/schema/m.call.answer.yaml +44 -0
  224. data/data/matrix-spec/event-schemas/schema/m.call.candidates.yaml +52 -0
  225. data/data/matrix-spec/event-schemas/schema/m.call.hangup.yaml +57 -0
  226. data/data/matrix-spec/event-schemas/schema/m.call.invite.yaml +53 -0
  227. data/data/matrix-spec/event-schemas/schema/m.call.negotiate.yaml +78 -0
  228. data/data/matrix-spec/event-schemas/schema/m.call.reject.yaml +29 -0
  229. data/data/matrix-spec/event-schemas/schema/m.call.sdp_stream_metadata_changed.yaml +24 -0
  230. data/data/matrix-spec/event-schemas/schema/m.call.select_answer.yaml +29 -0
  231. data/data/matrix-spec/event-schemas/schema/m.direct.yaml +29 -0
  232. data/data/matrix-spec/event-schemas/schema/m.dummy.yaml +25 -0
  233. data/data/matrix-spec/event-schemas/schema/m.forwarded_room_key.yaml +70 -0
  234. data/data/matrix-spec/event-schemas/schema/m.fully_read.yaml +26 -0
  235. data/data/matrix-spec/event-schemas/schema/m.identity_server.yaml +28 -0
  236. data/data/matrix-spec/event-schemas/schema/m.ignored_user_list.yaml +30 -0
  237. data/data/matrix-spec/event-schemas/schema/m.invite_permission_config.yaml +21 -0
  238. data/data/matrix-spec/event-schemas/schema/m.key.verification.accept.yaml +63 -0
  239. data/data/matrix-spec/event-schemas/schema/m.key.verification.cancel.yaml +72 -0
  240. data/data/matrix-spec/event-schemas/schema/m.key.verification.done.yaml +24 -0
  241. data/data/matrix-spec/event-schemas/schema/m.key.verification.key.yaml +31 -0
  242. data/data/matrix-spec/event-schemas/schema/m.key.verification.m.relates_to.yaml +23 -0
  243. data/data/matrix-spec/event-schemas/schema/m.key.verification.mac.yaml +43 -0
  244. data/data/matrix-spec/event-schemas/schema/m.key.verification.ready.yaml +41 -0
  245. data/data/matrix-spec/event-schemas/schema/m.key.verification.request.yaml +47 -0
  246. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.reciprocate.v1.yaml +45 -0
  247. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.sas.v1.yaml +76 -0
  248. data/data/matrix-spec/event-schemas/schema/m.key.verification.start.yaml +46 -0
  249. data/data/matrix-spec/event-schemas/schema/m.key_backup.yaml +24 -0
  250. data/data/matrix-spec/event-schemas/schema/m.marked_unread.yaml +26 -0
  251. data/data/matrix-spec/event-schemas/schema/m.policy.rule.room.yaml +17 -0
  252. data/data/matrix-spec/event-schemas/schema/m.policy.rule.server.yaml +17 -0
  253. data/data/matrix-spec/event-schemas/schema/m.policy.rule.user.yaml +17 -0
  254. data/data/matrix-spec/event-schemas/schema/m.presence.yaml +50 -0
  255. data/data/matrix-spec/event-schemas/schema/m.push_rules.yaml +23 -0
  256. data/data/matrix-spec/event-schemas/schema/m.reaction.yaml +45 -0
  257. data/data/matrix-spec/event-schemas/schema/m.receipt.yaml +65 -0
  258. data/data/matrix-spec/event-schemas/schema/m.recent_emoji.yaml +29 -0
  259. data/data/matrix-spec/event-schemas/schema/m.room.avatar.yaml +29 -0
  260. data/data/matrix-spec/event-schemas/schema/m.room.canonical_alias.yaml +40 -0
  261. data/data/matrix-spec/event-schemas/schema/m.room.create.yaml +86 -0
  262. data/data/matrix-spec/event-schemas/schema/m.room.encrypted.yaml +91 -0
  263. data/data/matrix-spec/event-schemas/schema/m.room.encryption.yaml +38 -0
  264. data/data/matrix-spec/event-schemas/schema/m.room.guest_access.yaml +28 -0
  265. data/data/matrix-spec/event-schemas/schema/m.room.history_visibility.yaml +30 -0
  266. data/data/matrix-spec/event-schemas/schema/m.room.join_rules.yaml +78 -0
  267. data/data/matrix-spec/event-schemas/schema/m.room.member.yaml +174 -0
  268. data/data/matrix-spec/event-schemas/schema/m.room.message$m.audio.yaml +73 -0
  269. data/data/matrix-spec/event-schemas/schema/m.room.message$m.emote.yaml +36 -0
  270. data/data/matrix-spec/event-schemas/schema/m.room.message$m.file.yaml +85 -0
  271. data/data/matrix-spec/event-schemas/schema/m.room.message$m.image.yaml +63 -0
  272. data/data/matrix-spec/event-schemas/schema/m.room.message$m.key.verification.request.yaml +70 -0
  273. data/data/matrix-spec/event-schemas/schema/m.room.message$m.location.yaml +50 -0
  274. data/data/matrix-spec/event-schemas/schema/m.room.message$m.notice.yaml +36 -0
  275. data/data/matrix-spec/event-schemas/schema/m.room.message$m.server_notice.yaml +41 -0
  276. data/data/matrix-spec/event-schemas/schema/m.room.message$m.text.yaml +36 -0
  277. data/data/matrix-spec/event-schemas/schema/m.room.message$m.video.yaml +95 -0
  278. data/data/matrix-spec/event-schemas/schema/m.room.message.yaml +25 -0
  279. data/data/matrix-spec/event-schemas/schema/m.room.name.yaml +35 -0
  280. data/data/matrix-spec/event-schemas/schema/m.room.pinned_events.yaml +27 -0
  281. data/data/matrix-spec/event-schemas/schema/m.room.policy.yaml +41 -0
  282. data/data/matrix-spec/event-schemas/schema/m.room.power_levels.yaml +139 -0
  283. data/data/matrix-spec/event-schemas/schema/m.room.redaction.yaml +29 -0
  284. data/data/matrix-spec/event-schemas/schema/m.room.server_acl.yaml +88 -0
  285. data/data/matrix-spec/event-schemas/schema/m.room.third_party_invite.yaml +79 -0
  286. data/data/matrix-spec/event-schemas/schema/m.room.tombstone.yaml +29 -0
  287. data/data/matrix-spec/event-schemas/schema/m.room.topic.yaml +53 -0
  288. data/data/matrix-spec/event-schemas/schema/m.room_key.withheld.yaml +88 -0
  289. data/data/matrix-spec/event-schemas/schema/m.room_key.yaml +38 -0
  290. data/data/matrix-spec/event-schemas/schema/m.room_key_request.yaml +73 -0
  291. data/data/matrix-spec/event-schemas/schema/m.secret.request.yaml +42 -0
  292. data/data/matrix-spec/event-schemas/schema/m.secret.send.yaml +35 -0
  293. data/data/matrix-spec/event-schemas/schema/m.space.child.yaml +50 -0
  294. data/data/matrix-spec/event-schemas/schema/m.space.parent.yaml +36 -0
  295. data/data/matrix-spec/event-schemas/schema/m.sticker.yaml +36 -0
  296. data/data/matrix-spec/event-schemas/schema/m.tag.yaml +28 -0
  297. data/data/matrix-spec/event-schemas/schema/m.typing.yaml +29 -0
  298. data/lib/async/matrix/api/chain.rb +575 -0
  299. data/lib/async/matrix/api/concat.rb +105 -0
  300. data/lib/async/matrix/api/path_tree.rb +208 -0
  301. data/lib/async/matrix/api.rb +204 -0
  302. data/lib/async/matrix/application_service/bot.rb +235 -0
  303. data/lib/async/matrix/application_service/config/schema/analytics.json +21 -0
  304. data/lib/async/matrix/application_service/config/schema/appservice.json +82 -0
  305. data/lib/async/matrix/application_service/config/schema/backfill.json +91 -0
  306. data/lib/async/matrix/application_service/config/schema/bridge.json +209 -0
  307. data/lib/async/matrix/application_service/config/schema/config.json +61 -0
  308. data/lib/async/matrix/application_service/config/schema/database.json +38 -0
  309. data/lib/async/matrix/application_service/config/schema/direct_media.json +35 -0
  310. data/lib/async/matrix/application_service/config/schema/double_puppet.json +24 -0
  311. data/lib/async/matrix/application_service/config/schema/encryption.json +164 -0
  312. data/lib/async/matrix/application_service/config/schema/homeserver.json +58 -0
  313. data/lib/async/matrix/application_service/config/schema/logging.json +50 -0
  314. data/lib/async/matrix/application_service/config/schema/management_room_texts.json +25 -0
  315. data/lib/async/matrix/application_service/config/schema/matrix.json +45 -0
  316. data/lib/async/matrix/application_service/config/schema/permissions.json +54 -0
  317. data/lib/async/matrix/application_service/config/schema/provisioning.json +23 -0
  318. data/lib/async/matrix/application_service/config/schema/public_media.json +39 -0
  319. data/lib/async/matrix/application_service/config/schema/relay.json +43 -0
  320. data/lib/async/matrix/application_service/config/vivify.rb +110 -0
  321. data/lib/async/matrix/application_service/config.rb +214 -123
  322. data/lib/async/matrix/application_service/dispatcher.rb +115 -113
  323. data/lib/async/matrix/application_service/error_response.rb +26 -26
  324. data/lib/async/matrix/application_service/event.rb +217 -1
  325. data/lib/async/matrix/application_service/server.rb +286 -215
  326. data/lib/async/matrix/application_service/transaction.rb +52 -52
  327. data/lib/async/matrix/application_service/transaction_store.rb +62 -62
  328. data/lib/async/matrix/client.rb +919 -179
  329. data/lib/async/matrix/connection.rb +8 -8
  330. data/lib/async/matrix/endpoint.rb +45 -45
  331. data/lib/async/matrix/error.rb +49 -43
  332. data/lib/async/matrix/media_client.rb +173 -0
  333. data/lib/async/matrix/notifier.rb +92 -92
  334. data/lib/async/matrix/schema/registry.rb +355 -0
  335. data/lib/async/matrix/schema/validation_error.rb +226 -0
  336. data/lib/async/matrix/schema.rb +174 -0
  337. data/lib/async/matrix/server.rb +7 -7
  338. data/lib/async/matrix/stream.rb +7 -7
  339. data/lib/async/matrix/version.rb +1 -1
  340. data/lib/async/matrix.rb +5 -2
  341. metadata +353 -1
@@ -0,0 +1,174 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the Apache License, Version 2.0.
4
+ # Copyright, 2026, by General Intelligence Systems.
5
+
6
+ require_relative "schema/registry"
7
+ require_relative "schema/validation_error"
8
+
9
+ module Async
10
+ module Matrix
11
+ # Schema-driven validation for Matrix events using the official matrix-org/matrix-spec
12
+ # YAML schemas and the json_schemer gem.
13
+ #
14
+ # Schemas are loaded lazily from data/matrix-spec/event-schemas/schema/ and cached
15
+ # for the process lifetime. This ensures validation is always up-to-date with the
16
+ # spec -- just re-run `bin/fetch-matrix-schemas` to pull the latest.
17
+ #
18
+ # # Look up a schema by event type
19
+ # Async::Matrix::Schema["m.room.message"] # => JSONSchemer::Schema
20
+ #
21
+ # # Validate an event hash
22
+ # Async::Matrix::Schema.valid?(event_hash) # => true/false
23
+ # Async::Matrix::Schema.validate(event_hash) # => [errors]
24
+ #
25
+ # # List all known event types
26
+ # Async::Matrix::Schema.event_types # => ["m.accepted_terms", "m.call.answer", ...]
27
+ #
28
+ module Schema
29
+ class << self
30
+ # Look up a schema by Matrix event type.
31
+ # @param event_type [String] e.g. "m.room.message"
32
+ # @return [JSONSchemer::Schema, nil]
33
+ def [](event_type)
34
+ Registry.instance[event_type]
35
+ end
36
+
37
+ # Look up a variant schema.
38
+ # @param event_type [String] e.g. "m.room.message"
39
+ # @param subtype [String] e.g. "m.text"
40
+ # @return [JSONSchemer::Schema, nil]
41
+ def variant(event_type, subtype)
42
+ Registry.instance.variant(event_type, subtype)
43
+ end
44
+
45
+ # Validate an event hash against its schema.
46
+ # @param event_hash [Hash] the raw event data (string keys)
47
+ # @return [Array<Hash>] array of error hashes (empty if valid)
48
+ def validate(event_hash)
49
+ Registry.instance.validate(event_hash)
50
+ end
51
+
52
+ # Boolean validation.
53
+ # @param event_hash [Hash] the raw event data (string keys)
54
+ # @return [Boolean]
55
+ def valid?(event_hash)
56
+ Registry.instance.valid?(event_hash)
57
+ end
58
+
59
+ # All known base event types.
60
+ # @return [Array<String>] sorted
61
+ def event_types
62
+ Registry.instance.event_types
63
+ end
64
+
65
+ # All known variant types as [event_type, subtype] pairs.
66
+ # @return [Array<Array(String, String)>]
67
+ def variant_types
68
+ Registry.instance.variant_types
69
+ end
70
+
71
+ # Content properties defined by the schema for a given event type.
72
+ # @return [Array<String>]
73
+ def content_properties(event_type)
74
+ Registry.instance.content_properties(event_type)
75
+ end
76
+
77
+ # Parse a raw event hash into a schema-aware Event.
78
+ # @param event_hash [Hash] the raw event data (string keys)
79
+ # @return [ApplicationService::Event]
80
+ def parse(event_hash)
81
+ ApplicationService::Event.new(event_hash)
82
+ end
83
+
84
+ # Total schemas loaded (base + variants).
85
+ # @return [Integer]
86
+ def size
87
+ Registry.instance.size
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+
94
+ test do
95
+ describe "Async::Matrix::Schema" do
96
+ it "looks up schemas by event type" do
97
+ schema = Async::Matrix::Schema["m.room.message"]
98
+ schema.should.not.be.nil
99
+ schema.should.be.kind_of JSONSchemer::Schema
100
+ end
101
+
102
+ it "returns nil for unknown event types" do
103
+ Async::Matrix::Schema["m.fake.event"].should.be.nil
104
+ end
105
+
106
+ it "validates event hashes" do
107
+ valid_event = {
108
+ "type" => "m.room.message",
109
+ "content" => {"msgtype" => "m.text", "body" => "hello"},
110
+ "event_id" => "$abc123",
111
+ "sender" => "@alice:example.org",
112
+ "origin_server_ts" => 1234567890,
113
+ "room_id" => "!room:example.org"
114
+ }
115
+ Async::Matrix::Schema.valid?(valid_event).should == true
116
+ end
117
+
118
+ it "returns errors for invalid events" do
119
+ invalid_event = {
120
+ "type" => "m.room.message",
121
+ "content" => {"msgtype" => "m.text"},
122
+ "event_id" => "$abc123",
123
+ "sender" => "@alice:example.org",
124
+ "origin_server_ts" => 1234567890,
125
+ "room_id" => "!room:example.org"
126
+ }
127
+ errors = Async::Matrix::Schema.validate(invalid_event)
128
+ errors.should.not.be.empty
129
+ end
130
+
131
+ it "lists event types" do
132
+ types = Async::Matrix::Schema.event_types
133
+ types.should.be.kind_of Array
134
+ types.should.include "m.room.message"
135
+ types.should.include "m.room.member"
136
+ end
137
+
138
+ it "lists variant types" do
139
+ variants = Async::Matrix::Schema.variant_types
140
+ variants.should.not.be.empty
141
+ end
142
+
143
+ it "looks up variant schemas" do
144
+ schema = Async::Matrix::Schema.variant("m.room.message", "m.text")
145
+ schema.should.not.be.nil
146
+ end
147
+
148
+ it "returns content properties" do
149
+ props = Async::Matrix::Schema.content_properties("m.room.message")
150
+ props.should.include "msgtype"
151
+ props.should.include "body"
152
+ end
153
+
154
+ it "reports total schema count" do
155
+ Async::Matrix::Schema.size.should.be > 50
156
+ end
157
+
158
+ it "parses a raw hash into a schema-aware Event" do
159
+ event = Async::Matrix::Schema.parse({
160
+ "type" => "m.room.message",
161
+ "content" => {"msgtype" => "m.text", "body" => "hello"},
162
+ "event_id" => "$abc123",
163
+ "sender" => "@alice:example.org",
164
+ "origin_server_ts" => 1234567890,
165
+ "room_id" => "!room:example.org"
166
+ })
167
+ event.should.be.kind_of Async::Matrix::ApplicationService::Event
168
+ event.type.should == "m.room.message"
169
+ event.content.body.should == "hello"
170
+ event.valid?.should == true
171
+ event.schema.should.not.be.nil
172
+ end
173
+ end
174
+ end
@@ -7,14 +7,14 @@ require "bundler/setup"
7
7
  require "async/http"
8
8
 
9
9
  module Async
10
- module Matrix
11
- class Server < Async::HTTP::Protocol::HTTP2::Server
12
- end
13
- end
10
+ module Matrix
11
+ class Server < Async::HTTP::Protocol::HTTP2::Server
12
+ end
13
+ end
14
14
  end
15
15
 
16
16
  test do
17
- it "inherits from Async::HTTP::Protocol::HTTP2::Server" do
18
- Async::Matrix::Server.ancestors.should.include Async::HTTP::Protocol::HTTP2::Server
19
- end
17
+ it "inherits from Async::HTTP::Protocol::HTTP2::Server" do
18
+ Async::Matrix::Server.ancestors.should.include Async::HTTP::Protocol::HTTP2::Server
19
+ end
20
20
  end
@@ -8,14 +8,14 @@ require "async/http"
8
8
  require "async/matrix"
9
9
 
10
10
  module Async
11
- module Matrix
12
- class Stream < Async::HTTP::Protocol::HTTP2::Stream
13
- end
14
- end
11
+ module Matrix
12
+ class Stream < Async::HTTP::Protocol::HTTP2::Stream
13
+ end
14
+ end
15
15
  end
16
16
 
17
17
  test do
18
- it "inherits from Async::HTTP::Protocol::HTTP2::Stream" do
19
- Async::Matrix::Stream.ancestors.should.include Async::HTTP::Protocol::HTTP2::Stream
20
- end
18
+ it "inherits from Async::HTTP::Protocol::HTTP2::Stream" do
19
+ Async::Matrix::Stream.ancestors.should.include Async::HTTP::Protocol::HTTP2::Stream
20
+ end
21
21
  end
@@ -5,6 +5,6 @@
5
5
 
6
6
  module Async
7
7
  module Matrix
8
- VERSION = "0.1.2"
8
+ VERSION = "1.0.0"
9
9
  end
10
10
  end
data/lib/async/matrix.rb CHANGED
@@ -3,9 +3,12 @@
3
3
  # Released under the Apache License, Version 2.0.
4
4
  # Copyright, 2026, by General Intelligence Systems.
5
5
 
6
+ require "async/http"
7
+ require "scampi"
8
+
6
9
  module Async
7
- module Matrix
8
- end
10
+ module Matrix
11
+ end
9
12
  end
10
13
 
11
14
  Dir.glob("#{__dir__}/matrix/**/*.rb").sort.each do |path|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-matrix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Kidd
@@ -37,6 +37,20 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0.95'
40
+ - !ruby/object:Gem::Dependency
41
+ name: json_schemer
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '2.0'
40
54
  - !ruby/object:Gem::Dependency
41
55
  name: scampi
42
56
  requirement: !ruby/object:Gem::Requirement
@@ -51,6 +65,20 @@ dependencies:
51
65
  - - "~>"
52
66
  - !ruby/object:Gem::Version
53
67
  version: 0.1.7
68
+ - !ruby/object:Gem::Dependency
69
+ name: string_builder
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.2'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.2'
54
82
  - !ruby/object:Gem::Dependency
55
83
  name: falcon
56
84
  requirement: !ruby/object:Gem::Requirement
@@ -88,8 +116,327 @@ extensions: []
88
116
  extra_rdoc_files: []
89
117
  files:
90
118
  - LICENSE
119
+ - README.md
120
+ - data/matrix-spec/api/client-server/account-data.yaml
121
+ - data/matrix-spec/api/client-server/account_deactivation.yaml
122
+ - data/matrix-spec/api/client-server/admin.yaml
123
+ - data/matrix-spec/api/client-server/administrative_contact.yaml
124
+ - data/matrix-spec/api/client-server/appservice_ping.yaml
125
+ - data/matrix-spec/api/client-server/appservice_room_directory.yaml
126
+ - data/matrix-spec/api/client-server/authed-content-repo.yaml
127
+ - data/matrix-spec/api/client-server/banning.yaml
128
+ - data/matrix-spec/api/client-server/capabilities.yaml
129
+ - data/matrix-spec/api/client-server/content-repo.yaml
130
+ - data/matrix-spec/api/client-server/create_room.yaml
131
+ - data/matrix-spec/api/client-server/cross_signing.yaml
132
+ - data/matrix-spec/api/client-server/definitions/auth_data.yaml
133
+ - data/matrix-spec/api/client-server/definitions/auth_response.yaml
134
+ - data/matrix-spec/api/client-server/definitions/client_device.yaml
135
+ - data/matrix-spec/api/client-server/definitions/client_event.yaml
136
+ - data/matrix-spec/api/client-server/definitions/client_event_without_room_id.yaml
137
+ - data/matrix-spec/api/client-server/definitions/cross_signing_key.yaml
138
+ - data/matrix-spec/api/client-server/definitions/device_keys.yaml
139
+ - data/matrix-spec/api/client-server/definitions/errors/error.yaml
140
+ - data/matrix-spec/api/client-server/definitions/errors/rate_limited.yaml
141
+ - data/matrix-spec/api/client-server/definitions/event_batch.yaml
142
+ - data/matrix-spec/api/client-server/definitions/event_filter.yaml
143
+ - data/matrix-spec/api/client-server/definitions/invite_3pid.yaml
144
+ - data/matrix-spec/api/client-server/definitions/key_backup_auth_data.yaml
145
+ - data/matrix-spec/api/client-server/definitions/key_backup_data.yaml
146
+ - data/matrix-spec/api/client-server/definitions/key_backup_session_data.yaml
147
+ - data/matrix-spec/api/client-server/definitions/m.login.terms_params.yaml
148
+ - data/matrix-spec/api/client-server/definitions/m.mentions.yaml
149
+ - data/matrix-spec/api/client-server/definitions/m.oauth_params.yaml
150
+ - data/matrix-spec/api/client-server/definitions/m.relates_to.yaml
151
+ - data/matrix-spec/api/client-server/definitions/megolm_export_session_data.yaml
152
+ - data/matrix-spec/api/client-server/definitions/olm_payload.yaml
153
+ - data/matrix-spec/api/client-server/definitions/one_time_keys.yaml
154
+ - data/matrix-spec/api/client-server/definitions/openid_token.yaml
155
+ - data/matrix-spec/api/client-server/definitions/protocol.yaml
156
+ - data/matrix-spec/api/client-server/definitions/public_rooms_chunk.yaml
157
+ - data/matrix-spec/api/client-server/definitions/public_rooms_response.yaml
158
+ - data/matrix-spec/api/client-server/definitions/push_condition.yaml
159
+ - data/matrix-spec/api/client-server/definitions/push_rule.yaml
160
+ - data/matrix-spec/api/client-server/definitions/push_ruleset.yaml
161
+ - data/matrix-spec/api/client-server/definitions/recent_emoji.yaml
162
+ - data/matrix-spec/api/client-server/definitions/request_email_validation.yaml
163
+ - data/matrix-spec/api/client-server/definitions/request_msisdn_validation.yaml
164
+ - data/matrix-spec/api/client-server/definitions/request_token_response.yaml
165
+ - data/matrix-spec/api/client-server/definitions/room_event_filter.yaml
166
+ - data/matrix-spec/api/client-server/definitions/room_key_backup.yaml
167
+ - data/matrix-spec/api/client-server/definitions/room_summary.yaml
168
+ - data/matrix-spec/api/client-server/definitions/security.yaml
169
+ - data/matrix-spec/api/client-server/definitions/sso_login_flow.yaml
170
+ - data/matrix-spec/api/client-server/definitions/state_event_batch.yaml
171
+ - data/matrix-spec/api/client-server/definitions/sync_filter.yaml
172
+ - data/matrix-spec/api/client-server/definitions/tag.yaml
173
+ - data/matrix-spec/api/client-server/definitions/third_party_signed.yaml
174
+ - data/matrix-spec/api/client-server/definitions/timeline_batch.yaml
175
+ - data/matrix-spec/api/client-server/definitions/user_identifier.yaml
176
+ - data/matrix-spec/api/client-server/definitions/wellknown/full.yaml
177
+ - data/matrix-spec/api/client-server/definitions/wellknown/homeserver.yaml
178
+ - data/matrix-spec/api/client-server/definitions/wellknown/identity_server.yaml
179
+ - data/matrix-spec/api/client-server/device_management.yaml
180
+ - data/matrix-spec/api/client-server/directory.yaml
181
+ - data/matrix-spec/api/client-server/event_context.yaml
182
+ - data/matrix-spec/api/client-server/filter.yaml
183
+ - data/matrix-spec/api/client-server/inviting.yaml
184
+ - data/matrix-spec/api/client-server/joining.yaml
185
+ - data/matrix-spec/api/client-server/key_backup.yaml
186
+ - data/matrix-spec/api/client-server/keys.yaml
187
+ - data/matrix-spec/api/client-server/kicking.yaml
188
+ - data/matrix-spec/api/client-server/knocking.yaml
189
+ - data/matrix-spec/api/client-server/leaving.yaml
190
+ - data/matrix-spec/api/client-server/list_joined_rooms.yaml
191
+ - data/matrix-spec/api/client-server/list_public_rooms.yaml
192
+ - data/matrix-spec/api/client-server/login.yaml
193
+ - data/matrix-spec/api/client-server/login_token.yaml
194
+ - data/matrix-spec/api/client-server/logout.yaml
195
+ - data/matrix-spec/api/client-server/message_pagination.yaml
196
+ - data/matrix-spec/api/client-server/notifications.yaml
197
+ - data/matrix-spec/api/client-server/oauth_server_metadata.yaml
198
+ - data/matrix-spec/api/client-server/old_sync.yaml
199
+ - data/matrix-spec/api/client-server/openid.yaml
200
+ - data/matrix-spec/api/client-server/password_management.yaml
201
+ - data/matrix-spec/api/client-server/peeking_events.yaml
202
+ - data/matrix-spec/api/client-server/policy_server.yaml
203
+ - data/matrix-spec/api/client-server/presence.yaml
204
+ - data/matrix-spec/api/client-server/profile.yaml
205
+ - data/matrix-spec/api/client-server/pusher.yaml
206
+ - data/matrix-spec/api/client-server/pushrules.yaml
207
+ - data/matrix-spec/api/client-server/read_markers.yaml
208
+ - data/matrix-spec/api/client-server/receipts.yaml
209
+ - data/matrix-spec/api/client-server/redaction.yaml
210
+ - data/matrix-spec/api/client-server/refresh.yaml
211
+ - data/matrix-spec/api/client-server/registration.yaml
212
+ - data/matrix-spec/api/client-server/registration_tokens.yaml
213
+ - data/matrix-spec/api/client-server/relations.yaml
214
+ - data/matrix-spec/api/client-server/report_content.yaml
215
+ - data/matrix-spec/api/client-server/room_event_by_timestamp.yaml
216
+ - data/matrix-spec/api/client-server/room_initial_sync.yaml
217
+ - data/matrix-spec/api/client-server/room_send.yaml
218
+ - data/matrix-spec/api/client-server/room_state.yaml
219
+ - data/matrix-spec/api/client-server/room_summary.yaml
220
+ - data/matrix-spec/api/client-server/room_upgrades.yaml
221
+ - data/matrix-spec/api/client-server/rooms.yaml
222
+ - data/matrix-spec/api/client-server/search.yaml
223
+ - data/matrix-spec/api/client-server/space_hierarchy.yaml
224
+ - data/matrix-spec/api/client-server/sso_login_redirect.yaml
225
+ - data/matrix-spec/api/client-server/support.yaml
226
+ - data/matrix-spec/api/client-server/sync.yaml
227
+ - data/matrix-spec/api/client-server/tags.yaml
228
+ - data/matrix-spec/api/client-server/third_party_lookup.yaml
229
+ - data/matrix-spec/api/client-server/third_party_membership.yaml
230
+ - data/matrix-spec/api/client-server/threads_list.yaml
231
+ - data/matrix-spec/api/client-server/to_device.yaml
232
+ - data/matrix-spec/api/client-server/typing.yaml
233
+ - data/matrix-spec/api/client-server/users.yaml
234
+ - data/matrix-spec/api/client-server/versions.yaml
235
+ - data/matrix-spec/api/client-server/voip.yaml
236
+ - data/matrix-spec/api/client-server/wellknown.yaml
237
+ - data/matrix-spec/api/client-server/whoami.yaml
238
+ - data/matrix-spec/event-schemas/examples/core/event.json
239
+ - data/matrix-spec/event-schemas/examples/core/room_edu.json
240
+ - data/matrix-spec/event-schemas/examples/core/room_event.json
241
+ - data/matrix-spec/event-schemas/examples/core/state_event.json
242
+ - data/matrix-spec/event-schemas/examples/invite_room_state.json
243
+ - data/matrix-spec/event-schemas/examples/knock_room_state.json
244
+ - data/matrix-spec/event-schemas/examples/m.accepted_terms.yaml
245
+ - data/matrix-spec/event-schemas/examples/m.call.answer.yaml
246
+ - data/matrix-spec/event-schemas/examples/m.call.candidates.yaml
247
+ - data/matrix-spec/event-schemas/examples/m.call.hangup.yaml
248
+ - data/matrix-spec/event-schemas/examples/m.call.invite.yaml
249
+ - data/matrix-spec/event-schemas/examples/m.call.negotiate.yaml
250
+ - data/matrix-spec/event-schemas/examples/m.call.reject.yaml
251
+ - data/matrix-spec/event-schemas/examples/m.call.sdp_stream_metadata_changed.yaml
252
+ - data/matrix-spec/event-schemas/examples/m.call.select_answer.yaml
253
+ - data/matrix-spec/event-schemas/examples/m.direct.yaml
254
+ - data/matrix-spec/event-schemas/examples/m.dummy.yaml
255
+ - data/matrix-spec/event-schemas/examples/m.forwarded_room_key.yaml
256
+ - data/matrix-spec/event-schemas/examples/m.fully_read.yaml
257
+ - data/matrix-spec/event-schemas/examples/m.identity_server.yaml
258
+ - data/matrix-spec/event-schemas/examples/m.ignored_user_list.yaml
259
+ - data/matrix-spec/event-schemas/examples/m.invite_permission_config.yaml
260
+ - data/matrix-spec/event-schemas/examples/m.key.verification.accept.yaml
261
+ - data/matrix-spec/event-schemas/examples/m.key.verification.cancel.yaml
262
+ - data/matrix-spec/event-schemas/examples/m.key.verification.done.yaml
263
+ - data/matrix-spec/event-schemas/examples/m.key.verification.key.yaml
264
+ - data/matrix-spec/event-schemas/examples/m.key.verification.mac.yaml
265
+ - data/matrix-spec/event-schemas/examples/m.key.verification.ready.yaml
266
+ - data/matrix-spec/event-schemas/examples/m.key.verification.request.yaml
267
+ - data/matrix-spec/event-schemas/examples/m.key.verification.start$m.sas.v1.yaml
268
+ - data/matrix-spec/event-schemas/examples/m.key.verification.start.yaml
269
+ - data/matrix-spec/event-schemas/examples/m.key_backup.yaml
270
+ - data/matrix-spec/event-schemas/examples/m.marked_unread.yaml
271
+ - data/matrix-spec/event-schemas/examples/m.policy.rule.room.yaml
272
+ - data/matrix-spec/event-schemas/examples/m.policy.rule.server.yaml
273
+ - data/matrix-spec/event-schemas/examples/m.policy.rule.user.yaml
274
+ - data/matrix-spec/event-schemas/examples/m.presence.yaml
275
+ - data/matrix-spec/event-schemas/examples/m.push_rules.yaml
276
+ - data/matrix-spec/event-schemas/examples/m.reaction.yaml
277
+ - data/matrix-spec/event-schemas/examples/m.receipt.yaml
278
+ - data/matrix-spec/event-schemas/examples/m.recent_emoji.yaml
279
+ - data/matrix-spec/event-schemas/examples/m.room.avatar.yaml
280
+ - data/matrix-spec/event-schemas/examples/m.room.canonical_alias.yaml
281
+ - data/matrix-spec/event-schemas/examples/m.room.create.yaml
282
+ - data/matrix-spec/event-schemas/examples/m.room.encrypted$megolm.yaml
283
+ - data/matrix-spec/event-schemas/examples/m.room.encrypted$olm.yaml
284
+ - data/matrix-spec/event-schemas/examples/m.room.encryption.yaml
285
+ - data/matrix-spec/event-schemas/examples/m.room.guest_access.yaml
286
+ - data/matrix-spec/event-schemas/examples/m.room.history_visibility.yaml
287
+ - data/matrix-spec/event-schemas/examples/m.room.join_rules$restricted.yaml
288
+ - data/matrix-spec/event-schemas/examples/m.room.join_rules.yaml
289
+ - data/matrix-spec/event-schemas/examples/m.room.member$invite_room_state.yaml
290
+ - data/matrix-spec/event-schemas/examples/m.room.member$join_authorised_via_users_server.yaml
291
+ - data/matrix-spec/event-schemas/examples/m.room.member$knock_room_state.yaml
292
+ - data/matrix-spec/event-schemas/examples/m.room.member$third_party_invite.yaml
293
+ - data/matrix-spec/event-schemas/examples/m.room.member.yaml
294
+ - data/matrix-spec/event-schemas/examples/m.room.message$m.audio.yaml
295
+ - data/matrix-spec/event-schemas/examples/m.room.message$m.emote.yaml
296
+ - data/matrix-spec/event-schemas/examples/m.room.message$m.file.yaml
297
+ - data/matrix-spec/event-schemas/examples/m.room.message$m.image.yaml
298
+ - data/matrix-spec/event-schemas/examples/m.room.message$m.key.verification.request.yaml
299
+ - data/matrix-spec/event-schemas/examples/m.room.message$m.location.yaml
300
+ - data/matrix-spec/event-schemas/examples/m.room.message$m.notice.yaml
301
+ - data/matrix-spec/event-schemas/examples/m.room.message$m.server_notice.yaml
302
+ - data/matrix-spec/event-schemas/examples/m.room.message$m.text.yaml
303
+ - data/matrix-spec/event-schemas/examples/m.room.message$m.video.yaml
304
+ - data/matrix-spec/event-schemas/examples/m.room.name.yaml
305
+ - data/matrix-spec/event-schemas/examples/m.room.pinned_events.yaml
306
+ - data/matrix-spec/event-schemas/examples/m.room.policy.yaml
307
+ - data/matrix-spec/event-schemas/examples/m.room.power_levels.yaml
308
+ - data/matrix-spec/event-schemas/examples/m.room.redaction.yaml
309
+ - data/matrix-spec/event-schemas/examples/m.room.server_acl.yaml
310
+ - data/matrix-spec/event-schemas/examples/m.room.third_party_invite.yaml
311
+ - data/matrix-spec/event-schemas/examples/m.room.tombstone.yaml
312
+ - data/matrix-spec/event-schemas/examples/m.room.topic.yaml
313
+ - data/matrix-spec/event-schemas/examples/m.room_key.withheld.yaml
314
+ - data/matrix-spec/event-schemas/examples/m.room_key.yaml
315
+ - data/matrix-spec/event-schemas/examples/m.room_key_request$cancel_request.yaml
316
+ - data/matrix-spec/event-schemas/examples/m.room_key_request$request.yaml
317
+ - data/matrix-spec/event-schemas/examples/m.secret.request.yaml
318
+ - data/matrix-spec/event-schemas/examples/m.secret.send.yaml
319
+ - data/matrix-spec/event-schemas/examples/m.space.child.yaml
320
+ - data/matrix-spec/event-schemas/examples/m.space.parent.yaml
321
+ - data/matrix-spec/event-schemas/examples/m.sticker.yaml
322
+ - data/matrix-spec/event-schemas/examples/m.tag.yaml
323
+ - data/matrix-spec/event-schemas/examples/m.typing.yaml
324
+ - data/matrix-spec/event-schemas/moderation_policy_rule.yaml
325
+ - data/matrix-spec/event-schemas/schema/components/m_text_content_block.yaml
326
+ - data/matrix-spec/event-schemas/schema/components/sdp_stream_metadata.yaml
327
+ - data/matrix-spec/event-schemas/schema/components/signed_third_party_invite.yaml
328
+ - data/matrix-spec/event-schemas/schema/core-event-schema/call_event.yaml
329
+ - data/matrix-spec/event-schemas/schema/core-event-schema/event.yaml
330
+ - data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/avatar_info.yaml
331
+ - data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/image_info.yaml
332
+ - data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/thumbnail_info.yaml
333
+ - data/matrix-spec/event-schemas/schema/core-event-schema/room_event.yaml
334
+ - data/matrix-spec/event-schemas/schema/core-event-schema/state_event.yaml
335
+ - data/matrix-spec/event-schemas/schema/core-event-schema/stripped_state.yaml
336
+ - data/matrix-spec/event-schemas/schema/core-event-schema/sync_room_event.yaml
337
+ - data/matrix-spec/event-schemas/schema/core-event-schema/sync_state_event.yaml
338
+ - data/matrix-spec/event-schemas/schema/core-event-schema/unsigned_prop.yaml
339
+ - data/matrix-spec/event-schemas/schema/m.accepted_terms.yaml
340
+ - data/matrix-spec/event-schemas/schema/m.call.answer.yaml
341
+ - data/matrix-spec/event-schemas/schema/m.call.candidates.yaml
342
+ - data/matrix-spec/event-schemas/schema/m.call.hangup.yaml
343
+ - data/matrix-spec/event-schemas/schema/m.call.invite.yaml
344
+ - data/matrix-spec/event-schemas/schema/m.call.negotiate.yaml
345
+ - data/matrix-spec/event-schemas/schema/m.call.reject.yaml
346
+ - data/matrix-spec/event-schemas/schema/m.call.sdp_stream_metadata_changed.yaml
347
+ - data/matrix-spec/event-schemas/schema/m.call.select_answer.yaml
348
+ - data/matrix-spec/event-schemas/schema/m.direct.yaml
349
+ - data/matrix-spec/event-schemas/schema/m.dummy.yaml
350
+ - data/matrix-spec/event-schemas/schema/m.forwarded_room_key.yaml
351
+ - data/matrix-spec/event-schemas/schema/m.fully_read.yaml
352
+ - data/matrix-spec/event-schemas/schema/m.identity_server.yaml
353
+ - data/matrix-spec/event-schemas/schema/m.ignored_user_list.yaml
354
+ - data/matrix-spec/event-schemas/schema/m.invite_permission_config.yaml
355
+ - data/matrix-spec/event-schemas/schema/m.key.verification.accept.yaml
356
+ - data/matrix-spec/event-schemas/schema/m.key.verification.cancel.yaml
357
+ - data/matrix-spec/event-schemas/schema/m.key.verification.done.yaml
358
+ - data/matrix-spec/event-schemas/schema/m.key.verification.key.yaml
359
+ - data/matrix-spec/event-schemas/schema/m.key.verification.m.relates_to.yaml
360
+ - data/matrix-spec/event-schemas/schema/m.key.verification.mac.yaml
361
+ - data/matrix-spec/event-schemas/schema/m.key.verification.ready.yaml
362
+ - data/matrix-spec/event-schemas/schema/m.key.verification.request.yaml
363
+ - data/matrix-spec/event-schemas/schema/m.key.verification.start$m.reciprocate.v1.yaml
364
+ - data/matrix-spec/event-schemas/schema/m.key.verification.start$m.sas.v1.yaml
365
+ - data/matrix-spec/event-schemas/schema/m.key.verification.start.yaml
366
+ - data/matrix-spec/event-schemas/schema/m.key_backup.yaml
367
+ - data/matrix-spec/event-schemas/schema/m.marked_unread.yaml
368
+ - data/matrix-spec/event-schemas/schema/m.policy.rule.room.yaml
369
+ - data/matrix-spec/event-schemas/schema/m.policy.rule.server.yaml
370
+ - data/matrix-spec/event-schemas/schema/m.policy.rule.user.yaml
371
+ - data/matrix-spec/event-schemas/schema/m.presence.yaml
372
+ - data/matrix-spec/event-schemas/schema/m.push_rules.yaml
373
+ - data/matrix-spec/event-schemas/schema/m.reaction.yaml
374
+ - data/matrix-spec/event-schemas/schema/m.receipt.yaml
375
+ - data/matrix-spec/event-schemas/schema/m.recent_emoji.yaml
376
+ - data/matrix-spec/event-schemas/schema/m.room.avatar.yaml
377
+ - data/matrix-spec/event-schemas/schema/m.room.canonical_alias.yaml
378
+ - data/matrix-spec/event-schemas/schema/m.room.create.yaml
379
+ - data/matrix-spec/event-schemas/schema/m.room.encrypted.yaml
380
+ - data/matrix-spec/event-schemas/schema/m.room.encryption.yaml
381
+ - data/matrix-spec/event-schemas/schema/m.room.guest_access.yaml
382
+ - data/matrix-spec/event-schemas/schema/m.room.history_visibility.yaml
383
+ - data/matrix-spec/event-schemas/schema/m.room.join_rules.yaml
384
+ - data/matrix-spec/event-schemas/schema/m.room.member.yaml
385
+ - data/matrix-spec/event-schemas/schema/m.room.message$m.audio.yaml
386
+ - data/matrix-spec/event-schemas/schema/m.room.message$m.emote.yaml
387
+ - data/matrix-spec/event-schemas/schema/m.room.message$m.file.yaml
388
+ - data/matrix-spec/event-schemas/schema/m.room.message$m.image.yaml
389
+ - data/matrix-spec/event-schemas/schema/m.room.message$m.key.verification.request.yaml
390
+ - data/matrix-spec/event-schemas/schema/m.room.message$m.location.yaml
391
+ - data/matrix-spec/event-schemas/schema/m.room.message$m.notice.yaml
392
+ - data/matrix-spec/event-schemas/schema/m.room.message$m.server_notice.yaml
393
+ - data/matrix-spec/event-schemas/schema/m.room.message$m.text.yaml
394
+ - data/matrix-spec/event-schemas/schema/m.room.message$m.video.yaml
395
+ - data/matrix-spec/event-schemas/schema/m.room.message.yaml
396
+ - data/matrix-spec/event-schemas/schema/m.room.name.yaml
397
+ - data/matrix-spec/event-schemas/schema/m.room.pinned_events.yaml
398
+ - data/matrix-spec/event-schemas/schema/m.room.policy.yaml
399
+ - data/matrix-spec/event-schemas/schema/m.room.power_levels.yaml
400
+ - data/matrix-spec/event-schemas/schema/m.room.redaction.yaml
401
+ - data/matrix-spec/event-schemas/schema/m.room.server_acl.yaml
402
+ - data/matrix-spec/event-schemas/schema/m.room.third_party_invite.yaml
403
+ - data/matrix-spec/event-schemas/schema/m.room.tombstone.yaml
404
+ - data/matrix-spec/event-schemas/schema/m.room.topic.yaml
405
+ - data/matrix-spec/event-schemas/schema/m.room_key.withheld.yaml
406
+ - data/matrix-spec/event-schemas/schema/m.room_key.yaml
407
+ - data/matrix-spec/event-schemas/schema/m.room_key_request.yaml
408
+ - data/matrix-spec/event-schemas/schema/m.secret.request.yaml
409
+ - data/matrix-spec/event-schemas/schema/m.secret.send.yaml
410
+ - data/matrix-spec/event-schemas/schema/m.space.child.yaml
411
+ - data/matrix-spec/event-schemas/schema/m.space.parent.yaml
412
+ - data/matrix-spec/event-schemas/schema/m.sticker.yaml
413
+ - data/matrix-spec/event-schemas/schema/m.tag.yaml
414
+ - data/matrix-spec/event-schemas/schema/m.typing.yaml
91
415
  - lib/async/matrix.rb
416
+ - lib/async/matrix/api.rb
417
+ - lib/async/matrix/api/chain.rb
418
+ - lib/async/matrix/api/concat.rb
419
+ - lib/async/matrix/api/path_tree.rb
420
+ - lib/async/matrix/application_service/bot.rb
92
421
  - lib/async/matrix/application_service/config.rb
422
+ - lib/async/matrix/application_service/config/schema/analytics.json
423
+ - lib/async/matrix/application_service/config/schema/appservice.json
424
+ - lib/async/matrix/application_service/config/schema/backfill.json
425
+ - lib/async/matrix/application_service/config/schema/bridge.json
426
+ - lib/async/matrix/application_service/config/schema/config.json
427
+ - lib/async/matrix/application_service/config/schema/database.json
428
+ - lib/async/matrix/application_service/config/schema/direct_media.json
429
+ - lib/async/matrix/application_service/config/schema/double_puppet.json
430
+ - lib/async/matrix/application_service/config/schema/encryption.json
431
+ - lib/async/matrix/application_service/config/schema/homeserver.json
432
+ - lib/async/matrix/application_service/config/schema/logging.json
433
+ - lib/async/matrix/application_service/config/schema/management_room_texts.json
434
+ - lib/async/matrix/application_service/config/schema/matrix.json
435
+ - lib/async/matrix/application_service/config/schema/permissions.json
436
+ - lib/async/matrix/application_service/config/schema/provisioning.json
437
+ - lib/async/matrix/application_service/config/schema/public_media.json
438
+ - lib/async/matrix/application_service/config/schema/relay.json
439
+ - lib/async/matrix/application_service/config/vivify.rb
93
440
  - lib/async/matrix/application_service/dispatcher.rb
94
441
  - lib/async/matrix/application_service/error_response.rb
95
442
  - lib/async/matrix/application_service/event.rb
@@ -100,7 +447,11 @@ files:
100
447
  - lib/async/matrix/connection.rb
101
448
  - lib/async/matrix/endpoint.rb
102
449
  - lib/async/matrix/error.rb
450
+ - lib/async/matrix/media_client.rb
103
451
  - lib/async/matrix/notifier.rb
452
+ - lib/async/matrix/schema.rb
453
+ - lib/async/matrix/schema/registry.rb
454
+ - lib/async/matrix/schema/validation_error.rb
104
455
  - lib/async/matrix/server.rb
105
456
  - lib/async/matrix/stream.rb
106
457
  - lib/async/matrix/version.rb
@@ -110,6 +461,7 @@ licenses:
110
461
  metadata:
111
462
  homepage_uri: https://github.com/general-intelligence-systems/async-matrix
112
463
  source_code_uri: https://github.com/general-intelligence-systems/async-matrix
464
+ documentation_uri: https://general-intelligence-systems.github.io/async-matrix/
113
465
  rdoc_options: []
114
466
  require_paths:
115
467
  - lib