@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
@@ -25,6 +25,7 @@ __export(fetch_client_exports, {
25
25
  module.exports = __toCommonJS(fetch_client_exports);
26
26
  var import_http_client2 = require('./http-client.cjs');
27
27
  var import_parse_error = require('../exceptions/parse-error.cjs');
28
+ const DEFAULT_FETCH_TIMEOUT = 6e4;
28
29
  class FetchHttpClient extends import_http_client2.HttpClient {
29
30
  constructor(baseURL, options, fetchFn) {
30
31
  super(baseURL, options);
@@ -146,45 +147,75 @@ class FetchHttpClient extends import_http_client2.HttpClient {
146
147
  async fetchRequest(url, method, body, headers) {
147
148
  const methodHasPayload = method === "POST" || method === "PUT" || method === "PATCH";
148
149
  const requestBody = body || (methodHasPayload ? "" : void 0);
149
- const { "User-Agent": userAgent } = this.options?.headers;
150
- const res = await this._fetchFn(url, {
151
- method,
152
- headers: {
153
- Accept: "application/json, text/plain, */*",
154
- "Content-Type": "application/json",
155
- ...this.options?.headers,
156
- ...headers,
157
- "User-Agent": this.addClientToUserAgent(userAgent.toString())
158
- },
159
- body: requestBody
160
- });
161
- if (!res.ok) {
162
- const requestID = res.headers.get("X-Request-ID") ?? "";
163
- const rawBody = await res.text();
164
- let responseJson;
165
- try {
166
- responseJson = JSON.parse(rawBody);
167
- } catch (error) {
168
- if (error instanceof SyntaxError) {
169
- throw new import_parse_error.ParseError({
170
- message: error.message,
171
- rawBody,
172
- requestID,
173
- rawStatus: res.status
174
- });
175
- }
176
- throw error;
150
+ const { "User-Agent": userAgent } = this.options?.headers || {};
151
+ let abortController;
152
+ let timeoutId;
153
+ const timeout = this.options?.timeout ?? DEFAULT_FETCH_TIMEOUT;
154
+ abortController = new AbortController();
155
+ timeoutId = setTimeout(() => {
156
+ abortController?.abort();
157
+ }, timeout);
158
+ try {
159
+ const res = await this._fetchFn(url, {
160
+ method,
161
+ headers: {
162
+ Accept: "application/json, text/plain, */*",
163
+ "Content-Type": "application/json",
164
+ ...this.options?.headers,
165
+ ...headers,
166
+ "User-Agent": this.addClientToUserAgent(
167
+ (userAgent || "workos-node").toString()
168
+ )
169
+ },
170
+ body: requestBody,
171
+ signal: abortController?.signal
172
+ });
173
+ if (timeoutId) {
174
+ clearTimeout(timeoutId);
177
175
  }
178
- throw new import_http_client2.HttpClientError({
179
- message: res.statusText,
180
- response: {
181
- status: res.status,
182
- headers: res.headers,
183
- data: responseJson
176
+ if (!res.ok) {
177
+ const requestID = res.headers.get("X-Request-ID") ?? "";
178
+ const rawBody = await res.text();
179
+ let responseJson;
180
+ try {
181
+ responseJson = JSON.parse(rawBody);
182
+ } catch (error) {
183
+ if (error instanceof SyntaxError) {
184
+ throw new import_parse_error.ParseError({
185
+ message: error.message,
186
+ rawBody,
187
+ requestID,
188
+ rawStatus: res.status
189
+ });
190
+ }
191
+ throw error;
184
192
  }
185
- });
193
+ throw new import_http_client2.HttpClientError({
194
+ message: res.statusText,
195
+ response: {
196
+ status: res.status,
197
+ headers: res.headers,
198
+ data: responseJson
199
+ }
200
+ });
201
+ }
202
+ return new FetchHttpClientResponse(res);
203
+ } catch (error) {
204
+ if (timeoutId) {
205
+ clearTimeout(timeoutId);
206
+ }
207
+ if (error instanceof Error && error.name === "AbortError") {
208
+ throw new import_http_client2.HttpClientError({
209
+ message: `Request timeout after ${timeout}ms`,
210
+ response: {
211
+ status: 408,
212
+ headers: {},
213
+ data: { error: "Request timeout" }
214
+ }
215
+ });
216
+ }
217
+ throw error;
186
218
  }
187
- return new FetchHttpClientResponse(res);
188
219
  }
189
220
  async fetchRequestWithRetry(url, method, body, headers) {
190
221
  let response;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/common/net/fetch-client.ts"],"sourcesContent":["import {\n HttpClientInterface,\n HttpClientResponseInterface,\n RequestHeaders,\n RequestOptions,\n ResponseHeaders,\n} from '../interfaces/http-client.interface';\nimport { HttpClient, HttpClientError, HttpClientResponse } from './http-client';\nimport { ParseError } from '../exceptions/parse-error';\n\nexport class FetchHttpClient extends HttpClient implements HttpClientInterface {\n private readonly _fetchFn;\n\n constructor(\n readonly baseURL: string,\n readonly options?: RequestInit,\n fetchFn?: typeof fetch,\n ) {\n super(baseURL, options);\n\n // Default to global fetch if available\n if (!fetchFn) {\n if (!globalThis.fetch) {\n throw new Error(\n 'Fetch function not defined in the global scope and no replacement was provided.',\n );\n }\n fetchFn = globalThis.fetch;\n }\n\n this._fetchFn = fetchFn.bind(globalThis);\n }\n\n /** @override */\n getClientName(): string {\n return 'fetch';\n }\n\n async get(\n path: string,\n options: RequestOptions,\n ): Promise<HttpClientResponseInterface> {\n const resourceURL = HttpClient.getResourceURL(\n this.baseURL,\n path,\n options.params,\n );\n\n if (path.startsWith('/fga/')) {\n return await this.fetchRequestWithRetry(\n resourceURL,\n 'GET',\n null,\n options.headers,\n );\n } else {\n return await this.fetchRequest(resourceURL, 'GET', null, options.headers);\n }\n }\n\n async post<Entity = any>(\n path: string,\n entity: Entity,\n options: RequestOptions,\n ): Promise<HttpClientResponseInterface> {\n const resourceURL = HttpClient.getResourceURL(\n this.baseURL,\n path,\n options.params,\n );\n\n if (path.startsWith('/fga/')) {\n return await this.fetchRequestWithRetry(\n resourceURL,\n 'POST',\n HttpClient.getBody(entity),\n {\n ...HttpClient.getContentTypeHeader(entity),\n ...options.headers,\n },\n );\n } else {\n return await this.fetchRequest(\n resourceURL,\n 'POST',\n HttpClient.getBody(entity),\n {\n ...HttpClient.getContentTypeHeader(entity),\n ...options.headers,\n },\n );\n }\n }\n\n async put<Entity = any>(\n path: string,\n entity: Entity,\n options: RequestOptions,\n ): Promise<HttpClientResponseInterface> {\n const resourceURL = HttpClient.getResourceURL(\n this.baseURL,\n path,\n options.params,\n );\n\n if (path.startsWith('/fga/')) {\n return await this.fetchRequestWithRetry(\n resourceURL,\n 'PUT',\n HttpClient.getBody(entity),\n {\n ...HttpClient.getContentTypeHeader(entity),\n ...options.headers,\n },\n );\n } else {\n return await this.fetchRequest(\n resourceURL,\n 'PUT',\n HttpClient.getBody(entity),\n {\n ...HttpClient.getContentTypeHeader(entity),\n ...options.headers,\n },\n );\n }\n }\n\n async delete(\n path: string,\n options: RequestOptions,\n ): Promise<HttpClientResponseInterface> {\n const resourceURL = HttpClient.getResourceURL(\n this.baseURL,\n path,\n options.params,\n );\n\n if (path.startsWith('/fga/')) {\n return await this.fetchRequestWithRetry(\n resourceURL,\n 'DELETE',\n null,\n options.headers,\n );\n } else {\n return await this.fetchRequest(\n resourceURL,\n 'DELETE',\n null,\n options.headers,\n );\n }\n }\n\n private async fetchRequest(\n url: string,\n method: string,\n body?: any,\n headers?: RequestHeaders,\n ): Promise<HttpClientResponseInterface> {\n // For methods which expect payloads, we should always pass a body value\n // even when it is empty. Without this, some JS runtimes (eg. Deno) will\n // inject a second Content-Length header.\n const methodHasPayload =\n method === 'POST' || method === 'PUT' || method === 'PATCH';\n\n const requestBody = body || (methodHasPayload ? '' : undefined);\n\n const { 'User-Agent': userAgent } = this.options?.headers as RequestHeaders;\n\n const res = await this._fetchFn(url, {\n method,\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n ...this.options?.headers,\n ...headers,\n 'User-Agent': this.addClientToUserAgent(userAgent.toString()),\n },\n body: requestBody,\n });\n\n if (!res.ok) {\n const requestID = res.headers.get('X-Request-ID') ?? '';\n const rawBody = await res.text();\n\n let responseJson: any;\n\n try {\n responseJson = JSON.parse(rawBody);\n } catch (error) {\n if (error instanceof SyntaxError) {\n throw new ParseError({\n message: error.message,\n rawBody,\n requestID,\n rawStatus: res.status,\n });\n }\n throw error;\n }\n\n throw new HttpClientError({\n message: res.statusText,\n response: {\n status: res.status,\n headers: res.headers,\n data: responseJson,\n },\n });\n }\n return new FetchHttpClientResponse(res);\n }\n\n private async fetchRequestWithRetry(\n url: string,\n method: string,\n body?: any,\n headers?: RequestHeaders,\n ): Promise<HttpClientResponseInterface> {\n let response: HttpClientResponseInterface;\n let retryAttempts = 1;\n\n const makeRequest = async (): Promise<HttpClientResponseInterface> => {\n let requestError: any = null;\n\n try {\n response = await this.fetchRequest(url, method, body, headers);\n } catch (e) {\n requestError = e;\n }\n\n if (this.shouldRetryRequest(requestError, retryAttempts)) {\n retryAttempts++;\n await this.sleep(retryAttempts);\n return makeRequest();\n }\n\n if (requestError != null) {\n throw requestError;\n }\n\n return response;\n };\n\n return makeRequest();\n }\n\n private shouldRetryRequest(requestError: any, retryAttempt: number): boolean {\n if (retryAttempt > this.MAX_RETRY_ATTEMPTS) {\n return false;\n }\n\n if (requestError != null) {\n if (requestError instanceof TypeError) {\n return true;\n }\n\n if (\n requestError instanceof HttpClientError &&\n this.RETRY_STATUS_CODES.includes(requestError.response.status)\n ) {\n return true;\n }\n }\n\n return false;\n }\n}\n\n// tslint:disable-next-line\nexport class FetchHttpClientResponse\n extends HttpClientResponse\n implements HttpClientResponseInterface\n{\n _res: Response;\n\n constructor(res: Response) {\n super(\n res.status,\n FetchHttpClientResponse._transformHeadersToObject(res.headers),\n );\n this._res = res;\n }\n\n getRawResponse(): Response {\n return this._res;\n }\n\n toJSON(): Promise<any> | null {\n const contentType = this._res.headers.get('content-type');\n const isJsonResponse = contentType?.includes('application/json');\n\n return isJsonResponse ? this._res.json() : null;\n }\n\n static _transformHeadersToObject(headers: Headers): ResponseHeaders {\n // Fetch uses a Headers instance so this must be converted to a barebones\n // JS object to meet the HttpClient interface.\n const headersObj: ResponseHeaders = {};\n for (const entry of Object.entries(headers)) {\n if (!Array.isArray(entry) || entry.length !== 2) {\n throw new Error(\n 'Response objects produced by the fetch function given to FetchHttpClient do not have an iterable headers map. Response#headers should be an iterable object.',\n );\n }\n\n headersObj[entry[0]] = entry[1];\n }\n\n return headersObj;\n }\n}\n"],"mappings":"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","names":["import_http_client"]}
1
+ {"version":3,"sources":["../../../../src/common/net/fetch-client.ts"],"sourcesContent":["import {\n HttpClientInterface,\n HttpClientResponseInterface,\n RequestHeaders,\n RequestOptions,\n ResponseHeaders,\n} from '../interfaces/http-client.interface';\nimport { HttpClient, HttpClientError, HttpClientResponse } from './http-client';\nimport { ParseError } from '../exceptions/parse-error';\n\ninterface FetchHttpClientOptions extends RequestInit {\n timeout?: number;\n}\n\nconst DEFAULT_FETCH_TIMEOUT = 60_000; // 60 seconds\nexport class FetchHttpClient extends HttpClient implements HttpClientInterface {\n private readonly _fetchFn;\n\n constructor(\n readonly baseURL: string,\n readonly options?: FetchHttpClientOptions,\n fetchFn?: typeof fetch,\n ) {\n super(baseURL, options);\n\n // Default to global fetch if available\n if (!fetchFn) {\n if (!globalThis.fetch) {\n throw new Error(\n 'Fetch function not defined in the global scope and no replacement was provided.',\n );\n }\n fetchFn = globalThis.fetch;\n }\n\n this._fetchFn = fetchFn.bind(globalThis);\n }\n\n /** @override */\n getClientName(): string {\n return 'fetch';\n }\n\n async get(\n path: string,\n options: RequestOptions,\n ): Promise<HttpClientResponseInterface> {\n const resourceURL = HttpClient.getResourceURL(\n this.baseURL,\n path,\n options.params,\n );\n\n if (path.startsWith('/fga/')) {\n return await this.fetchRequestWithRetry(\n resourceURL,\n 'GET',\n null,\n options.headers,\n );\n } else {\n return await this.fetchRequest(resourceURL, 'GET', null, options.headers);\n }\n }\n\n async post<Entity = any>(\n path: string,\n entity: Entity,\n options: RequestOptions,\n ): Promise<HttpClientResponseInterface> {\n const resourceURL = HttpClient.getResourceURL(\n this.baseURL,\n path,\n options.params,\n );\n\n if (path.startsWith('/fga/')) {\n return await this.fetchRequestWithRetry(\n resourceURL,\n 'POST',\n HttpClient.getBody(entity),\n {\n ...HttpClient.getContentTypeHeader(entity),\n ...options.headers,\n },\n );\n } else {\n return await this.fetchRequest(\n resourceURL,\n 'POST',\n HttpClient.getBody(entity),\n {\n ...HttpClient.getContentTypeHeader(entity),\n ...options.headers,\n },\n );\n }\n }\n\n async put<Entity = any>(\n path: string,\n entity: Entity,\n options: RequestOptions,\n ): Promise<HttpClientResponseInterface> {\n const resourceURL = HttpClient.getResourceURL(\n this.baseURL,\n path,\n options.params,\n );\n\n if (path.startsWith('/fga/')) {\n return await this.fetchRequestWithRetry(\n resourceURL,\n 'PUT',\n HttpClient.getBody(entity),\n {\n ...HttpClient.getContentTypeHeader(entity),\n ...options.headers,\n },\n );\n } else {\n return await this.fetchRequest(\n resourceURL,\n 'PUT',\n HttpClient.getBody(entity),\n {\n ...HttpClient.getContentTypeHeader(entity),\n ...options.headers,\n },\n );\n }\n }\n\n async delete(\n path: string,\n options: RequestOptions,\n ): Promise<HttpClientResponseInterface> {\n const resourceURL = HttpClient.getResourceURL(\n this.baseURL,\n path,\n options.params,\n );\n\n if (path.startsWith('/fga/')) {\n return await this.fetchRequestWithRetry(\n resourceURL,\n 'DELETE',\n null,\n options.headers,\n );\n } else {\n return await this.fetchRequest(\n resourceURL,\n 'DELETE',\n null,\n options.headers,\n );\n }\n }\n\n private async fetchRequest(\n url: string,\n method: string,\n body?: any,\n headers?: RequestHeaders,\n ): Promise<HttpClientResponseInterface> {\n // For methods which expect payloads, we should always pass a body value\n // even when it is empty. Without this, some JS runtimes (eg. Deno) will\n // inject a second Content-Length header.\n const methodHasPayload =\n method === 'POST' || method === 'PUT' || method === 'PATCH';\n\n const requestBody = body || (methodHasPayload ? '' : undefined);\n\n const { 'User-Agent': userAgent } = (this.options?.headers ||\n {}) as RequestHeaders;\n\n // Create AbortController for timeout if configured\n let abortController: AbortController | undefined;\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n\n // Access timeout from the options with default of 60 seconds\n const timeout = this.options?.timeout ?? DEFAULT_FETCH_TIMEOUT; // Default 60 seconds\n abortController = new AbortController();\n timeoutId = setTimeout(() => {\n abortController?.abort();\n }, timeout);\n\n try {\n const res = await this._fetchFn(url, {\n method,\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n ...this.options?.headers,\n ...headers,\n 'User-Agent': this.addClientToUserAgent(\n (userAgent || 'workos-node').toString(),\n ),\n },\n body: requestBody,\n signal: abortController?.signal,\n });\n\n // Clear timeout if request completed successfully\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n if (!res.ok) {\n const requestID = res.headers.get('X-Request-ID') ?? '';\n const rawBody = await res.text();\n\n let responseJson: any;\n\n try {\n responseJson = JSON.parse(rawBody);\n } catch (error) {\n if (error instanceof SyntaxError) {\n throw new ParseError({\n message: error.message,\n rawBody,\n requestID,\n rawStatus: res.status,\n });\n }\n throw error;\n }\n\n throw new HttpClientError({\n message: res.statusText,\n response: {\n status: res.status,\n headers: res.headers,\n data: responseJson,\n },\n });\n }\n return new FetchHttpClientResponse(res);\n } catch (error) {\n // Clear timeout if request failed\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n // Handle timeout errors\n if (error instanceof Error && error.name === 'AbortError') {\n throw new HttpClientError({\n message: `Request timeout after ${timeout}ms`,\n response: {\n status: 408,\n headers: {},\n data: { error: 'Request timeout' },\n },\n });\n }\n\n throw error;\n }\n }\n\n private async fetchRequestWithRetry(\n url: string,\n method: string,\n body?: any,\n headers?: RequestHeaders,\n ): Promise<HttpClientResponseInterface> {\n let response: HttpClientResponseInterface;\n let retryAttempts = 1;\n\n const makeRequest = async (): Promise<HttpClientResponseInterface> => {\n let requestError: any = null;\n\n try {\n response = await this.fetchRequest(url, method, body, headers);\n } catch (e) {\n requestError = e;\n }\n\n if (this.shouldRetryRequest(requestError, retryAttempts)) {\n retryAttempts++;\n await this.sleep(retryAttempts);\n return makeRequest();\n }\n\n if (requestError != null) {\n throw requestError;\n }\n\n return response;\n };\n\n return makeRequest();\n }\n\n private shouldRetryRequest(requestError: any, retryAttempt: number): boolean {\n if (retryAttempt > this.MAX_RETRY_ATTEMPTS) {\n return false;\n }\n\n if (requestError != null) {\n if (requestError instanceof TypeError) {\n return true;\n }\n\n if (\n requestError instanceof HttpClientError &&\n this.RETRY_STATUS_CODES.includes(requestError.response.status)\n ) {\n return true;\n }\n }\n\n return false;\n }\n}\n\n// tslint:disable-next-line\nexport class FetchHttpClientResponse\n extends HttpClientResponse\n implements HttpClientResponseInterface\n{\n _res: Response;\n\n constructor(res: Response) {\n super(\n res.status,\n FetchHttpClientResponse._transformHeadersToObject(res.headers),\n );\n this._res = res;\n }\n\n getRawResponse(): Response {\n return this._res;\n }\n\n toJSON(): Promise<any> | null {\n const contentType = this._res.headers.get('content-type');\n const isJsonResponse = contentType?.includes('application/json');\n\n return isJsonResponse ? this._res.json() : null;\n }\n\n static _transformHeadersToObject(headers: Headers): ResponseHeaders {\n // Fetch uses a Headers instance so this must be converted to a barebones\n // JS object to meet the HttpClient interface.\n const headersObj: ResponseHeaders = {};\n for (const entry of Object.entries(headers)) {\n if (!Array.isArray(entry) || entry.length !== 2) {\n throw new Error(\n 'Response objects produced by the fetch function given to FetchHttpClient do not have an iterable headers map. Response#headers should be an iterable object.',\n );\n }\n\n headersObj[entry[0]] = entry[1];\n }\n\n return headersObj;\n }\n}\n"],"mappings":"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","names":["import_http_client"]}
@@ -1,11 +1,14 @@
1
1
  import { HttpClientInterface, RequestOptions, HttpClientResponseInterface, ResponseHeaders } from '../interfaces/http-client.interface.cjs';
2
2
  import { HttpClient, HttpClientResponse } from './http-client.cjs';
3
3
 
4
+ interface FetchHttpClientOptions extends RequestInit {
5
+ timeout?: number;
6
+ }
4
7
  declare class FetchHttpClient extends HttpClient implements HttpClientInterface {
5
8
  readonly baseURL: string;
6
- readonly options?: RequestInit | undefined;
9
+ readonly options?: FetchHttpClientOptions | undefined;
7
10
  private readonly _fetchFn;
8
- constructor(baseURL: string, options?: RequestInit | undefined, fetchFn?: typeof fetch);
11
+ constructor(baseURL: string, options?: FetchHttpClientOptions | undefined, fetchFn?: typeof fetch);
9
12
  /** @override */
10
13
  getClientName(): string;
11
14
  get(path: string, options: RequestOptions): Promise<HttpClientResponseInterface>;
@@ -121,7 +121,9 @@ const deserializeEvent = /* @__PURE__ */ __name((event) => {
121
121
  event: event.event,
122
122
  data: (0, import_serializers4.deserializeEmailVerificationEvent)(event.data)
123
123
  };
124
+ case "invitation.accepted":
124
125
  case "invitation.created":
126
+ case "invitation.revoked":
125
127
  return {
126
128
  ...eventBase,
127
129
  event: event.event,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/common/serializers/event.serializer.ts"],"sourcesContent":["import {\n deserializeDeletedEventDirectory,\n deserializeDirectoryUser,\n deserializeEventDirectory,\n deserializeDirectoryGroup,\n deserializeUpdatedEventDirectoryGroup,\n deserializeUpdatedEventDirectoryUser,\n} from '../../directory-sync/serializers';\nimport { deserializeOrganization } from '../../organizations/serializers';\nimport { deserializeConnection } from '../../sso/serializers';\nimport {\n deserializeAuthenticationEvent,\n deserializeEmailVerificationEvent,\n deserializeInvitationEvent,\n deserializeMagicAuthEvent,\n deserializePasswordResetEvent,\n deserializeUser,\n} from '../../user-management/serializers';\nimport { deserializeOrganizationDomain } from '../../organization-domains/serializers/organization-domain.serializer';\nimport { deserializeOrganizationMembership } from '../../user-management/serializers/organization-membership.serializer';\nimport { deserializeRoleEvent } from '../../user-management/serializers/role.serializer';\nimport { deserializeSession } from '../../user-management/serializers/session.serializer';\nimport { Event, EventBase, EventResponse } from '../interfaces';\nimport { deserializeAuthenticationRadarRiskDetectedEvent } from '../../user-management/serializers/authentication-radar-risk-event-serializer';\n\nexport const deserializeEvent = (event: EventResponse): Event => {\n const eventBase: EventBase = {\n id: event.id,\n createdAt: event.created_at,\n };\n\n switch (event.event) {\n case 'authentication.email_verification_succeeded':\n case 'authentication.magic_auth_failed':\n case 'authentication.magic_auth_succeeded':\n case 'authentication.mfa_succeeded':\n case 'authentication.oauth_failed':\n case 'authentication.oauth_succeeded':\n case 'authentication.password_failed':\n case 'authentication.password_succeeded':\n case 'authentication.sso_failed':\n case 'authentication.sso_succeeded':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeAuthenticationEvent(event.data),\n };\n case 'authentication.radar_risk_detected':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeAuthenticationRadarRiskDetectedEvent(event.data),\n };\n case 'connection.activated':\n case 'connection.deactivated':\n case 'connection.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeConnection(event.data),\n };\n case 'dsync.activated':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeEventDirectory(event.data),\n };\n case 'dsync.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeDeletedEventDirectory(event.data),\n };\n case 'dsync.group.created':\n case 'dsync.group.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeDirectoryGroup(event.data),\n };\n case 'dsync.group.updated':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeUpdatedEventDirectoryGroup(event.data),\n };\n case 'dsync.group.user_added':\n case 'dsync.group.user_removed':\n return {\n ...eventBase,\n event: event.event,\n data: {\n directoryId: event.data.directory_id,\n user: deserializeDirectoryUser(event.data.user),\n group: deserializeDirectoryGroup(event.data.group),\n },\n };\n case 'dsync.user.created':\n case 'dsync.user.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeDirectoryUser(event.data),\n };\n case 'dsync.user.updated':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeUpdatedEventDirectoryUser(event.data),\n };\n case 'email_verification.created':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeEmailVerificationEvent(event.data),\n };\n case 'invitation.created':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeInvitationEvent(event.data),\n };\n case 'magic_auth.created':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeMagicAuthEvent(event.data),\n };\n case 'password_reset.created':\n case 'password_reset.succeeded':\n return {\n ...eventBase,\n event: event.event,\n data: deserializePasswordResetEvent(event.data),\n };\n case 'user.created':\n case 'user.updated':\n case 'user.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeUser(event.data),\n };\n case 'organization_membership.created':\n case 'organization_membership.deleted':\n case 'organization_membership.updated':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeOrganizationMembership(event.data),\n };\n case 'role.created':\n case 'role.deleted':\n case 'role.updated':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeRoleEvent(event.data),\n };\n case 'session.created':\n case 'session.revoked':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeSession(event.data),\n };\n case 'organization.created':\n case 'organization.updated':\n case 'organization.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeOrganization(event.data),\n };\n case 'organization_domain.verified':\n case 'organization_domain.verification_failed':\n case 'organization_domain.created':\n case 'organization_domain.updated':\n case 'organization_domain.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeOrganizationDomain(event.data),\n };\n }\n};\n"],"mappings":"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","names":["import_serializers"]}
1
+ {"version":3,"sources":["../../../../src/common/serializers/event.serializer.ts"],"sourcesContent":["import {\n deserializeDeletedEventDirectory,\n deserializeDirectoryUser,\n deserializeEventDirectory,\n deserializeDirectoryGroup,\n deserializeUpdatedEventDirectoryGroup,\n deserializeUpdatedEventDirectoryUser,\n} from '../../directory-sync/serializers';\nimport { deserializeOrganization } from '../../organizations/serializers';\nimport { deserializeConnection } from '../../sso/serializers';\nimport {\n deserializeAuthenticationEvent,\n deserializeEmailVerificationEvent,\n deserializeInvitationEvent,\n deserializeMagicAuthEvent,\n deserializePasswordResetEvent,\n deserializeUser,\n} from '../../user-management/serializers';\nimport { deserializeOrganizationDomain } from '../../organization-domains/serializers/organization-domain.serializer';\nimport { deserializeOrganizationMembership } from '../../user-management/serializers/organization-membership.serializer';\nimport { deserializeRoleEvent } from '../../user-management/serializers/role.serializer';\nimport { deserializeSession } from '../../user-management/serializers/session.serializer';\nimport { Event, EventBase, EventResponse } from '../interfaces';\nimport { deserializeAuthenticationRadarRiskDetectedEvent } from '../../user-management/serializers/authentication-radar-risk-event-serializer';\n\nexport const deserializeEvent = (event: EventResponse): Event => {\n const eventBase: EventBase = {\n id: event.id,\n createdAt: event.created_at,\n };\n\n switch (event.event) {\n case 'authentication.email_verification_succeeded':\n case 'authentication.magic_auth_failed':\n case 'authentication.magic_auth_succeeded':\n case 'authentication.mfa_succeeded':\n case 'authentication.oauth_failed':\n case 'authentication.oauth_succeeded':\n case 'authentication.password_failed':\n case 'authentication.password_succeeded':\n case 'authentication.sso_failed':\n case 'authentication.sso_succeeded':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeAuthenticationEvent(event.data),\n };\n case 'authentication.radar_risk_detected':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeAuthenticationRadarRiskDetectedEvent(event.data),\n };\n case 'connection.activated':\n case 'connection.deactivated':\n case 'connection.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeConnection(event.data),\n };\n case 'dsync.activated':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeEventDirectory(event.data),\n };\n case 'dsync.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeDeletedEventDirectory(event.data),\n };\n case 'dsync.group.created':\n case 'dsync.group.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeDirectoryGroup(event.data),\n };\n case 'dsync.group.updated':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeUpdatedEventDirectoryGroup(event.data),\n };\n case 'dsync.group.user_added':\n case 'dsync.group.user_removed':\n return {\n ...eventBase,\n event: event.event,\n data: {\n directoryId: event.data.directory_id,\n user: deserializeDirectoryUser(event.data.user),\n group: deserializeDirectoryGroup(event.data.group),\n },\n };\n case 'dsync.user.created':\n case 'dsync.user.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeDirectoryUser(event.data),\n };\n case 'dsync.user.updated':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeUpdatedEventDirectoryUser(event.data),\n };\n case 'email_verification.created':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeEmailVerificationEvent(event.data),\n };\n case 'invitation.accepted':\n case 'invitation.created':\n case 'invitation.revoked':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeInvitationEvent(event.data),\n };\n case 'magic_auth.created':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeMagicAuthEvent(event.data),\n };\n case 'password_reset.created':\n case 'password_reset.succeeded':\n return {\n ...eventBase,\n event: event.event,\n data: deserializePasswordResetEvent(event.data),\n };\n case 'user.created':\n case 'user.updated':\n case 'user.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeUser(event.data),\n };\n case 'organization_membership.created':\n case 'organization_membership.deleted':\n case 'organization_membership.updated':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeOrganizationMembership(event.data),\n };\n case 'role.created':\n case 'role.deleted':\n case 'role.updated':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeRoleEvent(event.data),\n };\n case 'session.created':\n case 'session.revoked':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeSession(event.data),\n };\n case 'organization.created':\n case 'organization.updated':\n case 'organization.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeOrganization(event.data),\n };\n case 'organization_domain.verified':\n case 'organization_domain.verification_failed':\n case 'organization_domain.created':\n case 'organization_domain.updated':\n case 'organization_domain.deleted':\n return {\n ...eventBase,\n event: event.event,\n data: deserializeOrganizationDomain(event.data),\n };\n }\n};\n"],"mappings":"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","names":["import_serializers"]}
@@ -1,4 +1,4 @@
1
- import { W as WorkOS } from '../../workos-Da6gE2T5.cjs';
1
+ import { W as WorkOS } from '../../workos-Bt8QqzZV.cjs';
2
2
  import { PaginationOptions } from '../interfaces/pagination-options.interface.cjs';
3
3
  import { GetOptions } from '../interfaces/get-options.interface.cjs';
4
4
  import { List } from '../interfaces/list.interface.cjs';
@@ -45,6 +45,7 @@ import '../../sso/interfaces/get-profile-options.interface.cjs';
45
45
  import '../../sso/interfaces/get-profile-and-token-options.interface.cjs';
46
46
  import '../../sso/interfaces/list-connections-options.interface.cjs';
47
47
  import '../../sso/interfaces/profile-and-token.interface.cjs';
48
+ import '../../user-management/interfaces/oauth-tokens.interface.cjs';
48
49
  import '../../sso/interfaces/profile.interface.cjs';
49
50
  import '../../webhooks/webhooks.cjs';
50
51
  import '../crypto/crypto-provider.cjs';
@@ -61,6 +62,7 @@ import '../../audit-logs/interfaces/audit-log-export.interface.cjs';
61
62
  import '../../audit-logs/interfaces/create-audit-log-event-options.interface.cjs';
62
63
  import '../../audit-logs/interfaces/create-audit-log-schema-options.interface.cjs';
63
64
  import 'jose';
65
+ import '../../user-management-B38wNrIN.cjs';
64
66
  import '../../user-management/interfaces/authenticate-with-code-options.interface.cjs';
65
67
  import '../../user-management/interfaces/authenticate-with-options-base.interface.cjs';
66
68
  import '../../user-management/interfaces/authenticate-with-code-and-verifier-options.interface.cjs';
@@ -71,7 +73,6 @@ import '../../user-management/interfaces/authenticate-with-password-options.inte
71
73
  import '../../user-management/interfaces/authenticate-with-refresh-token-options.interface.cjs';
72
74
  import '../../user-management/interfaces/authenticate-with-session-cookie.interface.cjs';
73
75
  import '../../user-management/interfaces/authentication-response.interface.cjs';
74
- import '../../user-management/interfaces/oauth-tokens.interface.cjs';
75
76
  import '../../user-management/interfaces/authenticate-with-totp-options.interface.cjs';
76
77
  import '../../user-management/interfaces/authorization-url-options.interface.cjs';
77
78
  import '../../user-management/interfaces/create-magic-auth-options.interface.cjs';
@@ -47,10 +47,8 @@ class AutoPaginatable {
47
47
  });
48
48
  yield result.data;
49
49
  if (result.listMetadata.after) {
50
- await new Promise((resolve) => setTimeout(resolve, 250));
51
- yield* this.generatePages({
52
- after: result.listMetadata.after
53
- });
50
+ await new Promise((resolve) => setTimeout(resolve, 350));
51
+ yield* this.generatePages({ after: result.listMetadata.after });
54
52
  }
55
53
  }
56
54
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/common/utils/pagination.ts"],"sourcesContent":["import { List, PaginationOptions } from '../interfaces';\n\nexport class AutoPaginatable<\n ResourceType,\n ParametersType extends PaginationOptions,\n> {\n readonly object = 'list' as const;\n readonly options: ParametersType;\n\n constructor(\n protected list: List<ResourceType>,\n private apiCall: (params: PaginationOptions) => Promise<List<ResourceType>>,\n options?: ParametersType,\n ) {\n this.options = options ?? ({} as ParametersType);\n }\n\n get data(): ResourceType[] {\n return this.list.data;\n }\n\n get listMetadata() {\n return this.list.listMetadata;\n }\n\n private async *generatePages(\n params: PaginationOptions,\n ): AsyncGenerator<ResourceType[]> {\n const result = await this.apiCall({\n ...this.options,\n limit: 100,\n after: params.after,\n });\n\n yield result.data;\n\n if (result.listMetadata.after) {\n // Delay of 4rps to respect list users rate limits\n await new Promise((resolve) => setTimeout(resolve, 250));\n yield* this.generatePages({\n after: result.listMetadata.after,\n });\n }\n }\n\n /**\n * Automatically paginates over the list of results, returning the complete data set.\n * Returns the first result if `options.limit` is passed to the first request.\n */\n async autoPagination(): Promise<ResourceType[]> {\n if (this.options.limit) {\n return this.data;\n }\n\n const results: ResourceType[] = [];\n\n for await (const page of this.generatePages({\n after: this.options.after,\n })) {\n results.push(...page);\n }\n\n return results;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,gBAGX;AAAA,EAIA,YACY,MACF,SACR,SACA;AAHU;AACF;AAGR,SAAK,UAAU,WAAY,CAAC;AAAA,EAC9B;AAAA,EAfF,OAKE;AAAA;AAAA;AAAA,EACS,SAAS;AAAA,EACT;AAAA,EAUT,IAAI,OAAuB;AACzB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,OAAe,cACb,QACgC;AAChC,UAAM,SAAS,MAAM,KAAK,QAAQ;AAAA,MAChC,GAAG,KAAK;AAAA,MACR,OAAO;AAAA,MACP,OAAO,OAAO;AAAA,IAChB,CAAC;AAED,UAAM,OAAO;AAEb,QAAI,OAAO,aAAa,OAAO;AAE7B,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAG,CAAC;AACvD,aAAO,KAAK,cAAc;AAAA,QACxB,OAAO,OAAO,aAAa;AAAA,MAC7B,CAAC;AAAA,IACH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,iBAA0C;AAC9C,QAAI,KAAK,QAAQ,OAAO;AACtB,aAAO,KAAK;AAAA,IACd;AAEA,UAAM,UAA0B,CAAC;AAEjC,qBAAiB,QAAQ,KAAK,cAAc;AAAA,MAC1C,OAAO,KAAK,QAAQ;AAAA,IACtB,CAAC,GAAG;AACF,cAAQ,KAAK,GAAG,IAAI;AAAA,IACtB;AAEA,WAAO;AAAA,EACT;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/common/utils/pagination.ts"],"sourcesContent":["import { List, PaginationOptions } from '../interfaces';\n\nexport class AutoPaginatable<\n ResourceType,\n ParametersType extends PaginationOptions,\n> {\n readonly object = 'list' as const;\n readonly options: ParametersType;\n\n constructor(\n protected list: List<ResourceType>,\n private apiCall: (params: PaginationOptions) => Promise<List<ResourceType>>,\n options?: ParametersType,\n ) {\n this.options = options ?? ({} as ParametersType);\n }\n\n get data(): ResourceType[] {\n return this.list.data;\n }\n\n get listMetadata() {\n return this.list.listMetadata;\n }\n\n private async *generatePages(\n params: PaginationOptions,\n ): AsyncGenerator<ResourceType[]> {\n const result = await this.apiCall({\n ...this.options,\n limit: 100,\n after: params.after,\n });\n\n yield result.data;\n\n if (result.listMetadata.after) {\n // Delay of 4rps to respect list users rate limits\n await new Promise((resolve) => setTimeout(resolve, 350));\n yield* this.generatePages({ after: result.listMetadata.after });\n }\n }\n\n /**\n * Automatically paginates over the list of results, returning the complete data set.\n * Returns the first result if `options.limit` is passed to the first request.\n */\n async autoPagination(): Promise<ResourceType[]> {\n if (this.options.limit) {\n return this.data;\n }\n\n const results: ResourceType[] = [];\n\n for await (const page of this.generatePages({\n after: this.options.after,\n })) {\n results.push(...page);\n }\n\n return results;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,gBAGX;AAAA,EAIA,YACY,MACF,SACR,SACA;AAHU;AACF;AAGR,SAAK,UAAU,WAAY,CAAC;AAAA,EAC9B;AAAA,EAfF,OAKE;AAAA;AAAA;AAAA,EACS,SAAS;AAAA,EACT;AAAA,EAUT,IAAI,OAAuB;AACzB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,OAAe,cACb,QACgC;AAChC,UAAM,SAAS,MAAM,KAAK,QAAQ;AAAA,MAChC,GAAG,KAAK;AAAA,MACR,OAAO;AAAA,MACP,OAAO,OAAO;AAAA,IAChB,CAAC;AAED,UAAM,OAAO;AAEb,QAAI,OAAO,aAAa,OAAO;AAE7B,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAG,CAAC;AACvD,aAAO,KAAK,cAAc,EAAE,OAAO,OAAO,aAAa,MAAM,CAAC;AAAA,IAChE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,iBAA0C;AAC9C,QAAI,KAAK,QAAQ,OAAO;AACtB,aAAO,KAAK;AAAA,IACd;AAEA,UAAM,UAA0B,CAAC;AAEjC,qBAAiB,QAAQ,KAAK,cAAc;AAAA,MAC1C,OAAO,KAAK,QAAQ;AAAA,IACtB,CAAC,GAAG;AACF,cAAQ,KAAK,GAAG,IAAI;AAAA,IACtB;AAEA,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var runtime_info_exports = {};
21
+ __export(runtime_info_exports, {
22
+ getRuntimeInfo: () => getRuntimeInfo
23
+ });
24
+ module.exports = __toCommonJS(runtime_info_exports);
25
+ var import_env = require('./env.cjs');
26
+ function getRuntimeInfo() {
27
+ const name = (0, import_env.detectRuntime)();
28
+ let version;
29
+ try {
30
+ switch (name) {
31
+ case "node":
32
+ version = typeof process !== "undefined" ? process.version : void 0;
33
+ break;
34
+ case "deno":
35
+ version = globalThis.Deno?.version?.deno;
36
+ break;
37
+ case "bun":
38
+ version = globalThis.Bun?.version || extractBunVersionFromUserAgent();
39
+ break;
40
+ // These environments typically don't expose version info
41
+ case "cloudflare":
42
+ case "fastly":
43
+ case "edge-light":
44
+ case "other":
45
+ default:
46
+ version = void 0;
47
+ break;
48
+ }
49
+ } catch {
50
+ version = void 0;
51
+ }
52
+ return {
53
+ name,
54
+ version
55
+ };
56
+ }
57
+ __name(getRuntimeInfo, "getRuntimeInfo");
58
+ function extractBunVersionFromUserAgent() {
59
+ try {
60
+ if (typeof navigator !== "undefined" && navigator.userAgent) {
61
+ const match = navigator.userAgent.match(/Bun\/(\d+\.\d+\.\d+)/);
62
+ return match?.[1];
63
+ }
64
+ } catch {
65
+ }
66
+ return void 0;
67
+ }
68
+ __name(extractBunVersionFromUserAgent, "extractBunVersionFromUserAgent");
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ getRuntimeInfo
72
+ });
73
+ //# sourceMappingURL=runtime-info.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/common/utils/runtime-info.ts"],"sourcesContent":["import { detectRuntime } from './env';\n\n// Extend globalThis to include runtime-specific globals\ndeclare global {\n // eslint-disable-next-line no-var\n var Deno:\n | {\n version: {\n deno: string;\n };\n }\n | undefined;\n\n // eslint-disable-next-line no-var\n var Bun:\n | {\n version: string;\n }\n | undefined;\n}\n\nexport interface RuntimeInfo {\n name: string;\n version?: string;\n}\n\n/**\n * Get runtime information including name and version.\n * Safely extracts version information for different JavaScript runtimes.\n * @returns RuntimeInfo object with name and optional version\n */\nexport function getRuntimeInfo(): RuntimeInfo {\n const name = detectRuntime();\n let version: string | undefined;\n\n try {\n switch (name) {\n case 'node':\n // process.version includes 'v' prefix (e.g., \"v20.5.0\")\n version = typeof process !== 'undefined' ? process.version : undefined;\n break;\n\n case 'deno':\n // Deno.version.deno returns just version number (e.g., \"1.36.4\")\n version = globalThis.Deno?.version?.deno;\n break;\n\n case 'bun':\n version = globalThis.Bun?.version || extractBunVersionFromUserAgent();\n break;\n\n // These environments typically don't expose version info\n case 'cloudflare':\n case 'fastly':\n case 'edge-light':\n case 'other':\n default:\n version = undefined;\n break;\n }\n } catch {\n version = undefined;\n }\n\n return {\n name,\n version,\n };\n}\n\n/**\n * Extract Bun version from navigator.userAgent as fallback.\n * @returns Bun version string or undefined\n */\nfunction extractBunVersionFromUserAgent(): string | undefined {\n try {\n if (typeof navigator !== 'undefined' && navigator.userAgent) {\n const match = navigator.userAgent.match(/Bun\\/(\\d+\\.\\d+\\.\\d+)/);\n return match?.[1];\n }\n } catch {\n // Ignore errors\n }\n return undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA8B;AA+BvB,SAAS,iBAA8B;AAC5C,QAAM,WAAO,0BAAc;AAC3B,MAAI;AAEJ,MAAI;AACF,YAAQ,MAAM;AAAA,MACZ,KAAK;AAEH,kBAAU,OAAO,YAAY,cAAc,QAAQ,UAAU;AAC7D;AAAA,MAEF,KAAK;AAEH,kBAAU,WAAW,MAAM,SAAS;AACpC;AAAA,MAEF,KAAK;AACH,kBAAU,WAAW,KAAK,WAAW,+BAA+B;AACpE;AAAA;AAAA,MAGF,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AACE,kBAAU;AACV;AAAA,IACJ;AAAA,EACF,QAAQ;AACN,cAAU;AAAA,EACZ;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AArCgB;AA2ChB,SAAS,iCAAqD;AAC5D,MAAI;AACF,QAAI,OAAO,cAAc,eAAe,UAAU,WAAW;AAC3D,YAAM,QAAQ,UAAU,UAAU,MAAM,sBAAsB;AAC9D,aAAO,QAAQ,CAAC;AAAA,IAClB;AAAA,EACF,QAAQ;AAAA,EAER;AACA,SAAO;AACT;AAVS;","names":[]}
@@ -0,0 +1,22 @@
1
+ declare global {
2
+ var Deno: {
3
+ version: {
4
+ deno: string;
5
+ };
6
+ } | undefined;
7
+ var Bun: {
8
+ version: string;
9
+ } | undefined;
10
+ }
11
+ interface RuntimeInfo {
12
+ name: string;
13
+ version?: string;
14
+ }
15
+ /**
16
+ * Get runtime information including name and version.
17
+ * Safely extracts version information for different JavaScript runtimes.
18
+ * @returns RuntimeInfo object with name and optional version
19
+ */
20
+ declare function getRuntimeInfo(): RuntimeInfo;
21
+
22
+ export { type RuntimeInfo, getRuntimeInfo };
@@ -1,4 +1,4 @@
1
- export { D as DirectorySync } from '../workos-Da6gE2T5.cjs';
1
+ export { D as DirectorySync } from '../workos-Bt8QqzZV.cjs';
2
2
  import '../common/utils/pagination.cjs';
3
3
  import './interfaces/directory.interface.cjs';
4
4
  import './interfaces/directory-group.interface.cjs';
@@ -33,8 +33,8 @@ import '../organizations/interfaces/create-organization-options.interface.cjs';
33
33
  import '../organizations/interfaces/domain-data.interface.cjs';
34
34
  import '../organizations/interfaces/feature-flag.interface.cjs';
35
35
  import '../organizations/interfaces/list-organization-feature-flags-options.interface.cjs';
36
- import '../organizations/interfaces/list-organizations-options.interface.cjs';
37
36
  import '../common/interfaces/pagination-options.interface.cjs';
37
+ import '../organizations/interfaces/list-organizations-options.interface.cjs';
38
38
  import '../organizations/interfaces/update-organization-options.interface.cjs';
39
39
  import '../organizations/interfaces/list-organization-roles-options.interface.cjs';
40
40
  import '../organization-domains/interfaces/create-organization-domain-options.interface.cjs';
@@ -48,6 +48,7 @@ import '../sso/interfaces/get-profile-options.interface.cjs';
48
48
  import '../sso/interfaces/get-profile-and-token-options.interface.cjs';
49
49
  import '../sso/interfaces/list-connections-options.interface.cjs';
50
50
  import '../sso/interfaces/profile-and-token.interface.cjs';
51
+ import '../user-management/interfaces/oauth-tokens.interface.cjs';
51
52
  import '../sso/interfaces/profile.interface.cjs';
52
53
  import '../webhooks/webhooks.cjs';
53
54
  import '../common/crypto/crypto-provider.cjs';
@@ -64,6 +65,7 @@ import '../audit-logs/interfaces/audit-log-export.interface.cjs';
64
65
  import '../audit-logs/interfaces/create-audit-log-event-options.interface.cjs';
65
66
  import '../audit-logs/interfaces/create-audit-log-schema-options.interface.cjs';
66
67
  import 'jose';
68
+ import '../user-management-B38wNrIN.cjs';
67
69
  import '../user-management/interfaces/authenticate-with-code-options.interface.cjs';
68
70
  import '../user-management/interfaces/authenticate-with-options-base.interface.cjs';
69
71
  import '../user-management/interfaces/authenticate-with-code-and-verifier-options.interface.cjs';
@@ -74,7 +76,6 @@ import '../user-management/interfaces/authenticate-with-password-options.interfa
74
76
  import '../user-management/interfaces/authenticate-with-refresh-token-options.interface.cjs';
75
77
  import '../user-management/interfaces/authenticate-with-session-cookie.interface.cjs';
76
78
  import '../user-management/interfaces/authentication-response.interface.cjs';
77
- import '../user-management/interfaces/oauth-tokens.interface.cjs';
78
79
  import '../user-management/interfaces/authenticate-with-totp-options.interface.cjs';
79
80
  import '../user-management/interfaces/authorization-url-options.interface.cjs';
80
81
  import '../user-management/interfaces/create-magic-auth-options.interface.cjs';
@@ -1,4 +1,4 @@
1
- export { E as Events } from '../workos-Da6gE2T5.cjs';
1
+ export { E as Events } from '../workos-Bt8QqzZV.cjs';
2
2
  import './interfaces/list-events-options.interface.cjs';
3
3
  import '../common/interfaces/event.interface.cjs';
4
4
  import '../common/interfaces/list.interface.cjs';
@@ -32,6 +32,7 @@ import '../sso/interfaces/get-profile-options.interface.cjs';
32
32
  import '../sso/interfaces/get-profile-and-token-options.interface.cjs';
33
33
  import '../sso/interfaces/list-connections-options.interface.cjs';
34
34
  import '../sso/interfaces/profile-and-token.interface.cjs';
35
+ import '../user-management/interfaces/oauth-tokens.interface.cjs';
35
36
  import '../sso/interfaces/profile.interface.cjs';
36
37
  import '../webhooks/webhooks.cjs';
37
38
  import '../common/crypto/crypto-provider.cjs';
@@ -61,6 +62,7 @@ import '../audit-logs/interfaces/audit-log-export.interface.cjs';
61
62
  import '../audit-logs/interfaces/create-audit-log-event-options.interface.cjs';
62
63
  import '../audit-logs/interfaces/create-audit-log-schema-options.interface.cjs';
63
64
  import 'jose';
65
+ import '../user-management-B38wNrIN.cjs';
64
66
  import '../user-management/interfaces/authenticate-with-code-options.interface.cjs';
65
67
  import '../user-management/interfaces/authenticate-with-options-base.interface.cjs';
66
68
  import '../user-management/interfaces/authenticate-with-code-and-verifier-options.interface.cjs';
@@ -71,7 +73,6 @@ import '../user-management/interfaces/authenticate-with-password-options.interfa
71
73
  import '../user-management/interfaces/authenticate-with-refresh-token-options.interface.cjs';
72
74
  import '../user-management/interfaces/authenticate-with-session-cookie.interface.cjs';
73
75
  import '../user-management/interfaces/authentication-response.interface.cjs';
74
- import '../user-management/interfaces/oauth-tokens.interface.cjs';
75
76
  import '../user-management/interfaces/authenticate-with-totp-options.interface.cjs';
76
77
  import '../user-management/interfaces/authorization-url-options.interface.cjs';
77
78
  import '../user-management/interfaces/create-magic-auth-options.interface.cjs';
@@ -1,4 +1,4 @@
1
- export { F as FGA } from '../workos-Da6gE2T5.cjs';
1
+ export { F as FGA } from '../workos-Bt8QqzZV.cjs';
2
2
  import './interfaces/check.interface.cjs';
3
3
  import './interfaces/query.interface.cjs';
4
4
  import './interfaces/resource.interface.cjs';
@@ -36,8 +36,8 @@ import '../organizations/interfaces/create-organization-options.interface.cjs';
36
36
  import '../organizations/interfaces/domain-data.interface.cjs';
37
37
  import '../organizations/interfaces/feature-flag.interface.cjs';
38
38
  import '../organizations/interfaces/list-organization-feature-flags-options.interface.cjs';
39
- import '../organizations/interfaces/list-organizations-options.interface.cjs';
40
39
  import '../common/interfaces/pagination-options.interface.cjs';
40
+ import '../organizations/interfaces/list-organizations-options.interface.cjs';
41
41
  import '../organizations/interfaces/update-organization-options.interface.cjs';
42
42
  import '../organizations/interfaces/list-organization-roles-options.interface.cjs';
43
43
  import '../organization-domains/interfaces/create-organization-domain-options.interface.cjs';
@@ -51,6 +51,7 @@ import '../sso/interfaces/get-profile-options.interface.cjs';
51
51
  import '../sso/interfaces/get-profile-and-token-options.interface.cjs';
52
52
  import '../sso/interfaces/list-connections-options.interface.cjs';
53
53
  import '../sso/interfaces/profile-and-token.interface.cjs';
54
+ import '../user-management/interfaces/oauth-tokens.interface.cjs';
54
55
  import '../sso/interfaces/profile.interface.cjs';
55
56
  import '../webhooks/webhooks.cjs';
56
57
  import '../common/crypto/crypto-provider.cjs';
@@ -67,6 +68,7 @@ import '../audit-logs/interfaces/audit-log-export.interface.cjs';
67
68
  import '../audit-logs/interfaces/create-audit-log-event-options.interface.cjs';
68
69
  import '../audit-logs/interfaces/create-audit-log-schema-options.interface.cjs';
69
70
  import 'jose';
71
+ import '../user-management-B38wNrIN.cjs';
70
72
  import '../user-management/interfaces/authenticate-with-code-options.interface.cjs';
71
73
  import '../user-management/interfaces/authenticate-with-options-base.interface.cjs';
72
74
  import '../user-management/interfaces/authenticate-with-code-and-verifier-options.interface.cjs';
@@ -77,7 +79,6 @@ import '../user-management/interfaces/authenticate-with-password-options.interfa
77
79
  import '../user-management/interfaces/authenticate-with-refresh-token-options.interface.cjs';
78
80
  import '../user-management/interfaces/authenticate-with-session-cookie.interface.cjs';
79
81
  import '../user-management/interfaces/authentication-response.interface.cjs';
80
- import '../user-management/interfaces/oauth-tokens.interface.cjs';
81
82
  import '../user-management/interfaces/authenticate-with-totp-options.interface.cjs';
82
83
  import '../user-management/interfaces/authorization-url-options.interface.cjs';
83
84
  import '../user-management/interfaces/create-magic-auth-options.interface.cjs';
@@ -1,4 +1,4 @@
1
- import { W as WorkOS } from '../../workos-Da6gE2T5.cjs';
1
+ import { W as WorkOS } from '../../workos-Bt8QqzZV.cjs';
2
2
  import { FGAList } from '../interfaces/list.interface.cjs';
3
3
  import { PaginationOptions } from '../../common/interfaces/pagination-options.interface.cjs';
4
4
  import { QueryRequestOptions } from '../interfaces/query.interface.cjs';
@@ -47,6 +47,7 @@ import '../../sso/interfaces/get-profile-options.interface.cjs';
47
47
  import '../../sso/interfaces/get-profile-and-token-options.interface.cjs';
48
48
  import '../../sso/interfaces/list-connections-options.interface.cjs';
49
49
  import '../../sso/interfaces/profile-and-token.interface.cjs';
50
+ import '../../user-management/interfaces/oauth-tokens.interface.cjs';
50
51
  import '../../sso/interfaces/profile.interface.cjs';
51
52
  import '../../webhooks/webhooks.cjs';
52
53
  import '../../common/crypto/crypto-provider.cjs';
@@ -63,6 +64,7 @@ import '../../audit-logs/interfaces/audit-log-export.interface.cjs';
63
64
  import '../../audit-logs/interfaces/create-audit-log-event-options.interface.cjs';
64
65
  import '../../audit-logs/interfaces/create-audit-log-schema-options.interface.cjs';
65
66
  import 'jose';
67
+ import '../../user-management-B38wNrIN.cjs';
66
68
  import '../../user-management/interfaces/authenticate-with-code-options.interface.cjs';
67
69
  import '../../user-management/interfaces/authenticate-with-options-base.interface.cjs';
68
70
  import '../../user-management/interfaces/authenticate-with-code-and-verifier-options.interface.cjs';
@@ -73,7 +75,6 @@ import '../../user-management/interfaces/authenticate-with-password-options.inte
73
75
  import '../../user-management/interfaces/authenticate-with-refresh-token-options.interface.cjs';
74
76
  import '../../user-management/interfaces/authenticate-with-session-cookie.interface.cjs';
75
77
  import '../../user-management/interfaces/authentication-response.interface.cjs';
76
- import '../../user-management/interfaces/oauth-tokens.interface.cjs';
77
78
  import '../../user-management/interfaces/authenticate-with-totp-options.interface.cjs';
78
79
  import '../../user-management/interfaces/authorization-url-options.interface.cjs';
79
80
  import '../../user-management/interfaces/create-magic-auth-options.interface.cjs';
package/lib/cjs/index.cjs CHANGED
@@ -52,6 +52,8 @@ class WorkOSNode extends import_workos.WorkOS {
52
52
  createHttpClient(options, userAgent) {
53
53
  const opts = {
54
54
  ...options.config,
55
+ timeout: options.timeout,
56
+ // Pass through the timeout option
55
57
  headers: {
56
58
  ...options.config?.headers,
57
59
  Authorization: `Bearer ${this.key}`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { SubtleCryptoProvider } from './common/crypto/subtle-crypto-provider';\nimport { CryptoProvider } from './common/crypto/crypto-provider';\n\nimport { HttpClient } from './common/net/http-client';\nimport { FetchHttpClient } from './common/net/fetch-client';\n\nimport { Actions } from './actions/actions';\nimport { Webhooks } from './webhooks/webhooks';\nimport { WorkOS } from './workos';\nimport { WorkOSOptions } from './common/interfaces';\n\nexport * from './actions/interfaces';\nexport * from './audit-logs/interfaces';\nexport * from './common/exceptions';\nexport * from './common/interfaces';\nexport * from './common/utils/pagination';\nexport * from './directory-sync/interfaces';\nexport * from './directory-sync/utils/get-primary-email';\nexport * from './events/interfaces';\nexport * from './fga/interfaces';\nexport * from './organizations/interfaces';\nexport * from './organization-domains/interfaces';\nexport * from './passwordless/interfaces';\nexport * from './portal/interfaces';\nexport * from './sso/interfaces';\nexport * from './user-management/interfaces';\nexport * from './roles/interfaces';\n\nclass WorkOSNode extends WorkOS {\n /** @override */\n createHttpClient(options: WorkOSOptions, userAgent: string): HttpClient {\n const opts = {\n ...options.config,\n headers: {\n ...options.config?.headers,\n Authorization: `Bearer ${this.key}`,\n 'User-Agent': userAgent,\n },\n };\n\n return new FetchHttpClient(this.baseURL, opts, options.fetchFn);\n }\n\n /** @override */\n createWebhookClient(): Webhooks {\n return new Webhooks(this.getCryptoProvider());\n }\n\n override getCryptoProvider(): CryptoProvider {\n return new SubtleCryptoProvider();\n }\n\n /** @override */\n createActionsClient(): Actions {\n return new Actions(this.getCryptoProvider());\n }\n\n /** @override */\n emitWarning(warning: string): void {\n return process.emitWarning(warning, 'WorkOS');\n }\n}\n\nexport { WorkOSNode as WorkOS };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAqC;AAIrC,0BAAgC;AAEhC,qBAAwB;AACxB,sBAAyB;AACzB,oBAAuB;AAGvB,0BAAc,iCAXd;AAYA,0BAAc,oCAZd;AAaA,0BAAc,gCAbd;AAcA,0BAAc,gCAdd;AAeA,0BAAc,sCAfd;AAgBA,0BAAc,wCAhBd;AAiBA,0BAAc,qDAjBd;AAkBA,0BAAc,gCAlBd;AAmBA,0BAAc,6BAnBd;AAoBA,0BAAc,uCApBd;AAqBA,0BAAc,8CArBd;AAsBA,0BAAc,sCAtBd;AAuBA,0BAAc,gCAvBd;AAwBA,0BAAc,6BAxBd;AAyBA,0BAAc,yCAzBd;AA0BA,0BAAc,+BA1Bd;AA4BA,MAAM,mBAAmB,qBAAO;AAAA,EA5BhC,OA4BgC;AAAA;AAAA;AAAA;AAAA,EAE9B,iBAAiB,SAAwB,WAA+B;AACtE,UAAM,OAAO;AAAA,MACX,GAAG,QAAQ;AAAA,MACX,SAAS;AAAA,QACP,GAAG,QAAQ,QAAQ;AAAA,QACnB,eAAe,UAAU,KAAK,GAAG;AAAA,QACjC,cAAc;AAAA,MAChB;AAAA,IACF;AAEA,WAAO,IAAI,oCAAgB,KAAK,SAAS,MAAM,QAAQ,OAAO;AAAA,EAChE;AAAA;AAAA,EAGA,sBAAgC;AAC9B,WAAO,IAAI,yBAAS,KAAK,kBAAkB,CAAC;AAAA,EAC9C;AAAA,EAES,oBAAoC;AAC3C,WAAO,IAAI,mDAAqB;AAAA,EAClC;AAAA;AAAA,EAGA,sBAA+B;AAC7B,WAAO,IAAI,uBAAQ,KAAK,kBAAkB,CAAC;AAAA,EAC7C;AAAA;AAAA,EAGA,YAAY,SAAuB;AACjC,WAAO,QAAQ,YAAY,SAAS,QAAQ;AAAA,EAC9C;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { SubtleCryptoProvider } from './common/crypto/subtle-crypto-provider';\nimport { CryptoProvider } from './common/crypto/crypto-provider';\n\nimport { HttpClient } from './common/net/http-client';\nimport { FetchHttpClient } from './common/net/fetch-client';\n\nimport { Actions } from './actions/actions';\nimport { Webhooks } from './webhooks/webhooks';\nimport { WorkOS } from './workos';\nimport { WorkOSOptions } from './common/interfaces';\n\nexport * from './actions/interfaces';\nexport * from './audit-logs/interfaces';\nexport * from './common/exceptions';\nexport * from './common/interfaces';\nexport * from './common/utils/pagination';\nexport * from './directory-sync/interfaces';\nexport * from './directory-sync/utils/get-primary-email';\nexport * from './events/interfaces';\nexport * from './fga/interfaces';\nexport * from './organizations/interfaces';\nexport * from './organization-domains/interfaces';\nexport * from './passwordless/interfaces';\nexport * from './portal/interfaces';\nexport * from './sso/interfaces';\nexport * from './user-management/interfaces';\nexport * from './roles/interfaces';\n\nclass WorkOSNode extends WorkOS {\n /** @override */\n createHttpClient(options: WorkOSOptions, userAgent: string): HttpClient {\n const opts = {\n ...options.config,\n timeout: options.timeout, // Pass through the timeout option\n headers: {\n ...options.config?.headers,\n Authorization: `Bearer ${this.key}`,\n 'User-Agent': userAgent,\n },\n };\n\n return new FetchHttpClient(this.baseURL, opts, options.fetchFn);\n }\n\n /** @override */\n createWebhookClient(): Webhooks {\n return new Webhooks(this.getCryptoProvider());\n }\n\n override getCryptoProvider(): CryptoProvider {\n return new SubtleCryptoProvider();\n }\n\n /** @override */\n createActionsClient(): Actions {\n return new Actions(this.getCryptoProvider());\n }\n\n /** @override */\n emitWarning(warning: string): void {\n return process.emitWarning(warning, 'WorkOS');\n }\n}\n\nexport { WorkOSNode as WorkOS };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAqC;AAIrC,0BAAgC;AAEhC,qBAAwB;AACxB,sBAAyB;AACzB,oBAAuB;AAGvB,0BAAc,iCAXd;AAYA,0BAAc,oCAZd;AAaA,0BAAc,gCAbd;AAcA,0BAAc,gCAdd;AAeA,0BAAc,sCAfd;AAgBA,0BAAc,wCAhBd;AAiBA,0BAAc,qDAjBd;AAkBA,0BAAc,gCAlBd;AAmBA,0BAAc,6BAnBd;AAoBA,0BAAc,uCApBd;AAqBA,0BAAc,8CArBd;AAsBA,0BAAc,sCAtBd;AAuBA,0BAAc,gCAvBd;AAwBA,0BAAc,6BAxBd;AAyBA,0BAAc,yCAzBd;AA0BA,0BAAc,+BA1Bd;AA4BA,MAAM,mBAAmB,qBAAO;AAAA,EA5BhC,OA4BgC;AAAA;AAAA;AAAA;AAAA,EAE9B,iBAAiB,SAAwB,WAA+B;AACtE,UAAM,OAAO;AAAA,MACX,GAAG,QAAQ;AAAA,MACX,SAAS,QAAQ;AAAA;AAAA,MACjB,SAAS;AAAA,QACP,GAAG,QAAQ,QAAQ;AAAA,QACnB,eAAe,UAAU,KAAK,GAAG;AAAA,QACjC,cAAc;AAAA,MAChB;AAAA,IACF;AAEA,WAAO,IAAI,oCAAgB,KAAK,SAAS,MAAM,QAAQ,OAAO;AAAA,EAChE;AAAA;AAAA,EAGA,sBAAgC;AAC9B,WAAO,IAAI,yBAAS,KAAK,kBAAkB,CAAC;AAAA,EAC9C;AAAA,EAES,oBAAoC;AAC3C,WAAO,IAAI,mDAAqB;AAAA,EAClC;AAAA;AAAA,EAGA,sBAA+B;AAC7B,WAAO,IAAI,uBAAQ,KAAK,kBAAkB,CAAC;AAAA,EAC7C;AAAA;AAAA,EAGA,YAAY,SAAuB;AACjC,WAAO,QAAQ,YAAY,SAAS,QAAQ;AAAA,EAC9C;AACF;","names":[]}