@blac/core 2.0.0-rc-14 → 2.0.0-rc.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.
- package/dist/.tsbuildinfo +1 -0
- package/dist/Blac.d.ts +246 -0
- package/dist/Blac.d.ts.map +1 -0
- package/dist/Blac.js +625 -0
- package/dist/Blac.js.map +1 -0
- package/dist/Bloc.d.ts +41 -0
- package/dist/Bloc.d.ts.map +1 -0
- package/dist/Bloc.js +140 -0
- package/dist/Bloc.js.map +1 -0
- package/dist/BlocBase.d.ts +110 -0
- package/dist/BlocBase.d.ts.map +1 -0
- package/dist/BlocBase.js +287 -0
- package/dist/BlocBase.js.map +1 -0
- package/dist/Cubit.d.ts +25 -0
- package/dist/Cubit.d.ts.map +1 -0
- package/dist/Cubit.js +64 -0
- package/dist/Cubit.js.map +1 -0
- package/dist/adapter/BlacAdapter.d.ts +71 -0
- package/dist/adapter/BlacAdapter.d.ts.map +1 -0
- package/dist/adapter/BlacAdapter.js +373 -0
- package/dist/adapter/BlacAdapter.js.map +1 -0
- package/dist/adapter/ProxyFactory.d.ts +50 -0
- package/dist/adapter/ProxyFactory.d.ts.map +1 -0
- package/dist/adapter/ProxyFactory.js +150 -0
- package/dist/adapter/ProxyFactory.js.map +1 -0
- package/{src/adapter/index.ts → dist/adapter/index.d.ts} +1 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/adapter/index.js +19 -0
- package/dist/adapter/index.js.map +1 -0
- package/dist/errors/BlacError.d.ts +38 -0
- package/dist/errors/BlacError.d.ts.map +1 -0
- package/dist/errors/BlacError.js +55 -0
- package/dist/errors/BlacError.js.map +1 -0
- package/dist/errors/ErrorManager.d.ts +39 -0
- package/dist/errors/ErrorManager.d.ts.map +1 -0
- package/dist/errors/ErrorManager.js +91 -0
- package/dist/errors/ErrorManager.js.map +1 -0
- package/dist/errors/handleError.d.ts +24 -0
- package/dist/errors/handleError.d.ts.map +1 -0
- package/dist/errors/handleError.js +62 -0
- package/dist/errors/handleError.js.map +1 -0
- package/dist/errors/index.d.ts +5 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +13 -0
- package/dist/errors/index.js.map +1 -0
- package/{src/events.ts → dist/events.d.ts} +4 -2
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +17 -0
- package/dist/events.js.map +1 -0
- package/dist/index.cjs +38 -0
- package/dist/index.d.ts +17 -1303
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle/BlocLifecycle.d.ts +51 -0
- package/dist/lifecycle/BlocLifecycle.d.ts.map +1 -0
- package/dist/lifecycle/BlocLifecycle.js +123 -0
- package/dist/lifecycle/BlocLifecycle.js.map +1 -0
- package/dist/lifecycle/index.d.ts +2 -0
- package/dist/lifecycle/index.d.ts.map +1 -0
- package/dist/lifecycle/index.js +18 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/plugins/BlocPluginRegistry.d.ts +58 -0
- package/dist/plugins/BlocPluginRegistry.d.ts.map +1 -0
- package/dist/plugins/BlocPluginRegistry.js +201 -0
- package/dist/plugins/BlocPluginRegistry.js.map +1 -0
- package/dist/plugins/SystemPluginRegistry.d.ts +79 -0
- package/dist/plugins/SystemPluginRegistry.d.ts.map +1 -0
- package/dist/plugins/SystemPluginRegistry.js +184 -0
- package/dist/plugins/SystemPluginRegistry.js.map +1 -0
- package/{src/plugins/index.ts → dist/plugins/index.d.ts} +1 -5
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +26 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/types.d.ts +103 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +3 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/subscription/SubscriptionManager.d.ts +67 -0
- package/dist/subscription/SubscriptionManager.d.ts.map +1 -0
- package/dist/subscription/SubscriptionManager.js +317 -0
- package/dist/subscription/SubscriptionManager.js.map +1 -0
- package/{src/subscription/index.ts → dist/subscription/index.d.ts} +1 -0
- package/dist/subscription/index.d.ts.map +1 -0
- package/dist/subscription/index.js +19 -0
- package/dist/subscription/index.js.map +1 -0
- package/dist/subscription/types.d.ts +65 -0
- package/dist/subscription/types.d.ts.map +1 -0
- package/dist/subscription/types.js +3 -0
- package/dist/subscription/types.js.map +1 -0
- package/dist/testing.d.ts +85 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +186 -0
- package/dist/testing.js.map +1 -0
- package/{src/types.ts → dist/types.d.ts} +11 -28
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/BatchingManager.d.ts +28 -0
- package/dist/utils/BatchingManager.d.ts.map +1 -0
- package/dist/utils/BatchingManager.js +48 -0
- package/dist/utils/BatchingManager.js.map +1 -0
- package/dist/utils/RerenderLogger.d.ts +60 -0
- package/dist/utils/RerenderLogger.d.ts.map +1 -0
- package/dist/utils/RerenderLogger.js +205 -0
- package/dist/utils/RerenderLogger.js.map +1 -0
- package/dist/utils/generateInstanceId.d.ts +11 -0
- package/dist/utils/generateInstanceId.d.ts.map +1 -0
- package/dist/utils/generateInstanceId.js +50 -0
- package/dist/utils/generateInstanceId.js.map +1 -0
- package/dist/utils/shallowEqual.d.ts +9 -0
- package/dist/utils/shallowEqual.d.ts.map +1 -0
- package/dist/utils/shallowEqual.js +35 -0
- package/dist/utils/shallowEqual.js.map +1 -0
- package/dist/utils/uuid.d.ts +10 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +24 -0
- package/dist/utils/uuid.js.map +1 -0
- package/package.json +17 -10
- package/dist/index.cjs.js +0 -11
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.es.js +0 -2275
- package/dist/index.es.js.map +0 -1
- package/src/Blac.ts +0 -802
- package/src/Bloc.ts +0 -180
- package/src/BlocBase.ts +0 -398
- package/src/Cubit.ts +0 -68
- package/src/__tests__/Blac.config.test.ts +0 -79
- package/src/__tests__/Bloc.event.test.ts +0 -394
- package/src/__tests__/BlocBase.subscription.test.ts +0 -349
- package/src/__tests__/Cubit.test.ts +0 -462
- package/src/__tests__/memory-leaks.test.ts +0 -383
- package/src/__tests__/plugins.test.ts +0 -464
- package/src/adapter/BlacAdapter.ts +0 -467
- package/src/adapter/ProxyFactory.ts +0 -249
- package/src/adapter/__tests__/BlacAdapter.test.ts +0 -555
- package/src/adapter/__tests__/ProxyFactory.test.ts +0 -655
- package/src/errors/BlacError.ts +0 -69
- package/src/errors/ErrorManager.ts +0 -101
- package/src/errors/handleError.ts +0 -114
- package/src/errors/index.ts +0 -13
- package/src/index.ts +0 -26
- package/src/lifecycle/BlocLifecycle.ts +0 -156
- package/src/lifecycle/index.ts +0 -1
- package/src/plugins/BlocPluginRegistry.ts +0 -240
- package/src/plugins/SystemPluginRegistry.ts +0 -242
- package/src/plugins/__tests__/BlocPluginRegistry.test.ts +0 -450
- package/src/plugins/__tests__/SystemPluginRegistry.test.ts +0 -404
- package/src/plugins/types.ts +0 -129
- package/src/subscription/README.md +0 -132
- package/src/subscription/SubscriptionManager.ts +0 -395
- package/src/subscription/__tests__/SubscriptionManager.test.ts +0 -355
- package/src/subscription/types.ts +0 -90
- package/src/testing.ts +0 -246
- package/src/utils/BatchingManager.ts +0 -59
- package/src/utils/RerenderLogger.ts +0 -265
- package/src/utils/__tests__/generateInstanceId.test.ts +0 -104
- package/src/utils/__tests__/shallowEqual.test.ts +0 -171
- package/src/utils/__tests__/uuid.test.ts +0 -144
- package/src/utils/generateInstanceId.ts +0 -54
- package/src/utils/shallowEqual.ts +0 -40
- package/src/utils/uuid.ts +0 -22
|
@@ -0,0 +1,184 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SystemPluginRegistry.js","sourceRoot":"","sources":["../../src/plugins/SystemPluginRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|