appium_lib_core 11.1.1 → 11.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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -1
  3. data/Gemfile +3 -3
  4. data/README.md +2 -2
  5. data/Rakefile +1 -1
  6. data/lib/appium_lib_core/common/base/bidi_bridge.rb +4 -0
  7. data/lib/appium_lib_core/common/base/bridge.rb +7 -1
  8. data/lib/appium_lib_core/common/base/driver.rb +9 -1
  9. data/lib/appium_lib_core/common/wait.rb +4 -0
  10. data/lib/appium_lib_core/common/ws/websocket.rb +8 -4
  11. data/lib/appium_lib_core/driver.rb +20 -9
  12. data/lib/appium_lib_core/element.rb +8 -3
  13. data/lib/appium_lib_core/version.rb +2 -2
  14. data/lib/appium_lib_core.rb +2 -2
  15. data/rbs_collection.lock.yaml +63 -31
  16. data/sig/gems/forwardable.rbs +17 -0
  17. data/sig/gems/selenium/atoms.rbs +0 -1
  18. data/sig/gems/selenium/bidi/browsing_context.rbs +1 -1
  19. data/sig/gems/selenium/bridge.rbs +3 -0
  20. data/sig/gems/selenium/chromium/features.rbs +1 -1
  21. data/sig/gems/selenium/common/element.rbs +2 -0
  22. data/sig/gems/selenium/driver.rbs +10 -0
  23. data/sig/gems/selenium/fedcm.rbs +12 -0
  24. data/sig/gems/selenium/firefox/profile.rbs +0 -2
  25. data/sig/gems/selenium/log_entry.rbs +12 -0
  26. data/sig/gems/selenium/remote/capabilities.rbs +6 -0
  27. data/sig/interfaces/bridge.rbs +4 -0
  28. data/sig/lib/appium_lib_core/android/device/auth_finger_print.rbs +1 -1
  29. data/sig/lib/appium_lib_core/android/device/clipboard.rbs +1 -1
  30. data/sig/lib/appium_lib_core/android/device/emulator.rbs +2 -2
  31. data/sig/lib/appium_lib_core/android/device/performance.rbs +1 -1
  32. data/sig/lib/appium_lib_core/android/device/screen.rbs +2 -0
  33. data/sig/lib/appium_lib_core/android/device.rbs +20 -2
  34. data/sig/lib/appium_lib_core/android/uiautomator2/device/battery.rbs +2 -0
  35. data/sig/lib/appium_lib_core/common/base/bidi_bridge.rbs +4 -0
  36. data/sig/lib/appium_lib_core/common/base/bridge.rbs +2 -0
  37. data/sig/lib/appium_lib_core/common/base/capabilities.rbs +3 -0
  38. data/sig/lib/appium_lib_core/common/base/rotable.rbs +3 -0
  39. data/sig/lib/appium_lib_core/common/base/search_context.rbs +1 -1
  40. data/sig/lib/appium_lib_core/common/device/app_state.rbs +2 -2
  41. data/sig/lib/appium_lib_core/common/device/device.rbs +1 -1
  42. data/sig/lib/appium_lib_core/common/device/device_lock.rbs +2 -2
  43. data/sig/lib/appium_lib_core/common/device/keyboard.rbs +2 -2
  44. data/sig/lib/appium_lib_core/common/device/keyevent.rbs +1 -1
  45. data/sig/lib/appium_lib_core/common/device/screen_record.rbs +7 -3
  46. data/sig/lib/appium_lib_core/driver.rbs +19 -10
  47. data/sig/lib/appium_lib_core/element.rbs +5 -2
  48. data/sig/lib/appium_lib_core/ios/{clipboard.rbs → device/clipboard.rbs} +0 -4
  49. data/sig/lib/appium_lib_core/ios/xcuitest/device/battery.rbs +3 -1
  50. data/sig/lib/appium_lib_core/ios/xcuitest/device/performance.rbs +2 -0
  51. data/sig/lib/appium_lib_core.rbs +1 -1
  52. metadata +6 -4
  53. data/sig/lib/appium_lib_core/android/device/network.rbs +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 644a3a9d74789b47ce2eec29dbb617beaa63316fb3d6e51a46574109751592d9
4
- data.tar.gz: 10eecbb5e22544478cd0de674cee969556f5996dfbb015f0014a7232fd551d41
3
+ metadata.gz: 34bd1eb7d56d3504d71c82177aeec7f63c16240727def1064ec16b56f467437e
4
+ data.tar.gz: 9b5be0f79955edb2ea0b8ce2241ddde1b523e5a433c888225408c9eb4db0001d
5
5
  SHA512:
6
- metadata.gz: f5c30750553e49bcfef55ccefd3842d006f08fef508a8f966fff7a882e334c5a13b7f34d28497f2ceadc74bdfa4e2b443bf4fca41730ff9eaa024893a184dae7
7
- data.tar.gz: 887fe2d2a19f5c277119ab74b511bad76ef6316693c76b9a51c8308d882ab5e591ee068c7d715d73a474eb0788b456c555bba732041be49827e4ee9e4bcdc87b
6
+ metadata.gz: 3a5afbb1502ac8a757f0c672a69fb0fb690ca532568b4a83e596edb7d1a244af838c7c4f1ece78e8dff0b190e88c72cb081910293b958d6f3a64c1a0255957c4
7
+ data.tar.gz: f3ff70f1c98d0b82d120f37c9f1ccb7fcc3353b323a08ccf17dea0819f96c3f853aba8de2df03b8f3adecd56b7a0a0fb1dbf11a186c9572a6ba952332b6a46f1
data/CHANGELOG.md CHANGED
@@ -2,10 +2,13 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
  Read `release_notes.md` for commit level details.
4
4
 
5
+ ## [11.12.0] - 2025-11-16
6
+ - Add more RBS files
7
+
5
8
  ## [11.1.0,11.1.1] - 2025-08-08
6
9
  - Add WebDriver BiDi support. Please set `webSocketUrl` in the capabilities to enable it.
7
10
  - `test/functional/android/webdriver/bidi_test.rb` can be an example usage.
8
- - Older versions of the Selenium Ruby bindings may raise exceptions due to missing dependencies.
11
+ - Older versions of the Selenium Ruby bindings may raise exceptions due to missing module dependencies.
9
12
 
10
13
  ## [11.0.2] - 2025-04-27
11
14
  - Add more sig definitions [#571](https://github.com/appium/ruby_lib_core/pull/571)
data/Gemfile CHANGED
@@ -8,8 +8,8 @@ gem 'minitest', '~> 5.0'
8
8
  gem 'minitest-reporters', '~> 1.1'
9
9
  gem 'parallel_tests'
10
10
  gem 'rake', '~> 13.0'
11
- gem 'rubocop', '1.79.2'
11
+ gem 'rubocop', '1.81.7'
12
12
  gem 'simplecov'
13
- gem 'steep', '~> 1.9.3'
14
- gem 'webmock', '~> 3.25.0'
13
+ gem 'steep', '~> 1.10.0'
14
+ gem 'webmock', '~> 3.26.0'
15
15
  gem 'yard', '~> 0.9.11'
data/README.md CHANGED
@@ -114,8 +114,8 @@ $ IGNORE_VERSION_SKIP=true CI=true bundle exec rake test:func:android
114
114
  opts = {
115
115
  capabilities: { # Append capabilities
116
116
  platformName: 'ios',
117
- platformVersion: '18.4',
118
- deviceName: 'iPhone 16 Plus',
117
+ platformVersion: '26.0',
118
+ deviceName: 'iPhone 17',
119
119
  # app: '/path/to/MyiOS.app', # Without 'app' capability, an appium session starts with the home screen
120
120
  automationName: 'XCUITest'
121
121
  },
data/Rakefile CHANGED
@@ -120,5 +120,5 @@ end
120
120
 
121
121
  desc('Run Steep type check')
122
122
  task :steep do
123
- system('steep check')
123
+ system 'steep check --severity-level=error'
124
124
  end
@@ -18,6 +18,8 @@ module Appium
18
18
  module Core
19
19
  class Base
20
20
  class BiDiBridge < ::Appium::Core::Base::Bridge
21
+ # steep:ignore:start
22
+
21
23
  attr_reader :bidi
22
24
 
23
25
  # Override
@@ -85,6 +87,8 @@ module Appium
85
87
  execute(:close_window).tap { |handles| bidi.close if handles.empty? }
86
88
  end
87
89
 
90
+ # steep:ignore:end
91
+
88
92
  private
89
93
 
90
94
  def browsing_context
@@ -37,7 +37,9 @@ module Appium
37
37
  include Device::ExecuteDriver
38
38
  include Device::Orientation
39
39
 
40
+ # steep:ignore:start
40
41
  Bridge.locator_converter = LocatorConverter.new
42
+ # steep:ignore:end
41
43
 
42
44
  # Prefix for extra capability defined by W3C
43
45
  APPIUM_PREFIX = 'appium:'
@@ -141,7 +143,7 @@ module Appium
141
143
  private
142
144
 
143
145
  def camel_case(str_or_sym)
144
- str_or_sym.to_s.gsub(/_([a-z])/) { Regexp.last_match(1).upcase }
146
+ str_or_sym.to_s.gsub(/_([a-z])/) { Regexp.last_match(1)&.upcase }
145
147
  end
146
148
 
147
149
  def extension_prefix?(capability_name)
@@ -204,12 +206,14 @@ module Appium
204
206
  # @driver.action.click(element).perform # The 'click' is a part of 'PointerActions'
205
207
  #
206
208
  def action(_deprecated_async = nil, async: false, devices: nil)
209
+ # steep:ignore:start
207
210
  ::Selenium::WebDriver::ActionBuilder.new(
208
211
  self,
209
212
  devices: devices || [::Selenium::WebDriver::Interactions.pointer(:touch, name: 'touch')],
210
213
  async: async,
211
214
  duration: 50 # milliseconds
212
215
  )
216
+ # steep:ignore:end
213
217
  end
214
218
 
215
219
  # Port from MJSONWP
@@ -278,7 +282,9 @@ module Appium
278
282
  data = execute :get_log, {}, { type: type.to_s }
279
283
 
280
284
  Array(data).map do |l|
285
+ # steep:ignore:start
281
286
  ::Selenium::WebDriver::LogEntry.new l.fetch('level', 'UNKNOWN'), l.fetch('timestamp'), l.fetch('message')
287
+ # steep:ignore:end
282
288
  rescue KeyError
283
289
  next
284
290
  end
@@ -36,7 +36,9 @@ module Appium
36
36
 
37
37
  include ::Appium::Core::Waitable
38
38
 
39
+ # steep:ignore:start
39
40
  ::Selenium::WebDriver::SearchContext.extra_finders = ::Appium::Core::Base::SearchContext::APPIUM_EXTRA_FINDERS
41
+ # steep:ignore:end
40
42
 
41
43
  # Private API.
42
44
  # Do not use this for general use. Used by flutter driver to get bridge for creating a new element
@@ -57,7 +59,9 @@ module Appium
57
59
  # internal use
58
60
  @has_bidi = false
59
61
 
62
+ # steep:ignore:start
60
63
  ::Selenium::WebDriver::Remote::Bridge.element_class = ::Appium::Core::Element
64
+ # steep:ignore:end
61
65
  bridge ||= create_bridge(**opts)
62
66
  add_extensions(bridge.browser)
63
67
  @bridge = listener ? ::Appium::Support::EventFiringBridge.new(bridge, listener, **original_opts) : bridge
@@ -83,7 +87,9 @@ module Appium
83
87
 
84
88
  @has_bidi = capabilities && capabilities['webSocketUrl'] ? true : false
85
89
  bridge_clzz = @has_bidi ? ::Appium::Core::Base::BiDiBridge : ::Appium::Core::Base::Bridge
90
+ # steep:ignore:start
86
91
  bridge = bridge_clzz.new(**bridge_opts)
92
+ # steep:ignore:end
87
93
 
88
94
  if session_id.nil?
89
95
  bridge.create_session(capabilities)
@@ -220,7 +226,9 @@ module Appium
220
226
  def key_action(async: false)
221
227
  @bridge.action(
222
228
  async: async,
229
+ # steep:ignore:start
223
230
  devices: [::Selenium::WebDriver::Interactions.key('keyboard')]
231
+ # steep:ignore:end
224
232
  )
225
233
  end
226
234
 
@@ -627,7 +635,7 @@ module Appium
627
635
  #
628
636
  def install_app(path, **options)
629
637
  # TODO: use mobile command in the background?
630
- options = options.transform_keys { |key| key.to_s.gsub(/_./) { |v| v[1].upcase } } unless options.nil?
638
+ options = options.transform_keys { |key| key.to_s.gsub(/_./) { |v| v[1]&.upcase } } unless options.nil?
631
639
  @bridge.install_app(path, options)
632
640
  end
633
641
 
@@ -62,7 +62,9 @@ module Appium
62
62
  end
63
63
 
64
64
  msg = message_for timeout, message
65
+ # steep:ignore:start
65
66
  msg += " (#{last_error.message})" if last_error
67
+ # steep:ignore:end
66
68
 
67
69
  raise TimeoutError, msg
68
70
  end
@@ -109,7 +111,9 @@ module Appium
109
111
  end
110
112
 
111
113
  msg = message_for timeout, message
114
+ # steep:ignore:start
112
115
  msg += " (#{last_error.message})" if last_error
116
+ # steep:ignore:end
113
117
 
114
118
  raise TimeoutError, msg
115
119
  end
@@ -43,6 +43,7 @@ module Appium
43
43
  @endpoint = url
44
44
 
45
45
  @ws_thread = Thread.new do
46
+ # steep:ignore:start
46
47
  EM.run do
47
48
  @client ||= ::Faye::WebSocket::Client.new(url, protocols, options)
48
49
 
@@ -62,6 +63,7 @@ module Appium
62
63
  handle_close(close.code, close.reason)
63
64
  end
64
65
  end
66
+ # steep:ignore:end
65
67
  end
66
68
  end
67
69
 
@@ -120,7 +122,7 @@ module Appium
120
122
  # Default is just put a debug message.
121
123
  #
122
124
  def handle_open
123
- ::Appium::Logger.debug %W(#{self.class} :open)
125
+ ::Appium::Logger.debug("#{self.class} :open")
124
126
  end
125
127
 
126
128
  # Standard out by default
@@ -134,7 +136,7 @@ module Appium
134
136
  # In general, users should override this handler to handle messages from the peer.
135
137
  #
136
138
  def handle_message_data(data)
137
- ::Appium::Logger.debug %W(#{self.class} :message #{data})
139
+ ::Appium::Logger.debug("#{self.class} :message #{data}")
138
140
  $stdout << "#{data}\n"
139
141
  end
140
142
 
@@ -145,7 +147,7 @@ module Appium
145
147
  # Default is just put a error message.
146
148
  #
147
149
  def handle_error
148
- ::Appium::Logger.error %W(#{self.class} :error)
150
+ ::Appium::Logger.error("#{self.class} :error")
149
151
  end
150
152
 
151
153
  #
@@ -156,9 +158,11 @@ module Appium
156
158
  # The methods also clear +client+ instance and stop the eventmachine which is called in initialising this class.
157
159
  #
158
160
  def handle_close(code, reason)
159
- ::Appium::Logger.debug %W(#{self.class} :close #{code} #{reason})
161
+ ::Appium::Logger.debug("#{self.class} :close #{code} #{reason}")
160
162
  @client = nil
163
+ # steep:ignore:start
161
164
  EM.stop
165
+ # steep:ignore:end
162
166
  end
163
167
  end # module WebSocket
164
168
  end # module Core
@@ -602,12 +602,19 @@ module Appium
602
602
 
603
603
  # @private
604
604
  def get_caps(opts)
605
- Core::Base::Capabilities.new(opts[:caps] || opts[:capabilities] || {})
605
+ o = opts || {}
606
+
607
+ raw_caps = o[:caps] || o[:capabilities]
608
+ caps_hash = raw_caps.is_a?(Hash) ? raw_caps : {}
609
+
610
+ Core::Base::Capabilities.new(caps_hash)
606
611
  end
607
612
 
608
- # @private
609
613
  def get_appium_lib_opts(opts)
610
- opts[:appium_lib] || {}
614
+ o = opts || {}
615
+
616
+ val = o[:appium_lib]
617
+ val.is_a?(Hash) ? val : {}
611
618
  end
612
619
 
613
620
  # @private
@@ -621,17 +628,21 @@ module Appium
621
628
  # Use @caps[:app] without modifications if the path isn't HTTP/S or local path.
622
629
  def set_app_path
623
630
  # FIXME: maybe `:app` should check `app` as well.
624
- return unless @caps && get_app && !get_app.empty?
631
+ return unless @caps
632
+
633
+ app = get_app # for steep reason
634
+ return unless app && app.empty?
625
635
 
626
636
  uri_regex = defined?(URI::RFC2396_PARSER) ? URI::RFC2396_PARSER : URI::DEFAULT_PARSER
627
- return if get_app =~ uri_regex.make_regexp
637
+ return if app =~ uri_regex.make_regexp
628
638
 
629
- app_path = File.expand_path(get_app)
639
+ # steep:ignore
640
+ app_path = File.expand_path(app)
630
641
  @caps['app'] = if File.exist? app_path
631
642
  app_path
632
643
  else
633
- ::Appium::Logger.warn("Use #{get_app} directly since #{app_path} does not exist.")
634
- get_app
644
+ ::Appium::Logger.warn("Use #{app} directly since #{app_path} does not exist.")
645
+ app
635
646
  end
636
647
  end
637
648
 
@@ -659,7 +670,7 @@ module Appium
659
670
  def set_appium_device
660
671
  # https://code.google.com/p/selenium/source/browse/spec-draft.md?repo=mobile
661
672
  @device = get_cap 'platformName'
662
- return @device unless @device
673
+ return unless @device
663
674
 
664
675
  @device = convert_to_symbol(convert_downcase(@device))
665
676
  end
@@ -19,7 +19,9 @@ module Appium
19
19
  class Element < ::Selenium::WebDriver::Element
20
20
  include ::Appium::Core::Base::TakesScreenshot
21
21
 
22
+ # steep:ignore:start
22
23
  ::Selenium::WebDriver::SearchContext.extra_finders = ::Appium::Core::Base::SearchContext::APPIUM_EXTRA_FINDERS
24
+ # steep:ignore:end
23
25
 
24
26
  # Retuns the element id.
25
27
  #
@@ -58,16 +60,18 @@ module Appium
58
60
  respond_to?(method_name) ? attribute(method_name.to_s.tr('_', '-')) : super
59
61
  end
60
62
 
61
- def respond_to_missing?(*)
63
+ def respond_to_missing?(_method_name, _include_private = false)
62
64
  true
63
65
  end
64
66
 
65
67
  # Alias for type
66
68
  alias type send_keys
67
69
 
70
+ # @deprecated Please use `Element#rect` instead to get location information.
71
+ #
68
72
  # For use with location_rel.
69
73
  #
70
- # @return [::Selenium::WebDriver::Point] the relative x, y in a struct. ex: { x: 0.50, y: 0.20 }
74
+ # @return [Struct(:x, :y)] the relative x, y in a struct in string.
71
75
  #
72
76
  # @example
73
77
  #
@@ -86,7 +90,8 @@ module Appium
86
90
  center_y = location_y + (size_height / 2.0)
87
91
 
88
92
  w = driver.window_size
89
- ::Selenium::WebDriver::Point.new "#{center_x} / #{w.width.to_f}", "#{center_y} / #{w.height.to_f}"
93
+ point = Struct.new(:x, :y)
94
+ point.new("#{center_x} / #{w.width.to_f}", "#{center_y} / #{w.height.to_f}")
90
95
  end
91
96
 
92
97
  # Return an element screenshot as base64
@@ -14,7 +14,7 @@
14
14
 
15
15
  module Appium
16
16
  module Core
17
- VERSION = '11.1.1' unless defined? ::Appium::Core::VERSION
18
- DATE = '2025-08-08' unless defined? ::Appium::Core::DATE
17
+ VERSION = '11.2.0' unless defined? ::Appium::Core::VERSION
18
+ DATE = '2025-11-16' unless defined? ::Appium::Core::DATE
19
19
  end
20
20
  end
@@ -61,8 +61,8 @@ module Appium
61
61
 
62
62
  module Core
63
63
  # @see Appium::Core::Driver.for
64
- def self.for(*args)
65
- Core::Driver.for(*args)
64
+ def self.for(opts = {})
65
+ Core::Driver.for(opts)
66
66
  end
67
67
  end
68
68
  end
@@ -6,7 +6,7 @@ gems:
6
6
  source:
7
7
  type: git
8
8
  name: ruby/gem_rbs_collection
9
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
9
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
10
10
  remote: https://github.com/ruby/gem_rbs_collection.git
11
11
  repo_dir: gems
12
12
  - name: addressable
@@ -14,7 +14,7 @@ gems:
14
14
  source:
15
15
  type: git
16
16
  name: ruby/gem_rbs_collection
17
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
17
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
18
18
  remote: https://github.com/ruby/gem_rbs_collection.git
19
19
  repo_dir: gems
20
20
  - name: ast
@@ -22,23 +22,27 @@ gems:
22
22
  source:
23
23
  type: git
24
24
  name: ruby/gem_rbs_collection
25
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
25
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
26
26
  remote: https://github.com/ruby/gem_rbs_collection.git
27
27
  repo_dir: gems
28
28
  - name: base64
29
- version: '0'
29
+ version: 0.3.0
30
30
  source:
31
- type: stdlib
31
+ type: rubygems
32
32
  - name: bigdecimal
33
- version: '0'
33
+ version: '3.1'
34
34
  source:
35
- type: stdlib
35
+ type: git
36
+ name: ruby/gem_rbs_collection
37
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
38
+ remote: https://github.com/ruby/gem_rbs_collection.git
39
+ repo_dir: gems
36
40
  - name: concurrent-ruby
37
41
  version: '1.1'
38
42
  source:
39
43
  type: git
40
44
  name: ruby/gem_rbs_collection
41
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
45
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
42
46
  remote: https://github.com/ruby/gem_rbs_collection.git
43
47
  repo_dir: gems
44
48
  - name: connection_pool
@@ -46,14 +50,22 @@ gems:
46
50
  source:
47
51
  type: git
48
52
  name: ruby/gem_rbs_collection
49
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
53
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
50
54
  remote: https://github.com/ruby/gem_rbs_collection.git
51
55
  repo_dir: gems
52
56
  - name: csv
57
+ version: '3.3'
58
+ source:
59
+ type: git
60
+ name: ruby/gem_rbs_collection
61
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
62
+ remote: https://github.com/ruby/gem_rbs_collection.git
63
+ repo_dir: gems
64
+ - name: date
53
65
  version: '0'
54
66
  source:
55
67
  type: stdlib
56
- - name: date
68
+ - name: digest
57
69
  version: '0'
58
70
  source:
59
71
  type: stdlib
@@ -62,7 +74,7 @@ gems:
62
74
  source:
63
75
  type: stdlib
64
76
  - name: ffi
65
- version: 1.17.0
77
+ version: 1.17.2
66
78
  source:
67
79
  type: rubygems
68
80
  - name: fileutils
@@ -78,7 +90,7 @@ gems:
78
90
  source:
79
91
  type: git
80
92
  name: ruby/gem_rbs_collection
81
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
93
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
82
94
  remote: https://github.com/ruby/gem_rbs_collection.git
83
95
  repo_dir: gems
84
96
  - name: i18n
@@ -86,7 +98,7 @@ gems:
86
98
  source:
87
99
  type: git
88
100
  name: ruby/gem_rbs_collection
89
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
101
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
90
102
  remote: https://github.com/ruby/gem_rbs_collection.git
91
103
  repo_dir: gems
92
104
  - name: json
@@ -98,7 +110,7 @@ gems:
98
110
  source:
99
111
  type: git
100
112
  name: ruby/gem_rbs_collection
101
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
113
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
102
114
  remote: https://github.com/ruby/gem_rbs_collection.git
103
115
  repo_dir: gems
104
116
  - name: logger
@@ -106,14 +118,18 @@ gems:
106
118
  source:
107
119
  type: stdlib
108
120
  - name: minitest
109
- version: '0'
121
+ version: '5.25'
110
122
  source:
111
- type: stdlib
123
+ type: git
124
+ name: ruby/gem_rbs_collection
125
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
126
+ remote: https://github.com/ruby/gem_rbs_collection.git
127
+ repo_dir: gems
112
128
  - name: monitor
113
129
  version: '0'
114
130
  source:
115
131
  type: stdlib
116
- - name: mutex_m
132
+ - name: openssl
117
133
  version: '0'
118
134
  source:
119
135
  type: stdlib
@@ -126,7 +142,7 @@ gems:
126
142
  source:
127
143
  type: git
128
144
  name: ruby/gem_rbs_collection
129
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
145
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
130
146
  remote: https://github.com/ruby/gem_rbs_collection.git
131
147
  repo_dir: gems
132
148
  - name: parser
@@ -134,15 +150,19 @@ gems:
134
150
  source:
135
151
  type: git
136
152
  name: ruby/gem_rbs_collection
137
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
153
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
138
154
  remote: https://github.com/ruby/gem_rbs_collection.git
139
155
  repo_dir: gems
156
+ - name: prism
157
+ version: 1.6.0
158
+ source:
159
+ type: rubygems
140
160
  - name: rainbow
141
161
  version: '3.0'
142
162
  source:
143
163
  type: git
144
164
  name: ruby/gem_rbs_collection
145
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
165
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
146
166
  remote: https://github.com/ruby/gem_rbs_collection.git
147
167
  repo_dir: gems
148
168
  - name: rake
@@ -150,7 +170,7 @@ gems:
150
170
  source:
151
171
  type: git
152
172
  name: ruby/gem_rbs_collection
153
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
173
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
154
174
  remote: https://github.com/ruby/gem_rbs_collection.git
155
175
  repo_dir: gems
156
176
  - name: regexp_parser
@@ -158,7 +178,7 @@ gems:
158
178
  source:
159
179
  type: git
160
180
  name: ruby/gem_rbs_collection
161
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
181
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
162
182
  remote: https://github.com/ruby/gem_rbs_collection.git
163
183
  repo_dir: gems
164
184
  - name: ripper
@@ -170,15 +190,15 @@ gems:
170
190
  source:
171
191
  type: git
172
192
  name: ruby/gem_rbs_collection
173
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
193
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
174
194
  remote: https://github.com/ruby/gem_rbs_collection.git
175
195
  repo_dir: gems
176
196
  - name: rubocop-ast
177
- version: '1.30'
197
+ version: '1.46'
178
198
  source:
179
199
  type: git
180
200
  name: ruby/gem_rbs_collection
181
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
201
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
182
202
  remote: https://github.com/ruby/gem_rbs_collection.git
183
203
  repo_dir: gems
184
204
  - name: rubyzip
@@ -186,7 +206,7 @@ gems:
186
206
  source:
187
207
  type: git
188
208
  name: ruby/gem_rbs_collection
189
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
209
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
190
210
  remote: https://github.com/ruby/gem_rbs_collection.git
191
211
  repo_dir: gems
192
212
  - name: securerandom
@@ -198,13 +218,21 @@ gems:
198
218
  source:
199
219
  type: git
200
220
  name: ruby/gem_rbs_collection
201
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
221
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
202
222
  remote: https://github.com/ruby/gem_rbs_collection.git
203
223
  repo_dir: gems
204
224
  - name: singleton
205
225
  version: '0'
206
226
  source:
207
227
  type: stdlib
228
+ - name: socket
229
+ version: '0'
230
+ source:
231
+ type: stdlib
232
+ - name: stringio
233
+ version: '0'
234
+ source:
235
+ type: stdlib
208
236
  - name: strscan
209
237
  version: '0'
210
238
  source:
@@ -214,7 +242,7 @@ gems:
214
242
  source:
215
243
  type: git
216
244
  name: ruby/gem_rbs_collection
217
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
245
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
218
246
  remote: https://github.com/ruby/gem_rbs_collection.git
219
247
  repo_dir: gems
220
248
  - name: time
@@ -230,15 +258,19 @@ gems:
230
258
  source:
231
259
  type: git
232
260
  name: ruby/gem_rbs_collection
233
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
261
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
234
262
  remote: https://github.com/ruby/gem_rbs_collection.git
235
263
  repo_dir: gems
264
+ - name: uri
265
+ version: '0'
266
+ source:
267
+ type: stdlib
236
268
  - name: webmock
237
269
  version: '3.19'
238
270
  source:
239
271
  type: git
240
272
  name: ruby/gem_rbs_collection
241
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
273
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
242
274
  remote: https://github.com/ruby/gem_rbs_collection.git
243
275
  repo_dir: gems
244
276
  - name: yard
@@ -246,7 +278,7 @@ gems:
246
278
  source:
247
279
  type: git
248
280
  name: ruby/gem_rbs_collection
249
- revision: 3670834268f4ea9c10aefeffae7e072b51256375
281
+ revision: f1d2dae32fe8d46683fbc79bbd0f1ca391d5e11a
250
282
  remote: https://github.com/ruby/gem_rbs_collection.git
251
283
  repo_dir: gems
252
284
  gemfile_lock_path: Gemfile.lock
@@ -0,0 +1,17 @@
1
+ # The Forwardable module provides delegation of specified methods to a designated object
2
+ module Forwardable
3
+ # Defines delegators for instance methods
4
+ def def_instance_delegators: (Symbol | String accessor, *Symbol methods) -> void
5
+
6
+ def def_instance_delegator: (Symbol | String accessor, Symbol method, ?Symbol ali) -> void
7
+
8
+ # Defines delegators for singleton methods (used with extend Forwardable)
9
+ def def_single_delegators: (Symbol | String accessor, *Symbol methods) -> void
10
+
11
+ def def_single_delegator: (Symbol | String accessor, Symbol method, ?Symbol ali) -> void
12
+
13
+ # Common aliases that work in both instance and singleton contexts
14
+ def def_delegators: (Symbol | String accessor, *Symbol methods) -> void
15
+
16
+ def def_delegator: (Symbol | String accessor, Symbol method, ?Symbol ali) -> void
17
+ end
@@ -2,7 +2,6 @@ module Selenium
2
2
  module WebDriver
3
3
  module Atoms
4
4
  include _Bridge
5
- include _ExecuteScript
6
5
 
7
6
  def atom_script: (Symbol) -> String
8
7
 
@@ -10,7 +10,7 @@ module Selenium
10
10
 
11
11
  READINESS_STATE: Hash[Symbol, String]
12
12
 
13
- def initialize: (driver: untyped, ?browsing_context_id: untyped?, ?type: untyped?, ?reference_context: untyped?) -> void
13
+ def initialize: (untyped bridge) -> void
14
14
 
15
15
  def navigate: (url: untyped, ?readiness_state: untyped?) -> untyped
16
16
 
@@ -269,6 +269,9 @@ module Selenium
269
269
  UNICODE_CODE_POINT: 30
270
270
 
271
271
  def escape_css: (untyped string) -> untyped
272
+
273
+ def self.extra_commands: () -> Hash[Symbol, Array[untyped]]
274
+ def self.add_command: (Symbol name, Symbol method, String url, ?untyped block) -> void
272
275
  end
273
276
  end
274
277
  end
@@ -35,7 +35,7 @@ module Selenium
35
35
  def available_log_types: () -> Array[Symbol]
36
36
 
37
37
  def log: (Symbol type) -> Array[Hash[String, untyped]] |
38
- (Symbol type) -> Array[LogEntry]
38
+ (Symbol type) -> Array[Selenium::WebDriver::LogEntry]
39
39
  end
40
40
  end
41
41
  end
@@ -47,6 +47,8 @@ module Selenium
47
47
 
48
48
  alias [] attribute
49
49
 
50
+ def rect: () -> untyped
51
+
50
52
  def ref: () -> ::Array[:element | untyped]
51
53
 
52
54
  def to_json: () -> untyped
@@ -2,6 +2,16 @@ module Selenium
2
2
  module WebDriver
3
3
  class Driver
4
4
  def capabilities: () -> untyped
5
+
6
+ def manage: () -> untyped
7
+
8
+ def navigate: () -> untyped
9
+
10
+ def find_element: (untyped how, ?untyped? what) -> untyped
11
+
12
+ def find_elements: (untyped how, ?untyped? what) -> untyped
13
+
14
+ def add_extensions: (untyped mod) -> untyped
5
15
  end
6
16
  end
7
17
  end
@@ -0,0 +1,12 @@
1
+ module FedCM
2
+ class Account
3
+ # Keep fields loose to avoid downstream mismatches.
4
+ attr_reader id: untyped
5
+ attr_reader email: untyped
6
+ attr_reader name: untyped
7
+ attr_reader given_name: untyped
8
+ attr_reader picture_url: untyped
9
+
10
+ def initialize: (*untyped) -> void
11
+ end
12
+ end
@@ -50,8 +50,6 @@ module Selenium
50
50
 
51
51
  def proxy=: (untyped proxy) -> untyped
52
52
 
53
- alias as_json encoded
54
-
55
53
  private
56
54
 
57
55
  def set_manual_proxy_preference: (untyped key, untyped value) -> untyped?
@@ -0,0 +1,12 @@
1
+ module Selenium
2
+ module WebDriver
3
+ class LogEntry
4
+ # Keep attributes loose to avoid downstream mismatches; refine later if desired.
5
+ attr_reader level: untyped
6
+ attr_reader message: String
7
+ attr_reader timestamp: Integer
8
+
9
+ def initialize: (untyped level, String message, Integer timestamp) -> void
10
+ end
11
+ end
12
+ end
@@ -2,6 +2,12 @@ module Selenium
2
2
  module WebDriver
3
3
  module Remote
4
4
  class Capabilities
5
+ def initialize: (?Hash[untyped, untyped]) -> void
6
+ def []: (untyped key) -> untyped
7
+ def []=: (untyped key, untyped value) -> untyped
8
+
9
+ # Add this:
10
+ def self.json_create: (Hash[untyped, untyped] value) -> Capabilities
5
11
  end
6
12
  end
7
13
  end
@@ -2,4 +2,8 @@ interface _Bridge
2
2
  def bridge: -> untyped
3
3
 
4
4
  def execute: (untyped command, ?Hash[untyped, untyped] opts, ?untyped? command_hash) -> untyped
5
+
6
+ def execute_script: (String script, *untyped args) -> untyped
7
+
8
+ def execute_async_script: (String script, *untyped args) -> untyped
5
9
  end
@@ -3,7 +3,7 @@ module Appium
3
3
  module Android
4
4
  module Device
5
5
  module Authentication
6
- def execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
6
+ include _Bridge
7
7
 
8
8
  def self.add_methods: () -> untyped
9
9
  end
@@ -3,7 +3,7 @@ module Appium
3
3
  module Android
4
4
  module Device
5
5
  module Clipboard
6
- def execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
6
+ include _Bridge
7
7
 
8
8
  def self.add_methods: () -> untyped
9
9
  end
@@ -3,6 +3,8 @@ module Appium
3
3
  module Android
4
4
  module Device
5
5
  module Emulator
6
+ include _Bridge
7
+
6
8
  GSM_CALL_ACTIONS: ::Array[:call | :accept | :cancel | :hold]
7
9
 
8
10
  GSM_VOICE_STATES: ::Array[:on | :off | :denied | :searching | :roaming | :home | :unregistered]
@@ -14,8 +16,6 @@ module Appium
14
16
  POWER_AC_STATE: ::Array[:on | :off]
15
17
 
16
18
  def self.add_methods: () -> untyped
17
-
18
- def execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
19
19
  end
20
20
  end
21
21
  end
@@ -3,7 +3,7 @@ module Appium
3
3
  module Android
4
4
  module Device
5
5
  module Performance
6
- def execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
6
+ include _Bridge
7
7
 
8
8
  def self.add_methods: () -> untyped
9
9
  end
@@ -3,6 +3,8 @@ module Appium
3
3
  module Android
4
4
  module Device
5
5
  module Screen
6
+ include _Bridge
7
+
6
8
  def self.add_methods: () -> untyped
7
9
  end
8
10
  end
@@ -2,11 +2,29 @@ module Appium
2
2
  module Core
3
3
  module Android
4
4
  module Device
5
- extend Forwardable
5
+ include _Bridge
6
6
 
7
- def self.execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
7
+ extend Forwardable
8
8
 
9
9
  def self.extended: (untyped _mod) -> (nil | untyped)
10
+
11
+ def open_notifications: () -> untyped
12
+
13
+ def current_activity: () -> untyped
14
+
15
+ def current_package: () -> untyped
16
+
17
+ def get_system_bars: () -> untyped
18
+
19
+ def system_bars: () -> untyped
20
+
21
+ def toggle_location_services: () -> untyped
22
+
23
+ def hide_keyboard: () -> untyped
24
+
25
+ def background_app: (Integer duration) -> untyped
26
+
27
+ def chrome_send_command: (String cmd, Hash[untyped, untyped] params) -> untyped
10
28
  end
11
29
  end
12
30
  end
@@ -4,6 +4,8 @@ module Appium
4
4
  module Uiautomator2
5
5
  module Device
6
6
  module Battery
7
+ include _Bridge
8
+
7
9
  def self.add_methods: () -> untyped
8
10
  end
9
11
  end
@@ -19,6 +19,10 @@ module Appium
19
19
  def quit: () -> untyped
20
20
 
21
21
  def close: () -> untyped
22
+
23
+ private
24
+
25
+ def browsing_context: () -> ::Selenium::WebDriver::BiDi::BrowsingContext
22
26
  end
23
27
  end
24
28
  end
@@ -6,6 +6,8 @@ module Appium
6
6
  end
7
7
 
8
8
  class Bridge < ::Selenium::WebDriver::Remote::Bridge
9
+ include _Bridge
10
+
9
11
  @browser: untyped
10
12
 
11
13
  @available_commands: untyped
@@ -3,6 +3,9 @@ module Appium
3
3
  class Base
4
4
  class Capabilities < Selenium::WebDriver::Remote::Capabilities
5
5
  def convert_key: (untyped key) -> untyped
6
+
7
+ # Inherit json_create from parent, but you can redeclare for clarity:
8
+ def self.json_create: (Hash[untyped, untyped] value) -> Capabilities
6
9
  end
7
10
  end
8
11
  end
@@ -4,6 +4,9 @@ module Appium
4
4
  module Rotatable
5
5
  ORIENTATIONS: Array[Symbol]
6
6
 
7
+ # Expects including class to have bridge accessor
8
+ def bridge: () -> untyped
9
+
7
10
  def rotation=: (untyped orientation) -> untyped
8
11
 
9
12
  alias rotate rotation=
@@ -2,7 +2,7 @@ module Appium
2
2
  module Core
3
3
  class Base
4
4
  module SearchContext
5
- APPIUM_EXTRA_FINDERS: { Symbol => String }
5
+ APPIUM_EXTRA_FINDERS: ::Hash[Symbol, String]
6
6
  end
7
7
  end
8
8
  end
@@ -3,9 +3,9 @@ module Appium
3
3
  class Base
4
4
  module Device
5
5
  module AppState
6
- STATUS: ::Array[:not_installed | :not_running | :running_in_background_suspended | :running_in_background | :running_in_foreground]
6
+ include _Bridge
7
7
 
8
- def execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
8
+ STATUS: ::Array[:not_installed | :not_running | :running_in_background_suspended | :running_in_background | :running_in_foreground]
9
9
 
10
10
  def app_state: (untyped app_id) -> untyped
11
11
  end
@@ -3,7 +3,7 @@ module Appium
3
3
  class Base
4
4
  module Device
5
5
  module Device
6
- def execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
6
+ include _Bridge
7
7
 
8
8
  def shake: () -> untyped
9
9
 
@@ -3,13 +3,13 @@ module Appium
3
3
  class Base
4
4
  module Device
5
5
  module DeviceLock
6
+ include _Bridge
7
+
6
8
  def lock: (?untyped? duration) -> untyped
7
9
 
8
10
  def device_locked?: () -> untyped
9
11
 
10
12
  def unlock: () -> untyped
11
-
12
- def execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
13
13
  end
14
14
  end
15
15
  end
@@ -3,9 +3,9 @@ module Appium
3
3
  class Base
4
4
  module Device
5
5
  module Keyboard
6
- def execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
6
+ include _Bridge
7
7
 
8
- def hide_keyboard: (?untyped? close_key, ?untyped? strategy) -> untyped
8
+ def hide_keyboard: (?untyped? close_key) -> untyped
9
9
 
10
10
  def is_keyboard_shown: () -> untyped
11
11
  end
@@ -3,7 +3,7 @@ module Appium
3
3
  class Base
4
4
  module Device
5
5
  module KeyEvent
6
- def execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
6
+ include _Bridge
7
7
 
8
8
  def keyevent: (untyped key, ?untyped? metastate) -> untyped
9
9
 
@@ -7,12 +7,16 @@ module Appium
7
7
 
8
8
  attr_reader upload_option: untyped
9
9
 
10
- METHOD: ::Array["POST" | "PUT"]
10
+ METHOD: ::Array[::String]
11
11
 
12
- def initialize: (?remote_path: untyped?, ?user: untyped?, ?pass: untyped?, ?method: ::String, ?file_field_name: untyped?, ?form_fields: untyped?, ?headers: untyped?, ?force_restart: untyped?) -> void
12
+ type upload_method = "POST" | "PUT" | "post" | "put"
13
+
14
+ def initialize: (?remote_path: untyped?, ?user: untyped?, ?pass: untyped?, ?method: upload_method, ?file_field_name: untyped?, ?form_fields: untyped?, ?headers: untyped?, ?force_restart: untyped?) -> void
13
15
 
14
16
  module Command
15
- def stop_recording_screen: (?remote_path: untyped?, ?user: untyped?, ?pass: untyped?, ?method: ::String, ?file_field_name: untyped?, ?form_fields: untyped?, ?headers: untyped?) -> untyped
17
+ include _Bridge
18
+
19
+ def stop_recording_screen: (?remote_path: untyped?, ?user: untyped?, ?pass: untyped?, ?method: upload_method, ?file_field_name: untyped?, ?form_fields: untyped?, ?headers: untyped?) -> untyped
16
20
 
17
21
  def stop_and_save_recording_screen: (untyped file_path) -> untyped
18
22
  end
@@ -1,5 +1,14 @@
1
1
  module Appium
2
- Location: Class
2
+ # Struct for device location
3
+ class Location
4
+ attr_accessor latitude: Float | Integer | String
5
+
6
+ attr_accessor longitude: Float | Integer | String
7
+
8
+ attr_accessor altitude: Float | Integer | String
9
+
10
+ def initialize: (Float | Integer | String latitude, Float | Integer | String longitude, Float | Integer | String altitude) -> void
11
+ end
3
12
 
4
13
  module Core
5
14
  module Android
@@ -41,7 +50,7 @@ module Appium
41
50
 
42
51
  attr_reader enable_idempotency_header: bool
43
52
 
44
- def initialize: (Hash[Symbol, String] appium_lib_opts) -> void
53
+ def initialize: (Hash[Symbol, untyped] appium_lib_opts) -> void
45
54
 
46
55
  private
47
56
 
@@ -79,7 +88,7 @@ module Appium
79
88
 
80
89
  @custom_url: String
81
90
 
82
- @caps: Hash[Symbol | String, Symbol | String | Integer]
91
+ @caps: Core::Base::Capabilities
83
92
 
84
93
  @http_client: Core::Base::Http::Default
85
94
 
@@ -172,25 +181,25 @@ module Appium
172
181
 
173
182
  extend Core::Device
174
183
 
175
- def get_caps: (Hash[Symbol, Symbol | String | Hash[Symbol, String | Numeric] | Numeric]? opts)
176
- -> Core::Base::Capabilities
184
+ def get_caps: (Hash[Symbol, untyped]? opts) -> Core::Base::Capabilities
177
185
 
178
- def get_appium_lib_opts: (Hash[Symbol, Symbol | String | Hash[Symbol, String | Numeric] | Numeric]? opts)
179
- -> (Symbol | String | Hash[Symbol, String | Numeric] | Numeric)
186
+ def get_appium_lib_opts: (Hash[Symbol, untyped]? opts) -> Hash[Symbol, untyped]
180
187
 
181
188
  def get_app: () -> String?
182
189
 
183
190
  def set_app_path: () -> String?
184
191
 
185
192
  def set_appium_lib_specific_values: (
186
- Hash[Symbol, String] appium_lib_opts
193
+ Hash[Symbol, String | Numeric] appium_lib_opts
187
194
  ) -> bool
188
195
 
189
- def set_appium_device: () -> Symbol
196
+ def set_appium_device: () -> Symbol?
190
197
 
191
198
  def set_automation_name: () -> Symbol?
192
199
 
193
- def convert_downcase: (Symbol value) -> Symbol
200
+ def get_cap: (String | Symbol name) -> untyped
201
+
202
+ def convert_downcase: (String | Symbol value) -> Symbol
194
203
  end
195
204
  end
196
205
  end
@@ -1,13 +1,16 @@
1
1
  module Appium
2
2
  module Core
3
+ # Element class inheriting from Selenium::WebDriver::Element
3
4
  class Element < ::Selenium::WebDriver::Element
4
5
  include ::Appium::Core::Base::TakesScreenshot
5
6
 
6
- attr_reader id: untyped
7
+ def initialize: (untyped bridge, untyped id) -> void
8
+
9
+ attr_reader id: Array[untyped]
7
10
 
8
11
  def method_missing: (untyped method_name, *untyped args) { (?) -> untyped } -> (nil | untyped)
9
12
 
10
- def respond_to_missing?: (*untyped) -> true
13
+ def respond_to_missing?: (untyped _method_name, bool _include_private) -> true
11
14
 
12
15
  # Alias for type
13
16
  alias type send_keys
@@ -5,11 +5,7 @@ module Appium
5
5
  module Clipboard
6
6
  include _Bridge
7
7
 
8
- def execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
9
-
10
8
  def self.add_methods: () -> untyped
11
-
12
- def self.touch_id: -> untyped
13
9
  end
14
10
  end
15
11
  end
@@ -4,9 +4,11 @@ module Appium
4
4
  module Xcuitest
5
5
  module Device
6
6
  module Battery
7
+ include _Bridge
8
+
7
9
  def self.add_methods: () -> (Symbol | Hash[Symbol, Proc])?
8
10
 
9
- def battery_info: () -> (Symbol | Hash[Symbol, Proc])?
11
+ def battery_info: () -> ::Hash[::Symbol, ::Symbol]
10
12
  end
11
13
  end
12
14
  end
@@ -4,6 +4,8 @@ module Appium
4
4
  module Xcuitest
5
5
  module Device
6
6
  module Performance
7
+ include _Bridge
8
+
7
9
  def self.add_methods: () -> untyped
8
10
  end
9
11
  end
@@ -3,6 +3,6 @@ module Appium
3
3
  -> Hash[Symbol, untyped]
4
4
 
5
5
  module Core
6
- def self.for: (*untyped args) -> Driver
6
+ def self.for: (Hash[Symbol, untyped] opts) -> Driver
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_lib_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.1.1
4
+ version: 11.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuaki MATSUO
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-08-08 00:00:00.000000000 Z
11
+ date: 2025-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faye-websocket
@@ -139,6 +139,7 @@ files:
139
139
  - rbs_collection.yaml
140
140
  - sig/gems/em.rbs
141
141
  - sig/gems/faye.rbs
142
+ - sig/gems/forwardable.rbs
142
143
  - sig/gems/selenium/abstract_event_listener.rbs
143
144
  - sig/gems/selenium/atoms.rbs
144
145
  - sig/gems/selenium/bidi/browsing_context.rbs
@@ -154,6 +155,7 @@ files:
154
155
  - sig/gems/selenium/edge/features.rbs
155
156
  - sig/gems/selenium/error.rbs
156
157
  - sig/gems/selenium/event_firing_bridge.rbs
158
+ - sig/gems/selenium/fedcm.rbs
157
159
  - sig/gems/selenium/firefox/driver.rbs
158
160
  - sig/gems/selenium/firefox/extension.rbs
159
161
  - sig/gems/selenium/firefox/features.rbs
@@ -171,6 +173,7 @@ files:
171
173
  - sig/gems/selenium/interfaces/driver.rbs
172
174
  - sig/gems/selenium/interfaces/features.rbs
173
175
  - sig/gems/selenium/local_driver.rbs
176
+ - sig/gems/selenium/log_entry.rbs
174
177
  - sig/gems/selenium/platform.rbs
175
178
  - sig/gems/selenium/profile_helper.rbs
176
179
  - sig/gems/selenium/remote/bridge/commands.rbs
@@ -187,7 +190,6 @@ files:
187
190
  - sig/lib/appium_lib_core/android/device/auth_finger_print.rbs
188
191
  - sig/lib/appium_lib_core/android/device/clipboard.rbs
189
192
  - sig/lib/appium_lib_core/android/device/emulator.rbs
190
- - sig/lib/appium_lib_core/android/device/network.rbs
191
193
  - sig/lib/appium_lib_core/android/device/performance.rbs
192
194
  - sig/lib/appium_lib_core/android/device/screen.rbs
193
195
  - sig/lib/appium_lib_core/android/espresso/bridge.rbs
@@ -233,8 +235,8 @@ files:
233
235
  - sig/lib/appium_lib_core/device.rbs
234
236
  - sig/lib/appium_lib_core/driver.rbs
235
237
  - sig/lib/appium_lib_core/element.rbs
236
- - sig/lib/appium_lib_core/ios/clipboard.rbs
237
238
  - sig/lib/appium_lib_core/ios/device.rbs
239
+ - sig/lib/appium_lib_core/ios/device/clipboard.rbs
238
240
  - sig/lib/appium_lib_core/ios/xcuitest/bridge.rbs
239
241
  - sig/lib/appium_lib_core/ios/xcuitest/device.rbs
240
242
  - sig/lib/appium_lib_core/ios/xcuitest/device/battery.rbs
@@ -1,13 +0,0 @@
1
- module Appium
2
- module Core
3
- module Android
4
- module Device
5
- module Network
6
- def execute: (Symbol command, ?Hash[untyped, untyped], ?Hash[untyped, untyped]) -> untyped
7
-
8
- def self.add_methods: () -> untyped
9
- end
10
- end
11
- end
12
- end
13
- end