supabase-rb 3.1.1 → 3.2.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.
- checksums.yaml +4 -4
- data/lib/supabase/auth/README.md +10 -4
- data/lib/supabase/auth/admin_api.rb +4 -0
- data/lib/supabase/auth/admin_mfa_api.rb +30 -0
- data/lib/supabase/auth/async/admin_api.rb +4 -1
- data/lib/supabase/auth/async/admin_mfa_api.rb +15 -0
- data/lib/supabase/auth/async/client.rb +2 -4
- data/lib/supabase/auth/async.rb +1 -0
- data/lib/supabase/auth/client.rb +71 -31
- data/lib/supabase/auth/helpers.rb +4 -0
- data/lib/supabase/auth/types.rb +14 -5
- data/lib/supabase/auth.rb +1 -0
- data/lib/supabase/client.rb +103 -22
- data/lib/supabase/client_options.rb +1 -1
- data/lib/supabase/functions/README.md +99 -12
- data/lib/supabase/functions/client.rb +72 -31
- data/lib/supabase/functions/types.rb +24 -3
- data/lib/supabase/postgrest/async/client.rb +2 -0
- data/lib/supabase/postgrest/client.rb +9 -2
- data/lib/supabase/postgrest/errors.rb +18 -6
- data/lib/supabase/postgrest/request_builder.rb +5 -11
- data/lib/supabase/realtime/README.md +111 -0
- data/lib/supabase/realtime/callback_safety.rb +41 -0
- data/lib/supabase/realtime/channel.rb +89 -23
- data/lib/supabase/realtime/client.rb +130 -44
- data/lib/supabase/realtime/errors.rb +0 -13
- data/lib/supabase/realtime/message.rb +13 -3
- data/lib/supabase/realtime/presence.rb +84 -32
- data/lib/supabase/realtime/push.rb +11 -2
- data/lib/supabase/realtime/timer.rb +72 -0
- data/lib/supabase/realtime.rb +2 -1
- data/lib/supabase/storage/README.md +117 -0
- data/lib/supabase/storage/async/client.rb +7 -4
- data/lib/supabase/storage/client.rb +16 -4
- data/lib/supabase/storage/file_api.rb +36 -9
- data/lib/supabase/storage/request.rb +3 -1
- data/lib/supabase/storage/utils.rb +15 -1
- data/lib/supabase/version.rb +1 -1
- data/lib/supabase.rb +0 -7
- metadata +33 -16
- data/lib/supabase/realtime/test_socket.rb +0 -65
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: supabase-rb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Supabase
|
|
@@ -23,6 +23,20 @@ dependencies:
|
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '2.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: faraday-follow_redirects
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0.3'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0.3'
|
|
26
40
|
- !ruby/object:Gem::Dependency
|
|
27
41
|
name: faraday-multipart
|
|
28
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -51,6 +65,20 @@ dependencies:
|
|
|
51
65
|
- - "~>"
|
|
52
66
|
- !ruby/object:Gem::Version
|
|
53
67
|
version: '2.8'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: websocket-client-simple
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '0.9'
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0.9'
|
|
54
82
|
- !ruby/object:Gem::Dependency
|
|
55
83
|
name: rspec
|
|
56
84
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -135,20 +163,6 @@ dependencies:
|
|
|
135
163
|
- - "~>"
|
|
136
164
|
- !ruby/object:Gem::Version
|
|
137
165
|
version: '0.20'
|
|
138
|
-
- !ruby/object:Gem::Dependency
|
|
139
|
-
name: websocket-client-simple
|
|
140
|
-
requirement: !ruby/object:Gem::Requirement
|
|
141
|
-
requirements:
|
|
142
|
-
- - "~>"
|
|
143
|
-
- !ruby/object:Gem::Version
|
|
144
|
-
version: '0.9'
|
|
145
|
-
type: :development
|
|
146
|
-
prerelease: false
|
|
147
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
148
|
-
requirements:
|
|
149
|
-
- - "~>"
|
|
150
|
-
- !ruby/object:Gem::Version
|
|
151
|
-
version: '0.9'
|
|
152
166
|
- !ruby/object:Gem::Dependency
|
|
153
167
|
name: async-websocket
|
|
154
168
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -178,10 +192,12 @@ files:
|
|
|
178
192
|
- lib/supabase/auth.rb
|
|
179
193
|
- lib/supabase/auth/README.md
|
|
180
194
|
- lib/supabase/auth/admin_api.rb
|
|
195
|
+
- lib/supabase/auth/admin_mfa_api.rb
|
|
181
196
|
- lib/supabase/auth/admin_oauth_api.rb
|
|
182
197
|
- lib/supabase/auth/api.rb
|
|
183
198
|
- lib/supabase/auth/async.rb
|
|
184
199
|
- lib/supabase/auth/async/admin_api.rb
|
|
200
|
+
- lib/supabase/auth/async/admin_mfa_api.rb
|
|
185
201
|
- lib/supabase/auth/async/admin_oauth_api.rb
|
|
186
202
|
- lib/supabase/auth/async/api.rb
|
|
187
203
|
- lib/supabase/auth/async/client.rb
|
|
@@ -216,6 +232,7 @@ files:
|
|
|
216
232
|
- lib/supabase/postgrest/version.rb
|
|
217
233
|
- lib/supabase/realtime.rb
|
|
218
234
|
- lib/supabase/realtime/README.md
|
|
235
|
+
- lib/supabase/realtime/callback_safety.rb
|
|
219
236
|
- lib/supabase/realtime/channel.rb
|
|
220
237
|
- lib/supabase/realtime/client.rb
|
|
221
238
|
- lib/supabase/realtime/errors.rb
|
|
@@ -225,7 +242,7 @@ files:
|
|
|
225
242
|
- lib/supabase/realtime/socket.rb
|
|
226
243
|
- lib/supabase/realtime/sockets/async_websocket.rb
|
|
227
244
|
- lib/supabase/realtime/sockets/websocket_client_simple.rb
|
|
228
|
-
- lib/supabase/realtime/
|
|
245
|
+
- lib/supabase/realtime/timer.rb
|
|
229
246
|
- lib/supabase/realtime/transformers.rb
|
|
230
247
|
- lib/supabase/realtime/types.rb
|
|
231
248
|
- lib/supabase/realtime/version.rb
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative "socket"
|
|
4
|
-
|
|
5
|
-
module Supabase
|
|
6
|
-
module Realtime
|
|
7
|
-
# In-memory {Socket} implementation for specs and local prototyping. Captures
|
|
8
|
-
# every frame the client sends in `sent_frames`, and exposes `inject(frame)`
|
|
9
|
-
# so a test can simulate a server response.
|
|
10
|
-
#
|
|
11
|
-
# Not intended for production use — bring a real WebSocket adapter for that.
|
|
12
|
-
class TestSocket
|
|
13
|
-
include Socket
|
|
14
|
-
|
|
15
|
-
attr_reader :sent_frames
|
|
16
|
-
|
|
17
|
-
def initialize
|
|
18
|
-
@connected = false
|
|
19
|
-
@sent_frames = []
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def connect
|
|
23
|
-
@connected = true
|
|
24
|
-
open_callbacks.each(&:call)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def close
|
|
28
|
-
@connected = false
|
|
29
|
-
close_callbacks.each(&:call)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def send(payload)
|
|
33
|
-
@sent_frames << payload
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def connected?
|
|
37
|
-
@connected
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# ----- Test helpers -----
|
|
41
|
-
|
|
42
|
-
# Push a JSON frame as if it came from the server. Accepts a JSON String
|
|
43
|
-
# or a Hash (which gets JSON-encoded for you).
|
|
44
|
-
def inject(frame)
|
|
45
|
-
raw = frame.is_a?(String) ? frame : JSON.generate(frame)
|
|
46
|
-
message_callbacks.each { |cb| cb.call(raw) }
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
# Convenience: the last frame the client pushed, parsed back to a Hash.
|
|
50
|
-
def last_sent_frame
|
|
51
|
-
return nil if @sent_frames.empty?
|
|
52
|
-
|
|
53
|
-
JSON.parse(@sent_frames.last)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def sent_events
|
|
57
|
-
@sent_frames.map { |f| JSON.parse(f)["event"] }
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def reset_sent_frames
|
|
61
|
-
@sent_frames = []
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|