@workos-inc/node 7.5.0-beta.node-compatibility → 7.6.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 (55) hide show
  1. package/README.md +0 -4
  2. package/lib/common/interfaces/event.interface.d.ts +19 -3
  3. package/lib/common/interfaces/index.d.ts +0 -1
  4. package/lib/common/interfaces/index.js +0 -1
  5. package/lib/common/interfaces/workos-options.interface.d.ts +0 -1
  6. package/lib/common/serializers/event.serializer.js +4 -0
  7. package/lib/common/utils/fetch-client.d.ts +31 -0
  8. package/lib/common/utils/fetch-client.js +108 -0
  9. package/lib/user-management/fixtures/email_verification.json +10 -0
  10. package/lib/user-management/fixtures/invitation.json +1 -1
  11. package/lib/user-management/fixtures/list-invitations.json +1 -1
  12. package/lib/user-management/fixtures/password_reset.json +10 -0
  13. package/lib/user-management/interfaces/create-password-reset-options.interface.d.ts +6 -0
  14. package/lib/user-management/interfaces/email-verification.interface.d.ts +38 -0
  15. package/lib/user-management/interfaces/email-verification.interface.js +2 -0
  16. package/lib/user-management/interfaces/index.d.ts +3 -0
  17. package/lib/user-management/interfaces/index.js +3 -0
  18. package/lib/user-management/interfaces/password-reset.interface.d.ts +36 -0
  19. package/lib/user-management/interfaces/password-reset.interface.js +2 -0
  20. package/lib/user-management/serializers/create-password-reset-options.serializer.d.ts +2 -0
  21. package/lib/user-management/serializers/create-password-reset-options.serializer.js +7 -0
  22. package/lib/user-management/serializers/email-verification.serializer.d.ts +3 -0
  23. package/lib/user-management/serializers/email-verification.serializer.js +24 -0
  24. package/lib/user-management/serializers/index.d.ts +3 -0
  25. package/lib/user-management/serializers/index.js +3 -0
  26. package/lib/user-management/serializers/password-reset.serializer.d.ts +3 -0
  27. package/lib/user-management/serializers/password-reset.serializer.js +23 -0
  28. package/lib/user-management/user-management.d.ts +7 -1
  29. package/lib/user-management/user-management.js +21 -0
  30. package/lib/user-management/user-management.spec.js +57 -0
  31. package/lib/webhooks/webhooks.d.ts +2 -2
  32. package/lib/webhooks/webhooks.js +37 -11
  33. package/lib/webhooks/webhooks.spec.js +0 -29
  34. package/lib/workos.d.ts +1 -1
  35. package/lib/workos.js +12 -18
  36. package/lib/workos.spec.js +3 -56
  37. package/package.json +4 -3
  38. package/lib/common/crypto/CryptoProvider.d.ts +0 -32
  39. package/lib/common/crypto/CryptoProvider.js +0 -13
  40. package/lib/common/crypto/NodeCryptoProvider.d.ts +0 -12
  41. package/lib/common/crypto/NodeCryptoProvider.js +0 -73
  42. package/lib/common/crypto/SubtleCryptoProvider.d.ts +0 -15
  43. package/lib/common/crypto/SubtleCryptoProvider.js +0 -75
  44. package/lib/common/crypto/index.d.ts +0 -3
  45. package/lib/common/crypto/index.js +0 -19
  46. package/lib/common/interfaces/http-client.interface.d.ts +0 -20
  47. package/lib/common/net/fetch-client.d.ts +0 -22
  48. package/lib/common/net/fetch-client.js +0 -112
  49. package/lib/common/net/http-client.d.ts +0 -39
  50. package/lib/common/net/http-client.js +0 -76
  51. package/lib/common/net/index.d.ts +0 -5
  52. package/lib/common/net/index.js +0 -31
  53. package/lib/common/net/node-client.d.ts +0 -23
  54. package/lib/common/net/node-client.js +0 -155
  55. /package/lib/{common/interfaces/http-client.interface.js → user-management/interfaces/create-password-reset-options.interface.js} +0 -0
package/README.md CHANGED
@@ -9,10 +9,6 @@ The WorkOS library for Node.js provides convenient access to the WorkOS API from
9
9
 
10
10
  See the [API Reference](https://workos.com/docs/reference/client-libraries) for Node.js usage examples.
11
11
 
12
- ## Requirements
13
-
14
- Node 16 or higher.
15
-
16
12
  ## Installation
17
13
 
18
14
  Install the package with:
@@ -1,7 +1,7 @@
1
1
  import { DirectoryUser, DirectoryUserResponse, DirectoryGroup, DirectoryGroupResponse, EventDirectory, EventDirectoryResponse } from '../../directory-sync/interfaces';
2
2
  import { Organization, OrganizationResponse } from '../../organizations/interfaces';
3
3
  import { Connection, ConnectionResponse } from '../../sso/interfaces';
4
- import { InvitationEvent, InvitationEventResponse, MagicAuthEvent, MagicAuthEventResponse, Session, SessionResponse, User, UserResponse } from '../../user-management/interfaces';
4
+ import { EmailVerificationEvent, EmailVerificationEventResponse, InvitationEvent, InvitationEventResponse, MagicAuthEvent, MagicAuthEventResponse, PasswordResetEvent, PasswordResetEventResponse, Session, SessionResponse, User, UserResponse } from '../../user-management/interfaces';
5
5
  import { OrganizationMembership, OrganizationMembershipResponse } from '../../user-management/interfaces/organization-membership.interface';
6
6
  import { RoleEvent, RoleEventResponse } from '../../roles/interfaces/role.interface';
7
7
  export interface EventBase {
@@ -140,6 +140,14 @@ export interface DsyncUserUpdatedEventResponse extends EventResponseBase {
140
140
  event: 'dsync.user.updated';
141
141
  data: DirectoryUserResponse & Record<'previous_attributes', any>;
142
142
  }
143
+ export interface EmailVerificationCreatedEvent extends EventBase {
144
+ event: 'email_verification.created';
145
+ data: EmailVerificationEvent;
146
+ }
147
+ export interface EmailVerificationCreatedEventResponse extends EventResponseBase {
148
+ event: 'email_verification.created';
149
+ data: EmailVerificationEventResponse;
150
+ }
143
151
  export interface InvitationCreatedEvent extends EventBase {
144
152
  event: 'invitation.created';
145
153
  data: InvitationEvent;
@@ -156,6 +164,14 @@ export interface MagicAuthCreatedEventResponse extends EventResponseBase {
156
164
  event: 'magic_auth.created';
157
165
  data: MagicAuthEventResponse;
158
166
  }
167
+ export interface PasswordResetCreatedEvent extends EventBase {
168
+ event: 'password_reset.created';
169
+ data: PasswordResetEvent;
170
+ }
171
+ export interface PasswordResetCreatedEventResponse extends EventResponseBase {
172
+ event: 'password_reset.created';
173
+ data: PasswordResetEventResponse;
174
+ }
159
175
  export interface UserCreatedEvent extends EventBase {
160
176
  event: 'user.created';
161
177
  data: User;
@@ -280,7 +296,7 @@ export interface SessionCreatedEventResponse extends EventResponseBase {
280
296
  event: 'session.created';
281
297
  data: SessionResponse;
282
298
  }
283
- export type Event = ConnectionActivatedEvent | ConnectionDeactivatedEvent | ConnectionDeletedEvent | DsyncActivatedEvent | DsyncDeactivatedEvent | DsyncDeletedEvent | DsyncGroupCreatedEvent | DsyncGroupUpdatedEvent | DsyncGroupDeletedEvent | DsyncGroupUserAddedEvent | DsyncGroupUserRemovedEvent | DsyncUserCreatedEvent | DsyncUserUpdatedEvent | DsyncUserDeletedEvent | InvitationCreatedEvent | MagicAuthCreatedEvent | UserCreatedEvent | UserUpdatedEvent | UserDeletedEvent | OrganizationMembershipAdded | OrganizationMembershipCreated | OrganizationMembershipDeleted | OrganizationMembershipUpdated | OrganizationMembershipRemoved | RoleCreatedEvent | RoleDeletedEvent | SessionCreatedEvent | OrganizationCreatedEvent | OrganizationUpdatedEvent | OrganizationDeletedEvent;
284
- export type EventResponse = ConnectionActivatedEventResponse | ConnectionDeactivatedEventResponse | ConnectionDeletedEventResponse | DsyncActivatedEventResponse | DsyncDeactivatedEventResponse | DsyncDeletedEventResponse | DsyncGroupCreatedEventResponse | DsyncGroupUpdatedEventResponse | DsyncGroupDeletedEventResponse | DsyncGroupUserAddedEventResponse | DsyncGroupUserRemovedEventResponse | DsyncUserCreatedEventResponse | DsyncUserUpdatedEventResponse | DsyncUserDeletedEventResponse | InvitationCreatedEventResponse | MagicAuthCreatedEventResponse | UserCreatedEventResponse | UserUpdatedEventResponse | UserDeletedEventResponse | OrganizationMembershipAddedResponse | OrganizationMembershipCreatedResponse | OrganizationMembershipDeletedResponse | OrganizationMembershipUpdatedResponse | OrganizationMembershipRemovedResponse | RoleCreatedEventResponse | RoleDeletedEventResponse | SessionCreatedEventResponse | OrganizationCreatedResponse | OrganizationUpdatedResponse | OrganizationDeletedResponse;
299
+ export type Event = ConnectionActivatedEvent | ConnectionDeactivatedEvent | ConnectionDeletedEvent | DsyncActivatedEvent | DsyncDeactivatedEvent | DsyncDeletedEvent | DsyncGroupCreatedEvent | DsyncGroupUpdatedEvent | DsyncGroupDeletedEvent | DsyncGroupUserAddedEvent | DsyncGroupUserRemovedEvent | DsyncUserCreatedEvent | DsyncUserUpdatedEvent | DsyncUserDeletedEvent | EmailVerificationCreatedEvent | InvitationCreatedEvent | MagicAuthCreatedEvent | PasswordResetCreatedEvent | UserCreatedEvent | UserUpdatedEvent | UserDeletedEvent | OrganizationMembershipAdded | OrganizationMembershipCreated | OrganizationMembershipDeleted | OrganizationMembershipUpdated | OrganizationMembershipRemoved | RoleCreatedEvent | RoleDeletedEvent | SessionCreatedEvent | OrganizationCreatedEvent | OrganizationUpdatedEvent | OrganizationDeletedEvent;
300
+ export type EventResponse = ConnectionActivatedEventResponse | ConnectionDeactivatedEventResponse | ConnectionDeletedEventResponse | DsyncActivatedEventResponse | DsyncDeactivatedEventResponse | DsyncDeletedEventResponse | DsyncGroupCreatedEventResponse | DsyncGroupUpdatedEventResponse | DsyncGroupDeletedEventResponse | DsyncGroupUserAddedEventResponse | DsyncGroupUserRemovedEventResponse | DsyncUserCreatedEventResponse | DsyncUserUpdatedEventResponse | DsyncUserDeletedEventResponse | EmailVerificationCreatedEventResponse | InvitationCreatedEventResponse | MagicAuthCreatedEventResponse | PasswordResetCreatedEventResponse | UserCreatedEventResponse | UserUpdatedEventResponse | UserDeletedEventResponse | OrganizationMembershipAddedResponse | OrganizationMembershipCreatedResponse | OrganizationMembershipDeletedResponse | OrganizationMembershipUpdatedResponse | OrganizationMembershipRemovedResponse | RoleCreatedEventResponse | RoleDeletedEventResponse | SessionCreatedEventResponse | OrganizationCreatedResponse | OrganizationUpdatedResponse | OrganizationDeletedResponse;
285
301
  export type EventName = Event['event'];
286
302
  export {};
@@ -7,4 +7,3 @@ export * from './unprocessable-entity-error.interface';
7
7
  export * from './workos-options.interface';
8
8
  export * from './workos-response-error.interface';
9
9
  export * from './pagination-options.interface';
10
- export * from './http-client.interface';
@@ -23,4 +23,3 @@ __exportStar(require("./unprocessable-entity-error.interface"), exports);
23
23
  __exportStar(require("./workos-options.interface"), exports);
24
24
  __exportStar(require("./workos-response-error.interface"), exports);
25
25
  __exportStar(require("./pagination-options.interface"), exports);
26
- __exportStar(require("./http-client.interface"), exports);
@@ -5,5 +5,4 @@ export interface WorkOSOptions {
5
5
  port?: number;
6
6
  config?: RequestInit;
7
7
  appInfo?: AppInfo;
8
- fetchFn?: typeof fetch;
9
8
  }
@@ -40,10 +40,14 @@ const deserializeEvent = (event) => {
40
40
  return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_1.deserializeDirectoryUser)(event.data) });
41
41
  case 'dsync.user.updated':
42
42
  return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_1.deserializeUpdatedEventDirectoryUser)(event.data) });
43
+ case 'email_verification.created':
44
+ return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_4.deserializeEmailVerificationEvent)(event.data) });
43
45
  case 'invitation.created':
44
46
  return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_4.deserializeInvitationEvent)(event.data) });
45
47
  case 'magic_auth.created':
46
48
  return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_4.deserializeMagicAuthEvent)(event.data) });
49
+ case 'password_reset.created':
50
+ return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_4.deserializePasswordResetEvent)(event.data) });
47
51
  case 'user.created':
48
52
  case 'user.updated':
49
53
  case 'user.deleted':
@@ -0,0 +1,31 @@
1
+ export declare class FetchClient {
2
+ readonly baseURL: string;
3
+ readonly options?: RequestInit | undefined;
4
+ constructor(baseURL: string, options?: RequestInit | undefined);
5
+ get(path: string, options: {
6
+ params?: Record<string, any>;
7
+ headers?: HeadersInit;
8
+ }): Promise<{
9
+ data: any;
10
+ }>;
11
+ post<Entity = any>(path: string, entity: Entity, options: {
12
+ params?: Record<string, any>;
13
+ headers?: HeadersInit;
14
+ }): Promise<{
15
+ data: any;
16
+ }>;
17
+ put<Entity = any>(path: string, entity: Entity, options: {
18
+ params?: Record<string, any>;
19
+ headers?: HeadersInit;
20
+ }): Promise<{
21
+ data: any;
22
+ }>;
23
+ delete(path: string, options: {
24
+ params?: Record<string, any>;
25
+ headers?: HeadersInit;
26
+ }): Promise<{
27
+ data: any;
28
+ }>;
29
+ private getResourceURL;
30
+ private fetch;
31
+ }
@@ -0,0 +1,108 @@
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.FetchClient = void 0;
13
+ const fetch_error_1 = require("./fetch-error");
14
+ class FetchClient {
15
+ constructor(baseURL, options) {
16
+ this.baseURL = baseURL;
17
+ this.options = options;
18
+ }
19
+ get(path, options) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ const resourceURL = this.getResourceURL(path, options.params);
22
+ return yield this.fetch(resourceURL, {
23
+ headers: options.headers,
24
+ });
25
+ });
26
+ }
27
+ post(path, entity, options) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const resourceURL = this.getResourceURL(path, options.params);
30
+ return yield this.fetch(resourceURL, {
31
+ method: 'POST',
32
+ headers: Object.assign(Object.assign({}, getContentTypeHeader(entity)), options.headers),
33
+ body: getBody(entity),
34
+ });
35
+ });
36
+ }
37
+ put(path, entity, options) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const resourceURL = this.getResourceURL(path, options.params);
40
+ return yield this.fetch(resourceURL, {
41
+ method: 'PUT',
42
+ headers: Object.assign(Object.assign({}, getContentTypeHeader(entity)), options.headers),
43
+ body: getBody(entity),
44
+ });
45
+ });
46
+ }
47
+ delete(path, options) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ const resourceURL = this.getResourceURL(path, options.params);
50
+ return yield this.fetch(resourceURL, {
51
+ method: 'DELETE',
52
+ headers: options.headers,
53
+ });
54
+ });
55
+ }
56
+ getResourceURL(path, params) {
57
+ const queryString = getQueryString(params);
58
+ const url = new URL([path, queryString].filter(Boolean).join('?'), this.baseURL);
59
+ return url.toString();
60
+ }
61
+ fetch(url, options) {
62
+ var _a;
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ const response = yield fetch(url, Object.assign(Object.assign(Object.assign({}, this.options), options), { headers: Object.assign(Object.assign({ Accept: 'application/json, text/plain, */*', 'Content-Type': 'application/json' }, (_a = this.options) === null || _a === void 0 ? void 0 : _a.headers), options === null || options === void 0 ? void 0 : options.headers) }));
65
+ if (!response.ok) {
66
+ throw new fetch_error_1.FetchError({
67
+ message: response.statusText,
68
+ response: {
69
+ status: response.status,
70
+ headers: response.headers,
71
+ data: yield response.json(),
72
+ },
73
+ });
74
+ }
75
+ const contentType = response.headers.get('content-type');
76
+ const isJsonResponse = contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/json');
77
+ if (isJsonResponse) {
78
+ return { data: yield response.json() };
79
+ }
80
+ return { data: null };
81
+ });
82
+ }
83
+ }
84
+ exports.FetchClient = FetchClient;
85
+ function getQueryString(queryObj) {
86
+ if (!queryObj)
87
+ return undefined;
88
+ const sanitizedQueryObj = {};
89
+ Object.entries(queryObj).forEach(([param, value]) => {
90
+ if (value !== '' && value !== undefined)
91
+ sanitizedQueryObj[param] = value;
92
+ });
93
+ return new URLSearchParams(sanitizedQueryObj).toString();
94
+ }
95
+ function getContentTypeHeader(entity) {
96
+ if (entity instanceof URLSearchParams) {
97
+ return {
98
+ 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
99
+ };
100
+ }
101
+ return undefined;
102
+ }
103
+ function getBody(entity) {
104
+ if (entity === null || entity instanceof URLSearchParams) {
105
+ return entity;
106
+ }
107
+ return JSON.stringify(entity);
108
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "object": "email_verification",
3
+ "id": "email_verification_01H5JQDV7R7ATEYZDEG0W5PRYS",
4
+ "user_id": "user_01H5JQDV7R7ATEYZDEG0W5PRYS",
5
+ "email": "dane@workos.com",
6
+ "expires_at": "2023-07-18T02:07:19.911Z",
7
+ "code": "123456",
8
+ "created_at": "2023-07-18T02:07:19.911Z",
9
+ "updated_at": "2023-07-18T02:07:19.911Z"
10
+ }
@@ -9,7 +9,7 @@
9
9
  "organization_id": "org_01H5JQDV7R7ATEYZDEG0W5PRYS",
10
10
  "inviter_user_id": null,
11
11
  "token": "Z1uX3RbwcIl5fIGJJJCXXisdI",
12
- "accept_invitation_url": "https://myauthkit.com/invite?invitation_token=Z1uX3RbwcIl5fIGJJJCXXisdI",
12
+ "accept_invitation_url": "https://your-app.com/invite?invitation_token=Z1uX3RbwcIl5fIGJJJCXXisdI",
13
13
  "created_at": "2023-07-18T02:07:19.911Z",
14
14
  "updated_at": "2023-07-18T02:07:19.911Z"
15
15
  }
@@ -12,7 +12,7 @@
12
12
  "organization_id": "org_01H5JQDV7R7ATEYZDEG0W5PRYS",
13
13
  "inviter_user_id": null,
14
14
  "token": "Z1uX3RbwcIl5fIGJJJCXXisdI",
15
- "accept_invitation_url": "https://myauthkit.com/invite?invitation_token=Z1uX3RbwcIl5fIGJJJCXXisdI",
15
+ "accept_invitation_url": "https://your-app.com/invite?invitation_token=Z1uX3RbwcIl5fIGJJJCXXisdI",
16
16
  "created_at": "2023-07-18T02:07:19.911Z",
17
17
  "updated_at": "2023-07-18T02:07:19.911Z"
18
18
  }
@@ -0,0 +1,10 @@
1
+ {
2
+ "object": "password_reset",
3
+ "id": "password_reset_01H5JQDV7R7ATEYZDEG0W5PRYS",
4
+ "user_id": "user_01H5JQDV7R7ATEYZDEG0W5PRYS",
5
+ "email": "dane@workos.com",
6
+ "password_reset_token": "Z1uX3RbwcIl5fIGJJJCXXisdI",
7
+ "password_reset_url": "https://your-app.com/reset-password?token=Z1uX3RbwcIl5fIGJJJCXXisdI",
8
+ "expires_at": "2023-07-18T02:07:19.911Z",
9
+ "created_at": "2023-07-18T02:07:19.911Z"
10
+ }
@@ -0,0 +1,6 @@
1
+ export interface CreatePasswordResetOptions {
2
+ email: string;
3
+ }
4
+ export interface SerializedCreatePasswordResetOptions {
5
+ email: string;
6
+ }
@@ -0,0 +1,38 @@
1
+ export interface EmailVerification {
2
+ object: 'email_verification';
3
+ id: string;
4
+ userId: string;
5
+ email: string;
6
+ expiresAt: string;
7
+ code: string;
8
+ createdAt: string;
9
+ updatedAt: string;
10
+ }
11
+ export interface EmailVerificationEvent {
12
+ object: 'email_verification';
13
+ id: string;
14
+ userId: string;
15
+ email: string;
16
+ expiresAt: string;
17
+ createdAt: string;
18
+ updatedAt: string;
19
+ }
20
+ export interface EmailVerificationResponse {
21
+ object: 'email_verification';
22
+ id: string;
23
+ user_id: string;
24
+ email: string;
25
+ expires_at: string;
26
+ code: string;
27
+ created_at: string;
28
+ updated_at: string;
29
+ }
30
+ export interface EmailVerificationEventResponse {
31
+ object: 'email_verification';
32
+ id: string;
33
+ user_id: string;
34
+ email: string;
35
+ expires_at: string;
36
+ created_at: string;
37
+ updated_at: string;
38
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -11,7 +11,9 @@ export * from './authenticate-with-totp-options.interface';
11
11
  export * from './authentication-response.interface';
12
12
  export * from './create-magic-auth-options.interface';
13
13
  export * from './create-organization-membership-options.interface';
14
+ export * from './create-password-reset-options.interface';
14
15
  export * from './create-user-options.interface';
16
+ export * from './email-verification.interface';
15
17
  export * from './enroll-auth-factor.interface';
16
18
  export * from './factor.interface';
17
19
  export * from './impersonator.interface';
@@ -22,6 +24,7 @@ export * from './list-organization-memberships-options.interface';
22
24
  export * from './list-users-options.interface';
23
25
  export * from './magic-auth.interface';
24
26
  export * from './organization-membership.interface';
27
+ export * from './password-reset.interface';
25
28
  export * from './reset-password-options.interface';
26
29
  export * from './revoke-session-options.interface';
27
30
  export * from './send-invitation-options.interface';
@@ -27,7 +27,9 @@ __exportStar(require("./authenticate-with-totp-options.interface"), exports);
27
27
  __exportStar(require("./authentication-response.interface"), exports);
28
28
  __exportStar(require("./create-magic-auth-options.interface"), exports);
29
29
  __exportStar(require("./create-organization-membership-options.interface"), exports);
30
+ __exportStar(require("./create-password-reset-options.interface"), exports);
30
31
  __exportStar(require("./create-user-options.interface"), exports);
32
+ __exportStar(require("./email-verification.interface"), exports);
31
33
  __exportStar(require("./enroll-auth-factor.interface"), exports);
32
34
  __exportStar(require("./factor.interface"), exports);
33
35
  __exportStar(require("./impersonator.interface"), exports);
@@ -38,6 +40,7 @@ __exportStar(require("./list-organization-memberships-options.interface"), expor
38
40
  __exportStar(require("./list-users-options.interface"), exports);
39
41
  __exportStar(require("./magic-auth.interface"), exports);
40
42
  __exportStar(require("./organization-membership.interface"), exports);
43
+ __exportStar(require("./password-reset.interface"), exports);
41
44
  __exportStar(require("./reset-password-options.interface"), exports);
42
45
  __exportStar(require("./revoke-session-options.interface"), exports);
43
46
  __exportStar(require("./send-invitation-options.interface"), exports);
@@ -0,0 +1,36 @@
1
+ export interface PasswordReset {
2
+ object: 'password_reset';
3
+ id: string;
4
+ userId: string;
5
+ email: string;
6
+ passwordResetToken: string;
7
+ passwordResetUrl: string;
8
+ expiresAt: string;
9
+ createdAt: string;
10
+ }
11
+ export interface PasswordResetEvent {
12
+ object: 'password_reset';
13
+ id: string;
14
+ userId: string;
15
+ email: string;
16
+ expiresAt: string;
17
+ createdAt: string;
18
+ }
19
+ export interface PasswordResetResponse {
20
+ object: 'password_reset';
21
+ id: string;
22
+ user_id: string;
23
+ email: string;
24
+ password_reset_token: string;
25
+ password_reset_url: string;
26
+ expires_at: string;
27
+ created_at: string;
28
+ }
29
+ export interface PasswordResetEventResponse {
30
+ object: 'password_reset';
31
+ id: string;
32
+ user_id: string;
33
+ email: string;
34
+ expires_at: string;
35
+ created_at: string;
36
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ import { CreatePasswordResetOptions, SerializedCreatePasswordResetOptions } from '../interfaces';
2
+ export declare const serializeCreatePasswordResetOptions: (options: CreatePasswordResetOptions) => SerializedCreatePasswordResetOptions;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeCreatePasswordResetOptions = void 0;
4
+ const serializeCreatePasswordResetOptions = (options) => ({
5
+ email: options.email,
6
+ });
7
+ exports.serializeCreatePasswordResetOptions = serializeCreatePasswordResetOptions;
@@ -0,0 +1,3 @@
1
+ import { EmailVerification, EmailVerificationEvent, EmailVerificationEventResponse, EmailVerificationResponse } from '../interfaces';
2
+ export declare const deserializeEmailVerification: (emailVerification: EmailVerificationResponse) => EmailVerification;
3
+ export declare const deserializeEmailVerificationEvent: (emailVerification: EmailVerificationEventResponse) => EmailVerificationEvent;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deserializeEmailVerificationEvent = exports.deserializeEmailVerification = void 0;
4
+ const deserializeEmailVerification = (emailVerification) => ({
5
+ object: emailVerification.object,
6
+ id: emailVerification.id,
7
+ userId: emailVerification.user_id,
8
+ email: emailVerification.email,
9
+ expiresAt: emailVerification.expires_at,
10
+ code: emailVerification.code,
11
+ createdAt: emailVerification.created_at,
12
+ updatedAt: emailVerification.updated_at,
13
+ });
14
+ exports.deserializeEmailVerification = deserializeEmailVerification;
15
+ const deserializeEmailVerificationEvent = (emailVerification) => ({
16
+ object: emailVerification.object,
17
+ id: emailVerification.id,
18
+ userId: emailVerification.user_id,
19
+ email: emailVerification.email,
20
+ expiresAt: emailVerification.expires_at,
21
+ createdAt: emailVerification.created_at,
22
+ updatedAt: emailVerification.updated_at,
23
+ });
24
+ exports.deserializeEmailVerificationEvent = deserializeEmailVerificationEvent;
@@ -5,10 +5,13 @@ export * from './authenticate-with-refresh-token.options.serializer';
5
5
  export * from './authenticate-with-totp-options.serializer';
6
6
  export * from './authentication-response.serializer';
7
7
  export * from './create-magic-auth-options.serializer';
8
+ export * from './create-password-reset-options.serializer';
9
+ export * from './email-verification.serializer';
8
10
  export * from './enroll-auth-factor-options.serializer';
9
11
  export * from './factor.serializer';
10
12
  export * from './invitation.serializer';
11
13
  export * from './magic-auth.serializer';
14
+ export * from './password-reset.serializer';
12
15
  export * from './reset-password-options.serializer';
13
16
  export * from './send-password-reset-email.serializer';
14
17
  export * from './create-user-options.serializer';
@@ -21,10 +21,13 @@ __exportStar(require("./authenticate-with-refresh-token.options.serializer"), ex
21
21
  __exportStar(require("./authenticate-with-totp-options.serializer"), exports);
22
22
  __exportStar(require("./authentication-response.serializer"), exports);
23
23
  __exportStar(require("./create-magic-auth-options.serializer"), exports);
24
+ __exportStar(require("./create-password-reset-options.serializer"), exports);
25
+ __exportStar(require("./email-verification.serializer"), exports);
24
26
  __exportStar(require("./enroll-auth-factor-options.serializer"), exports);
25
27
  __exportStar(require("./factor.serializer"), exports);
26
28
  __exportStar(require("./invitation.serializer"), exports);
27
29
  __exportStar(require("./magic-auth.serializer"), exports);
30
+ __exportStar(require("./password-reset.serializer"), exports);
28
31
  __exportStar(require("./reset-password-options.serializer"), exports);
29
32
  __exportStar(require("./send-password-reset-email.serializer"), exports);
30
33
  __exportStar(require("./create-user-options.serializer"), exports);
@@ -0,0 +1,3 @@
1
+ import { PasswordReset, PasswordResetEvent, PasswordResetEventResponse, PasswordResetResponse } from '../interfaces';
2
+ export declare const deserializePasswordReset: (passwordReset: PasswordResetResponse) => PasswordReset;
3
+ export declare const deserializePasswordResetEvent: (passwordReset: PasswordResetEventResponse) => PasswordResetEvent;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deserializePasswordResetEvent = exports.deserializePasswordReset = void 0;
4
+ const deserializePasswordReset = (passwordReset) => ({
5
+ object: passwordReset.object,
6
+ id: passwordReset.id,
7
+ userId: passwordReset.user_id,
8
+ email: passwordReset.email,
9
+ passwordResetToken: passwordReset.password_reset_token,
10
+ passwordResetUrl: passwordReset.password_reset_url,
11
+ expiresAt: passwordReset.expires_at,
12
+ createdAt: passwordReset.created_at,
13
+ });
14
+ exports.deserializePasswordReset = deserializePasswordReset;
15
+ const deserializePasswordResetEvent = (passwordReset) => ({
16
+ object: passwordReset.object,
17
+ id: passwordReset.id,
18
+ userId: passwordReset.user_id,
19
+ email: passwordReset.email,
20
+ expiresAt: passwordReset.expires_at,
21
+ createdAt: passwordReset.created_at,
22
+ });
23
+ exports.deserializePasswordResetEvent = deserializePasswordResetEvent;
@@ -1,6 +1,6 @@
1
1
  import { WorkOS } from '../workos';
2
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, AuthenticateWithRefreshTokenOptions, RefreshAuthenticationResponse, MagicAuth, CreateMagicAuthOptions } from './interfaces';
3
+ import { AuthenticateWithCodeOptions, AuthenticateWithMagicAuthOptions, AuthenticateWithPasswordOptions, AuthenticateWithTotpOptions, AuthenticationResponse, ResetPasswordOptions, SendPasswordResetEmailOptions, CreateUserOptions, EnrollAuthFactorOptions, ListAuthFactorsOptions, ListUsersOptions, SendMagicAuthCodeOptions, SendVerificationEmailOptions, UpdateUserOptions, User, VerifyEmailOptions, AuthenticateWithRefreshTokenOptions, RefreshAuthenticationResponse, MagicAuth, CreateMagicAuthOptions, EmailVerification, PasswordReset, CreatePasswordResetOptions } from './interfaces';
4
4
  import { Challenge } from '../mfa/interfaces';
5
5
  import { OrganizationMembership } from './interfaces/organization-membership.interface';
6
6
  import { ListOrganizationMembershipsOptions } from './interfaces/list-organization-memberships-options.interface';
@@ -27,6 +27,7 @@ export declare class UserManagement {
27
27
  authenticateWithTotp(payload: AuthenticateWithTotpOptions): Promise<AuthenticationResponse>;
28
28
  authenticateWithEmailVerification(payload: AuthenticateWithEmailVerificationOptions): Promise<AuthenticationResponse>;
29
29
  authenticateWithOrganizationSelection(payload: AuthenticateWithOrganizationSelectionOptions): Promise<AuthenticationResponse>;
30
+ getEmailVerification(emailVerificationId: string): Promise<EmailVerification>;
30
31
  sendVerificationEmail({ userId, }: SendVerificationEmailOptions): Promise<{
31
32
  user: User;
32
33
  }>;
@@ -39,6 +40,11 @@ export declare class UserManagement {
39
40
  verifyEmail({ code, userId, }: VerifyEmailOptions): Promise<{
40
41
  user: User;
41
42
  }>;
43
+ getPasswordReset(passwordResetId: string): Promise<PasswordReset>;
44
+ createPasswordReset(options: CreatePasswordResetOptions): Promise<PasswordReset>;
45
+ /**
46
+ * @deprecated Please use `createPasswordReset` instead. This method will be removed in a future major version.
47
+ */
42
48
  sendPasswordResetEmail(payload: SendPasswordResetEmailOptions): Promise<void>;
43
49
  resetPassword(payload: ResetPasswordOptions): Promise<{
44
50
  user: User;
@@ -100,6 +100,12 @@ class UserManagement {
100
100
  return (0, serializers_1.deserializeAuthenticationResponse)(data);
101
101
  });
102
102
  }
103
+ getEmailVerification(emailVerificationId) {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ const { data } = yield this.workos.get(`/user_management/email_verification/${emailVerificationId}`);
106
+ return (0, serializers_1.deserializeEmailVerification)(data);
107
+ });
108
+ }
103
109
  sendVerificationEmail({ userId, }) {
104
110
  return __awaiter(this, void 0, void 0, function* () {
105
111
  const { data } = yield this.workos.post(`/user_management/users/${userId}/email_verification/send`, {});
@@ -134,6 +140,21 @@ class UserManagement {
134
140
  return { user: (0, serializers_1.deserializeUser)(data.user) };
135
141
  });
136
142
  }
143
+ getPasswordReset(passwordResetId) {
144
+ return __awaiter(this, void 0, void 0, function* () {
145
+ const { data } = yield this.workos.get(`/user_management/password_reset/${passwordResetId}`);
146
+ return (0, serializers_1.deserializePasswordReset)(data);
147
+ });
148
+ }
149
+ createPasswordReset(options) {
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ const { data } = yield this.workos.post('/user_management/password_reset', (0, serializers_1.serializeCreatePasswordResetOptions)(Object.assign({}, options)));
152
+ return (0, serializers_1.deserializePasswordReset)(data);
153
+ });
154
+ }
155
+ /**
156
+ * @deprecated Please use `createPasswordReset` instead. This method will be removed in a future major version.
157
+ */
137
158
  sendPasswordResetEmail(payload) {
138
159
  return __awaiter(this, void 0, void 0, function* () {
139
160
  yield this.workos.post('/user_management/password_reset/send', (0, serializers_1.serializeSendPasswordResetEmailOptions)(payload));