async-matrix 2.1.0 → 3.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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +8 -8
  3. data/README.md +33 -58
  4. data/ext/async_matrix_e2ee/Cargo.toml +7 -1
  5. data/lib/async/matrix/api/chain.rb +120 -94
  6. data/lib/async/matrix/api/concat.rb +28 -22
  7. data/lib/async/matrix/api/path_tree.rb +71 -44
  8. data/lib/async/matrix/api.rb +6 -1
  9. data/lib/async/matrix/auth_error.rb +20 -0
  10. data/lib/async/matrix/bad_json_error.rb +20 -0
  11. data/lib/async/matrix/client.rb +142 -110
  12. data/lib/async/matrix/config/vivify.rb +107 -0
  13. data/lib/async/matrix/config.rb +184 -0
  14. data/lib/async/matrix/content.rb +106 -0
  15. data/lib/async/matrix/double_puppet_client.rb +1 -1
  16. data/lib/async/matrix/error.rb +0 -27
  17. data/lib/async/matrix/{application_service/error_response.rb → error_response.rb} +10 -10
  18. data/lib/async/matrix/event.rb +197 -0
  19. data/lib/async/matrix/homeserver_error.rb +20 -0
  20. data/lib/async/matrix/invalid_endpoint_error.rb +20 -0
  21. data/lib/async/matrix/media_client.rb +46 -35
  22. data/lib/async/matrix/not_found_error.rb +20 -0
  23. data/lib/async/matrix/notifier.rb +7 -3
  24. data/lib/async/matrix/response_too_large_error.rb +20 -0
  25. data/lib/async/matrix/schema/registry.rb +367 -340
  26. data/lib/async/matrix/schema/validation_error.rb +221 -214
  27. data/lib/async/matrix/schema.rb +161 -161
  28. data/lib/async/matrix/version.rb +3 -3
  29. data/lib/async/matrix.rb +0 -7
  30. metadata +24 -132
  31. data/lib/async/discord/api/path_tree.rb +0 -127
  32. data/lib/async/discord/api.rb +0 -151
  33. data/lib/async/discord/client.rb +0 -283
  34. data/lib/async/discord/error.rb +0 -84
  35. data/lib/async/discord/gateway.rb +0 -359
  36. data/lib/async/discord.rb +0 -15
  37. data/lib/async/matrix/application_service/bot.rb +0 -232
  38. data/lib/async/matrix/application_service/config/schema/analytics.json +0 -21
  39. data/lib/async/matrix/application_service/config/schema/appservice.json +0 -82
  40. data/lib/async/matrix/application_service/config/schema/backfill.json +0 -91
  41. data/lib/async/matrix/application_service/config/schema/bridge.json +0 -209
  42. data/lib/async/matrix/application_service/config/schema/config.json +0 -61
  43. data/lib/async/matrix/application_service/config/schema/database.json +0 -38
  44. data/lib/async/matrix/application_service/config/schema/direct_media.json +0 -35
  45. data/lib/async/matrix/application_service/config/schema/double_puppet.json +0 -24
  46. data/lib/async/matrix/application_service/config/schema/encryption.json +0 -164
  47. data/lib/async/matrix/application_service/config/schema/homeserver.json +0 -58
  48. data/lib/async/matrix/application_service/config/schema/logging.json +0 -50
  49. data/lib/async/matrix/application_service/config/schema/management_room_texts.json +0 -25
  50. data/lib/async/matrix/application_service/config/schema/matrix.json +0 -45
  51. data/lib/async/matrix/application_service/config/schema/permissions.json +0 -54
  52. data/lib/async/matrix/application_service/config/schema/provisioning.json +0 -23
  53. data/lib/async/matrix/application_service/config/schema/public_media.json +0 -39
  54. data/lib/async/matrix/application_service/config/schema/relay.json +0 -43
  55. data/lib/async/matrix/application_service/config/vivify.rb +0 -109
  56. data/lib/async/matrix/application_service/config.rb +0 -225
  57. data/lib/async/matrix/application_service/dispatcher.rb +0 -185
  58. data/lib/async/matrix/application_service/event.rb +0 -285
  59. data/lib/async/matrix/application_service/server.rb +0 -430
  60. data/lib/async/matrix/application_service/transaction.rb +0 -66
  61. data/lib/async/matrix/application_service/transaction_handler.rb +0 -185
  62. data/lib/async/matrix/application_service/transaction_store.rb +0 -80
  63. data/lib/async/matrix/bridge/discord/db/connection.rb +0 -141
  64. data/lib/async/matrix/bridge/discord/db/file.rb +0 -118
  65. data/lib/async/matrix/bridge/discord/db/guild.rb +0 -120
  66. data/lib/async/matrix/bridge/discord/db/message.rb +0 -160
  67. data/lib/async/matrix/bridge/discord/db/migrations/001_create_users.rb +0 -14
  68. data/lib/async/matrix/bridge/discord/db/migrations/002_create_guilds.rb +0 -14
  69. data/lib/async/matrix/bridge/discord/db/migrations/003_create_portals.rb +0 -23
  70. data/lib/async/matrix/bridge/discord/db/migrations/004_create_puppets.rb +0 -19
  71. data/lib/async/matrix/bridge/discord/db/migrations/005_create_messages.rb +0 -20
  72. data/lib/async/matrix/bridge/discord/db/migrations/006_create_reactions.rb +0 -19
  73. data/lib/async/matrix/bridge/discord/db/migrations/007_create_files.rb +0 -18
  74. data/lib/async/matrix/bridge/discord/db/portal.rb +0 -150
  75. data/lib/async/matrix/bridge/discord/db/puppet.rb +0 -128
  76. data/lib/async/matrix/bridge/discord/db/reaction.rb +0 -165
  77. data/lib/async/matrix/bridge/discord/db/schema.rb +0 -18
  78. data/lib/async/matrix/bridge/discord/db/user.rb +0 -112
  79. data/lib/async/matrix/bridge/discord/db.rb +0 -138
@@ -4,167 +4,167 @@
4
4
  # Copyright, 2026, by General Intelligence Systems.
5
5
 
6
6
  module Async
7
- module Matrix
8
- # Schema-driven validation for Matrix events using the official matrix-org/matrix-spec
9
- # YAML schemas and the json_schemer gem.
10
- #
11
- # Schemas are loaded lazily from data/matrix-spec/event-schemas/schema/ and cached
12
- # for the process lifetime. This ensures validation is always up-to-date with the
13
- # spec -- just re-run `bin/fetch-matrix-schemas` to pull the latest.
14
- #
15
- # # Look up a schema by event type
16
- # Async::Matrix::Schema["m.room.message"] # => JSONSchemer::Schema
17
- #
18
- # # Validate an event hash
19
- # Async::Matrix::Schema.valid?(event_hash) # => true/false
20
- # Async::Matrix::Schema.validate(event_hash) # => [errors]
21
- #
22
- # # List all known event types
23
- # Async::Matrix::Schema.event_types # => ["m.accepted_terms", "m.call.answer", ...]
24
- #
25
- module Schema
26
- class << self
27
- # Look up a schema by Matrix event type.
28
- # @param event_type [String] e.g. "m.room.message"
29
- # @return [JSONSchemer::Schema, nil]
30
- def [](event_type)
31
- Registry.instance[event_type]
32
- end
33
-
34
- # Look up a variant schema.
35
- # @param event_type [String] e.g. "m.room.message"
36
- # @param subtype [String] e.g. "m.text"
37
- # @return [JSONSchemer::Schema, nil]
38
- def variant(event_type, subtype)
39
- Registry.instance.variant(event_type, subtype)
40
- end
41
-
42
- # Validate an event hash against its schema.
43
- # @param event_hash [Hash] the raw event data (string keys)
44
- # @return [Array<Hash>] array of error hashes (empty if valid)
45
- def validate(event_hash)
46
- Registry.instance.validate(event_hash)
47
- end
48
-
49
- # Boolean validation.
50
- # @param event_hash [Hash] the raw event data (string keys)
51
- # @return [Boolean]
52
- def valid?(event_hash)
53
- Registry.instance.valid?(event_hash)
54
- end
55
-
56
- # All known base event types.
57
- # @return [Array<String>] sorted
58
- def event_types
59
- Registry.instance.event_types
60
- end
61
-
62
- # All known variant types as [event_type, subtype] pairs.
63
- # @return [Array<Array(String, String)>]
64
- def variant_types
65
- Registry.instance.variant_types
66
- end
67
-
68
- # Content properties defined by the schema for a given event type.
69
- # @return [Array<String>]
70
- def content_properties(event_type)
71
- Registry.instance.content_properties(event_type)
72
- end
73
-
74
- # Parse a raw event hash into a schema-aware Event.
75
- # @param event_hash [Hash] the raw event data (string keys)
76
- # @return [ApplicationService::Event]
77
- def parse(event_hash)
78
- ApplicationService::Event.new(event_hash)
79
- end
80
-
81
- # Total schemas loaded (base + variants).
82
- # @return [Integer]
83
- def size
84
- Registry.instance.size
85
- end
86
- end
87
- end
88
- end
7
+ module Matrix
8
+ # Schema-driven validation for Matrix events using the official matrix-org/matrix-spec
9
+ # YAML schemas and the json_schemer gem.
10
+ #
11
+ # Schemas are loaded lazily from data/matrix-spec/event-schemas/schema/ and cached
12
+ # for the process lifetime. This ensures validation is always up-to-date with the
13
+ # spec -- just re-run `bin/fetch-matrix-schemas` to pull the latest.
14
+ #
15
+ # # Look up a schema by event type
16
+ # Async::Matrix::Schema["m.room.message"] # => JSONSchemer::Schema
17
+ #
18
+ # # Validate an event hash
19
+ # Async::Matrix::Schema.valid?(event_hash) # => true/false
20
+ # Async::Matrix::Schema.validate(event_hash) # => [errors]
21
+ #
22
+ # # List all known event types
23
+ # Async::Matrix::Schema.event_types # => ["m.accepted_terms", "m.call.answer", ...]
24
+ #
25
+ module Schema
26
+ class << self
27
+ # Look up a schema by Matrix event type.
28
+ # @param event_type [String] e.g. "m.room.message"
29
+ # @return [JSONSchemer::Schema, nil]
30
+ def [](event_type)
31
+ Registry.instance[event_type]
32
+ end
33
+
34
+ # Look up a variant schema.
35
+ # @param event_type [String] e.g. "m.room.message"
36
+ # @param subtype [String] e.g. "m.text"
37
+ # @return [JSONSchemer::Schema, nil]
38
+ def variant(event_type, subtype)
39
+ Registry.instance.variant(event_type, subtype)
40
+ end
41
+
42
+ # Validate an event hash against its schema.
43
+ # @param event_hash [Hash] the raw event data (string keys)
44
+ # @return [Array<Hash>] array of error hashes (empty if valid)
45
+ def validate(event_hash)
46
+ Registry.instance.validate(event_hash)
47
+ end
48
+
49
+ # Boolean validation.
50
+ # @param event_hash [Hash] the raw event data (string keys)
51
+ # @return [Boolean]
52
+ def valid?(event_hash)
53
+ Registry.instance.valid?(event_hash)
54
+ end
55
+
56
+ # All known base event types.
57
+ # @return [Array<String>] sorted
58
+ def event_types
59
+ Registry.instance.event_types
60
+ end
61
+
62
+ # All known variant types as [event_type, subtype] pairs.
63
+ # @return [Array<Array(String, String)>]
64
+ def variant_types
65
+ Registry.instance.variant_types
66
+ end
67
+
68
+ # Content properties defined by the schema for a given event type.
69
+ # @return [Array<String>]
70
+ def content_properties(event_type)
71
+ Registry.instance.content_properties(event_type)
72
+ end
73
+
74
+ # Parse a raw event hash into a schema-aware Event.
75
+ # @param event_hash [Hash] the raw event data (string keys)
76
+ # @return [Event]
77
+ def parse(event_hash)
78
+ Event.new(event_hash)
79
+ end
80
+
81
+ # Total schemas loaded (base + variants).
82
+ # @return [Integer]
83
+ def size
84
+ Registry.instance.size
85
+ end
86
+ end
87
+ end
88
+ end
89
89
  end
90
90
 
91
91
  __END__
92
- describe "Async::Matrix::Schema" do
93
- it "looks up schemas by event type" do
94
- schema = Async::Matrix::Schema["m.room.message"]
95
- schema.should.not.be.nil
96
- schema.should.be.kind_of JSONSchemer::Schema
97
- end
98
-
99
- it "returns nil for unknown event types" do
100
- Async::Matrix::Schema["m.fake.event"].should.be.nil
101
- end
102
-
103
- it "validates event hashes" do
104
- valid_event = {
105
- "type" => "m.room.message",
106
- "content" => {"msgtype" => "m.text", "body" => "hello"},
107
- "event_id" => "$abc123",
108
- "sender" => "@alice:example.org",
109
- "origin_server_ts" => 1234567890,
110
- "room_id" => "!room:example.org"
111
- }
112
- Async::Matrix::Schema.valid?(valid_event).should == true
113
- end
114
-
115
- it "returns errors for invalid events" do
116
- invalid_event = {
117
- "type" => "m.room.message",
118
- "content" => {"msgtype" => "m.text"},
119
- "event_id" => "$abc123",
120
- "sender" => "@alice:example.org",
121
- "origin_server_ts" => 1234567890,
122
- "room_id" => "!room:example.org"
123
- }
124
- errors = Async::Matrix::Schema.validate(invalid_event)
125
- errors.should.not.be.empty
126
- end
127
-
128
- it "lists event types" do
129
- types = Async::Matrix::Schema.event_types
130
- types.should.be.kind_of Array
131
- types.should.include "m.room.message"
132
- types.should.include "m.room.member"
133
- end
134
-
135
- it "lists variant types" do
136
- variants = Async::Matrix::Schema.variant_types
137
- variants.should.not.be.empty
138
- end
139
-
140
- it "looks up variant schemas" do
141
- schema = Async::Matrix::Schema.variant("m.room.message", "m.text")
142
- schema.should.not.be.nil
143
- end
144
-
145
- it "returns content properties" do
146
- props = Async::Matrix::Schema.content_properties("m.room.message")
147
- props.should.include "msgtype"
148
- props.should.include "body"
149
- end
150
-
151
- it "reports total schema count" do
152
- Async::Matrix::Schema.size.should.be > 50
153
- end
154
-
155
- it "parses a raw hash into a schema-aware Event" do
156
- event = Async::Matrix::Schema.parse({
157
- "type" => "m.room.message",
158
- "content" => {"msgtype" => "m.text", "body" => "hello"},
159
- "event_id" => "$abc123",
160
- "sender" => "@alice:example.org",
161
- "origin_server_ts" => 1234567890,
162
- "room_id" => "!room:example.org"
163
- })
164
- event.should.be.kind_of Async::Matrix::ApplicationService::Event
165
- event.type.should == "m.room.message"
166
- event.content.body.should == "hello"
167
- event.valid?.should == true
168
- event.schema.should.not.be.nil
169
- end
170
- end
92
+ describe "Async::Matrix::Schema" do
93
+ it "looks up schemas by event type" do
94
+ schema = Async::Matrix::Schema["m.room.message"]
95
+ schema.should.not.be.nil
96
+ schema.should.be.kind_of JSONSchemer::Schema
97
+ end
98
+
99
+ it "returns nil for unknown event types" do
100
+ Async::Matrix::Schema["m.fake.event"].should.be.nil
101
+ end
102
+
103
+ it "validates event hashes" do
104
+ valid_event = {
105
+ "type" => "m.room.message",
106
+ "content" => {"msgtype" => "m.text", "body" => "hello"},
107
+ "event_id" => "$abc123",
108
+ "sender" => "@alice:example.org",
109
+ "origin_server_ts" => 1234567890,
110
+ "room_id" => "!room:example.org"
111
+ }
112
+ Async::Matrix::Schema.valid?(valid_event).should == true
113
+ end
114
+
115
+ it "returns errors for invalid events" do
116
+ invalid_event = {
117
+ "type" => "m.room.message",
118
+ "content" => {"msgtype" => "m.text"},
119
+ "event_id" => "$abc123",
120
+ "sender" => "@alice:example.org",
121
+ "origin_server_ts" => 1234567890,
122
+ "room_id" => "!room:example.org"
123
+ }
124
+ errors = Async::Matrix::Schema.validate(invalid_event)
125
+ errors.should.not.be.empty
126
+ end
127
+
128
+ it "lists event types" do
129
+ types = Async::Matrix::Schema.event_types
130
+ types.should.be.kind_of Array
131
+ types.should.include "m.room.message"
132
+ types.should.include "m.room.member"
133
+ end
134
+
135
+ it "lists variant types" do
136
+ variants = Async::Matrix::Schema.variant_types
137
+ variants.should.not.be.empty
138
+ end
139
+
140
+ it "looks up variant schemas" do
141
+ schema = Async::Matrix::Schema.variant("m.room.message", "m.text")
142
+ schema.should.not.be.nil
143
+ end
144
+
145
+ it "returns content properties" do
146
+ props = Async::Matrix::Schema.content_properties("m.room.message")
147
+ props.should.include "msgtype"
148
+ props.should.include "body"
149
+ end
150
+
151
+ it "reports total schema count" do
152
+ Async::Matrix::Schema.size.should.be > 50
153
+ end
154
+
155
+ it "parses a raw hash into a schema-aware Event" do
156
+ event = Async::Matrix::Schema.parse({
157
+ "type" => "m.room.message",
158
+ "content" => {"msgtype" => "m.text", "body" => "hello"},
159
+ "event_id" => "$abc123",
160
+ "sender" => "@alice:example.org",
161
+ "origin_server_ts" => 1234567890,
162
+ "room_id" => "!room:example.org"
163
+ })
164
+ event.should.be.kind_of Async::Matrix::Event
165
+ event.type.should == "m.room.message"
166
+ event.content.body.should == "hello"
167
+ event.valid?.should == true
168
+ event.schema.should.not.be.nil
169
+ end
170
+ end
@@ -4,7 +4,7 @@
4
4
  # Copyright, 2026, by General Intelligence Systems.
5
5
 
6
6
  module Async
7
- module Matrix
8
- VERSION = "2.1.0"
9
- end
7
+ module Matrix
8
+ VERSION = "3.0.0"
9
+ end
10
10
  end
data/lib/async/matrix.rb CHANGED
@@ -3,7 +3,6 @@
3
3
  # Released under the Apache License, Version 2.0.
4
4
  # Copyright, 2026, by General Intelligence Systems.
5
5
 
6
- require "bundler/setup"
7
6
  require "async/http"
8
7
 
9
8
  module Async
@@ -12,11 +11,5 @@ module Async
12
11
  end
13
12
 
14
13
  Dir.glob("#{__dir__}/matrix/**/*.rb").sort.each do |path|
15
- next if path.include?("/migrations/")
16
- # The Discord bridge is opt-in — it pulls in Sequel and opens a placeholder
17
- # database at load time. Require "async/matrix/bridge/discord/db" explicitly
18
- # when you need it, so plain Matrix use stays free of that dependency.
19
- next if path.include?("/bridge/")
20
14
  require path
21
15
  end
22
-
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: 2.1.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Kidd
@@ -15,84 +15,42 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '2.39'
18
+ version: '2.46'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '2.39'
25
+ version: '2.46'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: async-http
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '0.95'
32
+ version: '0.105'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.95'
40
- - !ruby/object:Gem::Dependency
41
- name: async-websocket
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '0.30'
47
- type: :runtime
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '0.30'
54
- - !ruby/object:Gem::Dependency
55
- name: grape
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '3.3'
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '3.3'
39
+ version: '0.105'
68
40
  - !ruby/object:Gem::Dependency
69
41
  name: json_schemer
70
42
  requirement: !ruby/object:Gem::Requirement
71
43
  requirements:
72
44
  - - "~>"
73
45
  - !ruby/object:Gem::Version
74
- version: '2.0'
46
+ version: '2.5'
75
47
  type: :runtime
76
48
  prerelease: false
77
49
  version_requirements: !ruby/object:Gem::Requirement
78
50
  requirements:
79
51
  - - "~>"
80
52
  - !ruby/object:Gem::Version
81
- version: '2.0'
82
- - !ruby/object:Gem::Dependency
83
- name: sequel
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '5.0'
89
- type: :runtime
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '5.0'
53
+ version: '2.5'
96
54
  - !ruby/object:Gem::Dependency
97
55
  name: string_builder
98
56
  requirement: !ruby/object:Gem::Requirement
@@ -135,20 +93,6 @@ dependencies:
135
93
  - - "~>"
136
94
  - !ruby/object:Gem::Version
137
95
  version: '1.0'
138
- - !ruby/object:Gem::Dependency
139
- name: falcon
140
- requirement: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: '0.55'
145
- type: :development
146
- prerelease: false
147
- version_requirements: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '0.55'
152
96
  - !ruby/object:Gem::Dependency
153
97
  name: logger
154
98
  requirement: !ruby/object:Gem::Requirement
@@ -163,50 +107,37 @@ dependencies:
163
107
  - - ">="
164
108
  - !ruby/object:Gem::Version
165
109
  version: '0'
166
- - !ruby/object:Gem::Dependency
167
- name: sqlite3
168
- requirement: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - ">="
171
- - !ruby/object:Gem::Version
172
- version: '0'
173
- type: :development
174
- prerelease: false
175
- version_requirements: !ruby/object:Gem::Requirement
176
- requirements:
177
- - - ">="
178
- - !ruby/object:Gem::Version
179
- version: '0'
180
110
  - !ruby/object:Gem::Dependency
181
111
  name: rake-compiler
182
112
  requirement: !ruby/object:Gem::Requirement
183
113
  requirements:
184
114
  - - "~>"
185
115
  - !ruby/object:Gem::Version
186
- version: '1.2'
116
+ version: '1.3'
187
117
  type: :development
188
118
  prerelease: false
189
119
  version_requirements: !ruby/object:Gem::Requirement
190
120
  requirements:
191
121
  - - "~>"
192
122
  - !ruby/object:Gem::Version
193
- version: '1.2'
123
+ version: '1.3'
194
124
  - !ruby/object:Gem::Dependency
195
125
  name: lefthook
196
126
  requirement: !ruby/object:Gem::Requirement
197
127
  requirements:
198
128
  - - "~>"
199
129
  - !ruby/object:Gem::Version
200
- version: '2.1'
130
+ version: '2.2'
201
131
  type: :development
202
132
  prerelease: false
203
133
  version_requirements: !ruby/object:Gem::Requirement
204
134
  requirements:
205
135
  - - "~>"
206
136
  - !ruby/object:Gem::Version
207
- version: '2.1'
137
+ version: '2.2'
208
138
  description: Async-native Matrix protocol primitives built on the Socketry async ecosystem.
209
- Provides well-known discovery, event notification, and application service models.
139
+ Provides a Client-Server API client, schema-validated events, media and end-to-end
140
+ encryption.
210
141
  email:
211
142
  - nathankidd@hey.com
212
143
  executables: []
@@ -517,69 +448,30 @@ files:
517
448
  - ext/async_matrix_e2ee/Cargo.toml
518
449
  - ext/async_matrix_e2ee/extconf.rb
519
450
  - ext/async_matrix_e2ee/src/lib.rs
520
- - lib/async/discord.rb
521
- - lib/async/discord/api.rb
522
- - lib/async/discord/api/path_tree.rb
523
- - lib/async/discord/client.rb
524
- - lib/async/discord/error.rb
525
- - lib/async/discord/gateway.rb
526
451
  - lib/async/matrix.rb
527
452
  - lib/async/matrix/api.rb
528
453
  - lib/async/matrix/api/chain.rb
529
454
  - lib/async/matrix/api/concat.rb
530
455
  - lib/async/matrix/api/path_tree.rb
531
- - lib/async/matrix/application_service/bot.rb
532
- - lib/async/matrix/application_service/config.rb
533
- - lib/async/matrix/application_service/config/schema/analytics.json
534
- - lib/async/matrix/application_service/config/schema/appservice.json
535
- - lib/async/matrix/application_service/config/schema/backfill.json
536
- - lib/async/matrix/application_service/config/schema/bridge.json
537
- - lib/async/matrix/application_service/config/schema/config.json
538
- - lib/async/matrix/application_service/config/schema/database.json
539
- - lib/async/matrix/application_service/config/schema/direct_media.json
540
- - lib/async/matrix/application_service/config/schema/double_puppet.json
541
- - lib/async/matrix/application_service/config/schema/encryption.json
542
- - lib/async/matrix/application_service/config/schema/homeserver.json
543
- - lib/async/matrix/application_service/config/schema/logging.json
544
- - lib/async/matrix/application_service/config/schema/management_room_texts.json
545
- - lib/async/matrix/application_service/config/schema/matrix.json
546
- - lib/async/matrix/application_service/config/schema/permissions.json
547
- - lib/async/matrix/application_service/config/schema/provisioning.json
548
- - lib/async/matrix/application_service/config/schema/public_media.json
549
- - lib/async/matrix/application_service/config/schema/relay.json
550
- - lib/async/matrix/application_service/config/vivify.rb
551
- - lib/async/matrix/application_service/dispatcher.rb
552
- - lib/async/matrix/application_service/error_response.rb
553
- - lib/async/matrix/application_service/event.rb
554
- - lib/async/matrix/application_service/server.rb
555
- - lib/async/matrix/application_service/transaction.rb
556
- - lib/async/matrix/application_service/transaction_handler.rb
557
- - lib/async/matrix/application_service/transaction_store.rb
558
- - lib/async/matrix/bridge/discord/db.rb
559
- - lib/async/matrix/bridge/discord/db/connection.rb
560
- - lib/async/matrix/bridge/discord/db/file.rb
561
- - lib/async/matrix/bridge/discord/db/guild.rb
562
- - lib/async/matrix/bridge/discord/db/message.rb
563
- - lib/async/matrix/bridge/discord/db/migrations/001_create_users.rb
564
- - lib/async/matrix/bridge/discord/db/migrations/002_create_guilds.rb
565
- - lib/async/matrix/bridge/discord/db/migrations/003_create_portals.rb
566
- - lib/async/matrix/bridge/discord/db/migrations/004_create_puppets.rb
567
- - lib/async/matrix/bridge/discord/db/migrations/005_create_messages.rb
568
- - lib/async/matrix/bridge/discord/db/migrations/006_create_reactions.rb
569
- - lib/async/matrix/bridge/discord/db/migrations/007_create_files.rb
570
- - lib/async/matrix/bridge/discord/db/portal.rb
571
- - lib/async/matrix/bridge/discord/db/puppet.rb
572
- - lib/async/matrix/bridge/discord/db/reaction.rb
573
- - lib/async/matrix/bridge/discord/db/schema.rb
574
- - lib/async/matrix/bridge/discord/db/user.rb
456
+ - lib/async/matrix/auth_error.rb
457
+ - lib/async/matrix/bad_json_error.rb
575
458
  - lib/async/matrix/client.rb
459
+ - lib/async/matrix/config.rb
460
+ - lib/async/matrix/config/vivify.rb
576
461
  - lib/async/matrix/connection.rb
462
+ - lib/async/matrix/content.rb
577
463
  - lib/async/matrix/double_puppet_client.rb
578
464
  - lib/async/matrix/e2ee.rb
579
465
  - lib/async/matrix/endpoint.rb
580
466
  - lib/async/matrix/error.rb
467
+ - lib/async/matrix/error_response.rb
468
+ - lib/async/matrix/event.rb
469
+ - lib/async/matrix/homeserver_error.rb
470
+ - lib/async/matrix/invalid_endpoint_error.rb
581
471
  - lib/async/matrix/media_client.rb
472
+ - lib/async/matrix/not_found_error.rb
582
473
  - lib/async/matrix/notifier.rb
474
+ - lib/async/matrix/response_too_large_error.rb
583
475
  - lib/async/matrix/schema.rb
584
476
  - lib/async/matrix/schema/registry.rb
585
477
  - lib/async/matrix/schema/validation_error.rb