workos 4.1.0 → 4.2.1

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 (132) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +37 -0
  3. data/.github/workflows/release.yml +43 -0
  4. data/.rubocop.yml +8 -1
  5. data/Gemfile.lock +22 -69
  6. data/lib/workos/audit_log_export.rb +8 -31
  7. data/lib/workos/audit_logs.rb +0 -26
  8. data/lib/workos/authentication_factor_and_challenge.rb +0 -3
  9. data/lib/workos/authentication_response.rb +3 -6
  10. data/lib/workos/challenge.rb +9 -28
  11. data/lib/workos/client.rb +0 -41
  12. data/lib/workos/configuration.rb +0 -1
  13. data/lib/workos/connection.rb +11 -35
  14. data/lib/workos/directory.rb +10 -37
  15. data/lib/workos/directory_group.rb +9 -36
  16. data/lib/workos/directory_sync.rb +0 -21
  17. data/lib/workos/directory_user.rb +17 -51
  18. data/lib/workos/errors.rb +0 -16
  19. data/lib/workos/event.rb +5 -26
  20. data/lib/workos/events.rb +0 -7
  21. data/lib/workos/factor.rb +9 -28
  22. data/lib/workos/hash_provider.rb +0 -1
  23. data/lib/workos/impersonator.rb +0 -3
  24. data/lib/workos/invitation.rb +12 -37
  25. data/lib/workos/mfa.rb +0 -42
  26. data/lib/workos/organization.rb +8 -31
  27. data/lib/workos/organization_membership.rb +8 -27
  28. data/lib/workos/organizations.rb +0 -26
  29. data/lib/workos/passwordless.rb +0 -14
  30. data/lib/workos/portal.rb +1 -13
  31. data/lib/workos/profile.rb +12 -39
  32. data/lib/workos/profile_and_token.rb +1 -4
  33. data/lib/workos/refresh_authentication_response.rb +2 -5
  34. data/lib/workos/sso.rb +1 -43
  35. data/lib/workos/types/intent.rb +16 -0
  36. data/lib/workos/types/list_struct.rb +8 -5
  37. data/lib/workos/types/passwordless_session_struct.rb +10 -9
  38. data/lib/workos/types/provider.rb +15 -0
  39. data/lib/workos/types.rb +5 -23
  40. data/lib/workos/user.rb +10 -31
  41. data/lib/workos/user_and_token.rb +1 -4
  42. data/lib/workos/user_management.rb +36 -244
  43. data/lib/workos/user_response.rb +0 -3
  44. data/lib/workos/verify_challenge.rb +4 -18
  45. data/lib/workos/version.rb +1 -2
  46. data/lib/workos/webhook.rb +5 -26
  47. data/lib/workos/webhooks.rb +1 -38
  48. data/lib/workos.rb +0 -2
  49. data/spec/lib/workos/audit_logs_spec.rb +2 -3
  50. data/spec/lib/workos/configuration_spec.rb +0 -1
  51. data/spec/lib/workos/directory_sync_spec.rb +0 -1
  52. data/spec/lib/workos/directory_user_spec.rb +0 -1
  53. data/spec/lib/workos/event_spec.rb +0 -1
  54. data/spec/lib/workos/mfa_spec.rb +0 -1
  55. data/spec/lib/workos/organizations_spec.rb +0 -1
  56. data/spec/lib/workos/passwordless_spec.rb +0 -1
  57. data/spec/lib/workos/portal_spec.rb +0 -1
  58. data/spec/lib/workos/sso_spec.rb +0 -1
  59. data/spec/lib/workos/user_management_spec.rb +29 -1
  60. data/spec/lib/workos/webhooks_spec.rb +0 -1
  61. data/spec/spec_helper.rb +0 -9
  62. data/spec/support/fixtures/vcr_cassettes/user_management/revoke_session/not_found.yml +80 -0
  63. data/spec/support/fixtures/vcr_cassettes/user_management/revoke_session/valid.yml +76 -0
  64. data/spec/support/shared_examples/client_spec.rb +0 -1
  65. data/workos.gemspec +1 -6
  66. metadata +15 -129
  67. data/.semaphore/rubygems.yml +0 -24
  68. data/.semaphore/semaphore.yml +0 -51
  69. data/bin/tapioca +0 -29
  70. data/codecov.yml +0 -12
  71. data/devbox.json +0 -18
  72. data/devbox.lock +0 -11
  73. data/lib/workos/types/audit_log_export_struct.rb +0 -17
  74. data/lib/workos/types/challenge_struct.rb +0 -18
  75. data/lib/workos/types/connection_struct.rb +0 -20
  76. data/lib/workos/types/directory_group_struct.rb +0 -19
  77. data/lib/workos/types/directory_struct.rb +0 -19
  78. data/lib/workos/types/directory_user_struct.rb +0 -26
  79. data/lib/workos/types/event_struct.rb +0 -15
  80. data/lib/workos/types/factor_struct.rb +0 -18
  81. data/lib/workos/types/intent_enum.rb +0 -17
  82. data/lib/workos/types/invitation_struct.rb +0 -20
  83. data/lib/workos/types/magic_auth_challenge_struct.rb +0 -12
  84. data/lib/workos/types/organization_membership_struct.rb +0 -16
  85. data/lib/workos/types/organization_struct.rb +0 -17
  86. data/lib/workos/types/profile_struct.rb +0 -21
  87. data/lib/workos/types/provider_enum.rb +0 -16
  88. data/lib/workos/types/user_struct.rb +0 -18
  89. data/lib/workos/types/verify_challenge_struct.rb +0 -13
  90. data/lib/workos/types/webhook_struct.rb +0 -15
  91. data/sorbet/config +0 -2
  92. data/sorbet/rbi/gems/addressable@2.8.0.rbi +0 -290
  93. data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -54
  94. data/sorbet/rbi/gems/codecov@0.2.12.rbi +0 -55
  95. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -8
  96. data/sorbet/rbi/gems/crack@0.4.5.rbi +0 -57
  97. data/sorbet/rbi/gems/diff-lcs@1.4.4.rbi +0 -185
  98. data/sorbet/rbi/gems/docile@1.3.5.rbi +0 -54
  99. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +0 -82
  100. data/sorbet/rbi/gems/json@2.5.1.rbi +0 -109
  101. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -8
  102. data/sorbet/rbi/gems/parallel@1.20.1.rbi +0 -113
  103. data/sorbet/rbi/gems/parser@3.0.1.0.rbi +0 -1187
  104. data/sorbet/rbi/gems/pry@0.14.2.rbi +0 -8
  105. data/sorbet/rbi/gems/public_suffix@4.0.6.rbi +0 -146
  106. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +0 -153
  107. data/sorbet/rbi/gems/rake@13.0.3.rbi +0 -807
  108. data/sorbet/rbi/gems/rbi@0.0.16.rbi +0 -2118
  109. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +0 -1117
  110. data/sorbet/rbi/gems/rexml@3.2.5.rbi +0 -709
  111. data/sorbet/rbi/gems/rspec-core@3.9.3.rbi +0 -2467
  112. data/sorbet/rbi/gems/rspec-expectations@3.9.4.rbi +0 -1569
  113. data/sorbet/rbi/gems/rspec-mocks@3.9.1.rbi +0 -1493
  114. data/sorbet/rbi/gems/rspec-support@3.9.4.rbi +0 -511
  115. data/sorbet/rbi/gems/rspec@3.9.0.rbi +0 -38
  116. data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +0 -1881
  117. data/sorbet/rbi/gems/rubocop@0.93.1.rbi +0 -11497
  118. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +0 -405
  119. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +0 -89
  120. data/sorbet/rbi/gems/simplecov@0.21.2.rbi +0 -577
  121. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.2.rbi +0 -8
  122. data/sorbet/rbi/gems/spoom@1.1.15.rbi +0 -1549
  123. data/sorbet/rbi/gems/tapioca@0.7.3.rbi +0 -1718
  124. data/sorbet/rbi/gems/thor@1.2.1.rbi +0 -844
  125. data/sorbet/rbi/gems/unicode-display_width@1.7.0.rbi +0 -22
  126. data/sorbet/rbi/gems/unparser@0.6.2.rbi +0 -8
  127. data/sorbet/rbi/gems/vcr@5.0.0.rbi +0 -699
  128. data/sorbet/rbi/gems/webmock@3.12.2.rbi +0 -662
  129. data/sorbet/rbi/gems/yard-sorbet@0.8.0.rbi +0 -268
  130. data/sorbet/rbi/gems/yard@0.9.26.rbi +0 -4048
  131. data/sorbet/tapioca/config.yml +0 -13
  132. data/sorbet/tapioca/require.rb +0 -4
data/lib/workos/user.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # typed: true
3
2
 
4
3
  module WorkOS
5
4
  # The User class provides a lightweight wrapper around a WorkOS User
@@ -7,23 +6,21 @@ module WorkOS
7
6
  # and is instantiated internally but exposed.
8
7
  class User
9
8
  include HashProvider
10
- extend T::Sig
11
9
 
12
10
  attr_accessor :id, :email, :first_name, :last_name, :email_verified,
13
11
  :profile_picture_url, :created_at, :updated_at
14
12
 
15
- sig { params(json: String).void }
16
13
  def initialize(json)
17
- raw = parse_json(json)
18
-
19
- @id = T.let(raw.id, String)
20
- @email = T.let(raw.email, String)
21
- @first_name = raw.first_name
22
- @last_name = raw.last_name
23
- @email_verified = raw.email_verified
24
- @profile_picture_url = raw.profile_picture_url
25
- @created_at = T.let(raw.created_at, String)
26
- @updated_at = T.let(raw.updated_at, String)
14
+ hash = JSON.parse(json, symbolize_names: true)
15
+
16
+ @id = hash[:id]
17
+ @email = hash[:email]
18
+ @first_name = hash[:first_name]
19
+ @last_name = hash[:last_name]
20
+ @email_verified = hash[:email_verified]
21
+ @profile_picture_url = hash[:profile_picture_url]
22
+ @created_at = hash[:created_at]
23
+ @updated_at = hash[:updated_at]
27
24
  end
28
25
 
29
26
  def to_json(*)
@@ -38,23 +35,5 @@ module WorkOS
38
35
  updated_at: updated_at,
39
36
  }
40
37
  end
41
-
42
- private
43
-
44
- sig { params(json_string: String).returns(WorkOS::Types::UserStruct) }
45
- def parse_json(json_string)
46
- hash = JSON.parse(json_string, symbolize_names: true)
47
-
48
- WorkOS::Types::UserStruct.new(
49
- id: hash[:id],
50
- email: hash[:email],
51
- first_name: hash[:first_name],
52
- last_name: hash[:last_name],
53
- email_verified: hash[:email_verified],
54
- profile_picture_url: hash[:profile_picture_url],
55
- created_at: hash[:created_at],
56
- updated_at: hash[:updated_at],
57
- )
58
- end
59
38
  end
60
39
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # typed: true
3
2
 
4
3
  module WorkOS
5
4
  # The UserAndToken class represents a User and a corresponding Token. This
@@ -7,15 +6,13 @@ module WorkOS
7
6
  # internally but exposed.
8
7
  class UserAndToken
9
8
  include HashProvider
10
- extend T::Sig
11
9
 
12
10
  attr_accessor :token, :user
13
11
 
14
- sig { params(user_and_token_json: String).void }
15
12
  def initialize(user_and_token_json)
16
13
  json = JSON.parse(user_and_token_json, symbolize_names: true)
17
14
 
18
- @token = T.let(json[:token], String)
15
+ @token = json[:token]
19
16
  @user = WorkOS::User.new(json[:user].to_json)
20
17
  end
21
18
 
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # typed: true
3
2
 
4
3
  require 'net/http'
5
4
  require 'uri'
@@ -11,32 +10,31 @@ module WorkOS
11
10
  # rubocop:disable Metrics/ModuleLength
12
11
  module UserManagement
13
12
  module Types
14
- # The ProviderEnum is type-safe declaration of a
13
+ # The ProviderEnum is a declaration of a
15
14
  # fixed set of values for User Management Providers.
16
- class Provider < T::Enum
17
- enums do
18
- GitHub = new('GitHubOAuth')
19
- Google = new('GoogleOAuth')
20
- Microsoft = new('MicrosoftOAuth')
21
- AuthKit = new('authkit')
22
- end
15
+ class Provider
16
+ GitHub = 'GitHubOAuth'
17
+ Google = 'GoogleOAuth'
18
+ Microsoft = 'MicrosoftOAuth'
19
+ AuthKit = 'authkit'
20
+
21
+ ALL = [GitHub, Google, Microsoft, AuthKit].freeze
23
22
  end
24
23
 
25
- # The AuthFactorType is type-safe declaration of a
24
+ # The AuthFactorType is a declaration of a
26
25
  # fixed set of factor values to enroll
27
- class AuthFactorType < T::Enum
28
- enums do
29
- Totp = new('totp')
30
- end
26
+ class AuthFactorType
27
+ Totp = 'totp'
28
+
29
+ ALL = [Totp].freeze
31
30
  end
32
31
  end
33
32
 
34
33
  class << self
35
- extend T::Sig
36
34
  include Client
37
35
 
38
- PROVIDERS = WorkOS::UserManagement::Types::Provider.values.map(&:serialize).freeze
39
- AUTH_FACTOR_TYPES = WorkOS::UserManagement::Types::AuthFactorType.values.map(&:serialize).freeze
36
+ PROVIDERS = WorkOS::UserManagement::Types::Provider::ALL
37
+ AUTH_FACTOR_TYPES = WorkOS::UserManagement::Types::AuthFactorType::ALL
40
38
 
41
39
  # Generate an OAuth 2.0 authorization URL that automatically directs a user
42
40
  # to their Identity Provider.
@@ -74,18 +72,6 @@ module WorkOS
74
72
  #
75
73
  # @return [String]
76
74
  # rubocop:disable Metrics/ParameterLists
77
- sig do
78
- params(
79
- redirect_uri: String,
80
- client_id: T.nilable(String),
81
- domain_hint: T.nilable(String),
82
- login_hint: T.nilable(String),
83
- provider: T.nilable(String),
84
- connection_id: T.nilable(String),
85
- organization_id: T.nilable(String),
86
- state: T.nilable(String),
87
- ).returns(String)
88
- end
89
75
  def authorization_url(
90
76
  redirect_uri:,
91
77
  client_id: nil,
@@ -124,9 +110,6 @@ module WorkOS
124
110
  # @param [String] id The unique ID of the User.
125
111
  #
126
112
  # @return WorkOS::User
127
- sig do
128
- params(id: String).returns(WorkOS::User)
129
- end
130
113
  def get_user(id:)
131
114
  response = execute_request(
132
115
  request: get_request(
@@ -151,11 +134,6 @@ module WorkOS
151
134
  # before a provided User ID.
152
135
  #
153
136
  # @return [WorkOS::User]
154
- sig do
155
- params(
156
- options: T::Hash[Symbol, String],
157
- ).returns(WorkOS::Types::ListStruct)
158
- end
159
137
  def list_users(options = {})
160
138
  options[:order] ||= 'desc'
161
139
  response = execute_request(
@@ -185,18 +163,20 @@ module WorkOS
185
163
  # @param [String] first_name The user's first name.
186
164
  # @param [String] last_name The user's last name.
187
165
  # @param [Boolean] email_verified Whether the user's email address was previously verified.
166
+ # @param [String] password_hash The user's hashed password.
167
+ # @option [String] password_hash_type The algorithm originally used to hash the password.
188
168
  #
189
169
  # @return [WorkOS::User]
190
- sig do
191
- params(
192
- email: String,
193
- password: T.nilable(String),
194
- first_name: T.nilable(String),
195
- last_name: T.nilable(String),
196
- email_verified: T.nilable(T::Boolean),
197
- ).returns(WorkOS::User)
198
- end
199
- def create_user(email:, password: nil, first_name: nil, last_name: nil, email_verified: nil)
170
+ # rubocop:disable Metrics/ParameterLists
171
+ def create_user(
172
+ email:,
173
+ password: nil,
174
+ first_name: nil,
175
+ last_name: nil,
176
+ email_verified: nil,
177
+ password_hash: nil,
178
+ password_hash_type: nil
179
+ )
200
180
  request = post_request(
201
181
  path: '/user_management/users',
202
182
  body: {
@@ -205,6 +185,8 @@ module WorkOS
205
185
  first_name: first_name,
206
186
  last_name: last_name,
207
187
  email_verified: email_verified,
188
+ password_hash: password_hash,
189
+ password_hash_type: password_hash_type,
208
190
  },
209
191
  auth: true,
210
192
  )
@@ -226,18 +208,6 @@ module WorkOS
226
208
  # Valid values are bcrypt.
227
209
  #
228
210
  # @return [WorkOS::User]
229
- # rubocop:disable Metrics/ParameterLists
230
- sig do
231
- params(
232
- id: String,
233
- first_name: T.nilable(String),
234
- last_name: T.nilable(String),
235
- email_verified: T.nilable(T::Boolean),
236
- password: T.nilable(String),
237
- password_hash: T.nilable(String),
238
- password_hash_type: T.nilable(String),
239
- ).returns(WorkOS::User)
240
- end
241
211
  def update_user(
242
212
  id:,
243
213
  first_name: nil,
@@ -271,11 +241,6 @@ module WorkOS
271
241
  # @param [String] id The unique ID of the User.
272
242
  #
273
243
  # @return [Bool] - returns `true` if successful
274
- sig do
275
- params(
276
- id: String,
277
- ).returns(T::Boolean)
278
- end
279
244
  def delete_user(id:)
280
245
  response = execute_request(
281
246
  request: delete_request(
@@ -296,16 +261,6 @@ module WorkOS
296
261
  # @param [String] user_agent The user agent of the request from the user who is attempting to authenticate.
297
262
  #
298
263
  # @return WorkOS::AuthenticationResponse
299
-
300
- sig do
301
- params(
302
- email: String,
303
- password: String,
304
- client_id: String,
305
- ip_address: T.nilable(String),
306
- user_agent: T.nilable(String),
307
- ).returns(WorkOS::AuthenticationResponse)
308
- end
309
264
  def authenticate_with_password(email:, password:, client_id:, ip_address: nil, user_agent: nil)
310
265
  response = execute_request(
311
266
  request: post_request(
@@ -334,15 +289,6 @@ module WorkOS
334
289
  # @param [String] user_agent The user agent of the request from the user who is attempting to authenticate.
335
290
  #
336
291
  # @return WorkOS::AuthenticationResponse
337
-
338
- sig do
339
- params(
340
- code: String,
341
- client_id: String,
342
- ip_address: T.nilable(String),
343
- user_agent: T.nilable(String),
344
- ).returns(WorkOS::AuthenticationResponse)
345
- end
346
292
  def authenticate_with_code(
347
293
  code:,
348
294
  client_id:,
@@ -374,15 +320,6 @@ module WorkOS
374
320
  # @param [String] user_agent The user agent of the request from the user who is attempting to authenticate.
375
321
  #
376
322
  # @return WorkOS::RefreshAuthenticationResponse
377
-
378
- sig do
379
- params(
380
- refresh_token: String,
381
- client_id: String,
382
- ip_address: T.nilable(String),
383
- user_agent: T.nilable(String),
384
- ).returns(WorkOS::RefreshAuthenticationResponse)
385
- end
386
323
  def authenticate_with_refresh_token(
387
324
  refresh_token:,
388
325
  client_id:,
@@ -417,17 +354,6 @@ module WorkOS
417
354
  # @param [String] user_agent The user agent of the request from the user who is attempting to authenticate.
418
355
  #
419
356
  # @return WorkOS::AuthenticationResponse
420
-
421
- sig do
422
- params(
423
- code: String,
424
- email: String,
425
- client_id: String,
426
- ip_address: T.nilable(String),
427
- user_agent: T.nilable(String),
428
- link_authorization_code: T.nilable(String),
429
- ).returns(WorkOS::AuthenticationResponse)
430
- end
431
357
  def authenticate_with_magic_auth(
432
358
  code:,
433
359
  email:,
@@ -455,7 +381,6 @@ module WorkOS
455
381
  WorkOS::AuthenticationResponse.new(response.body)
456
382
  end
457
383
 
458
-
459
384
  # Authenticate a user into an organization they are a member of.
460
385
  #
461
386
  # @param [String] client_id The WorkOS client ID for the environment.
@@ -465,15 +390,6 @@ module WorkOS
465
390
  # @param [String] user_agent The user agent of the request from the user who is attempting to authenticate.
466
391
  #
467
392
  # @return WorkOS::AuthenticationResponse
468
- sig do
469
- params(
470
- client_id: String,
471
- organization_id: String,
472
- pending_authentication_token: String,
473
- ip_address: T.nilable(String),
474
- user_agent: T.nilable(String),
475
- ).returns(WorkOS::AuthenticationResponse)
476
- end
477
393
  def authenticate_with_organization_selection(
478
394
  client_id:,
479
395
  organization_id:,
@@ -511,17 +427,6 @@ module WorkOS
511
427
  # @param [String] user_agent The user agent of the request from the user who is attempting to authenticate.
512
428
  #
513
429
  # @return WorkOS::AuthenticationResponse
514
-
515
- sig do
516
- params(
517
- code: String,
518
- client_id: String,
519
- pending_authentication_token: String,
520
- authentication_challenge_id: String,
521
- ip_address: T.nilable(String),
522
- user_agent: T.nilable(String),
523
- ).returns(WorkOS::AuthenticationResponse)
524
- end
525
430
  def authenticate_with_totp(
526
431
  code:,
527
432
  client_id:,
@@ -559,16 +464,6 @@ module WorkOS
559
464
  # @param [String] user_agent The user agent of the request from the user who is attempting to authenticate.
560
465
  #
561
466
  # @return WorkOS::AuthenticationResponse
562
-
563
- sig do
564
- params(
565
- code: String,
566
- client_id: String,
567
- pending_authentication_token: String,
568
- ip_address: T.nilable(String),
569
- user_agent: T.nilable(String),
570
- ).returns(WorkOS::AuthenticationResponse)
571
- end
572
467
  def authenticate_with_email_verification(
573
468
  code:,
574
469
  client_id:,
@@ -602,11 +497,6 @@ module WorkOS
602
497
  # claim of the access token
603
498
  #
604
499
  # @return String
605
- sig do
606
- params(
607
- session_id: String,
608
- ).returns(String)
609
- end
610
500
  def get_logout_url(session_id:)
611
501
  URI::HTTPS.build(
612
502
  host: WorkOS.config.api_hostname,
@@ -619,20 +509,18 @@ module WorkOS
619
509
  #
620
510
  # @param [String] session_id The session ID can be found in the `sid`
621
511
  # claim of the access token
622
- sig do
623
- params(
624
- session_id: String,
625
- ).void
626
- end
627
512
  def revoke_session(session_id:)
628
- execute_request(
513
+ response = execute_request(
629
514
  request: post_request(
630
515
  path: '/user_management/sessions/revoke',
631
516
  body: {
632
517
  session_id: session_id,
633
518
  },
519
+ auth: true,
634
520
  ),
635
521
  )
522
+
523
+ response.is_a? Net::HTTPSuccess
636
524
  end
637
525
 
638
526
  # Get the JWKS URL
@@ -642,11 +530,6 @@ module WorkOS
642
530
  # @param [String] client_id The WorkOS client ID for the environment
643
531
  #
644
532
  # @return String
645
- sig do
646
- params(
647
- client_id: String,
648
- ).returns(String)
649
- end
650
533
  def get_jwks_url(client_id)
651
534
  URI::HTTPS.build(
652
535
  host: WorkOS.config.api_hostname,
@@ -659,11 +542,6 @@ module WorkOS
659
542
  # @param [String] email The email address the one-time code will be sent to.
660
543
  #
661
544
  # @return Boolean
662
- sig do
663
- params(
664
- email: String,
665
- ).returns(T::Boolean)
666
- end
667
545
  def send_magic_auth_code(email:)
668
546
  response = execute_request(
669
547
  request: post_request(
@@ -687,14 +565,6 @@ module WorkOS
687
565
  # @param [String] totp_user For totp factors. Used as the account name in authenticator apps.
688
566
  #
689
567
  # @return WorkOS::AuthenticationFactorAndChallenge
690
- sig do
691
- params(
692
- user_id: String,
693
- type: String,
694
- totp_issuer: T.nilable(String),
695
- totp_user: T.nilable(String),
696
- ).returns(WorkOS::AuthenticationFactorAndChallenge)
697
- end
698
568
  def enroll_auth_factor(user_id:, type:, totp_issuer: nil, totp_user: nil)
699
569
  validate_auth_factor_type(
700
570
  type: type,
@@ -720,11 +590,6 @@ module WorkOS
720
590
  # @param [String] user_id The id for the user.
721
591
  #
722
592
  # @return WorkOS::ListStruct
723
- sig do
724
- params(
725
- user_id: String,
726
- ).returns(WorkOS::Types::ListStruct)
727
- end
728
593
  def list_auth_factors(user_id:)
729
594
  response = execute_request(
730
595
  request: get_request(
@@ -750,11 +615,6 @@ module WorkOS
750
615
  # @param [String] user_id The unique ID of the User whose email address will be verified.
751
616
  #
752
617
  # @return WorkOS::UserResponse
753
- sig do
754
- params(
755
- user_id: String,
756
- ).returns(WorkOS::UserResponse)
757
- end
758
618
  def send_verification_email(user_id:)
759
619
  response = execute_request(
760
620
  request: post_request(
@@ -772,12 +632,6 @@ module WorkOS
772
632
  # @param [String] code The one-time code emailed to the user.
773
633
  #
774
634
  # @return WorkOS::UserResponse
775
- sig do
776
- params(
777
- user_id: String,
778
- code: String,
779
- ).returns(WorkOS::UserResponse)
780
- end
781
635
  def verify_email(user_id:, code:)
782
636
  response = execute_request(
783
637
  request: post_request(
@@ -798,12 +652,6 @@ module WorkOS
798
652
  # @param [String] password_reset_url The URL that will be linked to in the email.
799
653
  #
800
654
  # @return [Bool] - returns `true` if successful
801
- sig do
802
- params(
803
- email: String,
804
- password_reset_url: String,
805
- ).returns(T::Boolean)
806
- end
807
655
  def send_password_reset_email(email:, password_reset_url:)
808
656
  request = post_request(
809
657
  path: '/user_management/password_reset/send',
@@ -825,12 +673,6 @@ module WorkOS
825
673
  # @param [String] new_password The new password to set for the user.
826
674
  #
827
675
  # @return WorkOS::User
828
- sig do
829
- params(
830
- token: String,
831
- new_password: String,
832
- ).returns(WorkOS::User)
833
- end
834
676
  def reset_password(token:, new_password:)
835
677
  response = execute_request(
836
678
  request: post_request(
@@ -851,9 +693,6 @@ module WorkOS
851
693
  # @param [String] id The unique ID of the Organization Membership.
852
694
  #
853
695
  # @return WorkOS::OrganizationMembership
854
- sig do
855
- params(id: String).returns(WorkOS::OrganizationMembership)
856
- end
857
696
  def get_organization_membership(id:)
858
697
  response = execute_request(
859
698
  request: get_request(
@@ -878,11 +717,6 @@ module WorkOS
878
717
  # before a provided User ID.
879
718
  #
880
719
  # @return [WorkOS::OrganizationMembership]
881
- sig do
882
- params(
883
- options: T::Hash[Symbol, String],
884
- ).returns(WorkOS::Types::ListStruct)
885
- end
886
720
  def list_organization_memberships(options = {})
887
721
  options[:order] ||= 'desc'
888
722
  response = execute_request(
@@ -911,12 +745,6 @@ module WorkOS
911
745
  # @param [String] organization_id The ID of the Organization to which the user belongs to.
912
746
  #
913
747
  # @return [WorkOS::OrganizationMembership]
914
- sig do
915
- params(
916
- user_id: String,
917
- organization_id: String,
918
- ).returns(WorkOS::OrganizationMembership)
919
- end
920
748
  def create_organization_membership(user_id:, organization_id:)
921
749
  request = post_request(
922
750
  path: '/user_management/organization_memberships',
@@ -937,11 +765,6 @@ module WorkOS
937
765
  # @param [String] id The unique ID of the Organization Membership.
938
766
  #
939
767
  # @return [Bool] - returns `true` if successful
940
- sig do
941
- params(
942
- id: String,
943
- ).returns(T::Boolean)
944
- end
945
768
  def delete_organization_membership(id:)
946
769
  response = execute_request(
947
770
  request: delete_request(
@@ -958,9 +781,6 @@ module WorkOS
958
781
  # @param [String] id The unique ID of the Invitation.
959
782
  #
960
783
  # @return WorkOS::Invitation
961
- sig do
962
- params(id: String).returns(WorkOS::Invitation)
963
- end
964
784
  def get_invitation(id:)
965
785
  response = execute_request(
966
786
  request: get_request(
@@ -985,11 +805,6 @@ module WorkOS
985
805
  # before a provided User ID.
986
806
  #
987
807
  # @return [WorkOS::Invitation]
988
- sig do
989
- params(
990
- options: T::Hash[Symbol, String],
991
- ).returns(WorkOS::Types::ListStruct)
992
- end
993
808
  def list_invitations(options = {})
994
809
  options[:order] ||= 'desc'
995
810
  response = execute_request(
@@ -1019,17 +834,10 @@ module WorkOS
1019
834
  # @param [Integer] expires_in_days The number of days the invitations will be valid for.
1020
835
  # Must be between 1 and 30, defaults to 7 if not specified.
1021
836
  # @param [String] inviter_user_id The ID of the User sending the invitation.
837
+ # @param [String] role_slug The slug of the role to assign to the user upon invitation.
1022
838
  #
1023
839
  # @return WorkOS::Invitation
1024
- sig do
1025
- params(
1026
- email: String,
1027
- organization_id: T.nilable(String),
1028
- expires_in_days: T.nilable(Integer),
1029
- inviter_user_id: T.nilable(String),
1030
- ).returns(WorkOS::Invitation)
1031
- end
1032
- def send_invitation(email:, organization_id: nil, expires_in_days: nil, inviter_user_id: nil)
840
+ def send_invitation(email:, organization_id: nil, expires_in_days: nil, inviter_user_id: nil, role_slug: nil)
1033
841
  response = execute_request(
1034
842
  request: post_request(
1035
843
  path: '/user_management/invitations',
@@ -1038,6 +846,7 @@ module WorkOS
1038
846
  organization_id: organization_id,
1039
847
  expires_in_days: expires_in_days,
1040
848
  inviter_user_id: inviter_user_id,
849
+ role_slug: role_slug,
1041
850
  },
1042
851
  auth: true,
1043
852
  ),
@@ -1051,9 +860,6 @@ module WorkOS
1051
860
  # @param [String] id The unique ID of the Invitation.
1052
861
  #
1053
862
  # @return WorkOS::Invitation
1054
- sig do
1055
- params(id: String).returns(WorkOS::Invitation)
1056
- end
1057
863
  def revoke_invitation(id:)
1058
864
  request = post_request(
1059
865
  path: "/user_management/invitations/#{id}/revoke",
@@ -1067,14 +873,6 @@ module WorkOS
1067
873
 
1068
874
  private
1069
875
 
1070
- sig do
1071
- params(
1072
- provider: T.nilable(String),
1073
- connection_id: T.nilable(String),
1074
- organization_id: T.nilable(String),
1075
- ).void
1076
- end
1077
-
1078
876
  def validate_authorization_url_arguments(
1079
877
  provider:,
1080
878
  connection_id:,
@@ -1091,12 +889,6 @@ module WorkOS
1091
889
  " `provider` must be in #{PROVIDERS}"
1092
890
  end
1093
891
 
1094
- sig do
1095
- params(
1096
- type: String,
1097
- ).void
1098
- end
1099
-
1100
892
  def validate_auth_factor_type(
1101
893
  type:
1102
894
  )
@@ -1,16 +1,13 @@
1
1
  # frozen_string_literal: true
2
- # typed: true
3
2
 
4
3
  module WorkOS
5
4
  # The UserResponse class represents a User as well as an corresponding
6
5
  # response data that can later be appended on.
7
6
  class UserResponse
8
7
  include HashProvider
9
- extend T::Sig
10
8
 
11
9
  attr_accessor :user
12
10
 
13
- sig { params(user_response_json: String).void }
14
11
  def initialize(user_response_json)
15
12
  json = JSON.parse(user_response_json, symbolize_names: true)
16
13
  @user = WorkOS::User.new(json[:user].to_json)
@@ -1,20 +1,18 @@
1
1
  # frozen_string_literal: true
2
- # typed: false
3
2
 
4
3
  module WorkOS
5
4
  # The VerifyChallenge class provides a lightweight wrapper around
6
5
  # a WorkOS Authentication Challenge resource.
7
6
  class VerifyChallenge
8
7
  include HashProvider
9
- extend T::Sig
10
8
 
11
9
  attr_accessor :challenge, :valid
12
10
 
13
- sig { params(json: String).void }
14
11
  def initialize(json)
15
- raw = parse_json(json)
16
- @challenge = T.let(raw.challenge, Hash)
17
- @valid = raw.valid
12
+ hash = JSON.parse(json, symbolize_names: true)
13
+
14
+ @challenge = hash[:challenge]
15
+ @valid = hash[:valid]
18
16
  end
19
17
 
20
18
  def to_json(*)
@@ -23,17 +21,5 @@ module WorkOS
23
21
  valid: valid,
24
22
  }
25
23
  end
26
-
27
- private
28
-
29
- sig { params(json_string: String).returns(WorkOS::Types::VerifyChallengeStruct) }
30
- def parse_json(json_string)
31
- hash = JSON.parse(json_string, symbolize_names: true)
32
-
33
- WorkOS::Types::VerifyChallengeStruct.new(
34
- challenge: hash[:challenge],
35
- valid: hash[:valid],
36
- )
37
- end
38
24
  end
39
25
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
- # typed: strong
3
2
 
4
3
  module WorkOS
5
- VERSION = '4.1.0'
4
+ VERSION = '4.2.1'
6
5
  end