@workos-inc/node 3.9.1 → 4.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 (162) hide show
  1. package/lib/common/interfaces/event.interface.d.ts +45 -3
  2. package/lib/common/serializers/event.serializer.js +9 -0
  3. package/lib/directory-sync/interfaces/directory-user.interface.d.ts +12 -12
  4. package/lib/index.d.ts +1 -2
  5. package/lib/index.js +1 -2
  6. package/lib/mfa/interfaces/challenge.interface.d.ts +2 -2
  7. package/lib/mfa/interfaces/factor.interface.d.ts +23 -3
  8. package/lib/mfa/interfaces/totp.interface.d.ts +4 -0
  9. package/lib/mfa/mfa.d.ts +2 -2
  10. package/lib/mfa/mfa.js +1 -1
  11. package/lib/mfa/mfa.spec.js +0 -6
  12. package/lib/mfa/serializers/factor.serializer.d.ts +2 -1
  13. package/lib/mfa/serializers/factor.serializer.js +3 -1
  14. package/lib/mfa/serializers/totp.serializer.d.ts +2 -1
  15. package/lib/mfa/serializers/totp.serializer.js +17 -8
  16. package/lib/sso/interfaces/authorization-url-options.interface.d.ts +2 -2
  17. package/lib/sso/interfaces/get-profile-and-token-options.interface.d.ts +1 -1
  18. package/lib/sso/sso.d.ts +2 -2
  19. package/lib/sso/sso.js +5 -5
  20. package/lib/sso/sso.spec.js +30 -30
  21. package/lib/user-management/fixtures/invitation.json +13 -0
  22. package/lib/{users → user-management}/fixtures/list-factors.json +0 -3
  23. package/lib/user-management/fixtures/list-invitations.json +22 -0
  24. package/lib/user-management/fixtures/list-organization-memberships.json +17 -0
  25. package/lib/user-management/fixtures/organization-membership.json +8 -0
  26. package/lib/user-management/interfaces/authenticate-with-code-options.interface.d.ts +11 -0
  27. package/lib/user-management/interfaces/authenticate-with-email-verification-options.interface.d.ts +13 -0
  28. package/lib/user-management/interfaces/authenticate-with-magic-auth-options.interface.d.ts +15 -0
  29. package/lib/user-management/interfaces/authenticate-with-options-base.interface.d.ts +11 -0
  30. package/lib/user-management/interfaces/authenticate-with-organization-selection.interface.d.ts +13 -0
  31. package/lib/user-management/interfaces/authenticate-with-password-options.interface.d.ts +13 -0
  32. package/lib/{users → user-management}/interfaces/authenticate-with-totp-options.interface.d.ts +3 -9
  33. package/lib/{users → user-management}/interfaces/authentication-response.interface.d.ts +2 -0
  34. package/lib/user-management/interfaces/authorization-url-options.interface.d.ts +10 -0
  35. package/lib/user-management/interfaces/create-organization-membership-options.interface.d.ts +8 -0
  36. package/lib/{users → user-management}/interfaces/enroll-auth-factor.interface.d.ts +4 -4
  37. package/lib/user-management/interfaces/factor.interface.d.ts +37 -0
  38. package/lib/{users → user-management}/interfaces/index.d.ts +2 -5
  39. package/lib/{users → user-management}/interfaces/index.js +2 -5
  40. package/lib/user-management/interfaces/invitation.interface.d.ts +26 -0
  41. package/lib/user-management/interfaces/list-invitations-options.interface.d.ts +9 -0
  42. package/lib/user-management/interfaces/list-organization-memberships-options.interface.d.ts +9 -0
  43. package/lib/{users → user-management}/interfaces/list-users-options.interface.d.ts +5 -1
  44. package/lib/user-management/interfaces/organization-membership.interface.d.ts +16 -0
  45. package/lib/user-management/interfaces/send-invitation-options.interface.d.ts +12 -0
  46. package/lib/user-management/interfaces/send-password-reset-email-options.interface.d.ts +8 -0
  47. package/lib/{users → user-management}/interfaces/update-user-options.interface.d.ts +6 -0
  48. package/lib/user-management/interfaces/update-user-password-options.interface.js +2 -0
  49. package/lib/user-management/interfaces/user.interface.js +2 -0
  50. package/lib/user-management/interfaces/verify-email-options.interface.d.ts +7 -0
  51. package/lib/user-management/interfaces/verify-email-options.interface.js +2 -0
  52. package/lib/user-management/serializers/authenticate-with-email-verification.serializer.d.ts +2 -0
  53. package/lib/user-management/serializers/authenticate-with-email-verification.serializer.js +13 -0
  54. package/lib/{users → user-management}/serializers/authenticate-with-magic-auth-options.serializer.js +2 -1
  55. package/lib/user-management/serializers/authenticate-with-organization-selection-options.serializer.d.ts +2 -0
  56. package/lib/user-management/serializers/authenticate-with-organization-selection-options.serializer.js +13 -0
  57. package/lib/{users → user-management}/serializers/authentication-response.serializer.js +1 -0
  58. package/lib/user-management/serializers/create-organization-membership-options.serializer.d.ts +2 -0
  59. package/lib/user-management/serializers/create-organization-membership-options.serializer.js +8 -0
  60. package/lib/user-management/serializers/factor.serializer.d.ts +3 -0
  61. package/lib/user-management/serializers/factor.serializer.js +24 -0
  62. package/lib/{users → user-management}/serializers/index.d.ts +1 -0
  63. package/lib/{users → user-management}/serializers/index.js +1 -0
  64. package/lib/user-management/serializers/invitation.serializer.d.ts +2 -0
  65. package/lib/user-management/serializers/invitation.serializer.js +17 -0
  66. package/lib/user-management/serializers/list-invitations-options.serializer.d.ts +2 -0
  67. package/lib/user-management/serializers/list-invitations-options.serializer.js +12 -0
  68. package/lib/user-management/serializers/list-organization-memberships-options.serializer.d.ts +2 -0
  69. package/lib/user-management/serializers/list-organization-memberships-options.serializer.js +12 -0
  70. package/lib/user-management/serializers/list-users-options.serializer.d.ts +2 -0
  71. package/lib/user-management/serializers/list-users-options.serializer.js +12 -0
  72. package/lib/user-management/serializers/organization-membership.serializer.d.ts +2 -0
  73. package/lib/user-management/serializers/organization-membership.serializer.js +12 -0
  74. package/lib/user-management/serializers/send-invitation-options.serializer.d.ts +2 -0
  75. package/lib/user-management/serializers/send-invitation-options.serializer.js +10 -0
  76. package/lib/user-management/serializers/send-password-reset-email.serializer.d.ts +2 -0
  77. package/lib/user-management/serializers/send-password-reset-email.serializer.js +8 -0
  78. package/lib/{users → user-management}/serializers/update-user-options.serializer.js +3 -0
  79. package/lib/user-management/user-management.d.ts +54 -0
  80. package/lib/user-management/user-management.js +215 -0
  81. package/lib/user-management/user-management.spec.js +745 -0
  82. package/lib/workos.d.ts +2 -4
  83. package/lib/workos.js +3 -5
  84. package/package.json +1 -1
  85. package/lib/audit-trail/audit-trail.d.ts +0 -12
  86. package/lib/audit-trail/audit-trail.js +0 -31
  87. package/lib/audit-trail/audit-trail.spec.js +0 -183
  88. package/lib/audit-trail/interfaces/create-event-options.interface.d.ts +0 -3
  89. package/lib/audit-trail/interfaces/event-options.interface.d.ts +0 -14
  90. package/lib/audit-trail/interfaces/event.interface.d.ts +0 -23
  91. package/lib/audit-trail/interfaces/index.d.ts +0 -4
  92. package/lib/audit-trail/interfaces/list-events-options.interface.d.ts +0 -16
  93. package/lib/users/interfaces/add-user-to-organization-options.interface.d.ts +0 -7
  94. package/lib/users/interfaces/authenticate-with-code-options.interface.d.ts +0 -17
  95. package/lib/users/interfaces/authenticate-with-magic-auth-options.interface.d.ts +0 -19
  96. package/lib/users/interfaces/authenticate-with-password-options.interface.d.ts +0 -19
  97. package/lib/users/interfaces/delete-user-options.interface.d.ts +0 -3
  98. package/lib/users/interfaces/remove-user-from-organization-options.interface.d.ts +0 -4
  99. package/lib/users/interfaces/send-password-reset-options.interface.d.ts +0 -17
  100. package/lib/users/interfaces/verify-email-code-options.interface.d.ts +0 -7
  101. package/lib/users/serializers/send-password-reset-email.serializer.d.ts +0 -3
  102. package/lib/users/serializers/send-password-reset-email.serializer.js +0 -14
  103. package/lib/users/users.d.ts +0 -38
  104. package/lib/users/users.js +0 -140
  105. package/lib/users/users.spec.d.ts +0 -1
  106. package/lib/users/users.spec.js +0 -462
  107. /package/lib/{users → user-management}/fixtures/list-users.json +0 -0
  108. /package/lib/{users → user-management}/fixtures/user.json +0 -0
  109. /package/lib/{users → user-management}/interfaces/authenticate-with-code-options.interface.js +0 -0
  110. /package/lib/{audit-trail/interfaces/create-event-options.interface.js → user-management/interfaces/authenticate-with-email-verification-options.interface.js} +0 -0
  111. /package/lib/{users → user-management}/interfaces/authenticate-with-magic-auth-options.interface.js +0 -0
  112. /package/lib/{audit-trail/interfaces/event-options.interface.js → user-management/interfaces/authenticate-with-options-base.interface.js} +0 -0
  113. /package/lib/{audit-trail/interfaces/event.interface.js → user-management/interfaces/authenticate-with-organization-selection.interface.js} +0 -0
  114. /package/lib/{users → user-management}/interfaces/authenticate-with-password-options.interface.js +0 -0
  115. /package/lib/{users → user-management}/interfaces/authenticate-with-totp-options.interface.js +0 -0
  116. /package/lib/{users → user-management}/interfaces/authentication-response.interface.js +0 -0
  117. /package/lib/{audit-trail/interfaces/index.js → user-management/interfaces/authorization-url-options.interface.js} +0 -0
  118. /package/lib/{audit-trail/interfaces/list-events-options.interface.js → user-management/interfaces/create-organization-membership-options.interface.js} +0 -0
  119. /package/lib/{users → user-management}/interfaces/create-user-options.interface.d.ts +0 -0
  120. /package/lib/{users → user-management}/interfaces/create-user-options.interface.js +0 -0
  121. /package/lib/{users → user-management}/interfaces/enroll-auth-factor.interface.js +0 -0
  122. /package/lib/{users/interfaces/add-user-to-organization-options.interface.js → user-management/interfaces/factor.interface.js} +0 -0
  123. /package/lib/{users/interfaces/delete-user-options.interface.js → user-management/interfaces/invitation.interface.js} +0 -0
  124. /package/lib/{users → user-management}/interfaces/list-auth-factors-options.interface.d.ts +0 -0
  125. /package/lib/{users → user-management}/interfaces/list-auth-factors-options.interface.js +0 -0
  126. /package/lib/{users/interfaces/list-users-options.interface.js → user-management/interfaces/list-invitations-options.interface.js} +0 -0
  127. /package/lib/{users/interfaces/remove-user-from-organization-options.interface.js → user-management/interfaces/list-organization-memberships-options.interface.js} +0 -0
  128. /package/lib/{users/interfaces/reset-password-options.interface.js → user-management/interfaces/list-users-options.interface.js} +0 -0
  129. /package/lib/{users/interfaces/send-magic-auth-code-options.interface.js → user-management/interfaces/organization-membership.interface.js} +0 -0
  130. /package/lib/{users → user-management}/interfaces/reset-password-options.interface.d.ts +0 -0
  131. /package/lib/{users/interfaces/send-password-reset-options.interface.js → user-management/interfaces/reset-password-options.interface.js} +0 -0
  132. /package/lib/{users/interfaces/send-verification-email-options.js → user-management/interfaces/send-invitation-options.interface.js} +0 -0
  133. /package/lib/{users → user-management}/interfaces/send-magic-auth-code-options.interface.d.ts +0 -0
  134. /package/lib/{users/interfaces/update-user-options.interface.js → user-management/interfaces/send-magic-auth-code-options.interface.js} +0 -0
  135. /package/lib/{users/interfaces/update-user-password-options.interface.js → user-management/interfaces/send-password-reset-email-options.interface.js} +0 -0
  136. /package/lib/{users → user-management}/interfaces/send-verification-email-options.d.ts +0 -0
  137. /package/lib/{users/interfaces/user.interface.js → user-management/interfaces/send-verification-email-options.js} +0 -0
  138. /package/lib/{users/interfaces/verify-email-code-options.interface.js → user-management/interfaces/update-user-options.interface.js} +0 -0
  139. /package/lib/{users → user-management}/interfaces/update-user-password-options.interface.d.ts +0 -0
  140. /package/lib/{users → user-management}/interfaces/user.interface.d.ts +0 -0
  141. /package/lib/{users → user-management}/serializers/authenticate-with-code-options.serializer.d.ts +0 -0
  142. /package/lib/{users → user-management}/serializers/authenticate-with-code-options.serializer.js +0 -0
  143. /package/lib/{users → user-management}/serializers/authenticate-with-magic-auth-options.serializer.d.ts +0 -0
  144. /package/lib/{users → user-management}/serializers/authenticate-with-password-options.serializer.d.ts +0 -0
  145. /package/lib/{users → user-management}/serializers/authenticate-with-password-options.serializer.js +0 -0
  146. /package/lib/{users → user-management}/serializers/authenticate-with-totp-options.serializer.d.ts +0 -0
  147. /package/lib/{users → user-management}/serializers/authenticate-with-totp-options.serializer.js +0 -0
  148. /package/lib/{users → user-management}/serializers/authentication-response.serializer.d.ts +0 -0
  149. /package/lib/{users → user-management}/serializers/create-user-options.serializer.d.ts +0 -0
  150. /package/lib/{users → user-management}/serializers/create-user-options.serializer.js +0 -0
  151. /package/lib/{users → user-management}/serializers/enroll-auth-factor-options.serializer.d.ts +0 -0
  152. /package/lib/{users → user-management}/serializers/enroll-auth-factor-options.serializer.js +0 -0
  153. /package/lib/{users → user-management}/serializers/reset-password-options.serializer.d.ts +0 -0
  154. /package/lib/{users → user-management}/serializers/reset-password-options.serializer.js +0 -0
  155. /package/lib/{users → user-management}/serializers/send-magic-auth-code-options.serializer.d.ts +0 -0
  156. /package/lib/{users → user-management}/serializers/send-magic-auth-code-options.serializer.js +0 -0
  157. /package/lib/{users → user-management}/serializers/update-user-options.serializer.d.ts +0 -0
  158. /package/lib/{users → user-management}/serializers/update-user-password-options.serializer.d.ts +0 -0
  159. /package/lib/{users → user-management}/serializers/update-user-password-options.serializer.js +0 -0
  160. /package/lib/{users → user-management}/serializers/user.serializer.d.ts +0 -0
  161. /package/lib/{users → user-management}/serializers/user.serializer.js +0 -0
  162. /package/lib/{audit-trail/audit-trail.spec.d.ts → user-management/user-management.spec.d.ts} +0 -0
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeSendPasswordResetEmailOptions = void 0;
4
+ const serializeSendPasswordResetEmailOptions = (options) => ({
5
+ email: options.email,
6
+ password_reset_url: options.passwordResetUrl,
7
+ });
8
+ exports.serializeSendPasswordResetEmailOptions = serializeSendPasswordResetEmailOptions;
@@ -5,5 +5,8 @@ const serializeUpdateUserOptions = (options) => ({
5
5
  first_name: options.firstName,
6
6
  last_name: options.lastName,
7
7
  email_verified: options.emailVerified,
8
+ password: options.password,
9
+ password_hash: options.passwordHash,
10
+ password_hash_type: options.passwordHashType,
8
11
  });
9
12
  exports.serializeUpdateUserOptions = serializeUpdateUserOptions;
@@ -0,0 +1,54 @@
1
+ import { WorkOS } from '../workos';
2
+ import { AutoPaginatable } from '../common/utils/pagination';
3
+ import { AuthenticateWithCodeOptions, AuthenticateWithMagicAuthOptions, AuthenticateWithPasswordOptions, AuthenticateWithTotpOptions, AuthenticationResponse, ResetPasswordOptions, SendPasswordResetEmailOptions, CreateUserOptions, EnrollAuthFactorOptions, ListAuthFactorsOptions, ListUsersOptions, SendMagicAuthCodeOptions, SendVerificationEmailOptions, UpdateUserOptions, User, VerifyEmailOptions } from './interfaces';
4
+ import { Challenge } from '../mfa/interfaces';
5
+ import { OrganizationMembership } from './interfaces/organization-membership.interface';
6
+ import { ListOrganizationMembershipsOptions } from './interfaces/list-organization-memberships-options.interface';
7
+ import { CreateOrganizationMembershipOptions } from './interfaces/create-organization-membership-options.interface';
8
+ import { Invitation } from './interfaces/invitation.interface';
9
+ import { ListInvitationsOptions } from './interfaces/list-invitations-options.interface';
10
+ import { SendInvitationOptions } from './interfaces/send-invitation-options.interface';
11
+ import { AuthorizationURLOptions } from './interfaces/authorization-url-options.interface';
12
+ import { AuthenticateWithEmailVerificationOptions } from './interfaces/authenticate-with-email-verification-options.interface';
13
+ import { AuthenticateWithOrganizationSelectionOptions } from './interfaces/authenticate-with-organization-selection.interface';
14
+ import { Factor, FactorWithSecrets } from './interfaces/factor.interface';
15
+ export declare class UserManagement {
16
+ private readonly workos;
17
+ constructor(workos: WorkOS);
18
+ getUser(userId: string): Promise<User>;
19
+ listUsers(options?: ListUsersOptions): Promise<AutoPaginatable<User>>;
20
+ createUser(payload: CreateUserOptions): Promise<User>;
21
+ authenticateWithMagicAuth(payload: AuthenticateWithMagicAuthOptions): Promise<AuthenticationResponse>;
22
+ authenticateWithPassword(payload: AuthenticateWithPasswordOptions): Promise<AuthenticationResponse>;
23
+ authenticateWithCode(payload: AuthenticateWithCodeOptions): Promise<AuthenticationResponse>;
24
+ authenticateWithTotp(payload: AuthenticateWithTotpOptions): Promise<AuthenticationResponse>;
25
+ authenticateWithEmailVerification(payload: AuthenticateWithEmailVerificationOptions): Promise<AuthenticationResponse>;
26
+ authenticateWithOrganizationSelection(payload: AuthenticateWithOrganizationSelectionOptions): Promise<AuthenticationResponse>;
27
+ sendVerificationEmail({ userId, }: SendVerificationEmailOptions): Promise<{
28
+ user: User;
29
+ }>;
30
+ sendMagicAuthCode(options: SendMagicAuthCodeOptions): Promise<void>;
31
+ verifyEmail({ code, userId, }: VerifyEmailOptions): Promise<{
32
+ user: User;
33
+ }>;
34
+ sendPasswordResetEmail(payload: SendPasswordResetEmailOptions): Promise<void>;
35
+ resetPassword(payload: ResetPasswordOptions): Promise<{
36
+ user: User;
37
+ }>;
38
+ updateUser(payload: UpdateUserOptions): Promise<User>;
39
+ enrollAuthFactor(payload: EnrollAuthFactorOptions): Promise<{
40
+ authenticationFactor: FactorWithSecrets;
41
+ authenticationChallenge: Challenge;
42
+ }>;
43
+ listAuthFactors(options: ListAuthFactorsOptions): Promise<AutoPaginatable<Factor>>;
44
+ deleteUser(userId: string): Promise<void>;
45
+ getOrganizationMembership(organizationMembershipId: string): Promise<OrganizationMembership>;
46
+ listOrganizationMemberships(options: ListOrganizationMembershipsOptions): Promise<AutoPaginatable<OrganizationMembership>>;
47
+ createOrganizationMembership(options: CreateOrganizationMembershipOptions): Promise<OrganizationMembership>;
48
+ deleteOrganizationMembership(organizationMembershipId: string): Promise<void>;
49
+ getInvitation(invitationId: string): Promise<Invitation>;
50
+ listInvitations(options: ListInvitationsOptions): Promise<AutoPaginatable<Invitation>>;
51
+ sendInvitation(payload: SendInvitationOptions): Promise<Invitation>;
52
+ revokeInvitation(invitationId: string): Promise<Invitation>;
53
+ getAuthorizationUrl({ connectionId, clientId, domainHint, loginHint, organizationId, provider, redirectUri, state, }: AuthorizationURLOptions): string;
54
+ }
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserManagement = void 0;
13
+ const pagination_1 = require("../common/utils/pagination");
14
+ const serializers_1 = require("./serializers");
15
+ const fetch_and_deserialize_1 = require("../common/utils/fetch-and-deserialize");
16
+ const serializers_2 = require("../mfa/serializers");
17
+ const organization_membership_serializer_1 = require("./serializers/organization-membership.serializer");
18
+ const list_organization_memberships_options_serializer_1 = require("./serializers/list-organization-memberships-options.serializer");
19
+ const create_organization_membership_options_serializer_1 = require("./serializers/create-organization-membership-options.serializer");
20
+ const invitation_serializer_1 = require("./serializers/invitation.serializer");
21
+ const list_invitations_options_serializer_1 = require("./serializers/list-invitations-options.serializer");
22
+ const send_invitation_options_serializer_1 = require("./serializers/send-invitation-options.serializer");
23
+ const list_users_options_serializer_1 = require("./serializers/list-users-options.serializer");
24
+ const authenticate_with_email_verification_serializer_1 = require("./serializers/authenticate-with-email-verification.serializer");
25
+ const authenticate_with_organization_selection_options_serializer_1 = require("./serializers/authenticate-with-organization-selection-options.serializer");
26
+ const factor_serializer_1 = require("./serializers/factor.serializer");
27
+ const toQueryString = (options) => {
28
+ const searchParams = new URLSearchParams();
29
+ const keys = Object.keys(options).sort();
30
+ for (const key of keys) {
31
+ const value = options[key];
32
+ if (value) {
33
+ searchParams.append(key, value);
34
+ }
35
+ }
36
+ return searchParams.toString();
37
+ };
38
+ class UserManagement {
39
+ constructor(workos) {
40
+ this.workos = workos;
41
+ }
42
+ getUser(userId) {
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ const { data } = yield this.workos.get(`/user_management/users/${userId}`);
45
+ return (0, serializers_1.deserializeUser)(data);
46
+ });
47
+ }
48
+ listUsers(options) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ return new pagination_1.AutoPaginatable(yield (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, '/user_management/users', serializers_1.deserializeUser, options ? (0, list_users_options_serializer_1.serializeListUsersOptions)(options) : undefined), (params) => (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, '/user_management/users', serializers_1.deserializeUser, params), options);
51
+ });
52
+ }
53
+ createUser(payload) {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ const { data } = yield this.workos.post('/user_management/users', (0, serializers_1.serializeCreateUserOptions)(payload));
56
+ return (0, serializers_1.deserializeUser)(data);
57
+ });
58
+ }
59
+ authenticateWithMagicAuth(payload) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const { data } = yield this.workos.post('/user_management/authenticate', (0, serializers_1.serializeAuthenticateWithMagicAuthOptions)(Object.assign(Object.assign({}, payload), { clientSecret: this.workos.key })));
62
+ return (0, serializers_1.deserializeAuthenticationResponse)(data);
63
+ });
64
+ }
65
+ authenticateWithPassword(payload) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ const { data } = yield this.workos.post('/user_management/authenticate', (0, serializers_1.serializeAuthenticateWithPasswordOptions)(Object.assign(Object.assign({}, payload), { clientSecret: this.workos.key })));
68
+ return (0, serializers_1.deserializeAuthenticationResponse)(data);
69
+ });
70
+ }
71
+ authenticateWithCode(payload) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ const { data } = yield this.workos.post('/user_management/authenticate', (0, serializers_1.serializeAuthenticateWithCodeOptions)(Object.assign(Object.assign({}, payload), { clientSecret: this.workos.key })));
74
+ return (0, serializers_1.deserializeAuthenticationResponse)(data);
75
+ });
76
+ }
77
+ authenticateWithTotp(payload) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const { data } = yield this.workos.post('/user_management/authenticate', (0, serializers_1.serializeAuthenticateWithTotpOptions)(Object.assign(Object.assign({}, payload), { clientSecret: this.workos.key })));
80
+ return (0, serializers_1.deserializeAuthenticationResponse)(data);
81
+ });
82
+ }
83
+ authenticateWithEmailVerification(payload) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ const { data } = yield this.workos.post('/user_management/authenticate', (0, authenticate_with_email_verification_serializer_1.serializeAuthenticateWithEmailVerificationOptions)(Object.assign(Object.assign({}, payload), { clientSecret: this.workos.key })));
86
+ return (0, serializers_1.deserializeAuthenticationResponse)(data);
87
+ });
88
+ }
89
+ authenticateWithOrganizationSelection(payload) {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ const { data } = yield this.workos.post('/user_management/authenticate', (0, authenticate_with_organization_selection_options_serializer_1.serializeAuthenticateWithOrganizationSelectionOptions)(Object.assign(Object.assign({}, payload), { clientSecret: this.workos.key })));
92
+ return (0, serializers_1.deserializeAuthenticationResponse)(data);
93
+ });
94
+ }
95
+ sendVerificationEmail({ userId, }) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ const { data } = yield this.workos.post(`/user_management/users/${userId}/email_verification/send`, {});
98
+ return { user: (0, serializers_1.deserializeUser)(data.user) };
99
+ });
100
+ }
101
+ sendMagicAuthCode(options) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ yield this.workos.post('/user_management/magic_auth/send', (0, serializers_1.serializeSendMagicAuthCodeOptions)(options));
104
+ });
105
+ }
106
+ verifyEmail({ code, userId, }) {
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ const { data } = yield this.workos.post(`/user_management/users/${userId}/email_verification/confirm`, {
109
+ code,
110
+ });
111
+ return { user: (0, serializers_1.deserializeUser)(data.user) };
112
+ });
113
+ }
114
+ sendPasswordResetEmail(payload) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ yield this.workos.post('/user_management/password_reset/send', (0, serializers_1.serializeSendPasswordResetEmailOptions)(payload));
117
+ });
118
+ }
119
+ resetPassword(payload) {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ const { data } = yield this.workos.post('/user_management/password_reset/confirm', (0, serializers_1.serializeResetPasswordOptions)(payload));
122
+ return { user: (0, serializers_1.deserializeUser)(data.user) };
123
+ });
124
+ }
125
+ updateUser(payload) {
126
+ return __awaiter(this, void 0, void 0, function* () {
127
+ const { data } = yield this.workos.put(`/user_management/users/${payload.userId}`, (0, serializers_1.serializeUpdateUserOptions)(payload));
128
+ return (0, serializers_1.deserializeUser)(data);
129
+ });
130
+ }
131
+ enrollAuthFactor(payload) {
132
+ return __awaiter(this, void 0, void 0, function* () {
133
+ const { data } = yield this.workos.post(`/user_management/users/${payload.userId}/auth_factors`, (0, serializers_1.serializeEnrollAuthFactorOptions)(payload));
134
+ return {
135
+ authenticationFactor: (0, serializers_1.deserializeFactorWithSecrets)(data.authentication_factor),
136
+ authenticationChallenge: (0, serializers_2.deserializeChallenge)(data.authentication_challenge),
137
+ };
138
+ });
139
+ }
140
+ listAuthFactors(options) {
141
+ return __awaiter(this, void 0, void 0, function* () {
142
+ return new pagination_1.AutoPaginatable(yield (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, `/user_management/users/${options.userId}/auth_factors`, factor_serializer_1.deserializeFactor, options), (params) => (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, `/user_management/users/${options.userId}/auth_factors`, factor_serializer_1.deserializeFactor, params), options);
143
+ });
144
+ }
145
+ deleteUser(userId) {
146
+ return __awaiter(this, void 0, void 0, function* () {
147
+ yield this.workos.delete(`/user_management/users/${userId}`);
148
+ });
149
+ }
150
+ getOrganizationMembership(organizationMembershipId) {
151
+ return __awaiter(this, void 0, void 0, function* () {
152
+ const { data } = yield this.workos.get(`/user_management/organization_memberships/${organizationMembershipId}`);
153
+ return (0, organization_membership_serializer_1.deserializeOrganizationMembership)(data);
154
+ });
155
+ }
156
+ listOrganizationMemberships(options) {
157
+ return __awaiter(this, void 0, void 0, function* () {
158
+ return new pagination_1.AutoPaginatable(yield (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, '/user_management/organization_memberships', organization_membership_serializer_1.deserializeOrganizationMembership, options
159
+ ? (0, list_organization_memberships_options_serializer_1.serializeListOrganizationMembershipsOptions)(options)
160
+ : undefined), (params) => (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, '/user_management/organization_memberships', organization_membership_serializer_1.deserializeOrganizationMembership, params), options);
161
+ });
162
+ }
163
+ createOrganizationMembership(options) {
164
+ return __awaiter(this, void 0, void 0, function* () {
165
+ const { data } = yield this.workos.post('/user_management/organization_memberships', (0, create_organization_membership_options_serializer_1.serializeCreateOrganizationMembershipOptions)(options));
166
+ return (0, organization_membership_serializer_1.deserializeOrganizationMembership)(data);
167
+ });
168
+ }
169
+ deleteOrganizationMembership(organizationMembershipId) {
170
+ return __awaiter(this, void 0, void 0, function* () {
171
+ yield this.workos.delete(`/user_management/organization_memberships/${organizationMembershipId}`);
172
+ });
173
+ }
174
+ getInvitation(invitationId) {
175
+ return __awaiter(this, void 0, void 0, function* () {
176
+ const { data } = yield this.workos.get(`/user_management/invitations/${invitationId}`);
177
+ return (0, invitation_serializer_1.deserializeInvitation)(data);
178
+ });
179
+ }
180
+ listInvitations(options) {
181
+ return __awaiter(this, void 0, void 0, function* () {
182
+ return new pagination_1.AutoPaginatable(yield (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, '/user_management/invitations', invitation_serializer_1.deserializeInvitation, options ? (0, list_invitations_options_serializer_1.serializeListInvitationsOptions)(options) : undefined), (params) => (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, '/user_management/invitations', invitation_serializer_1.deserializeInvitation, params), options);
183
+ });
184
+ }
185
+ sendInvitation(payload) {
186
+ return __awaiter(this, void 0, void 0, function* () {
187
+ const { data } = yield this.workos.post('/user_management/invitations', (0, send_invitation_options_serializer_1.serializeSendInvitationOptions)(Object.assign({}, payload)));
188
+ return (0, invitation_serializer_1.deserializeInvitation)(data);
189
+ });
190
+ }
191
+ revokeInvitation(invitationId) {
192
+ return __awaiter(this, void 0, void 0, function* () {
193
+ const { data } = yield this.workos.post(`/user_management/invitations/${invitationId}/revoke`, null);
194
+ return (0, invitation_serializer_1.deserializeInvitation)(data);
195
+ });
196
+ }
197
+ getAuthorizationUrl({ connectionId, clientId, domainHint, loginHint, organizationId, provider, redirectUri, state, }) {
198
+ if (!provider && !connectionId && !organizationId) {
199
+ throw new Error(`Incomplete arguments. Need to specify either a 'connectionId', 'organizationId', or 'provider'.`);
200
+ }
201
+ const query = toQueryString({
202
+ connection_id: connectionId,
203
+ organization_id: organizationId,
204
+ domain_hint: domainHint,
205
+ login_hint: loginHint,
206
+ provider,
207
+ client_id: clientId,
208
+ redirect_uri: redirectUri,
209
+ response_type: 'code',
210
+ state,
211
+ });
212
+ return `${this.workos.baseURL}/user_management/authorize?${query}`;
213
+ }
214
+ }
215
+ exports.UserManagement = UserManagement;