@a0n/aeon 5.0.1 → 5.0.2

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 (39) hide show
  1. package/dist/AeonEventEmitter-B1DzaYFk.d.cts +23 -0
  2. package/dist/AeonEventEmitter-B1DzaYFk.d.ts +23 -0
  3. package/dist/compression/index.d.cts +1 -1
  4. package/dist/compression/index.d.ts +1 -1
  5. package/dist/core/index.cjs +89 -0
  6. package/dist/core/index.cjs.map +1 -1
  7. package/dist/core/index.d.cts +2 -212
  8. package/dist/core/index.d.ts +2 -212
  9. package/dist/core/index.js +88 -0
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/distributed/index.cjs +88 -4
  12. package/dist/distributed/index.cjs.map +1 -1
  13. package/dist/distributed/index.d.cts +2 -2
  14. package/dist/distributed/index.d.ts +2 -2
  15. package/dist/distributed/index.js +88 -4
  16. package/dist/distributed/index.js.map +1 -1
  17. package/dist/index.cjs +98 -4
  18. package/dist/index.cjs.map +1 -1
  19. package/dist/index.d.cts +2 -2
  20. package/dist/index.d.ts +2 -2
  21. package/dist/index.js +98 -5
  22. package/dist/index.js.map +1 -1
  23. package/dist/offline/index.cjs +88 -4
  24. package/dist/offline/index.cjs.map +1 -1
  25. package/dist/offline/index.d.cts +3 -3
  26. package/dist/offline/index.d.ts +3 -3
  27. package/dist/offline/index.js +88 -4
  28. package/dist/offline/index.js.map +1 -1
  29. package/dist/optimization/index.d.cts +1 -1
  30. package/dist/optimization/index.d.ts +1 -1
  31. package/dist/presence/index.cjs +88 -4
  32. package/dist/presence/index.cjs.map +1 -1
  33. package/dist/presence/index.d.cts +2 -2
  34. package/dist/presence/index.d.ts +2 -2
  35. package/dist/presence/index.js +88 -4
  36. package/dist/presence/index.js.map +1 -1
  37. package/dist/types-Bj5EbkSK.d.cts +212 -0
  38. package/dist/types-Bj5EbkSK.d.ts +212 -0
  39. package/package.json +15 -17
@@ -1,4 +1,4 @@
1
- import { EventEmitter } from 'eventemitter3';
1
+ import { A as AeonEventEmitter } from '../AeonEventEmitter-B1DzaYFk.cjs';
2
2
  import { I as ICryptoProvider, d as AeonEncryptionMode, e as AuthenticatedMessageFields } from '../CryptoProvider-SLWjqByk.cjs';
3
3
  import { S as StorageAdapter, b as PersistenceSerializer, a as PersistenceDeserializer } from '../types-CMxO7QF0.cjs';
4
4
 
@@ -58,7 +58,7 @@ interface SyncEvent {
58
58
  * Sync Coordinator
59
59
  * Coordinates synchronization across distributed nodes
60
60
  */
61
- declare class SyncCoordinator extends EventEmitter {
61
+ declare class SyncCoordinator extends AeonEventEmitter {
62
62
  private static readonly MAX_SYNC_EVENTS;
63
63
  private nodes;
64
64
  private sessions;
@@ -1,4 +1,4 @@
1
- import { EventEmitter } from 'eventemitter3';
1
+ import { A as AeonEventEmitter } from '../AeonEventEmitter-B1DzaYFk.js';
2
2
  import { I as ICryptoProvider, d as AeonEncryptionMode, e as AuthenticatedMessageFields } from '../CryptoProvider-SLWjqByk.js';
3
3
  import { S as StorageAdapter, b as PersistenceSerializer, a as PersistenceDeserializer } from '../types-CMxO7QF0.js';
4
4
 
@@ -58,7 +58,7 @@ interface SyncEvent {
58
58
  * Sync Coordinator
59
59
  * Coordinates synchronization across distributed nodes
60
60
  */
61
- declare class SyncCoordinator extends EventEmitter {
61
+ declare class SyncCoordinator extends AeonEventEmitter {
62
62
  private static readonly MAX_SYNC_EVENTS;
63
63
  private nodes;
64
64
  private sessions;
@@ -1,6 +1,90 @@
1
- import { EventEmitter } from 'eventemitter3';
2
-
3
- // src/distributed/SyncCoordinator.ts
1
+ // src/core/AeonEventEmitter.ts
2
+ var AeonEventEmitter = class {
3
+ listenerMap = /* @__PURE__ */ new Map();
4
+ on(event, fn, context) {
5
+ return this.registerListener(event, fn, context, false);
6
+ }
7
+ addListener(event, fn, context) {
8
+ return this.registerListener(event, fn, context, false);
9
+ }
10
+ once(event, fn, context) {
11
+ return this.registerListener(event, fn, context, true);
12
+ }
13
+ off(event, fn, context, once) {
14
+ return this.removeListener(event, fn, context, once);
15
+ }
16
+ removeListener(event, fn, context, once) {
17
+ const listeners = this.listenerMap.get(event);
18
+ if (!listeners) {
19
+ return this;
20
+ }
21
+ if (!fn) {
22
+ this.listenerMap.delete(event);
23
+ return this;
24
+ }
25
+ const retained = listeners.filter(
26
+ (listener) => listener.fn !== fn || once === true && listener.once !== true || context !== void 0 && listener.context !== context
27
+ );
28
+ if (retained.length === 0) {
29
+ this.listenerMap.delete(event);
30
+ return this;
31
+ }
32
+ this.listenerMap.set(
33
+ event,
34
+ retained
35
+ );
36
+ return this;
37
+ }
38
+ removeAllListeners(event) {
39
+ if (event === void 0) {
40
+ this.listenerMap.clear();
41
+ return this;
42
+ }
43
+ this.listenerMap.delete(event);
44
+ return this;
45
+ }
46
+ emit(event, ...args) {
47
+ const listeners = this.listenerMap.get(event);
48
+ if (!listeners || listeners.length === 0) {
49
+ return false;
50
+ }
51
+ for (const listener of [...listeners]) {
52
+ if (listener.once) {
53
+ this.removeListener(event, listener.fn, listener.context, true);
54
+ }
55
+ listener.fn.apply(listener.context, args);
56
+ }
57
+ return true;
58
+ }
59
+ eventNames() {
60
+ return Array.from(this.listenerMap.keys());
61
+ }
62
+ listeners(event) {
63
+ return this.listenerMap.get(event)?.map((listener) => listener.fn) ?? [];
64
+ }
65
+ listenerCount(event) {
66
+ return this.listenerMap.get(event)?.length ?? 0;
67
+ }
68
+ subscribe(event, fn, context) {
69
+ this.on(event, fn, context);
70
+ return () => {
71
+ this.off(event, fn, context);
72
+ };
73
+ }
74
+ registerListener(event, fn, context, once) {
75
+ if (typeof fn !== "function") {
76
+ throw new TypeError("The listener must be a function");
77
+ }
78
+ const listeners = this.listenerMap.get(event) ?? [];
79
+ listeners.push({
80
+ fn,
81
+ context: context || this,
82
+ once
83
+ });
84
+ this.listenerMap.set(event, listeners);
85
+ return this;
86
+ }
87
+ };
4
88
 
5
89
  // src/utils/logger.ts
6
90
  var consoleLogger = {
@@ -29,7 +113,7 @@ var logger = {
29
113
  };
30
114
 
31
115
  // src/distributed/SyncCoordinator.ts
32
- var SyncCoordinator = class _SyncCoordinator extends EventEmitter {
116
+ var SyncCoordinator = class _SyncCoordinator extends AeonEventEmitter {
33
117
  static MAX_SYNC_EVENTS = 1e4;
34
118
  nodes = /* @__PURE__ */ new Map();
35
119
  sessions = /* @__PURE__ */ new Map();