workos 0.10.1 → 0.11.2

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 (107) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/.ruby-version +1 -1
  4. data/.semaphore/semaphore.yml +8 -2
  5. data/Gemfile.lock +49 -36
  6. data/README.md +13 -230
  7. data/lib/workos.rb +3 -0
  8. data/lib/workos/client.rb +21 -4
  9. data/lib/workos/connection.rb +12 -1
  10. data/lib/workos/directory.rb +53 -0
  11. data/lib/workos/directory_group.rb +44 -0
  12. data/lib/workos/directory_sync.rb +63 -7
  13. data/lib/workos/directory_user.rb +63 -0
  14. data/lib/workos/passwordless.rb +4 -0
  15. data/lib/workos/portal.rb +54 -1
  16. data/lib/workos/profile.rb +1 -2
  17. data/lib/workos/sso.rb +31 -6
  18. data/lib/workos/types.rb +3 -0
  19. data/lib/workos/types/connection_struct.rb +3 -0
  20. data/lib/workos/types/directory_group_struct.rb +13 -0
  21. data/lib/workos/types/directory_struct.rb +16 -0
  22. data/lib/workos/types/directory_user_struct.rb +19 -0
  23. data/lib/workos/types/intent_enum.rb +1 -0
  24. data/lib/workos/version.rb +1 -1
  25. data/sorbet/rbi/gems/addressable.rbi +199 -0
  26. data/sorbet/rbi/gems/ast.rbi +49 -0
  27. data/sorbet/rbi/gems/codecov.rbi +37 -0
  28. data/sorbet/rbi/gems/crack.rbi +62 -0
  29. data/sorbet/rbi/gems/docile.rbi +36 -0
  30. data/sorbet/rbi/gems/hashdiff.rbi +66 -0
  31. data/sorbet/rbi/gems/parallel.rbi +83 -0
  32. data/sorbet/rbi/gems/parser.rbi +1429 -0
  33. data/sorbet/rbi/gems/public_suffix.rbi +104 -0
  34. data/sorbet/rbi/gems/rainbow.rbi +118 -0
  35. data/sorbet/rbi/gems/rake.rbi +644 -0
  36. data/sorbet/rbi/gems/regexp_parser.rbi +926 -0
  37. data/sorbet/rbi/gems/rexml.rbi +628 -0
  38. data/sorbet/rbi/gems/rspec-core.rbi +1898 -0
  39. data/sorbet/rbi/gems/rspec-expectations.rbi +1127 -0
  40. data/sorbet/rbi/gems/rspec-mocks.rbi +1099 -0
  41. data/sorbet/rbi/gems/rspec-support.rbi +280 -0
  42. data/sorbet/rbi/gems/rspec.rbi +15 -0
  43. data/sorbet/rbi/gems/rubocop-ast.rbi +1355 -0
  44. data/sorbet/rbi/gems/rubocop.rbi +7253 -0
  45. data/sorbet/rbi/gems/ruby-progressbar.rbi +304 -0
  46. data/sorbet/rbi/gems/simplecov-html.rbi +35 -0
  47. data/sorbet/rbi/gems/simplecov.rbi +406 -0
  48. data/sorbet/rbi/gems/unicode-display_width.rbi +17 -0
  49. data/sorbet/rbi/gems/vcr.rbi +572 -0
  50. data/sorbet/rbi/gems/webmock.rbi +556 -0
  51. data/sorbet/rbi/gems/yard.rbi +1165 -0
  52. data/sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi +645 -0
  53. data/sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi +1891 -0
  54. data/sorbet/rbi/sorbet-typed/lib/rubocop/~>0.85/rubocop.rbi +2072 -0
  55. data/sorbet/rbi/sorbet-typed/lib/yard/all/yard.rbi +1214 -0
  56. data/sorbet/rbi/todo.rbi +1 -3
  57. data/spec/lib/workos/audit_trail_spec.rb +0 -8
  58. data/spec/lib/workos/directory_sync_spec.rb +347 -40
  59. data/spec/lib/workos/passwordless_spec.rb +0 -8
  60. data/spec/lib/workos/portal_spec.rb +65 -11
  61. data/spec/lib/workos/sso_spec.rb +142 -76
  62. data/spec/spec_helper.rb +2 -1
  63. data/spec/support/fixtures/vcr_cassettes/directory_sync/delete_directory.yml +72 -0
  64. data/spec/support/fixtures/vcr_cassettes/{sso/list_connections.yml → directory_sync/list_directories/with_after.yml} +7 -7
  65. data/spec/support/fixtures/vcr_cassettes/{sso/list_connections_with_limit_param.yml → directory_sync/list_directories/with_before.yml} +8 -8
  66. data/spec/support/fixtures/vcr_cassettes/{sso/list_connections_with_connection_type_param.yml → directory_sync/list_directories/with_domain.yml} +11 -10
  67. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_limit.yml +74 -0
  68. data/spec/support/fixtures/vcr_cassettes/directory_sync/{list_directories.yml → list_directories/with_no_options.yml} +1 -1
  69. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_search.yml +73 -0
  70. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_after.yml +76 -0
  71. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_before.yml +74 -0
  72. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_directory.yml +78 -0
  73. data/spec/support/fixtures/vcr_cassettes/{sso/list_connections_with_before_param.yml → directory_sync/list_groups/with_limit.yml} +12 -11
  74. data/spec/support/fixtures/vcr_cassettes/directory_sync/{list_groups.yml → list_groups/with_no_options.yml} +16 -6
  75. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_user.yml +72 -0
  76. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_after.yml +86 -0
  77. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_before.yml +75 -0
  78. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_directory.yml +93 -0
  79. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_group.yml +76 -0
  80. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_limit.yml +75 -0
  81. data/spec/support/fixtures/vcr_cassettes/directory_sync/{list_users.yml → list_users/with_no_options.yml} +16 -6
  82. data/spec/support/fixtures/vcr_cassettes/organization/get.yml +73 -0
  83. data/spec/support/fixtures/vcr_cassettes/organization/get_invalid.yml +72 -0
  84. data/spec/support/fixtures/vcr_cassettes/organization/update.yml +73 -0
  85. data/spec/support/fixtures/vcr_cassettes/organization/update_invalid.yml +73 -0
  86. data/spec/support/fixtures/vcr_cassettes/portal/generate_link_dsync.yml +72 -0
  87. data/spec/support/fixtures/vcr_cassettes/portal/{generate_link.yml → generate_link_sso.yml} +1 -1
  88. data/spec/support/fixtures/vcr_cassettes/sso/create_connection_with_valid_source.yml +3 -3
  89. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_after.yml +73 -0
  90. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_before.yml +73 -0
  91. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_connection_type.yml +73 -0
  92. data/spec/support/fixtures/vcr_cassettes/sso/{list_connections_with_domain_param.yml → list_connections/with_domain.yml} +6 -6
  93. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_limit.yml +74 -0
  94. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_no_options.yml +73 -0
  95. data/spec/support/fixtures/vcr_cassettes/sso/{list_connections_with_organization_id_param.yml → list_connections/with_organization_id.yml} +6 -6
  96. data/workos.gemspec +2 -0
  97. metadata +109 -42
  98. data/sorbet/rbi/hidden-definitions/errors.txt +0 -24896
  99. data/sorbet/rbi/hidden-definitions/hidden.rbi +0 -38411
  100. data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8684
  101. data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +0 -4222
  102. data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
  103. data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
  104. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories_with_domain_param.yml +0 -63
  105. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups_with_directory_param.yml +0 -62
  106. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users_with_directory_param.yml +0 -62
  107. data/spec/support/fixtures/vcr_cassettes/sso/list_connections_with_after_param.yml +0 -72
@@ -13,7 +13,7 @@ module WorkOS
13
13
  sig { returns(String) }
14
14
  attr_accessor :id, :email, :first_name, :last_name, :connection_id,
15
15
  :connection_type, :idp_id, :raw_attributes
16
- # rubocop:disable Metrics/AbcSize
16
+
17
17
  sig { params(profile_json: String).void }
18
18
  def initialize(profile_json)
19
19
  raw = parse_json(profile_json)
@@ -27,7 +27,6 @@ module WorkOS
27
27
  @idp_id = raw.idp_id
28
28
  @raw_attributes = raw.raw_attributes
29
29
  end
30
- # rubocop:enable Metrics/AbcSize
31
30
 
32
31
  sig { returns(String) }
33
32
  def full_name
data/lib/workos/sso.rb CHANGED
@@ -26,6 +26,8 @@ module WorkOS
26
26
  # required
27
27
  # @param [String] provider A provider name for an Identity Provider
28
28
  # configured on your WorkOS dashboard. Only 'Google' is supported.
29
+ # @param [String] connection The ID for a Connection configured on
30
+ # WorkOS.
29
31
  # @param [String] client_id The WorkOS client ID for the environment
30
32
  # where you've configured your SSO connection.
31
33
  # @param [String] project_id The WorkOS project ID for the project.
@@ -58,15 +60,18 @@ module WorkOS
58
60
  client_id: T.nilable(String),
59
61
  domain: T.nilable(String),
60
62
  provider: T.nilable(String),
63
+ connection: T.nilable(String),
61
64
  state: T.nilable(String),
62
65
  ).returns(String)
63
66
  end
67
+ # rubocop:disable Metrics/MethodLength, Metrics/ParameterLists
64
68
  def authorization_url(
65
69
  redirect_uri:,
66
70
  project_id: nil,
67
71
  client_id: nil,
68
72
  domain: nil,
69
73
  provider: nil,
74
+ connection: nil,
70
75
  state: ''
71
76
  )
72
77
  if project_id
@@ -75,7 +80,11 @@ module WorkOS
75
80
  client_id = project_id
76
81
  end
77
82
 
78
- validate_domain_and_provider(provider: provider, domain: domain)
83
+ validate_authorization_url_arguments(
84
+ provider: provider,
85
+ domain: domain,
86
+ connection: connection,
87
+ )
79
88
 
80
89
  query = URI.encode_www_form({
81
90
  client_id: client_id,
@@ -84,10 +93,12 @@ module WorkOS
84
93
  state: state,
85
94
  domain: domain,
86
95
  provider: provider,
96
+ connection: connection,
87
97
  }.compact)
88
98
 
89
99
  "https://#{WorkOS::API_HOSTNAME}/sso/authorize?#{query}"
90
100
  end
101
+ # rubocop:enable Metrics/MethodLength, Metrics/ParameterLists
91
102
 
92
103
  # Fetch the profile details for the authenticated SSO user.
93
104
  #
@@ -215,7 +226,7 @@ module WorkOS
215
226
  sig do
216
227
  params(
217
228
  options: T::Hash[Symbol, String],
218
- ).returns(T::Array[T::Hash[String, T.nilable(String)]])
229
+ ).returns(WorkOS::Types::ListStruct)
219
230
  end
220
231
  def list_connections(options = {})
221
232
  response = execute_request(
@@ -226,7 +237,15 @@ module WorkOS
226
237
  ),
227
238
  )
228
239
 
229
- JSON.parse(response.body)['data']
240
+ parsed_response = JSON.parse(response.body)
241
+ connections = parsed_response['data'].map do |connection|
242
+ ::WorkOS::Connection.new(connection.to_json)
243
+ end
244
+
245
+ WorkOS::Types::ListStruct.new(
246
+ data: connections,
247
+ list_metadata: parsed_response['listMetadata'],
248
+ )
230
249
  end
231
250
 
232
251
  # Get a Connection
@@ -284,11 +303,17 @@ module WorkOS
284
303
  params(
285
304
  domain: T.nilable(String),
286
305
  provider: T.nilable(String),
306
+ connection: T.nilable(String),
287
307
  ).void
288
308
  end
289
- def validate_domain_and_provider(domain:, provider:)
290
- if [domain, provider].all?(&:nil?)
291
- raise ArgumentError, 'Either domain or provider is required.'
309
+ def validate_authorization_url_arguments(
310
+ domain:,
311
+ provider:,
312
+ connection:
313
+ )
314
+ if [domain, provider, connection].all?(&:nil?)
315
+ raise ArgumentError, 'Either connection, domain, or ' \
316
+ 'provider is required.'
292
317
  end
293
318
 
294
319
  return unless provider && !PROVIDERS.include?(provider)
data/lib/workos/types.rb CHANGED
@@ -6,11 +6,14 @@ module WorkOS
6
6
  # so we're using Sorbet throughout this Ruby gem.
7
7
  module Types
8
8
  require_relative 'types/connection_struct'
9
+ require_relative 'types/directory_struct'
10
+ require_relative 'types/directory_group_struct'
9
11
  require_relative 'types/intent_enum'
10
12
  require_relative 'types/list_struct'
11
13
  require_relative 'types/organization_struct'
12
14
  require_relative 'types/passwordless_session_struct'
13
15
  require_relative 'types/profile_struct'
14
16
  require_relative 'types/provider_enum'
17
+ require_relative 'types/directory_user_struct'
15
18
  end
16
19
  end
@@ -10,6 +10,9 @@ module WorkOS
10
10
  const :name, String
11
11
  const :connection_type, String
12
12
  const :domains, T::Array[T.untyped]
13
+ const :organization_id, String
14
+ const :state, String
15
+ const :status, String
13
16
  end
14
17
  end
15
18
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ # typed: strict
3
+
4
+ module WorkOS
5
+ module Types
6
+ # This DirectoryGroupStruct acts as a typed interface
7
+ # for the DirectoryGroup class
8
+ class DirectoryGroupStruct < T::Struct
9
+ const :id, String
10
+ const :name, String
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ # typed: strict
3
+
4
+ module WorkOS
5
+ module Types
6
+ # This DirectoryStruct acts as a typed interface
7
+ # for the Directory class
8
+ class DirectoryStruct < T::Struct
9
+ const :id, String
10
+ const :name, String
11
+ const :domain, String
12
+ const :type, String
13
+ const :state, String
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+ # typed: strict
3
+
4
+ module WorkOS
5
+ module Types
6
+ # The DirectoryUserStruct acts as a typed interface
7
+ # for the DirectoryUser class
8
+ class DirectoryUserStruct < T::Struct
9
+ const :id, String
10
+ const :idp_id, String
11
+ const :emails, T::Array[T.untyped]
12
+ const :first_name, T.nilable(String)
13
+ const :last_name, T.nilable(String)
14
+ const :username, T.nilable(String)
15
+ const :state, T.nilable(String)
16
+ const :raw_attributes, T::Hash[Symbol, Object]
17
+ end
18
+ end
19
+ end
@@ -8,6 +8,7 @@ module WorkOS
8
8
  class Intent < T::Enum
9
9
  enums do
10
10
  SSO = new('sso')
11
+ DSYNC = new('dsync')
11
12
  end
12
13
  end
13
14
  end
@@ -2,5 +2,5 @@
2
2
  # typed: strong
3
3
 
4
4
  module WorkOS
5
- VERSION = '0.10.1'
5
+ VERSION = '0.11.2'
6
6
  end
@@ -0,0 +1,199 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi gems
3
+
4
+ # typed: strict
5
+ #
6
+ # If you would like to make changes to this file, great! Please create the gem's shim here:
7
+ #
8
+ # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/addressable/all/addressable.rbi
9
+ #
10
+ # addressable-2.7.0
11
+
12
+ module Addressable
13
+ end
14
+ module Addressable::VERSION
15
+ end
16
+ module Addressable::IDNA
17
+ def self.lookup_unicode_combining_class(codepoint); end
18
+ def self.lookup_unicode_compatibility(codepoint); end
19
+ def self.lookup_unicode_composition(unpacked); end
20
+ def self.lookup_unicode_lowercase(codepoint); end
21
+ def self.punycode_adapt(delta, numpoints, firsttime); end
22
+ def self.punycode_basic?(codepoint); end
23
+ def self.punycode_decode(punycode); end
24
+ def self.punycode_decode_digit(codepoint); end
25
+ def self.punycode_delimiter?(codepoint); end
26
+ def self.punycode_encode(unicode); end
27
+ def self.punycode_encode_digit(d); end
28
+ def self.to_ascii(input); end
29
+ def self.to_unicode(input); end
30
+ def self.unicode_compose(unpacked); end
31
+ def self.unicode_compose_pair(ch_one, ch_two); end
32
+ def self.unicode_decompose(unpacked); end
33
+ def self.unicode_decompose_hangul(codepoint); end
34
+ def self.unicode_downcase(input); end
35
+ def self.unicode_normalize_kc(input); end
36
+ def self.unicode_sort_canonical(unpacked); end
37
+ end
38
+ class Addressable::IDNA::PunycodeBadInput < StandardError
39
+ end
40
+ class Addressable::IDNA::PunycodeBigOutput < StandardError
41
+ end
42
+ class Addressable::IDNA::PunycodeOverflow < StandardError
43
+ end
44
+ class Addressable::URI
45
+ def +(uri); end
46
+ def ==(uri); end
47
+ def ===(uri); end
48
+ def absolute?; end
49
+ def authority; end
50
+ def authority=(new_authority); end
51
+ def basename; end
52
+ def default_port; end
53
+ def defer_validation; end
54
+ def display_uri; end
55
+ def domain; end
56
+ def dup; end
57
+ def empty?; end
58
+ def eql?(uri); end
59
+ def extname; end
60
+ def fragment; end
61
+ def fragment=(new_fragment); end
62
+ def freeze; end
63
+ def hash; end
64
+ def host; end
65
+ def host=(new_host); end
66
+ def hostname; end
67
+ def hostname=(new_hostname); end
68
+ def inferred_port; end
69
+ def initialize(options = nil); end
70
+ def inspect; end
71
+ def ip_based?; end
72
+ def join!(uri); end
73
+ def join(uri); end
74
+ def merge!(uri); end
75
+ def merge(hash); end
76
+ def normalize!; end
77
+ def normalize; end
78
+ def normalized_authority; end
79
+ def normalized_fragment; end
80
+ def normalized_host; end
81
+ def normalized_password; end
82
+ def normalized_path; end
83
+ def normalized_port; end
84
+ def normalized_query(*flags); end
85
+ def normalized_scheme; end
86
+ def normalized_site; end
87
+ def normalized_user; end
88
+ def normalized_userinfo; end
89
+ def omit!(*components); end
90
+ def omit(*components); end
91
+ def origin; end
92
+ def origin=(new_origin); end
93
+ def password; end
94
+ def password=(new_password); end
95
+ def path; end
96
+ def path=(new_path); end
97
+ def port; end
98
+ def port=(new_port); end
99
+ def query; end
100
+ def query=(new_query); end
101
+ def query_values(return_type = nil); end
102
+ def query_values=(new_query_values); end
103
+ def relative?; end
104
+ def remove_composite_values; end
105
+ def replace_self(uri); end
106
+ def request_uri; end
107
+ def request_uri=(new_request_uri); end
108
+ def route_from(uri); end
109
+ def route_to(uri); end
110
+ def scheme; end
111
+ def scheme=(new_scheme); end
112
+ def self.convert_path(path); end
113
+ def self.encode(uri, return_type = nil); end
114
+ def self.encode_component(component, character_class = nil, upcase_encoded = nil); end
115
+ def self.escape(uri, return_type = nil); end
116
+ def self.form_encode(form_values, sort = nil); end
117
+ def self.form_unencode(encoded_value); end
118
+ def self.heuristic_parse(uri, hints = nil); end
119
+ def self.ip_based_schemes; end
120
+ def self.join(*uris); end
121
+ def self.normalize_component(component, character_class = nil, leave_encoded = nil); end
122
+ def self.normalize_path(path); end
123
+ def self.normalized_encode(uri, return_type = nil); end
124
+ def self.parse(uri); end
125
+ def self.port_mapping; end
126
+ def self.unencode(uri, return_type = nil, leave_encoded = nil); end
127
+ def self.unencode_component(uri, return_type = nil, leave_encoded = nil); end
128
+ def self.unescape(uri, return_type = nil, leave_encoded = nil); end
129
+ def self.unescape_component(uri, return_type = nil, leave_encoded = nil); end
130
+ def site; end
131
+ def site=(new_site); end
132
+ def split_path(path); end
133
+ def tld; end
134
+ def tld=(new_tld); end
135
+ def to_hash; end
136
+ def to_s; end
137
+ def to_str; end
138
+ def user; end
139
+ def user=(new_user); end
140
+ def userinfo; end
141
+ def userinfo=(new_userinfo); end
142
+ def validate; end
143
+ end
144
+ class Addressable::URI::InvalidURIError < StandardError
145
+ end
146
+ module Addressable::URI::CharacterClasses
147
+ end
148
+ class Addressable::Template
149
+ def ==(template); end
150
+ def eql?(template); end
151
+ def expand(mapping, processor = nil, normalize_values = nil); end
152
+ def extract(uri, processor = nil); end
153
+ def freeze; end
154
+ def generate(params = nil, recall = nil, options = nil); end
155
+ def initialize(pattern); end
156
+ def inspect; end
157
+ def join_values(operator, return_value); end
158
+ def keys; end
159
+ def match(uri, processor = nil); end
160
+ def named_captures; end
161
+ def names; end
162
+ def normalize_keys(mapping); end
163
+ def normalize_value(value); end
164
+ def ordered_variable_defaults; end
165
+ def parse_template_pattern(pattern, processor = nil); end
166
+ def partial_expand(mapping, processor = nil, normalize_values = nil); end
167
+ def pattern; end
168
+ def source; end
169
+ def to_regexp; end
170
+ def transform_capture(mapping, capture, processor = nil, normalize_values = nil); end
171
+ def transform_partial_capture(mapping, capture, processor = nil, normalize_values = nil); end
172
+ def variable_defaults; end
173
+ def variables; end
174
+ end
175
+ class Addressable::Template::InvalidTemplateValueError < StandardError
176
+ end
177
+ class Addressable::Template::InvalidTemplateOperatorError < StandardError
178
+ end
179
+ class Addressable::Template::TemplateOperatorAbortedError < StandardError
180
+ end
181
+ class Addressable::Template::MatchData
182
+ def [](key, len = nil); end
183
+ def captures; end
184
+ def initialize(uri, template, mapping); end
185
+ def inspect; end
186
+ def keys; end
187
+ def mapping; end
188
+ def names; end
189
+ def post_match; end
190
+ def pre_match; end
191
+ def string; end
192
+ def template; end
193
+ def to_a; end
194
+ def to_s; end
195
+ def uri; end
196
+ def values; end
197
+ def values_at(*indexes); end
198
+ def variables; end
199
+ end
@@ -0,0 +1,49 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi gems
3
+
4
+ # typed: strict
5
+ #
6
+ # If you would like to make changes to this file, great! Please create the gem's shim here:
7
+ #
8
+ # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/ast/all/ast.rbi
9
+ #
10
+ # ast-2.4.2
11
+
12
+ module AST
13
+ end
14
+ class AST::Node
15
+ def +(array); end
16
+ def <<(element); end
17
+ def ==(other); end
18
+ def append(element); end
19
+ def assign_properties(properties); end
20
+ def children; end
21
+ def clone; end
22
+ def concat(array); end
23
+ def deconstruct; end
24
+ def dup; end
25
+ def eql?(other); end
26
+ def fancy_type; end
27
+ def hash; end
28
+ def initialize(type, children = nil, properties = nil); end
29
+ def inspect(indent = nil); end
30
+ def original_dup; end
31
+ def to_a; end
32
+ def to_ast; end
33
+ def to_s(indent = nil); end
34
+ def to_sexp(indent = nil); end
35
+ def to_sexp_array; end
36
+ def type; end
37
+ def updated(type = nil, children = nil, properties = nil); end
38
+ end
39
+ class AST::Processor
40
+ include AST::Processor::Mixin
41
+ end
42
+ module AST::Processor::Mixin
43
+ def handler_missing(node); end
44
+ def process(node); end
45
+ def process_all(nodes); end
46
+ end
47
+ module AST::Sexp
48
+ def s(type, *children); end
49
+ end