@blac/core 2.0.0-rc.0 → 2.0.0-rc.10

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 (146) hide show
  1. package/dist/adapter/framework-adapter.d.ts +33 -0
  2. package/dist/adapter/index.d.ts +7 -2
  3. package/dist/constants.d.ts +82 -0
  4. package/dist/core/Cubit.d.ts +40 -0
  5. package/dist/core/StateContainer.d.ts +78 -0
  6. package/dist/core/StateContainerRegistry.d.ts +119 -0
  7. package/dist/core/Vertex.d.ts +74 -0
  8. package/dist/decorators/blac.d.ts +31 -0
  9. package/dist/decorators/index.d.ts +2 -0
  10. package/dist/index.cjs +1870 -38
  11. package/dist/index.d.cts +21 -0
  12. package/dist/index.d.ts +19 -15
  13. package/dist/index.js +1789 -37
  14. package/dist/logging/Logger.d.ts +57 -0
  15. package/dist/plugin/BlacPlugin.d.ts +46 -0
  16. package/dist/plugin/PluginManager.d.ts +38 -0
  17. package/dist/registry/index.d.ts +20 -0
  18. package/dist/test-utils/index.d.ts +43 -0
  19. package/dist/tracking/dependency-tracker.d.ts +21 -0
  20. package/dist/tracking/getter-tracker.d.ts +31 -0
  21. package/dist/tracking/index.d.ts +38 -0
  22. package/dist/tracking/path-utils.d.ts +39 -0
  23. package/dist/tracking/proxy-tracker.d.ts +88 -0
  24. package/dist/types/branded.d.ts +9 -0
  25. package/dist/types/events.d.ts +13 -0
  26. package/dist/types/utilities.d.ts +19 -0
  27. package/dist/utils/equality.d.ts +9 -0
  28. package/dist/utils/idGenerator.d.ts +76 -0
  29. package/dist/utils/immutable.d.ts +16 -0
  30. package/dist/utils/stack-trace.d.ts +19 -0
  31. package/dist/utils/static-props.d.ts +29 -0
  32. package/package.json +33 -13
  33. package/dist/.tsbuildinfo +0 -1
  34. package/dist/Blac.d.ts +0 -246
  35. package/dist/Blac.d.ts.map +0 -1
  36. package/dist/Blac.js +0 -625
  37. package/dist/Blac.js.map +0 -1
  38. package/dist/Bloc.d.ts +0 -41
  39. package/dist/Bloc.d.ts.map +0 -1
  40. package/dist/Bloc.js +0 -140
  41. package/dist/Bloc.js.map +0 -1
  42. package/dist/BlocBase.d.ts +0 -110
  43. package/dist/BlocBase.d.ts.map +0 -1
  44. package/dist/BlocBase.js +0 -287
  45. package/dist/BlocBase.js.map +0 -1
  46. package/dist/Cubit.d.ts +0 -25
  47. package/dist/Cubit.d.ts.map +0 -1
  48. package/dist/Cubit.js +0 -64
  49. package/dist/Cubit.js.map +0 -1
  50. package/dist/adapter/BlacAdapter.d.ts +0 -71
  51. package/dist/adapter/BlacAdapter.d.ts.map +0 -1
  52. package/dist/adapter/BlacAdapter.js +0 -373
  53. package/dist/adapter/BlacAdapter.js.map +0 -1
  54. package/dist/adapter/ProxyFactory.d.ts +0 -50
  55. package/dist/adapter/ProxyFactory.d.ts.map +0 -1
  56. package/dist/adapter/ProxyFactory.js +0 -150
  57. package/dist/adapter/ProxyFactory.js.map +0 -1
  58. package/dist/adapter/index.d.ts.map +0 -1
  59. package/dist/adapter/index.js +0 -19
  60. package/dist/adapter/index.js.map +0 -1
  61. package/dist/errors/BlacError.d.ts +0 -38
  62. package/dist/errors/BlacError.d.ts.map +0 -1
  63. package/dist/errors/BlacError.js +0 -55
  64. package/dist/errors/BlacError.js.map +0 -1
  65. package/dist/errors/ErrorManager.d.ts +0 -39
  66. package/dist/errors/ErrorManager.d.ts.map +0 -1
  67. package/dist/errors/ErrorManager.js +0 -91
  68. package/dist/errors/ErrorManager.js.map +0 -1
  69. package/dist/errors/handleError.d.ts +0 -24
  70. package/dist/errors/handleError.d.ts.map +0 -1
  71. package/dist/errors/handleError.js +0 -62
  72. package/dist/errors/handleError.js.map +0 -1
  73. package/dist/errors/index.d.ts +0 -5
  74. package/dist/errors/index.d.ts.map +0 -1
  75. package/dist/errors/index.js +0 -13
  76. package/dist/errors/index.js.map +0 -1
  77. package/dist/events.d.ts +0 -11
  78. package/dist/events.d.ts.map +0 -1
  79. package/dist/events.js +0 -17
  80. package/dist/events.js.map +0 -1
  81. package/dist/index.d.ts.map +0 -1
  82. package/dist/index.js.map +0 -1
  83. package/dist/lifecycle/BlocLifecycle.d.ts +0 -51
  84. package/dist/lifecycle/BlocLifecycle.d.ts.map +0 -1
  85. package/dist/lifecycle/BlocLifecycle.js +0 -123
  86. package/dist/lifecycle/BlocLifecycle.js.map +0 -1
  87. package/dist/lifecycle/index.d.ts +0 -2
  88. package/dist/lifecycle/index.d.ts.map +0 -1
  89. package/dist/lifecycle/index.js +0 -18
  90. package/dist/lifecycle/index.js.map +0 -1
  91. package/dist/plugins/BlocPluginRegistry.d.ts +0 -58
  92. package/dist/plugins/BlocPluginRegistry.d.ts.map +0 -1
  93. package/dist/plugins/BlocPluginRegistry.js +0 -201
  94. package/dist/plugins/BlocPluginRegistry.js.map +0 -1
  95. package/dist/plugins/SystemPluginRegistry.d.ts +0 -79
  96. package/dist/plugins/SystemPluginRegistry.d.ts.map +0 -1
  97. package/dist/plugins/SystemPluginRegistry.js +0 -184
  98. package/dist/plugins/SystemPluginRegistry.js.map +0 -1
  99. package/dist/plugins/index.d.ts +0 -4
  100. package/dist/plugins/index.d.ts.map +0 -1
  101. package/dist/plugins/index.js +0 -26
  102. package/dist/plugins/index.js.map +0 -1
  103. package/dist/plugins/types.d.ts +0 -103
  104. package/dist/plugins/types.d.ts.map +0 -1
  105. package/dist/plugins/types.js +0 -3
  106. package/dist/plugins/types.js.map +0 -1
  107. package/dist/subscription/SubscriptionManager.d.ts +0 -67
  108. package/dist/subscription/SubscriptionManager.d.ts.map +0 -1
  109. package/dist/subscription/SubscriptionManager.js +0 -317
  110. package/dist/subscription/SubscriptionManager.js.map +0 -1
  111. package/dist/subscription/index.d.ts +0 -3
  112. package/dist/subscription/index.d.ts.map +0 -1
  113. package/dist/subscription/index.js +0 -19
  114. package/dist/subscription/index.js.map +0 -1
  115. package/dist/subscription/types.d.ts +0 -65
  116. package/dist/subscription/types.d.ts.map +0 -1
  117. package/dist/subscription/types.js +0 -3
  118. package/dist/subscription/types.js.map +0 -1
  119. package/dist/testing.d.ts +0 -85
  120. package/dist/testing.d.ts.map +0 -1
  121. package/dist/testing.js +0 -186
  122. package/dist/testing.js.map +0 -1
  123. package/dist/types.d.ts +0 -57
  124. package/dist/types.d.ts.map +0 -1
  125. package/dist/types.js +0 -3
  126. package/dist/types.js.map +0 -1
  127. package/dist/utils/BatchingManager.d.ts +0 -28
  128. package/dist/utils/BatchingManager.d.ts.map +0 -1
  129. package/dist/utils/BatchingManager.js +0 -48
  130. package/dist/utils/BatchingManager.js.map +0 -1
  131. package/dist/utils/RerenderLogger.d.ts +0 -60
  132. package/dist/utils/RerenderLogger.d.ts.map +0 -1
  133. package/dist/utils/RerenderLogger.js +0 -205
  134. package/dist/utils/RerenderLogger.js.map +0 -1
  135. package/dist/utils/generateInstanceId.d.ts +0 -11
  136. package/dist/utils/generateInstanceId.d.ts.map +0 -1
  137. package/dist/utils/generateInstanceId.js +0 -50
  138. package/dist/utils/generateInstanceId.js.map +0 -1
  139. package/dist/utils/shallowEqual.d.ts +0 -9
  140. package/dist/utils/shallowEqual.d.ts.map +0 -1
  141. package/dist/utils/shallowEqual.js +0 -35
  142. package/dist/utils/shallowEqual.js.map +0 -1
  143. package/dist/utils/uuid.d.ts +0 -10
  144. package/dist/utils/uuid.d.ts.map +0 -1
  145. package/dist/utils/uuid.js +0 -24
  146. package/dist/utils/uuid.js.map +0 -1
@@ -1,184 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SystemPluginRegistry = void 0;
4
- /**
5
- * Registry for system-wide plugins
6
- */
7
- class SystemPluginRegistry {
8
- plugins = new Map();
9
- metrics = new Map();
10
- executionOrder = [];
11
- /**
12
- * Add a system plugin
13
- */
14
- add(plugin) {
15
- if (this.plugins.has(plugin.name)) {
16
- throw new Error(`Plugin '${plugin.name}' is already registered`);
17
- }
18
- this.plugins.set(plugin.name, plugin);
19
- this.executionOrder.push(plugin.name);
20
- this.initializeMetrics(plugin.name);
21
- }
22
- /**
23
- * Remove a system plugin
24
- */
25
- remove(pluginName) {
26
- const plugin = this.plugins.get(pluginName);
27
- if (!plugin)
28
- return false;
29
- this.plugins.delete(pluginName);
30
- this.metrics.delete(pluginName);
31
- this.executionOrder = this.executionOrder.filter((name) => name !== pluginName);
32
- return true;
33
- }
34
- /**
35
- * Get a plugin by name
36
- */
37
- get(pluginName) {
38
- return this.plugins.get(pluginName);
39
- }
40
- /**
41
- * Get all plugins in execution order
42
- */
43
- getAll() {
44
- return this.executionOrder.map((name) => this.plugins.get(name));
45
- }
46
- /**
47
- * Clear all plugins
48
- */
49
- clear() {
50
- this.plugins.clear();
51
- this.metrics.clear();
52
- this.executionOrder = [];
53
- }
54
- /**
55
- * Execute a hook on all plugins
56
- */
57
- executeHook(hookName, args, errorHandler) {
58
- for (const pluginName of this.executionOrder) {
59
- const plugin = this.plugins.get(pluginName);
60
- const hook = plugin[hookName];
61
- if (typeof hook !== 'function')
62
- continue;
63
- const startTime = performance.now();
64
- try {
65
- hook.apply(plugin, args);
66
- this.recordSuccess(pluginName, hookName, startTime);
67
- }
68
- catch (error) {
69
- this.recordError(pluginName, hookName, error);
70
- if (errorHandler) {
71
- errorHandler(error, plugin);
72
- }
73
- else {
74
- // Default: log and continue
75
- console.error(`Plugin '${pluginName}' error in hook '${hookName}':`, error);
76
- }
77
- }
78
- }
79
- }
80
- /**
81
- * Bootstrap all plugins
82
- */
83
- bootstrap() {
84
- this.executeHook('beforeBootstrap', []);
85
- this.executeHook('afterBootstrap', []);
86
- }
87
- /**
88
- * Shutdown all plugins
89
- */
90
- shutdown() {
91
- this.executeHook('beforeShutdown', []);
92
- this.executeHook('afterShutdown', []);
93
- }
94
- /**
95
- * Notify plugins of bloc creation
96
- */
97
- notifyBlocCreated(bloc) {
98
- this.executeHook('onBlocCreated', [bloc]);
99
- }
100
- /**
101
- * Notify plugins of bloc disposal
102
- */
103
- notifyBlocDisposed(bloc) {
104
- this.executeHook('onBlocDisposed', [bloc]);
105
- }
106
- /**
107
- * Notify plugins of state change
108
- */
109
- notifyStateChanged(bloc, previousState, currentState) {
110
- this.executeHook('onStateChanged', [bloc, previousState, currentState]);
111
- }
112
- /**
113
- * Notify plugins of event addition
114
- */
115
- notifyEventAdded(bloc, event) {
116
- this.executeHook('onEventAdded', [bloc, event]);
117
- }
118
- /**
119
- * Notify plugins of errors
120
- */
121
- notifyError(error, bloc, context) {
122
- this.executeHook('onError', [error, bloc, context], (hookError, plugin) => {
123
- // Double fault protection - if error handler fails, just log
124
- console.error(`Plugin '${plugin.name}' error handler failed:`, hookError);
125
- });
126
- }
127
- /**
128
- * Notify plugins of adapter lifecycle events
129
- */
130
- notifyAdapterCreated(adapter, metadata) {
131
- this.executeHook('onAdapterCreated', [adapter, metadata]);
132
- }
133
- notifyAdapterMount(adapter, metadata) {
134
- this.executeHook('onAdapterMount', [adapter, metadata]);
135
- }
136
- notifyAdapterUnmount(adapter, metadata) {
137
- this.executeHook('onAdapterUnmount', [adapter, metadata]);
138
- }
139
- notifyAdapterRender(adapter, metadata) {
140
- this.executeHook('onAdapterRender', [adapter, metadata]);
141
- }
142
- notifyAdapterDisposed(adapter, metadata) {
143
- this.executeHook('onAdapterDisposed', [adapter, metadata]);
144
- }
145
- /**
146
- * Get metrics for a plugin
147
- */
148
- getMetrics(pluginName) {
149
- return this.metrics.get(pluginName);
150
- }
151
- initializeMetrics(pluginName) {
152
- this.metrics.set(pluginName, new Map());
153
- }
154
- recordSuccess(pluginName, hookName, startTime) {
155
- const pluginMetrics = this.metrics.get(pluginName);
156
- const hookMetrics = pluginMetrics.get(hookName) || {
157
- executionTime: 0,
158
- executionCount: 0,
159
- errorCount: 0,
160
- };
161
- const executionTime = performance.now() - startTime;
162
- pluginMetrics.set(hookName, {
163
- ...hookMetrics,
164
- executionTime: hookMetrics.executionTime + executionTime,
165
- executionCount: hookMetrics.executionCount + 1,
166
- lastExecutionTime: executionTime,
167
- });
168
- }
169
- recordError(pluginName, hookName, error) {
170
- const pluginMetrics = this.metrics.get(pluginName);
171
- const hookMetrics = pluginMetrics.get(hookName) || {
172
- executionTime: 0,
173
- executionCount: 0,
174
- errorCount: 0,
175
- };
176
- pluginMetrics.set(hookName, {
177
- ...hookMetrics,
178
- errorCount: hookMetrics.errorCount + 1,
179
- lastError: error,
180
- });
181
- }
182
- }
183
- exports.SystemPluginRegistry = SystemPluginRegistry;
184
- //# sourceMappingURL=SystemPluginRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SystemPluginRegistry.js","sourceRoot":"","sources":["../../src/plugins/SystemPluginRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './types';
2
- export { SystemPluginRegistry } from './SystemPluginRegistry';
3
- export { BlocPluginRegistry } from './BlocPluginRegistry';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.BlocPluginRegistry = exports.SystemPluginRegistry = void 0;
18
- // Core types
19
- __exportStar(require("./types"), exports);
20
- // System plugins
21
- var SystemPluginRegistry_1 = require("./SystemPluginRegistry");
22
- Object.defineProperty(exports, "SystemPluginRegistry", { enumerable: true, get: function () { return SystemPluginRegistry_1.SystemPluginRegistry; } });
23
- // Bloc plugins
24
- var BlocPluginRegistry_1 = require("./BlocPluginRegistry");
25
- Object.defineProperty(exports, "BlocPluginRegistry", { enumerable: true, get: function () { return BlocPluginRegistry_1.BlocPluginRegistry; } });
26
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,aAAa;AACb,0CAAwB;AAExB,iBAAiB;AACjB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAE7B,eAAe;AACf,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA"}
@@ -1,103 +0,0 @@
1
- import { BlocBase } from '../BlocBase';
2
- import { Bloc } from '../Bloc';
3
- /**
4
- * Error context provided to error handlers
5
- */
6
- export interface ErrorContext {
7
- readonly phase: 'initialization' | 'state-change' | 'event-processing' | 'disposal';
8
- readonly operation: string;
9
- readonly metadata?: Record<string, unknown>;
10
- }
11
- /**
12
- * Plugin capabilities for security model
13
- */
14
- export interface PluginCapabilities {
15
- readonly readState: boolean;
16
- readonly transformState: boolean;
17
- readonly interceptEvents: boolean;
18
- readonly persistData: boolean;
19
- readonly accessMetadata: boolean;
20
- }
21
- /**
22
- * Base interface for all plugins
23
- */
24
- export interface Plugin {
25
- readonly name: string;
26
- readonly version: string;
27
- readonly capabilities?: PluginCapabilities;
28
- }
29
- /**
30
- * Adapter metadata provided to plugins
31
- */
32
- export interface AdapterMetadata {
33
- componentName?: string;
34
- blocInstance: BlocBase<any>;
35
- renderCount: number;
36
- trackedPaths?: string[];
37
- isUsingDependencies?: boolean;
38
- lastState?: any;
39
- lastDependencyValues?: any[];
40
- currentDependencyValues?: any[];
41
- }
42
- /**
43
- * System-wide plugin that observes all blocs
44
- */
45
- export interface BlacPlugin extends Plugin {
46
- beforeBootstrap?(): void;
47
- afterBootstrap?(): void;
48
- beforeShutdown?(): void;
49
- afterShutdown?(): void;
50
- onBlocCreated?(bloc: BlocBase<any>): void;
51
- onBlocDisposed?(bloc: BlocBase<any>): void;
52
- onStateChanged?(bloc: BlocBase<any>, previousState: any, currentState: any): void;
53
- onEventAdded?(bloc: Bloc<any, any>, event: any): void;
54
- onError?(error: Error, bloc: BlocBase<unknown>, context: ErrorContext): void;
55
- onAdapterCreated?(adapter: any, metadata: AdapterMetadata): void;
56
- onAdapterMount?(adapter: any, metadata: AdapterMetadata): void;
57
- onAdapterUnmount?(adapter: any, metadata: AdapterMetadata): void;
58
- onAdapterRender?(adapter: any, metadata: AdapterMetadata): void;
59
- onAdapterDisposed?(adapter: any, metadata: AdapterMetadata): void;
60
- }
61
- /**
62
- * Bloc-specific plugin that can transform behavior
63
- */
64
- export interface BlocPlugin<TState = any, TEvent = never> extends Plugin {
65
- transformState?(previousState: TState, nextState: TState): TState;
66
- transformEvent?(event: TEvent): TEvent | null;
67
- onAttach?(bloc: BlocBase<TState>): void;
68
- onDetach?(): void;
69
- onStateChange?(previousState: TState, currentState: TState): void;
70
- onEvent?(event: TEvent): void;
71
- onError?(error: Error, context: ErrorContext): void;
72
- }
73
- /**
74
- * Plugin execution context for performance monitoring
75
- */
76
- export interface PluginExecutionContext {
77
- readonly pluginName: string;
78
- readonly hookName: string;
79
- readonly startTime: number;
80
- readonly blocName?: string;
81
- readonly blocId?: string;
82
- }
83
- /**
84
- * Plugin metrics for monitoring
85
- */
86
- export interface PluginMetrics {
87
- readonly executionTime: number;
88
- readonly executionCount: number;
89
- readonly errorCount: number;
90
- readonly lastError?: Error;
91
- readonly lastExecutionTime?: number;
92
- }
93
- /**
94
- * Plugin registry interface
95
- */
96
- export interface PluginRegistry<T extends Plugin> {
97
- add(plugin: T): void;
98
- remove(pluginName: string): boolean;
99
- get(pluginName: string): T | undefined;
100
- getAll(): ReadonlyArray<T>;
101
- clear(): void;
102
- }
103
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":""}
@@ -1,67 +0,0 @@
1
- import { BlocBase } from '../BlocBase';
2
- import { Subscription, SubscriptionOptions, SubscriptionManagerStats } from './types';
3
- /**
4
- * Unified subscription manager that replaces the dual consumer/observer system.
5
- * Handles all state change subscriptions with a single, consistent interface.
6
- */
7
- export declare class SubscriptionManager<S = unknown> {
8
- private bloc;
9
- private subscriptions;
10
- private pathToSubscriptions;
11
- private weakRefCleanupScheduled;
12
- private totalNotifications;
13
- constructor(bloc: BlocBase<S>);
14
- /**
15
- * Subscribe to state changes
16
- */
17
- subscribe(options: SubscriptionOptions<S>): () => void;
18
- /**
19
- * Unsubscribe by ID
20
- */
21
- unsubscribe(id: string): void;
22
- /**
23
- * Notify all subscriptions of state change
24
- */
25
- notify(newState: S, oldState: S, action?: unknown): void;
26
- /**
27
- * Track a path access for a subscription
28
- */
29
- trackAccess(subscriptionId: string, path: string, value?: unknown): void;
30
- /**
31
- * Get the paths that changed between two states
32
- */
33
- private getChangedPaths;
34
- /**
35
- * Check if a subscription should be notified based on changed paths
36
- */
37
- shouldNotifyForPaths(subscriptionId: string, changedPaths: Set<string>): boolean;
38
- /**
39
- * Get statistics about subscriptions
40
- */
41
- getStats(): SubscriptionManagerStats;
42
- /**
43
- * Clear all subscriptions
44
- */
45
- clear(): void;
46
- /**
47
- * Get subscription by ID
48
- */
49
- getSubscription(id: string): Subscription<S> | undefined;
50
- /**
51
- * Check if there are any active subscriptions
52
- */
53
- get hasSubscriptions(): boolean;
54
- /**
55
- * Get count of active subscriptions
56
- */
57
- get size(): number;
58
- /**
59
- * Clean up subscriptions with dead weak references
60
- */
61
- private cleanupDeadReferences;
62
- /**
63
- * Schedule weak reference cleanup for next tick
64
- */
65
- private scheduleWeakRefCleanup;
66
- }
67
- //# sourceMappingURL=SubscriptionManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/subscription/SubscriptionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAM9B,OAAO,CAAC,IAAI;IALxB,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,kBAAkB,CAAK;gBAEX,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAErC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IA6CtD;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IA2B7B;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAsFxD;;OAEG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IA0BxE;;OAEG;IACH,OAAO,CAAC,eAAe;IAsDvB;;OAEG;IACH,oBAAoB,CAClB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GACxB,OAAO;IAkCV;;OAEG;IACH,QAAQ,IAAI,wBAAwB;IAkBpC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS;IAIxD;;OAEG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAM/B"}