msw 2.13.1 → 2.13.3

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.
@@ -24,7 +24,7 @@ declare abstract class NetworkSource<Frame extends AnyNetworkFrame = AnyNetworkF
24
24
  constructor();
25
25
  abstract enable(): unknown | Promise<unknown>;
26
26
  queue(frame: Frame): Promise<void>;
27
- on<Type extends keyof NetworkSourceEventMap<Frame>>(type: Type, listener: Emitter.ListenerType<typeof this.emitter, Type>, options?: TypedListenerOptions): void;
27
+ on<Type extends keyof NetworkSourceEventMap<Frame>>(type: Type, listener: Emitter.Listener<typeof this.emitter, Type>, options?: TypedListenerOptions): void;
28
28
  disable(): void | Promise<void>;
29
29
  }
30
30
 
@@ -24,7 +24,7 @@ declare abstract class NetworkSource<Frame extends AnyNetworkFrame = AnyNetworkF
24
24
  constructor();
25
25
  abstract enable(): unknown | Promise<unknown>;
26
26
  queue(frame: Frame): Promise<void>;
27
- on<Type extends keyof NetworkSourceEventMap<Frame>>(type: Type, listener: Emitter.ListenerType<typeof this.emitter, Type>, options?: TypedListenerOptions): void;
27
+ on<Type extends keyof NetworkSourceEventMap<Frame>>(type: Type, listener: Emitter.Listener<typeof this.emitter, Type>, options?: TypedListenerOptions): void;
28
28
  disable(): void | Promise<void>;
29
29
  }
30
30
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/experimental/sources/network-source.ts"],"sourcesContent":["import { Emitter, TypedEvent, type TypedListenerOptions } from 'rettime'\nimport {\n type AnyNetworkFrame,\n type ExtractFrameEvents,\n} from '../frames/network-frame'\n\nclass NetworkFrameEvent<\n DataType = void,\n ReturnType = void,\n EventType extends string = string,\n> extends TypedEvent<DataType, ReturnType, EventType> {\n public frame: AnyNetworkFrame\n\n constructor(type: string, frame: AnyNetworkFrame) {\n super(...([type, {}] as any))\n this.frame = frame\n }\n}\n\ntype NetworkSourceEventMap<Frame extends AnyNetworkFrame> = {\n frame: NetworkFrameEvent<Frame>\n}\n\nexport type ExtractSourceEvents<Source> =\n Source extends NetworkSource<infer Frame> ? ExtractFrameEvents<Frame> : never\n\nexport abstract class NetworkSource<\n Frame extends AnyNetworkFrame = AnyNetworkFrame,\n> {\n protected emitter: Emitter<NetworkSourceEventMap<Frame>>\n\n constructor() {\n this.emitter = new Emitter()\n }\n\n public abstract enable(): unknown | Promise<unknown>\n\n public async queue(frame: Frame): Promise<void> {\n await this.emitter.emitAsPromise(\n // @ts-expect-error Trouble handling a conditional type parameter.\n new NetworkFrameEvent('frame', frame),\n )\n }\n\n public on<Type extends keyof NetworkSourceEventMap<Frame>>(\n type: Type,\n listener: Emitter.ListenerType<typeof this.emitter, Type>,\n options?: TypedListenerOptions,\n ): void {\n this.emitter.on(type, listener, options)\n }\n\n public disable(): void | Promise<void> {\n this.emitter.removeAllListeners()\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+D;AAM/D,MAAM,0BAII,0BAA4C;AAAA,EAC7C;AAAA,EAEP,YAAY,MAAc,OAAwB;AAChD,UAAM,GAAI,CAAC,MAAM,CAAC,CAAC,CAAS;AAC5B,SAAK,QAAQ;AAAA,EACf;AACF;AASO,MAAe,cAEpB;AAAA,EACU;AAAA,EAEV,cAAc;AACZ,SAAK,UAAU,IAAI,uBAAQ;AAAA,EAC7B;AAAA,EAIA,MAAa,MAAM,OAA6B;AAC9C,UAAM,KAAK,QAAQ;AAAA;AAAA,MAEjB,IAAI,kBAAkB,SAAS,KAAK;AAAA,IACtC;AAAA,EACF;AAAA,EAEO,GACL,MACA,UACA,SACM;AACN,SAAK,QAAQ,GAAG,MAAM,UAAU,OAAO;AAAA,EACzC;AAAA,EAEO,UAAgC;AACrC,SAAK,QAAQ,mBAAmB;AAAA,EAClC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/core/experimental/sources/network-source.ts"],"sourcesContent":["import { Emitter, TypedEvent, type TypedListenerOptions } from 'rettime'\nimport {\n type AnyNetworkFrame,\n type ExtractFrameEvents,\n} from '../frames/network-frame'\n\nclass NetworkFrameEvent<\n DataType = void,\n ReturnType = void,\n EventType extends string = string,\n> extends TypedEvent<DataType, ReturnType, EventType> {\n public frame: AnyNetworkFrame\n\n constructor(type: string, frame: AnyNetworkFrame) {\n super(...([type, {}] as any))\n this.frame = frame\n }\n}\n\ntype NetworkSourceEventMap<Frame extends AnyNetworkFrame> = {\n frame: NetworkFrameEvent<Frame>\n}\n\nexport type ExtractSourceEvents<Source> =\n Source extends NetworkSource<infer Frame> ? ExtractFrameEvents<Frame> : never\n\nexport abstract class NetworkSource<\n Frame extends AnyNetworkFrame = AnyNetworkFrame,\n> {\n protected emitter: Emitter<NetworkSourceEventMap<Frame>>\n\n constructor() {\n this.emitter = new Emitter()\n }\n\n public abstract enable(): unknown | Promise<unknown>\n\n public async queue(frame: Frame): Promise<void> {\n await this.emitter.emitAsPromise(\n // @ts-expect-error Trouble handling a conditional type parameter.\n new NetworkFrameEvent('frame', frame),\n )\n }\n\n public on<Type extends keyof NetworkSourceEventMap<Frame>>(\n type: Type,\n listener: Emitter.Listener<typeof this.emitter, Type>,\n options?: TypedListenerOptions,\n ): void {\n this.emitter.on(type, listener, options)\n }\n\n public disable(): void | Promise<void> {\n this.emitter.removeAllListeners()\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+D;AAM/D,MAAM,0BAII,0BAA4C;AAAA,EAC7C;AAAA,EAEP,YAAY,MAAc,OAAwB;AAChD,UAAM,GAAI,CAAC,MAAM,CAAC,CAAC,CAAS;AAC5B,SAAK,QAAQ;AAAA,EACf;AACF;AASO,MAAe,cAEpB;AAAA,EACU;AAAA,EAEV,cAAc;AACZ,SAAK,UAAU,IAAI,uBAAQ;AAAA,EAC7B;AAAA,EAIA,MAAa,MAAM,OAA6B;AAC9C,UAAM,KAAK,QAAQ;AAAA;AAAA,MAEjB,IAAI,kBAAkB,SAAS,KAAK;AAAA,IACtC;AAAA,EACF;AAAA,EAEO,GACL,MACA,UACA,SACM;AACN,SAAK,QAAQ,GAAG,MAAM,UAAU,OAAO;AAAA,EACzC;AAAA,EAEO,UAAgC;AACrC,SAAK,QAAQ,mBAAmB;AAAA,EAClC;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/experimental/sources/network-source.ts"],"sourcesContent":["import { Emitter, TypedEvent, type TypedListenerOptions } from 'rettime'\nimport {\n type AnyNetworkFrame,\n type ExtractFrameEvents,\n} from '../frames/network-frame'\n\nclass NetworkFrameEvent<\n DataType = void,\n ReturnType = void,\n EventType extends string = string,\n> extends TypedEvent<DataType, ReturnType, EventType> {\n public frame: AnyNetworkFrame\n\n constructor(type: string, frame: AnyNetworkFrame) {\n super(...([type, {}] as any))\n this.frame = frame\n }\n}\n\ntype NetworkSourceEventMap<Frame extends AnyNetworkFrame> = {\n frame: NetworkFrameEvent<Frame>\n}\n\nexport type ExtractSourceEvents<Source> =\n Source extends NetworkSource<infer Frame> ? ExtractFrameEvents<Frame> : never\n\nexport abstract class NetworkSource<\n Frame extends AnyNetworkFrame = AnyNetworkFrame,\n> {\n protected emitter: Emitter<NetworkSourceEventMap<Frame>>\n\n constructor() {\n this.emitter = new Emitter()\n }\n\n public abstract enable(): unknown | Promise<unknown>\n\n public async queue(frame: Frame): Promise<void> {\n await this.emitter.emitAsPromise(\n // @ts-expect-error Trouble handling a conditional type parameter.\n new NetworkFrameEvent('frame', frame),\n )\n }\n\n public on<Type extends keyof NetworkSourceEventMap<Frame>>(\n type: Type,\n listener: Emitter.ListenerType<typeof this.emitter, Type>,\n options?: TypedListenerOptions,\n ): void {\n this.emitter.on(type, listener, options)\n }\n\n public disable(): void | Promise<void> {\n this.emitter.removeAllListeners()\n }\n}\n"],"mappings":"AAAA,SAAS,SAAS,kBAA6C;AAM/D,MAAM,0BAII,WAA4C;AAAA,EAC7C;AAAA,EAEP,YAAY,MAAc,OAAwB;AAChD,UAAM,GAAI,CAAC,MAAM,CAAC,CAAC,CAAS;AAC5B,SAAK,QAAQ;AAAA,EACf;AACF;AASO,MAAe,cAEpB;AAAA,EACU;AAAA,EAEV,cAAc;AACZ,SAAK,UAAU,IAAI,QAAQ;AAAA,EAC7B;AAAA,EAIA,MAAa,MAAM,OAA6B;AAC9C,UAAM,KAAK,QAAQ;AAAA;AAAA,MAEjB,IAAI,kBAAkB,SAAS,KAAK;AAAA,IACtC;AAAA,EACF;AAAA,EAEO,GACL,MACA,UACA,SACM;AACN,SAAK,QAAQ,GAAG,MAAM,UAAU,OAAO;AAAA,EACzC;AAAA,EAEO,UAAgC;AACrC,SAAK,QAAQ,mBAAmB;AAAA,EAClC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/core/experimental/sources/network-source.ts"],"sourcesContent":["import { Emitter, TypedEvent, type TypedListenerOptions } from 'rettime'\nimport {\n type AnyNetworkFrame,\n type ExtractFrameEvents,\n} from '../frames/network-frame'\n\nclass NetworkFrameEvent<\n DataType = void,\n ReturnType = void,\n EventType extends string = string,\n> extends TypedEvent<DataType, ReturnType, EventType> {\n public frame: AnyNetworkFrame\n\n constructor(type: string, frame: AnyNetworkFrame) {\n super(...([type, {}] as any))\n this.frame = frame\n }\n}\n\ntype NetworkSourceEventMap<Frame extends AnyNetworkFrame> = {\n frame: NetworkFrameEvent<Frame>\n}\n\nexport type ExtractSourceEvents<Source> =\n Source extends NetworkSource<infer Frame> ? ExtractFrameEvents<Frame> : never\n\nexport abstract class NetworkSource<\n Frame extends AnyNetworkFrame = AnyNetworkFrame,\n> {\n protected emitter: Emitter<NetworkSourceEventMap<Frame>>\n\n constructor() {\n this.emitter = new Emitter()\n }\n\n public abstract enable(): unknown | Promise<unknown>\n\n public async queue(frame: Frame): Promise<void> {\n await this.emitter.emitAsPromise(\n // @ts-expect-error Trouble handling a conditional type parameter.\n new NetworkFrameEvent('frame', frame),\n )\n }\n\n public on<Type extends keyof NetworkSourceEventMap<Frame>>(\n type: Type,\n listener: Emitter.Listener<typeof this.emitter, Type>,\n options?: TypedListenerOptions,\n ): void {\n this.emitter.on(type, listener, options)\n }\n\n public disable(): void | Promise<void> {\n this.emitter.removeAllListeners()\n }\n}\n"],"mappings":"AAAA,SAAS,SAAS,kBAA6C;AAM/D,MAAM,0BAII,WAA4C;AAAA,EAC7C;AAAA,EAEP,YAAY,MAAc,OAAwB;AAChD,UAAM,GAAI,CAAC,MAAM,CAAC,CAAC,CAAS;AAC5B,SAAK,QAAQ;AAAA,EACf;AACF;AASO,MAAe,cAEpB;AAAA,EACU;AAAA,EAEV,cAAc;AACZ,SAAK,UAAU,IAAI,QAAQ;AAAA,EAC7B;AAAA,EAIA,MAAa,MAAM,OAA6B;AAC9C,UAAM,KAAK,QAAQ;AAAA;AAAA,MAEjB,IAAI,kBAAkB,SAAS,KAAK;AAAA,IACtC;AAAA,EACF;AAAA,EAEO,GACL,MACA,UACA,SACM;AACN,SAAK,QAAQ,GAAG,MAAM,UAAU,OAAO;AAAA,EACzC;AAAA,EAEO,UAAgC;AACrC,SAAK,QAAQ,mBAAmB;AAAA,EAClC;AACF;","names":[]}
@@ -21,7 +21,14 @@ __export(hasRefCounted_exports, {
21
21
  hasRefCounted: () => hasRefCounted
22
22
  });
23
23
  module.exports = __toCommonJS(hasRefCounted_exports);
24
+ var import_isObject = require("./isObject");
24
25
  function hasRefCounted(value) {
25
- return typeof Reflect.get(value, "ref") === "function" && typeof Reflect.get(value, "unref") === "function";
26
+ return (
27
+ /**
28
+ * @note Guard against non-object values.
29
+ * E.g. `setTimeout` returns an object in Node.js but a number in the browser.
30
+ */
31
+ (0, import_isObject.isObject)(value) && typeof Reflect.get(value, "ref") === "function" && typeof Reflect.get(value, "unref") === "function"
32
+ );
26
33
  }
27
34
  //# sourceMappingURL=hasRefCounted.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/utils/internal/hasRefCounted.ts"],"sourcesContent":["export function hasRefCounted<T extends object>(\n value: T,\n): value is T & NodeJS.RefCounted {\n return (\n typeof Reflect.get(value, 'ref') === 'function' &&\n typeof Reflect.get(value, 'unref') === 'function'\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,cACd,OACgC;AAChC,SACE,OAAO,QAAQ,IAAI,OAAO,KAAK,MAAM,cACrC,OAAO,QAAQ,IAAI,OAAO,OAAO,MAAM;AAE3C;","names":[]}
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/hasRefCounted.ts"],"sourcesContent":["import { isObject } from './isObject'\n\nexport function hasRefCounted<T extends object>(\n value: T,\n): value is T & NodeJS.RefCounted {\n return (\n /**\n * @note Guard against non-object values.\n * E.g. `setTimeout` returns an object in Node.js but a number in the browser.\n */\n isObject(value) &&\n typeof Reflect.get(value, 'ref') === 'function' &&\n typeof Reflect.get(value, 'unref') === 'function'\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAyB;AAElB,SAAS,cACd,OACgC;AAChC;AAAA;AAAA;AAAA;AAAA;AAAA,QAKE,0BAAS,KAAK,KACd,OAAO,QAAQ,IAAI,OAAO,KAAK,MAAM,cACrC,OAAO,QAAQ,IAAI,OAAO,OAAO,MAAM;AAAA;AAE3C;","names":[]}
@@ -1,5 +1,12 @@
1
+ import { isObject } from './isObject.mjs';
1
2
  function hasRefCounted(value) {
2
- return typeof Reflect.get(value, "ref") === "function" && typeof Reflect.get(value, "unref") === "function";
3
+ return (
4
+ /**
5
+ * @note Guard against non-object values.
6
+ * E.g. `setTimeout` returns an object in Node.js but a number in the browser.
7
+ */
8
+ isObject(value) && typeof Reflect.get(value, "ref") === "function" && typeof Reflect.get(value, "unref") === "function"
9
+ );
3
10
  }
4
11
  export {
5
12
  hasRefCounted
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/utils/internal/hasRefCounted.ts"],"sourcesContent":["export function hasRefCounted<T extends object>(\n value: T,\n): value is T & NodeJS.RefCounted {\n return (\n typeof Reflect.get(value, 'ref') === 'function' &&\n typeof Reflect.get(value, 'unref') === 'function'\n )\n}\n"],"mappings":"AAAO,SAAS,cACd,OACgC;AAChC,SACE,OAAO,QAAQ,IAAI,OAAO,KAAK,MAAM,cACrC,OAAO,QAAQ,IAAI,OAAO,OAAO,MAAM;AAE3C;","names":[]}
1
+ {"version":3,"sources":["../../../../src/core/utils/internal/hasRefCounted.ts"],"sourcesContent":["import { isObject } from './isObject'\n\nexport function hasRefCounted<T extends object>(\n value: T,\n): value is T & NodeJS.RefCounted {\n return (\n /**\n * @note Guard against non-object values.\n * E.g. `setTimeout` returns an object in Node.js but a number in the browser.\n */\n isObject(value) &&\n typeof Reflect.get(value, 'ref') === 'function' &&\n typeof Reflect.get(value, 'unref') === 'function'\n )\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAElB,SAAS,cACd,OACgC;AAChC;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,SAAS,KAAK,KACd,OAAO,QAAQ,IAAI,OAAO,KAAK,MAAM,cACrC,OAAO,QAAQ,IAAI,OAAO,OAAO,MAAM;AAAA;AAE3C;","names":[]}
package/lib/iife/index.js CHANGED
@@ -14212,7 +14212,7 @@ ${operationTypes.join("\n")}
14212
14212
  );
14213
14213
  }
14214
14214
 
14215
- // node_modules/.pnpm/rettime@0.10.1/node_modules/rettime/build/lens-list.mjs
14215
+ // node_modules/.pnpm/rettime@0.11.7/node_modules/rettime/build/lens-list.mjs
14216
14216
  var LensList = class {
14217
14217
  #list;
14218
14218
  #lens;
@@ -14258,7 +14258,11 @@ ${operationTypes.join("\n")}
14258
14258
  delete(key, value) {
14259
14259
  if (this.size === 0) return;
14260
14260
  this.#list = this.#list.filter((item) => item[1] !== value);
14261
- for (const [existingKey, values] of this.#lens) if (existingKey === key && values.includes(value)) values.splice(values.indexOf(value), 1);
14261
+ const values = this.#lens.get(key);
14262
+ if (values) {
14263
+ const index = values.indexOf(value);
14264
+ if (index !== -1) values.splice(index, 1);
14265
+ }
14262
14266
  }
14263
14267
  /**
14264
14268
  * Delete all values belogning to the given key.
@@ -14281,7 +14285,7 @@ ${operationTypes.join("\n")}
14281
14285
  }
14282
14286
  };
14283
14287
 
14284
- // node_modules/.pnpm/rettime@0.10.1/node_modules/rettime/build/index.mjs
14288
+ // node_modules/.pnpm/rettime@0.11.7/node_modules/rettime/build/index.mjs
14285
14289
  var kDefaultPrevented = Symbol("kDefaultPrevented");
14286
14290
  var kPropagationStopped = Symbol("kPropagationStopped");
14287
14291
  var kImmediatePropagationStopped = Symbol("kImmediatePropagationStopped");
@@ -14311,11 +14315,39 @@ ${operationTypes.join("\n")}
14311
14315
  this[kImmediatePropagationStopped] = true;
14312
14316
  }
14313
14317
  };
14314
- var kListenerOptions = Symbol("kListenerOptions");
14315
14318
  var Emitter = class {
14316
14319
  #listeners;
14320
+ #listenerOptions;
14321
+ #typelessListeners;
14322
+ #hookListeners;
14323
+ #hookListenerOptions;
14324
+ hooks;
14317
14325
  constructor() {
14318
14326
  this.#listeners = new LensList();
14327
+ this.#listenerOptions = /* @__PURE__ */ new WeakMap();
14328
+ this.#typelessListeners = /* @__PURE__ */ new WeakSet();
14329
+ this.#hookListeners = new LensList();
14330
+ this.#hookListenerOptions = /* @__PURE__ */ new WeakMap();
14331
+ this.hooks = {
14332
+ on: (hook, callback, options) => {
14333
+ if (options?.once) {
14334
+ const original = callback;
14335
+ const wrapper = ((...args) => {
14336
+ this.#hookListeners.delete(hook, wrapper);
14337
+ return original(...args);
14338
+ });
14339
+ callback = wrapper;
14340
+ }
14341
+ this.#hookListeners.append(hook, callback);
14342
+ if (options) this.#hookListenerOptions.set(callback, options);
14343
+ if (options?.signal) options.signal.addEventListener("abort", () => {
14344
+ this.#hookListeners.delete(hook, callback);
14345
+ }, { once: true });
14346
+ },
14347
+ removeListener: (hook, callback) => {
14348
+ this.#hookListeners.delete(hook, callback);
14349
+ }
14350
+ };
14319
14351
  }
14320
14352
  /**
14321
14353
  * Adds a listener for the given event type.
@@ -14417,7 +14449,9 @@ ${operationTypes.join("\n")}
14417
14449
  * Removes a listener for the given event type.
14418
14450
  */
14419
14451
  removeListener(type, listener) {
14452
+ const options = this.#listenerOptions.get(listener);
14420
14453
  this.#listeners.delete(type, listener);
14454
+ for (const hook of this.#hookListeners.get("removeListener")) hook(type, listener, options);
14421
14455
  }
14422
14456
  /**
14423
14457
  * Removes all listeners for the given event type.
@@ -14426,6 +14460,7 @@ ${operationTypes.join("\n")}
14426
14460
  removeAllListeners(type) {
14427
14461
  if (type == null) {
14428
14462
  this.#listeners.clear();
14463
+ for (const [hookType, hookListener] of this.#hookListeners) if (!this.#hookListenerOptions.get(hookListener)?.persist) this.#hookListeners.delete(hookType, hookListener);
14429
14464
  return;
14430
14465
  }
14431
14466
  this.#listeners.deleteAll(type);
@@ -14447,14 +14482,12 @@ ${operationTypes.join("\n")}
14447
14482
  return this.listeners(type).length;
14448
14483
  }
14449
14484
  #addListener(type, listener, options, insertMode = "append") {
14485
+ for (const hook of this.#hookListeners.get("newListener")) hook(type, listener, options);
14486
+ if (type === "*") this.#typelessListeners.add(listener);
14450
14487
  if (insertMode === "prepend") this.#listeners.prepend(type, listener);
14451
14488
  else this.#listeners.append(type, listener);
14452
14489
  if (options) {
14453
- Object.defineProperty(listener, kListenerOptions, {
14454
- value: options,
14455
- enumerable: false,
14456
- writable: false
14457
- });
14490
+ this.#listenerOptions.set(listener, options);
14458
14491
  if (options.signal) options.signal.addEventListener("abort", () => {
14459
14492
  this.removeListener(type, listener);
14460
14493
  }, { once: true });
@@ -14462,10 +14495,10 @@ ${operationTypes.join("\n")}
14462
14495
  }
14463
14496
  #proxyEvent(event) {
14464
14497
  const { stopPropagation } = event;
14465
- event.stopPropagation = new Proxy(event.stopPropagation, { apply: (target, thisArg, argArray) => {
14498
+ event.stopPropagation = () => {
14466
14499
  event[kPropagationStopped] = this;
14467
- return Reflect.apply(target, thisArg, argArray);
14468
- } });
14500
+ stopPropagation.call(event);
14501
+ };
14469
14502
  return {
14470
14503
  event,
14471
14504
  revoke() {
@@ -14474,10 +14507,13 @@ ${operationTypes.join("\n")}
14474
14507
  };
14475
14508
  }
14476
14509
  #callListener(event, listener) {
14510
+ for (const hook of this.#hookListeners.get("beforeEmit")) if (hook(event) === false) return;
14477
14511
  const returnValue = listener.call(this, event);
14478
- if (listener[kListenerOptions]?.once) {
14479
- const key = this.#isTypelessListener(listener) ? "*" : event.type;
14480
- this.#listeners.delete(key, listener);
14512
+ const options = this.#listenerOptions.get(listener);
14513
+ if (options?.once) {
14514
+ const type = this.#isTypelessListener(listener) ? "*" : event.type;
14515
+ this.#listeners.delete(type, listener);
14516
+ for (const hook of this.#hookListeners.get("removeListener")) hook(type, listener, options);
14481
14517
  }
14482
14518
  return returnValue;
14483
14519
  }
@@ -14489,7 +14525,7 @@ ${operationTypes.join("\n")}
14489
14525
  for (const [key, listener] of this.#listeners) if (key === "*" || key === type) yield listener;
14490
14526
  }
14491
14527
  #isTypelessListener(listener) {
14492
- return this.#listeners.get("*").includes(listener);
14528
+ return this.#typelessListeners.has(listener);
14493
14529
  }
14494
14530
  };
14495
14531
 
@@ -20456,7 +20492,13 @@ Consider naming this operation or using "graphql.operation()" request handler to
20456
20492
 
20457
20493
  // src/core/utils/internal/hasRefCounted.ts
20458
20494
  function hasRefCounted(value) {
20459
- return typeof Reflect.get(value, "ref") === "function" && typeof Reflect.get(value, "unref") === "function";
20495
+ return (
20496
+ /**
20497
+ * @note Guard against non-object values.
20498
+ * E.g. `setTimeout` returns an object in Node.js but a number in the browser.
20499
+ */
20500
+ isObject2(value) && typeof Reflect.get(value, "ref") === "function" && typeof Reflect.get(value, "unref") === "function"
20501
+ );
20460
20502
  }
20461
20503
 
20462
20504
  // src/core/ws/WebSocketMemoryClientStore.ts