workos 0.10.0 → 1.0.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 (112) 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/LICENSE +1 -1
  7. data/README.md +13 -230
  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/organizations.rb +150 -0
  15. data/lib/workos/passwordless.rb +4 -0
  16. data/lib/workos/portal.rb +1 -81
  17. data/lib/workos/profile.rb +1 -2
  18. data/lib/workos/profile_and_token.rb +28 -0
  19. data/lib/workos/sso.rb +39 -104
  20. data/lib/workos/types/connection_struct.rb +3 -0
  21. data/lib/workos/types/directory_group_struct.rb +13 -0
  22. data/lib/workos/types/directory_struct.rb +16 -0
  23. data/lib/workos/types/directory_user_struct.rb +19 -0
  24. data/lib/workos/types/intent_enum.rb +1 -0
  25. data/lib/workos/types.rb +3 -0
  26. data/lib/workos/version.rb +1 -1
  27. data/lib/workos.rb +5 -0
  28. data/sorbet/rbi/gems/addressable.rbi +199 -0
  29. data/sorbet/rbi/gems/ast.rbi +49 -0
  30. data/sorbet/rbi/gems/codecov.rbi +37 -0
  31. data/sorbet/rbi/gems/crack.rbi +62 -0
  32. data/sorbet/rbi/gems/docile.rbi +36 -0
  33. data/sorbet/rbi/gems/hashdiff.rbi +66 -0
  34. data/sorbet/rbi/gems/parallel.rbi +83 -0
  35. data/sorbet/rbi/gems/parser.rbi +1429 -0
  36. data/sorbet/rbi/gems/public_suffix.rbi +104 -0
  37. data/sorbet/rbi/gems/rainbow.rbi +118 -0
  38. data/sorbet/rbi/gems/rake.rbi +644 -0
  39. data/sorbet/rbi/gems/regexp_parser.rbi +926 -0
  40. data/sorbet/rbi/gems/rexml.rbi +628 -0
  41. data/sorbet/rbi/gems/rspec-core.rbi +1898 -0
  42. data/sorbet/rbi/gems/rspec-expectations.rbi +1127 -0
  43. data/sorbet/rbi/gems/rspec-mocks.rbi +1099 -0
  44. data/sorbet/rbi/gems/rspec-support.rbi +280 -0
  45. data/sorbet/rbi/gems/rspec.rbi +15 -0
  46. data/sorbet/rbi/gems/rubocop-ast.rbi +1355 -0
  47. data/sorbet/rbi/gems/rubocop.rbi +7253 -0
  48. data/sorbet/rbi/gems/ruby-progressbar.rbi +304 -0
  49. data/sorbet/rbi/gems/simplecov-html.rbi +35 -0
  50. data/sorbet/rbi/gems/simplecov.rbi +406 -0
  51. data/sorbet/rbi/gems/unicode-display_width.rbi +17 -0
  52. data/sorbet/rbi/gems/vcr.rbi +572 -0
  53. data/sorbet/rbi/gems/webmock.rbi +556 -0
  54. data/sorbet/rbi/gems/yard.rbi +1165 -0
  55. data/sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi +645 -0
  56. data/sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi +1891 -0
  57. data/sorbet/rbi/sorbet-typed/lib/rubocop/~>0.85/rubocop.rbi +2072 -0
  58. data/sorbet/rbi/sorbet-typed/lib/yard/all/yard.rbi +1214 -0
  59. data/sorbet/rbi/todo.rbi +1 -3
  60. data/spec/lib/workos/audit_trail_spec.rb +0 -8
  61. data/spec/lib/workos/directory_sync_spec.rb +347 -40
  62. data/spec/lib/workos/organizations_spec.rb +164 -0
  63. data/spec/lib/workos/passwordless_spec.rb +0 -8
  64. data/spec/lib/workos/portal_spec.rb +17 -123
  65. data/spec/lib/workos/sso_spec.rb +144 -176
  66. data/spec/spec_helper.rb +2 -1
  67. data/spec/support/fixtures/vcr_cassettes/directory_sync/delete_directory.yml +72 -0
  68. data/spec/support/fixtures/vcr_cassettes/{sso/list_connections.yml → directory_sync/list_directories/with_after.yml} +7 -7
  69. data/spec/support/fixtures/vcr_cassettes/{sso/list_connections_with_limit_param.yml → directory_sync/list_directories/with_before.yml} +8 -8
  70. data/spec/support/fixtures/vcr_cassettes/{sso/list_connections_with_connection_type_param.yml → directory_sync/list_directories/with_domain.yml} +11 -10
  71. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_limit.yml +74 -0
  72. data/spec/support/fixtures/vcr_cassettes/directory_sync/{list_directories.yml → list_directories/with_no_options.yml} +1 -1
  73. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_search.yml +73 -0
  74. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_after.yml +76 -0
  75. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_before.yml +74 -0
  76. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_directory.yml +78 -0
  77. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_limit.yml +74 -0
  78. data/spec/support/fixtures/vcr_cassettes/directory_sync/{list_groups.yml → list_groups/with_no_options.yml} +16 -6
  79. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_user.yml +72 -0
  80. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_after.yml +86 -0
  81. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_before.yml +75 -0
  82. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_directory.yml +93 -0
  83. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_group.yml +76 -0
  84. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_limit.yml +75 -0
  85. data/spec/support/fixtures/vcr_cassettes/directory_sync/{list_users.yml → list_users/with_no_options.yml} +16 -6
  86. data/spec/support/fixtures/vcr_cassettes/organization/get.yml +73 -0
  87. data/spec/support/fixtures/vcr_cassettes/organization/get_invalid.yml +72 -0
  88. data/spec/support/fixtures/vcr_cassettes/organization/update.yml +73 -0
  89. data/spec/support/fixtures/vcr_cassettes/organization/update_invalid.yml +73 -0
  90. data/spec/support/fixtures/vcr_cassettes/portal/generate_link_dsync.yml +72 -0
  91. data/spec/support/fixtures/vcr_cassettes/portal/{generate_link.yml → generate_link_sso.yml} +1 -1
  92. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_after.yml +73 -0
  93. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_before.yml +73 -0
  94. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_connection_type.yml +73 -0
  95. data/spec/support/fixtures/vcr_cassettes/sso/{list_connections_with_domain_param.yml → list_connections/with_domain.yml} +6 -6
  96. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_limit.yml +74 -0
  97. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_no_options.yml +73 -0
  98. data/spec/support/fixtures/vcr_cassettes/sso/{list_connections_with_before_param.yml → list_connections/with_organization_id.yml} +7 -8
  99. data/workos.gemspec +2 -0
  100. metadata +113 -44
  101. data/sorbet/rbi/hidden-definitions/errors.txt +0 -24896
  102. data/sorbet/rbi/hidden-definitions/hidden.rbi +0 -38411
  103. data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8684
  104. data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +0 -4222
  105. data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
  106. data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
  107. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories_with_domain_param.yml +0 -63
  108. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups_with_directory_param.yml +0 -62
  109. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users_with_directory_param.yml +0 -62
  110. data/spec/support/fixtures/vcr_cassettes/sso/create_connection_with_invalid_source.yml +0 -58
  111. data/spec/support/fixtures/vcr_cassettes/sso/create_connection_with_valid_source.yml +0 -63
  112. data/spec/support/fixtures/vcr_cassettes/sso/list_connections_with_after_param.yml +0 -72
data/lib/workos/sso.rb CHANGED
@@ -26,10 +26,10 @@ 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
- # @param [String] project_id The WorkOS project ID for the project.
32
- # The project_id is deprecated in Dashboard2.
33
33
  # @param [String] redirect_uri The URI where users are directed
34
34
  # after completing the authentication step. Must match a
35
35
  # configured redirect URI on your WorkOS dashboard.
@@ -54,28 +54,26 @@ module WorkOS
54
54
  sig do
55
55
  params(
56
56
  redirect_uri: String,
57
- project_id: T.nilable(String),
58
57
  client_id: T.nilable(String),
59
58
  domain: T.nilable(String),
60
59
  provider: T.nilable(String),
60
+ connection: T.nilable(String),
61
61
  state: T.nilable(String),
62
62
  ).returns(String)
63
63
  end
64
64
  def authorization_url(
65
65
  redirect_uri:,
66
- project_id: nil,
67
66
  client_id: nil,
68
67
  domain: nil,
69
68
  provider: nil,
69
+ connection: nil,
70
70
  state: ''
71
71
  )
72
- if project_id
73
- warn '[DEPRECATION] `project_id` is deprecated.
74
- Please use `client_id` instead.'
75
- client_id = project_id
76
- end
77
-
78
- validate_domain_and_provider(provider: provider, domain: domain)
72
+ validate_authorization_url_arguments(
73
+ provider: provider,
74
+ domain: domain,
75
+ connection: connection,
76
+ )
79
77
 
80
78
  query = URI.encode_www_form({
81
79
  client_id: client_id,
@@ -84,6 +82,7 @@ module WorkOS
84
82
  state: state,
85
83
  domain: domain,
86
84
  provider: provider,
85
+ connection: connection,
87
86
  }.compact)
88
87
 
89
88
  "https://#{WorkOS::API_HOSTNAME}/sso/authorize?#{query}"
@@ -93,40 +92,16 @@ module WorkOS
93
92
  #
94
93
  # @param [String] code The authorization code provided in the callback URL
95
94
  # @param [String] client_id The WorkOS client ID for the environment
96
- # where you've configured your SSO connection
97
- # @param [String] project_id The WorkOS project ID for the project.
98
- # The project_id is deprecated in Dashboard2.
95
+ # where you've configured your SSO connection
99
96
  #
100
- # @example
101
- # WorkOS::SSO.profile(
102
- # code: 'acme.com',
103
- # client_id: 'project_01DG5TGK363GRVXP3ZS40WNGEZ'
104
- # )
105
- # => #<WorkOS::Profile:0x00007fb6e4193d20
106
- # @id="prof_01DRA1XNSJDZ19A31F183ECQW5",
107
- # @email="demo@workos-okta.com",
108
- # @first_name="WorkOS",
109
- # @connection_type="OktaSAML",
110
- # @last_name="Demo",
111
- # @idp_id="00u1klkowm8EGah2H357",
112
- # @access_token="01DVX6QBS3EG6FHY2ESAA5Q65X"
113
- # >
114
- #
115
- # @return [WorkOS::Profile]
97
+ # @return [WorkOS::ProfileAndToken]
116
98
  sig do
117
99
  params(
118
100
  code: String,
119
- project_id: T.nilable(String),
120
101
  client_id: T.nilable(String),
121
- ).returns(WorkOS::Profile)
102
+ ).returns(WorkOS::ProfileAndToken)
122
103
  end
123
- def profile(code:, project_id: nil, client_id: nil)
124
- if project_id
125
- warn '[DEPRECATION] `project_id` is deprecated.
126
- Please use `client_id` instead.'
127
- client_id = project_id
128
- end
129
-
104
+ def profile_and_token(code:, client_id: nil)
130
105
  body = {
131
106
  client_id: client_id,
132
107
  client_secret: WorkOS.key!,
@@ -135,65 +110,9 @@ module WorkOS
135
110
  }
136
111
 
137
112
  response = client.request(post_request(path: '/sso/token', body: body))
138
- check_and_raise_profile_error(response: response)
113
+ check_and_raise_profile_and_token_error(response: response)
139
114
 
140
- WorkOS::Profile.new(response.body)
141
- end
142
-
143
- # Promote a DraftConnection created via the WorkOS.js embed such that the
144
- # Enterprise users can begin signing into your application.
145
- #
146
- # @param [String] token The Draft Connection token that's been provided to
147
- # you by the WorkOS.js
148
- #
149
- # @example
150
- # WorkOS::SSO.promote_draft_connection(
151
- # token: 'draft_conn_429u59js',
152
- # )
153
- # => true
154
- #
155
- # @return [Bool] - returns `true` if successful, `false` otherwise.
156
- # @see https://github.com/workos-inc/ruby-idp-link-example
157
- sig { params(token: String).returns(T::Boolean) }
158
- def promote_draft_connection(token:)
159
- request = post_request(
160
- auth: true,
161
- path: "/draft_connections/#{token}/activate",
162
- )
163
-
164
- response = client.request(request)
165
-
166
- response.is_a? Net::HTTPSuccess
167
- end
168
-
169
- # Create a Connection
170
- #
171
- # @param [String] source The Draft Connection token that's been provided
172
- # to you by WorkOS.js
173
- #
174
- # @example
175
- # WorkOS::SSO.create_connection(source: 'draft_conn_429u59js')
176
- # => #<WorkOS::Connection:0x00007fb6e4193d20
177
- # @id="conn_02DRA1XNSJDZ19A31F183ECQW9",
178
- # @name="Foo Corp",
179
- # @connection_type="OktaSAML",
180
- # @domains=
181
- # [{:object=>"connection_domain",
182
- # :id=>"domain_01E6PK9N3XMD8RHWF7S66380AR",
183
- # :domain=>"example.com"}]>
184
- #
185
- # @return [WorkOS::Connection]
186
- sig { params(source: String).returns(WorkOS::Connection) }
187
- def create_connection(source:)
188
- request = post_request(
189
- auth: true,
190
- path: '/connections',
191
- body: { source: source },
192
- )
193
-
194
- response = execute_request(request: request)
195
-
196
- WorkOS::Connection.new(response.body)
115
+ WorkOS::ProfileAndToken.new(response.body)
197
116
  end
198
117
 
199
118
  # Retrieve connections.
@@ -203,6 +122,8 @@ module WorkOS
203
122
  # provider descriptor.
204
123
  # @option options [String] domain The domain of the connection to be
205
124
  # retrieved.
125
+ # @option options [String] organization_id The id of the organization
126
+ # of the connections to be retrieved.
206
127
  # @option options [String] limit Maximum number of records to return.
207
128
  # @option options [String] before Pagination cursor to receive records
208
129
  # before a provided Connection ID.
@@ -213,7 +134,7 @@ module WorkOS
213
134
  sig do
214
135
  params(
215
136
  options: T::Hash[Symbol, String],
216
- ).returns(T::Array[T::Hash[String, T.nilable(String)]])
137
+ ).returns(WorkOS::Types::ListStruct)
217
138
  end
218
139
  def list_connections(options = {})
219
140
  response = execute_request(
@@ -224,7 +145,15 @@ module WorkOS
224
145
  ),
225
146
  )
226
147
 
227
- JSON.parse(response.body)['data']
148
+ parsed_response = JSON.parse(response.body)
149
+ connections = parsed_response['data'].map do |connection|
150
+ ::WorkOS::Connection.new(connection.to_json)
151
+ end
152
+
153
+ WorkOS::Types::ListStruct.new(
154
+ data: connections,
155
+ list_metadata: parsed_response['listMetadata'],
156
+ )
228
157
  end
229
158
 
230
159
  # Get a Connection
@@ -282,11 +211,17 @@ module WorkOS
282
211
  params(
283
212
  domain: T.nilable(String),
284
213
  provider: T.nilable(String),
214
+ connection: T.nilable(String),
285
215
  ).void
286
216
  end
287
- def validate_domain_and_provider(domain:, provider:)
288
- if [domain, provider].all?(&:nil?)
289
- raise ArgumentError, 'Either domain or provider is required.'
217
+ def validate_authorization_url_arguments(
218
+ domain:,
219
+ provider:,
220
+ connection:
221
+ )
222
+ if [domain, provider, connection].all?(&:nil?)
223
+ raise ArgumentError, 'Either connection, domain, or ' \
224
+ 'provider is required.'
290
225
  end
291
226
 
292
227
  return unless provider && !PROVIDERS.include?(provider)
@@ -296,10 +231,10 @@ module WorkOS
296
231
  end
297
232
 
298
233
  sig { params(response: Net::HTTPResponse).void }
299
- def check_and_raise_profile_error(response:)
234
+ def check_and_raise_profile_and_token_error(response:)
300
235
  begin
301
236
  body = JSON.parse(response.body)
302
- return if body['profile']
237
+ return if body['access_token'] && body['profile']
303
238
 
304
239
  message = body['message']
305
240
  request_id = response['x-request-id']
@@ -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
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
@@ -2,5 +2,5 @@
2
2
  # typed: strong
3
3
 
4
4
  module WorkOS
5
- VERSION = '0.10.0'
5
+ VERSION = '1.0.0'
6
6
  end
data/lib/workos.rb CHANGED
@@ -32,11 +32,16 @@ module WorkOS
32
32
  autoload :AuditTrail, 'workos/audit_trail'
33
33
  autoload :Connection, 'workos/connection'
34
34
  autoload :DirectorySync, 'workos/directory_sync'
35
+ autoload :Directory, 'workos/directory'
36
+ autoload :DirectoryGroup, 'workos/directory_group'
35
37
  autoload :Organization, 'workos/organization'
38
+ autoload :Organizations, 'workos/organizations'
36
39
  autoload :Passwordless, 'workos/passwordless'
37
40
  autoload :Portal, 'workos/portal'
38
41
  autoload :Profile, 'workos/profile'
42
+ autoload :ProfileAndToken, 'workos/profile_and_token'
39
43
  autoload :SSO, 'workos/sso'
44
+ autoload :DirectoryUser, 'workos/directory_user'
40
45
 
41
46
  # Errors
42
47
  autoload :APIError, 'workos/errors'
@@ -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
@@ -0,0 +1,37 @@
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/codecov/all/codecov.rbi
9
+ #
10
+ # codecov-0.2.15
11
+
12
+ module Codecov
13
+ end
14
+ class SimpleCov::Formatter::Codecov
15
+ def black(str); end
16
+ def build_params(ci); end
17
+ def create_report(report); end
18
+ def detect_ci; end
19
+ def display_header; end
20
+ def file_network; end
21
+ def file_to_codecov(file); end
22
+ def format(result, disable_net_blockers = nil); end
23
+ def green(str); end
24
+ def gzip_report(report); end
25
+ def handle_report_response(report); end
26
+ def net_blockers(switch); end
27
+ def red(str); end
28
+ def result_to_codecov(result); end
29
+ def result_to_codecov_coverage(result); end
30
+ def result_to_codecov_messages(result); end
31
+ def result_to_codecov_report(result); end
32
+ def retry_request(req, https); end
33
+ def shortened_filename(file); end
34
+ def upload_to_codecov(ci, report); end
35
+ def upload_to_v2(url, report, query, query_without_token); end
36
+ def upload_to_v4(url, report, query, query_without_token); end
37
+ end
@@ -0,0 +1,62 @@
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/crack/all/crack.rbi
9
+ #
10
+ # crack-0.4.5
11
+
12
+ module Crack
13
+ end
14
+ module Crack::Util
15
+ def snake_case(str); end
16
+ def to_xml_attributes(hash); end
17
+ extend Crack::Util
18
+ end
19
+ class Crack::JSON
20
+ def self.convert_json_to_yaml(json); end
21
+ def self.format_dates(output, date_starts, date_ends); end
22
+ def self.parse(json); end
23
+ def self.parser_exceptions; end
24
+ def self.unescape(str); end
25
+ end
26
+ class REXMLUtiliyNodeString < String
27
+ def attributes; end
28
+ def attributes=(arg0); end
29
+ end
30
+ class REXMLUtilityNode
31
+ def add_node(node); end
32
+ def attributes; end
33
+ def attributes=(arg0); end
34
+ def children; end
35
+ def children=(arg0); end
36
+ def initialize(name, normalized_attributes = nil); end
37
+ def inner_html; end
38
+ def name; end
39
+ def name=(arg0); end
40
+ def self.available_typecasts; end
41
+ def self.available_typecasts=(obj); end
42
+ def self.typecasts; end
43
+ def self.typecasts=(obj); end
44
+ def to_hash; end
45
+ def to_html; end
46
+ def to_s; end
47
+ def type; end
48
+ def type=(arg0); end
49
+ def typecast_value(value); end
50
+ def undasherize_keys(params); end
51
+ def unnormalize_xml_entities(value); end
52
+ end
53
+ class Crack::REXMLParser
54
+ def self.parse(xml); end
55
+ end
56
+ class Crack::XML
57
+ def self.parse(xml); end
58
+ def self.parser; end
59
+ def self.parser=(parser); end
60
+ end
61
+ class Crack::ParseError < StandardError
62
+ end