@mxf-dev/core 1.0.1 → 2.0.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/README.md +18 -0
- package/dist/adapters/FrameworkAdapter.js +1 -1
- package/dist/adapters/FrameworkAdapter.js.map +1 -1
- package/dist/config/ConfigManager.d.ts +9 -8
- package/dist/config/ConfigManager.d.ts.map +1 -1
- package/dist/config/ConfigManager.js +47 -17
- package/dist/config/ConfigManager.js.map +1 -1
- package/dist/config/memory-strata.config.d.ts +25 -0
- package/dist/config/memory-strata.config.d.ts.map +1 -0
- package/dist/config/memory-strata.config.js +107 -0
- package/dist/config/memory-strata.config.js.map +1 -0
- package/dist/constants/ToolNames.d.ts +1 -29
- package/dist/constants/ToolNames.d.ts.map +1 -1
- package/dist/constants/ToolNames.js +4 -17
- package/dist/constants/ToolNames.js.map +1 -1
- package/dist/database/DatabaseAdapterFactory.d.ts +14 -2
- package/dist/database/DatabaseAdapterFactory.d.ts.map +1 -1
- package/dist/database/DatabaseAdapterFactory.js +21 -6
- package/dist/database/DatabaseAdapterFactory.js.map +1 -1
- package/dist/database/adapters/mongodb/MongoBaseRepository.d.ts +7 -1
- package/dist/database/adapters/mongodb/MongoBaseRepository.d.ts.map +1 -1
- package/dist/database/adapters/mongodb/MongoBaseRepository.js +12 -2
- package/dist/database/adapters/mongodb/MongoBaseRepository.js.map +1 -1
- package/dist/events/ClientEventBus.d.ts +16 -77
- package/dist/events/ClientEventBus.d.ts.map +1 -1
- package/dist/events/ClientEventBus.js +38 -311
- package/dist/events/ClientEventBus.js.map +1 -1
- package/dist/events/EventBus.d.ts +1 -1
- package/dist/events/EventBus.d.ts.map +1 -1
- package/dist/events/EventBus.js +5 -4
- package/dist/events/EventBus.js.map +1 -1
- package/dist/events/EventBusBase.d.ts +139 -34
- package/dist/events/EventBusBase.d.ts.map +1 -1
- package/dist/events/EventBusBase.js +366 -88
- package/dist/events/EventBusBase.js.map +1 -1
- package/dist/events/EventNames.d.ts +10 -1
- package/dist/events/EventNames.d.ts.map +1 -1
- package/dist/events/EventNames.js +3 -0
- package/dist/events/EventNames.js.map +1 -1
- package/dist/events/PublicEvents.d.ts +6 -2
- package/dist/events/PublicEvents.d.ts.map +1 -1
- package/dist/events/PublicEvents.js +7 -4
- package/dist/events/PublicEvents.js.map +1 -1
- package/dist/events/ServerEventBus.d.ts +23 -112
- package/dist/events/ServerEventBus.d.ts.map +1 -1
- package/dist/events/ServerEventBus.js +58 -323
- package/dist/events/ServerEventBus.js.map +1 -1
- package/dist/events/event-definitions/LlmBudgetEvents.d.ts +68 -0
- package/dist/events/event-definitions/LlmBudgetEvents.d.ts.map +1 -0
- package/dist/events/event-definitions/LlmBudgetEvents.js +35 -0
- package/dist/events/event-definitions/LlmBudgetEvents.js.map +1 -0
- package/dist/interfaces/IMemoryPersistence.d.ts +41 -0
- package/dist/interfaces/IMemoryPersistence.d.ts.map +1 -0
- package/dist/interfaces/IMemoryPersistence.js +15 -0
- package/dist/interfaces/IMemoryPersistence.js.map +1 -0
- package/dist/middleware/MxpMiddleware.d.ts +8 -1
- package/dist/middleware/MxpMiddleware.d.ts.map +1 -1
- package/dist/middleware/MxpMiddleware.js +42 -20
- package/dist/middleware/MxpMiddleware.js.map +1 -1
- package/dist/models/channelKey.d.ts +1 -0
- package/dist/models/channelKey.d.ts.map +1 -1
- package/dist/models/channelKey.js +5 -0
- package/dist/models/channelKey.js.map +1 -1
- package/dist/models/memoryUtility.d.ts +39 -0
- package/dist/models/memoryUtility.d.ts.map +1 -0
- package/dist/models/memoryUtility.js +39 -0
- package/dist/models/memoryUtility.js.map +1 -0
- package/dist/models/user.d.ts.map +1 -1
- package/dist/models/user.js +23 -1
- package/dist/models/user.js.map +1 -1
- package/dist/mxp/BinaryProtocolLayer.d.ts +24 -8
- package/dist/mxp/BinaryProtocolLayer.d.ts.map +1 -1
- package/dist/mxp/BinaryProtocolLayer.js +90 -103
- package/dist/mxp/BinaryProtocolLayer.js.map +1 -1
- package/dist/mxp/ContextCompressionEngine.d.ts +57 -10
- package/dist/mxp/ContextCompressionEngine.d.ts.map +1 -1
- package/dist/mxp/ContextCompressionEngine.js +170 -128
- package/dist/mxp/ContextCompressionEngine.js.map +1 -1
- package/dist/mxp/MxpTokenOptimizer.d.ts +7 -3
- package/dist/mxp/MxpTokenOptimizer.d.ts.map +1 -1
- package/dist/mxp/MxpTokenOptimizer.js +8 -5
- package/dist/mxp/MxpTokenOptimizer.js.map +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.d.ts +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.d.ts.map +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.js +47 -57
- package/dist/prompts/MxfAgentSystemPrompt.js.map +1 -1
- package/dist/protocols/mcp/ToolError.d.ts +123 -0
- package/dist/protocols/mcp/ToolError.d.ts.map +1 -0
- package/dist/protocols/mcp/ToolError.js +108 -0
- package/dist/protocols/mcp/ToolError.js.map +1 -0
- package/dist/protocols/mcp/defineTool.d.ts +133 -0
- package/dist/protocols/mcp/defineTool.d.ts.map +1 -0
- package/dist/protocols/mcp/defineTool.js +236 -0
- package/dist/protocols/mcp/defineTool.js.map +1 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.d.ts +38 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.d.ts.map +1 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.js +227 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.js.map +1 -0
- package/dist/protocols/mcp/security/McpSecurityGuard.d.ts +9 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.d.ts.map +1 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.js +10 -2
- package/dist/protocols/mcp/security/McpSecurityGuard.js.map +1 -1
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts +81 -0
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts.map +1 -0
- package/dist/protocols/mcp/security/McpToolPolicy.js +202 -0
- package/dist/protocols/mcp/security/McpToolPolicy.js.map +1 -0
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts +51 -18
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js +256 -283
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts +39 -6
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.js +76 -18
- package/dist/protocols/mcp/services/ExternalServerConfigs.js.map +1 -1
- package/dist/protocols/mcp/tools/AnalyticsTools.js +1 -1
- package/dist/protocols/mcp/tools/AnalyticsTools.js.map +1 -1
- package/dist/protocols/mcp/tools/CodeAnalysisTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/CodeAnalysisTools.js +15 -0
- package/dist/protocols/mcp/tools/CodeAnalysisTools.js.map +1 -1
- package/dist/protocols/mcp/tools/EffectivenessTools.js +3 -3
- package/dist/protocols/mcp/tools/EffectivenessTools.js.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.d.ts +9 -369
- package/dist/protocols/mcp/tools/GitTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.js +222 -517
- package/dist/protocols/mcp/tools/GitTools.js.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts +56 -24
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.js +117 -26
- package/dist/protocols/mcp/tools/InfrastructureTools.js.map +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts +0 -3
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.js +58 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.js.map +1 -1
- package/dist/protocols/mcp/tools/OrparTools.d.ts +8 -0
- package/dist/protocols/mcp/tools/OrparTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/OrparTools.js +66 -0
- package/dist/protocols/mcp/tools/OrparTools.js.map +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.d.ts +7 -525
- package/dist/protocols/mcp/tools/SafetyTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.js +349 -514
- package/dist/protocols/mcp/tools/SafetyTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.js +56 -26
- package/dist/protocols/mcp/tools/TaskPlanningTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.d.ts +15 -376
- package/dist/protocols/mcp/tools/TestTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.js +241 -363
- package/dist/protocols/mcp/tools/TestTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.d.ts +6 -276
- package/dist/protocols/mcp/tools/TypeScriptTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.js +223 -337
- package/dist/protocols/mcp/tools/TypeScriptTools.js.map +1 -1
- package/dist/protocols/mcp/tools/WebTools.d.ts +15 -728
- package/dist/protocols/mcp/tools/WebTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/WebTools.js +151 -257
- package/dist/protocols/mcp/tools/WebTools.js.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts +5 -3
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js +31 -6
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js.map +1 -1
- package/dist/schemas/EventPayloadSchema.d.ts +21 -0
- package/dist/schemas/EventPayloadSchema.d.ts.map +1 -1
- package/dist/schemas/EventPayloadSchema.js +14 -0
- package/dist/schemas/EventPayloadSchema.js.map +1 -1
- package/dist/services/BackgroundTaskManager.d.ts.map +1 -1
- package/dist/services/BackgroundTaskManager.js +12 -4
- package/dist/services/BackgroundTaskManager.js.map +1 -1
- package/dist/services/BrowserManager.d.ts +1 -1
- package/dist/services/BrowserManager.d.ts.map +1 -1
- package/dist/services/BrowserManager.js +26 -3
- package/dist/services/BrowserManager.js.map +1 -1
- package/dist/services/MemoryCompressor.d.ts +11 -2
- package/dist/services/MemoryCompressor.d.ts.map +1 -1
- package/dist/services/MemoryCompressor.js +8 -26
- package/dist/services/MemoryCompressor.js.map +1 -1
- package/dist/services/MemoryService.d.ts +16 -3
- package/dist/services/MemoryService.d.ts.map +1 -1
- package/dist/services/MemoryService.js +79 -55
- package/dist/services/MemoryService.js.map +1 -1
- package/dist/services/PredictiveAnalyticsService.d.ts +34 -4
- package/dist/services/PredictiveAnalyticsService.d.ts.map +1 -1
- package/dist/services/PredictiveAnalyticsService.js +41 -25
- package/dist/services/PredictiveAnalyticsService.js.map +1 -1
- package/dist/services/QValueManager.d.ts +7 -0
- package/dist/services/QValueManager.d.ts.map +1 -1
- package/dist/services/QValueManager.js +9 -0
- package/dist/services/QValueManager.js.map +1 -1
- package/dist/services/RewardSignalProcessor.d.ts +38 -1
- package/dist/services/RewardSignalProcessor.d.ts.map +1 -1
- package/dist/services/RewardSignalProcessor.js +109 -7
- package/dist/services/RewardSignalProcessor.js.map +1 -1
- package/dist/services/SharedStateService.d.ts +16 -2
- package/dist/services/SharedStateService.d.ts.map +1 -1
- package/dist/services/SharedStateService.js +44 -3
- package/dist/services/SharedStateService.js.map +1 -1
- package/dist/services/TaskEffectivenessService.d.ts +34 -18
- package/dist/services/TaskEffectivenessService.d.ts.map +1 -1
- package/dist/services/TaskEffectivenessService.js +91 -155
- package/dist/services/TaskEffectivenessService.js.map +1 -1
- package/dist/services/WebSearchService.d.ts.map +1 -1
- package/dist/services/WebSearchService.js.map +1 -1
- package/dist/services/dag/TaskDagService.d.ts.map +1 -1
- package/dist/services/dag/TaskDagService.js +2 -0
- package/dist/services/dag/TaskDagService.js.map +1 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts +7 -0
- package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts.map +1 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.js +71 -10
- package/dist/services/orpar-memory/OrparMemoryCoordinator.js.map +1 -1
- package/dist/types/MemoryUtilityTypes.d.ts +2 -0
- package/dist/types/MemoryUtilityTypes.d.ts.map +1 -1
- package/dist/types/MemoryUtilityTypes.js.map +1 -1
- package/dist/utils/Logger.d.ts +43 -3
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +78 -36
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/MxpEncryption.d.ts +19 -6
- package/dist/utils/MxpEncryption.d.ts.map +1 -1
- package/dist/utils/MxpEncryption.js +48 -16
- package/dist/utils/MxpEncryption.js.map +1 -1
- package/package.json +19 -4
- package/src/adapters/FrameworkAdapter.ts +1 -1
- package/src/config/ConfigManager.ts +52 -19
- package/src/config/memory-strata.config.ts +136 -0
- package/src/constants/ToolNames.ts +4 -18
- package/src/database/DatabaseAdapterFactory.ts +23 -6
- package/src/database/adapters/mongodb/MongoBaseRepository.ts +16 -2
- package/src/events/ClientEventBus.ts +68 -403
- package/src/events/EventBus.ts +7 -8
- package/src/events/EventBusBase.ts +479 -116
- package/src/events/EventNames.ts +6 -0
- package/src/events/PublicEvents.ts +7 -4
- package/src/events/ServerEventBus.ts +78 -473
- package/src/events/event-definitions/LlmBudgetEvents.ts +74 -0
- package/src/interfaces/IMemoryPersistence.ts +51 -0
- package/src/middleware/MxpMiddleware.ts +51 -24
- package/src/models/channelKey.ts +18 -4
- package/src/models/memoryUtility.ts +64 -0
- package/src/models/user.ts +36 -4
- package/src/mxp/BinaryProtocolLayer.ts +108 -124
- package/src/mxp/ContextCompressionEngine.ts +219 -161
- package/src/mxp/MxpTokenOptimizer.ts +10 -10
- package/src/prompts/MxfAgentSystemPrompt.ts +45 -55
- package/src/protocols/mcp/ToolError.ts +201 -0
- package/src/protocols/mcp/defineTool.ts +379 -0
- package/src/protocols/mcp/security/HttpTargetGuard.ts +267 -0
- package/src/protocols/mcp/security/McpSecurityGuard.ts +10 -3
- package/src/protocols/mcp/security/McpToolPolicy.ts +221 -0
- package/src/protocols/mcp/services/ExternalMcpServerManager.ts +340 -322
- package/src/protocols/mcp/services/ExternalServerConfigs.ts +82 -19
- package/src/protocols/mcp/tools/AnalyticsTools.ts +1 -1
- package/src/protocols/mcp/tools/CodeAnalysisTools.ts +15 -0
- package/src/protocols/mcp/tools/EffectivenessTools.ts +3 -3
- package/src/protocols/mcp/tools/GitTools.ts +290 -569
- package/src/protocols/mcp/tools/InfrastructureTools.ts +189 -43
- package/src/protocols/mcp/tools/MemorySearchTools.ts +77 -1
- package/src/protocols/mcp/tools/OrparTools.ts +87 -0
- package/src/protocols/mcp/tools/SafetyTools.ts +501 -579
- package/src/protocols/mcp/tools/TaskPlanningTools.ts +81 -39
- package/src/protocols/mcp/tools/TestTools.ts +339 -419
- package/src/protocols/mcp/tools/TypeScriptTools.ts +316 -376
- package/src/protocols/mcp/tools/WebTools.ts +209 -307
- package/src/protocols/mcp/tools/shell/ShellExecuteHandler.ts +53 -14
- package/src/schemas/EventPayloadSchema.ts +37 -0
- package/src/services/BackgroundTaskManager.ts +12 -4
- package/src/services/BrowserManager.ts +41 -1
- package/src/services/MemoryCompressor.ts +20 -32
- package/src/services/MemoryService.ts +96 -58
- package/src/services/PredictiveAnalyticsService.ts +55 -32
- package/src/services/QValueManager.ts +10 -0
- package/src/services/RewardSignalProcessor.ts +138 -9
- package/src/services/SharedStateService.ts +56 -8
- package/src/services/TaskEffectivenessService.ts +114 -187
- package/src/services/WebSearchService.ts +2 -1
- package/src/services/dag/TaskDagService.ts +2 -0
- package/src/services/orpar-memory/OrparMemoryCoordinator.ts +86 -10
- package/src/types/MemoryUtilityTypes.ts +2 -0
- package/src/utils/Logger.ts +116 -40
- package/src/utils/MxpEncryption.ts +69 -34
- package/dist/mxp/MxpEventForwardingEnhancer.d.ts +0 -134
- package/dist/mxp/MxpEventForwardingEnhancer.d.ts.map +0 -1
- package/dist/mxp/MxpEventForwardingEnhancer.js +0 -361
- package/dist/mxp/MxpEventForwardingEnhancer.js.map +0 -1
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.d.ts +0 -56
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.d.ts.map +0 -1
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.js +0 -57
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.js.map +0 -1
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.d.ts +0 -270
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.d.ts.map +0 -1
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.js +0 -256
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.js.map +0 -1
- package/dist/protocols/mcp/tools/LspTools.d.ts +0 -495
- package/dist/protocols/mcp/tools/LspTools.d.ts.map +0 -1
- package/dist/protocols/mcp/tools/LspTools.js +0 -469
- package/dist/protocols/mcp/tools/LspTools.js.map +0 -1
- package/src/mxp/MxpEventForwardingEnhancer.ts +0 -471
- package/src/protocols/mcp/services/ToolSchemaEnhancements.ts +0 -92
- package/src/protocols/mcp/tools/ControlLoopLifecycle.ts +0 -302
- package/src/protocols/mcp/tools/LspTools.ts +0 -476
|
@@ -156,75 +156,180 @@ export declare function validateEventName(event: AnyEventName): boolean;
|
|
|
156
156
|
*/
|
|
157
157
|
export declare function isReservedEvent(event: string): boolean;
|
|
158
158
|
/**
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
*
|
|
159
|
+
* Base event bus implementation with RxJS.
|
|
160
|
+
*
|
|
161
|
+
* Holds everything both buses share: subscription bookkeeping, on/once/off,
|
|
162
|
+
* categories, debug mode, and the emit contract. Subclasses supply only their
|
|
163
|
+
* transport (a client socket, or the Socket.IO server) via forwardToTransport().
|
|
164
|
+
*
|
|
165
|
+
* ## Subscription bookkeeping
|
|
166
|
+
*
|
|
167
|
+
* Three structures are kept in step by registerHandler()/forgetSubscription():
|
|
168
|
+
* - handlerSubscriptions: event → handler → subscriptions, so off(event, handler)
|
|
169
|
+
* can find and dispose exactly the right RxJS subscriptions.
|
|
170
|
+
* - subscriptionCountMap: event → live count, so hasSubscribers()/listenerCount()/
|
|
171
|
+
* hasListeners() report the truth instead of guessing.
|
|
172
|
+
* - subscriptions: a flat list of everything this bus owns, for bulk teardown.
|
|
173
|
+
*
|
|
174
|
+
* once() is keyed by the CALLER's handler, not by an internal wrapper. Keying by
|
|
175
|
+
* the wrapper (as an earlier version did) meant off() could never find the entry,
|
|
176
|
+
* so the RxJS subscription was never disposed and the "one-shot" listener kept
|
|
177
|
+
* firing on every later event. take(1) now disposes the subscription itself and
|
|
178
|
+
* the completion callback clears the registry entry.
|
|
179
|
+
*
|
|
180
|
+
* ## Emit contract
|
|
181
|
+
*
|
|
182
|
+
* Both buses behave identically: a bad event name, a null/undefined payload, or
|
|
183
|
+
* a payload that fails schema validation THROWS. Nothing is coerced, defaulted,
|
|
184
|
+
* or swallowed — a malformed event is a programming error and the caller needs
|
|
185
|
+
* to see it.
|
|
166
186
|
*/
|
|
167
187
|
export declare abstract class BaseEventBusImplementation implements EventBusBase {
|
|
168
188
|
protected eventSubject: Subject<EventMessage>;
|
|
189
|
+
/** Logger for this bus. Subclasses pass their own so output is tagged correctly. */
|
|
190
|
+
protected readonly busLogger: Logger;
|
|
191
|
+
/** Every subscription this bus owns, so teardown can dispose all of them. */
|
|
192
|
+
protected subscriptions: Subscription[];
|
|
193
|
+
/** Category name → subscriptions, backing unsubscribeCategory(). */
|
|
194
|
+
protected categorySubscriptions: Map<string, Subscription[]>;
|
|
195
|
+
/**
|
|
196
|
+
* event → (caller's handler → its subscriptions).
|
|
197
|
+
* A handler may be registered more than once for the same event, so the
|
|
198
|
+
* value is a list; off() disposes all of them.
|
|
199
|
+
*/
|
|
200
|
+
protected handlerSubscriptions: Map<string, Map<EventHandler<any>, Subscription[]>>;
|
|
201
|
+
/** event → number of live per-event subscribers. */
|
|
169
202
|
protected subscriptionCountMap: Map<string, number>;
|
|
170
|
-
|
|
203
|
+
/** onAll() subscriptions, which are not tied to any single event name. */
|
|
204
|
+
protected allEventSubscriptions: Set<Subscription>;
|
|
205
|
+
private debugMode;
|
|
206
|
+
private debugSubscription;
|
|
207
|
+
constructor(eventSubject: Subject<EventMessage>, busLogger: Logger);
|
|
208
|
+
/**
|
|
209
|
+
* Hand the event to this bus's transport (client socket / Socket.IO server).
|
|
210
|
+
* Called after the event has been validated and pushed to local subscribers.
|
|
211
|
+
*/
|
|
212
|
+
protected abstract forwardToTransport<K extends AnyEventName>(event: K, payload: PayloadOf<K>): void;
|
|
171
213
|
/**
|
|
172
|
-
* Emit an event
|
|
214
|
+
* Emit an event to local subscribers and this bus's transport.
|
|
215
|
+
*
|
|
216
|
+
* Throws if the event name is empty, if the payload is null/undefined, or
|
|
217
|
+
* if the payload does not match the BaseEventPayload schema. Build payloads
|
|
218
|
+
* with the helpers in EventPayloadSchema.
|
|
219
|
+
*
|
|
173
220
|
* @param event Event name
|
|
174
221
|
* @param payload Event payload
|
|
175
222
|
*/
|
|
176
223
|
emit<K extends AnyEventName>(event: K, payload: PayloadOf<K>): void;
|
|
177
224
|
/**
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
225
|
+
* Publish a properly-formed error event describing a failed emit.
|
|
226
|
+
*
|
|
227
|
+
* Pushed straight to the Subject rather than through emit() so a broken
|
|
228
|
+
* error payload cannot recurse. The payload uses createBaseEventPayload —
|
|
229
|
+
* the bus does not get to break the payload rules it enforces on callers.
|
|
181
230
|
*/
|
|
182
|
-
|
|
231
|
+
private reportEmitFailure;
|
|
183
232
|
/**
|
|
184
|
-
* Subscribe to an event
|
|
233
|
+
* Subscribe to an event.
|
|
234
|
+
*
|
|
185
235
|
* @param event Event name
|
|
186
236
|
* @param handler Event handler function
|
|
187
|
-
* @returns Subscription
|
|
237
|
+
* @returns Subscription; unsubscribe() disposes it, as does off(event, handler)
|
|
188
238
|
*/
|
|
189
239
|
on<K extends AnyEventName>(event: K, handler: EventHandler<PayloadOf<K>>): Subscription;
|
|
190
240
|
/**
|
|
191
|
-
* Subscribe to an event
|
|
241
|
+
* Subscribe to an event for exactly one delivery.
|
|
242
|
+
*
|
|
243
|
+
* take(1) disposes the RxJS subscription after the first event, and the
|
|
244
|
+
* completion callback removes it from the registry, so nothing is left
|
|
245
|
+
* behind. off(event, handler) still works before the event arrives.
|
|
246
|
+
*
|
|
192
247
|
* @param event Event name
|
|
193
248
|
* @param handler Event handler function
|
|
194
|
-
* @returns Subscription
|
|
249
|
+
* @returns Subscription
|
|
195
250
|
*/
|
|
196
251
|
once<K extends AnyEventName>(event: K, handler: EventHandler<PayloadOf<K>>): Subscription;
|
|
197
252
|
/**
|
|
198
|
-
*
|
|
253
|
+
* Subscribe to every event on this bus.
|
|
254
|
+
*
|
|
255
|
+
* @param listener Receives the event type and the payload
|
|
256
|
+
* @returns Subscription
|
|
257
|
+
*/
|
|
258
|
+
onAll(listener: (eventType: string, payload: any) => void): Subscription;
|
|
259
|
+
/**
|
|
260
|
+
* Subscribe to an event and tag the subscription with a category so a group
|
|
261
|
+
* of related subscriptions can be dropped together.
|
|
262
|
+
*
|
|
263
|
+
* @param category Category name for grouping subscriptions
|
|
199
264
|
* @param event Event name
|
|
200
|
-
* @param
|
|
265
|
+
* @param listener Event handler function
|
|
266
|
+
* @returns Subscription
|
|
267
|
+
*/
|
|
268
|
+
onWithCategory<T extends AnyEventName>(category: string, event: T, listener: EventHandler<PayloadOf<T>>): Subscription;
|
|
269
|
+
/**
|
|
270
|
+
* Unsubscribe from an event.
|
|
201
271
|
*
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
272
|
+
* @param event Event name
|
|
273
|
+
* @param handler The handler passed to on()/once(). Omit to drop every
|
|
274
|
+
* handler registered for this event.
|
|
205
275
|
*/
|
|
206
276
|
off<K extends AnyEventName>(event: K, handler?: EventHandler<any>): void;
|
|
207
277
|
/**
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
* @param
|
|
211
|
-
* @returns
|
|
278
|
+
* Unsubscribe every subscription tagged with a category.
|
|
279
|
+
*
|
|
280
|
+
* @param category Category name
|
|
281
|
+
* @returns this (for chaining)
|
|
282
|
+
*/
|
|
283
|
+
unsubscribeCategory(category: string): this;
|
|
284
|
+
/**
|
|
285
|
+
* Remove listeners for one event, or every listener this bus owns.
|
|
286
|
+
*
|
|
287
|
+
* Only subscriptions this bus created are disposed. An earlier version
|
|
288
|
+
* cleared the Subject's observer list directly, which reached across into
|
|
289
|
+
* the other bus's subscribers (both buses share one Subject) and left the
|
|
290
|
+
* Subscription objects stranded.
|
|
291
|
+
*
|
|
292
|
+
* @param event Optional event name; omit to remove everything
|
|
293
|
+
* @returns this (for chaining)
|
|
294
|
+
*/
|
|
295
|
+
removeAllListeners(event?: AnyEventName): this;
|
|
296
|
+
/**
|
|
297
|
+
* Whether any handler is subscribed to this event.
|
|
298
|
+
* onAll() subscribers are not counted — they are not tied to an event name.
|
|
299
|
+
*/
|
|
300
|
+
hasSubscribers(event: AnyEventName): boolean;
|
|
301
|
+
/**
|
|
302
|
+
* Number of handlers subscribed to this event.
|
|
212
303
|
*/
|
|
213
304
|
listenerCount(event: AnyEventName): number;
|
|
214
305
|
/**
|
|
215
|
-
*
|
|
216
|
-
* Note: This is an approximation as RxJS doesn't expose subscriber counts directly
|
|
217
|
-
* @param event Event name
|
|
218
|
-
* @returns true if the event has listeners
|
|
306
|
+
* Whether this event has listeners. Alias of hasSubscribers().
|
|
219
307
|
*/
|
|
220
308
|
hasListeners(event: AnyEventName): boolean;
|
|
221
309
|
/**
|
|
222
|
-
*
|
|
223
|
-
|
|
224
|
-
|
|
310
|
+
* Number of onAll() subscribers on this bus.
|
|
311
|
+
*/
|
|
312
|
+
allListenerCount(): number;
|
|
313
|
+
/**
|
|
314
|
+
* Log every event passing through this bus at debug level.
|
|
315
|
+
*
|
|
316
|
+
* @param enabled Whether debug mode should be on
|
|
225
317
|
* @returns this (for chaining)
|
|
226
318
|
*/
|
|
227
|
-
|
|
319
|
+
enableDebugMode(enabled?: boolean): this;
|
|
320
|
+
/** Record a new per-event subscription across all three structures. */
|
|
321
|
+
private registerHandler;
|
|
322
|
+
/**
|
|
323
|
+
* Drop a per-event subscription from the registry. Idempotent: the count is
|
|
324
|
+
* only decremented when the entry was actually present, so a subscription
|
|
325
|
+
* that both completes and is off()'d is not counted twice.
|
|
326
|
+
*/
|
|
327
|
+
private forgetSubscription;
|
|
328
|
+
/**
|
|
329
|
+
* Drop a subscription whose event/handler keys are not known to the caller
|
|
330
|
+
* (category and onAll subscriptions).
|
|
331
|
+
*/
|
|
332
|
+
private forgetSubscriptionEverywhere;
|
|
228
333
|
/**
|
|
229
334
|
* Validate event payload to ensure it follows the expected schema
|
|
230
335
|
* @param event Event name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventBusBase.d.ts","sourceRoot":"","sources":["../../src/events/EventBusBase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"EventBusBase.d.ts","sourceRoot":"","sources":["../../src/events/EventBusBase.ts"],"names":[],"mappings":"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"}
|