async-matrix 2.0.1 → 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 (81) 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/ext/async_matrix_e2ee/src/lib.rs +43 -2
  6. data/lib/async/matrix/api/chain.rb +120 -94
  7. data/lib/async/matrix/api/concat.rb +28 -22
  8. data/lib/async/matrix/api/path_tree.rb +71 -44
  9. data/lib/async/matrix/api.rb +6 -1
  10. data/lib/async/matrix/auth_error.rb +20 -0
  11. data/lib/async/matrix/bad_json_error.rb +20 -0
  12. data/lib/async/matrix/client.rb +142 -110
  13. data/lib/async/matrix/config/vivify.rb +107 -0
  14. data/lib/async/matrix/config.rb +184 -0
  15. data/lib/async/matrix/content.rb +106 -0
  16. data/lib/async/matrix/double_puppet_client.rb +1 -1
  17. data/lib/async/matrix/e2ee.rb +37 -0
  18. data/lib/async/matrix/error.rb +0 -27
  19. data/lib/async/matrix/{application_service/error_response.rb → error_response.rb} +10 -10
  20. data/lib/async/matrix/event.rb +197 -0
  21. data/lib/async/matrix/homeserver_error.rb +20 -0
  22. data/lib/async/matrix/invalid_endpoint_error.rb +20 -0
  23. data/lib/async/matrix/media_client.rb +46 -35
  24. data/lib/async/matrix/not_found_error.rb +20 -0
  25. data/lib/async/matrix/notifier.rb +7 -3
  26. data/lib/async/matrix/response_too_large_error.rb +20 -0
  27. data/lib/async/matrix/schema/registry.rb +367 -340
  28. data/lib/async/matrix/schema/validation_error.rb +221 -214
  29. data/lib/async/matrix/schema.rb +161 -161
  30. data/lib/async/matrix/version.rb +3 -3
  31. data/lib/async/matrix.rb +0 -7
  32. metadata +28 -122
  33. data/lib/async/discord/api/path_tree.rb +0 -127
  34. data/lib/async/discord/api.rb +0 -151
  35. data/lib/async/discord/client.rb +0 -283
  36. data/lib/async/discord/error.rb +0 -84
  37. data/lib/async/discord/gateway.rb +0 -359
  38. data/lib/async/discord.rb +0 -15
  39. data/lib/async/matrix/application_service/bot.rb +0 -232
  40. data/lib/async/matrix/application_service/config/schema/analytics.json +0 -21
  41. data/lib/async/matrix/application_service/config/schema/appservice.json +0 -82
  42. data/lib/async/matrix/application_service/config/schema/backfill.json +0 -91
  43. data/lib/async/matrix/application_service/config/schema/bridge.json +0 -209
  44. data/lib/async/matrix/application_service/config/schema/config.json +0 -61
  45. data/lib/async/matrix/application_service/config/schema/database.json +0 -38
  46. data/lib/async/matrix/application_service/config/schema/direct_media.json +0 -35
  47. data/lib/async/matrix/application_service/config/schema/double_puppet.json +0 -24
  48. data/lib/async/matrix/application_service/config/schema/encryption.json +0 -164
  49. data/lib/async/matrix/application_service/config/schema/homeserver.json +0 -58
  50. data/lib/async/matrix/application_service/config/schema/logging.json +0 -50
  51. data/lib/async/matrix/application_service/config/schema/management_room_texts.json +0 -25
  52. data/lib/async/matrix/application_service/config/schema/matrix.json +0 -45
  53. data/lib/async/matrix/application_service/config/schema/permissions.json +0 -54
  54. data/lib/async/matrix/application_service/config/schema/provisioning.json +0 -23
  55. data/lib/async/matrix/application_service/config/schema/public_media.json +0 -39
  56. data/lib/async/matrix/application_service/config/schema/relay.json +0 -43
  57. data/lib/async/matrix/application_service/config/vivify.rb +0 -109
  58. data/lib/async/matrix/application_service/config.rb +0 -225
  59. data/lib/async/matrix/application_service/dispatcher.rb +0 -185
  60. data/lib/async/matrix/application_service/event.rb +0 -285
  61. data/lib/async/matrix/application_service/server.rb +0 -430
  62. data/lib/async/matrix/application_service/transaction.rb +0 -66
  63. data/lib/async/matrix/application_service/transaction_handler.rb +0 -185
  64. data/lib/async/matrix/application_service/transaction_store.rb +0 -80
  65. data/lib/async/matrix/bridge/discord/db/connection.rb +0 -141
  66. data/lib/async/matrix/bridge/discord/db/file.rb +0 -118
  67. data/lib/async/matrix/bridge/discord/db/guild.rb +0 -120
  68. data/lib/async/matrix/bridge/discord/db/message.rb +0 -160
  69. data/lib/async/matrix/bridge/discord/db/migrations/001_create_users.rb +0 -14
  70. data/lib/async/matrix/bridge/discord/db/migrations/002_create_guilds.rb +0 -14
  71. data/lib/async/matrix/bridge/discord/db/migrations/003_create_portals.rb +0 -23
  72. data/lib/async/matrix/bridge/discord/db/migrations/004_create_puppets.rb +0 -19
  73. data/lib/async/matrix/bridge/discord/db/migrations/005_create_messages.rb +0 -20
  74. data/lib/async/matrix/bridge/discord/db/migrations/006_create_reactions.rb +0 -19
  75. data/lib/async/matrix/bridge/discord/db/migrations/007_create_files.rb +0 -18
  76. data/lib/async/matrix/bridge/discord/db/portal.rb +0 -150
  77. data/lib/async/matrix/bridge/discord/db/puppet.rb +0 -128
  78. data/lib/async/matrix/bridge/discord/db/reaction.rb +0 -165
  79. data/lib/async/matrix/bridge/discord/db/schema.rb +0 -18
  80. data/lib/async/matrix/bridge/discord/db/user.rb +0 -112
  81. 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.0.1"
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.0.1
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'
75
- type: :runtime
76
- prerelease: false
77
- version_requirements: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !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'
46
+ version: '2.5'
89
47
  type: :runtime
90
48
  prerelease: false
91
49
  version_requirements: !ruby/object:Gem::Requirement
92
50
  requirements:
93
51
  - - "~>"
94
52
  - !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
@@ -164,35 +108,36 @@ dependencies:
164
108
  - !ruby/object:Gem::Version
165
109
  version: '0'
166
110
  - !ruby/object:Gem::Dependency
167
- name: sqlite3
111
+ name: rake-compiler
168
112
  requirement: !ruby/object:Gem::Requirement
169
113
  requirements:
170
- - - ">="
114
+ - - "~>"
171
115
  - !ruby/object:Gem::Version
172
- version: '0'
116
+ version: '1.3'
173
117
  type: :development
174
118
  prerelease: false
175
119
  version_requirements: !ruby/object:Gem::Requirement
176
120
  requirements:
177
- - - ">="
121
+ - - "~>"
178
122
  - !ruby/object:Gem::Version
179
- version: '0'
123
+ version: '1.3'
180
124
  - !ruby/object:Gem::Dependency
181
- name: rake-compiler
125
+ name: lefthook
182
126
  requirement: !ruby/object:Gem::Requirement
183
127
  requirements:
184
128
  - - "~>"
185
129
  - !ruby/object:Gem::Version
186
- version: '1.2'
130
+ version: '2.2'
187
131
  type: :development
188
132
  prerelease: false
189
133
  version_requirements: !ruby/object:Gem::Requirement
190
134
  requirements:
191
135
  - - "~>"
192
136
  - !ruby/object:Gem::Version
193
- version: '1.2'
137
+ version: '2.2'
194
138
  description: Async-native Matrix protocol primitives built on the Socketry async ecosystem.
195
- 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.
196
141
  email:
197
142
  - nathankidd@hey.com
198
143
  executables: []
@@ -503,69 +448,30 @@ files:
503
448
  - ext/async_matrix_e2ee/Cargo.toml
504
449
  - ext/async_matrix_e2ee/extconf.rb
505
450
  - ext/async_matrix_e2ee/src/lib.rs
506
- - lib/async/discord.rb
507
- - lib/async/discord/api.rb
508
- - lib/async/discord/api/path_tree.rb
509
- - lib/async/discord/client.rb
510
- - lib/async/discord/error.rb
511
- - lib/async/discord/gateway.rb
512
451
  - lib/async/matrix.rb
513
452
  - lib/async/matrix/api.rb
514
453
  - lib/async/matrix/api/chain.rb
515
454
  - lib/async/matrix/api/concat.rb
516
455
  - lib/async/matrix/api/path_tree.rb
517
- - lib/async/matrix/application_service/bot.rb
518
- - lib/async/matrix/application_service/config.rb
519
- - lib/async/matrix/application_service/config/schema/analytics.json
520
- - lib/async/matrix/application_service/config/schema/appservice.json
521
- - lib/async/matrix/application_service/config/schema/backfill.json
522
- - lib/async/matrix/application_service/config/schema/bridge.json
523
- - lib/async/matrix/application_service/config/schema/config.json
524
- - lib/async/matrix/application_service/config/schema/database.json
525
- - lib/async/matrix/application_service/config/schema/direct_media.json
526
- - lib/async/matrix/application_service/config/schema/double_puppet.json
527
- - lib/async/matrix/application_service/config/schema/encryption.json
528
- - lib/async/matrix/application_service/config/schema/homeserver.json
529
- - lib/async/matrix/application_service/config/schema/logging.json
530
- - lib/async/matrix/application_service/config/schema/management_room_texts.json
531
- - lib/async/matrix/application_service/config/schema/matrix.json
532
- - lib/async/matrix/application_service/config/schema/permissions.json
533
- - lib/async/matrix/application_service/config/schema/provisioning.json
534
- - lib/async/matrix/application_service/config/schema/public_media.json
535
- - lib/async/matrix/application_service/config/schema/relay.json
536
- - lib/async/matrix/application_service/config/vivify.rb
537
- - lib/async/matrix/application_service/dispatcher.rb
538
- - lib/async/matrix/application_service/error_response.rb
539
- - lib/async/matrix/application_service/event.rb
540
- - lib/async/matrix/application_service/server.rb
541
- - lib/async/matrix/application_service/transaction.rb
542
- - lib/async/matrix/application_service/transaction_handler.rb
543
- - lib/async/matrix/application_service/transaction_store.rb
544
- - lib/async/matrix/bridge/discord/db.rb
545
- - lib/async/matrix/bridge/discord/db/connection.rb
546
- - lib/async/matrix/bridge/discord/db/file.rb
547
- - lib/async/matrix/bridge/discord/db/guild.rb
548
- - lib/async/matrix/bridge/discord/db/message.rb
549
- - lib/async/matrix/bridge/discord/db/migrations/001_create_users.rb
550
- - lib/async/matrix/bridge/discord/db/migrations/002_create_guilds.rb
551
- - lib/async/matrix/bridge/discord/db/migrations/003_create_portals.rb
552
- - lib/async/matrix/bridge/discord/db/migrations/004_create_puppets.rb
553
- - lib/async/matrix/bridge/discord/db/migrations/005_create_messages.rb
554
- - lib/async/matrix/bridge/discord/db/migrations/006_create_reactions.rb
555
- - lib/async/matrix/bridge/discord/db/migrations/007_create_files.rb
556
- - lib/async/matrix/bridge/discord/db/portal.rb
557
- - lib/async/matrix/bridge/discord/db/puppet.rb
558
- - lib/async/matrix/bridge/discord/db/reaction.rb
559
- - lib/async/matrix/bridge/discord/db/schema.rb
560
- - lib/async/matrix/bridge/discord/db/user.rb
456
+ - lib/async/matrix/auth_error.rb
457
+ - lib/async/matrix/bad_json_error.rb
561
458
  - lib/async/matrix/client.rb
459
+ - lib/async/matrix/config.rb
460
+ - lib/async/matrix/config/vivify.rb
562
461
  - lib/async/matrix/connection.rb
462
+ - lib/async/matrix/content.rb
563
463
  - lib/async/matrix/double_puppet_client.rb
564
464
  - lib/async/matrix/e2ee.rb
565
465
  - lib/async/matrix/endpoint.rb
566
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
567
471
  - lib/async/matrix/media_client.rb
472
+ - lib/async/matrix/not_found_error.rb
568
473
  - lib/async/matrix/notifier.rb
474
+ - lib/async/matrix/response_too_large_error.rb
569
475
  - lib/async/matrix/schema.rb
570
476
  - lib/async/matrix/schema/registry.rb
571
477
  - lib/async/matrix/schema/validation_error.rb