@workos-inc/node 8.0.0-beta.3 → 8.0.0-beta.4

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 (246) hide show
  1. package/lib/cjs/audit-logs/audit-logs.d.cts +3 -2
  2. package/lib/cjs/client/index.cjs +42 -0
  3. package/lib/cjs/client/index.cjs.map +1 -0
  4. package/lib/cjs/client/index.d.cts +3 -0
  5. package/lib/cjs/client/sso.cjs +65 -0
  6. package/lib/cjs/client/sso.cjs.map +1 -0
  7. package/lib/cjs/client/sso.d.cts +2 -0
  8. package/lib/cjs/client/user-management.cjs +110 -0
  9. package/lib/cjs/client/user-management.cjs.map +1 -0
  10. package/lib/cjs/client/user-management.d.cts +1 -0
  11. package/lib/cjs/client/utils.cjs +49 -0
  12. package/lib/cjs/client/utils.cjs.map +1 -0
  13. package/lib/cjs/client/utils.d.cts +7 -0
  14. package/lib/cjs/common/decorators/public-method.cjs +48 -0
  15. package/lib/cjs/common/decorators/public-method.cjs.map +1 -0
  16. package/lib/cjs/common/decorators/public-method.d.cts +12 -0
  17. package/lib/cjs/common/interfaces/event.interface.cjs.map +1 -1
  18. package/lib/cjs/common/interfaces/event.interface.d.cts +19 -3
  19. package/lib/cjs/common/interfaces/index.d.cts +1 -1
  20. package/lib/cjs/common/interfaces/workos-options.interface.cjs.map +1 -1
  21. package/lib/cjs/common/interfaces/workos-options.interface.d.cts +1 -0
  22. package/lib/cjs/common/net/fetch-client.cjs +67 -36
  23. package/lib/cjs/common/net/fetch-client.cjs.map +1 -1
  24. package/lib/cjs/common/net/fetch-client.d.cts +5 -2
  25. package/lib/cjs/common/serializers/event.serializer.cjs +2 -0
  26. package/lib/cjs/common/serializers/event.serializer.cjs.map +1 -1
  27. package/lib/cjs/common/utils/fetch-and-deserialize.d.cts +3 -2
  28. package/lib/cjs/common/utils/pagination.cjs +2 -4
  29. package/lib/cjs/common/utils/pagination.cjs.map +1 -1
  30. package/lib/cjs/common/utils/runtime-info.cjs +73 -0
  31. package/lib/cjs/common/utils/runtime-info.cjs.map +1 -0
  32. package/lib/cjs/common/utils/runtime-info.d.cts +22 -0
  33. package/lib/cjs/directory-sync/directory-sync.d.cts +4 -3
  34. package/lib/cjs/events/events.d.cts +3 -2
  35. package/lib/cjs/fga/fga.d.cts +4 -3
  36. package/lib/cjs/fga/utils/fetch-and-deserialize-list.d.cts +3 -2
  37. package/lib/cjs/index.cjs +2 -0
  38. package/lib/cjs/index.cjs.map +1 -1
  39. package/lib/cjs/index.client.cjs +42 -0
  40. package/lib/cjs/index.client.cjs.map +1 -0
  41. package/lib/cjs/index.client.d.cts +3 -0
  42. package/lib/cjs/index.d.cts +3 -2
  43. package/lib/cjs/index.public.cjs +52 -0
  44. package/lib/cjs/index.public.cjs.map +1 -0
  45. package/lib/cjs/index.public.d.cts +36 -0
  46. package/lib/cjs/index.worker.d.cts +3 -2
  47. package/lib/cjs/mfa/mfa.d.cts +3 -2
  48. package/lib/cjs/organization-domains/organization-domains.d.cts +3 -2
  49. package/lib/cjs/organizations/interfaces/list-organization-feature-flags-options.interface.cjs.map +1 -1
  50. package/lib/cjs/organizations/interfaces/list-organization-feature-flags-options.interface.d.cts +3 -1
  51. package/lib/cjs/organizations/organizations.cjs +15 -5
  52. package/lib/cjs/organizations/organizations.cjs.map +1 -1
  53. package/lib/cjs/organizations/organizations.d.cts +4 -3
  54. package/lib/cjs/passwordless/passwordless.d.cts +3 -2
  55. package/lib/cjs/portal/portal.d.cts +3 -2
  56. package/lib/cjs/public/index.cjs +42 -0
  57. package/lib/cjs/public/index.cjs.map +1 -0
  58. package/lib/cjs/public/index.d.cts +2 -0
  59. package/lib/cjs/public/sso.cjs +65 -0
  60. package/lib/cjs/public/sso.cjs.map +1 -0
  61. package/lib/cjs/public/sso.d.cts +1 -0
  62. package/lib/cjs/public/user-management.cjs +110 -0
  63. package/lib/cjs/public/user-management.cjs.map +1 -0
  64. package/lib/cjs/public/user-management.d.cts +1 -0
  65. package/lib/cjs/public/utils.cjs +49 -0
  66. package/lib/cjs/public/utils.cjs.map +1 -0
  67. package/lib/cjs/public/utils.d.cts +7 -0
  68. package/lib/cjs/sso/interfaces/authorization-url-options.interface.cjs.map +1 -1
  69. package/lib/cjs/sso/interfaces/authorization-url-options.interface.d.cts +19 -4
  70. package/lib/cjs/sso/interfaces/connection-type.enum.cjs +1 -0
  71. package/lib/cjs/sso/interfaces/connection-type.enum.cjs.map +1 -1
  72. package/lib/cjs/sso/interfaces/connection-type.enum.d.cts +1 -0
  73. package/lib/cjs/sso/interfaces/index.d.cts +1 -0
  74. package/lib/cjs/sso/interfaces/profile-and-token.interface.cjs.map +1 -1
  75. package/lib/cjs/sso/interfaces/profile-and-token.interface.d.cts +3 -0
  76. package/lib/cjs/sso/serializers/index.d.cts +1 -0
  77. package/lib/cjs/sso/serializers/profile-and-token.serializer.cjs +3 -1
  78. package/lib/cjs/sso/serializers/profile-and-token.serializer.cjs.map +1 -1
  79. package/lib/cjs/sso/serializers/profile-and-token.serializer.d.cts +1 -0
  80. package/lib/cjs/sso/sso.cjs +15 -37
  81. package/lib/cjs/sso/sso.cjs.map +1 -1
  82. package/lib/cjs/sso/sso.d.cts +2 -1
  83. package/lib/cjs/sso-BkBnkcTC.d.cts +22 -0
  84. package/lib/cjs/sso-Cdnhezcz.d.cts +31 -0
  85. package/lib/cjs/sso-DwRz-nPM.d.cts +31 -0
  86. package/lib/cjs/user-management/interfaces/authenticate-with-session-cookie.interface.cjs.map +1 -1
  87. package/lib/cjs/user-management/interfaces/authenticate-with-session-cookie.interface.d.cts +2 -0
  88. package/lib/cjs/user-management/interfaces/authentication-response.interface.cjs.map +1 -1
  89. package/lib/cjs/user-management/interfaces/authentication-response.interface.d.cts +1 -1
  90. package/lib/cjs/user-management/interfaces/create-organization-membership-options.interface.cjs.map +1 -1
  91. package/lib/cjs/user-management/interfaces/create-organization-membership-options.interface.d.cts +2 -0
  92. package/lib/cjs/user-management/interfaces/identity.interface.cjs.map +1 -1
  93. package/lib/cjs/user-management/interfaces/identity.interface.d.cts +2 -2
  94. package/lib/cjs/user-management/interfaces/list-sessions-options.interface.cjs.map +1 -1
  95. package/lib/cjs/user-management/interfaces/organization-membership.interface.cjs.map +1 -1
  96. package/lib/cjs/user-management/interfaces/organization-membership.interface.d.cts +2 -0
  97. package/lib/cjs/user-management/interfaces/update-organization-membership-options.interface.cjs.map +1 -1
  98. package/lib/cjs/user-management/interfaces/update-organization-membership-options.interface.d.cts +2 -0
  99. package/lib/cjs/user-management/serializers/create-organization-membership-options.serializer.cjs +2 -1
  100. package/lib/cjs/user-management/serializers/create-organization-membership-options.serializer.cjs.map +1 -1
  101. package/lib/cjs/user-management/serializers/organization-membership.serializer.cjs +2 -1
  102. package/lib/cjs/user-management/serializers/organization-membership.serializer.cjs.map +1 -1
  103. package/lib/cjs/user-management/serializers/update-organization-membership-options.serializer.cjs +2 -1
  104. package/lib/cjs/user-management/serializers/update-organization-membership-options.serializer.cjs.map +1 -1
  105. package/lib/cjs/user-management/session.cjs +4 -0
  106. package/lib/cjs/user-management/session.cjs.map +1 -1
  107. package/lib/cjs/user-management/session.d.cts +2 -1
  108. package/lib/cjs/user-management/user-management.cjs +13 -81
  109. package/lib/cjs/user-management/user-management.cjs.map +1 -1
  110. package/lib/cjs/user-management/user-management.d.cts +3 -2
  111. package/lib/cjs/user-management-B-71OTAR.d.cts +401 -0
  112. package/lib/cjs/user-management-B38wNrIN.d.cts +68 -0
  113. package/lib/cjs/user-management-Dh73wyCr.d.cts +68 -0
  114. package/lib/cjs/vault/vault.d.cts +3 -2
  115. package/lib/cjs/widgets/interfaces/get-token.cjs.map +1 -1
  116. package/lib/cjs/widgets/interfaces/get-token.d.cts +5 -5
  117. package/lib/cjs/widgets/widgets.d.cts +3 -2
  118. package/lib/cjs/workos-BEHZtxw8.d.cts +401 -0
  119. package/lib/cjs/workos-Bt8QqzZV.d.cts +395 -0
  120. package/lib/cjs/workos-C6IZ2mAH.d.cts +402 -0
  121. package/lib/cjs/workos-C7eLbzyK.d.cts +398 -0
  122. package/lib/cjs/workos-C9Z7mAdD.d.cts +399 -0
  123. package/lib/cjs/workos-CUh2oD_o.d.cts +396 -0
  124. package/lib/cjs/workos-Cuegztvg.d.cts +397 -0
  125. package/lib/cjs/workos-DiEirbod.d.cts +397 -0
  126. package/lib/cjs/workos-jsQjZHfV.d.cts +395 -0
  127. package/lib/cjs/workos.cjs +2 -1
  128. package/lib/cjs/workos.cjs.map +1 -1
  129. package/lib/cjs/workos.d.cts +3 -2
  130. package/lib/common/interfaces/event.interface.d.ts +18 -2
  131. package/lib/common/interfaces/workos-options.interface.d.ts +1 -0
  132. package/lib/common/net/fetch-client.d.ts +6 -2
  133. package/lib/common/net/fetch-client.js +67 -31
  134. package/lib/common/net/fetch-client.spec.js +71 -0
  135. package/lib/common/serializers/event.serializer.js +2 -0
  136. package/lib/common/utils/pagination.js +1 -1
  137. package/lib/esm/audit-logs/audit-logs.d.ts +3 -2
  138. package/lib/esm/client/index.d.ts +3 -0
  139. package/lib/esm/client/index.js +7 -0
  140. package/lib/esm/client/index.js.map +1 -0
  141. package/lib/esm/client/sso.d.ts +2 -0
  142. package/lib/esm/client/sso.js +42 -0
  143. package/lib/esm/client/sso.js.map +1 -0
  144. package/lib/esm/client/user-management.d.ts +1 -0
  145. package/lib/esm/client/user-management.js +85 -0
  146. package/lib/esm/client/user-management.js.map +1 -0
  147. package/lib/esm/client/utils.d.ts +7 -0
  148. package/lib/esm/client/utils.js +16 -0
  149. package/lib/esm/client/utils.js.map +1 -0
  150. package/lib/esm/common/interfaces/event.interface.d.ts +19 -3
  151. package/lib/esm/common/interfaces/index.d.ts +1 -1
  152. package/lib/esm/common/interfaces/workos-options.interface.d.ts +1 -0
  153. package/lib/esm/common/net/fetch-client.d.ts +5 -2
  154. package/lib/esm/common/net/fetch-client.js +67 -36
  155. package/lib/esm/common/net/fetch-client.js.map +1 -1
  156. package/lib/esm/common/serializers/event.serializer.js +2 -0
  157. package/lib/esm/common/serializers/event.serializer.js.map +1 -1
  158. package/lib/esm/common/utils/fetch-and-deserialize.d.ts +3 -2
  159. package/lib/esm/common/utils/pagination.js +2 -4
  160. package/lib/esm/common/utils/pagination.js.map +1 -1
  161. package/lib/esm/directory-sync/directory-sync.d.ts +4 -3
  162. package/lib/esm/events/events.d.ts +3 -2
  163. package/lib/esm/fga/fga.d.ts +4 -3
  164. package/lib/esm/fga/utils/fetch-and-deserialize-list.d.ts +3 -2
  165. package/lib/esm/index.client.d.ts +3 -0
  166. package/lib/esm/index.client.js +7 -0
  167. package/lib/esm/index.client.js.map +1 -0
  168. package/lib/esm/index.d.ts +3 -2
  169. package/lib/esm/index.js +2 -0
  170. package/lib/esm/index.js.map +1 -1
  171. package/lib/esm/index.worker.d.ts +3 -2
  172. package/lib/esm/mfa/mfa.d.ts +3 -2
  173. package/lib/esm/organization-domains/organization-domains.d.ts +3 -2
  174. package/lib/esm/organizations/interfaces/list-organization-feature-flags-options.interface.d.ts +3 -1
  175. package/lib/esm/organizations/organizations.d.ts +4 -3
  176. package/lib/esm/organizations/organizations.js +15 -5
  177. package/lib/esm/organizations/organizations.js.map +1 -1
  178. package/lib/esm/passwordless/passwordless.d.ts +3 -2
  179. package/lib/esm/portal/portal.d.ts +3 -2
  180. package/lib/esm/sso/interfaces/authorization-url-options.interface.d.ts +19 -4
  181. package/lib/esm/sso/interfaces/connection-type.enum.d.ts +1 -0
  182. package/lib/esm/sso/interfaces/connection-type.enum.js +1 -0
  183. package/lib/esm/sso/interfaces/connection-type.enum.js.map +1 -1
  184. package/lib/esm/sso/interfaces/index.d.ts +1 -0
  185. package/lib/esm/sso/interfaces/profile-and-token.interface.d.ts +3 -0
  186. package/lib/esm/sso/serializers/index.d.ts +1 -0
  187. package/lib/esm/sso/serializers/profile-and-token.serializer.d.ts +1 -0
  188. package/lib/esm/sso/serializers/profile-and-token.serializer.js +3 -1
  189. package/lib/esm/sso/serializers/profile-and-token.serializer.js.map +1 -1
  190. package/lib/esm/sso/sso.d.ts +2 -1
  191. package/lib/esm/sso/sso.js +5 -37
  192. package/lib/esm/sso/sso.js.map +1 -1
  193. package/lib/esm/sso-nFEQz_Js.d.ts +22 -0
  194. package/lib/esm/user-management/interfaces/authenticate-with-session-cookie.interface.d.ts +2 -0
  195. package/lib/esm/user-management/interfaces/authenticate-with-session-cookie.interface.js.map +1 -1
  196. package/lib/esm/user-management/interfaces/authentication-response.interface.d.ts +1 -1
  197. package/lib/esm/user-management/interfaces/create-organization-membership-options.interface.d.ts +2 -0
  198. package/lib/esm/user-management/interfaces/identity.interface.d.ts +2 -2
  199. package/lib/esm/user-management/interfaces/organization-membership.interface.d.ts +2 -0
  200. package/lib/esm/user-management/interfaces/update-organization-membership-options.interface.d.ts +2 -0
  201. package/lib/esm/user-management/serializers/create-organization-membership-options.serializer.js +2 -1
  202. package/lib/esm/user-management/serializers/create-organization-membership-options.serializer.js.map +1 -1
  203. package/lib/esm/user-management/serializers/organization-membership.serializer.js +2 -1
  204. package/lib/esm/user-management/serializers/organization-membership.serializer.js.map +1 -1
  205. package/lib/esm/user-management/serializers/update-organization-membership-options.serializer.js +2 -1
  206. package/lib/esm/user-management/serializers/update-organization-membership-options.serializer.js.map +1 -1
  207. package/lib/esm/user-management/session.d.ts +2 -1
  208. package/lib/esm/user-management/session.js +4 -0
  209. package/lib/esm/user-management/session.js.map +1 -1
  210. package/lib/esm/user-management/user-management.d.ts +3 -2
  211. package/lib/esm/user-management/user-management.js +13 -81
  212. package/lib/esm/user-management/user-management.js.map +1 -1
  213. package/lib/esm/user-management-B38wNrIN.d.ts +68 -0
  214. package/lib/esm/vault/vault.d.ts +3 -2
  215. package/lib/esm/widgets/interfaces/get-token.d.ts +5 -5
  216. package/lib/esm/widgets/interfaces/get-token.js.map +1 -1
  217. package/lib/esm/widgets/widgets.d.ts +3 -2
  218. package/lib/esm/{workos-DGRMJ65Z.d.ts → workos-EX3jNkYH.d.ts} +5 -7
  219. package/lib/esm/workos.d.ts +3 -2
  220. package/lib/esm/workos.js +2 -1
  221. package/lib/esm/workos.js.map +1 -1
  222. package/lib/index.js +1 -1
  223. package/lib/organizations/interfaces/list-organization-feature-flags-options.interface.d.ts +2 -1
  224. package/lib/organizations/organizations.d.ts +1 -2
  225. package/lib/organizations/organizations.js +2 -4
  226. package/lib/organizations/organizations.spec.js +46 -1
  227. package/lib/sso/interfaces/authorization-url-options.interface.d.ts +2 -0
  228. package/lib/sso/interfaces/profile-and-token.interface.d.ts +3 -0
  229. package/lib/sso/serializers/profile-and-token.serializer.js +2 -0
  230. package/lib/sso/sso.d.ts +1 -1
  231. package/lib/sso/sso.js +14 -10
  232. package/lib/sso/sso.spec.js +131 -0
  233. package/lib/user-management/interfaces/authenticate-with-session-cookie.interface.d.ts +2 -0
  234. package/lib/user-management/interfaces/create-organization-membership-options.interface.d.ts +2 -0
  235. package/lib/user-management/interfaces/organization-membership.interface.d.ts +2 -0
  236. package/lib/user-management/interfaces/update-organization-membership-options.interface.d.ts +2 -0
  237. package/lib/user-management/serializers/create-organization-membership-options.serializer.js +1 -0
  238. package/lib/user-management/serializers/organization-membership.serializer.js +1 -11
  239. package/lib/user-management/serializers/update-organization-membership-options.serializer.js +1 -0
  240. package/lib/user-management/session.js +4 -2
  241. package/lib/user-management/session.spec.js +4 -2
  242. package/lib/user-management/user-management.js +2 -1
  243. package/lib/user-management/user-management.spec.js +33 -0
  244. package/lib/widgets/interfaces/get-token.d.ts +5 -5
  245. package/lib/workos.js +2 -2
  246. package/package.json +10 -5
@@ -1,15 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deserializeOrganizationMembership = void 0;
4
- const deserializeOrganizationMembership = (organizationMembership) => ({
5
- object: organizationMembership.object,
6
- id: organizationMembership.id,
7
- userId: organizationMembership.user_id,
8
- organizationId: organizationMembership.organization_id,
9
- organizationName: organizationMembership.organization_name,
10
- status: organizationMembership.status,
11
- createdAt: organizationMembership.created_at,
12
- updatedAt: organizationMembership.updated_at,
13
- role: organizationMembership.role,
14
- });
4
+ const deserializeOrganizationMembership = (organizationMembership) => (Object.assign({ object: organizationMembership.object, id: organizationMembership.id, userId: organizationMembership.user_id, organizationId: organizationMembership.organization_id, organizationName: organizationMembership.organization_name, status: organizationMembership.status, createdAt: organizationMembership.created_at, updatedAt: organizationMembership.updated_at, role: organizationMembership.role }, (organizationMembership.roles && { roles: organizationMembership.roles })));
15
5
  exports.deserializeOrganizationMembership = deserializeOrganizationMembership;
@@ -3,5 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.serializeUpdateOrganizationMembershipOptions = void 0;
4
4
  const serializeUpdateOrganizationMembershipOptions = (options) => ({
5
5
  role_slug: options.roleSlug,
6
+ role_slugs: options.roleSlugs,
6
7
  });
7
8
  exports.serializeUpdateOrganizationMembershipOptions = serializeUpdateOrganizationMembershipOptions;
@@ -61,12 +61,13 @@ class CookieSession {
61
61
  reason: interfaces_1.AuthenticateWithSessionCookieFailureReason.INVALID_JWT,
62
62
  };
63
63
  }
64
- const { sid: sessionId, org_id: organizationId, role, permissions, entitlements, feature_flags: featureFlags, } = (0, jose_1.decodeJwt)(session.accessToken);
64
+ const { sid: sessionId, org_id: organizationId, role, roles, permissions, entitlements, feature_flags: featureFlags, } = (0, jose_1.decodeJwt)(session.accessToken);
65
65
  return {
66
66
  authenticated: true,
67
67
  sessionId,
68
68
  organizationId,
69
69
  role,
70
+ roles,
70
71
  permissions,
71
72
  entitlements,
72
73
  featureFlags,
@@ -114,7 +115,7 @@ class CookieSession {
114
115
  this.cookiePassword = options.cookiePassword;
115
116
  }
116
117
  this.sessionData = authenticationResponse.sealedSession;
117
- const { sid: sessionId, org_id: organizationId, role, permissions, entitlements, feature_flags: featureFlags, } = (0, jose_1.decodeJwt)(authenticationResponse.accessToken);
118
+ const { sid: sessionId, org_id: organizationId, role, roles, permissions, entitlements, feature_flags: featureFlags, } = (0, jose_1.decodeJwt)(authenticationResponse.accessToken);
118
119
  // TODO: Returning `session` here means there's some duplicated data.
119
120
  // Slim down the return type in a future major version.
120
121
  return {
@@ -124,6 +125,7 @@ class CookieSession {
124
125
  sessionId,
125
126
  organizationId,
126
127
  role,
128
+ roles,
127
129
  permissions,
128
130
  entitlements,
129
131
  featureFlags,
@@ -119,7 +119,7 @@ describe('Session', () => {
119
119
  .spyOn(jose, 'jwtVerify')
120
120
  .mockResolvedValue({});
121
121
  const cookiePassword = 'alongcookiesecretmadefortestingsessions';
122
- const accessToken = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdXRoZW50aWNhdGVkIjp0cnVlLCJpbXBlcnNvbmF0b3IiOnsiZW1haWwiOiJhZG1pbkBleGFtcGxlLmNvbSIsInJlYXNvbiI6InRlc3QifSwic2lkIjoic2Vzc2lvbl8xMjMiLCJvcmdfaWQiOiJvcmdfMTIzIiwicm9sZSI6Im1lbWJlciIsInBlcm1pc3Npb25zIjpbInBvc3RzOmNyZWF0ZSIsInBvc3RzOmRlbGV0ZSJdLCJlbnRpdGxlbWVudHMiOlsiYXVkaXQtbG9ncyJdLCJmZWF0dXJlX2ZsYWdzIjpbImRhcmstbW9kZSIsImJldGEtZmVhdHVyZXMiXSwidXNlciI6eyJvYmplY3QiOiJ1c2VyIiwiaWQiOiJ1c2VyXzAxSDVKUURWN1I3QVRFWVpERUcwVzVQUllTIiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIn19.YVNjR8S2xGn2jAoLuEcBQNJ1_xY3OzjRE1-BK0zjfQE';
122
+ const accessToken = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdXRoZW50aWNhdGVkIjp0cnVlLCJpbXBlcnNvbmF0b3IiOnsiZW1haWwiOiJhZG1pbkBleGFtcGxlLmNvbSIsInJlYXNvbiI6InRlc3QifSwic2lkIjoic2Vzc2lvbl8xMjMiLCJvcmdfaWQiOiJvcmdfMTIzIiwicm9sZSI6Im1lbWJlciIsInJvbGVzIjpbIm1lbWJlciIsImFkbWluIl0sInBlcm1pc3Npb25zIjpbInBvc3RzOmNyZWF0ZSIsInBvc3RzOmRlbGV0ZSJdLCJlbnRpdGxlbWVudHMiOlsiYXVkaXQtbG9ncyJdLCJmZWF0dXJlX2ZsYWdzIjpbImRhcmstbW9kZSIsImJldGEtZmVhdHVyZXMiXSwidXNlciI6eyJvYmplY3QiOiJ1c2VyIiwiaWQiOiJ1c2VyXzAxSDVKUURWN1I3QVRFWVpERUcwVzVQUllTIiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIn19.TNUzJYn6lzLWFFsiWiKEgIshyUs-bKJQf1VxwNr1cGI';
123
123
  const sessionData = yield (0, iron_session_1.sealData)({
124
124
  accessToken,
125
125
  refreshToken: 'def456',
@@ -146,6 +146,7 @@ describe('Session', () => {
146
146
  sessionId: 'session_123',
147
147
  organizationId: 'org_123',
148
148
  role: 'member',
149
+ roles: ['member', 'admin'],
149
150
  permissions: ['posts:create', 'posts:delete'],
150
151
  entitlements: ['audit-logs'],
151
152
  featureFlags: ['dark-mode', 'beta-features'],
@@ -173,7 +174,7 @@ describe('Session', () => {
173
174
  }));
174
175
  describe('when the session data is valid', () => {
175
176
  it('returns a successful response with a sealed and unsealed session', () => __awaiter(void 0, void 0, void 0, function* () {
176
- const accessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJzdWIiOiAiMTIzNDU2Nzg5MCIsCiAgIm5hbWUiOiAiSm9obiBEb2UiLAogICJpYXQiOiAxNTE2MjM5MDIyLAogICJzaWQiOiAic2Vzc2lvbl8xMjMiLAogICJvcmdfaWQiOiAib3JnXzEyMyIsCiAgInJvbGUiOiAibWVtYmVyIiwKICAicGVybWlzc2lvbnMiOiBbInBvc3RzOmNyZWF0ZSIsICJwb3N0czpkZWxldGUiXQp9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
177
+ const accessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJzaWQiOiJzZXNzaW9uXzEyMyIsIm9yZ19pZCI6Im9yZ18xMjMiLCJyb2xlIjoibWVtYmVyIiwicm9sZXMiOlsibWVtYmVyIiwiYWRtaW4iXSwicGVybWlzc2lvbnMiOlsicG9zdHM6Y3JlYXRlIiwicG9zdHM6ZGVsZXRlIl19.N5zveP149QhRR5zNvzGJPiCX098uXaN8VM1_lwsMg4A';
177
178
  const refreshToken = 'def456';
178
179
  (0, test_utils_1.fetchOnce)({
179
180
  user: user_json_1.default,
@@ -216,6 +217,7 @@ describe('Session', () => {
216
217
  entitlements: undefined,
217
218
  permissions: ['posts:create', 'posts:delete'],
218
219
  role: 'member',
220
+ roles: ['member', 'admin'],
219
221
  sessionId: 'session_123',
220
222
  user: expect.objectContaining({
221
223
  email: 'test01@example.com',
@@ -217,12 +217,13 @@ class UserManagement {
217
217
  reason: authenticate_with_session_cookie_interface_1.AuthenticateWithSessionCookieFailureReason.INVALID_JWT,
218
218
  };
219
219
  }
220
- const { sid: sessionId, org_id: organizationId, role, permissions, entitlements, feature_flags: featureFlags, } = (0, jose_1.decodeJwt)(session.accessToken);
220
+ const { sid: sessionId, org_id: organizationId, role, roles, permissions, entitlements, feature_flags: featureFlags, } = (0, jose_1.decodeJwt)(session.accessToken);
221
221
  return {
222
222
  authenticated: true,
223
223
  sessionId,
224
224
  organizationId,
225
225
  role,
226
+ roles,
226
227
  user: session.user,
227
228
  permissions,
228
229
  entitlements,
@@ -889,6 +889,39 @@ describe('UserManagement', () => {
889
889
  accessToken,
890
890
  });
891
891
  }));
892
+ it('returns the JWT claims when provided a valid JWT with multiple roles', () => __awaiter(void 0, void 0, void 0, function* () {
893
+ jest
894
+ .spyOn(jose, 'jwtVerify')
895
+ .mockResolvedValue({});
896
+ const cookiePassword = 'alongcookiesecretmadefortestingsessions';
897
+ const accessToken = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdXRoZW50aWNhdGVkIjp0cnVlLCJpbXBlcnNvbmF0b3IiOnsiZW1haWwiOiJhZG1pbkBleGFtcGxlLmNvbSIsInJlYXNvbiI6InRlc3QifSwic2lkIjoic2Vzc2lvbl8xMjMiLCJvcmdfaWQiOiJvcmdfMTIzIiwicm9sZSI6ImFkbWluIiwicm9sZXMiOlsiYWRtaW4iLCJtZW1iZXIiXSwicGVybWlzc2lvbnMiOlsicG9zdHM6Y3JlYXRlIiwicG9zdHM6ZGVsZXRlIl0sImVudGl0bGVtZW50cyI6WyJhdWRpdC1sb2dzIl0sImZlYXR1cmVfZmxhZ3MiOlsiZGFyay1tb2RlIiwiYmV0YS1mZWF0dXJlcyJdLCJ1c2VyIjp7Im9iamVjdCI6InVzZXIiLCJpZCI6InVzZXJfMDFINUpRRFY3UjdBVEVZWkRFRzBXNVBSWVMiLCJlbWFpbCI6InRlc3RAZXhhbXBsZS5jb20ifX0.hsMptIB7PmbF5pxxtgTtCdUyOAhA11ZIAP-JY5zU5fE';
898
+ const sessionData = yield (0, iron_session_1.sealData)({
899
+ accessToken,
900
+ refreshToken: 'def456',
901
+ user: {
902
+ object: 'user',
903
+ id: 'user_01H5JQDV7R7ATEYZDEG0W5PRYS',
904
+ email: 'test@example.com',
905
+ },
906
+ }, { password: cookiePassword });
907
+ yield expect(workos.userManagement.authenticateWithSessionCookie({
908
+ sessionData,
909
+ cookiePassword,
910
+ })).resolves.toEqual({
911
+ authenticated: true,
912
+ sessionId: 'session_123',
913
+ organizationId: 'org_123',
914
+ role: 'admin',
915
+ roles: ['admin', 'member'],
916
+ permissions: ['posts:create', 'posts:delete'],
917
+ entitlements: ['audit-logs'],
918
+ featureFlags: ['dark-mode', 'beta-features'],
919
+ user: expect.objectContaining({
920
+ email: 'test@example.com',
921
+ }),
922
+ accessToken,
923
+ });
924
+ }));
892
925
  });
893
926
  describe('refreshAndSealSessionData', () => {
894
927
  it('throws an error when the cookie password is undefined', () => __awaiter(void 0, void 0, void 0, function* () {
@@ -1,13 +1,13 @@
1
- export type WidgetScope = 'widgets:users-table:manage';
1
+ export type WidgetScope = 'widgets:users-table:manage' | 'widgets:sso:manage' | 'widgets:domain-verification:manage';
2
2
  export interface GetTokenOptions {
3
3
  organizationId: string;
4
- userId: string;
5
- scopes?: [WidgetScope];
4
+ userId?: string;
5
+ scopes?: WidgetScope[];
6
6
  }
7
7
  export interface SerializedGetTokenOptions {
8
8
  organization_id: string;
9
- user_id: string;
10
- scopes?: [WidgetScope];
9
+ user_id?: string;
10
+ scopes?: WidgetScope[];
11
11
  }
12
12
  export declare const serializeGetTokenOptions: (options: GetTokenOptions) => SerializedGetTokenOptions;
13
13
  export interface GetTokenResponse {
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.63.0';
35
+ const VERSION = '7.70.0';
36
36
  const DEFAULT_HOSTNAME = 'api.workos.com';
37
37
  const HEADER_AUTHORIZATION = 'Authorization';
38
38
  const HEADER_IDEMPOTENCY_KEY = 'Idempotency-Key';
@@ -99,7 +99,7 @@ class WorkOS {
99
99
  }
100
100
  createHttpClient(options, userAgent) {
101
101
  var _a;
102
- return new fetch_client_1.FetchHttpClient(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 }) }));
102
+ return new fetch_client_1.FetchHttpClient(this.baseURL, Object.assign(Object.assign({}, options.config), { timeout: options.timeout, headers: Object.assign(Object.assign({}, (_a = options.config) === null || _a === void 0 ? void 0 : _a.headers), { Authorization: `Bearer ${this.key}`, 'User-Agent': userAgent }) }));
103
103
  }
104
104
  createIronSessionProvider() {
105
105
  throw new Error('IronSessionProvider not implemented. Use WorkOSNode or WorkOSWorker instead.');
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "8.0.0-beta.3",
2
+ "version": "8.0.0-beta.4",
3
3
  "name": "@workos-inc/node",
4
4
  "author": "WorkOS",
5
5
  "description": "A Node wrapper for the WorkOS API",
@@ -8,10 +8,6 @@
8
8
  "keywords": [
9
9
  "workos"
10
10
  ],
11
- "volta": {
12
- "node": "19.9.0",
13
- "yarn": "1.22.19"
14
- },
15
11
  "engines": {
16
12
  "node": ">=18"
17
13
  },
@@ -107,6 +103,15 @@
107
103
  "require": "./lib/cjs/index.cjs",
108
104
  "default": "./lib/esm/index.js"
109
105
  },
106
+ "./client": {
107
+ "types": {
108
+ "require": "./lib/cjs/index.client.d.cts",
109
+ "import": "./lib/esm/index.client.d.ts"
110
+ },
111
+ "import": "./lib/esm/index.client.js",
112
+ "require": "./lib/cjs/index.client.cjs",
113
+ "default": "./lib/esm/index.client.js"
114
+ },
110
115
  "./worker": {
111
116
  "types": {
112
117
  "require": "./lib/cjs/index.worker.d.cts",