@antelopejs/interface-core 0.0.10 → 0.0.12

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.
package/dist/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import "reflect-metadata";
2
2
  import type { Class } from "./decorators";
3
- import { AsyncProxy, type EventProxy, type RegisteringProxy } from "./proxies";
3
+ import { type InterfaceConnection } from "./internal";
4
+ import { type AsyncProxy, type EventProxy, type RegisteringProxy } from "./proxies";
4
5
  export * from "./errors";
5
- export { AsyncProxy, EventProxy, GetInterfaceProxyIdentity, GetResponsibleModule, IsInterfaceProxy, RegisteringProxy, RunWithResponsibleModule, } from "./proxies";
6
+ export type { InterfaceConnection } from "./internal";
7
+ export { AsyncProxy, EventProxy, GetInterfaceProxyIdentity, GetResponsibleModule, InterfaceFunction, IsInterfaceProxy, RegisteringProxy, RunWithResponsibleModule, } from "./proxies";
6
8
  /**
7
9
  * Gets metadata for a target object using the specified metadata class.
8
10
  *
@@ -17,16 +19,6 @@ export { AsyncProxy, EventProxy, GetInterfaceProxyIdentity, GetResponsibleModule
17
19
  export declare function GetMetadata<T extends Record<string, any>, U extends Record<string, any>>(target: U, meta: Class<T, [U]> & {
18
20
  key: symbol;
19
21
  }, inherit?: boolean): T;
20
- type Func<A extends any[] = any[], R = any> = (...args: A) => R;
21
- /**
22
- * Creates an interface function proxy.
23
- *
24
- * Returns a function that routes calls through an AsyncProxy, allowing for module-aware
25
- * asynchronous function calls that can be implemented by other modules.
26
- *
27
- * @returns A function that proxies calls to the implementation when available
28
- */
29
- export declare function InterfaceFunction<T extends Func = Func, R = Awaited<ReturnType<T>>>(identity?: string): (...args: Parameters<T>) => Promise<R>;
30
22
  type RID<T> = T extends (id: infer P, ...args: any[]) => void ? P : never;
31
23
  type InterfaceImplType<T> = T extends RegisteringProxy<infer P> ? {
32
24
  register: P;
@@ -56,10 +48,6 @@ export declare function ImplementInterface<T extends Record<string, unknown>, T2
56
48
  declaration: Awaited<T>;
57
49
  implementation: T2;
58
50
  }>;
59
- interface InterfaceConnection {
60
- id?: string;
61
- path: string;
62
- }
63
51
  /**
64
52
  * Gets all instances of a specific interface across the system.
65
53
  *
@@ -79,3 +67,5 @@ export declare function GetInterfaceInstances(interfaceID: string): InterfaceCon
79
67
  * @returns The interface connection or undefined if not found
80
68
  */
81
69
  export declare function GetInterfaceInstance(interfaceID: string, connectionID: string): InterfaceConnection | undefined;
70
+ export * from "./modules";
71
+ export * from "./runtime";
package/dist/index.js CHANGED
@@ -14,9 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.RunWithResponsibleModule = exports.RegisteringProxy = exports.IsInterfaceProxy = exports.GetResponsibleModule = exports.GetInterfaceProxyIdentity = exports.EventProxy = exports.AsyncProxy = void 0;
17
+ exports.RunWithResponsibleModule = exports.RegisteringProxy = exports.IsInterfaceProxy = exports.InterfaceFunction = exports.GetResponsibleModule = exports.GetInterfaceProxyIdentity = exports.EventProxy = exports.AsyncProxy = void 0;
18
18
  exports.GetMetadata = GetMetadata;
19
- exports.InterfaceFunction = InterfaceFunction;
20
19
  exports.ImplementInterface = ImplementInterface;
21
20
  exports.GetInterfaceInstances = GetInterfaceInstances;
22
21
  exports.GetInterfaceInstance = GetInterfaceInstance;
@@ -30,6 +29,7 @@ Object.defineProperty(exports, "AsyncProxy", { enumerable: true, get: function (
30
29
  Object.defineProperty(exports, "EventProxy", { enumerable: true, get: function () { return proxies_2.EventProxy; } });
31
30
  Object.defineProperty(exports, "GetInterfaceProxyIdentity", { enumerable: true, get: function () { return proxies_2.GetInterfaceProxyIdentity; } });
32
31
  Object.defineProperty(exports, "GetResponsibleModule", { enumerable: true, get: function () { return proxies_2.GetResponsibleModule; } });
32
+ Object.defineProperty(exports, "InterfaceFunction", { enumerable: true, get: function () { return proxies_2.InterfaceFunction; } });
33
33
  Object.defineProperty(exports, "IsInterfaceProxy", { enumerable: true, get: function () { return proxies_2.IsInterfaceProxy; } });
34
34
  Object.defineProperty(exports, "RegisteringProxy", { enumerable: true, get: function () { return proxies_2.RegisteringProxy; } });
35
35
  Object.defineProperty(exports, "RunWithResponsibleModule", { enumerable: true, get: function () { return proxies_2.RunWithResponsibleModule; } });
@@ -78,20 +78,6 @@ function GetMetadata(target, meta, inherit = true) {
78
78
  }
79
79
  return data;
80
80
  }
81
- /**
82
- * Creates an interface function proxy.
83
- *
84
- * Returns a function that routes calls through an AsyncProxy, allowing for module-aware
85
- * asynchronous function calls that can be implemented by other modules.
86
- *
87
- * @returns A function that proxies calls to the implementation when available
88
- */
89
- function InterfaceFunction(identity) {
90
- const proxy = new proxies_1.AsyncProxy(identity);
91
- const func = (...args) => proxy.call(...args);
92
- func.proxy = proxy;
93
- return func;
94
- }
95
81
  function isObject(value) {
96
82
  return typeof value === "object" && value !== null;
97
83
  }
@@ -219,4 +205,6 @@ function GetInterfaceInstance(interfaceID, connectionID) {
219
205
  const connections = internal_1.internal.interfaceConnections[module];
220
206
  return (connections[interfaceID] ?? []).find((connection) => connection.id === connectionID);
221
207
  }
208
+ __exportStar(require("./modules"), exports);
209
+ __exportStar(require("./runtime"), exports);
222
210
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,30 @@
1
1
  import { AsyncLocalStorage } from "node:async_hooks";
2
- export declare const RUNTIME_PROTOCOL_VERSION = 2;
2
+ export declare const RUNTIME_PROTOCOL_VERSION = 3;
3
3
  export declare const RUNTIME_SYMBOL: unique symbol;
4
+ /** Provider connection metadata visible to an interface consumer. */
4
5
  export interface InterfaceConnection {
6
+ /** Optional connection alias. */
5
7
  id?: string;
8
+ /** Resolved interface package path. */
6
9
  path: string;
10
+ /** Module ID of the provider represented by this connection. */
11
+ provider: string;
12
+ /** Whether this provider is selected for unqualified interface calls. */
13
+ selected: boolean;
7
14
  }
15
+ /** Module identity and provider routes propagated through asynchronous work. */
8
16
  export interface ModuleExecutionContext {
17
+ /** Stable module ID used by existing lifecycle and attribution APIs. */
9
18
  module: string;
19
+ /** Unique lifecycle generation ID. Defaults to the module ID when omitted. */
20
+ owner?: string;
21
+ /** Provider ID used when attaching implementations. */
10
22
  provider?: string;
23
+ /** Provider selections keyed by stable interface proxy identity. */
11
24
  providerRoutes?: Readonly<Record<string, string>>;
12
25
  }
13
26
  interface ActiveModuleExecutionContext extends ModuleExecutionContext {
27
+ owner: string;
14
28
  ownershipToken: symbol;
15
29
  }
16
30
  export interface ProxyBrand {
@@ -48,13 +62,15 @@ export interface InterfaceRuntime {
48
62
  }>>;
49
63
  registeringProxies: Set<{
50
64
  unregisterModule(module: string): void;
65
+ unregisterOwner(owner: string): void;
51
66
  }>;
52
67
  knownEvents: Set<{
53
68
  unregisterModule(module: string): void;
69
+ unregisterOwner(owner: string): void;
54
70
  }>;
55
71
  interfaceConnections: Record<string, Record<string, InterfaceConnection[]>>;
56
72
  executionContext: AsyncLocalStorage<ActiveModuleExecutionContext>;
57
- activeModuleTokens: Map<string, symbol>;
73
+ activeOwnerTokens: Map<string, symbol>;
58
74
  proxyStates: Map<string, RuntimeProxyState>;
59
75
  nextProxyIdentity: number;
60
76
  nextLeaseGeneration: number;
@@ -72,6 +88,9 @@ export interface InterfaceRuntime {
72
88
  /** @internal */
73
89
  export declare const internal: InterfaceRuntime;
74
90
  export declare function runWithModuleContext<T>(context: ModuleExecutionContext, callback: () => T): T;
91
+ export declare function captureModuleContext(): ActiveModuleExecutionContext | undefined;
92
+ export declare function runWithCapturedModuleContext<T>(context: ActiveModuleExecutionContext, callback: () => T): T;
93
+ export declare function peekModuleContext(): ModuleExecutionContext | undefined;
75
94
  export declare function getModuleContext(): ModuleExecutionContext | undefined;
76
- export declare function invalidateModuleContext(module: string): void;
95
+ export declare function invalidateModuleContext(owner: string): void;
77
96
  export {};
package/dist/internal.js CHANGED
@@ -2,11 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.internal = exports.RUNTIME_SYMBOL = exports.RUNTIME_PROTOCOL_VERSION = void 0;
4
4
  exports.runWithModuleContext = runWithModuleContext;
5
+ exports.captureModuleContext = captureModuleContext;
6
+ exports.runWithCapturedModuleContext = runWithCapturedModuleContext;
7
+ exports.peekModuleContext = peekModuleContext;
5
8
  exports.getModuleContext = getModuleContext;
6
9
  exports.invalidateModuleContext = invalidateModuleContext;
7
10
  const node_async_hooks_1 = require("node:async_hooks");
8
11
  const errors_1 = require("./errors");
9
- exports.RUNTIME_PROTOCOL_VERSION = 2;
12
+ exports.RUNTIME_PROTOCOL_VERSION = 3;
10
13
  exports.RUNTIME_SYMBOL = Symbol.for("@antelopejs/interface-core/runtime");
11
14
  function addToMapSet(map, key, value) {
12
15
  const values = map.get(key) ?? new Set();
@@ -24,7 +27,7 @@ function createRuntime() {
24
27
  knownEvents: new Set(),
25
28
  interfaceConnections: Object.create(null),
26
29
  executionContext: new node_async_hooks_1.AsyncLocalStorage(),
27
- activeModuleTokens: new Map(),
30
+ activeOwnerTokens: new Map(),
28
31
  proxyStates: new Map(),
29
32
  nextProxyIdentity: 1,
30
33
  nextLeaseGeneration: 1,
@@ -58,17 +61,17 @@ function getRuntime() {
58
61
  }
59
62
  /** @internal */
60
63
  exports.internal = getRuntime();
61
- function getModuleToken(module) {
62
- const activeToken = exports.internal.activeModuleTokens.get(module);
64
+ function getOwnerToken(owner) {
65
+ const activeToken = exports.internal.activeOwnerTokens.get(owner);
63
66
  if (activeToken) {
64
67
  return activeToken;
65
68
  }
66
- const token = Symbol(module);
67
- exports.internal.activeModuleTokens.set(module, token);
69
+ const token = Symbol(owner);
70
+ exports.internal.activeOwnerTokens.set(owner, token);
68
71
  return token;
69
72
  }
70
73
  function assertActiveModuleContext(context) {
71
- if (exports.internal.activeModuleTokens.get(context.module) !== context.ownershipToken) {
74
+ if (exports.internal.activeOwnerTokens.get(context.owner) !== context.ownershipToken) {
72
75
  throw new errors_1.ModuleContextInvalidatedError(context.module);
73
76
  }
74
77
  }
@@ -80,20 +83,32 @@ function runWithModuleContext(context, callback) {
80
83
  if (!context.module) {
81
84
  throw new Error("Module execution context requires a module ID.");
82
85
  }
86
+ const owner = context.owner ?? context.module;
83
87
  const activeContext = {
84
88
  ...context,
85
- ownershipToken: getModuleToken(context.module),
89
+ owner,
90
+ ownershipToken: getOwnerToken(owner),
86
91
  };
87
92
  return exports.internal.executionContext.run(activeContext, callback);
88
93
  }
89
- function getModuleContext() {
94
+ function captureModuleContext() {
90
95
  const context = exports.internal.executionContext.getStore();
91
96
  if (context) {
92
97
  assertActiveModuleContext(context);
93
98
  }
94
99
  return context;
95
100
  }
96
- function invalidateModuleContext(module) {
97
- exports.internal.activeModuleTokens.delete(module);
101
+ function runWithCapturedModuleContext(context, callback) {
102
+ assertActiveModuleContext(context);
103
+ return exports.internal.executionContext.run(context, callback);
104
+ }
105
+ function peekModuleContext() {
106
+ return exports.internal.executionContext.getStore();
107
+ }
108
+ function getModuleContext() {
109
+ return captureModuleContext();
110
+ }
111
+ function invalidateModuleContext(owner) {
112
+ exports.internal.activeOwnerTokens.delete(owner);
98
113
  }
99
114
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"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"}
package/dist/modules.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { EventProxy } from ".";
2
1
  import { type ModuleExecutionContext } from "./internal";
2
+ import { EventProxy } from "./proxies";
3
3
  /** Runs work with module ownership and an optional provider route across awaits. */
4
4
  export declare function RunWithModuleContext<T>(context: ModuleExecutionContext, callback: () => T): T;
5
5
  /** Returns the active module execution context, if one exists. */
package/dist/modules.js CHANGED
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReloadModule = exports.DestroyModule = exports.StopModule = exports.StartModule = exports.LoadModule = exports.GetModuleInfo = exports.ListModules = exports.Events = void 0;
4
4
  exports.RunWithModuleContext = RunWithModuleContext;
5
5
  exports.GetModuleContext = GetModuleContext;
6
- const _1 = require(".");
7
6
  const internal_1 = require("./internal");
7
+ const proxies_1 = require("./proxies");
8
8
  /** Runs work with module ownership and an optional provider route across awaits. */
9
9
  function RunWithModuleContext(context, callback) {
10
10
  return (0, internal_1.runWithModuleContext)(context, callback);
@@ -29,7 +29,7 @@ var Events;
29
29
  *
30
30
  * @param module Module ID
31
31
  */
32
- Events.ModuleConstructed = new _1.EventProxy("modules.ModuleConstructed");
32
+ Events.ModuleConstructed = new proxies_1.EventProxy("modules.ModuleConstructed");
33
33
  /**
34
34
  * Event triggers when a module is started.
35
35
  *
@@ -38,7 +38,7 @@ var Events;
38
38
  *
39
39
  * @param module Module ID
40
40
  */
41
- Events.ModuleStarted = new _1.EventProxy("modules.ModuleStarted");
41
+ Events.ModuleStarted = new proxies_1.EventProxy("modules.ModuleStarted");
42
42
  /**
43
43
  * Event triggers when a module is stopped.
44
44
  *
@@ -47,7 +47,7 @@ var Events;
47
47
  *
48
48
  * @param module Module ID
49
49
  */
50
- Events.ModuleStopped = new _1.EventProxy("modules.ModuleStopped");
50
+ Events.ModuleStopped = new proxies_1.EventProxy("modules.ModuleStopped");
51
51
  /**
52
52
  * Event triggers when a module is destroyed.
53
53
  *
@@ -56,7 +56,7 @@ var Events;
56
56
  *
57
57
  * @param module Module ID
58
58
  */
59
- Events.ModuleDestroyed = new _1.EventProxy("modules.ModuleDestroyed");
59
+ Events.ModuleDestroyed = new proxies_1.EventProxy("modules.ModuleDestroyed");
60
60
  })(Events || (exports.Events = Events = {}));
61
61
  function runCleanup(cleanup, module, operation) {
62
62
  try {
@@ -71,19 +71,27 @@ function runCleanup(cleanup, module, operation) {
71
71
  internal_1.internal.runtimeErrorReporter?.(error, { operation, module });
72
72
  }
73
73
  }
74
+ function getDestroyedOwner(module) {
75
+ const context = (0, internal_1.peekModuleContext)();
76
+ if (context?.module !== module) {
77
+ return module;
78
+ }
79
+ return context.owner ?? module;
80
+ }
74
81
  Events.ModuleDestroyed.register((module) => {
75
- (0, internal_1.invalidateModuleContext)(module);
76
- for (const cleanup of internal_1.internal.knownAsync.get(module) ?? []) {
77
- runCleanup(cleanup, module, "detach-async-provider");
82
+ const owner = getDestroyedOwner(module);
83
+ (0, internal_1.invalidateModuleContext)(owner);
84
+ for (const cleanup of internal_1.internal.knownAsync.get(owner) ?? []) {
85
+ runCleanup(cleanup, owner, "detach-async-provider");
78
86
  }
79
- internal_1.internal.knownAsync.delete(module);
80
- for (const cleanup of internal_1.internal.knownRegisters.get(module) ?? []) {
81
- runCleanup(cleanup, module, "detach-registering-provider");
87
+ internal_1.internal.knownAsync.delete(owner);
88
+ for (const cleanup of internal_1.internal.knownRegisters.get(owner) ?? []) {
89
+ runCleanup(cleanup, owner, "detach-registering-provider");
82
90
  }
83
- internal_1.internal.knownRegisters.delete(module);
91
+ internal_1.internal.knownRegisters.delete(owner);
84
92
  for (const proxy of internal_1.internal.registeringProxies) {
85
93
  try {
86
- proxy.unregisterModule(module);
94
+ proxy.unregisterOwner(owner);
87
95
  }
88
96
  catch (error) {
89
97
  internal_1.internal.runtimeErrorReporter?.(error, {
@@ -94,7 +102,7 @@ Events.ModuleDestroyed.register((module) => {
94
102
  }
95
103
  for (const proxy of internal_1.internal.knownEvents) {
96
104
  try {
97
- proxy.unregisterModule(module);
105
+ proxy.unregisterOwner(owner);
98
106
  }
99
107
  catch (error) {
100
108
  internal_1.internal.runtimeErrorReporter?.(error, {
@@ -112,7 +120,7 @@ Events.ModuleDestroyed.register((module) => {
112
120
  *
113
121
  * @returns Array of module IDs
114
122
  */
115
- exports.ListModules = (0, _1.InterfaceFunction)("modules.ListModules");
123
+ exports.ListModules = (0, proxies_1.InterfaceFunction)("modules.ListModules");
116
124
  /**
117
125
  * Retrieve the configuration and status information of a loaded module.
118
126
  *
@@ -122,7 +130,7 @@ exports.ListModules = (0, _1.InterfaceFunction)("modules.ListModules");
122
130
  * @param module The module ID to get information for
123
131
  * @returns Complete module information object
124
132
  */
125
- exports.GetModuleInfo = (0, _1.InterfaceFunction)("modules.GetModuleInfo");
133
+ exports.GetModuleInfo = (0, proxies_1.InterfaceFunction)("modules.GetModuleInfo");
126
134
  /**
127
135
  * Load a new module with the given ID and configuration.
128
136
  *
@@ -133,7 +141,7 @@ exports.GetModuleInfo = (0, _1.InterfaceFunction)("modules.GetModuleInfo");
133
141
  * @param configuration Module configuration including source information
134
142
  * @param autostart Whether to automatically start the module after loading (default: false)
135
143
  */
136
- exports.LoadModule = (0, _1.InterfaceFunction)("modules.LoadModule");
144
+ exports.LoadModule = (0, proxies_1.InterfaceFunction)("modules.LoadModule");
137
145
  /**
138
146
  * Start a loaded but inactive module.
139
147
  *
@@ -143,7 +151,7 @@ exports.LoadModule = (0, _1.InterfaceFunction)("modules.LoadModule");
143
151
  * @param module The module ID to start
144
152
  * @throws Error if the module is not loaded or cannot be started
145
153
  */
146
- exports.StartModule = (0, _1.InterfaceFunction)("modules.StartModule");
154
+ exports.StartModule = (0, proxies_1.InterfaceFunction)("modules.StartModule");
147
155
  /**
148
156
  * Stop an active module.
149
157
  *
@@ -153,7 +161,7 @@ exports.StartModule = (0, _1.InterfaceFunction)("modules.StartModule");
153
161
  * @param module The module ID to stop
154
162
  * @throws Error if the module is not loaded or cannot be stopped
155
163
  */
156
- exports.StopModule = (0, _1.InterfaceFunction)("modules.StopModule");
164
+ exports.StopModule = (0, proxies_1.InterfaceFunction)("modules.StopModule");
157
165
  /**
158
166
  * Destroy a stopped module.
159
167
  *
@@ -163,7 +171,7 @@ exports.StopModule = (0, _1.InterfaceFunction)("modules.StopModule");
163
171
  * @param module The module ID to destroy
164
172
  * @throws Error if the module is active or not loaded
165
173
  */
166
- exports.DestroyModule = (0, _1.InterfaceFunction)("modules.DestroyModule");
174
+ exports.DestroyModule = (0, proxies_1.InterfaceFunction)("modules.DestroyModule");
167
175
  /**
168
176
  * Unload a module and retrigger its source mechanism.
169
177
  *
@@ -174,5 +182,5 @@ exports.DestroyModule = (0, _1.InterfaceFunction)("modules.DestroyModule");
174
182
  * @param module The module ID to reload
175
183
  * @throws Error if the module cannot be reloaded
176
184
  */
177
- exports.ReloadModule = (0, _1.InterfaceFunction)("modules.ReloadModule");
185
+ exports.ReloadModule = (0, proxies_1.InterfaceFunction)("modules.ReloadModule");
178
186
  //# sourceMappingURL=modules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
package/dist/proxies.d.ts CHANGED
@@ -32,6 +32,8 @@ export declare class AsyncProxy<T extends Func = Func, R = Awaited<ReturnType<T>
32
32
  private invoke;
33
33
  private replayQueue;
34
34
  }
35
+ /** Creates an interface function backed by an asynchronous proxy. */
36
+ export declare function InterfaceFunction<T extends Func = Func, R = Awaited<ReturnType<T>>>(identity?: string): (...args: Parameters<T>) => Promise<R>;
35
37
  /** Proxy for provider-aware register and unregister handlers. */
36
38
  export declare class RegisteringProxy<T extends RegisterFunction = RegisterFunction> {
37
39
  readonly [PROXY_BRAND]: ProxyBrand;
@@ -51,7 +53,14 @@ export declare class RegisteringProxy<T extends RegisterFunction = RegisterFunct
51
53
  unregister(id: RID<T>): void;
52
54
  /** Unregisters every entry owned by a destroyed module. */
53
55
  unregisterModule(module: string): void;
54
- private attachHandlers;
56
+ /** Unregisters every entry owned by a destroyed module generation. */
57
+ unregisterOwner(owner: string): void;
58
+ private unregisterMatching;
59
+ private attachRegister;
60
+ private attachUnregister;
61
+ private trackAttachment;
62
+ private createLease;
63
+ private createAttachment;
55
64
  private replayRegistrations;
56
65
  }
57
66
  type EventFunction = (...args: any[]) => void;
@@ -68,6 +77,8 @@ export declare class EventProxy<T extends EventFunction = EventFunction> {
68
77
  unregister(fn: T): void;
69
78
  /** Unregisters handlers owned by a destroyed module. */
70
79
  unregisterModule(module: string): void;
80
+ /** Unregisters handlers owned by a destroyed module generation. */
81
+ unregisterOwner(owner: string): void;
71
82
  }
72
83
  /** Gets the responsible module from explicit async context or the call stack. */
73
84
  export declare function GetResponsibleModule(startFrame?: number): string | undefined;