@workos-inc/node 7.61.0 → 7.62.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,12 @@ export declare class ParseError extends Error implements RequestException {
3
3
  readonly name = "ParseError";
4
4
  readonly status = 500;
5
5
  readonly rawBody: string;
6
+ readonly rawStatus: number;
6
7
  readonly requestID: string;
7
- constructor(message: string, rawBody: string, requestID: string);
8
+ constructor({ message, rawBody, rawStatus, requestID, }: {
9
+ message: string;
10
+ rawBody: string;
11
+ requestID: string;
12
+ rawStatus: number;
13
+ });
8
14
  }
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ParseError = void 0;
4
4
  class ParseError extends Error {
5
- constructor(message, rawBody, requestID) {
5
+ constructor({ message, rawBody, rawStatus, requestID, }) {
6
6
  super(message);
7
7
  this.name = 'ParseError';
8
8
  this.status = 500;
9
9
  this.rawBody = rawBody;
10
+ this.rawStatus = rawStatus;
10
11
  this.requestID = requestID;
11
12
  }
12
13
  }
@@ -11,6 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.FetchHttpClientResponse = exports.FetchHttpClient = void 0;
13
13
  const http_client_1 = require("./http-client");
14
+ const parse_error_1 = require("../exceptions/parse-error");
14
15
  class FetchHttpClient extends http_client_1.HttpClient {
15
16
  constructor(baseURL, options, fetchFn) {
16
17
  super(baseURL, options);
@@ -74,7 +75,7 @@ class FetchHttpClient extends http_client_1.HttpClient {
74
75
  });
75
76
  }
76
77
  fetchRequest(url, method, body, headers) {
77
- var _a, _b;
78
+ var _a, _b, _c;
78
79
  return __awaiter(this, void 0, void 0, function* () {
79
80
  // For methods which expect payloads, we should always pass a body value
80
81
  // even when it is empty. Without this, some JS runtimes (eg. Deno) will
@@ -88,12 +89,29 @@ class FetchHttpClient extends http_client_1.HttpClient {
88
89
  body: requestBody,
89
90
  });
90
91
  if (!res.ok) {
92
+ const requestID = (_c = res.headers.get('X-Request-ID')) !== null && _c !== void 0 ? _c : '';
93
+ const rawBody = yield res.text();
94
+ let responseJson;
95
+ try {
96
+ responseJson = JSON.parse(rawBody);
97
+ }
98
+ catch (error) {
99
+ if (error instanceof SyntaxError) {
100
+ throw new parse_error_1.ParseError({
101
+ message: error.message,
102
+ rawBody,
103
+ requestID,
104
+ rawStatus: res.status,
105
+ });
106
+ }
107
+ throw error;
108
+ }
91
109
  throw new http_client_1.HttpClientError({
92
110
  message: res.statusText,
93
111
  response: {
94
112
  status: res.status,
95
113
  headers: res.headers,
96
- data: yield res.json(),
114
+ data: responseJson,
97
115
  },
98
116
  });
99
117
  }
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const jest_fetch_mock_1 = __importDefault(require("jest-fetch-mock"));
16
16
  const test_utils_1 = require("../../common/utils/test-utils");
17
17
  const fetch_client_1 = require("./fetch-client");
18
+ const parse_error_1 = require("../exceptions/parse-error");
18
19
  const fetchClient = new fetch_client_1.FetchHttpClient('https://test.workos.com', {
19
20
  headers: {
20
21
  Authorization: `Bearer sk_test`,
@@ -137,4 +138,70 @@ describe('Fetch client', () => {
137
138
  expect(yield response.toJSON()).toEqual({ data: 'response' });
138
139
  }));
139
140
  });
141
+ describe('error handling', () => {
142
+ it('should throw ParseError when response body is not valid JSON on non-200 status', () => __awaiter(void 0, void 0, void 0, function* () {
143
+ // Mock a 500 response with invalid JSON (like an HTML error page)
144
+ jest_fetch_mock_1.default.mockResponseOnce('<html><body>Internal Server Error</body></html>', {
145
+ status: 500,
146
+ statusText: 'Internal Server Error',
147
+ headers: {
148
+ 'X-Request-ID': 'test-request-123',
149
+ 'Content-Type': 'text/html',
150
+ },
151
+ });
152
+ yield expect(fetchClient.get('/users', {})).rejects.toThrow(parse_error_1.ParseError);
153
+ try {
154
+ yield fetchClient.get('/users', {});
155
+ }
156
+ catch (error) {
157
+ expect(error).toBeInstanceOf(parse_error_1.ParseError);
158
+ const parseError = error;
159
+ expect(parseError.message).toContain('Unexpected token');
160
+ expect(parseError.rawBody).toBe('<html><body>Internal Server Error</body></html>');
161
+ expect(parseError.requestID).toBe('test-request-123');
162
+ expect(parseError.rawStatus).toBe(500);
163
+ }
164
+ }));
165
+ it('should throw ParseError for non-FGA endpoints with invalid JSON response', () => __awaiter(void 0, void 0, void 0, function* () {
166
+ // Test with a non-FGA endpoint to ensure the error handling works for regular requests too
167
+ jest_fetch_mock_1.default.mockResponseOnce('Not JSON content', {
168
+ status: 400,
169
+ statusText: 'Bad Request',
170
+ headers: {
171
+ 'X-Request-ID': 'bad-request-456',
172
+ 'Content-Type': 'text/plain',
173
+ },
174
+ });
175
+ yield expect(fetchClient.post('/organizations', { name: 'Test' }, {})).rejects.toThrow(parse_error_1.ParseError);
176
+ try {
177
+ yield fetchClient.post('/organizations', { name: 'Test' }, {});
178
+ }
179
+ catch (error) {
180
+ expect(error).toBeInstanceOf(parse_error_1.ParseError);
181
+ const parseError = error;
182
+ expect(parseError.rawBody).toBe('Not JSON content');
183
+ expect(parseError.requestID).toBe('bad-request-456');
184
+ expect(parseError.rawStatus).toBe(400);
185
+ }
186
+ }));
187
+ it('should throw ParseError when X-Request-ID header is missing', () => __awaiter(void 0, void 0, void 0, function* () {
188
+ jest_fetch_mock_1.default.mockResponseOnce('Invalid JSON Response', {
189
+ status: 422,
190
+ statusText: 'Unprocessable Entity',
191
+ headers: {
192
+ 'Content-Type': 'application/json',
193
+ },
194
+ });
195
+ try {
196
+ yield fetchClient.put('/users/123', { name: 'Updated' }, {});
197
+ }
198
+ catch (error) {
199
+ expect(error).toBeInstanceOf(parse_error_1.ParseError);
200
+ const parseError = error;
201
+ expect(parseError.rawBody).toBe('Invalid JSON Response');
202
+ expect(parseError.requestID).toBe(''); // Should default to empty string when header is missing
203
+ expect(parseError.rawStatus).toBe(422);
204
+ }
205
+ }));
206
+ });
140
207
  });
@@ -0,0 +1,22 @@
1
+ {
2
+ "object": "list",
3
+ "data": [
4
+ {
5
+ "object": "session",
6
+ "id": "session_01K0T5TNC755C7FGRQFJRS4QK5",
7
+ "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
8
+ "ip_address": "192.168.65.1",
9
+ "user_id": "user_01K0T5T62NBSETXQD3NVGEA2RN",
10
+ "auth_method": "oauth",
11
+ "status": "active",
12
+ "expires_at": "2026-07-22T22:59:48.743Z",
13
+ "ended_at": null,
14
+ "created_at": "2025-07-23T04:59:48.738Z",
15
+ "updated_at": "2025-07-23T04:59:48.738Z"
16
+ }
17
+ ],
18
+ "list_metadata": {
19
+ "before": null,
20
+ "after": null
21
+ }
22
+ }
@@ -25,6 +25,7 @@ export * from './invitation.interface';
25
25
  export * from './list-auth-factors-options.interface';
26
26
  export * from './list-invitations-options.interface';
27
27
  export * from './list-organization-memberships-options.interface';
28
+ export * from './list-sessions-options.interface';
28
29
  export * from './list-users-options.interface';
29
30
  export * from './magic-auth.interface';
30
31
  export * from './oauth-tokens.interface';
@@ -41,6 +41,7 @@ __exportStar(require("./invitation.interface"), exports);
41
41
  __exportStar(require("./list-auth-factors-options.interface"), exports);
42
42
  __exportStar(require("./list-invitations-options.interface"), exports);
43
43
  __exportStar(require("./list-organization-memberships-options.interface"), exports);
44
+ __exportStar(require("./list-sessions-options.interface"), exports);
44
45
  __exportStar(require("./list-users-options.interface"), exports);
45
46
  __exportStar(require("./magic-auth.interface"), exports);
46
47
  __exportStar(require("./oauth-tokens.interface"), exports);
@@ -0,0 +1,5 @@
1
+ import { PaginationOptions } from '../../common/interfaces/pagination-options.interface';
2
+ export interface ListSessionsOptions extends PaginationOptions {
3
+ }
4
+ export interface SerializedListSessionsOptions extends PaginationOptions {
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,6 @@
1
1
  import { Impersonator } from './impersonator.interface';
2
+ export type AuthMethod = 'external_auth' | 'impersonation' | 'magic_code' | 'migrated_session' | 'oauth' | 'passkey' | 'password' | 'sso' | 'unknown';
3
+ export type SessionStatus = 'active' | 'expired' | 'revoked';
2
4
  export interface Session {
3
5
  object: 'session';
4
6
  id: string;
@@ -7,6 +9,12 @@ export interface Session {
7
9
  userAgent: string | null;
8
10
  organizationId?: string;
9
11
  impersonator?: Impersonator;
12
+ authMethod: AuthMethod;
13
+ status: SessionStatus;
14
+ expiresAt: string;
15
+ endedAt: string | null;
16
+ createdAt: string;
17
+ updatedAt: string;
10
18
  }
11
19
  export interface SessionResponse {
12
20
  object: 'session';
@@ -16,4 +24,10 @@ export interface SessionResponse {
16
24
  user_agent: string | null;
17
25
  organization_id?: string;
18
26
  impersonator?: Impersonator;
27
+ auth_method: AuthMethod;
28
+ status: SessionStatus;
29
+ expires_at: string;
30
+ ended_at: string | null;
31
+ created_at: string;
32
+ updated_at: string;
19
33
  }
@@ -12,10 +12,12 @@ export * from './email-verification.serializer';
12
12
  export * from './enroll-auth-factor-options.serializer';
13
13
  export * from './factor.serializer';
14
14
  export * from './invitation.serializer';
15
+ export * from './list-sessions-options.serializer';
15
16
  export * from './magic-auth.serializer';
16
17
  export * from './password-reset.serializer';
17
18
  export * from './reset-password-options.serializer';
18
19
  export * from './send-password-reset-email.serializer';
20
+ export * from './session.serializer';
19
21
  export * from './create-user-options.serializer';
20
22
  export * from './send-magic-auth-code-options.serializer';
21
23
  export * from './update-user-options.serializer';
@@ -28,10 +28,12 @@ __exportStar(require("./email-verification.serializer"), exports);
28
28
  __exportStar(require("./enroll-auth-factor-options.serializer"), exports);
29
29
  __exportStar(require("./factor.serializer"), exports);
30
30
  __exportStar(require("./invitation.serializer"), exports);
31
+ __exportStar(require("./list-sessions-options.serializer"), exports);
31
32
  __exportStar(require("./magic-auth.serializer"), exports);
32
33
  __exportStar(require("./password-reset.serializer"), exports);
33
34
  __exportStar(require("./reset-password-options.serializer"), exports);
34
35
  __exportStar(require("./send-password-reset-email.serializer"), exports);
36
+ __exportStar(require("./session.serializer"), exports);
35
37
  __exportStar(require("./create-user-options.serializer"), exports);
36
38
  __exportStar(require("./send-magic-auth-code-options.serializer"), exports);
37
39
  __exportStar(require("./update-user-options.serializer"), exports);
@@ -0,0 +1,2 @@
1
+ import { ListSessionsOptions, SerializedListSessionsOptions } from '../interfaces/list-sessions-options.interface';
2
+ export declare const serializeListSessionsOptions: (options: ListSessionsOptions) => SerializedListSessionsOptions;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeListSessionsOptions = void 0;
4
+ const serializeListSessionsOptions = (options) => (Object.assign({}, options));
5
+ exports.serializeListSessionsOptions = serializeListSessionsOptions;
@@ -9,5 +9,11 @@ const deserializeSession = (session) => ({
9
9
  userAgent: session.user_agent,
10
10
  organizationId: session.organization_id,
11
11
  impersonator: session.impersonator,
12
+ authMethod: session.auth_method,
13
+ status: session.status,
14
+ expiresAt: session.expires_at,
15
+ endedAt: session.ended_at,
16
+ createdAt: session.created_at,
17
+ updatedAt: session.updated_at,
12
18
  });
13
19
  exports.deserializeSession = deserializeSession;
@@ -4,7 +4,7 @@ type RefreshOptions = {
4
4
  cookiePassword?: string;
5
5
  organizationId?: string;
6
6
  };
7
- export declare class Session {
7
+ export declare class CookieSession {
8
8
  private jwks;
9
9
  private userManagement;
10
10
  private ironSessionProvider;
@@ -9,11 +9,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Session = void 0;
12
+ exports.CookieSession = void 0;
13
13
  const jose_1 = require("jose");
14
14
  const oauth_exception_1 = require("../common/exceptions/oauth.exception");
15
15
  const interfaces_1 = require("./interfaces");
16
- class Session {
16
+ class CookieSession {
17
17
  constructor(userManagement, sessionData, cookiePassword) {
18
18
  if (!cookiePassword) {
19
19
  throw new Error('cookiePassword is required');
@@ -180,4 +180,4 @@ class Session {
180
180
  });
181
181
  }
182
182
  }
183
- exports.Session = Session;
183
+ exports.CookieSession = CookieSession;
@@ -64,7 +64,7 @@ describe('Session', () => {
64
64
  sessionData: 'sessionData',
65
65
  cookiePassword: 'cookiePassword',
66
66
  });
67
- expect(session).toBeInstanceOf(session_1.Session);
67
+ expect(session).toBeInstanceOf(session_1.CookieSession);
68
68
  });
69
69
  });
70
70
  describe('authenticate', () => {
@@ -3,7 +3,7 @@ import { IronSessionProvider } from '../common/iron-session/iron-session-provide
3
3
  import { AutoPaginatable } from '../common/utils/pagination';
4
4
  import { Challenge } from '../mfa/interfaces';
5
5
  import { WorkOS } from '../workos';
6
- import { AuthenticateWithCodeOptions, AuthenticateWithCodeAndVerifierOptions, AuthenticateWithMagicAuthOptions, AuthenticateWithPasswordOptions, AuthenticateWithRefreshTokenOptions, AuthenticateWithTotpOptions, AuthenticationResponse, CreateMagicAuthOptions, CreatePasswordResetOptions, CreateUserOptions, EmailVerification, EnrollAuthFactorOptions, ListAuthFactorsOptions, ListUsersOptions, MagicAuth, PasswordReset, ResetPasswordOptions, SendMagicAuthCodeOptions, SendPasswordResetEmailOptions, SendVerificationEmailOptions, UpdateUserOptions, User, VerifyEmailOptions } from './interfaces';
6
+ import { AuthenticateWithCodeOptions, AuthenticateWithCodeAndVerifierOptions, AuthenticateWithMagicAuthOptions, AuthenticateWithPasswordOptions, AuthenticateWithRefreshTokenOptions, AuthenticateWithTotpOptions, AuthenticationResponse, CreateMagicAuthOptions, CreatePasswordResetOptions, CreateUserOptions, EmailVerification, EnrollAuthFactorOptions, ListAuthFactorsOptions, ListSessionsOptions, ListUsersOptions, MagicAuth, PasswordReset, ResetPasswordOptions, SendMagicAuthCodeOptions, SendPasswordResetEmailOptions, SendVerificationEmailOptions, Session, UpdateUserOptions, User, VerifyEmailOptions } from './interfaces';
7
7
  import { AuthenticateWithEmailVerificationOptions } from './interfaces/authenticate-with-email-verification-options.interface';
8
8
  import { AuthenticateWithOrganizationSelectionOptions } from './interfaces/authenticate-with-organization-selection.interface';
9
9
  import { AuthenticateWithSessionCookieFailedResponse, AuthenticateWithSessionCookieOptions, AuthenticateWithSessionCookieSuccessResponse, SessionCookieData } from './interfaces/authenticate-with-session-cookie.interface';
@@ -20,7 +20,7 @@ import { RevokeSessionOptions } from './interfaces/revoke-session-options.interf
20
20
  import { SendInvitationOptions } from './interfaces/send-invitation-options.interface';
21
21
  import { SessionHandlerOptions } from './interfaces/session-handler-options.interface';
22
22
  import { UpdateOrganizationMembershipOptions } from './interfaces/update-organization-membership-options.interface';
23
- import { Session } from './session';
23
+ import { CookieSession } from './session';
24
24
  export declare class UserManagement {
25
25
  private readonly workos;
26
26
  private _jwks;
@@ -39,7 +39,7 @@ export declare class UserManagement {
39
39
  loadSealedSession(options: {
40
40
  sessionData: string;
41
41
  cookiePassword: string;
42
- }): Session;
42
+ }): CookieSession;
43
43
  getUser(userId: string): Promise<User>;
44
44
  getUserByExternalId(externalId: string): Promise<User>;
45
45
  listUsers(options?: ListUsersOptions): Promise<AutoPaginatable<User>>;
@@ -91,6 +91,7 @@ export declare class UserManagement {
91
91
  authenticationChallenge: Challenge;
92
92
  }>;
93
93
  listAuthFactors(options: ListAuthFactorsOptions): Promise<AutoPaginatable<Factor>>;
94
+ listSessions(userId: string, options?: ListSessionsOptions): Promise<AutoPaginatable<Session>>;
94
95
  deleteUser(userId: string): Promise<void>;
95
96
  getUserIdentities(userId: string): Promise<Identity[]>;
96
97
  getOrganizationMembership(organizationMembershipId: string): Promise<OrganizationMembership>;
@@ -83,7 +83,7 @@ class UserManagement {
83
83
  * @returns The session class.
84
84
  */
85
85
  loadSealedSession(options) {
86
- return new session_1.Session(this, options.sessionData, options.cookiePassword);
86
+ return new session_1.CookieSession(this, options.sessionData, options.cookiePassword);
87
87
  }
88
88
  getUser(userId) {
89
89
  return __awaiter(this, void 0, void 0, function* () {
@@ -434,6 +434,11 @@ class UserManagement {
434
434
  return new pagination_1.AutoPaginatable(yield (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, `/user_management/users/${userId}/auth_factors`, factor_serializer_1.deserializeFactor, restOfOptions), (params) => (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, `/user_management/users/${userId}/auth_factors`, factor_serializer_1.deserializeFactor, params), restOfOptions);
435
435
  });
436
436
  }
437
+ listSessions(userId, options) {
438
+ return __awaiter(this, void 0, void 0, function* () {
439
+ return new pagination_1.AutoPaginatable(yield (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, `/user_management/users/${userId}/sessions`, serializers_2.deserializeSession, options ? (0, serializers_2.serializeListSessionsOptions)(options) : undefined), (params) => (0, fetch_and_deserialize_1.fetchAndDeserialize)(this.workos, `/user_management/users/${userId}/sessions`, serializers_2.deserializeSession, params), options ? (0, serializers_2.serializeListSessionsOptions)(options) : undefined);
440
+ });
441
+ }
437
442
  deleteUser(userId) {
438
443
  return __awaiter(this, void 0, void 0, function* () {
439
444
  yield this.workos.delete(`/user_management/users/${userId}`);
@@ -44,6 +44,7 @@ const invitation_json_1 = __importDefault(require("./fixtures/invitation.json"))
44
44
  const list_factors_json_1 = __importDefault(require("./fixtures/list-factors.json"));
45
45
  const list_invitations_json_1 = __importDefault(require("./fixtures/list-invitations.json"));
46
46
  const list_organization_memberships_json_1 = __importDefault(require("./fixtures/list-organization-memberships.json"));
47
+ const list_sessions_json_1 = __importDefault(require("./fixtures/list-sessions.json"));
47
48
  const list_users_json_1 = __importDefault(require("./fixtures/list-users.json"));
48
49
  const magic_auth_json_1 = __importDefault(require("./fixtures/magic_auth.json"));
49
50
  const organization_membership_json_1 = __importDefault(require("./fixtures/organization-membership.json"));
@@ -1297,6 +1298,35 @@ describe('UserManagement', () => {
1297
1298
  });
1298
1299
  }));
1299
1300
  });
1301
+ describe('listSessions', () => {
1302
+ it('sends a listSessions request', () => __awaiter(void 0, void 0, void 0, function* () {
1303
+ (0, test_utils_1.fetchOnce)(list_sessions_json_1.default);
1304
+ const resp = yield workos.userManagement.listSessions(userId);
1305
+ expect((0, test_utils_1.fetchURL)()).toContain(`/user_management/users/${userId}/sessions`);
1306
+ expect(resp).toMatchObject({
1307
+ object: 'list',
1308
+ data: [
1309
+ {
1310
+ object: 'session',
1311
+ id: 'session_01K0T5TNC755C7FGRQFJRS4QK5',
1312
+ userId: 'user_01K0T5T62NBSETXQD3NVGEA2RN',
1313
+ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
1314
+ ipAddress: '192.168.65.1',
1315
+ authMethod: 'oauth',
1316
+ status: 'active',
1317
+ expiresAt: '2026-07-22T22:59:48.743Z',
1318
+ endedAt: null,
1319
+ createdAt: '2025-07-23T04:59:48.738Z',
1320
+ updatedAt: '2025-07-23T04:59:48.738Z',
1321
+ },
1322
+ ],
1323
+ listMetadata: {
1324
+ before: null,
1325
+ after: null,
1326
+ },
1327
+ });
1328
+ }));
1329
+ });
1300
1330
  describe('deleteUser', () => {
1301
1331
  it('sends a deleteUser request', () => __awaiter(void 0, void 0, void 0, function* () {
1302
1332
  (0, test_utils_1.fetchOnce)();
package/lib/workos.js CHANGED
@@ -32,7 +32,7 @@ const actions_1 = require("./actions/actions");
32
32
  const vault_1 = require("./vault/vault");
33
33
  const conflict_exception_1 = require("./common/exceptions/conflict.exception");
34
34
  const parse_error_1 = require("./common/exceptions/parse-error");
35
- const VERSION = '7.61.0';
35
+ const VERSION = '7.62.1';
36
36
  const DEFAULT_HOSTNAME = 'api.workos.com';
37
37
  const HEADER_AUTHORIZATION = 'Authorization';
38
38
  const HEADER_IDEMPOTENCY_KEY = 'Idempotency-Key';
@@ -214,8 +214,14 @@ class WorkOS {
214
214
  if (error instanceof SyntaxError) {
215
215
  const rawResponse = res.getRawResponse();
216
216
  const requestID = (_a = rawResponse.headers.get('X-Request-ID')) !== null && _a !== void 0 ? _a : '';
217
+ const rawStatus = rawResponse.status;
217
218
  const rawBody = yield rawResponse.text();
218
- throw new parse_error_1.ParseError(error.message, rawBody, requestID);
219
+ throw new parse_error_1.ParseError({
220
+ message: error.message,
221
+ rawBody,
222
+ rawStatus,
223
+ requestID,
224
+ });
219
225
  }
220
226
  });
221
227
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "7.61.0",
2
+ "version": "7.62.1",
3
3
  "name": "@workos-inc/node",
4
4
  "author": "WorkOS",
5
5
  "description": "A Node wrapper for the WorkOS API",