@olane/o-node 0.7.12-alpha.42 → 0.7.12-alpha.43
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/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
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
import { NodeState, oAddress, oAddressResolver, oCustomTransport, RestrictedAddresses, } from '@olane/o-core';
|
|
2
|
-
import { oNodeTransport } from '../o-node.transport.js';
|
|
3
|
-
/**
|
|
4
|
-
* Address resolver that searches a registry to find transports for addresses.
|
|
5
|
-
*
|
|
6
|
-
* This resolver queries a registry service to find the transport information
|
|
7
|
-
* for addresses that don't already have transports configured. It's designed
|
|
8
|
-
* to be extensible through subclassing via protected template methods.
|
|
9
|
-
*
|
|
10
|
-
* @example Basic usage
|
|
11
|
-
* ```typescript
|
|
12
|
-
* const resolver = new oSearchResolver(nodeAddress);
|
|
13
|
-
* router.addResolver(resolver);
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* @example Creating a custom search resolver
|
|
17
|
-
* ```typescript
|
|
18
|
-
* class CustomSearchResolver extends oSearchResolver {
|
|
19
|
-
* // Search a different registry
|
|
20
|
-
* protected getRegistryAddress(): oAddress {
|
|
21
|
-
* return new oAddress('o://my-custom-registry');
|
|
22
|
-
* }
|
|
23
|
-
*
|
|
24
|
-
* // Use round-robin selection instead of first result
|
|
25
|
-
* private currentIndex = 0;
|
|
26
|
-
* protected selectResult(results: any[]): any | null {
|
|
27
|
-
* if (results.length === 0) return null;
|
|
28
|
-
* const result = results[this.currentIndex % results.length];
|
|
29
|
-
* this.currentIndex++;
|
|
30
|
-
* return result;
|
|
31
|
-
* }
|
|
32
|
-
*
|
|
33
|
-
* // Add custom filtering logic
|
|
34
|
-
* protected filterSearchResults(results: any[], node: oCore): any[] {
|
|
35
|
-
* return super.filterSearchResults(results, node).filter(
|
|
36
|
-
* result => result.status === 'active'
|
|
37
|
-
* );
|
|
38
|
-
* }
|
|
39
|
-
*
|
|
40
|
-
* // Implement custom routing logic with transport setup
|
|
41
|
-
* protected determineNextHop(
|
|
42
|
-
* node: oCore,
|
|
43
|
-
* resolvedTargetAddress: oAddress,
|
|
44
|
-
* searchResult: any
|
|
45
|
-
* ): oAddress {
|
|
46
|
-
* // Always route directly to target, bypassing hierarchy
|
|
47
|
-
* const targetTransports = this.mapTransports(searchResult);
|
|
48
|
-
* resolvedTargetAddress.setTransports(targetTransports);
|
|
49
|
-
* return resolvedTargetAddress;
|
|
50
|
-
* }
|
|
51
|
-
* }
|
|
52
|
-
* ```
|
|
53
|
-
*
|
|
54
|
-
* ## Extension Points
|
|
55
|
-
*
|
|
56
|
-
* The following protected methods can be overridden to customize behavior:
|
|
57
|
-
*
|
|
58
|
-
* - `getRegistryAddress()` - Change which registry to search
|
|
59
|
-
* - `getSearchMethod()` - Change the registry method to call
|
|
60
|
-
* - `buildSearchParams()` - Customize search parameters
|
|
61
|
-
* - `filterSearchResults()` - Add custom filtering logic
|
|
62
|
-
* - `selectResult()` - Implement custom result selection (e.g., load balancing)
|
|
63
|
-
* - `mapTransports()` - Customize how transports are mapped from results
|
|
64
|
-
* - `determineNextHop()` - Implement custom routing logic to determine the next hop address
|
|
65
|
-
* - `resolveNextHopTransports()` - Customize transport resolution for the next hop
|
|
66
|
-
*/
|
|
67
|
-
export class oSearchResolver extends oAddressResolver {
|
|
68
|
-
constructor(address) {
|
|
69
|
-
super(address);
|
|
70
|
-
this.address = address;
|
|
71
|
-
}
|
|
72
|
-
get customTransports() {
|
|
73
|
-
return [new oCustomTransport('/search')];
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Returns the address of the registry to search.
|
|
77
|
-
* Override this method to search a different registry.
|
|
78
|
-
* @returns The registry address to query
|
|
79
|
-
*/
|
|
80
|
-
getRegistryAddress() {
|
|
81
|
-
return new oAddress('o://leader/registry');
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Returns the method name to call on the registry.
|
|
85
|
-
* Override this method to use a different search method.
|
|
86
|
-
* @returns The method name to call
|
|
87
|
-
*/
|
|
88
|
-
getSearchMethod() {
|
|
89
|
-
return 'search';
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Builds the search parameters for the registry query.
|
|
93
|
-
* Override this method to customize search parameters.
|
|
94
|
-
* @param address - The address being resolved
|
|
95
|
-
* @returns Parameters to pass to the registry search method
|
|
96
|
-
*/
|
|
97
|
-
buildSearchParams(address) {
|
|
98
|
-
return {
|
|
99
|
-
staticAddress: address.toRootAddress().toString(),
|
|
100
|
-
address: address.toString(),
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Filters the search results from the registry.
|
|
105
|
-
* Override this method to apply custom filtering logic.
|
|
106
|
-
* @param results - Raw results from the registry
|
|
107
|
-
* @param node - The current node context
|
|
108
|
-
* @returns Filtered array of results
|
|
109
|
-
*/
|
|
110
|
-
filterSearchResults(results, node) {
|
|
111
|
-
return results.filter(
|
|
112
|
-
// filter out the items that may cause infinite looping
|
|
113
|
-
(result) => result.staticAddress !== RestrictedAddresses.REGISTRY &&
|
|
114
|
-
result.address !== node.address);
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Selects which result to use from the filtered results.
|
|
118
|
-
* Override this method to implement custom selection logic (e.g., load balancing).
|
|
119
|
-
* @param results - Filtered search results
|
|
120
|
-
* @returns The selected result, or null if no suitable result
|
|
121
|
-
*/
|
|
122
|
-
selectResult(results) {
|
|
123
|
-
return results.length > 0 ? results[0] : null;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Maps the transport data from the search result to oNodeTransport instances.
|
|
127
|
-
* Override this method to customize transport mapping.
|
|
128
|
-
* @param result - The selected search result
|
|
129
|
-
* @returns Array of oNodeTransport instances
|
|
130
|
-
*/
|
|
131
|
-
mapTransports(result) {
|
|
132
|
-
return result.transports.map((t) => new oNodeTransport(t.value));
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Resolves the transports for the next hop address.
|
|
136
|
-
* This handles the logic of determining which transports to use based on
|
|
137
|
-
* whether the next hop is the leader, a known child, or a new target.
|
|
138
|
-
*
|
|
139
|
-
* Override this method to customize transport resolution logic.
|
|
140
|
-
*
|
|
141
|
-
* @param nextHop - The next hop address
|
|
142
|
-
* @param targetTransports - The transports from the registry search result
|
|
143
|
-
* @param node - The current node context
|
|
144
|
-
* @returns Array of transports to use for the next hop
|
|
145
|
-
*/
|
|
146
|
-
resolveNextHopTransports(nextHop, targetTransports, node) {
|
|
147
|
-
// If next hop is the leader, use leader transports
|
|
148
|
-
if (nextHop.value === RestrictedAddresses.LEADER) {
|
|
149
|
-
return (node.leader?.transports || []);
|
|
150
|
-
}
|
|
151
|
-
// Check if next hop is a known child in the hierarchy
|
|
152
|
-
const childAddress = node?.hierarchyManager.getChild(nextHop);
|
|
153
|
-
if (childAddress?.transports) {
|
|
154
|
-
return childAddress.transports;
|
|
155
|
-
}
|
|
156
|
-
// Fall back to target transports from registry
|
|
157
|
-
return targetTransports;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Determines the next hop address for routing to the target and sets up its transports.
|
|
161
|
-
*
|
|
162
|
-
* This method implements the complete routing logic including:
|
|
163
|
-
* 1. Determining the next address in the path (using `oAddress.next()`)
|
|
164
|
-
* 2. Mapping transports from the search result
|
|
165
|
-
* 3. Resolving and setting transports on the next hop address
|
|
166
|
-
* 4. Setting transports on the target address
|
|
167
|
-
*
|
|
168
|
-
* The default implementation:
|
|
169
|
-
* - Uses `oAddress.next()` for standard hierarchy-based routing
|
|
170
|
-
* - Maps transports from the registry search result
|
|
171
|
-
* - Resolves next hop transports based on leader/hierarchy
|
|
172
|
-
* - Configures both next hop and target with appropriate transports
|
|
173
|
-
*
|
|
174
|
-
* Override this method to implement custom routing logic, such as:
|
|
175
|
-
* - Direct peer-to-peer routing
|
|
176
|
-
* - Custom hierarchy traversal
|
|
177
|
-
* - Alternative transport selection strategies
|
|
178
|
-
* - Bypass leader for certain routes
|
|
179
|
-
*
|
|
180
|
-
* @param node - The current node context
|
|
181
|
-
* @param resolvedTargetAddress - The resolved target address to route to
|
|
182
|
-
* @param searchResult - The raw search result from the registry containing transport data
|
|
183
|
-
* @returns The next hop address with transports configured
|
|
184
|
-
*
|
|
185
|
-
* @example Custom direct routing
|
|
186
|
-
* ```typescript
|
|
187
|
-
* class DirectSearchResolver extends oSearchResolver {
|
|
188
|
-
* protected determineNextHop(
|
|
189
|
-
* node: oCore,
|
|
190
|
-
* resolvedTargetAddress: oAddress,
|
|
191
|
-
* searchResult: any
|
|
192
|
-
* ): oAddress {
|
|
193
|
-
* // Always route directly to the target, bypassing hierarchy
|
|
194
|
-
* const targetTransports = this.mapTransports(searchResult);
|
|
195
|
-
* resolvedTargetAddress.setTransports(targetTransports);
|
|
196
|
-
* return resolvedTargetAddress;
|
|
197
|
-
* }
|
|
198
|
-
* }
|
|
199
|
-
* ```
|
|
200
|
-
*/
|
|
201
|
-
determineNextHop(node, resolvedTargetAddress, searchResult) {
|
|
202
|
-
// Determine next hop using standard hierarchy logic
|
|
203
|
-
const nextHopAddress = oAddress.next(node.address, resolvedTargetAddress);
|
|
204
|
-
// Map transports from search result
|
|
205
|
-
const targetTransports = this.mapTransports(searchResult);
|
|
206
|
-
// Set transports on the next hop based on routing logic
|
|
207
|
-
nextHopAddress.setTransports(this.resolveNextHopTransports(nextHopAddress, targetTransports, node));
|
|
208
|
-
return nextHopAddress;
|
|
209
|
-
}
|
|
210
|
-
async resolve(request) {
|
|
211
|
-
const { address, node, request: resolveRequest, targetAddress } = request;
|
|
212
|
-
// Early return: if address already has transports, no search needed
|
|
213
|
-
if (address.transports.length > 0) {
|
|
214
|
-
return {
|
|
215
|
-
nextHopAddress: address,
|
|
216
|
-
targetAddress: targetAddress,
|
|
217
|
-
requestOverride: resolveRequest,
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
if (node.state !== NodeState.RUNNING) {
|
|
221
|
-
return {
|
|
222
|
-
nextHopAddress: address,
|
|
223
|
-
targetAddress: targetAddress,
|
|
224
|
-
requestOverride: resolveRequest,
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
// Perform registry search with error handling
|
|
228
|
-
const searchParams = this.buildSearchParams(address);
|
|
229
|
-
const registryAddress = this.getRegistryAddress();
|
|
230
|
-
let searchResponse;
|
|
231
|
-
try {
|
|
232
|
-
searchResponse = await node.use(registryAddress, {
|
|
233
|
-
method: this.getSearchMethod(),
|
|
234
|
-
params: searchParams,
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
catch (error) {
|
|
238
|
-
// Log the error but don't throw - allow fallback resolvers to handle it
|
|
239
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
240
|
-
// Check if this is a circuit breaker error (fast-fail scenario)
|
|
241
|
-
if (errorMessage.includes('Circuit breaker is OPEN')) {
|
|
242
|
-
this.logger.warn(`Registry search blocked by circuit breaker for ${address.toString()}: ${errorMessage}`);
|
|
243
|
-
}
|
|
244
|
-
else {
|
|
245
|
-
this.logger.error(`Registry search failed for ${address.toString()}: ${errorMessage}`);
|
|
246
|
-
}
|
|
247
|
-
// Return original address without transports, letting next resolver in chain handle it
|
|
248
|
-
return {
|
|
249
|
-
nextHopAddress: address,
|
|
250
|
-
targetAddress: targetAddress,
|
|
251
|
-
requestOverride: resolveRequest,
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
// Filter and select result
|
|
255
|
-
const filteredResults = this.filterSearchResults(searchResponse.result.data, node);
|
|
256
|
-
const selectedResult = this.selectResult(filteredResults);
|
|
257
|
-
// Early return: if no result found, return original address
|
|
258
|
-
if (!selectedResult) {
|
|
259
|
-
return {
|
|
260
|
-
nextHopAddress: address,
|
|
261
|
-
targetAddress: targetAddress,
|
|
262
|
-
requestOverride: resolveRequest,
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
|
-
// Build route from search result
|
|
266
|
-
const extraParams = address
|
|
267
|
-
.toString() // o://embeddings-text replace o://embeddings-text = ''
|
|
268
|
-
.replace(address.toRootAddress().toString(), '');
|
|
269
|
-
// Check if selectedResult.address already contains the complete path
|
|
270
|
-
// This happens when registry finds via staticAddress - the returned address
|
|
271
|
-
// is the canonical hierarchical location, so we shouldn't append extraParams
|
|
272
|
-
const resultAddress = selectedResult.address;
|
|
273
|
-
const shouldAppendParams = extraParams && !resultAddress.endsWith(extraParams);
|
|
274
|
-
const resolvedTargetAddress = new oAddress(shouldAppendParams ? resultAddress + extraParams : resultAddress);
|
|
275
|
-
// Set transports on the target address
|
|
276
|
-
resolvedTargetAddress.setTransports(this.mapTransports(selectedResult));
|
|
277
|
-
// Determine next hop and configure transports
|
|
278
|
-
const nextHopAddress = this.determineNextHop(node, resolvedTargetAddress, selectedResult);
|
|
279
|
-
return {
|
|
280
|
-
nextHopAddress: nextHopAddress,
|
|
281
|
-
targetAddress: resolvedTargetAddress,
|
|
282
|
-
requestOverride: resolveRequest,
|
|
283
|
-
};
|
|
284
|
-
}
|
|
285
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { RequestParams } from '@olane/o-protocol';
|
|
2
|
-
import { oRequest } from '@olane/o-core';
|
|
3
|
-
import { Stream } from '@olane/o-config';
|
|
4
|
-
export interface RouteRequest extends oRequest {
|
|
5
|
-
stream: Stream;
|
|
6
|
-
params: RequestParams & {
|
|
7
|
-
address: string;
|
|
8
|
-
payload: {
|
|
9
|
-
method: string;
|
|
10
|
-
params: RequestParams;
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=route.request.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"route.request.d.ts","sourceRoot":"","sources":["../../../../src/router/route.request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,GAAG;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,aAAa,CAAC;SACvB,CAAC;KACH,CAAC;CACH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Streaming functionality for o-node
|
|
3
|
-
*
|
|
4
|
-
* This module provides libp2p-specific implementations of the streaming
|
|
5
|
-
* abstractions defined in o-core.
|
|
6
|
-
*/
|
|
7
|
-
export * from '../../../o-core/src/streaming/index.js';
|
|
8
|
-
export { Libp2pStreamTransport } from './libp2p-stream-transport.js';
|
|
9
|
-
export { NodeStreamHandler, NodeStreamHandlerOptions, } from './node-stream-handler.js';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/streaming/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,wCAAwC,CAAC;AAGvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Streaming functionality for o-node
|
|
3
|
-
*
|
|
4
|
-
* This module provides libp2p-specific implementations of the streaming
|
|
5
|
-
* abstractions defined in o-core.
|
|
6
|
-
*/
|
|
7
|
-
// Re-export o-core streaming abstractions for convenience
|
|
8
|
-
export * from '../../../o-core/src/streaming/index.js';
|
|
9
|
-
// libp2p-specific stream transport
|
|
10
|
-
export { Libp2pStreamTransport } from './libp2p-stream-transport.js';
|
|
11
|
-
// o-node stream handler with metrics
|
|
12
|
-
export { NodeStreamHandler, } from './node-stream-handler.js';
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Stream } from '@olane/o-config';
|
|
2
|
-
import { IStreamTransport, StreamStatus, StreamTransportConfig } from '../../../o-core/src/streaming/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* libp2p-specific implementation of IStreamTransport.
|
|
5
|
-
* Wraps a libp2p Stream and handles backpressure, message listening,
|
|
6
|
-
* and stream lifecycle management.
|
|
7
|
-
*/
|
|
8
|
-
export declare class Libp2pStreamTransport implements IStreamTransport {
|
|
9
|
-
private readonly stream;
|
|
10
|
-
private messageHandler?;
|
|
11
|
-
private config;
|
|
12
|
-
constructor(stream: Stream, config?: StreamTransportConfig);
|
|
13
|
-
/**
|
|
14
|
-
* Get the underlying libp2p Stream (useful for advanced use cases)
|
|
15
|
-
*/
|
|
16
|
-
getStream(): Stream;
|
|
17
|
-
/**
|
|
18
|
-
* Send data through the stream with backpressure handling
|
|
19
|
-
*/
|
|
20
|
-
send(data: Uint8Array): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Set up a message handler for incoming data.
|
|
23
|
-
* IMPORTANT: For libp2p v3, this must be called synchronously after
|
|
24
|
-
* receiving the stream to prevent buffer overflow.
|
|
25
|
-
*/
|
|
26
|
-
onMessage(handler: (data: Uint8Array) => void): void;
|
|
27
|
-
/**
|
|
28
|
-
* Remove the message handler
|
|
29
|
-
*/
|
|
30
|
-
removeMessageHandler(): void;
|
|
31
|
-
/**
|
|
32
|
-
* Close the stream and clean up resources
|
|
33
|
-
*/
|
|
34
|
-
close(): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Get the current status of the stream
|
|
37
|
-
*/
|
|
38
|
-
getStatus(): StreamStatus;
|
|
39
|
-
/**
|
|
40
|
-
* Check if the stream is in a usable state
|
|
41
|
-
*/
|
|
42
|
-
isOpen(): boolean;
|
|
43
|
-
/**
|
|
44
|
-
* Wait for the first message with timeout
|
|
45
|
-
* @param timeoutMs - Optional timeout in milliseconds (defaults to config.readTimeoutMs)
|
|
46
|
-
* @returns Promise that resolves with the first message
|
|
47
|
-
*/
|
|
48
|
-
waitForMessage(timeoutMs?: number): Promise<Uint8Array>;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=libp2p-stream-transport.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p-stream-transport.d.ts","sourceRoot":"","sources":["../../../../src/streaming/libp2p-stream-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACtB,MAAM,wCAAwC,CAAC;AAUhD;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,gBAAgB;IAK1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,cAAc,CAAC,CAA6B;IACpD,OAAO,CAAC,MAAM,CAAkC;gBAG7B,MAAM,EAAE,MAAM,EAC/B,MAAM,CAAC,EAAE,qBAAqB;IAQhC;;OAEG;IACI,SAAS,IAAI,MAAM;IAI1B;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3C;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAcpD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAO5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;IACH,SAAS,IAAI,YAAY;IAkBzB;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;;;OAIG;IACG,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAe9D"}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { StreamStatus, } from '../../../o-core/src/streaming/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Default configuration for libp2p stream transport
|
|
4
|
-
*/
|
|
5
|
-
const DEFAULT_CONFIG = {
|
|
6
|
-
drainTimeoutMs: 30000, // 30 seconds
|
|
7
|
-
readTimeoutMs: 120000, // 2 minutes
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* libp2p-specific implementation of IStreamTransport.
|
|
11
|
-
* Wraps a libp2p Stream and handles backpressure, message listening,
|
|
12
|
-
* and stream lifecycle management.
|
|
13
|
-
*/
|
|
14
|
-
export class Libp2pStreamTransport {
|
|
15
|
-
constructor(stream, config) {
|
|
16
|
-
this.stream = stream;
|
|
17
|
-
this.config = {
|
|
18
|
-
...DEFAULT_CONFIG,
|
|
19
|
-
...config,
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Get the underlying libp2p Stream (useful for advanced use cases)
|
|
24
|
-
*/
|
|
25
|
-
getStream() {
|
|
26
|
-
return this.stream;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Send data through the stream with backpressure handling
|
|
30
|
-
*/
|
|
31
|
-
async send(data) {
|
|
32
|
-
// Check stream status before sending
|
|
33
|
-
if (this.stream.status !== 'open') {
|
|
34
|
-
throw new Error(`Cannot send on stream with status: ${this.stream.status}`);
|
|
35
|
-
}
|
|
36
|
-
try {
|
|
37
|
-
// Attempt to send the data
|
|
38
|
-
const sent = this.stream.send(data);
|
|
39
|
-
// Handle backpressure if the buffer is full
|
|
40
|
-
if (!sent) {
|
|
41
|
-
// Wait for the stream to drain with timeout
|
|
42
|
-
await this.stream.onDrain({
|
|
43
|
-
signal: AbortSignal.timeout(this.config.drainTimeoutMs),
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
throw new Error(`Failed to send data: ${error}`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Set up a message handler for incoming data.
|
|
53
|
-
* IMPORTANT: For libp2p v3, this must be called synchronously after
|
|
54
|
-
* receiving the stream to prevent buffer overflow.
|
|
55
|
-
*/
|
|
56
|
-
onMessage(handler) {
|
|
57
|
-
this.messageHandler = handler;
|
|
58
|
-
// Attach the message listener to the stream
|
|
59
|
-
// This is synchronous and must be done immediately for libp2p v3
|
|
60
|
-
this.stream.addEventListener('message', (event) => {
|
|
61
|
-
if (this.messageHandler) {
|
|
62
|
-
// Extract the data from the event
|
|
63
|
-
const data = event.detail;
|
|
64
|
-
this.messageHandler(data);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Remove the message handler
|
|
70
|
-
*/
|
|
71
|
-
removeMessageHandler() {
|
|
72
|
-
this.messageHandler = undefined;
|
|
73
|
-
// Note: We don't remove the event listener because libp2p doesn't
|
|
74
|
-
// provide a clean way to do this. The handler being undefined
|
|
75
|
-
// effectively disables it.
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Close the stream and clean up resources
|
|
79
|
-
*/
|
|
80
|
-
async close() {
|
|
81
|
-
try {
|
|
82
|
-
if (this.stream.status === 'open' || this.stream.status === 'closing') {
|
|
83
|
-
await this.stream.close();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
console.error('Error closing stream:', error);
|
|
88
|
-
// Don't throw - closing errors are not critical
|
|
89
|
-
}
|
|
90
|
-
finally {
|
|
91
|
-
this.removeMessageHandler();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Get the current status of the stream
|
|
96
|
-
*/
|
|
97
|
-
getStatus() {
|
|
98
|
-
// Map libp2p status to our StreamStatus enum
|
|
99
|
-
const status = this.stream.status;
|
|
100
|
-
switch (status) {
|
|
101
|
-
case 'open':
|
|
102
|
-
return StreamStatus.OPEN;
|
|
103
|
-
case 'closing':
|
|
104
|
-
return StreamStatus.CLOSING;
|
|
105
|
-
case 'closed':
|
|
106
|
-
return StreamStatus.CLOSED;
|
|
107
|
-
case 'reset':
|
|
108
|
-
return StreamStatus.RESET;
|
|
109
|
-
default:
|
|
110
|
-
return StreamStatus.CLOSED;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Check if the stream is in a usable state
|
|
115
|
-
*/
|
|
116
|
-
isOpen() {
|
|
117
|
-
return this.stream.status === 'open';
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Wait for the first message with timeout
|
|
121
|
-
* @param timeoutMs - Optional timeout in milliseconds (defaults to config.readTimeoutMs)
|
|
122
|
-
* @returns Promise that resolves with the first message
|
|
123
|
-
*/
|
|
124
|
-
async waitForMessage(timeoutMs) {
|
|
125
|
-
const timeout = timeoutMs ?? this.config.readTimeoutMs;
|
|
126
|
-
return new Promise((resolve, reject) => {
|
|
127
|
-
const timer = setTimeout(() => {
|
|
128
|
-
this.removeMessageHandler();
|
|
129
|
-
reject(new Error(`Timeout waiting for message after ${timeout}ms`));
|
|
130
|
-
}, timeout);
|
|
131
|
-
this.onMessage((data) => {
|
|
132
|
-
clearTimeout(timer);
|
|
133
|
-
resolve(data);
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { StreamHandlerBase, StreamHandlerOptions } from '../../../o-core/src/streaming/index.js';
|
|
2
|
-
import { oRequest } from '@olane/o-protocol';
|
|
3
|
-
import { Libp2pStreamTransport } from './libp2p-stream-transport.js';
|
|
4
|
-
/**
|
|
5
|
-
* Options for NodeStreamHandler
|
|
6
|
-
*/
|
|
7
|
-
export interface NodeStreamHandlerOptions extends StreamHandlerOptions {
|
|
8
|
-
/**
|
|
9
|
-
* Enable success count tracking
|
|
10
|
-
*/
|
|
11
|
-
trackSuccessCount?: boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Enable error count tracking
|
|
14
|
-
*/
|
|
15
|
-
trackErrorCount?: boolean;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* o-node specific implementation of StreamHandlerBase.
|
|
19
|
-
* Integrates with libp2p streams and tracks metrics for o-node tools.
|
|
20
|
-
*/
|
|
21
|
-
export declare class NodeStreamHandler extends StreamHandlerBase {
|
|
22
|
-
private successCount;
|
|
23
|
-
private errorCount;
|
|
24
|
-
private transport;
|
|
25
|
-
private nodeOptions;
|
|
26
|
-
constructor(transport: Libp2pStreamTransport, options?: NodeStreamHandlerOptions);
|
|
27
|
-
/**
|
|
28
|
-
* Get the success count (number of chunks successfully sent)
|
|
29
|
-
*/
|
|
30
|
-
getSuccessCount(): number;
|
|
31
|
-
/**
|
|
32
|
-
* Get the error count
|
|
33
|
-
*/
|
|
34
|
-
getErrorCount(): number;
|
|
35
|
-
/**
|
|
36
|
-
* Reset metrics
|
|
37
|
-
*/
|
|
38
|
-
resetMetrics(): void;
|
|
39
|
-
/**
|
|
40
|
-
* Implementation of sendChunk using libp2p transport and protocol builder
|
|
41
|
-
*/
|
|
42
|
-
protected sendChunk(chunk: unknown, sequence: number, isLast: boolean, request: oRequest): Promise<void>;
|
|
43
|
-
/**
|
|
44
|
-
* Hook: Called when streaming starts
|
|
45
|
-
*/
|
|
46
|
-
protected onStreamStart(request: oRequest): void;
|
|
47
|
-
/**
|
|
48
|
-
* Hook: Called when streaming completes successfully
|
|
49
|
-
*/
|
|
50
|
-
protected onStreamComplete(request: oRequest, totalChunks: number): void;
|
|
51
|
-
/**
|
|
52
|
-
* Hook: Called when streaming encounters an error
|
|
53
|
-
*/
|
|
54
|
-
protected onStreamError(request: oRequest, error: any): void;
|
|
55
|
-
/**
|
|
56
|
-
* Reset the handler for reuse with a new transport
|
|
57
|
-
*/
|
|
58
|
-
reset(): void;
|
|
59
|
-
/**
|
|
60
|
-
* Create a new NodeStreamHandler with a different transport
|
|
61
|
-
* (useful for handling multiple streams)
|
|
62
|
-
*/
|
|
63
|
-
static create(transport: Libp2pStreamTransport, options?: NodeStreamHandlerOptions): NodeStreamHandler;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=node-stream-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node-stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/streaming/node-stream-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EAErB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IACpE;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,WAAW,CAA2B;gBAG5C,SAAS,EAAE,qBAAqB,EAChC,OAAO,GAAE,wBAA6B;IAWxC;;OAEG;IACI,eAAe,IAAI,MAAM;IAIhC;;OAEG;IACI,aAAa,IAAI,MAAM;IAI9B;;OAEG;IACI,YAAY,IAAI,IAAI;IAK3B;;OAEG;cACa,SAAS,CACvB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;IA0BhB;;OAEG;cACgB,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAOzD;;OAEG;cACgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IASjF;;OAEG;cACgB,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAUrE;;OAEG;IACI,KAAK,IAAI,IAAI;IAOpB;;;OAGG;WACW,MAAM,CAClB,SAAS,EAAE,qBAAqB,EAChC,OAAO,CAAC,EAAE,wBAAwB,GACjC,iBAAiB;CAGrB"}
|