@olane/o-node 0.7.12-alpha.42 → 0.7.12-alpha.44
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/src/connection/o-node-connection.manager.d.ts.map +1 -1
- package/dist/src/connection/o-node-connection.manager.js +1 -3
- package/package.json +6 -6
- package/dist/o-core/src/connection/index.d.ts +0 -8
- package/dist/o-core/src/connection/index.d.ts.map +0 -1
- package/dist/o-core/src/connection/index.js +0 -7
- package/dist/o-core/src/connection/interfaces/connection-manager.config.d.ts +0 -15
- package/dist/o-core/src/connection/interfaces/connection-manager.config.d.ts.map +0 -1
- package/dist/o-core/src/connection/interfaces/connection-manager.config.js +0 -1
- package/dist/o-core/src/connection/interfaces/connection-send-params.interface.d.ts +0 -9
- package/dist/o-core/src/connection/interfaces/connection-send-params.interface.d.ts.map +0 -1
- package/dist/o-core/src/connection/interfaces/connection-send-params.interface.js +0 -1
- package/dist/o-core/src/connection/interfaces/connection.config.d.ts +0 -20
- package/dist/o-core/src/connection/interfaces/connection.config.d.ts.map +0 -1
- package/dist/o-core/src/connection/interfaces/connection.config.js +0 -1
- package/dist/o-core/src/connection/interfaces/index.d.ts +0 -5
- package/dist/o-core/src/connection/interfaces/index.d.ts.map +0 -1
- package/dist/o-core/src/connection/interfaces/index.js +0 -4
- package/dist/o-core/src/connection/interfaces/request-state.enum.d.ts +0 -7
- package/dist/o-core/src/connection/interfaces/request-state.enum.d.ts.map +0 -1
- package/dist/o-core/src/connection/interfaces/request-state.enum.js +0 -7
- package/dist/o-core/src/connection/o-connection-manager.d.ts +0 -19
- package/dist/o-core/src/connection/o-connection-manager.d.ts.map +0 -1
- package/dist/o-core/src/connection/o-connection-manager.js +0 -27
- package/dist/o-core/src/connection/o-connection.d.ts +0 -26
- package/dist/o-core/src/connection/o-connection.d.ts.map +0 -1
- package/dist/o-core/src/connection/o-connection.js +0 -54
- package/dist/o-core/src/connection/o-request.d.ts +0 -23
- package/dist/o-core/src/connection/o-request.d.ts.map +0 -1
- package/dist/o-core/src/connection/o-request.js +0 -42
- package/dist/o-core/src/connection/o-response.d.ts +0 -13
- package/dist/o-core/src/connection/o-response.d.ts.map +0 -1
- package/dist/o-core/src/connection/o-response.js +0 -25
- package/dist/o-core/src/core/defaults/config.d.ts +0 -4
- package/dist/o-core/src/core/defaults/config.d.ts.map +0 -1
- package/dist/o-core/src/core/defaults/config.js +0 -5
- package/dist/o-core/src/core/defaults/index.d.ts +0 -2
- package/dist/o-core/src/core/defaults/index.d.ts.map +0 -1
- package/dist/o-core/src/core/defaults/index.js +0 -1
- package/dist/o-core/src/core/graceful-shutdown.d.ts +0 -25
- package/dist/o-core/src/core/graceful-shutdown.d.ts.map +0 -1
- package/dist/o-core/src/core/graceful-shutdown.js +0 -84
- package/dist/o-core/src/core/index.d.ts +0 -9
- package/dist/o-core/src/core/index.d.ts.map +0 -1
- package/dist/o-core/src/core/index.js +0 -8
- package/dist/o-core/src/core/interfaces/index.d.ts +0 -7
- package/dist/o-core/src/core/interfaces/index.d.ts.map +0 -1
- package/dist/o-core/src/core/interfaces/index.js +0 -6
- package/dist/o-core/src/core/interfaces/node-type.enum.d.ts +0 -10
- package/dist/o-core/src/core/interfaces/node-type.enum.d.ts.map +0 -1
- package/dist/o-core/src/core/interfaces/node-type.enum.js +0 -10
- package/dist/o-core/src/core/interfaces/o-core.config.d.ts +0 -23
- package/dist/o-core/src/core/interfaces/o-core.config.d.ts.map +0 -1
- package/dist/o-core/src/core/interfaces/o-core.config.js +0 -1
- package/dist/o-core/src/core/interfaces/o-core.interface.d.ts +0 -18
- package/dist/o-core/src/core/interfaces/o-core.interface.d.ts.map +0 -1
- package/dist/o-core/src/core/interfaces/o-core.interface.js +0 -1
- package/dist/o-core/src/core/interfaces/state.enum.d.ts +0 -8
- package/dist/o-core/src/core/interfaces/state.enum.d.ts.map +0 -1
- package/dist/o-core/src/core/interfaces/state.enum.js +0 -8
- package/dist/o-core/src/core/interfaces/use-options.interface.d.ts +0 -11
- package/dist/o-core/src/core/interfaces/use-options.interface.d.ts.map +0 -1
- package/dist/o-core/src/core/interfaces/use-options.interface.js +0 -1
- package/dist/o-core/src/core/interfaces/use-stream-options.interface.d.ts +0 -4
- package/dist/o-core/src/core/interfaces/use-stream-options.interface.d.ts.map +0 -1
- package/dist/o-core/src/core/interfaces/use-stream-options.interface.js +0 -1
- package/dist/o-core/src/core/lib/events/connection-events.d.ts +0 -31
- package/dist/o-core/src/core/lib/events/connection-events.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/events/connection-events.js +0 -46
- package/dist/o-core/src/core/lib/events/hierarchy-events.d.ts +0 -69
- package/dist/o-core/src/core/lib/events/hierarchy-events.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/events/hierarchy-events.js +0 -100
- package/dist/o-core/src/core/lib/events/index.d.ts +0 -6
- package/dist/o-core/src/core/lib/events/index.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/events/index.js +0 -5
- package/dist/o-core/src/core/lib/events/node-events.d.ts +0 -40
- package/dist/o-core/src/core/lib/events/node-events.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/events/node-events.js +0 -58
- package/dist/o-core/src/core/lib/events/o-notification-event.d.ts +0 -26
- package/dist/o-core/src/core/lib/events/o-notification-event.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/events/o-notification-event.js +0 -30
- package/dist/o-core/src/core/lib/index.d.ts +0 -8
- package/dist/o-core/src/core/lib/index.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/index.js +0 -7
- package/dist/o-core/src/core/lib/interfaces/notification-types.d.ts +0 -49
- package/dist/o-core/src/core/lib/interfaces/notification-types.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/interfaces/notification-types.js +0 -1
- package/dist/o-core/src/core/lib/o-hierarchy.manager.d.ts +0 -24
- package/dist/o-core/src/core/lib/o-hierarchy.manager.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/o-hierarchy.manager.js +0 -58
- package/dist/o-core/src/core/lib/o-metrics.d.ts +0 -5
- package/dist/o-core/src/core/lib/o-metrics.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/o-metrics.js +0 -6
- package/dist/o-core/src/core/lib/o-notification.manager.d.ts +0 -58
- package/dist/o-core/src/core/lib/o-notification.manager.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/o-notification.manager.js +0 -159
- package/dist/o-core/src/core/lib/o-request.manager.d.ts +0 -10
- package/dist/o-core/src/core/lib/o-request.manager.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/o-request.manager.js +0 -18
- package/dist/o-core/src/core/lib/utils/event-filters.d.ts +0 -38
- package/dist/o-core/src/core/lib/utils/event-filters.d.ts.map +0 -1
- package/dist/o-core/src/core/lib/utils/event-filters.js +0 -159
- package/dist/o-core/src/core/o-core.d.ts +0 -240
- package/dist/o-core/src/core/o-core.d.ts.map +0 -1
- package/dist/o-core/src/core/o-core.js +0 -463
- package/dist/o-core/src/core/o-dependency.d.ts +0 -9
- package/dist/o-core/src/core/o-dependency.d.ts.map +0 -1
- package/dist/o-core/src/core/o-dependency.js +0 -15
- package/dist/o-core/src/core/o-object.d.ts +0 -7
- package/dist/o-core/src/core/o-object.d.ts.map +0 -1
- package/dist/o-core/src/core/o-object.js +0 -10
- package/dist/o-core/src/core/o-parameter.d.ts +0 -12
- package/dist/o-core/src/core/o-parameter.d.ts.map +0 -1
- package/dist/o-core/src/core/o-parameter.js +0 -21
- package/dist/o-core/src/error/enums/codes.error.d.ts +0 -20
- package/dist/o-core/src/error/enums/codes.error.d.ts.map +0 -1
- package/dist/o-core/src/error/enums/codes.error.js +0 -20
- package/dist/o-core/src/error/index.d.ts +0 -3
- package/dist/o-core/src/error/index.d.ts.map +0 -1
- package/dist/o-core/src/error/index.js +0 -2
- package/dist/o-core/src/error/interfaces/o-error.interface.d.ts +0 -6
- package/dist/o-core/src/error/interfaces/o-error.interface.d.ts.map +0 -1
- package/dist/o-core/src/error/interfaces/o-error.interface.js +0 -1
- package/dist/o-core/src/error/o-error.d.ts +0 -15
- package/dist/o-core/src/error/o-error.d.ts.map +0 -1
- package/dist/o-core/src/error/o-error.js +0 -27
- package/dist/o-core/src/index.d.ts +0 -8
- package/dist/o-core/src/index.d.ts.map +0 -1
- package/dist/o-core/src/index.js +0 -7
- package/dist/o-core/src/response/index.d.ts +0 -2
- package/dist/o-core/src/response/index.d.ts.map +0 -1
- package/dist/o-core/src/response/index.js +0 -1
- package/dist/o-core/src/response/response-builder.d.ts +0 -140
- package/dist/o-core/src/response/response-builder.d.ts.map +0 -1
- package/dist/o-core/src/response/response-builder.js +0 -190
- package/dist/o-core/src/router/enums/restricted-addresses.enum.d.ts +0 -8
- package/dist/o-core/src/router/enums/restricted-addresses.enum.d.ts.map +0 -1
- package/dist/o-core/src/router/enums/restricted-addresses.enum.js +0 -13
- package/dist/o-core/src/router/index.d.ts +0 -11
- package/dist/o-core/src/router/index.d.ts.map +0 -1
- package/dist/o-core/src/router/index.js +0 -10
- package/dist/o-core/src/router/interfaces/resolve.request.d.ts +0 -10
- package/dist/o-core/src/router/interfaces/resolve.request.d.ts.map +0 -1
- package/dist/o-core/src/router/interfaces/resolve.request.js +0 -1
- package/dist/o-core/src/router/interfaces/route.response.d.ts +0 -8
- package/dist/o-core/src/router/interfaces/route.response.d.ts.map +0 -1
- package/dist/o-core/src/router/interfaces/route.response.js +0 -1
- package/dist/o-core/src/router/o-address-resolver.d.ts +0 -14
- package/dist/o-core/src/router/o-address-resolver.d.ts.map +0 -1
- package/dist/o-core/src/router/o-address-resolver.js +0 -19
- package/dist/o-core/src/router/o-address.d.ts +0 -33
- package/dist/o-core/src/router/o-address.d.ts.map +0 -1
- package/dist/o-core/src/router/o-address.js +0 -114
- package/dist/o-core/src/router/o-request-preparation.d.ts +0 -37
- package/dist/o-core/src/router/o-request-preparation.d.ts.map +0 -1
- package/dist/o-core/src/router/o-request-preparation.js +0 -75
- package/dist/o-core/src/router/o-request.router.d.ts +0 -18
- package/dist/o-core/src/router/o-request.router.d.ts.map +0 -1
- package/dist/o-core/src/router/o-request.router.js +0 -12
- package/dist/o-core/src/router/o-resolver-chain.d.ts +0 -32
- package/dist/o-core/src/router/o-resolver-chain.d.ts.map +0 -1
- package/dist/o-core/src/router/o-resolver-chain.js +0 -62
- package/dist/o-core/src/router/o-router.d.ts +0 -19
- package/dist/o-core/src/router/o-router.d.ts.map +0 -1
- package/dist/o-core/src/router/o-router.js +0 -14
- package/dist/o-core/src/router/o-routing-policy.d.ts +0 -36
- package/dist/o-core/src/router/o-routing-policy.d.ts.map +0 -1
- package/dist/o-core/src/router/o-routing-policy.js +0 -19
- package/dist/o-core/src/streaming/index.d.ts +0 -11
- package/dist/o-core/src/streaming/index.d.ts.map +0 -1
- package/dist/o-core/src/streaming/index.js +0 -14
- package/dist/o-core/src/streaming/protocol-builder.d.ts +0 -62
- package/dist/o-core/src/streaming/protocol-builder.d.ts.map +0 -1
- package/dist/o-core/src/streaming/protocol-builder.js +0 -93
- package/dist/o-core/src/streaming/stream-config.d.ts +0 -36
- package/dist/o-core/src/streaming/stream-config.d.ts.map +0 -1
- package/dist/o-core/src/streaming/stream-config.js +0 -19
- package/dist/o-core/src/streaming/stream-handler.base.d.ts +0 -85
- package/dist/o-core/src/streaming/stream-handler.base.d.ts.map +0 -1
- package/dist/o-core/src/streaming/stream-handler.base.js +0 -112
- package/dist/o-core/src/streaming/stream-transport.interface.d.ts +0 -61
- package/dist/o-core/src/streaming/stream-transport.interface.d.ts.map +0 -1
- package/dist/o-core/src/streaming/stream-transport.interface.js +0 -10
- package/dist/o-core/src/transports/custom.transport.d.ts +0 -6
- package/dist/o-core/src/transports/custom.transport.d.ts.map +0 -1
- package/dist/o-core/src/transports/custom.transport.js +0 -10
- package/dist/o-core/src/transports/index.d.ts +0 -4
- package/dist/o-core/src/transports/index.d.ts.map +0 -1
- package/dist/o-core/src/transports/index.js +0 -3
- package/dist/o-core/src/transports/interfaces/transport-type.enum.d.ts +0 -5
- package/dist/o-core/src/transports/interfaces/transport-type.enum.d.ts.map +0 -1
- package/dist/o-core/src/transports/interfaces/transport-type.enum.js +0 -5
- package/dist/o-core/src/transports/o-transport.d.ts +0 -10
- package/dist/o-core/src/transports/o-transport.d.ts.map +0 -1
- package/dist/o-core/src/transports/o-transport.js +0 -16
- package/dist/o-core/src/utils/core.utils.d.ts +0 -34
- package/dist/o-core/src/utils/core.utils.d.ts.map +0 -1
- package/dist/o-core/src/utils/core.utils.js +0 -123
- package/dist/o-core/src/utils/index.d.ts +0 -6
- package/dist/o-core/src/utils/index.d.ts.map +0 -1
- package/dist/o-core/src/utils/index.js +0 -5
- package/dist/o-core/src/utils/logger.d.ts +0 -14
- package/dist/o-core/src/utils/logger.d.ts.map +0 -1
- package/dist/o-core/src/utils/logger.js +0 -31
- package/dist/o-core/src/utils/object.utils.d.ts +0 -5
- package/dist/o-core/src/utils/object.utils.d.ts.map +0 -1
- package/dist/o-core/src/utils/object.utils.js +0 -23
- package/dist/o-core/src/utils/regex.utils.d.ts +0 -4
- package/dist/o-core/src/utils/regex.utils.d.ts.map +0 -1
- package/dist/o-core/src/utils/regex.utils.js +0 -13
- package/dist/o-core/src/utils/remote.utils.d.ts +0 -4
- package/dist/o-core/src/utils/remote.utils.d.ts.map +0 -1
- package/dist/o-core/src/utils/remote.utils.js +0 -5
- package/dist/o-core/src/utils/streaming.utils.d.ts +0 -22
- package/dist/o-core/src/utils/streaming.utils.d.ts.map +0 -1
- package/dist/o-core/src/utils/streaming.utils.js +0 -45
- package/dist/o-node/src/connection/index.d.ts +0 -5
- package/dist/o-node/src/connection/index.d.ts.map +0 -1
- package/dist/o-node/src/connection/index.js +0 -4
- package/dist/o-node/src/connection/interfaces/o-node-connection-manager.config.d.ts +0 -6
- package/dist/o-node/src/connection/interfaces/o-node-connection-manager.config.d.ts.map +0 -1
- package/dist/o-node/src/connection/interfaces/o-node-connection-manager.config.js +0 -1
- package/dist/o-node/src/connection/interfaces/o-node-connection.config.d.ts +0 -6
- package/dist/o-node/src/connection/interfaces/o-node-connection.config.d.ts.map +0 -1
- package/dist/o-node/src/connection/interfaces/o-node-connection.config.js +0 -1
- package/dist/o-node/src/connection/o-node-connection.d.ts +0 -13
- package/dist/o-node/src/connection/o-node-connection.d.ts.map +0 -1
- package/dist/o-node/src/connection/o-node-connection.js +0 -93
- package/dist/o-node/src/connection/o-node-connection.manager.d.ts +0 -19
- package/dist/o-node/src/connection/o-node-connection.manager.d.ts.map +0 -1
- package/dist/o-node/src/connection/o-node-connection.manager.js +0 -65
- package/dist/o-node/src/connection/o-stream.request.d.ts +0 -11
- package/dist/o-node/src/connection/o-stream.request.d.ts.map +0 -1
- package/dist/o-node/src/connection/o-stream.request.js +0 -7
- package/dist/o-node/src/index.d.ts +0 -12
- package/dist/o-node/src/index.d.ts.map +0 -1
- package/dist/o-node/src/index.js +0 -11
- package/dist/o-node/src/interfaces/i-heartbeatable-node.d.ts +0 -49
- package/dist/o-node/src/interfaces/i-heartbeatable-node.d.ts.map +0 -1
- package/dist/o-node/src/interfaces/i-heartbeatable-node.js +0 -1
- package/dist/o-node/src/interfaces/i-reconnectable-node.d.ts +0 -46
- package/dist/o-node/src/interfaces/i-reconnectable-node.d.ts.map +0 -1
- package/dist/o-node/src/interfaces/i-reconnectable-node.js +0 -1
- package/dist/o-node/src/interfaces/o-node.config.d.ts +0 -49
- package/dist/o-node/src/interfaces/o-node.config.d.ts.map +0 -1
- package/dist/o-node/src/interfaces/o-node.config.js +0 -1
- package/dist/o-node/src/interfaces/o-node.tool-config.d.ts +0 -4
- package/dist/o-node/src/interfaces/o-node.tool-config.d.ts.map +0 -1
- package/dist/o-node/src/interfaces/o-node.tool-config.js +0 -1
- package/dist/o-node/src/lib/network-activity.lib.d.ts +0 -1
- package/dist/o-node/src/lib/network-activity.lib.d.ts.map +0 -1
- package/dist/o-node/src/lib/network-activity.lib.js +0 -34
- package/dist/o-node/src/managers/o-connection-heartbeat.manager.d.ts +0 -63
- package/dist/o-node/src/managers/o-connection-heartbeat.manager.d.ts.map +0 -1
- package/dist/o-node/src/managers/o-connection-heartbeat.manager.js +0 -227
- package/dist/o-node/src/managers/o-reconnection.manager.d.ts +0 -51
- package/dist/o-node/src/managers/o-reconnection.manager.d.ts.map +0 -1
- package/dist/o-node/src/managers/o-reconnection.manager.js +0 -266
- package/dist/o-node/src/nodes/client.node.d.ts +0 -7
- package/dist/o-node/src/nodes/client.node.d.ts.map +0 -1
- package/dist/o-node/src/nodes/client.node.js +0 -16
- package/dist/o-node/src/nodes/index.d.ts +0 -4
- package/dist/o-node/src/nodes/index.d.ts.map +0 -1
- package/dist/o-node/src/nodes/index.js +0 -3
- package/dist/o-node/src/nodes/server.node.d.ts +0 -7
- package/dist/o-node/src/nodes/server.node.d.ts.map +0 -1
- package/dist/o-node/src/nodes/server.node.js +0 -20
- package/dist/o-node/src/nodes/websocket.node.d.ts +0 -7
- package/dist/o-node/src/nodes/websocket.node.d.ts.map +0 -1
- package/dist/o-node/src/nodes/websocket.node.js +0 -18
- package/dist/o-node/src/o-node.d.ts +0 -72
- package/dist/o-node/src/o-node.d.ts.map +0 -1
- package/dist/o-node/src/o-node.hierarchy-manager.d.ts +0 -15
- package/dist/o-node/src/o-node.hierarchy-manager.d.ts.map +0 -1
- package/dist/o-node/src/o-node.hierarchy-manager.js +0 -15
- package/dist/o-node/src/o-node.js +0 -493
- package/dist/o-node/src/o-node.notification-manager.d.ts +0 -52
- package/dist/o-node/src/o-node.notification-manager.d.ts.map +0 -1
- package/dist/o-node/src/o-node.notification-manager.js +0 -188
- package/dist/o-node/src/o-node.tool.d.ts +0 -18
- package/dist/o-node/src/o-node.tool.d.ts.map +0 -1
- package/dist/o-node/src/o-node.tool.js +0 -83
- package/dist/o-node/src/router/index.d.ts +0 -6
- package/dist/o-node/src/router/index.d.ts.map +0 -1
- package/dist/o-node/src/router/index.js +0 -5
- package/dist/o-node/src/router/interfaces/o-node-router.config.d.ts +0 -3
- package/dist/o-node/src/router/interfaces/o-node-router.config.d.ts.map +0 -1
- package/dist/o-node/src/router/interfaces/o-node-router.config.js +0 -1
- package/dist/o-node/src/router/interfaces/o-node-router.response.d.ts +0 -8
- package/dist/o-node/src/router/interfaces/o-node-router.response.d.ts.map +0 -1
- package/dist/o-node/src/router/interfaces/o-node-router.response.js +0 -1
- package/dist/o-node/src/router/o-node.address.d.ts +0 -18
- package/dist/o-node/src/router/o-node.address.d.ts.map +0 -1
- package/dist/o-node/src/router/o-node.address.js +0 -29
- package/dist/o-node/src/router/o-node.router.d.ts +0 -46
- package/dist/o-node/src/router/o-node.router.d.ts.map +0 -1
- package/dist/o-node/src/router/o-node.router.js +0 -181
- package/dist/o-node/src/router/o-node.routing-policy.d.ts +0 -30
- package/dist/o-node/src/router/o-node.routing-policy.d.ts.map +0 -1
- package/dist/o-node/src/router/o-node.routing-policy.js +0 -57
- package/dist/o-node/src/router/o-node.transport.d.ts +0 -11
- package/dist/o-node/src/router/o-node.transport.d.ts.map +0 -1
- package/dist/o-node/src/router/o-node.transport.js +0 -18
- package/dist/o-node/src/router/resolvers/index.d.ts +0 -4
- package/dist/o-node/src/router/resolvers/index.d.ts.map +0 -1
- package/dist/o-node/src/router/resolvers/index.js +0 -3
- package/dist/o-node/src/router/resolvers/o-node.leader-resolver-fallback.d.ts +0 -8
- package/dist/o-node/src/router/resolvers/o-node.leader-resolver-fallback.d.ts.map +0 -1
- package/dist/o-node/src/router/resolvers/o-node.leader-resolver-fallback.js +0 -35
- package/dist/o-node/src/router/resolvers/o-node.resolver.d.ts +0 -11
- package/dist/o-node/src/router/resolvers/o-node.resolver.d.ts.map +0 -1
- package/dist/o-node/src/router/resolvers/o-node.resolver.js +0 -45
- package/dist/o-node/src/router/resolvers/o-node.search-resolver.d.ts +0 -170
- package/dist/o-node/src/router/resolvers/o-node.search-resolver.d.ts.map +0 -1
- package/dist/o-node/src/router/resolvers/o-node.search-resolver.js +0 -285
- package/dist/o-node/src/router/route.request.d.ts +0 -14
- package/dist/o-node/src/router/route.request.d.ts.map +0 -1
- package/dist/o-node/src/router/route.request.js +0 -1
- package/dist/o-node/src/streaming/index.d.ts +0 -10
- package/dist/o-node/src/streaming/index.d.ts.map +0 -1
- package/dist/o-node/src/streaming/index.js +0 -12
- package/dist/o-node/src/streaming/libp2p-stream-transport.d.ts +0 -50
- package/dist/o-node/src/streaming/libp2p-stream-transport.d.ts.map +0 -1
- package/dist/o-node/src/streaming/libp2p-stream-transport.js +0 -137
- package/dist/o-node/src/streaming/node-stream-handler.d.ts +0 -65
- package/dist/o-node/src/streaming/node-stream-handler.d.ts.map +0 -1
- package/dist/o-node/src/streaming/node-stream-handler.js +0 -101
- package/dist/o-node/src/ui/index.d.ts +0 -3
- package/dist/o-node/src/ui/index.d.ts.map +0 -1
- package/dist/o-node/src/ui/index.js +0 -2
- package/dist/o-node/src/ui/types.d.ts +0 -110
- package/dist/o-node/src/ui/types.d.ts.map +0 -1
- package/dist/o-node/src/ui/types.js +0 -17
- package/dist/o-node/src/ui/ui-graph.manager.d.ts +0 -70
- package/dist/o-node/src/ui/ui-graph.manager.d.ts.map +0 -1
- package/dist/o-node/src/ui/ui-graph.manager.js +0 -274
- package/dist/o-node/src/utils/circuit-breaker.d.ts +0 -107
- package/dist/o-node/src/utils/circuit-breaker.d.ts.map +0 -1
- package/dist/o-node/src/utils/circuit-breaker.js +0 -175
- package/dist/o-node/src/utils/index.d.ts +0 -3
- package/dist/o-node/src/utils/index.d.ts.map +0 -1
- package/dist/o-node/src/utils/index.js +0 -2
- package/dist/o-node/src/utils/leader-request-wrapper.d.ts +0 -66
- package/dist/o-node/src/utils/leader-request-wrapper.d.ts.map +0 -1
- package/dist/o-node/src/utils/leader-request-wrapper.js +0 -160
- package/dist/o-node/src/utils/network.utils.d.ts +0 -20
- package/dist/o-node/src/utils/network.utils.d.ts.map +0 -1
- package/dist/o-node/src/utils/network.utils.js +0 -74
- package/dist/o-node/src/utils/stream.utils.d.ts +0 -6
- package/dist/o-node/src/utils/stream.utils.d.ts.map +0 -1
- package/dist/o-node/src/utils/stream.utils.js +0 -31
- package/dist/o-node/test/circuit-breaker.test.d.ts +0 -2
- package/dist/o-node/test/circuit-breaker.test.d.ts.map +0 -1
- package/dist/o-node/test/circuit-breaker.test.js +0 -262
- package/dist/o-node/test/helpers/test-node.tool.d.ts +0 -15
- package/dist/o-node/test/helpers/test-node.tool.d.ts.map +0 -1
- package/dist/o-node/test/helpers/test-node.tool.js +0 -27
- package/dist/o-node/test/leader-request-wrapper.test.d.ts +0 -1
- package/dist/o-node/test/leader-request-wrapper.test.d.ts.map +0 -1
- package/dist/o-node/test/leader-request-wrapper.test.js +0 -246
- package/dist/o-node/test/o-node.spec.d.ts +0 -2
- package/dist/o-node/test/o-node.spec.d.ts.map +0 -1
- package/dist/o-node/test/o-node.spec.js +0 -20
- package/dist/o-node/test/search-resolver.spec.d.ts +0 -2
- package/dist/o-node/test/search-resolver.spec.d.ts.map +0 -1
- package/dist/o-node/test/search-resolver.spec.js +0 -693
- package/dist/src/streaming/index.d.ts +0 -10
- package/dist/src/streaming/index.d.ts.map +0 -1
- package/dist/src/streaming/index.js +0 -12
- package/dist/src/streaming/libp2p-stream-transport.d.ts +0 -50
- package/dist/src/streaming/libp2p-stream-transport.d.ts.map +0 -1
- package/dist/src/streaming/libp2p-stream-transport.js +0 -137
- package/dist/src/streaming/node-stream-handler.d.ts +0 -65
- package/dist/src/streaming/node-stream-handler.d.ts.map +0 -1
- package/dist/src/streaming/node-stream-handler.js +0 -101
- package/dist/src/streaming/o-node-streaming-client.d.ts +0 -33
- package/dist/src/streaming/o-node-streaming-client.d.ts.map +0 -1
- package/dist/src/streaming/o-node-streaming-client.js +0 -130
- package/dist/src/utils/circuit-breaker.d.ts +0 -107
- package/dist/src/utils/circuit-breaker.d.ts.map +0 -1
- package/dist/src/utils/circuit-breaker.js +0 -175
- package/dist/src/utils/circuit-breaker.test.d.ts +0 -2
- package/dist/src/utils/circuit-breaker.test.d.ts.map +0 -1
- package/dist/src/utils/circuit-breaker.test.js +0 -262
- package/dist/src/utils/leader-request-wrapper.d.ts +0 -66
- package/dist/src/utils/leader-request-wrapper.d.ts.map +0 -1
- package/dist/src/utils/leader-request-wrapper.js +0 -160
- package/dist/src/utils/leader-request-wrapper.test.d.ts +0 -1
- package/dist/src/utils/leader-request-wrapper.test.d.ts.map +0 -1
- package/dist/src/utils/leader-request-wrapper.test.js +0 -246
- package/dist/test/circuit-breaker.test.d.ts +0 -2
- package/dist/test/circuit-breaker.test.d.ts.map +0 -1
- package/dist/test/circuit-breaker.test.js +0 -262
- package/dist/test/leader-request-wrapper.test.d.ts +0 -1
- package/dist/test/leader-request-wrapper.test.d.ts.map +0 -1
- package/dist/test/leader-request-wrapper.test.js +0 -246
package/dist/o-node/src/index.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export * from './o-node.js';
|
|
2
|
-
export * from './utils/index.js';
|
|
3
|
-
export * from './o-node.hierarchy-manager.js';
|
|
4
|
-
export * from './interfaces/o-node.config.js';
|
|
5
|
-
export * from './connection/index.js';
|
|
6
|
-
export * from './o-node.tool.js';
|
|
7
|
-
export * from './nodes/index.js';
|
|
8
|
-
export * from './interfaces/o-node.tool-config.js';
|
|
9
|
-
export * from './router/index.js';
|
|
10
|
-
export * from './connection/o-stream.request.js';
|
|
11
|
-
export * from './ui/index.js';
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { oNotificationManager } from '@olane/o-core';
|
|
2
|
-
import { Libp2p } from '@olane/o-config';
|
|
3
|
-
import { oNodeAddress } from '../router/o-node.address.js';
|
|
4
|
-
/**
|
|
5
|
-
* Interface for nodes that support connection heartbeat monitoring.
|
|
6
|
-
* This interface defines the contract that oConnectionHeartbeatManager needs
|
|
7
|
-
* to access live hierarchy state without holding stale references.
|
|
8
|
-
*/
|
|
9
|
-
export interface IHeartbeatableNode {
|
|
10
|
-
/**
|
|
11
|
-
* The node's current address
|
|
12
|
-
*/
|
|
13
|
-
address: oNodeAddress;
|
|
14
|
-
/**
|
|
15
|
-
* The notification manager for emitting heartbeat events
|
|
16
|
-
*/
|
|
17
|
-
notificationManager: oNotificationManager;
|
|
18
|
-
/**
|
|
19
|
-
* The underlying libp2p node for ping operations
|
|
20
|
-
*/
|
|
21
|
-
p2pNode: Libp2p;
|
|
22
|
-
/**
|
|
23
|
-
* The current parent address (with live transport updates)
|
|
24
|
-
* @returns Parent address or null if no parent
|
|
25
|
-
*/
|
|
26
|
-
parent: oNodeAddress | null;
|
|
27
|
-
/**
|
|
28
|
-
* Get the current list of leader addresses
|
|
29
|
-
* @returns Array of leader addresses (empty if this node is the leader)
|
|
30
|
-
*/
|
|
31
|
-
getLeaders(): oNodeAddress[];
|
|
32
|
-
/**
|
|
33
|
-
* Get the current list of parent addresses
|
|
34
|
-
* @returns Array of parent addresses
|
|
35
|
-
*/
|
|
36
|
-
getParents(): oNodeAddress[];
|
|
37
|
-
/**
|
|
38
|
-
* Get the current list of child addresses
|
|
39
|
-
* @returns Array of child addresses
|
|
40
|
-
*/
|
|
41
|
-
getChildren(): oNodeAddress[];
|
|
42
|
-
/**
|
|
43
|
-
* Remove a child from the hierarchy
|
|
44
|
-
* @param childAddress The address of the child to remove
|
|
45
|
-
*/
|
|
46
|
-
removeChild(childAddress: oNodeAddress): void;
|
|
47
|
-
use(param1: any, param2: any): Promise<any>;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=i-heartbeatable-node.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"i-heartbeatable-node.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/i-heartbeatable-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,mBAAmB,EAAE,oBAAoB,CAAC;IAE1C;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAE5B;;;OAGG;IACH,UAAU,IAAI,YAAY,EAAE,CAAC;IAE7B;;;OAGG;IACH,UAAU,IAAI,YAAY,EAAE,CAAC;IAE7B;;;OAGG;IACH,WAAW,IAAI,YAAY,EAAE,CAAC;IAE9B;;;OAGG;IACH,WAAW,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAE9C,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC7C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { oAddress, NodeState, oNotificationManager } from '@olane/o-core';
|
|
2
|
-
import { oNodeAddress } from '../router/o-node.address.js';
|
|
3
|
-
import { oNodeConfig } from './o-node.config.js';
|
|
4
|
-
/**
|
|
5
|
-
* Interface for nodes that support reconnection management.
|
|
6
|
-
* This interface defines the contract that oReconnectionManager needs
|
|
7
|
-
* to perform reconnection operations without creating a circular dependency.
|
|
8
|
-
*/
|
|
9
|
-
export interface IReconnectableNode {
|
|
10
|
-
/**
|
|
11
|
-
* The node's configuration
|
|
12
|
-
*/
|
|
13
|
-
config: oNodeConfig;
|
|
14
|
-
/**
|
|
15
|
-
* The node's current address
|
|
16
|
-
*/
|
|
17
|
-
address: oNodeAddress;
|
|
18
|
-
/**
|
|
19
|
-
* The node's current state
|
|
20
|
-
*/
|
|
21
|
-
state: NodeState;
|
|
22
|
-
/**
|
|
23
|
-
* The notification manager for subscribing to events
|
|
24
|
-
*/
|
|
25
|
-
notificationManager: oNotificationManager;
|
|
26
|
-
/**
|
|
27
|
-
* Register with the parent node
|
|
28
|
-
*/
|
|
29
|
-
registerParent(): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* Register with the leader's global registry
|
|
32
|
-
*/
|
|
33
|
-
register(): Promise<void>;
|
|
34
|
-
useSelf(request?: any): Promise<any>;
|
|
35
|
-
/**
|
|
36
|
-
* Execute a method on another node
|
|
37
|
-
*/
|
|
38
|
-
use(address: oAddress, data?: {
|
|
39
|
-
method?: string;
|
|
40
|
-
params?: {
|
|
41
|
-
[key: string]: any;
|
|
42
|
-
};
|
|
43
|
-
id?: string;
|
|
44
|
-
}): Promise<any>;
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=i-reconnectable-node.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"i-reconnectable-node.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/i-reconnectable-node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,oBAAoB,EAErB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,mBAAmB,EAAE,oBAAoB,CAAC;IAE1C;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAErC;;OAEG;IACH,GAAG,CACD,OAAO,EAAE,QAAQ,EACjB,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;QAChC,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,GACA,OAAO,CAAC,GAAG,CAAC,CAAC;CACjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { oCoreConfig } from '@olane/o-core';
|
|
2
|
-
import { oNodeAddress } from '../router/o-node.address.js';
|
|
3
|
-
export interface oNodeConfig extends oCoreConfig {
|
|
4
|
-
leader: oNodeAddress | null;
|
|
5
|
-
parent: oNodeAddress | null;
|
|
6
|
-
/**
|
|
7
|
-
* Connection heartbeat configuration (libp2p-native pings)
|
|
8
|
-
* Detects dead connections via periodic pings using libp2p's ping service
|
|
9
|
-
*/
|
|
10
|
-
connectionHeartbeat?: {
|
|
11
|
-
enabled?: boolean;
|
|
12
|
-
intervalMs?: number;
|
|
13
|
-
timeoutMs?: number;
|
|
14
|
-
failureThreshold?: number;
|
|
15
|
-
checkChildren?: boolean;
|
|
16
|
-
checkParent?: boolean;
|
|
17
|
-
checkLeader?: boolean;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Automatic reconnection configuration
|
|
21
|
-
* Handles parent connection failures and attempts to reconnect
|
|
22
|
-
*/
|
|
23
|
-
reconnection?: {
|
|
24
|
-
enabled?: boolean;
|
|
25
|
-
maxAttempts?: number;
|
|
26
|
-
baseDelayMs?: number;
|
|
27
|
-
maxDelayMs?: number;
|
|
28
|
-
useLeaderFallback?: boolean;
|
|
29
|
-
parentDiscoveryIntervalMs?: number;
|
|
30
|
-
parentDiscoveryMaxDelayMs?: number;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Connection timeout configuration
|
|
34
|
-
* Controls timeouts for stream read and drain operations in connections
|
|
35
|
-
*/
|
|
36
|
-
connectionTimeouts?: {
|
|
37
|
-
/**
|
|
38
|
-
* Timeout in milliseconds for reading response data from a stream
|
|
39
|
-
* Default: 120000 (2 minutes)
|
|
40
|
-
*/
|
|
41
|
-
readTimeoutMs?: number;
|
|
42
|
-
/**
|
|
43
|
-
* Timeout in milliseconds for waiting for stream buffer to drain when backpressure occurs
|
|
44
|
-
* Default: 30000 (30 seconds)
|
|
45
|
-
*/
|
|
46
|
-
drainTimeoutMs?: number;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=o-node.config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"o-node.config.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/o-node.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAE5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;IAEF;;;OAGG;IACH,YAAY,CAAC,EAAE;QACb,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,yBAAyB,CAAC,EAAE,MAAM,CAAC;KACpC,CAAC;IAEF;;;OAGG;IACH,kBAAkB,CAAC,EAAE;QACnB;;;WAGG;QACH,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB;;;WAGG;QACH,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"o-node.tool-config.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/o-node.tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;CAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=network-activity.lib.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network-activity.lib.d.ts","sourceRoot":"","sources":["../../../../src/lib/network-activity.lib.ts"],"names":[],"mappings":""}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import { Libp2p, Libp2pEvents, ServiceFactoryMap } from '@olane/o-config';
|
|
3
|
-
// import { Logger } from '../../core/utils/logger.js';
|
|
4
|
-
// export const NETWORK_ACTIVITY_EVENTS: NetworkActivityEvent[] = [
|
|
5
|
-
// 'peer:connect',
|
|
6
|
-
// 'peer:disconnect',
|
|
7
|
-
// 'peer:update',
|
|
8
|
-
// 'peer:discovery',
|
|
9
|
-
// 'peer:reconnect-failure',
|
|
10
|
-
// 'peer:identify',
|
|
11
|
-
// 'transport:listening',
|
|
12
|
-
// 'transport:close',
|
|
13
|
-
// 'connection:prune',
|
|
14
|
-
// 'connection:open',
|
|
15
|
-
// 'connection:close',
|
|
16
|
-
// 'certificate:provision',
|
|
17
|
-
// 'certificate:renew',
|
|
18
|
-
// ];
|
|
19
|
-
// type NetworkActivityEvent = keyof Libp2pEvents<ServiceFactoryMap>;
|
|
20
|
-
// export class NetworkActivity {
|
|
21
|
-
// constructor(
|
|
22
|
-
// private readonly logger: Logger,
|
|
23
|
-
// private readonly p2pNode: Libp2p,
|
|
24
|
-
// ) {
|
|
25
|
-
// this.setup();
|
|
26
|
-
// }
|
|
27
|
-
// setup() {
|
|
28
|
-
// for (const event of NETWORK_ACTIVITY_EVENTS) {
|
|
29
|
-
// this.p2pNode.addEventListener(event, (evt: any) => {
|
|
30
|
-
// this.logger.debug('Network activity: ', event, evt.detail);
|
|
31
|
-
// });
|
|
32
|
-
// }
|
|
33
|
-
// }
|
|
34
|
-
// }
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { oObject } from '@olane/o-core';
|
|
2
|
-
import { oNodeAddress } from '../router/o-node.address.js';
|
|
3
|
-
import { IHeartbeatableNode } from '../interfaces/i-heartbeatable-node.js';
|
|
4
|
-
export interface HeartbeatConfig {
|
|
5
|
-
enabled: boolean;
|
|
6
|
-
intervalMs: number;
|
|
7
|
-
timeoutMs: number;
|
|
8
|
-
failureThreshold: number;
|
|
9
|
-
checkChildren: boolean;
|
|
10
|
-
checkParent: boolean;
|
|
11
|
-
checkLeader: boolean;
|
|
12
|
-
}
|
|
13
|
-
export interface ConnectionHealth {
|
|
14
|
-
address: oNodeAddress;
|
|
15
|
-
peerId: string;
|
|
16
|
-
lastSuccessfulPing: number;
|
|
17
|
-
consecutiveFailures: number;
|
|
18
|
-
averageLatency: number;
|
|
19
|
-
status: 'healthy' | 'degraded' | 'dead';
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Connection Heartbeat Manager
|
|
23
|
-
*
|
|
24
|
-
* Uses libp2p's native ping service to detect dead connections early.
|
|
25
|
-
* Continuously pings parent and children to ensure they're alive.
|
|
26
|
-
*
|
|
27
|
-
* How it works:
|
|
28
|
-
* - Every `intervalMs`, pings all tracked connections
|
|
29
|
-
* - If ping fails, increments failure counter
|
|
30
|
-
* - After `failureThreshold` failures, marks connection as dead
|
|
31
|
-
* - Emits events for degraded/recovered/dead connections
|
|
32
|
-
* - Automatically removes dead children from hierarchy
|
|
33
|
-
* - Emits ParentDisconnectedEvent when parent dies (triggers reconnection)
|
|
34
|
-
*/
|
|
35
|
-
export declare class oConnectionHeartbeatManager extends oObject {
|
|
36
|
-
private node;
|
|
37
|
-
private config;
|
|
38
|
-
private heartbeatInterval?;
|
|
39
|
-
private healthMap;
|
|
40
|
-
private isRunning;
|
|
41
|
-
constructor(node: IHeartbeatableNode, config: HeartbeatConfig);
|
|
42
|
-
start(): Promise<void>;
|
|
43
|
-
stop(): Promise<void>;
|
|
44
|
-
private performHeartbeatCycle;
|
|
45
|
-
private doPing;
|
|
46
|
-
private pingTarget;
|
|
47
|
-
private handleConnectionDead;
|
|
48
|
-
private emitConnectionDegradedEvent;
|
|
49
|
-
private emitConnectionRecoveredEvent;
|
|
50
|
-
/**
|
|
51
|
-
* Get current health status of all connections
|
|
52
|
-
*/
|
|
53
|
-
getHealthStatus(): ConnectionHealth[];
|
|
54
|
-
/**
|
|
55
|
-
* Get health status for specific address
|
|
56
|
-
*/
|
|
57
|
-
getConnectionHealth(address: oNodeAddress): ConnectionHealth | undefined;
|
|
58
|
-
/**
|
|
59
|
-
* Get current configuration
|
|
60
|
-
*/
|
|
61
|
-
getConfig(): HeartbeatConfig;
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=o-connection-heartbeat.manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"o-connection-heartbeat.manager.d.ts","sourceRoot":"","sources":["../../../../src/managers/o-connection-heartbeat.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAOR,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;CACzC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,2BAA4B,SAAQ,OAAO;IAMpD,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,iBAAiB,CAAC,CAAiB;IAC3C,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,SAAS,CAAS;gBAGhB,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,eAAe;IAK3B,KAAK;IAqBL,IAAI;YAQI,qBAAqB;IAgDnC,OAAO,CAAC,MAAM;YAcA,UAAU;IAuFxB,OAAO,CAAC,oBAAoB;IAyD5B,OAAO,CAAC,2BAA2B;IAmBnC,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACH,eAAe,IAAI,gBAAgB,EAAE;IAIrC;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,GAAG,SAAS;IAIxE;;OAEG;IACH,SAAS,IAAI,eAAe;CAG7B"}
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
import { oObject, ChildLeftEvent, ParentDisconnectedEvent, LeaderDisconnectedEvent, ConnectionDegradedEvent, ConnectionRecoveredEvent, oAddress, } from '@olane/o-core';
|
|
2
|
-
/**
|
|
3
|
-
* Connection Heartbeat Manager
|
|
4
|
-
*
|
|
5
|
-
* Uses libp2p's native ping service to detect dead connections early.
|
|
6
|
-
* Continuously pings parent and children to ensure they're alive.
|
|
7
|
-
*
|
|
8
|
-
* How it works:
|
|
9
|
-
* - Every `intervalMs`, pings all tracked connections
|
|
10
|
-
* - If ping fails, increments failure counter
|
|
11
|
-
* - After `failureThreshold` failures, marks connection as dead
|
|
12
|
-
* - Emits events for degraded/recovered/dead connections
|
|
13
|
-
* - Automatically removes dead children from hierarchy
|
|
14
|
-
* - Emits ParentDisconnectedEvent when parent dies (triggers reconnection)
|
|
15
|
-
*/
|
|
16
|
-
export class oConnectionHeartbeatManager extends oObject {
|
|
17
|
-
constructor(node, config) {
|
|
18
|
-
super();
|
|
19
|
-
this.node = node;
|
|
20
|
-
this.config = config;
|
|
21
|
-
this.healthMap = new Map();
|
|
22
|
-
this.isRunning = false;
|
|
23
|
-
}
|
|
24
|
-
async start() {
|
|
25
|
-
if (!this.config.enabled) {
|
|
26
|
-
this.logger.debug('Connection heartbeat disabled');
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
this.logger.info(`Starting connection heartbeat: interval=${this.config.intervalMs}ms, ` +
|
|
30
|
-
`timeout=${this.config.timeoutMs}ms, threshold=${this.config.failureThreshold}`);
|
|
31
|
-
// Immediate first check
|
|
32
|
-
await this.performHeartbeatCycle();
|
|
33
|
-
// Schedule recurring checks
|
|
34
|
-
this.heartbeatInterval = setInterval(() => this.performHeartbeatCycle(), this.config.intervalMs);
|
|
35
|
-
}
|
|
36
|
-
async stop() {
|
|
37
|
-
if (this.heartbeatInterval) {
|
|
38
|
-
clearInterval(this.heartbeatInterval);
|
|
39
|
-
this.heartbeatInterval = undefined;
|
|
40
|
-
}
|
|
41
|
-
this.healthMap.clear();
|
|
42
|
-
}
|
|
43
|
-
async performHeartbeatCycle() {
|
|
44
|
-
if (!this.isRunning) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
this.isRunning = true;
|
|
48
|
-
const targets = [];
|
|
49
|
-
// Check if this is a leader node (no leader in hierarchy = we are leader)
|
|
50
|
-
const isLeaderNode = this.node.getLeaders().length === 0;
|
|
51
|
-
// Collect leader (if enabled and we're not the leader)
|
|
52
|
-
if (!isLeaderNode) {
|
|
53
|
-
const leaders = this.node.getLeaders();
|
|
54
|
-
for (const leader of leaders) {
|
|
55
|
-
targets.push({ address: leader, role: 'leader' });
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
// Collect parent
|
|
59
|
-
if (this.config.checkParent && !isLeaderNode) {
|
|
60
|
-
// Use this.node.parent getter to get the current parent address with transports
|
|
61
|
-
// rather than getParents() which may have a stale reference
|
|
62
|
-
const parent = this.node.parent;
|
|
63
|
-
// make sure that we don't double ping the leader
|
|
64
|
-
if (parent && parent?.toString() !== oAddress.leader().toString()) {
|
|
65
|
-
targets.push({ address: parent, role: 'parent' });
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
// Collect children
|
|
69
|
-
if (this.config.checkChildren) {
|
|
70
|
-
const children = this.node.getChildren();
|
|
71
|
-
for (const child of children) {
|
|
72
|
-
targets.push({ address: child, role: 'child' });
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
// Ping all targets in parallel
|
|
76
|
-
await Promise.allSettled(targets.map((target) => this.pingTarget(target.address, target.role)));
|
|
77
|
-
this.isRunning = false;
|
|
78
|
-
}
|
|
79
|
-
doPing(address) {
|
|
80
|
-
if (address.toString() === this.node.address.toString()) {
|
|
81
|
-
return Promise.resolve();
|
|
82
|
-
}
|
|
83
|
-
const transport = address.libp2pTransports[0].toMultiaddr();
|
|
84
|
-
if (transport.toString().indexOf('p2p-circuit') > -1) {
|
|
85
|
-
return this.node.use(address, {
|
|
86
|
-
method: 'ping',
|
|
87
|
-
params: {},
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
return this.node.p2pNode.services.ping.ping(transport);
|
|
91
|
-
}
|
|
92
|
-
async pingTarget(address, role) {
|
|
93
|
-
if (!address.libp2pTransports.length) {
|
|
94
|
-
this.logger.debug(`${role} has no transports, skipping ping`, address);
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
const key = address.toString();
|
|
98
|
-
let health = this.healthMap.get(key);
|
|
99
|
-
if (!health) {
|
|
100
|
-
health = {
|
|
101
|
-
address,
|
|
102
|
-
peerId: 'unknown',
|
|
103
|
-
lastSuccessfulPing: 0,
|
|
104
|
-
consecutiveFailures: 0,
|
|
105
|
-
averageLatency: 0,
|
|
106
|
-
status: 'healthy',
|
|
107
|
-
};
|
|
108
|
-
this.healthMap.set(key, health);
|
|
109
|
-
}
|
|
110
|
-
try {
|
|
111
|
-
// Use libp2p's native ping service
|
|
112
|
-
const startTime = Date.now();
|
|
113
|
-
// Create timeout promise
|
|
114
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
115
|
-
setTimeout(() => reject(new Error('Ping timeout')), this.config.timeoutMs);
|
|
116
|
-
});
|
|
117
|
-
// Race between ping and timeout
|
|
118
|
-
// The ping service accepts PeerId as string or object
|
|
119
|
-
await Promise.race([this.doPing(address), timeoutPromise]);
|
|
120
|
-
const latency = Date.now() - startTime;
|
|
121
|
-
// Success - update health
|
|
122
|
-
health.lastSuccessfulPing = Date.now();
|
|
123
|
-
health.consecutiveFailures = 0;
|
|
124
|
-
health.averageLatency =
|
|
125
|
-
health.averageLatency === 0
|
|
126
|
-
? latency
|
|
127
|
-
: health.averageLatency * 0.7 + latency * 0.3; // Exponential moving average
|
|
128
|
-
const previousStatus = health.status;
|
|
129
|
-
health.status = 'healthy';
|
|
130
|
-
// Emit recovery event if was degraded
|
|
131
|
-
if (previousStatus === 'degraded') {
|
|
132
|
-
this.logger.info(`Connection recovered: ${address} (latency: ${latency}ms)`);
|
|
133
|
-
this.emitConnectionRecoveredEvent(address, role);
|
|
134
|
-
}
|
|
135
|
-
// this.logger.debug(`Ping successful: ${address} (${latency}ms)`);
|
|
136
|
-
}
|
|
137
|
-
catch (error) {
|
|
138
|
-
health.consecutiveFailures++;
|
|
139
|
-
this.logger.warn(`Ping failed: ${address} (failures: ${health.consecutiveFailures}/${this.config.failureThreshold})`, error);
|
|
140
|
-
// Update status based on failure count
|
|
141
|
-
if (health.consecutiveFailures >= this.config.failureThreshold) {
|
|
142
|
-
this.handleConnectionDead(address, role, health);
|
|
143
|
-
}
|
|
144
|
-
else if (health.consecutiveFailures >=
|
|
145
|
-
Math.ceil(this.config.failureThreshold / 2)) {
|
|
146
|
-
health.status = 'degraded';
|
|
147
|
-
this.emitConnectionDegradedEvent(address, role, health.consecutiveFailures);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
handleConnectionDead(address, role, health) {
|
|
152
|
-
health.status = 'dead';
|
|
153
|
-
this.logger.error(`Connection dead after ${health.consecutiveFailures} failures: ${address} (role: ${role})`);
|
|
154
|
-
// Remove from health tracking
|
|
155
|
-
this.healthMap.delete(address.toString());
|
|
156
|
-
// Emit events based on role
|
|
157
|
-
if (role === 'child') {
|
|
158
|
-
// Remove dead child from hierarchy
|
|
159
|
-
this.node.removeChild(address);
|
|
160
|
-
// Emit child left event
|
|
161
|
-
this.node.notificationManager.emit(new ChildLeftEvent({
|
|
162
|
-
source: this.node.address,
|
|
163
|
-
childAddress: address,
|
|
164
|
-
parentAddress: this.node.address,
|
|
165
|
-
reason: `heartbeat_failed_${health.consecutiveFailures}_times`,
|
|
166
|
-
}));
|
|
167
|
-
this.logger.warn(`Removed dead child: ${address}`);
|
|
168
|
-
}
|
|
169
|
-
else if (role === 'parent') {
|
|
170
|
-
// Emit parent disconnected event
|
|
171
|
-
this.node.notificationManager.emit(new ParentDisconnectedEvent({
|
|
172
|
-
source: this.node.address,
|
|
173
|
-
parentAddress: address,
|
|
174
|
-
reason: `heartbeat_failed_${health.consecutiveFailures}_times`,
|
|
175
|
-
}));
|
|
176
|
-
this.logger.error(`Parent connection dead: ${address}`);
|
|
177
|
-
// Reconnection manager will handle this event
|
|
178
|
-
}
|
|
179
|
-
else if (role === 'leader') {
|
|
180
|
-
// Emit leader disconnected event
|
|
181
|
-
this.node.notificationManager.emit(new LeaderDisconnectedEvent({
|
|
182
|
-
source: this.node.address,
|
|
183
|
-
leaderAddress: address,
|
|
184
|
-
reason: `heartbeat_failed_${health.consecutiveFailures}_times`,
|
|
185
|
-
}));
|
|
186
|
-
this.logger.error(`Leader connection dead: ${address}`);
|
|
187
|
-
// Reconnection manager will handle this event
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
emitConnectionDegradedEvent(address, role, failures) {
|
|
191
|
-
// ConnectionDegradedEvent only supports parent/child, so we map leader to parent
|
|
192
|
-
const eventRole = role === 'leader' ? 'parent' : role === 'child' ? 'child' : 'parent';
|
|
193
|
-
this.node.notificationManager.emit(new ConnectionDegradedEvent({
|
|
194
|
-
source: this.node.address,
|
|
195
|
-
targetAddress: address,
|
|
196
|
-
role: eventRole,
|
|
197
|
-
consecutiveFailures: failures,
|
|
198
|
-
}));
|
|
199
|
-
}
|
|
200
|
-
emitConnectionRecoveredEvent(address, role) {
|
|
201
|
-
// ConnectionRecoveredEvent only supports parent/child, so we map leader to parent
|
|
202
|
-
const eventRole = role === 'leader' ? 'parent' : role === 'child' ? 'child' : 'parent';
|
|
203
|
-
this.node.notificationManager.emit(new ConnectionRecoveredEvent({
|
|
204
|
-
source: this.node.address,
|
|
205
|
-
targetAddress: address,
|
|
206
|
-
role: eventRole,
|
|
207
|
-
}));
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Get current health status of all connections
|
|
211
|
-
*/
|
|
212
|
-
getHealthStatus() {
|
|
213
|
-
return Array.from(this.healthMap.values());
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Get health status for specific address
|
|
217
|
-
*/
|
|
218
|
-
getConnectionHealth(address) {
|
|
219
|
-
return this.healthMap.get(address.toString());
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Get current configuration
|
|
223
|
-
*/
|
|
224
|
-
getConfig() {
|
|
225
|
-
return { ...this.config };
|
|
226
|
-
}
|
|
227
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { oObject } from '@olane/o-core';
|
|
2
|
-
import { IReconnectableNode } from '../interfaces/i-reconnectable-node.js';
|
|
3
|
-
export interface ReconnectionConfig {
|
|
4
|
-
enabled: boolean;
|
|
5
|
-
maxAttempts: number;
|
|
6
|
-
baseDelayMs: number;
|
|
7
|
-
maxDelayMs: number;
|
|
8
|
-
useLeaderFallback: boolean;
|
|
9
|
-
parentDiscoveryIntervalMs: number;
|
|
10
|
-
parentDiscoveryMaxDelayMs: number;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Reconnection Manager
|
|
14
|
-
*
|
|
15
|
-
* Automatically attempts to reconnect to parent when connection is lost.
|
|
16
|
-
*
|
|
17
|
-
* Strategy:
|
|
18
|
-
* 1. Listen for ParentDisconnectedEvent (from heartbeat or libp2p)
|
|
19
|
-
* 2. Attempt direct reconnection with exponential backoff
|
|
20
|
-
* 3. If direct reconnection fails, query leader for new parent
|
|
21
|
-
* 4. Register with new parent and continue operation
|
|
22
|
-
* 5. If all attempts fail, transition node to ERROR state
|
|
23
|
-
*/
|
|
24
|
-
export declare class oReconnectionManager extends oObject {
|
|
25
|
-
private node;
|
|
26
|
-
private config;
|
|
27
|
-
private reconnecting;
|
|
28
|
-
constructor(node: IReconnectableNode, config: ReconnectionConfig);
|
|
29
|
-
private setupEventListeners;
|
|
30
|
-
handleNodeConnected(event: any): Promise<void>;
|
|
31
|
-
private handleConnectionDegraded;
|
|
32
|
-
private handleLeaderDisconnected;
|
|
33
|
-
private handleParentDisconnected;
|
|
34
|
-
attemptReconnection(): Promise<void>;
|
|
35
|
-
private tryDirectParentReconnection;
|
|
36
|
-
private tryLeaderFallback;
|
|
37
|
-
/**
|
|
38
|
-
* Wait for leader to become available and reconnect
|
|
39
|
-
* Leader transports are static (configured), so we just need to detect when it's back
|
|
40
|
-
*/
|
|
41
|
-
private waitForLeaderAndReconnect;
|
|
42
|
-
/**
|
|
43
|
-
* Wait for non-leader parent to appear in registry and reconnect
|
|
44
|
-
*/
|
|
45
|
-
waitForParentAndReconnect(): Promise<void>;
|
|
46
|
-
private handleReconnectionFailure;
|
|
47
|
-
private calculateNodeLevel;
|
|
48
|
-
private calculateBackoffDelay;
|
|
49
|
-
private sleep;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=o-reconnection.manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"o-reconnection.manager.d.ts","sourceRoot":"","sources":["../../../../src/managers/o-reconnection.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EASR,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAI3E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,oBAAqB,SAAQ,OAAO;IAI7C,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IAJhB,OAAO,CAAC,YAAY,CAAS;gBAGnB,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,kBAAkB;IAMpC,OAAO,CAAC,mBAAmB;IAyBrB,mBAAmB,CAAC,KAAK,EAAE,GAAG;YAatB,wBAAwB;YAaxB,wBAAwB;YAexB,wBAAwB;IAehC,mBAAmB;YAgDX,2BAA2B;YAiB3B,iBAAiB;IAkB/B;;;OAGG;YACW,yBAAyB;IAiFvC;;OAEG;IACG,yBAAyB;IAkG/B,OAAO,CAAC,yBAAyB;IAajC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,KAAK;CAGd"}
|