lithic 0.1.0.pre.alpha.10 → 0.1.0.pre.alpha.12

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +267 -0
  3. data/README.md +5 -12
  4. data/SECURITY.md +27 -0
  5. data/lib/lithic/client.rb +5 -11
  6. data/lib/lithic/internal/cursor_page.rb +25 -25
  7. data/lib/lithic/internal/single_page.rb +25 -25
  8. data/lib/lithic/internal/transport/base_client.rb +13 -3
  9. data/lib/lithic/internal/transport/pooled_net_requester.rb +6 -2
  10. data/lib/lithic/internal/type/array_of.rb +17 -2
  11. data/lib/lithic/internal/type/base_model.rb +33 -5
  12. data/lib/lithic/internal/type/base_page.rb +1 -0
  13. data/lib/lithic/internal/type/boolean.rb +2 -0
  14. data/lib/lithic/internal/type/converter.rb +24 -0
  15. data/lib/lithic/internal/type/enum.rb +19 -3
  16. data/lib/lithic/internal/type/hash_of.rb +17 -2
  17. data/lib/lithic/internal/type/io_like.rb +2 -0
  18. data/lib/lithic/internal/type/union.rb +17 -3
  19. data/lib/lithic/internal/type/unknown.rb +2 -0
  20. data/lib/lithic/internal/util.rb +36 -9
  21. data/lib/lithic/internal.rb +5 -1
  22. data/lib/lithic/version.rb +1 -1
  23. data/rbi/lib/lithic/client.rbi +3 -2
  24. data/rbi/lib/lithic/internal/cursor_page.rbi +1 -0
  25. data/rbi/lib/lithic/internal/single_page.rbi +1 -0
  26. data/rbi/lib/lithic/internal/transport/base_client.rbi +1 -0
  27. data/rbi/lib/lithic/internal/type/array_of.rbi +12 -9
  28. data/rbi/lib/lithic/internal/type/base_model.rbi +7 -0
  29. data/rbi/lib/lithic/internal/type/boolean.rbi +4 -5
  30. data/rbi/lib/lithic/internal/type/converter.rbi +8 -0
  31. data/rbi/lib/lithic/internal/type/enum.rbi +4 -0
  32. data/rbi/lib/lithic/internal/type/hash_of.rbi +12 -9
  33. data/rbi/lib/lithic/internal/type/io_like.rbi +4 -5
  34. data/rbi/lib/lithic/internal/type/union.rbi +4 -0
  35. data/rbi/lib/lithic/internal/type/unknown.rbi +4 -5
  36. data/rbi/lib/lithic/internal/util.rbi +15 -0
  37. data/rbi/lib/lithic/internal.rbi +1 -1
  38. data/sig/lithic/internal/type/array_of.rbs +2 -0
  39. data/sig/lithic/internal/type/base_model.rbs +2 -0
  40. data/sig/lithic/internal/type/converter.rbs +4 -0
  41. data/sig/lithic/internal/type/enum.rbs +2 -0
  42. data/sig/lithic/internal/type/hash_of.rbs +2 -0
  43. data/sig/lithic/internal/type/union.rbs +2 -0
  44. data/sig/lithic/internal/util.rbs +2 -0
  45. data/sig/lithic/internal.rbs +1 -1
  46. metadata +4 -2
@@ -10,17 +10,16 @@ module Lithic
10
10
  extend Lithic::Internal::Type::Converter
11
11
 
12
12
  abstract!
13
- final!
14
13
 
15
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
14
+ sig { params(other: T.anything).returns(T::Boolean) }
16
15
  def self.===(other); end
17
16
 
18
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
17
+ sig { params(other: T.anything).returns(T::Boolean) }
19
18
  def self.==(other); end
20
19
 
21
20
  class << self
22
21
  # @api private
23
- sig(:final) do
22
+ sig do
24
23
  override
25
24
  .params(value: T.any(
26
25
  StringIO,
@@ -33,7 +32,7 @@ module Lithic
33
32
  def coerce(value, state:); end
34
33
 
35
34
  # @api private
36
- sig(:final) do
35
+ sig do
37
36
  override
38
37
  .params(
39
38
  value: T.any(Pathname, StringIO, IO, String, T.anything),
@@ -63,6 +63,10 @@ module Lithic
63
63
  ).returns(T.anything)
64
64
  end
65
65
  def dump(value, state:); end
66
+
67
+ # @api private
68
+ sig { params(depth: Integer).returns(String) }
69
+ def inspect(depth: 0); end
66
70
  end
67
71
  end
68
72
  end
@@ -10,17 +10,16 @@ module Lithic
10
10
  extend Lithic::Internal::Type::Converter
11
11
 
12
12
  abstract!
13
- final!
14
13
 
15
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
14
+ sig { params(other: T.anything).returns(T::Boolean) }
16
15
  def self.===(other); end
17
16
 
18
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
17
+ sig { params(other: T.anything).returns(T::Boolean) }
19
18
  def self.==(other); end
20
19
 
21
20
  class << self
22
21
  # @api private
23
- sig(:final) do
22
+ sig do
24
23
  override
25
24
  .params(value: T.anything, state: Lithic::Internal::Type::Converter::CoerceState)
26
25
  .returns(T.anything)
@@ -28,7 +27,7 @@ module Lithic
28
27
  def coerce(value, state:); end
29
28
 
30
29
  # @api private
31
- sig(:final) do
30
+ sig do
32
31
  override.params(
33
32
  value: T.anything,
34
33
  state: Lithic::Internal::Type::Converter::DumpState
@@ -215,6 +215,14 @@ module Lithic
215
215
  def encode_content(headers, body); end
216
216
 
217
217
  # @api private
218
+ #
219
+ # https://www.iana.org/assignments/character-sets/character-sets.xhtml
220
+ sig { params(content_type: String, text: String).void }
221
+ def force_charset!(content_type, text:); end
222
+
223
+ # @api private
224
+ #
225
+ # Assumes each chunk in stream has `Encoding::BINARY`.
218
226
  sig do
219
227
  params(
220
228
  headers: T.any(T::Hash[String, String], Net::HTTPHeader),
@@ -263,12 +271,19 @@ module Lithic
263
271
 
264
272
  class << self
265
273
  # @api private
274
+ #
275
+ # Assumes Strings have been forced into having `Encoding::BINARY`.
276
+ #
277
+ # This decoder is responsible for reassembling lines split across multiple
278
+ # fragments.
266
279
  sig { params(enum: T::Enumerable[String]).returns(T::Enumerable[String]) }
267
280
  def decode_lines(enum); end
268
281
 
269
282
  # @api private
270
283
  #
271
284
  # https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream
285
+ #
286
+ # Assumes that `lines` has been decoded with `#decode_lines`.
272
287
  sig do
273
288
  params(lines: T::Enumerable[String]).returns(T::Enumerable[Lithic::Internal::Util::ServerSentEvent])
274
289
  end
@@ -7,6 +7,6 @@ module Lithic
7
7
  # this alias might be refined in the future.
8
8
  AnyHash = T.type_alias { T::Hash[Symbol, T.anything] }
9
9
 
10
- OMIT = T.let(T.anything, T.anything)
10
+ OMIT = T.let(Object.new.freeze, T.anything)
11
11
  end
12
12
  end
@@ -35,6 +35,8 @@ module Lithic
35
35
  | Lithic::Internal::Type::Converter::input type_info,
36
36
  ?::Hash[Symbol, top] spec
37
37
  ) -> void
38
+
39
+ def inspect: (?depth: Integer) -> String
38
40
  end
39
41
  end
40
42
  end
@@ -75,6 +75,8 @@ module Lithic
75
75
 
76
76
  def initialize: (?::Hash[Symbol, top] | self data) -> void
77
77
 
78
+ def self.inspect: (?depth: Integer) -> String
79
+
78
80
  def inspect: -> String
79
81
  end
80
82
  end
@@ -23,6 +23,8 @@ module Lithic
23
23
  state: Lithic::Internal::Type::Converter::dump_state
24
24
  ) -> top
25
25
 
26
+ def inspect: (?depth: Integer) -> String
27
+
26
28
  def self.type_info: (
27
29
  {
28
30
  const: (nil | bool | Integer | Float | Symbol)?,
@@ -44,6 +46,8 @@ module Lithic
44
46
  top value,
45
47
  ?state: Lithic::Internal::Type::Converter::dump_state
46
48
  ) -> top
49
+
50
+ def self.inspect: (top target, depth: Integer) -> String
47
51
  end
48
52
  end
49
53
  end
@@ -21,6 +21,8 @@ module Lithic
21
21
  Symbol | top value,
22
22
  state: Lithic::Internal::Type::Converter::dump_state
23
23
  ) -> (Symbol | top)
24
+
25
+ def inspect: (?depth: Integer) -> String
24
26
  end
25
27
  end
26
28
  end
@@ -35,6 +35,8 @@ module Lithic
35
35
  | Lithic::Internal::Type::Converter::input type_info,
36
36
  ?::Hash[Symbol, top] spec
37
37
  ) -> void
38
+
39
+ def inspect: (?depth: Integer) -> String
38
40
  end
39
41
  end
40
42
  end
@@ -39,6 +39,8 @@ module Lithic
39
39
  top value,
40
40
  state: Lithic::Internal::Type::Converter::dump_state
41
41
  ) -> top
42
+
43
+ def inspect: (?depth: Integer) -> String
42
44
  end
43
45
  end
44
46
  end
@@ -120,6 +120,8 @@ module Lithic
120
120
  top body
121
121
  ) -> top
122
122
 
123
+ def self?.force_charset!: (String content_type, text: String) -> void
124
+
123
125
  def self?.decode_content: (
124
126
  ::Hash[String, String] headers,
125
127
  stream: Enumerable[String],
@@ -1,5 +1,5 @@
1
1
  module Lithic
2
2
  module Internal
3
- OMIT: top
3
+ OMIT: Object
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lithic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre.alpha.10
4
+ version: 0.1.0.pre.alpha.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lithic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-10 00:00:00.000000000 Z
11
+ date: 2025-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool
@@ -31,7 +31,9 @@ extensions: []
31
31
  extra_rdoc_files:
32
32
  - README.md
33
33
  files:
34
+ - CHANGELOG.md
34
35
  - README.md
36
+ - SECURITY.md
35
37
  - lib/lithic.rb
36
38
  - lib/lithic/client.rb
37
39
  - lib/lithic/errors.rb