@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.
- package/README.md +0 -4
- package/lib/common/interfaces/event.interface.d.ts +19 -3
- package/lib/common/interfaces/index.d.ts +0 -1
- package/lib/common/interfaces/index.js +0 -1
- package/lib/common/interfaces/workos-options.interface.d.ts +0 -1
- package/lib/common/serializers/event.serializer.js +4 -0
- package/lib/common/utils/fetch-client.d.ts +31 -0
- package/lib/common/utils/fetch-client.js +108 -0
- package/lib/user-management/fixtures/email_verification.json +10 -0
- package/lib/user-management/fixtures/invitation.json +1 -1
- package/lib/user-management/fixtures/list-invitations.json +1 -1
- package/lib/user-management/fixtures/password_reset.json +10 -0
- package/lib/user-management/interfaces/create-password-reset-options.interface.d.ts +6 -0
- package/lib/user-management/interfaces/email-verification.interface.d.ts +38 -0
- package/lib/user-management/interfaces/email-verification.interface.js +2 -0
- package/lib/user-management/interfaces/index.d.ts +3 -0
- package/lib/user-management/interfaces/index.js +3 -0
- package/lib/user-management/interfaces/password-reset.interface.d.ts +36 -0
- package/lib/user-management/interfaces/password-reset.interface.js +2 -0
- package/lib/user-management/serializers/create-password-reset-options.serializer.d.ts +2 -0
- package/lib/user-management/serializers/create-password-reset-options.serializer.js +7 -0
- package/lib/user-management/serializers/email-verification.serializer.d.ts +3 -0
- package/lib/user-management/serializers/email-verification.serializer.js +24 -0
- package/lib/user-management/serializers/index.d.ts +3 -0
- package/lib/user-management/serializers/index.js +3 -0
- package/lib/user-management/serializers/password-reset.serializer.d.ts +3 -0
- package/lib/user-management/serializers/password-reset.serializer.js +23 -0
- package/lib/user-management/user-management.d.ts +7 -1
- package/lib/user-management/user-management.js +21 -0
- package/lib/user-management/user-management.spec.js +57 -0
- package/lib/webhooks/webhooks.d.ts +2 -2
- package/lib/webhooks/webhooks.js +37 -11
- package/lib/webhooks/webhooks.spec.js +0 -29
- package/lib/workos.d.ts +1 -1
- package/lib/workos.js +12 -18
- package/lib/workos.spec.js +3 -56
- package/package.json +4 -3
- package/lib/common/crypto/CryptoProvider.d.ts +0 -32
- package/lib/common/crypto/CryptoProvider.js +0 -13
- package/lib/common/crypto/NodeCryptoProvider.d.ts +0 -12
- package/lib/common/crypto/NodeCryptoProvider.js +0 -73
- package/lib/common/crypto/SubtleCryptoProvider.d.ts +0 -15
- package/lib/common/crypto/SubtleCryptoProvider.js +0 -75
- package/lib/common/crypto/index.d.ts +0 -3
- package/lib/common/crypto/index.js +0 -19
- package/lib/common/interfaces/http-client.interface.d.ts +0 -20
- package/lib/common/net/fetch-client.d.ts +0 -22
- package/lib/common/net/fetch-client.js +0 -112
- package/lib/common/net/http-client.d.ts +0 -39
- package/lib/common/net/http-client.js +0 -76
- package/lib/common/net/index.d.ts +0 -5
- package/lib/common/net/index.js +0 -31
- package/lib/common/net/node-client.d.ts +0 -23
- package/lib/common/net/node-client.js +0 -155
- /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 {};
|
|
@@ -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);
|
|
@@ -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://
|
|
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://
|
|
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,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
|
+
}
|
|
@@ -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,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));
|