@workos-inc/node 10.3.0 → 10.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,3 @@
1
- let eventemitter3 = require("eventemitter3");
2
1
  //#region src/common/crypto/crypto-provider.ts
3
2
  /**
4
3
  * Interface encapsulating the various crypto computations used by the library,
@@ -1367,8 +1366,9 @@ const deserializeProfileAndToken = (profileAndToken) => ({
1367
1366
  //#endregion
1368
1367
  //#region src/user-management/serializers/role.serializer.ts
1369
1368
  const deserializeRoleEvent = (role) => ({
1370
- object: "role",
1369
+ object: role.object,
1371
1370
  slug: role.slug,
1371
+ resourceTypeSlug: role.resource_type_slug,
1372
1372
  permissions: role.permissions,
1373
1373
  createdAt: role.created_at,
1374
1374
  updatedAt: role.updated_at
@@ -4817,7 +4817,7 @@ var UserManagement = class {
4817
4817
  * Or use getAuthorizationUrlWithPKCE() which handles PKCE automatically.
4818
4818
  */
4819
4819
  getAuthorizationUrl(options) {
4820
- const { claimNonce, connectionId, codeChallenge, codeChallengeMethod, clientId, domainHint, loginHint, organizationId, provider, providerQueryParams, providerScopes, prompt, redirectUri, state, screenHint } = options;
4820
+ const { claimNonce, connectionId, codeChallenge, codeChallengeMethod, clientId, domainHint, invitationToken, loginHint, organizationId, provider, providerQueryParams, providerScopes, prompt, redirectUri, state, screenHint } = options;
4821
4821
  const resolvedClientId = this.resolveClientId(clientId);
4822
4822
  if (!provider && !connectionId && !organizationId) throw new TypeError(`Incomplete arguments. Need to specify either a 'connectionId', 'organizationId', or 'provider'.`);
4823
4823
  if (provider !== "authkit" && screenHint) throw new TypeError(`'screenHint' is only supported for 'authkit' provider`);
@@ -4828,6 +4828,7 @@ var UserManagement = class {
4828
4828
  code_challenge_method: codeChallengeMethod,
4829
4829
  organization_id: organizationId,
4830
4830
  domain_hint: domainHint,
4831
+ invitation_token: invitationToken,
4831
4832
  login_hint: loginHint,
4832
4833
  provider,
4833
4834
  provider_query_params: providerQueryParams,
@@ -4928,6 +4929,81 @@ var UserManagement = class {
4928
4929
  }
4929
4930
  };
4930
4931
  //#endregion
4932
+ //#region src/feature-flags/event-emitter.ts
4933
+ /**
4934
+ * Minimal, runtime-agnostic, typed event emitter.
4935
+ *
4936
+ * Replaces eventemitter3 so the SDK carries no event dependency and works in
4937
+ * edge runtimes where `node:events` is not available. Generic over an event
4938
+ * map (`{ eventName: [arg1, arg2, ...] }`) for compile-time-checked event
4939
+ * names and payloads.
4940
+ *
4941
+ * Unlike eventemitter3, an unhandled `'error'` event throws instead of being
4942
+ * silently dropped — matching Node's `EventEmitter` so failures are never
4943
+ * swallowed.
4944
+ */
4945
+ var EventEmitter = class {
4946
+ handlers = /* @__PURE__ */ new Map();
4947
+ on(event, fn) {
4948
+ return this.add(event, fn, false);
4949
+ }
4950
+ once(event, fn) {
4951
+ return this.add(event, fn, true);
4952
+ }
4953
+ off(event, fn) {
4954
+ this.remove(event, (h) => h.fn !== fn);
4955
+ return this;
4956
+ }
4957
+ emit(event, ...args) {
4958
+ const list = this.handlers.get(event);
4959
+ if (!list || list.length === 0) {
4960
+ if (event === "error") throw args[0] instanceof Error ? args[0] : new Error(String(args[0]));
4961
+ return false;
4962
+ }
4963
+ for (const h of [...list]) {
4964
+ if (h.once) this.remove(event, (existing) => existing !== h);
4965
+ h.fn(...args);
4966
+ }
4967
+ return true;
4968
+ }
4969
+ listenerCount(event) {
4970
+ return this.handlers.get(event)?.length ?? 0;
4971
+ }
4972
+ removeAllListeners(event) {
4973
+ if (event === void 0) this.handlers.clear();
4974
+ else this.handlers.delete(event);
4975
+ return this;
4976
+ }
4977
+ addListener(event, fn) {
4978
+ return this.on(event, fn);
4979
+ }
4980
+ removeListener(event, fn) {
4981
+ return this.off(event, fn);
4982
+ }
4983
+ listeners(event) {
4984
+ return (this.handlers.get(event) ?? []).map((h) => h.fn);
4985
+ }
4986
+ eventNames() {
4987
+ return [...this.handlers.keys()];
4988
+ }
4989
+ add(event, fn, once) {
4990
+ const list = this.handlers.get(event) ?? [];
4991
+ list.push({
4992
+ fn,
4993
+ once
4994
+ });
4995
+ this.handlers.set(event, list);
4996
+ return this;
4997
+ }
4998
+ remove(event, keep) {
4999
+ const list = this.handlers.get(event);
5000
+ if (!list) return;
5001
+ const next = list.filter(keep);
5002
+ if (next.length) this.handlers.set(event, next);
5003
+ else this.handlers.delete(event);
5004
+ }
5005
+ };
5006
+ //#endregion
4931
5007
  //#region src/feature-flags/in-memory-store.ts
4932
5008
  var InMemoryStore = class {
4933
5009
  flags = {};
@@ -4982,7 +5058,7 @@ const JITTER_FACTOR = .1;
4982
5058
  const INITIAL_RETRY_MS = 1e3;
4983
5059
  const MAX_RETRY_MS = 6e4;
4984
5060
  const BACKOFF_MULTIPLIER = 2;
4985
- var FeatureFlagsRuntimeClient = class extends eventemitter3.EventEmitter {
5061
+ var FeatureFlagsRuntimeClient = class extends EventEmitter {
4986
5062
  workos;
4987
5063
  store;
4988
5064
  evaluator;
@@ -5036,10 +5112,6 @@ var FeatureFlagsRuntimeClient = class extends eventemitter3.EventEmitter {
5036
5112
  clearTimeout(timeoutId);
5037
5113
  });
5038
5114
  }
5039
- emit(event, ...args) {
5040
- if (event === "error" && this.listenerCount(event) === 0) throw args[0] instanceof Error ? args[0] : new Error(String(args[0]));
5041
- return super.emit(event, ...args);
5042
- }
5043
5115
  close() {
5044
5116
  this.closed = true;
5045
5117
  this.pollAbortController?.abort();
@@ -5087,14 +5159,15 @@ var FeatureFlagsRuntimeClient = class extends eventemitter3.EventEmitter {
5087
5159
  this.logger?.debug("Poll successful", { flagCount: this.store.size });
5088
5160
  } catch (error) {
5089
5161
  if (this.closed) return;
5162
+ const err = error instanceof Error ? error : new Error(String(error));
5090
5163
  this.consecutiveErrors++;
5091
5164
  this.stats.pollErrorCount++;
5092
- this.emit("error", error);
5093
- this.logger?.error("Poll failed", error);
5094
- if (error instanceof UnauthorizedException) {
5095
- this.emit("failed", error);
5165
+ this.emit("error", err);
5166
+ this.logger?.error("Poll failed", err);
5167
+ if (err instanceof UnauthorizedException) {
5168
+ this.emit("failed", err);
5096
5169
  if (!this.initialized && this.readyReject) {
5097
- this.readyReject(error);
5170
+ this.readyReject(err);
5098
5171
  this.readyReject = null;
5099
5172
  }
5100
5173
  return;
@@ -7069,7 +7142,7 @@ var Vault = class {
7069
7142
  };
7070
7143
  //#endregion
7071
7144
  //#region package.json
7072
- var version = "10.3.0";
7145
+ var version = "10.4.1";
7073
7146
  //#endregion
7074
7147
  //#region src/workos.ts
7075
7148
  const DEFAULT_HOSTNAME = "api.workos.com";
@@ -7600,4 +7673,4 @@ Object.defineProperty(exports, "serializeRevokeSessionOptions", {
7600
7673
  }
7601
7674
  });
7602
7675
 
7603
- //# sourceMappingURL=factory-QsnbLZsB.cjs.map
7676
+ //# sourceMappingURL=factory-BWQXdnOa.cjs.map