async-matrix 2.1.0-arm-linux → 3.0.0-arm-linux

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -58
  3. data/lib/async/matrix/3.3/async_matrix_e2ee.so +0 -0
  4. data/lib/async/matrix/3.4/async_matrix_e2ee.so +0 -0
  5. data/lib/async/matrix/4.0/async_matrix_e2ee.so +0 -0
  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/error.rb +0 -27
  18. data/lib/async/matrix/{application_service/error_response.rb → error_response.rb} +10 -10
  19. data/lib/async/matrix/event.rb +197 -0
  20. data/lib/async/matrix/homeserver_error.rb +20 -0
  21. data/lib/async/matrix/invalid_endpoint_error.rb +20 -0
  22. data/lib/async/matrix/media_client.rb +46 -35
  23. data/lib/async/matrix/not_found_error.rb +20 -0
  24. data/lib/async/matrix/notifier.rb +7 -3
  25. data/lib/async/matrix/response_too_large_error.rb +20 -0
  26. data/lib/async/matrix/schema/registry.rb +367 -340
  27. data/lib/async/matrix/schema/validation_error.rb +221 -214
  28. data/lib/async/matrix/schema.rb +161 -161
  29. data/lib/async/matrix/version.rb +3 -3
  30. data/lib/async/matrix.rb +0 -7
  31. metadata +25 -133
  32. data/lib/async/discord/api/path_tree.rb +0 -127
  33. data/lib/async/discord/api.rb +0 -151
  34. data/lib/async/discord/client.rb +0 -283
  35. data/lib/async/discord/error.rb +0 -84
  36. data/lib/async/discord/gateway.rb +0 -359
  37. data/lib/async/discord.rb +0 -15
  38. data/lib/async/matrix/application_service/bot.rb +0 -232
  39. data/lib/async/matrix/application_service/config/schema/analytics.json +0 -21
  40. data/lib/async/matrix/application_service/config/schema/appservice.json +0 -82
  41. data/lib/async/matrix/application_service/config/schema/backfill.json +0 -91
  42. data/lib/async/matrix/application_service/config/schema/bridge.json +0 -209
  43. data/lib/async/matrix/application_service/config/schema/config.json +0 -61
  44. data/lib/async/matrix/application_service/config/schema/database.json +0 -38
  45. data/lib/async/matrix/application_service/config/schema/direct_media.json +0 -35
  46. data/lib/async/matrix/application_service/config/schema/double_puppet.json +0 -24
  47. data/lib/async/matrix/application_service/config/schema/encryption.json +0 -164
  48. data/lib/async/matrix/application_service/config/schema/homeserver.json +0 -58
  49. data/lib/async/matrix/application_service/config/schema/logging.json +0 -50
  50. data/lib/async/matrix/application_service/config/schema/management_room_texts.json +0 -25
  51. data/lib/async/matrix/application_service/config/schema/matrix.json +0 -45
  52. data/lib/async/matrix/application_service/config/schema/permissions.json +0 -54
  53. data/lib/async/matrix/application_service/config/schema/provisioning.json +0 -23
  54. data/lib/async/matrix/application_service/config/schema/public_media.json +0 -39
  55. data/lib/async/matrix/application_service/config/schema/relay.json +0 -43
  56. data/lib/async/matrix/application_service/config/vivify.rb +0 -109
  57. data/lib/async/matrix/application_service/config.rb +0 -225
  58. data/lib/async/matrix/application_service/dispatcher.rb +0 -185
  59. data/lib/async/matrix/application_service/event.rb +0 -285
  60. data/lib/async/matrix/application_service/server.rb +0 -430
  61. data/lib/async/matrix/application_service/transaction.rb +0 -66
  62. data/lib/async/matrix/application_service/transaction_handler.rb +0 -185
  63. data/lib/async/matrix/application_service/transaction_store.rb +0 -80
  64. data/lib/async/matrix/bridge/discord/db/connection.rb +0 -141
  65. data/lib/async/matrix/bridge/discord/db/file.rb +0 -118
  66. data/lib/async/matrix/bridge/discord/db/guild.rb +0 -120
  67. data/lib/async/matrix/bridge/discord/db/message.rb +0 -160
  68. data/lib/async/matrix/bridge/discord/db/migrations/001_create_users.rb +0 -14
  69. data/lib/async/matrix/bridge/discord/db/migrations/002_create_guilds.rb +0 -14
  70. data/lib/async/matrix/bridge/discord/db/migrations/003_create_portals.rb +0 -23
  71. data/lib/async/matrix/bridge/discord/db/migrations/004_create_puppets.rb +0 -19
  72. data/lib/async/matrix/bridge/discord/db/migrations/005_create_messages.rb +0 -20
  73. data/lib/async/matrix/bridge/discord/db/migrations/006_create_reactions.rb +0 -19
  74. data/lib/async/matrix/bridge/discord/db/migrations/007_create_files.rb +0 -18
  75. data/lib/async/matrix/bridge/discord/db/portal.rb +0 -150
  76. data/lib/async/matrix/bridge/discord/db/puppet.rb +0 -128
  77. data/lib/async/matrix/bridge/discord/db/reaction.rb +0 -165
  78. data/lib/async/matrix/bridge/discord/db/schema.rb +0 -18
  79. data/lib/async/matrix/bridge/discord/db/user.rb +0 -112
  80. data/lib/async/matrix/bridge/discord/db.rb +0 -138
@@ -1,138 +0,0 @@
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 "sequel"
7
- require "sequel/extensions/migration"
8
-
9
- # The Discord bridge's database layer. Requiring this file loads the whole
10
- # subsystem: the Sequel placeholder (schema), the connection helper, and every
11
- # model class, so DB.connect can bind them all.
12
- require_relative "db/schema"
13
- require_relative "db/connection"
14
- require_relative "db/user"
15
- require_relative "db/guild"
16
- require_relative "db/portal"
17
- require_relative "db/puppet"
18
- require_relative "db/message"
19
- require_relative "db/reaction"
20
- require_relative "db/file"
21
-
22
- module Async
23
- module Matrix
24
- module Bridge
25
- module Discord
26
- # Database module for the Discord bridge.
27
- #
28
- # Establishes a connection using the bridge config's database section,
29
- # runs Sequel migrations, and wires up all model classes to the database.
30
- #
31
- # Supports both SQLite (with foreign keys + WAL) and PostgreSQL.
32
- #
33
- # db = Async::Matrix::Bridge::Discord::DB.connect(config)
34
- # # All models are now ready:
35
- # DB::User.create(mxid: "@alice:example.com")
36
- # DB::Portal.where(discord_guild_id: "123").all
37
- #
38
- module DB
39
- MIGRATIONS_PATH = File.join(__dir__, "db", "migrations").freeze
40
-
41
- # Connect to the database, run migrations, and bind all models.
42
- #
43
- # @param config [Async::Matrix::ApplicationService::Config] the bridge config
44
- # @return [Sequel::Database]
45
- def self.connect(config)
46
- db = Connection.establish(config.database)
47
- migrate!(db)
48
- bind_models(db)
49
- db
50
- end
51
-
52
- # Run pending migrations.
53
- #
54
- # @param db [Sequel::Database]
55
- def self.migrate!(db)
56
- Sequel::Migrator.run(db, MIGRATIONS_PATH)
57
- end
58
-
59
- # Bind all model classes to the given database.
60
- #
61
- # @param db [Sequel::Database]
62
- def self.bind_models(db)
63
- Async::Matrix::Bridge::Discord::DB::User.dataset = db[:users]
64
- Async::Matrix::Bridge::Discord::DB::Guild.dataset = db[:guilds]
65
- Async::Matrix::Bridge::Discord::DB::Portal.dataset = db[:portals]
66
- Async::Matrix::Bridge::Discord::DB::Puppet.dataset = db[:puppets]
67
- Async::Matrix::Bridge::Discord::DB::Message.dataset = db[:messages]
68
- Async::Matrix::Bridge::Discord::DB::Reaction.dataset = db[:reactions]
69
- Async::Matrix::Bridge::Discord::DB::CachedFile.dataset = db[:files]
70
- end
71
- end
72
- end
73
- end
74
- end
75
- end
76
-
77
- __END__
78
- describe "Async::Matrix::Bridge::Discord::DB" do
79
- it "connects, migrates, and binds models from config" do
80
- database_config = Object.new
81
- database_config.define_singleton_method(:type) { "sqlite3-fk-wal" }
82
- database_config.define_singleton_method(:uri) { "sqlite:/" }
83
- database_config.define_singleton_method(:max_open_conns) { 1 }
84
-
85
- config = Object.new
86
- config.define_singleton_method(:database) { database_config }
87
-
88
- db = Async::Matrix::Bridge::Discord::DB.connect(config)
89
- db.should.be.kind_of Sequel::Database
90
-
91
- # All tables should exist
92
- db.tables.should.include :users
93
- db.tables.should.include :guilds
94
- db.tables.should.include :portals
95
- db.tables.should.include :puppets
96
- db.tables.should.include :messages
97
- db.tables.should.include :reactions
98
- db.tables.should.include :files
99
-
100
- # Models should be bound and functional
101
- db[:users].delete
102
- db[:guilds].delete
103
- db[:portals].delete
104
- db[:puppets].delete
105
-
106
- Async::Matrix::Bridge::Discord::DB::User.create(mxid: "@db_int:x")
107
- Async::Matrix::Bridge::Discord::DB::User["@db_int:x"].should.not.be.nil
108
-
109
- Async::Matrix::Bridge::Discord::DB::Guild.create(discord_id: "g_int")
110
- Async::Matrix::Bridge::Discord::DB::Guild["g_int"].should.not.be.nil
111
-
112
- Async::Matrix::Bridge::Discord::DB::Portal.create(discord_id: "p_int", receiver: "")
113
- Async::Matrix::Bridge::Discord::DB::Portal["p_int", ""].should.not.be.nil
114
-
115
- Async::Matrix::Bridge::Discord::DB::Puppet.create(discord_id: "d_int")
116
- Async::Matrix::Bridge::Discord::DB::Puppet["d_int"].should.not.be.nil
117
-
118
- db.disconnect
119
- end
120
-
121
- it "exposes MIGRATIONS_PATH" do
122
- File.directory?(Async::Matrix::Bridge::Discord::DB::MIGRATIONS_PATH).should == true
123
- end
124
-
125
- it "is idempotent — running migrations twice does not raise" do
126
- database_config = Object.new
127
- database_config.define_singleton_method(:type) { "sqlite3-fk-wal" }
128
- database_config.define_singleton_method(:uri) { "sqlite:/" }
129
- database_config.define_singleton_method(:max_open_conns) { 1 }
130
-
131
- config = Object.new
132
- config.define_singleton_method(:database) { database_config }
133
-
134
- db = Async::Matrix::Bridge::Discord::DB.connect(config)
135
- lambda { Async::Matrix::Bridge::Discord::DB.migrate!(db) }.should.not.raise
136
- db.disconnect
137
- end
138
- end