@workos-inc/node 10.3.0 → 10.4.0

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