@workos-inc/node 6.8.0 → 7.1.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 (24) hide show
  1. package/lib/audit-logs/audit-logs.spec.js +15 -12
  2. package/lib/common/exceptions/index.d.ts +1 -0
  3. package/lib/common/exceptions/index.js +1 -0
  4. package/lib/common/interfaces/app-info.interface.d.ts +4 -0
  5. package/lib/common/interfaces/event.interface.d.ts +27 -2
  6. package/lib/common/interfaces/workos-options.interface.d.ts +2 -0
  7. package/lib/common/serializers/event.serializer.js +9 -4
  8. package/lib/directory-sync/directory-sync.spec.js +0 -5
  9. package/lib/directory-sync/interfaces/list-directories-options.interface.d.ts +0 -2
  10. package/lib/directory-sync/serializers/list-directories-options.serializer.js +0 -1
  11. package/lib/events/events.spec.js +0 -12
  12. package/lib/events/interfaces/list-events-options.interface.d.ts +2 -2
  13. package/lib/user-management/interfaces/create-user-options.interface.d.ts +4 -0
  14. package/lib/user-management/interfaces/index.d.ts +21 -5
  15. package/lib/user-management/interfaces/index.js +21 -5
  16. package/lib/user-management/interfaces/send-invitation-options.interface.d.ts +2 -0
  17. package/lib/user-management/interfaces/send-verification-email-options.interface.js +2 -0
  18. package/lib/user-management/serializers/create-user-options.serializer.js +2 -0
  19. package/lib/user-management/serializers/send-invitation-options.serializer.js +1 -0
  20. package/lib/workos.js +7 -2
  21. package/lib/workos.spec.js +16 -0
  22. package/package.json +6 -2
  23. /package/lib/{user-management/interfaces/send-verification-email-options.js → common/interfaces/app-info.interface.js} +0 -0
  24. /package/lib/user-management/interfaces/{send-verification-email-options.d.ts → send-verification-email-options.interface.d.ts} +0 -0
@@ -114,21 +114,22 @@ describe('AuditLogs', () => {
114
114
  rangeStart: new Date(),
115
115
  rangeEnd: new Date(),
116
116
  };
117
+ const timestamp = new Date().toISOString();
117
118
  const auditLogExport = {
118
119
  object: 'audit_log_export',
119
120
  id: 'audit_log_export_1234',
120
121
  state: 'pending',
121
122
  url: undefined,
122
- createdAt: new Date().toISOString(),
123
- updatedAt: new Date().toISOString(),
123
+ createdAt: timestamp,
124
+ updatedAt: timestamp,
124
125
  };
125
126
  const auditLogExportResponse = {
126
127
  object: 'audit_log_export',
127
128
  id: 'audit_log_export_1234',
128
129
  state: 'pending',
129
130
  url: undefined,
130
- created_at: new Date().toISOString(),
131
- updated_at: new Date().toISOString(),
131
+ created_at: timestamp,
132
+ updated_at: timestamp,
132
133
  };
133
134
  workosSpy.mockResolvedValueOnce((0, workos_mock_response_1.mockWorkOsResponse)(201, auditLogExportResponse));
134
135
  const workos = new workos_1.WorkOS('sk_test_Sz3IQjepeSWaI4cMS4ms4sMuU');
@@ -149,21 +150,22 @@ describe('AuditLogs', () => {
149
150
  rangeStart: new Date(),
150
151
  targets: ['user', 'team'],
151
152
  };
153
+ const timestamp = new Date().toISOString();
152
154
  const auditLogExport = {
153
155
  object: 'audit_log_export',
154
156
  id: 'audit_log_export_1234',
155
157
  state: 'pending',
156
158
  url: undefined,
157
- createdAt: new Date().toISOString(),
158
- updatedAt: new Date().toISOString(),
159
+ createdAt: timestamp,
160
+ updatedAt: timestamp,
159
161
  };
160
162
  const auditLogExportResponse = {
161
163
  object: 'audit_log_export',
162
164
  id: 'audit_log_export_1234',
163
165
  state: 'pending',
164
166
  url: undefined,
165
- created_at: new Date().toISOString(),
166
- updated_at: new Date().toISOString(),
167
+ created_at: timestamp,
168
+ updated_at: timestamp,
167
169
  };
168
170
  workosSpy.mockResolvedValueOnce((0, workos_mock_response_1.mockWorkOsResponse)(201, auditLogExportResponse));
169
171
  const workos = new workos_1.WorkOS('sk_test_Sz3IQjepeSWaI4cMS4ms4sMuU');
@@ -194,21 +196,22 @@ describe('AuditLogs', () => {
194
196
  describe('when the api responds with a 201', () => {
195
197
  it('returns `audit_log_export`', () => __awaiter(void 0, void 0, void 0, function* () {
196
198
  const workosSpy = jest.spyOn(workos_1.WorkOS.prototype, 'get');
199
+ const timestamp = new Date().toISOString();
197
200
  const auditLogExport = {
198
201
  object: 'audit_log_export',
199
202
  id: 'audit_log_export_1234',
200
203
  state: 'pending',
201
204
  url: undefined,
202
- createdAt: new Date().toISOString(),
203
- updatedAt: new Date().toISOString(),
205
+ createdAt: timestamp,
206
+ updatedAt: timestamp,
204
207
  };
205
208
  const auditLogExportResponse = {
206
209
  object: 'audit_log_export',
207
210
  id: 'audit_log_export_1234',
208
211
  state: 'pending',
209
212
  url: undefined,
210
- created_at: new Date().toISOString(),
211
- updated_at: new Date().toISOString(),
213
+ created_at: timestamp,
214
+ updated_at: timestamp,
212
215
  };
213
216
  workosSpy.mockResolvedValueOnce((0, workos_mock_response_1.mockWorkOsResponse)(201, auditLogExportResponse));
214
217
  const workos = new workos_1.WorkOS('sk_test_Sz3IQjepeSWaI4cMS4ms4sMuU');
@@ -1,4 +1,5 @@
1
1
  export * from './generic-server.exception';
2
+ export * from './bad-request.exception';
2
3
  export * from './no-api-key-provided.exception';
3
4
  export * from './not-found.exception';
4
5
  export * from './oauth.exception';
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./generic-server.exception"), exports);
18
+ __exportStar(require("./bad-request.exception"), exports);
18
19
  __exportStar(require("./no-api-key-provided.exception"), exports);
19
20
  __exportStar(require("./not-found.exception"), exports);
20
21
  __exportStar(require("./oauth.exception"), exports);
@@ -0,0 +1,4 @@
1
+ export interface AppInfo {
2
+ name: string;
3
+ version: string;
4
+ }
@@ -1,4 +1,5 @@
1
1
  import { DirectoryUser, DirectoryUserResponse, DirectoryGroup, DirectoryGroupResponse, EventDirectory, EventDirectoryResponse } from '../../directory-sync/interfaces';
2
+ import { Organization, OrganizationResponse } from '../../organizations/interfaces';
2
3
  import { Connection, ConnectionResponse } from '../../sso/interfaces';
3
4
  import { Session, SessionResponse, User, UserResponse } from '../../user-management/interfaces';
4
5
  import { OrganizationMembership, OrganizationMembershipResponse } from '../../user-management/interfaces/organization-membership.interface';
@@ -186,6 +187,30 @@ export interface OrganizationMembershipRemovedResponse extends EventResponseBase
186
187
  event: 'organization_membership.removed';
187
188
  data: OrganizationMembershipResponse;
188
189
  }
190
+ export interface OrganizationCreatedEvent extends EventBase {
191
+ event: 'organization.created';
192
+ data: Organization;
193
+ }
194
+ export interface OrganizationCreatedResponse extends EventResponseBase {
195
+ event: 'organization.created';
196
+ data: OrganizationResponse;
197
+ }
198
+ export interface OrganizationUpdatedEvent extends EventBase {
199
+ event: 'organization.updated';
200
+ data: Organization;
201
+ }
202
+ export interface OrganizationUpdatedResponse extends EventResponseBase {
203
+ event: 'organization.updated';
204
+ data: OrganizationResponse;
205
+ }
206
+ export interface OrganizationDeletedEvent extends EventBase {
207
+ event: 'organization.deleted';
208
+ data: Organization;
209
+ }
210
+ export interface OrganizationDeletedResponse extends EventResponseBase {
211
+ event: 'organization.deleted';
212
+ data: OrganizationResponse;
213
+ }
189
214
  export interface SessionCreatedEvent extends EventBase {
190
215
  event: 'session.created';
191
216
  data: Session;
@@ -194,7 +219,7 @@ export interface SessionCreatedEventResponse extends EventResponseBase {
194
219
  event: 'session.created';
195
220
  data: SessionResponse;
196
221
  }
197
- export type Event = ConnectionActivatedEvent | ConnectionDeactivatedEvent | ConnectionDeletedEvent | DsyncActivatedEvent | DsyncDeactivatedEvent | DsyncDeletedEvent | DsyncGroupCreatedEvent | DsyncGroupUpdatedEvent | DsyncGroupDeletedEvent | DsyncGroupUserAddedEvent | DsyncGroupUserRemovedEvent | DsyncUserCreatedEvent | DsyncUserUpdatedEvent | DsyncUserDeletedEvent | UserCreatedEvent | UserUpdatedEvent | UserDeletedEvent | OrganizationMembershipAdded | OrganizationMembershipUpdated | OrganizationMembershipRemoved | SessionCreatedEvent;
198
- export type EventResponse = ConnectionActivatedEventResponse | ConnectionDeactivatedEventResponse | ConnectionDeletedEventResponse | DsyncActivatedEventResponse | DsyncDeactivatedEventResponse | DsyncDeletedEventResponse | DsyncGroupCreatedEventResponse | DsyncGroupUpdatedEventResponse | DsyncGroupDeletedEventResponse | DsyncGroupUserAddedEventResponse | DsyncGroupUserRemovedEventResponse | DsyncUserCreatedEventResponse | DsyncUserUpdatedEventResponse | DsyncUserDeletedEventResponse | UserCreatedEventResponse | UserUpdatedEventResponse | UserDeletedEventResponse | OrganizationMembershipAddedResponse | OrganizationMembershipUpdatedResponse | OrganizationMembershipRemovedResponse | SessionCreatedEventResponse;
222
+ export type Event = ConnectionActivatedEvent | ConnectionDeactivatedEvent | ConnectionDeletedEvent | DsyncActivatedEvent | DsyncDeactivatedEvent | DsyncDeletedEvent | DsyncGroupCreatedEvent | DsyncGroupUpdatedEvent | DsyncGroupDeletedEvent | DsyncGroupUserAddedEvent | DsyncGroupUserRemovedEvent | DsyncUserCreatedEvent | DsyncUserUpdatedEvent | DsyncUserDeletedEvent | UserCreatedEvent | UserUpdatedEvent | UserDeletedEvent | OrganizationMembershipAdded | OrganizationMembershipUpdated | OrganizationMembershipRemoved | SessionCreatedEvent | OrganizationCreatedEvent | OrganizationUpdatedEvent | OrganizationDeletedEvent;
223
+ export type EventResponse = ConnectionActivatedEventResponse | ConnectionDeactivatedEventResponse | ConnectionDeletedEventResponse | DsyncActivatedEventResponse | DsyncDeactivatedEventResponse | DsyncDeletedEventResponse | DsyncGroupCreatedEventResponse | DsyncGroupUpdatedEventResponse | DsyncGroupDeletedEventResponse | DsyncGroupUserAddedEventResponse | DsyncGroupUserRemovedEventResponse | DsyncUserCreatedEventResponse | DsyncUserUpdatedEventResponse | DsyncUserDeletedEventResponse | UserCreatedEventResponse | UserUpdatedEventResponse | UserDeletedEventResponse | OrganizationMembershipAddedResponse | OrganizationMembershipUpdatedResponse | OrganizationMembershipRemovedResponse | SessionCreatedEventResponse | OrganizationCreatedResponse | OrganizationUpdatedResponse | OrganizationDeletedResponse;
199
224
  export type EventName = Event['event'];
200
225
  export {};
@@ -1,6 +1,8 @@
1
+ import { AppInfo } from './app-info.interface';
1
2
  export interface WorkOSOptions {
2
3
  apiHostname?: string;
3
4
  https?: boolean;
4
5
  port?: number;
5
6
  config?: RequestInit;
7
+ appInfo?: AppInfo;
6
8
  }
@@ -2,8 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deserializeEvent = void 0;
4
4
  const serializers_1 = require("../../directory-sync/serializers");
5
- const serializers_2 = require("../../sso/serializers");
6
- const serializers_3 = require("../../user-management/serializers");
5
+ const serializers_2 = require("../../organizations/serializers");
6
+ const serializers_3 = require("../../sso/serializers");
7
+ const serializers_4 = require("../../user-management/serializers");
7
8
  const organization_membership_serializer_1 = require("../../user-management/serializers/organization-membership.serializer");
8
9
  const session_serializer_1 = require("../../user-management/serializers/session.serializer");
9
10
  const deserializeEvent = (event) => {
@@ -15,7 +16,7 @@ const deserializeEvent = (event) => {
15
16
  case 'connection.activated':
16
17
  case 'connection.deactivated':
17
18
  case 'connection.deleted':
18
- return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_2.deserializeConnection)(event.data) });
19
+ return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_3.deserializeConnection)(event.data) });
19
20
  case 'dsync.activated':
20
21
  case 'dsync.deactivated':
21
22
  return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_1.deserializeEventDirectory)(event.data) });
@@ -41,13 +42,17 @@ const deserializeEvent = (event) => {
41
42
  case 'user.created':
42
43
  case 'user.updated':
43
44
  case 'user.deleted':
44
- return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_3.deserializeUser)(event.data) });
45
+ return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_4.deserializeUser)(event.data) });
45
46
  case 'organization_membership.added':
46
47
  case 'organization_membership.updated':
47
48
  case 'organization_membership.removed':
48
49
  return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, organization_membership_serializer_1.deserializeOrganizationMembership)(event.data) });
49
50
  case 'session.created':
50
51
  return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, session_serializer_1.deserializeSession)(event.data) });
52
+ case 'organization.created':
53
+ case 'organization.updated':
54
+ case 'organization.deleted':
55
+ return Object.assign(Object.assign({}, eventBase), { event: event.event, data: (0, serializers_2.deserializeOrganization)(event.data) });
51
56
  }
52
57
  };
53
58
  exports.deserializeEvent = deserializeEvent;
@@ -128,11 +128,9 @@ describe('DirectorySync', () => {
128
128
  };
129
129
  (0, test_utils_1.fetchOnce)(directoryListResponse);
130
130
  const subject = yield workos.directorySync.listDirectories({
131
- domain: 'google.com',
132
131
  organizationId: 'org_1234',
133
132
  });
134
133
  expect((0, test_utils_1.fetchSearchParams)()).toMatchObject({
135
- domain: 'google.com',
136
134
  organization_id: 'org_1234',
137
135
  });
138
136
  expect(subject).toMatchObject({
@@ -143,9 +141,6 @@ describe('DirectorySync', () => {
143
141
  listMetadata: {},
144
142
  },
145
143
  apiCall: expect.any(Function),
146
- options: {
147
- domain: 'google.com',
148
- },
149
144
  });
150
145
  }));
151
146
  });
@@ -1,11 +1,9 @@
1
1
  import { PaginationOptions } from '../../common/interfaces/pagination-options.interface';
2
2
  export interface ListDirectoriesOptions extends PaginationOptions {
3
- domain?: string;
4
3
  organizationId?: string;
5
4
  search?: string;
6
5
  }
7
6
  export interface SerializedListDirectoriesOptions extends PaginationOptions {
8
- domain?: string;
9
7
  organization_id?: string;
10
8
  search?: string;
11
9
  }
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.serializeListDirectoriesOptions = void 0;
4
4
  const serializeListDirectoriesOptions = (options) => ({
5
- domain: options.domain,
6
5
  organization_id: options.organizationId,
7
6
  search: options.search,
8
7
  limit: options.limit,
@@ -83,18 +83,6 @@ describe('Event', () => {
83
83
  });
84
84
  }));
85
85
  });
86
- it(`requests Events`, () => __awaiter(void 0, void 0, void 0, function* () {
87
- (0, test_utils_1.fetchOnce)(eventsListResponse);
88
- const subject = yield workos.events.listEvents({
89
- rangeStart: '2020-05-05',
90
- rangeEnd: '2020-05-07',
91
- });
92
- expect(subject).toEqual({
93
- object: 'list',
94
- data: [event],
95
- listMetadata: {},
96
- });
97
- }));
98
86
  it(`requests Events with a valid event name`, () => __awaiter(void 0, void 0, void 0, function* () {
99
87
  (0, test_utils_1.fetchOnce)(eventsListResponse);
100
88
  const list = yield workos.events.listEvents({
@@ -1,13 +1,13 @@
1
1
  import { EventName } from '../../common/interfaces';
2
2
  export interface ListEventOptions {
3
- events?: EventName[];
3
+ events: EventName[];
4
4
  rangeStart?: string;
5
5
  rangeEnd?: string;
6
6
  limit?: number;
7
7
  after?: string;
8
8
  }
9
9
  export interface SerializedListEventOptions {
10
- events?: EventName[];
10
+ events: EventName[];
11
11
  range_start?: string;
12
12
  range_end?: string;
13
13
  limit?: number;
@@ -1,6 +1,8 @@
1
1
  export interface CreateUserOptions {
2
2
  email: string;
3
3
  password?: string;
4
+ passwordHash?: string;
5
+ passwordHashType?: 'bcrypt' | 'firebase-scrypt' | 'ssha';
4
6
  firstName?: string;
5
7
  lastName?: string;
6
8
  emailVerified?: boolean;
@@ -8,6 +10,8 @@ export interface CreateUserOptions {
8
10
  export interface SerializedCreateUserOptions {
9
11
  email: string;
10
12
  password?: string;
13
+ password_hash?: string;
14
+ password_hash_type?: 'bcrypt' | 'firebase-scrypt' | 'ssha';
11
15
  first_name?: string;
12
16
  last_name?: string;
13
17
  email_verified?: boolean;
@@ -1,19 +1,35 @@
1
1
  export * from './authenticate-with-magic-auth-options.interface';
2
2
  export * from './authenticate-with-password-options.interface';
3
3
  export * from './authenticate-with-code-options.interface';
4
+ export * from './authenticate-with-email-verification-options.interface';
5
+ export * from './authenticate-with-magic-auth-options.interface';
6
+ export * from './authenticate-with-options-base.interface';
7
+ export * from './authenticate-with-organization-selection.interface';
8
+ export * from './authenticate-with-password-options.interface';
4
9
  export * from './authenticate-with-refresh-token-options.interface';
5
10
  export * from './authenticate-with-totp-options.interface';
6
11
  export * from './authentication-response.interface';
7
- export * from './reset-password-options.interface';
8
- export * from './send-password-reset-email-options.interface';
12
+ export * from './create-organization-membership-options.interface';
9
13
  export * from './create-user-options.interface';
10
14
  export * from './enroll-auth-factor.interface';
11
- export * from './list-users-options.interface';
15
+ export * from './factor.interface';
16
+ export * from './impersonator.interface';
17
+ export * from './invitation.interface';
12
18
  export * from './list-auth-factors-options.interface';
19
+ export * from './list-invitations-options.interface';
20
+ export * from './list-organization-memberships-options.interface';
21
+ export * from './list-users-options.interface';
22
+ export * from './organization-membership.interface';
23
+ export * from './reset-password-options.interface';
24
+ export * from './revoke-session-options.interface';
25
+ export * from './role.interface';
26
+ export * from './send-invitation-options.interface';
13
27
  export * from './send-magic-auth-code-options.interface';
14
- export * from './send-verification-email-options';
28
+ export * from './send-password-reset-email-options.interface';
29
+ export * from './send-verification-email-options.interface';
30
+ export * from './session.interface';
31
+ export * from './update-organization-membership-options.interface';
15
32
  export * from './update-user-options.interface';
16
33
  export * from './update-user-password-options.interface';
17
34
  export * from './user.interface';
18
- export * from './session.interface';
19
35
  export * from './verify-email-options.interface';
@@ -17,19 +17,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./authenticate-with-magic-auth-options.interface"), exports);
18
18
  __exportStar(require("./authenticate-with-password-options.interface"), exports);
19
19
  __exportStar(require("./authenticate-with-code-options.interface"), exports);
20
+ __exportStar(require("./authenticate-with-email-verification-options.interface"), exports);
21
+ __exportStar(require("./authenticate-with-magic-auth-options.interface"), exports);
22
+ __exportStar(require("./authenticate-with-options-base.interface"), exports);
23
+ __exportStar(require("./authenticate-with-organization-selection.interface"), exports);
24
+ __exportStar(require("./authenticate-with-password-options.interface"), exports);
20
25
  __exportStar(require("./authenticate-with-refresh-token-options.interface"), exports);
21
26
  __exportStar(require("./authenticate-with-totp-options.interface"), exports);
22
27
  __exportStar(require("./authentication-response.interface"), exports);
23
- __exportStar(require("./reset-password-options.interface"), exports);
24
- __exportStar(require("./send-password-reset-email-options.interface"), exports);
28
+ __exportStar(require("./create-organization-membership-options.interface"), exports);
25
29
  __exportStar(require("./create-user-options.interface"), exports);
26
30
  __exportStar(require("./enroll-auth-factor.interface"), exports);
27
- __exportStar(require("./list-users-options.interface"), exports);
31
+ __exportStar(require("./factor.interface"), exports);
32
+ __exportStar(require("./impersonator.interface"), exports);
33
+ __exportStar(require("./invitation.interface"), exports);
28
34
  __exportStar(require("./list-auth-factors-options.interface"), exports);
35
+ __exportStar(require("./list-invitations-options.interface"), exports);
36
+ __exportStar(require("./list-organization-memberships-options.interface"), exports);
37
+ __exportStar(require("./list-users-options.interface"), exports);
38
+ __exportStar(require("./organization-membership.interface"), exports);
39
+ __exportStar(require("./reset-password-options.interface"), exports);
40
+ __exportStar(require("./revoke-session-options.interface"), exports);
41
+ __exportStar(require("./role.interface"), exports);
42
+ __exportStar(require("./send-invitation-options.interface"), exports);
29
43
  __exportStar(require("./send-magic-auth-code-options.interface"), exports);
30
- __exportStar(require("./send-verification-email-options"), exports);
44
+ __exportStar(require("./send-password-reset-email-options.interface"), exports);
45
+ __exportStar(require("./send-verification-email-options.interface"), exports);
46
+ __exportStar(require("./session.interface"), exports);
47
+ __exportStar(require("./update-organization-membership-options.interface"), exports);
31
48
  __exportStar(require("./update-user-options.interface"), exports);
32
49
  __exportStar(require("./update-user-password-options.interface"), exports);
33
50
  __exportStar(require("./user.interface"), exports);
34
- __exportStar(require("./session.interface"), exports);
35
51
  __exportStar(require("./verify-email-options.interface"), exports);
@@ -3,10 +3,12 @@ export interface SendInvitationOptions {
3
3
  organizationId?: string;
4
4
  expiresInDays?: number;
5
5
  inviterUserId?: string;
6
+ roleSlug?: string;
6
7
  }
7
8
  export interface SerializedSendInvitationOptions {
8
9
  email: string;
9
10
  organization_id?: string;
10
11
  expires_in_days?: number;
11
12
  inviter_user_id?: string;
13
+ role_slug?: string;
12
14
  }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -4,6 +4,8 @@ exports.serializeCreateUserOptions = void 0;
4
4
  const serializeCreateUserOptions = (options) => ({
5
5
  email: options.email,
6
6
  password: options.password,
7
+ password_hash: options.passwordHash,
8
+ password_hash_type: options.passwordHashType,
7
9
  first_name: options.firstName,
8
10
  last_name: options.lastName,
9
11
  email_verified: options.emailVerified,
@@ -6,5 +6,6 @@ const serializeSendInvitationOptions = (options) => ({
6
6
  organization_id: options.organizationId,
7
7
  expires_in_days: options.expiresInDays,
8
8
  inviter_user_id: options.inviterUserId,
9
+ role_slug: options.roleSlug,
9
10
  });
10
11
  exports.serializeSendInvitationOptions = serializeSendInvitationOptions;
package/lib/workos.js CHANGED
@@ -24,7 +24,7 @@ const audit_logs_1 = require("./audit-logs/audit-logs");
24
24
  const user_management_1 = require("./user-management/user-management");
25
25
  const bad_request_exception_1 = require("./common/exceptions/bad-request.exception");
26
26
  const fetch_client_1 = require("./common/utils/fetch-client");
27
- const VERSION = '6.8.0';
27
+ const VERSION = '7.1.0';
28
28
  const DEFAULT_HOSTNAME = 'api.workos.com';
29
29
  class WorkOS {
30
30
  constructor(key, options = {}) {
@@ -59,7 +59,12 @@ class WorkOS {
59
59
  if (port) {
60
60
  this.baseURL = this.baseURL + `:${port}`;
61
61
  }
62
- this.client = new fetch_client_1.FetchClient(this.baseURL, Object.assign(Object.assign({}, options.config), { headers: Object.assign(Object.assign({}, (_a = options.config) === null || _a === void 0 ? void 0 : _a.headers), { Authorization: `Bearer ${this.key}`, 'User-Agent': `workos-node/${VERSION}` }) }));
62
+ let userAgent = `workos-node/${VERSION}`;
63
+ if (options.appInfo) {
64
+ const { name, version } = options.appInfo;
65
+ userAgent += ` ${name}: ${version}`;
66
+ }
67
+ this.client = new fetch_client_1.FetchClient(this.baseURL, Object.assign(Object.assign({}, options.config), { headers: Object.assign(Object.assign({}, (_a = options.config) === null || _a === void 0 ? void 0 : _a.headers), { Authorization: `Bearer ${this.key}`, 'User-Agent': userAgent }) }));
63
68
  }
64
69
  get version() {
65
70
  return VERSION;
@@ -82,6 +82,22 @@ describe('WorkOS', () => {
82
82
  });
83
83
  }));
84
84
  });
85
+ describe('when the `appInfo` option is provided', () => {
86
+ it('applies the configuration to the fetch client user-agent', () => __awaiter(void 0, void 0, void 0, function* () {
87
+ (0, test_utils_1.fetchOnce)('{}');
88
+ const packageJson = JSON.parse(yield promises_1.default.readFile('package.json', 'utf8'));
89
+ const workos = new workos_1.WorkOS('sk_test', {
90
+ appInfo: {
91
+ name: 'fooApp',
92
+ version: '1.0.0',
93
+ },
94
+ });
95
+ yield workos.post('/somewhere', {});
96
+ expect((0, test_utils_1.fetchHeaders)()).toMatchObject({
97
+ 'User-Agent': `workos-node/${packageJson.version} fooApp: 1.0.0`,
98
+ });
99
+ }));
100
+ });
85
101
  });
86
102
  describe('version', () => {
87
103
  it('matches the version in `package.json`', () => __awaiter(void 0, void 0, void 0, function* () {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "6.8.0",
2
+ "version": "7.1.0",
3
3
  "name": "@workos-inc/node",
4
4
  "author": "WorkOS",
5
5
  "description": "A Node wrapper for the WorkOS API",
@@ -12,6 +12,10 @@
12
12
  "node": "14.21.3",
13
13
  "yarn": "1.22.19"
14
14
  },
15
+ "engines": {
16
+ "node": ">=19"
17
+ },
18
+ "engineStrict": true,
15
19
  "main": "lib/index.js",
16
20
  "typings": "lib/index.d.ts",
17
21
  "files": [
@@ -45,7 +49,7 @@
45
49
  "jest-fetch-mock": "^3.0.3",
46
50
  "prettier": "2.8.8",
47
51
  "supertest": "6.3.3",
48
- "ts-jest": "29.1.1",
52
+ "ts-jest": "29.1.2",
49
53
  "tslint": "6.1.3",
50
54
  "typescript": "5.1.6"
51
55
  }